OSDN Git Service

8a2676bcd4387069cae47934c8c57257e025f482
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-12-31  Gerald Pfeifer  <gerald@pfeifer.com>
2
3         * doc/install.texi (Specific): Remove reference to interix.com.
4
5 2010-12-31  Paul Koning  <ni1d@arrl.net>
6
7         * config/pdp11/pdp11.h (PRINT_OPERAND): Delete.
8         * config/pdp11/pdp11.c (TARGET_PRINT_OPERAND,
9         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
10         (pdp11_asm_print_operand, pdp11_asm_print_operand_punct_valid_p):
11         New function.
12         * config/pdp11/pdp11.md (tablejump): Fix generated assembly.
13
14 2010-12-31  Joern Rennecke  <amylaar@spamcop.net>
15
16         PR target/47111
17         * config/rtems.h (NO_IMPLICIT_EXTERN_C): Undef before defining.
18
19         PR target/47112
20         * config/mips/r3900.h: Update Copyright years.
21         (MIPS_CPU_STRING_DEFAULT): Undef before defining.
22         (MULTILIB_DEFAULTS, MIPS_ABI_DEFAULT, SUBTARGET_CC1_SPEC): Likewise.
23
24 2010-12-30  Mingjie Xing  <mingjie.xing@gmail.com>
25
26         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change
27         TARGET_LOONGSON_2EF to TARGET_LOONGSON_VECTORS.
28         * config/mips/mips.c (mips_shift_truncation_mask): Likewise.
29
30 2010-12-30  Joseph Myers  <joseph@codesourcery.com>
31
32         * config/openbsd.opt: New.
33         * config.gcc (alpha*-*-openbsd*,
34         i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123],
35         i[34567]86-*-openbsd*, m68k*-*-openbsd*, mips*-*-openbsd*,
36         sparc64-*-openbsd*, vax-*-openbsd*): Use openbsd.opt.
37
38 2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39
40         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
41         patterns.
42
43 2010-12-30  Eric Botcazou  <ebotcazou@adacore.com>
44
45         PR target/47038
46         * config/sparc/sparc.c (sparc_file_end): Call resolve_unique_section
47         on the GOT helper if USE_HIDDEN_LINKONCE.
48
49 2010-12-30  Joseph Myers  <joseph@codesourcery.com>
50
51         PR c/46889
52         * c-decl.c (detect_field_duplicates): Ensure hash is used for
53         finding duplicates when first field is anonymous.
54
55 2010-12-30  Nathan Froyd  <froydnj@codesourcery.com>
56
57         PR target/44606
58         * reload1.c (choose_reload_regs): Don't look for equivalences for
59         output reloads of constant loads.
60
61 2010-12-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
62
63         * emit-rtl.c (set_mem_attributes_minus_bitpos): Explicitly derive
64         default values from MEM mode if no memory attributes are present.
65         Do not use mode alignment, even on STRICT_ALIGNMENT targets, when
66         called with an expression (not a type).
67
68 2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>
69
70         * config/i386/i386.c (upper_128bits_state): Remove comments.
71         (block_info_def): Add unchanged.
72         (move_or_delete_vzeroupper_2): Short circuit if upper 128bits
73         are unchanged in the block.
74
75 2010-12-30  H.J. Lu  <hongjiu.lu@intel.com>
76
77         PR target/46519
78         * config/i386/i386.c (block_info_def): Remove referenced, count
79         and rescanned.
80         (move_or_delete_vzeroupper_2): Updated.
81         (move_or_delete_vzeroupper_1): Rewritten to avoid recursive call.
82         (rescan_move_or_delete_vzeroupper): Removed.
83         (move_or_delete_vzeroupper): Repeat processing all basic blocks
84         until no basic block state is changed to used at exit.
85
86 2010-12-30  Paul Koning  <ni1d@arrl.net>
87
88         * config/pdp11/pdp11.md (movmemhi, movmemhi1): Correct
89         constraints. 
90         * config/pdp11/pdp11.c (output_block_move): Rewrite.
91
92 2010-12-30  Jakub Jelinek  <jakub@redhat.com>
93
94         PR tree-optimization/47060
95         * tree-parloops.c (reduction_phi): Return NULL if PHI is NULL.
96
97 2010-12-29  Paul Koning  <ni1d@arrl.net>
98
99         * config/pdp11/pdp11-protos.h (pdp11_asm_output_var): Declare.
100         * config/pdp11/pdp11.c (pdp11_asm_output_var): New function.
101         * config/pdp11/pdp11.h (ASM_OUTPUT_ALIGNED_COMMON,
102         ASM_OUTPUT_ALIGNED_LOCAL): New macros.
103         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
104
105 2010-12-30  Joern Rennecke  <amylaar@spamcop.net>
106
107         PR target/47129
108         * config/ia64/ia64.c: Include "dwarf2out.h" .
109
110         PR target/47063
111         * config/alpha/vms.h (MALLOC_ALIGNMENT): Don't undef / define.
112         (MALLOC_ABI_ALIGNMENT): Undef / define.
113
114         PR target/47101
115         * vmsdbgout.c (vmsdbgout_init): Rename main_input_filename to filename.
116         (vmsdbgout_finish): Likewise.
117
118         PR target/47097
119         * config/i386/lynx.h (DBX_REGISTER_NUMBER): Add cast to avoid
120         mixing signed and unsigned types in conditional expression.
121
122 2010-12-29  Jakub Jelinek  <jakub@redhat.com>
123
124         PR tree-optimization/47074
125         * gimple-fold.c (gimplify_and_update_call_from_tree): Call
126         pop_gimplify_context if returning early.
127
128 2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>
129
130         * Makefile.in (graphite.o): Depends on DIAGNOSTIC_CORE_H.
131         (graphite-clast-to-gimple.o): Same.
132         (graphite-poly.o): Same.
133         * graphite-clast-to-gimple.c: Include diagnostic-core.h.
134         * graphite-poly.c: Same.
135         * graphite.c: Same.
136
137 2010-12-28  Richard Guenther  <rguenther@suse.de>
138
139         PR debug/46931
140         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Update
141         SSA before removing dead stmts.
142
143 2010-12-28  H.J. Lu  <hongjiu.lu@intel.com>
144             Uros Bizjak  <ubizjak@gmail.com>
145
146         * config/i386/i386-builtin-types.def (PUSHORT): New.
147         (INT_FTYPE_PUSHORT): Likewise.
148         (INT_FTYPE_PUNSIGNED): Likewise.
149         (INT_FTYPE_PULONGLONG): Likewise.
150         Remove "DEF_FUNCTION_TYPE (UINT16)".
151
152         * config/i386/i386.c (ix86_builtins): Remove
153         IX86_BUILTIN_RDRAND16, IX86_BUILTIN_RDRAND32 and
154         IX86_BUILTIN_RDRAND64.  Add IX86_BUILTIN_RDRAND16_STEP,
155         IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
156         (bdesc_special_args): Remove IX86_BUILTIN_RDRAND16,
157         IX86_BUILTIN_RDRAND32 and IX86_BUILTIN_RDRAND64.
158         (ix86_init_mmx_sse_builtins): Handle IX86_BUILTIN_RDRAND16_STEP,
159         IX86_BUILTIN_RDRAND32_STEP and IX86_BUILTIN_RDRAND64_STEP.
160         (ix86_expand_builtin): Likewise.
161         (ix86_expand_special_args_builtin): Remove UINT16_FTYPE_VOID.
162
163         * config/i386/i386.md (UNSPEC_RDRAND): New.
164         (UNSPECV_RDRAND): Removed.
165         (rdrand<mode>): Likewise.
166         (rdrand<mode>_1): Also set FLAGS_REG.  Replace UNSPECV_RDRAND
167         with UNSPEC_RDRAND.
168
169         * config/i386/immintrin.h (_rdrand_u16): Removed.
170         (_rdrand_u32): Likewise.
171         (_rdrand_u64): Likewise.
172         (_rdrand16_step): New.
173         (_rdrand32_step): Likewise.
174         (_rdrand64_step): Likewise.
175
176         * doc/extend.texi (__builtin_ia32_rdrand16): Removed.
177         (__builtin_ia32_rdrand32): Likewise.
178         (__builtin_ia32_rdrand64): Likewise.
179         (__builtin_ia32_rdrand16_step): New.
180         (__builtin_ia32_rdrand32_step): Likewise.
181         (__builtin_ia32_rdrand64_step): Likewise.
182
183 2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>
184
185         * Makefile.in (graphite.o): Add dependence on DIAGNOSTIC_H.
186         * graphite.c: Include diagnostic.h.
187
188 2010-12-28  Sebastian Pop  <sebastian.pop@amd.com>
189
190         * Makefile.in (TREE_VECTORIZER_H): Removed duplicate definition.
191         (tree-browser.o): Update dependences.
192         (omega.o): Same.
193         (tree-chrec.o): Same.
194         (tree-scalar-evolution.o): Same.
195         (tree-data-ref.o): Same.
196         (sese.o): Same.
197         (graphite.o): Same.
198         (graphite-blocking.o): Same.
199         (graphite-clast-to-gimple.o): Same.
200         (graphite-cloog-util.o): Same.
201         (graphite-dependences.o): Same.
202         (graphite-flattening.o): Same.
203         (graphite-interchange.o): Same.
204         (graphite-poly.o): Same.
205         (graphite-ppl.o): Same.
206         (graphite-scop-detection.o): Same.
207         (graphite-sese-to-poly.o): Same.
208         (tree-loop-linear.o): Same.
209         (tree-loop-distribution.o): Same.
210         (tree-parloops.o): Same.
211         (lambda-mat.o): Same.
212         (lambda-trans.o): Same.
213         (lambda-code.o): Same.
214         * tree-browser.o: Do not include unnecessary .h files.
215         * omega.o: Same.
216         * tree-chrec.o: Same.
217         * tree-scalar-evolution.o: Same.
218         * tree-data-ref.o: Same.
219         * sese.o: Same.
220         * graphite.o: Same.
221         * graphite-blocking.o: Same.
222         * graphite-clast-to-gimple.o: Same.
223         * graphite-cloog-util.o: Same.
224         * graphite-dependences.o: Same.
225         * graphite-flattening.o: Same.
226         * graphite-interchange.o: Same.
227         * graphite-poly.o: Same.
228         * graphite-ppl.o: Same.
229         * graphite-scop-detection.o: Same.
230         * graphite-sese-to-poly.o: Same.
231         * tree-loop-linear.o: Same.
232         * tree-loop-distribution.o: Same.
233         * tree-parloops.o: Same.
234         * lambda-mat.o: Same.
235         * lambda-trans.o: Same.
236         * lambda-code.o: Same.
237         * graphite.h: Removed.
238
239 2010-12-28  Paul Koning  <ni1d@arrl.net>
240
241         * config/pdp11/pdp11.md: Correct length attribute for float
242         literal case.
243
244 2010-12-28  Jie Zhang  <jie@codesourcery.com>
245
246         * builtins.c (SLOW_UNALIGNED_ACCESS): Remove.
247
248 2010-12-27  Joseph Myers  <joseph@codesourcery.com>
249
250         * config/freebsd.opt (assert=, defsym=, profile, pthread,
251         rpath-link=, rpath=, soname=): New Driver options.
252
253 2010-12-26  Martin Jambor  <mjambor@suse.cz>
254
255         * tree.c (get_binfo_at_offset): Use BINFO_TYPE instead of TREE_TYPE,
256         compare TYPE_MAIN_VARIANTs of types.
257
258 2010-12-26  Andreas Schwab  <schwab@linux-m68k.org>
259
260         * config/m68k/t-linux (M68K_MLIB_CPU): Only include 680x0 CPUs.
261
262 2010-12-24  Alexander Monakov  <amonakov@ispras.ru>
263
264         PR rtl-optimization/47036
265         * sel-sched-ir.c (fallthru_bb_of_jump): Remove special support for
266         unconditional jumps.
267         * sel-sched.c (moveup_expr): Ditto.
268
269 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
270             Richard Guenther  <rguenther@suse.de>
271
272         PR tree-optimization/46758
273         * graphite-sese-to-poly.c (scan_tree_for_params_right_scev): Use
274         tree_int_to_gmp instead of int_cst_value.
275         (scan_tree_for_params_int): Same.
276         (scan_tree_for_params): Same.
277         (pdr_add_data_dimensions): Use ppl_set_inhomogeneous_tree.
278
279 2010-12-23  Sebastian Pop  <sebastian.pop@amd.com>
280
281         PR tree-optimization/47002
282         * tree-data-ref.c (compute_data_dependences_for_loop): Pass in a
283         pointer to the loop_nest.
284         (analyze_all_data_dependences): Initialize and free the loop_nest.
285         (free_dependence_relations): Do not free loop_nest.
286         (build_rdg): Pass in the loop_nest, datarefs, and dependence_relations.
287         (free_rdg): Also free the data on edges.
288         * tree-data-ref.h (build_rdg): Update declaration.
289         (compute_data_dependences_for_loop): Same.
290         * tree-if-conv.c (if_convertible_loop_p_1): Pass in the loop_nest.
291         (if_convertible_loop_p): Allocate and free loop_nest.
292         * tree-loop-distribution.c (rdg_flag_loop_exits): Free conds.
293         (free_rdg_components): VEC_free components.
294         (distribute_loop): Update call to build_rdg.  Allocate and free
295         loop_nest, datarefs, and dependence_relations.
296         * tree-loop-linear.c (linear_transform_loops): Allocate and free
297         loop_nest.
298         * tree-parloops.c (loop_parallel_p): Same.
299         * tree-predcom.c (tree_predictive_commoning_loop): Same.
300         * tree-vect-data-refs.c (vect_analyze_data_refs): Pass to
301         compute_data_dependences_for_loop a pointer to LOOP_VINFO_LOOP_NEST.
302         * tree-vect-loop.c (new_loop_vec_info): Initialize LOOP_VINFO_LOOP_NEST.
303         (destroy_loop_vec_info): Free LOOP_VINFO_MAY_ALIAS_DDRS and
304         LOOP_VINFO_LOOP_NEST.
305         * tree-vect-slp.c (destroy_bb_vec_info): Call free_data_refs and
306         free_dependence_relations.
307         * tree-vectorizer.h (struct _loop_vec_info): Add a field loop_nest.
308         (LOOP_VINFO_LOOP_NEST): New.
309
310 2010-12-23  Martin Jambor  <mjambor@suse.cz>
311
312         * ipa.c (cgraph_remove_unreachable_nodes): Update former_clone_of even
313         when not checking.
314
315 2010-12-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
316
317         * configure.ac (gcc_cv_ld_eh_frame_hdr): Only check GNU ld for
318         --eh-frame-hdr.  Check for working Sun ld version.
319         (HAVE_LD_EH_FRAME_HDR): Adapt comment.
320         (glibc_header_dir): Set only once.  Rename to ...
321         (target_header_dir): ... this.  Adapt users.
322         (gcc_cv_target_dl_iterate_frame_hdr): Check on *-*-solaris2*.
323         (TARGET_DL_ITERATE_PHDR): Define if present.
324         * configure: Regenerate.
325         * config.in: Likewise.
326         * config/t-sol2 (LIB2ADDEH, LIB2ADDEHDEP): Define.
327         * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for recent Solaris 11
328         with linker support and dl_iterate_phdr.
329         * unwind-dw2-fde-glibc.c (USE_PT_GNU_EH_FRAME): Likewise.
330         (_Unwind_IteratePhdrCallback) [PT_SUNW_UNWIND]: Also accept
331         PT_SUNW_UNWIND .eh_frame_hdr sections.
332         [CRT_GET_RFIB_DATA && __i386__ && __sun__ && __svr4__]: Add
333         load_base to data->dbase.
334         [CRT_GET_RFIB_DATA && __x86_64__ && __sun__ && __svr4__]: Handle
335         64-bit Solaris 10+/x86.
336         * config/sol2-gld.h [TARGET_DL_ITERATE_PHDR && HAVE_LD_EH_FRAME_HDR]
337         (LINK_EH_SPEC): Define.
338
339 2010-12-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
340
341         * doc/extend.texi (Function Attributes, Volatiles): Fix typos.
342         * doc/install.texi (Prerequisites, Specific): Likewise.
343         * doc/invoke.texi (C Dialect Options, Debugging Options)
344         (Optimize Options, MicroBlaze Options)
345         (RS/6000 and PowerPC Options, RX Options, Code Gen Options): Likewise.
346         * doc/objc.texi (Method signatures)
347         (Fast enumeration protocol): Likewise.
348         * doc/tm.texi.in (Run-time Target, Register Arguments)
349         (Scheduling, Macros for Initialization, Misc): Likewise.
350         * doc/tm.texi: Renerate.
351
352 2010-12-23  Nicola Pero  <nicola.pero@meta-innovation.com>
353
354         * doc/objc.texi (Modern GNU Objective-C runtime API): Mention that
355         reference documentation for functions in the API is in the header
356         files.
357         (Messaging with the GNU Objective-C runtime, Dynamically
358         registering methods, Forwarding hook): New sections.
359
360 2010-12-22  Sebastian Pop  <sebastian.pop@amd.com>
361
362         PR tree-optimization/47019
363         * sese.h (scev_analyzable_p): Parameters of a SCoP are SCEV analyzable.
364
365 2010-12-22  Nathan Froyd  <froydnj@codesourcery.com>
366
367         * c-aux-info.c (gen_formal_list_for_type): Use prototype_p.
368         * c-decl.c (diagnose_arglist_conflict): Likewise.
369         (diagnose_mismatched_decls, merge_decls): Likewise.
370         (c_builtin_function, c_builtin_function_ext_scope): Likewise.
371         (start_decl, start_function): Likewise.
372         * c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise.
373         * config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise.
374         * config/mep/mep.c (mep_validate_interrupt): Likewise.
375         * config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise.
376         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
377         * config/sh/sh.c (sh_init_cumulative_args): Likewise.
378         * config/sparc/sparc.c (init_cumulative_args): Likewise.
379         * dwarf2out.c (add_prototyped_attribute): Likewise.
380         (gen_subprogram_die): Likewise.
381         * ipa-type-escape.c (check_function_parameter_and_return_types):
382         Likewise.
383         (check_call): Likewise.
384         * tree-ssa.c (useless_type_conversion_p): Likewise.
385
386 2010-12-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
387
388         * config/spu/spu.md ("mov<mode>"): Use nonimmediate_operand
389         predicate for destination operand.
390         * config/spu/spu.c (spu_expand_mov): If move destination is an
391         invalid subreg, perform move in the subreg's inner mode instead.
392
393 2010-12-22  Martin Jambor  <mjambor@suse.cz>
394
395         PR tree-optimization/45934
396         PR tree-optimization/46302
397         PR tree-optimization/46987
398         * gimple-fold.c (get_base_binfo_for_type): Removed.
399         (gimple_get_relevant_ref_binfo): Likewise.
400         (gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
401         removed parameter inplace, updated the caller.
402         * gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
403         * ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
404         (ipcp_discover_new_direct_edges): Do not do devirtualization based on
405         constants.
406         * ipa-prop.c (compute_known_type_jump_func): Use
407         get_ref_base_and_extent and get_binfo_at_offset instead of
408         gimple_get_relevant_ref_binfo.
409         (compute_known_type_jump_func): Likewise.
410         (update_jump_functions_after_inlining): Do not derive types from
411         constants.
412         (try_make_edge_direct_virtual_call): Likewise.
413         * tree.c (get_binfo_at_offset): Get type from non-artificial fields.
414
415 2010-12-22  Joseph Myers  <joseph@codesourcery.com>
416
417         * config/svr4.h: Remove.
418         * system.h (USING_SVR4_H, SVR4_ASM_SPEC): Poison.
419         * config.gcc, config/bfin/bfin.h, config/cris/cris.h,
420         config/fr30/fr30.h, config/frv/frv.h, config/i386/openbsdelf.h,
421         config/i386/vx-common.h, config/ia64/elf.h, config/ia64/ia64.h,
422         config/ia64/sysv4.h, config/iq2000/iq2000.h, config/m68k/linux.h,
423         config/m68k/m68kelf.h, config/mips/mips.h, config/mips/vxworks.h,
424         config/moxie/moxie.h, config/netbsd-aout.h, config/openbsd.h,
425         config/rs6000/sysv4.h, config/sh/elf.h, config/sh/sh.h,
426         config/sol2.h, config/sparc/sysv4.h, config/stormy16/stormy16.h,
427         config/v850/v850.h, config/vxworks.h: Remove or update comments
428         referring to svr4.h.
429
430 2010-12-22  Andrey Belevantsev  <abel@ispras.ru>
431
432         PR rtl-optimization/45352
433         PR rtl-optimization/46521
434         PR rtl-optimization/46522
435         * sel-sched.c (reset_sched_cycles_in_current_ebb): Recheck the
436         DFA state on the last iteration of the advancing loop.
437         (sel_sched_region_1): Propagate the rescheduling bit to the next
438         block also for empty blocks.
439
440 2010-12-22  Alexandre Oliva  <aoliva@redhat.com>
441
442         PR debug/46724
443         * function.c (assign_parms_augmented_arg_list): Name and mark
444         DECL of result address as NAMELESS rather than IGNORED.
445         (assign_parms): Set DECL_VALUE_EXPR for indirect result.
446         * tree.h (tree_decl_common::decl_flag_2): Document RESULT_DECL.
447         (DECL_HAS_VALUE_EXPR_P): Accept RESULT_DECL.
448         * dwarf2out.c (loc_list_from_tree) <RESULT_DECL>: Use
449         DECL_VALUE_EXPR.
450         * dbxout.c (dbxout_expand_expr) <RESULT_DECL>: Likewise.
451         * var-tracking.c (vt_add_function_parameter): New, split out of...
452         (vt_add_function_parameters): ... this.  Handle incoming
453         pointer to hold result.
454
455 2010-12-22  Jie Zhang  <jie@codesourcery.com>
456
457         * config/arm/arm.c (output_move_double): Update the comment
458         above the function to reflect the current implementation.
459
460 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
461
462         De-hookize profile infrastructure.
463         * value-prof.c (value_prof_hooks): Remove.
464         (struct value_prof_hooks): Remove.
465         (gimple_value_prof_hooks): Remove.
466         (gimple_register_value_prof_hooks): Remove.
467         (find_values_to_profile): Remove.
468         (value_profile_transformations): Remove.
469         (gimple_value_profile_transformations): No longer static.
470         (gimple_find_values_to_profile): Likewise.
471         * value-prof.h (gimple_register_value_prof_hooks): Remove prototype.
472         (find_values_to_profile): Likewise.
473         (value_profile_transformations): Likewise.
474         (tree_register_profile_hooks): Likewise.
475         (struct profile_hooks): Remove.
476         (tree_profile_hooks): Remove.
477         (gimple_find_values_to_profile): New protoype.
478         (gimple_value_profile_transformations): Likewise.
479         (gimple_init_edge_profiler): Likewise.
480         (gimple_gen_edge_profiler): Likewise.
481         (gimple_gen_interval_profiler): Likewise.
482         (gimple_gen_pow2_profiler): Likewise.
483         (gimple_gen_one_value_profiler): Likewise.
484         (gimple_gen_ic_profiler): Likewise.
485         (gimple_gen_ic_func_profiler): Likewise.
486         (gimple_gen_const_delta_profiler): Likewise.
487         (gimple_gen_average_profiler): Likewise.
488         (gimple_gen_ior_profiler): Likewise.
489         * profile.c (profile_hooks): Remove.
490         (instrument_edges): Call profiling functions directly instead
491         of through removed profile_hooks.
492         (instrument_values): Likewise.
493         (branch_prob): Call gimple_find_values_to_profile instead of
494         removed find_values_to_profile.
495         Call gimple_init_edge_profiler instead of removed hook.
496         (tree_register_profile_hooks): Remove.
497         * tree-profile.c (tree_init_ic_make_global_vars): Rename to
498         init_ic_make_global_vars.
499         (tree_init_edge_profiler): Rename to gimple_init_edge_profiler
500         and no longer static.
501         (tree_gen_edge_profiler, tree_gen_interval_profiler,
502         tree_gen_pow2_profiler, tree_gen_one_value_profiler,
503         tree_gen_ic_profiler, tree_gen_ic_func_profiler,
504         tree_gen_const_delta_profiler, tree_gen_average_profiler,
505         tree_gen_ior_profiler): Similarly renamed and no longer static.
506         (tree_profiling): Do not initialize tree profiling hooks.
507         (tree_profile_hooks): Remove.
508
509 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
510
511         PR target/46880
512         * config/i386/sse.md (sse2_loadlpd, sse2_movsd): Fix shufpd source
513         operand.
514
515 2010-12-21  Ira Rosen  <irar@il.ibm.com>
516
517         PR tree-optimization/47001
518         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
519         the loads in reduction are different and there are no gaps between
520         them.
521
522 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
523
524         PR middle-end/45310
525         * tree-ssa-phiprop.c (propagate_with_phi): Remove statement
526         completely from the function, including EH traces.
527
528 2010-12-21  Steven Bosscher  <steven@gcc.gnu.org>
529
530         PR rtl-optimization/46755
531         * ira.c (ira): If some dead edges were removed, find and delete
532         any blocks that might have become unreachable.
533
534 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
535
536         PR rtl-optimization/47008
537         * postreload.c (reload_combine_note_store): Also handle
538         PRE_MODIFY and POST_MODIFY.
539
540 2010-12-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
541
542         * config/arm/arm.c (require_pic_register): Set INSN_LOCATOR for all
543         instructions injected into the prologue to prologue_locator.
544
545 2010-12-21  Jan Hubicka   <jh@suse.cz>
546
547         PR middle-end/47000
548         * tree-inline.c (estimate_operator_cost): Handle VIEW_CONVERT_EXPR.
549
550 2010-12-21  Jie Zhang  <jie@codesourcery.com>
551
552         * config/arm/arm-ldmstm.ml: Fix a typo in comment.
553
554 2010-12-21  Jakub Jelinek  <jakub@redhat.com>
555
556         PR middle-end/45852
557         * expr.c (store_expr): Ignore alt_rtl if equal to target,
558         but has side-effects.
559
560 2010-12-21  Anatoly Sokolov  <aesok@post.ru>
561
562         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Remove.
563         * config/sh/sh-protos.h (secondary_reload_info, sh_secondary_reload):
564         Remove forward declaration.
565         * config/sh/sh.c (sh_preferred_reload_class): New function.
566         (sh_secondary_reload): Make static.
567         (TARGET_PREFERRED_RELOAD_CLASS): Define.
568
569 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
570
571         * config/alpha/linux.h (OPTION_GLIBC): Define differently if
572         SINGLE_LIBC.
573         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC):
574         Define differently if SINGLE_LIBC.
575         * config/rs6000/linux.h (OPTION_GLIBC): Define differently if
576         SINGLE_LIBC.
577         * config/rs6000/linux64.h (OPTION_GLIBC): Define differently if
578         SINGLE_LIBC.
579         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
580         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu): Define
581         SINGLE_LIBC instead of OPTION_GLIBC.
582         (*-*-uclinux*): Define DEFAULT_LIBC and SINGLE_LIBC.
583         (bfin*-uclinux*, moxie-*-uclinux*, m68k-*-uclinux*): Don't define
584         DEFAULT_LIBC or use linux.opt.
585
586 2010-12-20  Richard Henderson  <rth@redhat.com>
587
588         * config/mn10300/mn10300.c (mn10300_legitimize_pic_address): Generate
589         UNSPEC patterns by hand, with the proper mode; use gen_const_mem.
590         * config/mn10300/mn10300.md (call, call_value): Generate UNSPEC_PLT
591         by hand, with the proper mode.
592         (symGOT2reg, symGOT2reg_i, symGOTOFF2reg): Remove.
593         (symGOTOFF2reg_i, sym2PIC, sym2PLT): Remove.
594
595 2010-12-20  Sanjin Liu  <scliu@faraday-tech.com>
596             Mingfeng Wu  <mingfeng@faraday-tech.com>
597
598         * config/arm/arm-cores.def: Add Faraday CPU support -
599         fa526/fa626/fa606te/fa626te/fmp626/fa726te.
600         * config/arm/arm-tune.md: Regenerate.
601         * config/arm/arm.c (arm_fa726te_tune): New tune_params for fa726te
602         (fa726te_sched_adjust_cost): New cost function for fa726te.
603         (arm_issue_rate): Add fa726te.
604         * config/arm/arm.md (generic_sched): Add Faraday cores to generic_sched
605         and include machine description files.
606         * config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Add fa526 and fa626.
607         * config/arm/t-arm (MD_INCLUDES): Include machine description files for
608         Faraday cores.
609         * config/arm/t-arm-elf: Add multilib option for Faraday cores.
610         * config/arm/t-linux-eabi: Add multilib option for Faraday cores except
611         fa526 and fa626.
612         * doc/invoke.texi: Document -mcpu for Faraday cores.
613         * config/arm/fa526.md: New file.
614         * config/arm/fa606te.md: New file.
615         * config/arm/fa626te.md: New file.
616         * config/arm/fmp626.md: New file.
617         * config/arm/fa726te.md: New file.
618
619 2010-12-20  Yvan Roux  <yvan.roux@st.com>
620
621         * config/arm/lib1funcs.asm (ARM_DIV_BODY case __OPTIMIZE_SIZE__): Fix
622         condition on IT instruction for early termination.
623
624 2010-12-20  Joseph Myers  <joseph@codesourcery.com>
625
626         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't define.
627         (DBX_REGISTER_NUMBER): Define.
628         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Define.
629         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Define.
630         * config/rs6000/sysv4.h (SIZE_TYPE): Define.
631         (ASM_SPEC): Define without using SVR4_ASM_SPEC.
632         (DBX_REGISTER_NUMBER): Undefine.
633         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
634         powerpc-*-eabisim*, powerpc-*-elf*, powerpc-*-eabialtivec*,
635         powerpc-xilinx-eabi*, powerpc-*-eabi*, powerpc-*-rtems*,
636         powerpc-*-linux* | powerpc64-*-linux*, powerpc64-*-gnu*,
637         powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
638         powerpc-wrs-vxworks|powerpc-wrs-vxworksae, powerpcle-*-elf*,
639         powerpcle-*-eabisim*, powerpcle-*-eabi*): Don't use svr4.h.
640
641 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
642             Jan Hubicka  <jh@suse.cz>
643
644         PR middle-end/46916
645         * opts.c (finish_options): Enable -freorder-functions
646         when -freorder-blocks-and-partition is active.
647
648 2010-12-20  Iain Sandoe  <iains@gcc.gnu.org>
649
650         PR c++/46904
651         PR middle-end/46916
652         PR target/46950
653         * config/darwin.c (generating_for_darwin_version): New var.
654         (darwin_text_section): Remove.
655         (darwin_rodata_section): Do not check function section here.
656         (darwin_emit_unwind_label): Do not emit for Darwin >= 9.
657         Emit distinct labels for successive calls for the same decl.
658         (darwin_override_options): Set generating_for_darwin_version.
659         Add FIXME and disable -freorder-blocks-and-partition.
660         Suppress automatic asynchronous unwind tables for m32.
661         Switch off -freorder-blocks-and-partition when unwind tables
662         will be generated.  Update to use generating_for_darwin_version.
663         (darwin_function_section): Check for cases that need to be placed
664         in coalesced sections.
665         * config/darwin-sections.def: Define hot, cold, startup and
666         exit sections for both coalesced and regular code.
667         * config/darwin.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Delete.
668         * config/darwin10.h (TARGET_ASM_EMIT_UNWIND_LABEL): Delete.
669
670 2010-12-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
671
672         * doc/cppopts.texi: Use @var when appropriate.
673         * doc/extend.texi (Structure-Packing Pragmas): Likewise.
674         * doc/gimple.texi (Logical Operators)
675         (Adding a new GIMPLE statement code): Likewise.
676         * doc/invoke.texi (Target Options, Precompiled Headers): Likewise.
677         * doc/plugins.texi (Plugins): Likewise.
678
679         * doc/install.texi (Configuration, Building, Testing, Specific):
680         Remove leading whitespace from examples.
681
682 2010-12-19  Andi Kleen  <ak@linux.intel.com>
683
684         PR lto/46905
685         * collect2.c (main): Handle -fno-lto.
686         * opts.c (common_handle_option): Handle -fno-lto.
687
688 2010-12-19  Eric Botcazou  <ebotcazou@adacore.com>
689
690         PR target/46729
691         * config/sparc/sparc.h (GLOBAL_OFFSET_TABLE_REGNUM): New macro.
692         (PIC_OFFSET_TABLE_REGNUM): Rewrite in terms of above macro.
693         * config/sparc/sparc.c (pic_helper_needed): Delete.
694         (global_offset_table): Likewise.
695         (pic_helper_symbol): Rename to...
696         (got_helper_rtx): ...this.
697         (global_offset_table_rtx): New global variable.
698         (sparc_got_symbol): Likewise.
699         (sparc_got): New static function.
700         (check_pic): Use local variable and call sparc_got.
701         (sparc_tls_symbol): Initialize to NULL_RTX.
702         (sparc_tls_got): In non-PIC mode, reload the GOT register for Sun TLS
703         and 32-bit ABI and copy the GOT symbol to a new register otherwise.
704         (get_pc_thunk_name): Rename local variable.
705         (gen_load_pcrel_sym): New wrapper around load_pcrel_sym{si,di}.
706         (load_pic_register): Rename to...
707         (load_got_register): ...this.  Adjust and call gen_load_pcrel_sym.
708         (sparc_expand_prologue): Do not test flag_pic.
709         (sparc_output_mi_thunk): Use pic_offset_table_rtx directly.
710         (sparc_file_end): Test got_helper_rtx instead of pic_helper_needed.
711         Rename local variable and do not call get_pc_thunk_name again.
712         * config/sparc/sparc.md (load_pcrel_sym): Add operand #3.
713
714 2010-12-19  Dave Korn  <dave.korn.cygwin@gmail.com>
715
716         PR middle-end/46674
717         PR middle-end/46221
718         * varasm.c (symbol_alias_set_t): New typedef for derived pointer_set
719         wrapper class.
720         (symbol_alias_set_create): New wrapper function.
721         (symbol_alias_set_destroy): Likewise.
722         (symbol_alias_set_contains): Likewise.
723         (symbol_alias_set_insert): Likewise.
724         (compute_visible_aliases): Use the above and return symbol_alias_set_t,
725         not a pointer_set.
726         (remove_unreachable_alias_pairs): Adjust likewise to match.
727         (finish_aliases_1): Likewise.
728
729 2010-12-19  Chung-Lin Tang  <cltang@codesourcery.com>
730
731         * config/arm/arm.c (arm_legitimate_index_p): Add VFP load/store
732         index range case. Change to SF/DFmode tests to avoid capturing HFmode.
733         (thumb2_legitimate_index_p): Same.
734
735 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
736
737         PR tree-optimization/46969
738         * tree-parloops.c (struct reduction_info): Add reduc_version.
739         (reduction_info_hash): Return reduc_version field.
740         (reduction_phi): Set reduc_version to gimple_uid (phi).
741         (build_new_reduction): Set reduc_version to SSA_NAME_VERSION of
742         phi result.
743         (set_reduc_phi_uids): New function.
744         (gather_scalar_reductions): Call it at the end through htab_traverse.
745
746 2010-12-18  Nicola Pero  <nicola.pero@meta-innovation.com>
747
748         * c-parser.c (c_parser_objc_try_catch_finally_statement): Call
749         objc_maybe_warn_exceptions.
750         (c_parser_objc_synchronized_statement): Call
751         objc_maybe_warn_exceptions.
752
753 2010-12-18  Jakub Jelinek  <jakub@redhat.com>
754
755         PR tree-optimization/46985
756         * tree-scalar-evolution.c (instantiate_scev_r): If chrec is NULL,
757         return it immediately.
758
759 2010-12-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
760
761         PR target/46915
762         * config/pa/pa.c (branch_to_delay_slot_p): Use next_active_insn instead
763         of next_real_insn.  Search forward checking for both ASM_INPUT and
764         ASM_OPERANDS asms until exit condition is found.
765         (branch_needs_nop_p): Likewise.
766         (use_skip_p): New function.
767         (output_cbranch): Use use_skip_p.
768         (output_bb, output_bvb): Likewise.
769
770 2010-12-18  Kai Tietz  <kai.tietz@onevision.com>
771
772         PR target/36834
773         * config/i386/i386.c (ix86_keep_aggregate_return_pointer):
774         New local function.
775         (ix86_return_pops_args): Use ix86_keep_aggregate_return_pointer
776         function instead of KEEP_AGGREGATE_RETURN_POINTER.
777         (ix86_handle_callee_pop_aggregate_return): New handler.
778         (ix86_attribute_table): Add new attribute
779         callee_pop_aggregate_return.
780         * doc/extend.texi (callee_pop_aggregate_return): Add
781         attribute documentation.
782
783 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
784
785         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS):
786         Only set sjlj exceptions for NeXT/m32.
787
788 2010-12-18  Iain Sandoe  <iains@gcc.gnu.org>
789
790         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION):
791         Only expose when not building for target.
792
793 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
794
795         * config/netbsd.opt, config/netbsd-elf.opt: New files.
796         * config.gcc (alpha*-*-netbsd*, arm*-*-netbsdelf*, arm*-*-netbsd*,
797         i[34567]86-*-netbsdelf*, i[34567]86-*-netbsd*, x86_64-*-netbsd*,
798         m68k*-*-netbsdelf*, mips*-*-netbsd*, powerpc-*-netbsd*,
799         sh*-*-netbsd*, sparc-*-netbsdelf*, sparc64-*-netbsd*,
800         vax-*-netbsdelf*, vax-*-netbsd*): Use these .opt files.
801
802 2010-12-17  Richard Henderson  <rth@redhat.com>
803
804         * regcprop.c (find_oldest_value_reg): Continue search instead of
805         failing if an element in the copy chain is of the wrong regclass.
806
807 2010-12-17  Paolo Bonzini  <bonzini@gnu.org>
808
809         PR c/20385
810         * function.c (used_types_insert): Handle ERROR_MARK.
811         * c-decl.c (grokdeclarator): Handle ERROR_MARK.
812         (declspecs_add_type): Leave error_mark_node in specs->type.
813         (finish_declspecs): Change it to integer_type_node here.
814         * c-parser.c (c_parser_peek_2nd_token): Move earlier.
815         (enum c_lookahead_kind): New.
816         (c_parser_next_token_starts_typename): New name of
817         c_parser_next_tokens_start_typename.  Accept lookahead enum
818         and handle it here instead of...
819         (c_parser_next_tokens_start_declaration): ... here.  Call it.
820         (c_parser_declspecs): Accept another argument.  Do not exit
821         on C_ID_ID if it is guessed to be an unknown typename.
822         (c_parser_parms_declarator): Use 2nd token to distinguish a K&R
823         declaration from an ANSI declaration starting with an unknown
824         typename.
825         (c_parser_struct_declaration, c_parser_objc_type_name,
826         c_parser_typeof_specifier, c_parser_declarator,
827         c_parser_direct_declarator_inner): Adjust calls.
828         (c_parser_parameter_declaration): Likewise.
829         (c_parser_type_name): Pass back an error_mark_node to the caller.
830         (c_parser_postfix_expression): Do error recovery when
831         c_parser_type_name returns NULL.
832
833 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
834
835         * config/i386/netware.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE): Define.
836         * config/i386/nto.h (LIB_SPEC, ASM_SPEC): Define.
837         (DBX_REGISTER_NUMBER): Undefine.
838         * config/i386/sol2.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
839         * config/i386/vxworksae.h (ASM_SPEC, SIZE_TYPE, PTRDIFF_TYPE):
840         Define.
841         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
842         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
843         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
844         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
845         i[3456x]86-*-netware*, i[34567]86-*-nto-qnx*,
846         i[34567]86-*-solaris2*,
847         i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae): Don't use svr4.h.
848
849 2010-12-17  H.J. Lu  <hongjiu.lu@intel.com>
850
851         * config/i386/i386.c (move_or_delete_vzeroupper_2): Replace
852         "BB [%i]" with "[bb %i]" in dump.
853         (move_or_delete_vzeroupper_1): Likewise.
854         (rescan_move_or_delete_vzeroupper): Likewise.  Always dump
855         upper 128bit state at exit.
856
857 2010-12-17  Joseph Myers  <joseph@codesourcery.com>
858
859         * config/interix.opt: New.
860         * config/interix.h (LINK_SPEC): Don't handle -soname*.
861         * config.gcc (i[34567]86-*-interix3*): Use interix.opt.
862
863 2010-12-17  Andrew Stubbs  <ams@codesourcery.com>
864
865         * config/arm/arm.md (maddhisi4, *maddhidi4): Use the canonical
866         operand order for plus.
867         Drop redundant % from constraints.
868
869 2010-12-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
870
871         * config/spu/t-spu-elf (LIB2FUNCS_EXCLUDE): Add _floattisf and
872         _floatunstisf.
873         * config/spu/spu.md ("floattisf2"): New expander.
874         ("floatunstisf2"): New insn pattern and splitter.
875         ("cgt_ti_m1"): New insn pattern.
876
877 2010-12-17  Bernd Schmidt  <bernds@codesourcery.com>
878
879         * config/arm/arm.c (arm_select_cc_mode): Before calling
880         arm_select_dominance_cc_mode for AND or IOR operations, ensure
881         that op is NE or EQ.
882
883 2010-12-17  Alexander Monakov  <amonakov@ispras.ru>
884
885         PR middle-end/46761
886         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Prefer
887         to use unadjusted UB.
888
889 2010-12-17  Dodji Seketeli  <dodji@redhat.com>
890
891         * dwarf2out.c (gen_type_die_with_usage): Do not try to emit debug
892         info for a redundant typedef that has DECL_ORIGINAL_TYPE set. Use
893         that underlying type instead.
894
895 2010-12-16  Jan Hubicka  <jh@suse.cz>
896
897         PR middle-end/44563
898         * ipa-inline.c: Update doplevel comment.
899         (cgraph_estimate_size_after_inlining): Remove times attribute.
900         (cgraph_mark_inline_edge): Update.
901         (cgraph_mark_inline): Remove.
902         (cgraph_estimate_growth): Update.
903         (cgraph_check_inline_limits): Remove one only argument.
904         (cgraph_edge_badness): Update.
905         (cgraph_decide_recursive_inlining): Update.
906         (cgraph_decide_inlining_of_small_function): Fix handling of
907         tree_can_inline_p  and call_stmt_cannot_inline_p.
908         (cgraph_flatten): Likewise.
909         (cgraph_decide_inlining): Update.
910         (cgraph_decide_inlining_incrementally): Fix handling of
911         call_stmt_cannot_inline_p.
912
913 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
914
915         * config/darwin.opt (dylinker, headerpad_max_install_names,
916         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
917         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
918         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
919         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
920         Driver options.
921         * config/darwin.h (LINK_SPEC): Remove '*' after
922         headerpad_max_install_names.
923
924 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
925
926         PR tree-optimization/46924
927         * graphite-sese-to-poly.c (detect_commutative_reduction): Do not
928         detect reductions outside the current SESE region.
929         * sese.h (stmt_in_sese_p): New.
930         (defined_in_sese_p): Call stmt_in_sese_p.
931
932 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
933
934         PR tree-optimization/46966
935         * graphite-sese-to-poly.c (build_scop_drs): Call free_gimple_bb for
936         for bbs that are removed from SCOP_BBS vector.
937
938 2010-12-16  Eric Botcazou  <ebotcazou@adacore.com>
939
940         * tree-ssa-sccvn.c (vn_reference_lookup_3): Always punt if the call to
941         get_ref_base_and_extent returns -1 as the max size.
942
943 2010-12-16  Konrad Eisele  <konrad@gaisler.com>
944             Eric Botcazou  <ebotcazou@adacore.com>
945
946         Support for LEON processor
947         * config.gcc (sparc-*-elf*): Deal with sparc-leon specifically.
948         (sparc-*-linux*): Likewise.
949         (sparc-*-rtems*): Remove Solaris left-overs.
950         (sparc*-*-*): Remove obsolete sparc86x setting.
951         (sparc-leon*): Default to --with-cpu=v8 and --with-tune=leon.
952         * doc/invoke.texi (SPARC Options): Document -mcpu/-mtune=leon.
953         * config/sparc/sparc.h (TARGET_CPU_leon): Define.
954         (TARGET_CPU_sparc86x): Delete.
955         (TARGET_CPU_cypress): Define as alias to TARGET_CPU_v7.
956         (TARGET_CPU_f930): Define as alias to TARGET_CPU_sparclite.
957         (TARGET_CPU_f934): Likewise.
958         (TARGET_CPU_tsc701): Define as alias to TARGET_CPU_sparclet.
959         (CPP_CPU_SPEC): Add entry for -mcpu=leon.
960         (enum processor_type): Add PROCESSOR_LEON.  Reorganize.
961         * config/sparc/sparc.c (leon_costs): New cost array.
962         (sparc_option_override): Add entry for TARGET_CPU_leon and -mcpu=leon.
963         Initialize cost array to leon_costs if -mtune=leon.
964         * config/sparc/sparc.md (cpu attribute): Add leon.  Reorganize.
965         Include leon.md scheduling description.
966         * config/sparc/leon.md: New file.
967         * config/sparc/t-elf: Do not assemble Solaris startup files.
968         * config/sparc/t-leon: New file.
969         * config/sparc/t-leon3: Likewise.
970
971 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
972
973         PR tree-optimization/43655
974         * tree-ssa-ter.c (is_replaceable_p): Don't use
975         gimple_references_memory_p for -O0, instead check for load
976         by looking at rhs.
977
978 2010-12-16  Sebastian Pop  <sebastian.pop@amd.com>
979
980         PR tree-optimization/46404
981         * graphite-clast-to-gimple.c (gloog): Call scev_reset.
982
983 2010-12-16  Anatoly Sokolov  <aesok@post.ru>
984
985         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
986         * config/sh/sh.c (sh_asm_output_addr_const_extra): New function.
987         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
988
989 2010-12-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
990
991         * config/spu/t-spu-elf (LIB2_SIDITI_CONV_FUNC): Define.
992         * config/spu/spu.h (MIN_UNITS_PER_WORD): Do not define.
993         (LIBGCC2_UNITS_PER_WORD): Define if not already defined.
994
995 2010-12-16  Jakub Jelinek  <jakub@redhat.com>
996
997         PR debug/46893
998         * cfgexpand.c (expand_debug_expr): If GET_MODE (op0) is VOIDmode,
999         use TYPE_MODE (TREE_TYPE (tem)) instead of mode1.
1000
1001 2010-12-16  Chung-Lin Tang  <cltang@codesourcery.com>
1002
1003         PR target/46883
1004         * config/arm/arm.md
1005         (zero_extendhisi2 for register input splitter): Change
1006         "register_operand" to "s_register_operand".
1007         (zero_extendqisi2 for register input splitter): Same.
1008
1009 2010-12-16  Jan Hubicka  <jh@suse.cz>
1010
1011         PR middle-end/46939
1012         * predic.c (predict_paths_leading_to_edge): New function.
1013         (apply_return_prediction): Use it.
1014         (predict_paths_for_bb): Do not special case abnormals.
1015
1016 2010-12-16  Joseph Myers  <joseph@codesourcery.com>
1017
1018         * config.gcc (powerpc-*-lynxos*): Don't add lynx.opt to
1019         extra_options twice.
1020
1021 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
1022
1023         * doc/tm.texi.in (US_SOFTWARE_GOFAST): Don't document.
1024         * doc/tm.texi: Regenerate.
1025         * system.h (US_SOFTWARE_GOFAST): Poison.
1026         * config.gcc (enable_gofast): Don't handle.
1027         * config/gofast.h: Remove.
1028         * config/mips/t-gofast: Remove.
1029         * config/fp-bit.c (US_SOFTWARE_GOFAST): Don't handle.
1030         * config/fp-bit.h (US_SOFTWARE_GOFAST): Don't handle.
1031         * config/mips/elforion.h: Don't mention GOFAST in comment.
1032         * config/mips/mips.c: Don't include gofast.h.
1033         (mips_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
1034         * config/mips/t-sr71k (dp-bit.c, fp-bit.c): Don't define
1035         US_SOFTWARE_GOFAST.
1036         * config/sparc/sparc.c: Don't include gofast.h.
1037         (sparc_init_libfuncs): Don't call gofast_maybe_init_libfuncs.
1038         * config/spu/t-spu-elf (dp-bit.c, fp-bit.c): Don't undefine
1039         US_SOFTWARE_GOFAST.
1040
1041 2010-12-14  Jan Hubicka  <jh@suse.cz>
1042
1043         * config/darwin.opt (dylinker, headerpad_max_install_names,
1044         keep_private_externs, nofixprebinding, nomultidefs, noprebind,
1045         noseglinkedit, object, prebind, prebind_all_twolevel_modules,
1046         preload, private_bundle, pthread, seglinkedit, twolevel_namespace,
1047         twolevel_namespace_hints, whatsloaded, whyload, y, Mach, X): New
1048         Driver options.
1049         * config/darwin.h (LINK_SPEC): Remove '*' after
1050         headerpad_max_install_names.
1051
1052 2010-12-14  Jan Hubicka  <jh@suse.cz>
1053
1054         * tree.c (get_file_function_name): Avoid using random seed on
1055         GLOBAL_sub_I and GLOBAL_sub_D.
1056
1057 2010-12-15  Martin Jambor  <mjambor@suse.cz>
1058
1059         PR tree-optimization/46053
1060         PR middle-end/46287
1061         PR middle-end/46242
1062         * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
1063         * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
1064         (gimple_fold_call): Declare.
1065         (gimple_adjust_this_by_delta): Likewise.
1066         * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
1067         all users.
1068         (cgraph_clone_edge): Create a copy of indirect_info also for direct
1069         edges.
1070         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
1071         parameters.
1072         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
1073         gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
1074         through thunks, in fact bail out if we encounter one, check that
1075         BINFO_VIRTUALS is not NULL.
1076         (gimple_adjust_this_by_delta): New function.
1077         (gimple_fold_obj_type_ref): Removed.
1078         (gimple_fold_obj_type_ref_call): New function.
1079         (fold_gimple_call): Renamed to gimple_fold_call, made external.
1080         Updated users.  Call gimple_fold_obj_type_ref_call instead of
1081         gimple_fold_obj_type_ref.
1082         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
1083         thunk deltas.
1084         (ipcp_discover_new_direct_edges): Likewise.
1085         * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
1086         Updated callers.
1087         (ipa_write_indirect_edge_info): Stream thunk_delta.
1088         (ipa_read_indirect_edge_info): Likewise.
1089         * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
1090         gimple_fold_obj_type_ref.
1091
1092 2010-12-15  Alexander Monakov  <amonakov@ispras.ru>
1093
1094         PR rtl-optimization/46649
1095         * sel-sched-ir.c (purge_empty_blocks): Unconditionally skip the first
1096         basic block in the region.
1097
1098 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
1099
1100         * config/stormy16/stormy16.h (LINK_SPEC, WCHAR_TYPE): Define.
1101         * config.gcc (xstormy16-*-elf): Don't use svr4.h.
1102
1103 2010-12-15  Joseph Myers  <joseph@codesourcery.com>
1104
1105         * config/rx/rx.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1106         * config.gcc (rx-*-elf*): Don't use svr4.h.
1107
1108 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
1109
1110         PR tree-optimization/46845
1111         * sese.c (scalar_evolution_in_region): Handle scop parameters
1112         before scev analysis.
1113
1114 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
1115
1116         PR tree-optimization/46928
1117         * tree-data-ref.c (analyze_overlapping_iterations): Handle A[p] == A[p]
1118         in data dependence analysis with p a parameter of the loop.
1119
1120 2010-12-14  Sebastian Pop  <sebastian.pop@amd.com>
1121
1122         PR tree-optimization/45948
1123         * tree-loop-distribution.c (ssa_name_has_uses_outside_loop_p): New.
1124         (stmt_has_scalar_dependences_outside_loop): New.
1125         (stmt_generated_in_another_partition): New.
1126         (add_scalar_computations_to_partition): New.
1127         (rdg_build_partitions): Call add_scalar_computations_to_partition.
1128
1129 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
1130
1131         * config/arc/arc.h (LIB_SPEC): Define.
1132         * config.gcc (arc-*-elf*): Don't use svr4.h.
1133
1134 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
1135
1136         * config/sh/elf.h (LIB_SPEC): Define.
1137         * config.gcc (sh-*-elf* | sh[12346l]*-*-elf* | sh-*-symbianelf* |
1138         sh[12346l]*-*-symbianelf* | sh-*-linux* | sh[2346lbe]*-*-linux* |
1139         sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* |
1140         sh5l*-*-netbsd* | sh64-*-netbsd* | sh64l*-*-netbsd*, sh-*-rtems*,
1141         sh-wrs-vxworks): Don't use svr4.h.
1142
1143 2010-12-14  Jan Hubicka  <jh@suse.cz>
1144
1145         PR lto/46940
1146         PR lto/44463
1147         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Construct nodes
1148         for aliases when they are used.
1149
1150 2010-12-14  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * config.gcc (sparc-*-elf*, sparc-*-rtems*, sparc-*-linux*,
1153         sparc-*-netbsdelf*, sparc*-*-solaris2*, sparc-wrs-vxworks,
1154         sparc64-*-elf*, sparc64-*-rtems*, sparc64-*-linux*,
1155         sparc64-*-netbsd*, sparc64-*-openbsd*): Don't use svr4.h.
1156
1157 2010-12-14  Thomas Klein  <th.r.klein@web.de>
1158
1159         * config/arm/arm.c (arm_expand_prologue): Report the static stack
1160         size if -fstack-usage is used.
1161         (thumb1_expand_prologue): Likewise.
1162
1163 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1164
1165         PR debug/46885
1166         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Use gsi_last_bb
1167         instead of gsi_last_nondebug_bb if bump_in_latch.
1168
1169         PR tree-optimization/46909
1170         * gimple-fold.c (and_var_with_comparison_1): Save partial
1171         result even in the is_and case, if both partial results
1172         are the same, return it.
1173         (or_var_with_comparison_1): Use is_or predicate instead of
1174         innercode == TRUTH_OR_EXPR test.  Save partial result
1175         even in the is_or case, if both partial results are the
1176         same, return it.  In the !is_or case when both partial
1177         results are the same, return the partial result instead
1178         of boolean_true_node.
1179
1180 2010-12-14  Jan Hubicka  <jh@suse.cz>
1181
1182         PR middle-end/46667
1183         * varasm.c (assemble_start_function): Do not call
1184         resolve_unique_section.
1185         * cfgexpand.c (gimple_expand_cfg): Resolve it here.
1186
1187 2010-12-14  Alexander Monakov  <amonakov@ispras.ru>
1188
1189         PR rtl-optimization/46875
1190         * sched-vis.c (print_pattern): Dump "sequence" for ADDR_VECs.
1191         * sel-sched-ir.c (bb_has_removable_jump_to_p): Forbid table jumps.
1192
1193 2010-12-14  Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1194
1195         * config/h8300/h8300.md (define_split) : Add condition for
1196         "and with single_zero" splitter to handle 16-bit const operands.
1197         * config/h8300/h8300.md (define_split) : Add condition for
1198         "ior with single_one" splitter to handle 16-bit const operands.
1199         * config/h8300/h8300.md (define_split) : Add condition for
1200         "xor with single_one" splitter to handle 16-bit const operands.
1201         * testsuite/gcc.dg/h8300-bit-insn-ice.c: New.
1202
1203 2010-12-13  Jan Hubicka  <jh@suse.cz>
1204
1205         PR middle-end/45388
1206         * ipa.c (cgraph_build_static_cdtor_1): Break out from ...  Add FINAL
1207         parameter.
1208         (cgraph_build_static_cdtor): ... here.
1209         (build_cdtor): Use cgraph_build_static_cdtor_1.
1210
1211 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1212
1213         * config/m32c/m32c.h (ENDFILE_SPEC, LINK_SPEC, SIZE_TYPE,
1214         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1215         * config.gcc (m32c-*-rtems*, m32c-*-elf*): Don't use svr4.h.
1216
1217 2010-12-14  Bernd Schmidt  <bernds@codesourcery.com>
1218
1219         PR rtl-optimization/44374
1220         Reapply patch with fixes.
1221         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
1222         * df-core.c (df_set_bb_dirty): Set it.
1223         * ifcvt.c (find_memory): Remove function.
1224         (dead_or_predicable): Use can_move_insns_across.
1225         * df.h (can_move_insns_across): Declare function.
1226         * cfgcleanup.c (block_was_dirty): New static variable.
1227         (flow_find_head_matching_sequence): Test for epilogue notes.
1228         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
1229         than df_get_bb_dirty.
1230         (try_head_merge_bb): New static function.
1231         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
1232         is set.
1233         * df-problems.c: Include "target.h"
1234         (df_simulate_find_uses): New static function.
1235         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
1236         (find_memory, find_memory_store): New static functions.
1237         (can_move_insns_across): New function.
1238         * Makefile.in (df-problems.o): Update dependencies.
1239
1240 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1241
1242         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1243         (DBX_REGISTER_NUMBER): Undefine.
1244         * config/xtensa/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1245         (DBX_REGISTER_NUMBER): Undefine.
1246         * config.gcc (xtensa*-*-elf*, xtensa*-*-linux*): Don't use svr4.h.
1247
1248 2010-12-13  Jack Howarth <howarth@bromo.med.uc.edu>
1249             Joseph Myers <joseph@codesourcery.com>
1250
1251         PR bootstrap/46650
1252         * system.h: Include cstring for cxx bootstrap.
1253
1254 2010-12-13  Jakub Jelinek  <jakub@redhat.com>
1255
1256         PR lto/46879
1257         * lto-streamer-out.c (output_gimple_stmt): Never replace first
1258         GIMPLE_DEBUG argument with MEM_REF.
1259
1260         PR debug/46867
1261         * var-tracking.c (emitted_notes, string_pointer_flags): Removed.
1262         (emit_note_insn_var_location): Remove ENABLE_RTL_CHECKING verification.
1263         (vt_emit_notes): Don't initialize and destroy emitted_notes.
1264
1265 2010-12-13  Nathan Froyd  <froydnj@codesourcery.com>
1266
1267         PR target/46040
1268         * config.gcc (arm*-*-linux-*eabi): Use bpabi-lib.h.
1269         (arm*-*-uclinux*eabi, arm*-*-eabi*): Likewise.
1270
1271 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1272
1273         * config/v850/v850.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1274         WCHAR_TYPE_SIZE): Define.
1275         * config.gcc (v850e1-*-*, v850e-*-*, v850-*-*): Don't use svr4.h.
1276
1277 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1278
1279         * config.gcc (s390-*-linux*, s390x-*-linux*, s390x-ibm-tpf*):
1280         Don't use svr4.h.
1281
1282 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1283
1284         * config/mn10300/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1285         WCHAR_TYPE_SIZE): Undefine.
1286         * config/mn10300/mn10300.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1287         WCHAR_TYPE_SIZE): Define.
1288         * config.gcc (mn10300-*-*): Don't use svr4.h.
1289
1290 2010-12-13  Joseph Myers  <joseph@codesourcery.com>
1291
1292         * config/m68k/linux.h (DBX_REGISTER_NUMBER): Undefine and redefine.
1293         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1294         * config.gcc (m68k-*-uclinux*, m68k-*-linux*): Don't use svr4.h.
1295
1296 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1297
1298         PR debug/46756
1299         * jump.c (mark_all_labels): Skip debug insns.
1300
1301 2010-12-13  Alexandre Oliva  <aoliva@redhat.com>
1302
1303         PR debug/46782
1304         * cfgcleanup.c (try_forward_edges): Skip debug insns.
1305
1306 2010-12-12  Jan Hubicka  <jh@suse.cz>
1307             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1308
1309         * varasm.c (default_function_section): Check flag_reorder_functions
1310         and targetm.have_named_sections.
1311         * config/darwin.c (darwin_function_section): Check
1312         flag_reorder_functions.
1313
1314 2010-12-12  Finn Thain  <fthain@telegraphics.com.au>
1315
1316         PR target/46179
1317         * config/m68k/m68k.c (handle_move_double): Insert calls to
1318         m68k_final_prescan_insn to clean up @TLS operand syntax.
1319
1320 2010-12-10  Sebastian Pop  <sebastian.pop@amd.com>
1321
1322         PR tree-optimization/43023
1323         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p):
1324         Removed.
1325         (stores_zero_from_loop): Call stmt_stores_zero.
1326         * tree-data-ref.h (stmt_stores_zero): New.
1327         * tree-loop-distribution.c (generate_memset_zero): Do not return a
1328         boolean.  Call gcc_assert on stride_of_unit_type_p.
1329         (generate_builtin): Call stmt_stores_zero.
1330         (rdg_flag_all_uses): Removed.
1331         (rdg_flag_similar_memory_accesses): Removed.
1332         (build_rdg_partition_for_component): Removed parameter
1333         other_stores.  Removed call to rdg_flag_similar_memory_accesses.
1334         (can_generate_builtin): New.
1335         (similar_memory_accesses): New.
1336         (fuse_partitions_with_similar_memory_accesses): New.
1337         (rdg_build_partitions): Call
1338         fuse_partitions_with_similar_memory_accesses.
1339
1340 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1341
1342         PR rtl-optimization/46804
1343         * regmove.c (optimize_reg_copy_3): Look for REG_EQUAL note
1344         on the setter of src_reg rather than on insn.  If it is
1345         equal to the setter's original SET_SRC, replace it with its
1346         zero or sign extension instead of dropping it.
1347
1348 2010-12-10  Richard Guenther  <rguenther@suse.de>
1349
1350         PR lto/46808
1351         * lto-symtab.c (lto_symtab_merge_decls_2): Avoid type warnings
1352         after errors.
1353         (lto_symtab_merge_decls_1): Adjust.
1354
1355 2010-12-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1356
1357         PR middle-end/46674
1358         PR lto/43157
1359         * target.def (mangle_assembler_name): New target asm_out hook.
1360         * targhooks.c (default_mangle_assembler_name): Add default hook
1361         implementation.
1362         * targhooks.h (default_mangle_assembler_name): Add prototype.
1363         * lto-symtab.c (lto_symtab_register_decl): Use new hook when
1364         processing DECL_ASSEMBLER_NAMEs for lto symtabs.
1365         (lto_symtab_get_resolution): Likewise.
1366         (lto_cgraph_replace_node): Likewise.
1367         (lto_symtab_prevailing_decl): Likewise.
1368         * lto-streamer-out.c (write_symbol): Likewise.
1369         * doc/tm.texi.in (TARGET_MANGLE_ASSEMBLER_NAME): Add @hook directive.
1370         * doc/tm.texi: Regenerate.
1371         * config/i386/cygming.h (TARGET_MANGLE_ASSEMBLER_NAME): Define to
1372         point at i386_pe_mangle_assembler_name.
1373         * config/i386/winnt.c (i386_pe_mangle_assembler_name): New function.
1374         * config/i386/i386-protos.h (i386_pe_mangle_assembler_name): Add
1375         prototype.
1376
1377 2010-12-10  Nathan Froyd  <froydnj@codesourcery.com>
1378
1379         * c-typeck.c (readonly_error): Delete.
1380
1381 2010-12-10  Jakub Jelinek  <jakub@redhat.com>
1382
1383         PR rtl-optimization/46865
1384         * rtl.c (rtx_equal_p_cb, rtx_equal_p): For last operand of
1385         ASM_OPERANDS and ASM_INPUT if integers are different, call locator_eq.
1386         * jump.c (rtx_renumbered_equal_p): Likewise.
1387
1388         PR tree-optimization/46864
1389         * tree-ssa-loop-im.c (loop_suitable_for_sm): Return false even
1390         when there are EDGE_EH exit edges.
1391
1392 2010-12-10  Tobias Burnus  <burnus@net-b.de>
1393
1394         PR fortran/46540
1395         * configure.ac: Handle --disable-libquadmath-support.
1396         * doc/install.texi: Document --disable-libquadmath and
1397         --disable-libquadmath-support
1398         * configure: Regenerate.
1399         * config.in: Regenerate.
1400
1401 2010-12-10  Jack Howarth  <howarth@bromo.med.uc.edu>
1402             Iain Sandoe  <iains@gcc.gnu.org>
1403
1404         PR 43751/target
1405         * config/darwin9.h (DSYMUTIL_SPEC): Add fortran source types.
1406
1407 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1408
1409         * config/rs6000/rs6000.c
1410         (rs6000_darwin64_record_arg_advance_recurse): Name register increment
1411         explicitly.  (rs6000_darwin64_record_arg_recurse): Make sure we split
1412         long doubles when we run out of regs.   Also flag that this requires
1413         stack and therefore cannot be returned by value.
1414         (rs6000_darwin64_record_arg): Update comment.
1415         (rs6000_function_value): Likewise.
1416
1417 2010-12-10  Nicola Pero  <nicola.pero@meta-innovation.com>
1418
1419         * c-parser.c (c_parser_objc_class_definition): Recognize
1420         Objective-C 2.0 class extensions.
1421
1422 2010-12-10  Iain Sandoe <iains@gcc.gnu.org>
1423
1424         * config/darwin.c: Remove c-tree.h and c-lang.h
1425         * config/t-darwin: Remove dependencies on c-tree.h and c-lang.h.
1426
1427 2010-12-10  Joern Rennecke  <amylaar@spamcop.net>
1428
1429         PR target/46881
1430         * doc/tm.texi: Regenerate.
1431         * target.def: Fix "preferred" spelling.  Refer to rclass by its
1432         exact name.
1433         * config/arm/arm.c (arm_preferred_rename_class): Rename parameter class
1434         to rclass.
1435
1436 2010-12-09  Paul Koning  <ni1d@arrl.net>
1437
1438         * config/pdp11/pdp11-protos.h (output_move_double,
1439         output_move_quad): Delete.
1440         (output_move_multiple, pdp11_expand_operands): New functions.
1441         (pdp11_action, pdp11_partorder): New enums.
1442         * config/pdp11/pdp11.md (movdi, movsi, movdf, movsf): Use
1443         output_move_multiple.
1444         (adddi3, subdi3, negdi2): New patterns.
1445         (addsi3, subsi3, negsi2): Use pdp11_expand_operands.
1446         (abshi2): Delete.
1447         (neghi2, negqi2): Use PDPint iterator.
1448         * config/pdp11/pdp11.c (find_addr_reg, output_move_double,
1449         output_move_quad): Delete.
1450         (pdp11_expand_operands, output_move_multiple): New functions.
1451
1452 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1453
1454         * config/vax/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1455         * config.gcc (vax-*-linux*): Don't use svr4.h.
1456
1457 2010-12-09  Nathan Froyd  <froydnj@codesourcery.com>
1458
1459         * c-typeck.c (build_indirect_ref): Call invalid_indirection_error.
1460
1461 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1462
1463         * doc/extend.texi (Attribute Syntax): Correct description of
1464         attributes in pointer declarators.
1465
1466 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1467
1468         * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Undefine.
1469         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux*,
1470         mips*-*-linux*, mips-wrs-vxworks): Don't use svr4.h.
1471
1472 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1473
1474         * config/mep/mep.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1475         WCHAR_TYPE_SIZE): Define.
1476         * config.gcc (mep-*-*): Don't use svr4.h.
1477
1478 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1479
1480         * config/mcore/mcore.h (PTRDIFF_TYPE, WCHAR_TYPE,
1481         WCHAR_TYPE_SIZE): Define.
1482         * config/svr3.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1483         WCHAR_TYPE_SIZE): Don't define.
1484         * config.gcc (mcore-*-elf): Don't use svr4.h.
1485
1486 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1487
1488         * config.gcc (m32r-*-elf*, m32rle-*-elf*, m32r-*-rtems*,
1489         m32r-*-linux*, m32rle-*-linux*): Don't use svr4.h.
1490
1491 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1492
1493         * config/iq2000/iq2000.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1494         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1495         * config.gcc (iq2000*-*-elf*): Don't use svr4.h.
1496
1497 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1498
1499         * config.gcc (ia64*-*-linux*, ia64*-*-hpux*): Don't use svr4.h.
1500
1501 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1502
1503         * config/pa/pa32-linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1504         * config.gcc (hppa*64*-*-linux*, hppa*-*-linux*): Don't use svr4.h.
1505
1506 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1507
1508         * config/moxie/moxie.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1509         WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1510         * config/moxie/rtems.h (LINK_SPEC, SIZE_TYPE, PTRDIFF_TYPE,
1511         WCHAR_TYPE, WCHAR_TYPE_SIZE): Undefine.
1512         * config.gcc (moxie-*-elf, moxie-*-uclinux*): Don't use svr4.h.
1513
1514 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1515
1516         * config/frv/frv.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1517         WCHAR_TYPE_SIZE): Define.
1518         * config.gcc (frv-*-elf, frv-*-*linux*): Don't use svr4.h.
1519
1520 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1521
1522         * config/fr30/fr30.h (LIB_SPEC, LINK_SPEC, SIZE_TYPE,
1523         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
1524         * config.gcc (fr30-*-elf): Don't use svr4.h.
1525
1526 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1527
1528         * config/cris/linux.h (SIZE_TYPE, PTRDIFF_TYPE): Define.
1529         * config.gcc (crisv32-*-linux* | cris-*-linux*): Don't use svr4.h.
1530
1531 2010-12-09  Richard Guenther  <rguenther@suse.de>
1532
1533         PR middle-end/46844
1534         * gimple-fold.c (canonicalize_constructor_val): Canonicalize addresses.
1535
1536 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1537
1538         * config/i386/netware.h (TARGET_POSIX_IO): Define.
1539         * config/i386/nto.h (TARGET_POSIX_IO): Define.
1540         * config/ia64/hpux.h (TARGET_POSIX_IO): Define.
1541         * config/moxie/moxie.h (TARGET_POSIX_IO): Don't undefine.
1542         * config/openbsd.h (TARGET_POSIX_IO): Define.
1543         * config/rtems.h (TARGET_POSIX_IO): Define.
1544         * config/sh/embed-elf.h (TARGET_POSIX_IO): Don't undefine.
1545         * config/sol2.h (TARGET_POSIX_IO): Define.
1546         * config/svr4.h (TARGET_POSIX_IO): Don't define.
1547         * config/vxworksae.h (TARGET_POSIX_IO): Define.
1548
1549 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1550
1551         * config/i386/nto.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1552         * config/ia64/hpux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1553         * config/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1554         undefine.
1555         * config/mips/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1556         undefine.
1557         * config/mips/netbsd.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1558         Don't undefine.
1559         * config/rs6000/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1560         Don't undefine.
1561         * config/rs6000/linux64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1562         Don't undefine.
1563         * config/sol2.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
1564         * config/sparc/netbsd-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1565         Don't undefine.
1566         * config/sparc/openbsd64.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1567         Don't undefine.
1568         * config/sparc/sp64-elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
1569         Don't undefine.
1570         * config/svr4.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't define.
1571         * config/xtensa/elf.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Don't
1572         undefine.
1573
1574 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1575
1576         * config/ia64/hpux.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1577         non-GNU assembler.
1578         * config/m68k/netbsd-elf.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1579         * config/m68k/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1580         * config/mips/openbsd.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1581         * config/sol2.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Define for
1582         non-GNU assembler.
1583         * config/sparc/sparc.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1584         * config/svr4.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): Remove.
1585
1586 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1587
1588         * ipa-prop.c (compute_complex_ancestor_jump_func): Work also if the
1589         zero is the first phi parameter.
1590
1591 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1592
1593         * ipa-prop.h (struct ipa_parm_adjustment): New field alias_ptr_type.
1594         * ipa-prop.c (ipa_modify_call_arguments): Use it.
1595         * tree-sra.c (splice_param_accesses): Test that all accesses have the
1596         same alias reference type.
1597         (turn_representatives_into_adjustments): Set alias_ptr_type of the
1598         adjustment.
1599
1600 2010-12-09  Martin Jambor  <mjambor@suse.cz>
1601
1602         PR middle-end/46734
1603         * tree-sra.c (splice_param_accesses): Check that there are not
1604         multiple ADDRESSABLE types.
1605
1606 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1607
1608         * config/arc/arc.h (ASM_SPEC): Remove %{v}.
1609         * config/bfin/bfin.h (ASM_SPEC): Remove %{v}.
1610         * config/cris/cris.h (ASM_SPEC): Remove %{v:-v}.
1611         * config/fr30/fr30.h (ASM_SPEC): Remove %{v}.
1612         * config/frv/frv.h (ASM_SPEC): Remove %{v}.
1613         * config/i386/linux.h (ASM_SPEC): Remove %{v}.
1614         * config/i386/linux64.h (ASM_SPEC): Remove %{v}.
1615         * config/i386/mingw-w64.h (ASM_SPEC): Remove %{v}.
1616         * config/i386/sol2-10.h (ASM_SPEC): Remove %{v}.
1617         * config/i386/vxworks.h (ASM_SPEC): Remove %{v}.
1618         * config/i386/x86-64.h (ASM_SPEC): Remove %{v}.
1619         * config/lm32/lm32.h (ASM_SPEC): Remove %{v}.
1620         * config/m32r/m32r.h (ASM_SPEC): Remove %{v}.
1621         * config/m68k/linux.h (ASM_SPEC): Remove %{v:-V}.
1622         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{v}.
1623         * config/mips/mips.h (ASM_SPEC): Remove %{v}.
1624         * config/mips/vxworks.h (ASM_SPEC): Remove %{v}.
1625         * config/pa/pa-linux.h (ASM_SPEC): Remove %{v:-V}.
1626         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Remove %{v}.
1627         * config/rs6000/linux64.h (ASM_SPEC): Remove %{v:-V}.
1628         * config/rs6000/vxworks.h (ASM_SPEC): Remove %{v:-v}.
1629         * config/sparc/openbsd64.h (ASM_SPEC): Remove %{v:-V}.
1630         * config/svr4.h (SVR4_ASM_SPEC): Remove %{v:-V}.
1631         * config/xtensa/elf.h (ASM_SPEC): Remove %{v}.
1632         * config/xtensa/linux.h (ASM_SPEC): Remove %{v}.
1633
1634 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1635
1636         * config/i386/openbsdelf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1637         * config/mips/openbsd.h (LINK_SPEC): Use %{r:} not %{r*:}.
1638         * config/netbsd-aout.h (NETBSD_LINK_SPEC_AOUT): Use %{r:} not %{r*:}.
1639         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Use %{r:} not %{r*:}.
1640         * config/sparc/openbsd64.h (LINK_SPEC): Use %{r:} not %{r*:}.
1641         * config/vax/netbsd-elf.h (LINK_SPEC): Use %{r:} not %{r*:}.
1642
1643 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1644
1645         * config/alpha/freebsd.h (LINK_SPEC): Don't use %{!dynamic-linker:}.
1646         * config/alpha/linux-elf.h (LINK_SPEC): Likewise.
1647         * config/arm/freebsd.h (LINK_SPEC): Likewise.
1648         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
1649         * config/bfin/linux.h (LINK_SPEC): Likewise.
1650         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
1651         * config/frv/linux.h (LINK_SPEC): Likewise.
1652         * config/i386/freebsd.h (LINK_SPEC): Likewise.
1653         * config/i386/freebsd64.h (LINK_SPEC): Likewise.
1654         * config/i386/linux.h (LINK_SPEC): Likewise.
1655         * config/i386/linux64.h (LINK_SPEC): Likewise.
1656         * config/i386/openbsdelf.h (LINK_SPEC): Likewise.
1657         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
1658         * config/ia64/linux.h (LINK_SPEC): Likewise.
1659         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1660         * config/m32r/linux.h (LINK_SPEC): Likewise.
1661         * config/m68k/linux.h (LINK_SPEC): Likewise.
1662         * config/microblaze/linux.h (LINK_SPEC): Likewise.
1663         * config/mips/linux.h (LINK_SPEC): Likewise.
1664         * config/mips/linux64.h (LINK_SPEC): Likewise.
1665         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1666         * config/mn10300/linux.h (LINK_SPEC): Likewise.
1667         * config/netbsd-elf.h (LINK_SPEC): Likewise.
1668         * config/pa/pa-linux.h (LINK_SPEC): Likewise.
1669         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
1670         LINK_OS_LINUX_SPEC64): Likewise.
1671         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
1672         LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC): Likewise.
1673         * config/s390/linux.h (LINK_SPEC): Likewise.
1674         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
1675         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1676         * config/sparc/linux.h (LINK_SPEC): Likewise.
1677         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1678         LINK_SPEC): Likewise.
1679         * config/sparc/openbsd64.h (LINK_SPEC): Likewise.
1680         * config/vax/linux.h (LINK_SPEC): Likewise.
1681         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1682
1683 2010-12-09  Joseph Myers  <joseph@codesourcery.com>
1684
1685         * config/bfin/bfin.h (ASM_SPEC): Remove %{n} and %{T}.
1686         * config/frv/frv.h (ASM_SPEC): Likewise.
1687         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
1688         * config/i386/sol2.h (ASM_SPEC): Likewise.
1689         * config/m68k/linux.h (ASM_SPEC): Likewise.
1690         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
1691         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
1692         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
1693         * config/sol2.h (ASM_SPEC): Likewise.
1694         * config/sparc/linux.h (ASM_SPEC): Likewise.
1695         * config/sparc/linux64.h (ASM_SPEC): Likewise.
1696         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
1697         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
1698         * config/svr4.h (SVR4_ASM_SPEC): Likewise.
1699
1700 2010-12-09  Richard Guenther  <rguenther@suse.de>
1701
1702         * reginfo.c (struct subregs_of_mode_node): Remove.
1703         (subregs_of_mode): Likewise.
1704         (som_hash): Likewise.
1705         (som_eq): Likewise.
1706         (invalid_mode_changes): New bitmap.
1707         (record_subregs_of_mode): Get subregs_of_mode argument.
1708         Fill in invalid_mode_changes bitmap.
1709         (find_subregs_of_mode): Get subregs_of_mode argument and pass
1710         it through.
1711         (init_subregs_of_mode): Adjust.
1712         (finish_subregs_of_mode): Likewise.
1713         (invalid_mode_change_p): Query invalid_mode_changes bitmap.
1714
1715 2010-12-09  Richard Guenther  <rguenther@suse.de>
1716
1717         * ira.c (ira): Do not call finish_subregs_of_mode.
1718         * ira-costs.c (finish_costs): Call finish_subregs_of_mode.
1719
1720 2010-12-09  Richard Guenther  <rguenther@suse.de>
1721
1722         * rtl.h (invalid_mode_change_p): Adjust prototype.
1723         * reginfo.c (invalid_mode_change_p): Remove from argument.
1724         * ira-costs.c (print_allocno_costs): Adjust callers.
1725         (find_costs_and_classes): Likewise.
1726
1727 2010-12-09  Jakub Jelinek  <jakub@redhat.com>
1728
1729         * config/s390/s390.md (*mov<mode>cc): Change lgoc and stgoc to
1730         locg and stocg even in comment.
1731         (sync_old_<atomic><mode>): Give mode to UNSPEC_VOLATILE.
1732
1733         PR target/41082
1734         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Use stvx
1735         instead of stve*x.
1736         (altivec_expand_stv_builtin): For op0 use mode of operand 1 instead
1737         of operand 0.
1738         * config/rs6000/altivec.md (VI_scalar): New mode attr.
1739         (altivec_stve<VI_char>x, *altivec_stvesfx): Use scalar instead of
1740         vector mode for operand 0, put operand 1 into UNSPEC.
1741
1742 2010-12-09  Yao Qi  <yao@codesourcery.com>
1743
1744         * config/arm/arm.c (arm_preferred_rename_class): Implement targethook
1745         PREFERRED_RENAME_CLASS.
1746
1747 2010-12-08  Ian Lance Taylor  <iant@google.com>
1748
1749         * doc/sourcebuild.texi (Front End): Remove reference to
1750         snapshot-README and snapshot-index.html.
1751
1752 2010-12-08  Ian Lance Taylor  <iant@google.com>
1753
1754         * doc/sourcebuild.texi (Texinfo Manuals): Change update_web_docs
1755         to update_web_docs_svn.
1756         (Front End): Likewise.
1757
1758 2010-12-08  Iain Sandoe <iains@gcc.gnu.org>
1759
1760         * gcc/config.gcc (with_cpu): Default i[34567]86-*-darwin* and
1761         x86_64-*-darwin* to with_cpu:-core2.
1762         * gcc/config/i386/mmx.md (*mov<mode>_internal_rex64): Replace movq
1763         with movd for darwin assembler.
1764         * gcc/config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
1765         (*vec_concatv2di_rex64_sse): Ditto.
1766
1767 2010-12-08  Richard Guenther  <rguenther@suse.de>
1768             Sebastian Pop  <sebastian.pop@amd.com>
1769
1770         PR tree-optimization/45230
1771         PR tree-optimization/45231
1772         PR tree-optimization/45370
1773         * sese.c (rename_uses): Returns a bool.  Call
1774         recompute_tree_invariant_for_addr_expr only on the RHS of a
1775         GIMPLE_ASSIGN.
1776         (graphite_copy_stmts_from_block): Call fold_stmt_inplace when
1777         rename_uses returns true.
1778         * tree-ssa-copy.c (replace_exp): Add a comment about calling
1779         fold_stmt_inplace after replace_exp.
1780
1781 2010-12-08  Mike Stump  <mikestump@comcast.net>
1782
1783         PR debug/46749
1784         * config/darwin.h (COLLECT_RUN_DSYMUTIL): Add.
1785         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1786         * config/darwin9.h (COLLECT_RUN_DSYMUTIL): Add.
1787         (DSYMUTIL_SPEC): Use `linker' flags instead to handle lto better.
1788         * collect2.c (post_ld_pass): Add.
1789         (process_args): Add.
1790         (maybe_run_lto_and_relink): Call post_ld_pass after ld.
1791         (main): Likewise.  Call process_args.
1792
1793 2010-12-08  Jakub Jelinek  <jakub@redhat.com>
1794
1795         PR middle-end/46844
1796         * regrename.c (check_new_reg_p): Add ATTRIBUTE_UNUSED to reg parameter.
1797
1798 2010-12-08  Richard Earnshaw  <rearnsha@arm.com>
1799
1800         PR target/46631
1801         * arm.c (thumb2_reorg): Also try to reduce <commutative_op> Rd, Rn, Rd
1802         into a 16-bit instruction.
1803
1804 2010-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
1805
1806         PR middle-end/42694
1807         * builtins.c (expand_builtin_pow_root): Don't optimize pow(x,y)
1808         where y is 0.25, 1./6., or 0.75 if the target does not have a sqrt
1809         instruction, but do optimize if y is 0.5 or 1./3. since that
1810         changes an expensive call into a cheaper one.
1811
1812 2010-12-08  Richard Guenther  <rguenther@suse.de>
1813
1814         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use a shift
1815         instead of a division to divide by BITS_PER_UNIT.
1816
1817 2010-12-08  Richard Guenther  <rguenther@suse.de>
1818
1819         * gimplify.c (gimple_tree_eq): Assert hashes are equal only
1820         when checking is enabled.
1821
1822 2010-12-07  Andrey Belevantsev  <abel@ispras.ru>
1823
1824         PR target/43603
1825         * haifa-sched.c (sched_create_recovery_edges): Update
1826         dominator info.
1827         * sel-sched-ir.c (maybe_tidy_empty_bb): Update dominator info
1828         after deleting an empty block.
1829         (tidy_control_flow): Also verify dominators.
1830         (sel_remove_bb): Update dominator info after removing a block.
1831         (sel_redirect_edge_and_branch_force): Assert that no unreachable
1832         blocks will be created. Update dominator info.
1833         (sel_redirect_edge_and_branch): Update dominator info when
1834         basic blocks do not become unreachable.
1835         (sel_remove_loop_preheader): Update dominator info.
1836
1837 2010-12-07  Richard Guenther  <rguenther@suse.de>
1838
1839         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1840         Reset alignment information.
1841         (bump_vector_ptr): Likewise.
1842
1843 2010-12-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1844
1845         PR middle-end/46671
1846         PR target/46685
1847         * config/pa/pa.c (pa_function_section): New function.
1848         (TARGET_ASM_FUNCTION_SECTION): Define.
1849
1850 2010-12-07  Ian Lance Taylor  <iant@google.com>
1851             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1852
1853         PR bootstrap/46810
1854         * configure.ac: Disable AC_MSG_ERROR while looking for the C++
1855         preprocessor.
1856         * configure: Rebuild.
1857
1858 2010-12-07  Paul Koning  <ni1d@arrl.net>
1859
1860         * config/pdp11/pdp11.c (output_addr_const_pdp11): Output negative
1861         values with sign rather than as unsigned.
1862
1863 2010-12-07  Paul Koning  <ni1d@arrl.net>
1864
1865         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_SECTION): Define.
1866         (pdp11_function_section): New function.
1867
1868 2010-12-07  Joseph Myers  <joseph@codesourcery.com>
1869
1870         * config/mcore/mcore.c Don't include assert.h.
1871         (layout_mcore_frame, handle_structs_in_regs): Use gcc_assert.
1872         * config/spu/spu.c: Don't include assert.h.
1873         (spu_sms_res_mii): Use gcc_assert.
1874
1875 2010-12-07  Sebastian Pop  <sebastian.pop@amd.com>
1876
1877         PR tree-optimization/42327
1878         * tree-data-ref.c (omega_setup_subscript): Call build_int_cst
1879         instead of using integer_minus_one_node.
1880
1881 2010-12-07  Nathan Froyd  <froydnj@codesourcery.com>
1882
1883         PR c++/45330
1884         * params.def (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP): New parameter.
1885         * doc/invoke.texi (cxx-max-namespaces-for-diagnostic-help): Document.
1886
1887 2010-12-07  Richard Guenther  <rguenther@suse.de>
1888
1889         PR tree-optimization/46832
1890         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Check
1891         that the call has a lhs.
1892
1893 2010-12-07  Yao Qi  <yao@codesourcery.com>
1894
1895         * Makefile.in: Add $(TARGET_H) to the regrename.o rule.
1896         * regrename.c (struct du_head): Add new element length.
1897         (sort_du_head, get_element, merge, merge_sort_comparison):
1898         New functions of merge sort implementation to du_head list.
1899         (regrename_optimize): Sort du_head linked list by length.
1900         Iterate registers in a preferred-register-first order.
1901         Move some code to ...
1902         (check_new_reg_p): here.  New function.
1903         (create_new_chain):  Initialize length.
1904         (scan_rtx_reg): Increase length for non-debug insns.
1905         * target.def: New hook preferred_rename_class.
1906         * targhook.c (default_preferred_rename_class): New.
1907         * targhook.h: Declare it.
1908         * doc/tm.texi.in: New hook TARGET_PREFERRED_RENAME_CLASS.
1909         * doc/tm.texi: Regenerate.
1910
1911 2010-12-07  Jakub Jelinek  <jakub@redhat.com>
1912
1913         PR debug/46799
1914         * tree-parloops.c (separate_decls_in_region): Use UNKNOWN_LOCATION
1915         instead of BUILTINS_LOCATION.
1916         (create_loop_fn): Add LOC argument, pass it to build_decl instead of
1917         BUILTINS_LOCATION.
1918         (create_parallel_loop): Add LOC argument, use it for OMP clauses
1919         and GIMPLE_*OMP* statements.
1920         (gen_parallel_loop): Determine locus for the parallel loop, pass it
1921         to create_loop_fn and create_parallel_loop.
1922         * cfgexpand.c (gimple_expand_cfg): For builtin functions, call
1923         set_curr_insn_source_location (UNKNOWN_LOCATION).
1924
1925 2010-12-07  Joern Rennecke  <amylaar@spamcop.net>
1926             Richard Guenther  <rguenther@suse.de>
1927
1928         PR target/46737
1929         * config/bfin/bfin.c (BB_AUX_INDEX): Cast to intptr_t.
1930         (bfin_reorder_loops): Change type of index to intptr_t.
1931
1932 2010-12-07  Richard Guenther  <rguenther@suse.de>
1933
1934         PR tree-optimization/46726
1935         * tree-inline.c (estimate_num_insns): Special case pow (x, 2.0).
1936
1937 2010-12-07  Richard Guenther  <rguenther@suse.de>
1938
1939         * tree-ssa-math-opts.c (execute_optimize_widening_mul): Unlink
1940         virtual operands.
1941
1942 2010-12-07  Nicola Pero  <nicola.pero@meta-innovation.com>
1943
1944         * c-parser.c (c_parser_typeof_specifier): Removed special
1945         treatment of objc_volatilized attribute for Objective-C.
1946
1947 2010-12-06  Vladimir Makarov  <vmakarov@redhat.com>
1948
1949         * ira.c (update_equiv_regs): Prohibit move insns if
1950         pressure-sensitive scheduling was done.
1951
1952 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1953
1954         * c-parser.c (c_parser_for_statement): Use c_fully_fold() instead
1955         of c_process_expr_stmt() for the iterating and collection
1956         expressions of an Objective-C fast enumeration loop.
1957
1958 2010-12-06  Jakub Jelinek  <jakub@redhat.com>
1959
1960         PR debug/45997
1961         * dwarf2out.c (modified_type_die): If both is_const_type and
1962         is_volatile_type is set, start with DW_TAG_const_type or
1963         DW_TAG_volatile_type depending on where we get qualified type
1964         in the recursive call.
1965
1966         PR target/43897
1967         * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
1968         as a store into that register.
1969
1970         PR tree-optimization/46528
1971         PR debug/46338
1972         * profile.c (branch_prob): Make sure last is never set to a debug
1973         stmt.
1974
1975         PR debug/46771
1976         * reginfo.c (init_subregs_of_mode): Don't call find_subregs_of_mode
1977         on DEBUG_INSNs.
1978
1979         PR rtl-optimization/46777
1980         * cfglayout.c (duplicate_insn_chain): Avoid duplicating
1981         also barrier after tablejump.
1982
1983 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1984             Richard Henderson  <rth@redhat.com>
1985
1986         PR target/46740
1987         * config/vax/vax.c (vax_output_int_move): Fold #if into if.
1988
1989 2010-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1990
1991         * config/sparc/sol2.h (PUSHSECTION_FORMAT): Redefine unconditionally.
1992         * config/sparc/sol2-gas.h (PUSHSECTION_FORMAT): Redefine.
1993
1994 2010-12-06  Joern Rennecke  <amylaar@spamcop.net>
1995
1996         PR target/46735
1997         * config/frv/predicates.md (gpr_or_int12_operand): Use IN_RANGE.
1998         (gpr_fpr_or_int12_operand, gpr_or_int10_operand): Likewise.
1999         (int12_operand, int_2word_operand, uint16_operand): Likewise.
2000         (fpr_or_int6_operand, int6_operand, int5_operand): Likewise.
2001         (uint5_operand, uint4_operand): Likewise.
2002         * config/frv/frv.h (IN_RANGE_P): Delete.
2003         (GPR_P, FPR_P, CC_P, ICC_P, FCC_P, CR_P, ICR_P, FCR_P): Use IN_RANGE.
2004         (ACC_P, ACCG_P, SPR_P, CONST_OK_FOR_I, CONST_OK_FOR_J): Likewise.
2005         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
2006         (CONST_OK_FOR_P): Likewise.
2007         * config/frv/frv.md (*movqicc_internal2_int): Likewise.
2008         (*movqicc_internal2_float, *movhicc_internal2_int): Likewise.
2009         (*movhicc_internal2_float, *movsicc_internal2_int): Likewise.
2010         (*movsicc_internal2_float, casesi): Likewise.
2011         * config/frv/frv.c (frv_frame_offset_rtx): Likewise.
2012         (frv_asm_output_mi_thunk, frv_legitimate_address_p_1): Likewise.
2013         (frv_emit_movsi, output_move_single, frv_emit_cond_move): Likewise.
2014         (frv_split_cond_move, frv_rtx_costs): Likewise.
2015
2016         PR target/46739
2017         * config/mmix/mmix.c (mmix_intval): Split shift count.
2018
2019 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
2020
2021         * config/i386/i386.c (m_COREI7): New.
2022         (initial_ix86_tune_features): Turn on
2023         X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
2024         X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for Core i7.
2025
2026 2010-12-06  H.J. Lu  <hongjiu.lu@intel.com>
2027
2028         * config.gcc: Allow corei7-avx for --with-arch/--with-cpu.
2029
2030         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2031         Sandy Bridge.
2032
2033         * config/i386/i386.c (override_options): Handle "corei7-avx".
2034
2035         * doc/invoke.texi: Document corei7-avx.
2036
2037 2010-12-06  Richard Guenther  <rguenther@suse.de>
2038
2039         PR tree-optimization/46806
2040         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
2041         coalesce different types.
2042
2043 2010-12-06  Richard Guenther  <rguenther@suse.de>
2044
2045         PR tree-optimization/46785
2046         * tree-vect-loop.c (vect_is_simple_reduction_1): Also allow
2047         call statements as operand definition.
2048
2049 2010-12-06  Mingjie Xing  <mingjie.xing@gmail.com>
2050
2051         * doc/tm.texi.in: Fix typo.
2052         * doc/tm.texi: Regenerate.
2053
2054 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2055
2056         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]: Fix typo in
2057         last change.
2058
2059 2010-12-06  Nicola Pero  <nicola.pero@meta-innovation.com>
2060
2061         * c-family/c-common.h: Removed the declarations of all the objc_
2062         callbacks, and moved them into c-objc.h.  Removed
2063         objc_ivar_visibility_kind and moved it into c-objc.h.
2064         * c-family/c-objc.h: New file.
2065         * c-family/c-common.c: Include c-objc.h.
2066         * c-family/c-format.c: Same change.
2067         * c-family/stub-objc.c: Same change.
2068         * c-decl.c: Include c-family/c-objc.h.
2069         * c-parser.c: Same change.
2070         * c-typeck.c: Same change.
2071         * c-config-lang.in (gtfiles): Added c-family/c-objc.h.
2072         * Makefile.in (c-decl.o): Depend on c-family/c-objc.h.
2073         (c-parser.o): same change.
2074         (c-typeck.o): Same change.
2075         (c-family/c-format.o): Same change.
2076         (c-family/stub-objc.o): Same change.
2077         (c-family/c-common.o): Same change.
2078         (PLUGIN_HEADERS): Added c-family/c-objc.h.
2079
2080 2010-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2081
2082         * config.gcc [hppa[12]*-*-hpux10*, hppa[12]*-*-hpux11*]:  Ignore
2083         --with-dwarf2 option.
2084
2085 2010-12-03  Jan Hubicka  <jh@suse.cz>
2086
2087         * lto-streamer-in.c (input_cfg): Fix pasto.
2088
2089 2010-12-03  Jan Hubicka  <jh@suse.cz>
2090
2091         * ipa.c (cgraph_externally_visible_p): Do not localize builtins
2092         and functions with user asm defined names.
2093         (varpool_externally_visible_p): Do not localize vars with user
2094         asm defined names.
2095
2096 2010-12-03  Jan Hubicka  <jh@suse.cz>
2097
2098         * dwarf2asm.c (dw2_output_indirect_constant_1): Set DECL_ASSEMBLER_NAME
2099         to prevent mangling with lto frontend.
2100
2101 2010-12-03  Jan Hubicka  <jh@suse.cz>
2102
2103         * Makefile.in (LTO_STREAMER_H): Add GCOV_IO_H.
2104         * lto-cgraph.c (merge_profile_summaries): Fix thinko.
2105
2106 2010-12-03  Jan Hubicka  <jh@suse.cz>
2107
2108         PR tree-optimization/46760
2109         * cgraph.c (cgraph_create_node): Initialize count_materialization_scale.
2110         * cgraph.h (struct cgraph_node): Add count_materialization_scale.
2111         * lto-cgraph.c (lto_output_edge): Fix assert.
2112         (lto_output_node): Output count_materialization_scale.
2113         (output_profile_summary): Output only runs and sum_max.
2114         (input_node): Input count_materialization_scale.
2115         (input_profile_summary): Read data into file specific gcov summary.
2116         (merge_profile_summaries): New function.
2117         (input_cgraph): Update call of input_profile_summary;
2118         call merge_profile_summaries.
2119         * lto-streamer-in.c (input_cfg): Add count_materialization_scale arg;
2120         rescale counts at read in.
2121         (intput_bb): Likewise.
2122         (input_function): Update call of input_bb.
2123         (lto_read_body): Update call of input_cfg.
2124         * lto-streamer.h: Inlclude gcov-io.h
2125         (lto_file_decl_data): Add gcov_ctr_summary.
2126
2127 2010-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
2128
2129         * doc/tm.texi.in (Cond. Exec. Macros): Rename node from this ...
2130         (Cond Exec Macros): ... to this.
2131         * doc/tm.texi: Regenerate.
2132
2133 2010-12-03  Jason Merrill  <jason@redhat.com>
2134
2135         PR debug/46123
2136         * dwarf2out.c (gen_tagged_type_die): Don't put local types in
2137         a declaration DIE.
2138
2139 2010-12-03  Nathan Froyd  <froydnj@codesourcery.com>
2140
2141         * config/arm/arm.c (arm_legitimate_index_p): Split
2142         VALID_NEON_QREG_MODE and VALID_NEON_DREG_MODE cases.  Permit
2143         slightly larger constants in the latter case.
2144         (thumb2_legitimate_index_p): Likewise.
2145
2146 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
2147
2148         * common.opt (N, Q, Qn, Qy, Z, n, r, s, t): New options.
2149         * gcc.c (cc1_options): Add %{Qy:}.
2150
2151 2010-12-03  Joseph Myers  <joseph@codesourcery.com>
2152
2153         * gcc.c (LINK_COMMAND_SPEC): Don't handle -A, -d or -m.
2154         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
2155         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
2156
2157 2010-12-03  Alexander Monakov  <amonakov@ispras.ru>
2158
2159         PR rtl-optimization/45354
2160         * sel-sched-ir.c (jump_leads_only_to_bb_p): Rename to ...
2161         (bb_has_removable_jump_to_p): This.  Update all callers. Make static.
2162         Allow BBs ending with a conditional jump.  Forbid EDGE_CROSSING jumps.
2163         * sel-sched-ir.h (jump_leads_only_to_bb_p): Delete prototype.
2164
2165 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2166
2167         * basic-block.h (struct edge_prediction): Remove forward declaration.
2168         * tree-flow.h (struct edge_prediction): Move from here...
2169         * predict.c (struct edge_prediction): ...to here.
2170         * cselib.h (struct elt_list): Move from here...
2171         * cselib.c (struct elt_list): ...to here.
2172
2173 2010-12-02  Ian Lance Taylor  <iant@google.com>
2174
2175         * gcc.c (default_compilers): Add entry for ".go".
2176         * common.opt: Add -static-libgo as a driver option.
2177         * doc/install.texi (Configuration): Mention libgo as an option for
2178         --enable-shared.  Mention go as an option for --enable-languages.
2179         * doc/invoke.texi (Overall Options): Mention .go as a file name
2180         suffix.  Mention go as a -x option.
2181         * doc/frontends.texi (G++ and GCC): Mention Go as a supported language.
2182         * doc/sourcebuild.texi (Top Level): Mention libgo.
2183         * doc/standards.texi (Standards): Add section on Go language.
2184         Move references for other languages into their own section.
2185         * doc/contrib.texi (Contributors): Mention that I contributed the
2186         Go frontend.
2187
2188 2010-12-03  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2189
2190         * tree.h (struct call_expr_arg_iterator_d): Remove GTY tag.
2191         (const_call_expr_arg_iterator_d): Likewise.
2192         (expanded_location): Likewise.
2193         * c-tree.h (struct c_arg_tag_d): Likewise.
2194         * dwarf2out.c (struct cfa_loc): Likewise.
2195         (struct skeleton_chain_struct): Likewise.
2196         * except.c (struct ttypes_filter): Likewise.
2197         * cselib.h (struct cselib_val_struct): Likewise.
2198         (elt_loc_list): Likewise.
2199         (elt_list): Likewise.
2200         * varasm.c (struct addr_const): Likewise.
2201         * tree-flow.h (struct edge_prediction): Likewise.
2202         (struct int_tree_map): Likewise.
2203         (struct _edge_var_map): Likewise.
2204
2205 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2206
2207         PR target/46768
2208         * config/i386/i386.c (initial_ix86_tune_features): Turn on
2209         X86_TUNE_INTER_UNIT_MOVES for Core 2 and Core i7.
2210
2211 2010-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2212
2213         * config.gcc: Allow corei7 for --with-arch=/--with-cpu=.
2214
2215 2010-12-02  Ian Lance Taylor  <iant@google.com>
2216
2217         * configure.ac: AC_DEFINE ENABLE_BUILD_WITH_CXX.  Check for C++
2218         header files unordered_map, tr1/unordered_map, and ext/hash_map.
2219         * configure, config.in: Rebuild.
2220
2221 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2222
2223         PR target/46685
2224         * config/sparc/sparc.c (can_use_mov_pic_label_ref): New predicate.
2225         (sparc_expand_move): Call it to decide whether to emit the special
2226         mov{si,di}_pic_label_ref patterns.
2227         (sparc_legitimize_pic_address): Call it to decide whether to emit
2228         the regular PIC sequence for labels.  Fix long line.
2229         (sparc_file_end): Set is_thunk for the PIC helper.
2230
2231 2010-12-02  Eric Botcazou  <ebotcazou@adacore.com>
2232
2233         * tree.c (build_range_type_1): Do not SET_TYPE_STRUCTURAL_EQUALITY
2234         for a non-shared type.
2235
2236 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2237
2238         PR middle-end/45297
2239         * tree-scalar-evolution.c (interpret_rhs_expr): Handle ADDR_EXPR
2240         with MEM_REFs as POINTER_PLUS_EXPR.
2241
2242 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2243
2244         * config/i386/linux.h, config/m32r/linux.h, config/m68k/linux.h,
2245         config/sparc/linux.h, config/sparc/linux64.h: Remove comments
2246         mentioning /lib/elf.
2247
2248 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2249
2250         * config/bfin/bfin.h (LINK_SPEC): Remove %{b}.
2251         * config/frv/frv.h (LINK_SPEC): Remove %{b}.
2252         * config/i386/netware.h (LINK_SPEC): Remove %{b}.
2253         * config/i386/nto.h (LINK_SPEC): Remove %{b}.
2254         * config/lm32/uclinux-elf.h (LINK_SPEC): Remove %{b}.
2255         * config/sol2.h (LINK_SPEC): Remove %{b}.
2256         * config/svr4.h (LINK_SPEC): Remove %{b}.
2257
2258 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2259
2260         * config/i386/freebsd.h (LINK_SPEC): Cut long comment.
2261         * config/i386/linux.h (LINK_SPEC): Cut long comment.
2262         * config/i386/netware.h (LINK_SPEC): Remove %{V}.
2263         * config/m32r/linux.h (LINK_SPEC): Cut long comment.
2264         * config/m68k/linux.h (LINK_SPEC): Cut long comment.
2265         * config/sparc/linux.h (LINK_SPEC): Cut long comment.
2266         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2267         * config/sparc/linux64.h (LINK_SPEC): Cut long comment.
2268         (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2269         * config/sparc/netbsd-elf.h (ASM_SPEC): Remove %{V} and %{v:%{!V:-V}}.
2270
2271 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2272
2273         * gcc.c (trad_capable_cpp, default_compilers): Don't handle
2274         -ftraditional.
2275
2276 2010-12-02  Joseph Myers  <joseph@codesourcery.com>
2277
2278         * config/alpha/freebsd.h (LINK_SPEC): Don't handle -Wl,.
2279         * config/bfin/bfin.h (ASM_SPEC): Don't handle -Wa,.
2280         * config/frv/frv.h (ASM_SPEC): Don't handle -Wa,.
2281         * config/lm32/uclinux-elf.h (LINK_SPEC): Don't handle -Wl,.
2282         * config/microblaze/microblaze.h (LINK_SPEC): Don't handle -Wl,.
2283         * config/mn10300/linux.h (ASM_SPEC): Don't handle -Wa,.
2284         * config/pa/pa-linux.h (ASM_SPEC): Don't handle -Wa,.
2285         * config/rs6000/freebsd.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2286         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Don't handle -Wa,.
2287         * config/rs6000/sysv4.h (LINK_SPEC): Don't handle -Wl,.
2288         * config/rs6000/vxworks.h (ASM_SPEC): Don't handle -Wa,.
2289         * config/sol2.h (ASM_SPEC): Don't handle -Wa,.
2290         * config/sparc/linux.h (ASM_SPEC): Don't handle -Wa,.
2291         * config/sparc/linux64.h (ASM_SPEC): Don't handle -Wa,.
2292         * config/sparc/sp-elf.h (ASM_SPEC): Don't handle -Wa,.
2293         * config/sparc/sysv4.h (ASM_SPEC): Don't handle -Wa,.
2294         * config/svr4.h (SVR4_ASM_SPEC): Don't handle -Wa,.
2295         * config/vxworks.h (VXWORKS_LINK_SPEC): Don't handle -Wl,.
2296
2297 2010-12-02  Paul Koning  <ni1d@arrl.net>
2298
2299         * config/pdp11/pdp11.c (output_jump): Map unsigned to signed
2300         opcodes if CC_NO_OVERFLOW is set.
2301         (notice_update_cc_on_set): Correct setting of CC0 as a side
2302         effect; set CC_NO_OVERFLOW for cases where C flag is not meaningful.
2303
2304 2010-12-02  Ian Lance Taylor  <iant@google.com>
2305
2306         * doc/install.texi (Configuration): Update default for
2307         --with-boot-ldflags.
2308
2309 2010-12-02  Nathan Froyd  <froydnj@codesourcery.com>
2310
2311         PR c/45062
2312         * c-decl.c (grokparms): Set arg_info->parms to NULL_TREE when
2313         !funcdef_flag.
2314
2315 2010-12-02  Sebastian Pop  <sebastian.pop@amd.com>
2316
2317         PR tree-optimization/45199
2318         * tree-data-ref.c (mem_write_stride_of_same_size_as_unit_type_p): New.
2319         (stores_zero_from_loop): Call
2320         mem_write_stride_of_same_size_as_unit_type_p.
2321         * tree-data-ref.h (stride_of_unit_type_p): New.
2322         * tree-loop-distribution.c (generate_memset_zero): Simplified.
2323         Call stride_of_unit_type_p.
2324         (build_rdg_partition_for_component): Do not call
2325         rdg_flag_similar_memory_accesses when
2326         flag_tree_loop_distribute_patterns is set.
2327
2328 2010-12-02  Richard Guenther  <rguenther@suse.de>
2329
2330         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Disregard
2331         sign-changing conversions for induction detection.
2332
2333 2010-12-02  Richard Guenther  <rguenther@suse.de>
2334
2335         PR tree-optimization/46723
2336         * tree-vect-loop.c (get_initial_def_for_induction): Strip
2337         conversions from the induction evolution and apply it to
2338         the result instead.
2339         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Handle
2340         assigns for induction defs.
2341
2342 2010-12-02  Richard Guenther  <rguenther@suse.de>
2343
2344         * value-prof.c (gimple_ic): Use stmt_ends_bb_p to detect
2345         the case we need to split the edge and not the block.
2346
2347 2010-12-02  Bernd Schmidt  <bernds@codesourcery.com>
2348
2349         DFA model for Core 2 and Core i7 scheduling.
2350
2351         * config/i386/core2.md: New DFA model for Core 2 and Core i7.
2352         * config/i386/i386.c (ix86_option_override_internal): Update entries
2353         for Core 2 and Core i7.
2354         (ix86_issue_rate): Set issue rate to 3 [be realistic].
2355         * config/i386/i386.md: Include "core2.md".
2356         (define_attr cpu): Add "corei7".
2357
2358 2010-12-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
2359
2360         Define tuning for Core 2 and Core i7.
2361
2362         * config/i386/i386-c.c (ix86_target_macros_internal): Update.
2363         * config/i386/i386.c (core2_cost): Delete, use generic costs instead.
2364         (m_CORE2): Replace with m_CORE2_{32,64}.
2365         (m_CORE2I7{,_32,_64}): New macros.
2366         (m_GENERIC32, m_GENERIC64): Update.
2367         (initial_ix86_tune_features, x86_accumulate_outgoing_args,)
2368         (x86_arch_always_fancy_math_387): Set m_CORE2I7_32 iff m_GENERIC32 and
2369         set m_CORE2I7_64 iff m_GENERIC64.
2370         (processor_target_table): Use generic costs for Core 2 and Core i7.
2371         (ix86_option_override_internal): Update entries for Core 2 and Core i7.
2372         (ix86_issue_rate): Remove entry for Core 2.
2373         (ia32_multipass_dfa_lookahead, ix86_sched_init_global): Update.
2374         * config/i386/i386.h (TARGET_CORE2_32, TARGET_CORE2_64): New macros.
2375         (TARGET_CORE2): Update.
2376         (PROCESSOR_CORE2_32, PROCESSOR_CORE2_64): New constants.
2377         (PROCESSOR_CORE2): Remove.
2378
2379 2010-12-02  Richard Guenther  <rguenther@suse.de>
2380
2381         * lto-streamer.h (LTO_major_version): Bump to 2.
2382
2383 2010-12-02  Richard Guenther  <rguenther@suse.de>
2384
2385         PR lto/44871
2386         * gimple.c (canonical_type_hash_cache): New hashtable.
2387         (gimple_type_hash): Make a wrapper around ...
2388         (gimple_type_hash_1): ... this.  Take gtc_mode argument.
2389         (gimple_canonical_type_hash): Likewise.
2390         (gtc_visit): Take a gtc_mode argument.
2391         (gimple_types_compatible_p_1): Likewise. Do not compare struct
2392         tag names or field names when computing canonical types.
2393         (gimple_types_compatible_p): Adjust.
2394         (visit): Take a gtc_mode argument.
2395         (iterative_hash_gimple_type): Likewise.  Do not hash struct tag
2396         names or field names when computing hashes of canonical types.
2397         (gimple_register_canonical_type): Use gimple_canonical_type_hash
2398         for the hash.
2399         (print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
2400         (free_gimple_type_tables): Free canonical_type_hash_cache.
2401
2402 2010-12-02  Richard Guenther  <rguenther@suse.de>
2403             Ira Rosen  <irar@il.ibm.com>
2404
2405         PR tree-optimization/46663
2406         * tree-vect-patterns.c (vect_recog_pow_pattern): Check that
2407         FUNCTION_DECL exists and that it's a builtin.
2408
2409 2010-12-02  Jie Zhang  <jie@codesourcery.com>
2410
2411         PR middle-end/46674
2412         * varasm.c (compute_visible_aliases): Handle user set assembler name.
2413
2414 2010-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2415
2416         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
2417         thinko regarding setting -mno-<xxx> debug switches.
2418         (rs6000_rtx_costs): Add FMA.  Delete old rtl based FMA costs.
2419
2420 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2421
2422         * intl.c: Don't include tm.h.
2423         * Makefile.in (intl.o): Don't depend on $(TM_H).
2424
2425 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2426
2427         * graphite-sese-to-poly.c (analyze_drs_in_stmts): Fix set but
2428         unused warning.
2429         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2430
2431 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2432
2433         * graphite-sese-to-poly.c (analyze_drs): Removed.
2434         (build_scop_drs): Do not call analyze_drs.
2435         (analyze_drs_in_stmts): New.
2436         (insert_stmts): New.
2437         (insert_out_of_ssa_copy): Call analyze_drs_in_stmts.
2438         (insert_out_of_ssa_copy_on_edge): Same.
2439         (rewrite_close_phi_out_of_ssa): Call insert_stmts.
2440         (rewrite_phi_out_of_ssa): Same.
2441         (rewrite_cross_bb_scalar_dependence): Same.
2442         (split_reduction_stmt): Move data references in the new basic blocks.
2443         (translate_scalar_reduction_to_array_for_stmt): Call insert_stmts.
2444
2445 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2446
2447         * sese.c (rename_uses): Do not handle ADDR_EXPR in LHS of assignments.
2448
2449 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2450
2451         PR middle-end/45297
2452         * graphite-poly.c (new_poly_bb): Returns a poly_bb_p.  Do not take
2453         the reduction bool in parameter.  Clear PBB_IS_REDUCTION.  Set GBB_PBB.
2454         * graphite-poly.h (new_poly_bb): Update declaration.
2455         (gbb_from_bb): Moved here...
2456         (pbb_from_bb): New.
2457         * graphite-sese-to-poly.c (var_used_in_not_loop_header_phi_node):
2458         Removed.
2459         (graphite_stmt_p): Removed.
2460         (try_generate_gimple_bb): Returns a gimple_bb_p.  Do not pass in
2461         sbitmap reductions.  Always build a gimple_bb_p.  Do not call
2462         new_poly_bb.
2463         (build_scop_bbs_1): Do not pass in sbitmap reductions.
2464         (build_scop_bbs): Same.
2465         (gbb_from_bb): ... from here.
2466         (add_conditions_to_constraints): Moved up.
2467         (analyze_drs): New.
2468         (build_scop_drs): Call analyze_drs.  Remove all the PBBs that do
2469         not contain data references.
2470         (new_pbb_from_pbb): New.
2471         (insert_out_of_ssa_copy_on_edge): Call new_pbb_from_pbb after a
2472         block is split.
2473         (rewrite_close_phi_out_of_ssa): Update call to
2474         insert_out_of_ssa_copy_on_edge.
2475         (rewrite_reductions_out_of_ssa): Now static.
2476         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2477         (split_pbb): New.
2478         (split_reduction_stmt): Call split_pbb.
2479         (translate_scalar_reduction_to_array): Pass in the scop, do not
2480         pass in the sbitmap reductions.
2481         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
2482         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
2483         (rewrite_commutative_reductions_out_of_ssa): Same.
2484         (build_poly_scop): Call build_scop_bbs,
2485         rewrite_commutative_reductions_out_of_ssa,
2486         rewrite_reductions_out_of_ssa, and
2487         rewrite_cross_bb_scalar_deps_out_of_ssa.  Move build_scop_drs
2488         before scop_to_lst.
2489         * graphite-sese-to-poly.h (rewrite_commutative_reductions_out_of_ssa):
2490         Removed declaration.
2491         (rewrite_reductions_out_of_ssa): Same.
2492         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
2493         (build_scop_bbs): Same.
2494         * graphite.c (graphite_transform_loops): Do not initialize reductions.
2495         Do not call build_scop_bbs,
2496         rewrite_commutative_reductions_out_of_ssa,
2497         rewrite_reductions_out_of_ssa, and
2498         rewrite_cross_bb_scalar_deps_out_of_ssa.
2499         * sese.h (struct gimple_bb): Add field pbb.
2500         (GBB_PBB): New.
2501
2502 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2503
2504         * graphite-sese-to-poly.c (handle_scalar_deps_crossing_scop_limits):
2505         New.
2506         (rewrite_cross_bb_scalar_deps): Pass in the scop.  Call
2507         handle_scalar_deps_crossing_scop_limits.
2508         (rewrite_cross_bb_scalar_deps_out_of_ssa): Create an empty BB
2509         after the scop.  Update call to rewrite_cross_bb_scalar_deps.
2510
2511 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2512
2513         * sese.c (rename_uses): Call recompute_tree_invariant_for_addr_expr
2514         when replacing a constant in an ADDR_EXPR.
2515
2516 2010-12-01  Sebastian Pop  <sebastian.pop@amd.com>
2517
2518         * graphite-blocking.c (lst_do_strip_mine_loop): Extra parameter
2519         for the stride.
2520         (lst_do_strip_mine): Same.
2521         (scop_do_strip_mine): Same.
2522         * graphite-poly.c (apply_poly_transforms): Update call to
2523         scop_do_strip_mine.
2524         * graphite-poly.h (scop_do_strip_mine): Update declaration.
2525
2526 2010-12-01  Jan Hubicka  <jh@suse.cz>
2527
2528         * tree.c (build_common_builtin_nodes): Do not initialize
2529         BUILT_IN_PROFILE_FUNC_ENTER and BUILT_IN_PROFILE_FUNC_EXIT.
2530         * builtins.c (expand_builtin_profile_func): Remove.
2531         (expand_builtin): Do not handle BUILT_IN_PROFILE_FUNC_ENTER and
2532         BUILT_IN_PROFILE_FUNC_EXIT.
2533         * builtins.def (profile_func_enter, profile_func_exit): Remove stubs.
2534         (__cyg_profile_func_enter, __cyg_profile_func_exit): New.
2535         * gimplify.c (gimplify_function_tree): Reorganize code calling
2536         profiling functions.
2537
2538 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2539
2540         * opts.c: Expand comment on tm.h include.
2541
2542 2010-12-01  Yao Qi  <yao@codesourcery.com>
2543
2544         * config/arm/predicates.md ("vfp_register_operand"): Return true for
2545         VFP_D0_D7_REGS classes.
2546
2547 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2548
2549         * common.opt (flag_stack_check): New Variable entry.
2550         (fcompare-debug-second): Use Var.
2551         * flags.h (flag_compare_debug, flag_stack_check): Remove.
2552         * opts.c (flag_compare_debug): Remove.
2553         (common_handle_option): Don't handle OPT_fcompare_debug_second.
2554         Set opts->x_flag_stack_check for OPT_fstack_check_.
2555         * toplev.c (flag_stack_check): Remove.
2556
2557 2010-12-01  Joseph Myers  <joseph@codesourcery.com>
2558
2559         * common.opt (main_input_filename, main_input_basename,
2560         main_input_baselength): New Variable entries.  From toplev.c.
2561         * final.c (output_quoted_string): Move from toplev.c.
2562         * output.h (output_quoted_string): Move from toplev.h.
2563         * opts-global.c (read_cmdline_options): Use gcc_options pointer to
2564         access main_input_filename, main_input_baselength and
2565         main_input_basename.
2566         * targhooks.c: Include intl.h and opts.h.
2567         (option_affects_pch_p, default_get_pch_validity): Move from toplev.c.
2568         * targhooks.h (option_affects_pch_p, default_get_pch_validity):
2569         Move from toplev.h.
2570         * toplev.c (main_input_filename, main_input_basename,
2571         main_input_baselength): Move to common.opt.
2572         (output_quoted_string): Move to final.c.
2573         (warn_deprecated_use): Move to tree.c.
2574         (option_affects_pch_p, default_get_pch_validity,
2575         pch_option_mismatch, default_pch_valid_p): Move to targhooks.c.
2576         * toplev.h (skip_leading_substring): Move to tree-dump.c.
2577         (warn_deprecated_use): Move to tree.h.
2578         (output_quoted_string): Move to output.h.
2579         (main_input_filename, main_input_basename, main_input_baselength):
2580         Move to common.opt.
2581         (default_get_pch_validity, default_pch_valid_p): Move to targhooks.c.
2582         * tree-dump.c (skip_leading_substring): Move from toplev.h.
2583         * tree.c (warn_deprecated_use): Move from toplev.c.
2584         * tree.h (warn_deprecated_use): Move from toplev.h.
2585         * c-typeck.c, config/alpha/alpha.c, config/arc/arc.c,
2586         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
2587         config/cris/cris.c, config/crx/crx.c, config/fr30/fr30.c,
2588         config/frv/frv.c, config/h8300/h8300.c, config/ia64/ia64.c,
2589         config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c,
2590         config/m32r/m32r.c, config/m68hc11/m68hc11.c, config/m68k/m68k.c,
2591         config/mcore/mcore.c, config/mep/mep.c,
2592         config/microblaze/microblaze.c, config/mips/mips.c,
2593         config/mmix/mmix.c, config/mn10300/mn10300.c,
2594         config/moxie/moxie.c, config/pa/pa.c, config/pdp11/pdp11.c,
2595         config/picochip/picochip.c, config/s390/s390.c,
2596         config/score/score.c, config/sh/sh.c, config/sparc/sparc.c,
2597         config/spu/spu.c, config/stormy16/stormy16.c, config/v850/v850.c,
2598         config/vax/vax.c, config/xtensa/xtensa.c, gimple-low.c,
2599         graphite-sese-to-poly.c, plugin.c, tree-cfg.c, tree-inline.c,
2600         varasm.c, xcoffout.c: Don't include toplev.h.
2601         * Makefile.in (c-typeck.o, tree-inline.o, tree-cfg.o,
2602         gimple-low.o, graphite-sese-to-poly.o, targhooks.o, plugin.o,
2603         varasm.o, xcoffout.o): Update dependencies.
2604         * config/arm/t-arm (arm.o): Update dependencies.
2605         * config/spu/t-spu-elf (spu.o): Update dependencies.
2606
2607 2010-12-01  Richard Guenther  <rguenther@suse.de>
2608
2609         PR tree-optimization/46730
2610         * value-prof.c (gimple_ic): Always generate a separate merge BB.
2611
2612 2010-11-30  Ian Lance Taylor  <iant@google.com>
2613
2614         * config/i386/linux.h (ASM_SPEC): Pass -v as -v, not -V.  Remove
2615         all of %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}.
2616         * config/i386/linux64.h (ASM_SPEC): Likewise.
2617         * config/i386/mingw-w64.h (ASM_SPEC): Likewise.
2618         * config/i386/sol2-10.h (ASM_SPEC) [USE_GAS]: Likewise.
2619         * config/i386/vxworks.h (ASM_SPEC): Likewise.
2620         * config/i386/x86-64.h (ASM_SPEC): Likewise.
2621         * config/i386/sol2.h (ASM_SPEC): Remove %{Wa,*:%*}.
2622         * config/i386/sol2-10.h (ASM_SPEC) [!USE_GAS]: Likewise.
2623
2624 2010-11-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2625
2626         * c-decl.c (finish_function): Call objc_finish_function in
2627         Objective-C.
2628         * c-typeck.c (convert_for_assignment): Do not call
2629         objc_type_quals_match().
2630
2631 2010-11-30  Richard Guenther  <rguenther@suse.de>
2632
2633         PR tree-optimization/46722
2634         * tree-ssa-math-opts.c (convert_mult_to_fma): Get multiplication
2635         operands as arguments.
2636         (execute_optimize_widening_mul): Also handle power of two as
2637         multiplication.
2638
2639 2010-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2640
2641         PR middle-end/46709
2642         * cgraphunit.c (process_function_and_variable_attributes): Fix
2643         cut'n'pasteo.
2644
2645 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2646
2647         * hwint.c:  New.  Extracted from toplev.c.
2648         * hwint.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2649         Move from toplev.h.
2650         * toplev.c (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2651         Move to hwint.c.
2652         * toplev.h (clz_hwi, ctz_hwi, ffs_hwi, exact_log2, floor_log2):
2653         Move to hwint.h.
2654         * builtins.c, combine.c, config/i386/winnt.c, double-int.c,
2655         explow.c, expmed.c, fold-const.c, ggc-page.c, ggc-zone.c, ifcvt.c,
2656         ipa-struct-reorg.c, ira-color.c, matrix-reorg.c, omp-low.c,
2657         real.c, recog.c, reload.c, rtlanal.c, simplify-rtx.c,
2658         stor-layout.c, tree-dfa.c, tree-ssa-alias.c,
2659         tree-ssa-loop-niter.c, tree-vect-data-refs.c,
2660         tree-vect-loop-manip.c, tree-vect-loop.c, tree-vect-stmts.c,
2661         tree-vrp.c: Don't include toplev.h.
2662         * genattrtab.c, genconditions.c, genemit.c, genextract.c,
2663         genoutput.c, genpeep.c, genpreds.c, genrecog.c: Don't include
2664         toplev.h in generated output.
2665         * Makefile.in (OBJS-common): Add hwint.o.
2666         Dependencies for above files changed to remove toplev.h.
2667         (hwint.o): New.
2668         (insn-attrtab.o, insn-emit.o, insn-extract.o, insn-output.o,
2669         insn-peep.o, insn-preds.o, insn-recog.o): Don't depend on toplev.h.
2670         * config/i386/t-cygming (winnt.o): Don't depend on toplev.h.
2671         * config/i386/t-interix (winnt.o): Don't depend on toplev.h.
2672
2673 2010-11-30  Richard Guenther  <rguenther@suse.de>
2674
2675         PR tree-optimization/46717
2676         * value-prof.c (gimple_ic): Preserve EH edges of the indirect
2677         call.  Manually create EH edges for the direct call and update
2678         target PHI nodes.
2679
2680 2010-11-30  Joseph Myers  <joseph@codesourcery.com>
2681
2682         * diagnostic-core.h: Include bversion.h.
2683         * toplev.h: Don't include input.h or bversion.h.
2684         (parse_optimize_options): Don't declare here.
2685         * alias.c, auto-inc-dec.c, c-aux-info.c, c-convert.c, c-parser.c,
2686         caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c,
2687         combine-stack-adj.c, config/arm/pe.c, config/darwin-c.c,
2688         config/host-darwin.c, config/i386/host-cygwin.c,
2689         config/i386/host-mingw32.c, config/i386/msformat-c.c,
2690         config/i386/netware.c, config/i386/nwld.c,
2691         config/i386/winnt-cxx.c, config/i386/winnt-stubs.c,
2692         config/ia64/ia64-c.c, config/m32c/m32c-pragma.c,
2693         config/mep/mep-pragma.c, config/microblaze/microblaze-c.c,
2694         config/rs6000/host-darwin.c, config/rs6000/rs6000-c.c,
2695         config/score/score3.c, config/score/score7.c,
2696         config/sh/symbian-base.c, config/sh/symbian-c.c,
2697         config/sh/symbian-cxx.c, config/sol2-c.c, config/sol2.c,
2698         config/v850/v850-c.c, config/vxworks.c, convert.c, cppbuiltin.c,
2699         cselib.c, dbgcnt.c, ddg.c, dfp.c, dominance.c, emit-rtl.c,
2700         fixed-value.c, fwprop.c, ggc-common.c, gimple.c, gimplify.c,
2701         graphite-blocking.c, graphite-clast-to-gimple.c,
2702         graphite-dependences.c, graphite-flattening.c,
2703         graphite-interchange.c, graphite-poly.c,
2704         graphite-scop-detection.c, graphite.c, haifa-sched.c,
2705         implicit-zee.c, integrate.c, ipa-pure-const.c, ipa-reference.c,
2706         ira-build.c, ira-conflicts.c, ira-costs.c, ira-lives.c, jump.c,
2707         lists.c, loop-doloop.c, loop-iv.c, lto-cgraph.c, lto-compress.c,
2708         lto-opts.c, lto-section-in.c, lto-section-out.c,
2709         lto-streamer-out.c, lto-symtab.c, modulo-sched.c, optabs.c,
2710         params.c, postreload-gcse.c, postreload.c, predict.c, profile.c,
2711         regcprop.c, reginfo.c, regmove.c, reorg.c, resource.c,
2712         sched-deps.c, sched-ebb.c, sched-rgn.c, sdbout.c,
2713         sel-sched-dump.c, sel-sched-ir.c, sese.c, stmt.c, targhooks.c,
2714         tree-cfgcleanup.c, tree-mudflap.c, tree-nomudflap.c,
2715         tree-object-size.c, tree-outof-ssa.c, tree-phinodes.c,
2716         tree-profile.c, tree-sra.c, tree-ssa-ccp.c, tree-ssa-coalesce.c,
2717         tree-ssa-live.c, tree-ssa-loop-prefetch.c, tree-ssa-loop.c,
2718         tree-ssa-operands.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
2719         tree-vect-patterns.c, value-prof.c, var-tracking.c, web.c: Don't
2720         include toplev.h.
2721         * Makefile.in (TOPLEV_H): Remove.  All uses changed to use
2722         toplev.h.  Dependencies for above files and c-family files changed
2723         to remove $(TOPLEV_H) or toplev.h.
2724         (C_TREE_H): Don't include $(TOPLEV_H).
2725         (DIAGNOSTIC_CORE_H): Use $(INPUT_H) instead of input.h.  Add
2726         bversion.h.
2727         * config/arm/t-pe, config/arm/t-wince-pe, config/i386/t-cygming,
2728         config/ia64/t-ia64, config/mep/t-mep, config/score/t-score-elf,
2729         config/t-darwin, config/t-sol2,
2730         config/t-vxworks, config/v850/t-v850, config/v850/t-v850e:
2731         Dependencies for above files changed to remove $(TOPLEV_H) or
2732         toplev.h.
2733
2734 2010-11-30  Richard Guenther  <rguenther@suse.de>
2735
2736         PR lto/44986
2737         * gcc.c (main): Use the first input with a compiler as infile
2738         for link spec processing.
2739
2740 2010-11-30  Richard Guenther  <rguenther@suse.de>
2741
2742         PR lto/45949
2743         * cgraphunit.c (ipa_passes): Stop after errors from small IPA passes.
2744
2745 2010-11-30  Mingjie Xing  <mingjie.xing@gmail.com>
2746
2747         * gcc-plugin.h: Include coretypes.h.
2748         * Makefile.in (FUNCTION_H): Add hard-reg-set.h.
2749
2750 2010-11-30  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2751
2752         * ggc-zone.c (ggc_pch_read): Fix conditional compilation.
2753         * ggc-none.c (ggc_internal_alloc_zone_stat)
2754         (ggc_internal_cleared_alloc_zone_stat): New.
2755
2756 2010-11-29  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
2757
2758         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Check
2759         TARGET_SINGLE_PIC_BASE for RS6000_PIC_OFFSET_TABLE_REGNUM.
2760         (rs6000_emit_prologue): Don't set PIC register if
2761         TARGET_SINGLE_PIC_BASE.
2762         * config/rs6000/rs6000.opt (msingle-pic-base): New option.
2763         * doc/invoke.texi (msingle-pic-base): Document.
2764
2765 2010-11-29  H.J. Lu  <hongjiu.lu@intel.com>
2766
2767         PR driver/46712
2768         * exec-tool.in (id): New.
2769         Check and export LT_RCU_$id instead of LT_RCU.
2770
2771 2010-11-29  Zdenek Dvorak  <rakdver@kam.uniff.cz>
2772
2773         PR tree-optimization/46675
2774         * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow
2775         in offset calculation.
2776
2777 2010-11-29  Jan Hubicka  <jh@suse.cz>
2778
2779         * collect2.c (main): Do not imply verbose output with
2780         LTO and linker plugin.
2781
2782 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2783
2784         * dwarf2out.c (print_die): Print the address of the current DIE or
2785         of any DIE referenced by the current one.
2786
2787 2010-11-29  Dodji Seketeli  <dodji@redhat.com>
2788
2789         PR debug/46101
2790         * dwarf2out.c (lookup_type_die_strip_naming_typedef): New function.
2791         (scope_die_for, gen_type_die_for_member): Replace uses of
2792         lookup_type_die with use of lookup_type_die_strip_naming_typedef.
2793
2794 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2795
2796         * config/darwin.c (darwin_mergeable_string_section): Remove blank line.
2797         (darwin_asm_declare_object_name): Correct spelling.
2798         (darwin_output_aligned_bss): Likewise.
2799
2800 2010-11-29  Iain Sandoe  <iains@gcc.gnu.org>
2801             Mike Stump  <mrs@gcc.gnu.org>
2802
2803         PR target/26427
2804         PR target/33120
2805         PR testsuite/35710
2806         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Remove
2807         (ASM_OUTPUT_LOCAL): Likewise.
2808         * config/darwin-protos.h (darwin_asm_declare_object_name): New.
2809         (darwin_output_aligned_bss): Likewise.
2810         (darwin_asm_output_aligned_decl_local): Likewise.
2811         (darwin_asm_output_aligned_decl_common): Likewise.
2812         (darwin_use_anchors_for_symbol_p): Likewise.
2813         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Remove.
2814         (TARGET_ASM_OUTPUT_ANCHOR): Define.
2815         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
2816         (DARWIN_SECTION_ANCHORS): Set to 1.
2817         * config/darwin.c (emit_aligned_common): New var.
2818         (darwin_init_sections): Check that the Darwin private zero-size section
2819         marker is in range.
2820         (darwin_text_section): Check for zero-sized objects.
2821         (darwin_mergeable_string_section): Likewise.
2822         (darwin_mergeable_constant_section): Likewise.
2823         (machopic_select_section): Adjust to check for zero-sized objects.
2824         Assert that OBJC meta data are non-zero sized.
2825         (darwin_asm_declare_object_name): New.
2826         (darwin_asm_declare_constant_name): Adjust for zero-sized
2827         object sections.
2828         (BYTES_ZFILL): Define.
2829         (darwin_emit_weak_or_comdat): New.
2830         (darwin_emit_local_bss): New.
2831         (darwin_emit_common): New.
2832         (darwin_output_aligned_bss): New.
2833         (darwin_asm_output_aligned_decl_common): New.
2834         (darwin_asm_output_aligned_decl_local): New.
2835         (darwin_file_end): Disable subsections_via_symbols when section
2836         anchoring is active.
2837         (darwin_asm_output_anchor): Re-enable.
2838         (darwin_use_anchors_for_symbol_p): New.
2839         (darwin_override_options): Check for versions that can emit
2840         aligned common.  Update usage of flags to current.
2841         * config/darwin-sections.def: Update comments and flags for
2842         non-anchor sections.  zobj_const_section, zobj_data_section,
2843         zobj_bss_section, zobj_const_data_section: New.
2844         * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Redefine.
2845         (ASM_OUTPUT_ALIGN): Make whitespace output consistent.
2846         (L2_MAX_OFILE_ALIGNMENT): Define.
2847         (ASM_OUTPUT_ALIGNED_BSS): Define.
2848         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2849         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2850         (SECTION_NO_ANCHOR): Define.
2851         (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL.
2852         (DARWIN_SECTION_ANCHORS): Define with a default of 0.
2853
2854 2010-11-29  Joseph Myers  <joseph@codesourcery.com>
2855
2856         * system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
2857         Include <signal.h>, <sys/mman.h>, <sys/resource.h> and <sys/times.h>.
2858         (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
2859         Conditionally define.
2860         (GET_ENVIRONMENT): Poison.
2861         * configure.ac: Don't test for mincore.
2862         * configure: Regenerate.
2863         * config.in: Regenerate.
2864         * collect2-aix.c: Don't include <sys/mman.h>.
2865         * collect2.c: Don't include <signal.h>.
2866         (SIGCHLD): Don't define.
2867         (prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
2868         * config/alpha/alpha.c: Include "splay-tree.h" instead of
2869         <splay-tree.h>.
2870         * config/arm/arm.c (arm_target_help): Use getenv instead of
2871         GET_ENVIRONMENT.
2872         * config/avr/driver-avr.c: Don't include <stdlib.h>.
2873         * config/frv/frv.c: Don't include <ctype.h>.
2874         * config/host-darwin.c: Don't include <sys/mman.h>.
2875         * config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
2876         (MAP_FAILED): Don't define.
2877         * config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
2878         * config/host-solaris.c: Don't include <sys/mman.h>.
2879         * config/i386/cygming.h: Don't include <stdio.h>.
2880         * config/i386/driver-i386.c: Don't include <stdlib.h>.
2881         * config/i386/host-cygwin.c: Don't include <sys/mman.h>.
2882         * config/iq2000/iq2000.c: Don't include <signal.h>.
2883         * config/m32c/m32c-pragma.c: Don't include <stdio.h>.
2884         * config/m68hc11/m68hc11.c: Don't include <stdio.h>.
2885         * config/mep/mep-pragma.c: Don't include <stdio.h>.
2886         * config/microblaze/microblaze.c: Don't include <signal.h>.
2887         * config/mips/mips.c: Don't include <signal.h>.
2888         * config/rs6000/host-darwin.c: Don't include <signal.h>.
2889         * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT.
2890         * defaults.h (GET_ENVIRONMENT): Don't define.
2891         * et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
2892         * gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
2893         (SIGCHLD, MAP_FAILED, kill): Don't define.
2894         (process_command): Use getenv instead of GET_ENVIRONMENT.
2895         * genhooks.c: Don't include <string.h>.
2896         * ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
2897         <sys/types.h>.
2898         (MAP_FAILED): Don't define.
2899         * ggc-page.c Don't include <sys/mman.h>.
2900         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2901         * ggc-zone.c: Don't include <sys/mman.h>.
2902         (MAP_ANONYMOUS, MAP_FAILED): Don't define.
2903         * graph.c: Include "config.h" instead of <config.h>.
2904         * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT.
2905         * lto-wrapper.c: Don't include <errno.h>, <signal.h> or "libiberty.h".
2906         (SIGCHLD, kill): Don't define.
2907         * mips-tfile.c: Don't include <signal.h>.
2908         * opts.c: Don't include <signal.h> or <sys/resource.h>.
2909         (print_specific_help): Use getenv instead of GET_ENVIRONMENT.
2910         * passes.c: Don't include <signal.h>, <sys/resource.h> or
2911         <sys/times.h>.
2912         * sparseset.h: Don't include <assert.h>.
2913         * timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
2914         * tlink.c: Don't include "libiberty.h".
2915         * toplev.c: Don't include <signal.h> or <sys/times.h>.
2916         * tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
2917         * tree-switch-conversion.c: Don't include <signal.h>.
2918         * vmsdbgout.c: Don't include <errno.h> or <string.h>.
2919
2920 2010-11-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2921
2922         * c-parser.c (c_parser_objc_try_catch_statement): Renamed to
2923         c_parser_objc_try_catch_finally_statement for consistency with the
2924         C++ parser.  Parse @catch(...) and pass NULL_TREE to
2925         objc_begin_catch_clause() in that case.  Improved error recovery.
2926         Reorganized code to be almost identical to
2927         cp_parser_objc_try_catch_finally_statement.
2928
2929 2010-11-29  Joern Rennecke  <amylaar@spamcop.net>
2930
2931         PR tree-optimization/46621
2932         * gimple.h: Don't include tm.h or hard-reg-set.h .
2933         * Makefile.in (GIMPLE_H): Remove $(TM_H).
2934
2935         PR bootstrap/44756
2936         * cppbuiltin.c: Include target.h .
2937         (define_builtin_macros_for_type_sizes):
2938         Use targetm.float_words_big_endian.
2939
2940 2010-11-27  Jan Hubicka  <jh@suse.cz>
2941
2942         * dwarf2out.c (dwarf2out_begin_function): Set cold_text_section
2943         and output cold_text_section_label.
2944         (dwarf2out_init): Don't do that there.
2945         (dwarf2out_finish): Handle cold section end label only if cold
2946         section was used.
2947
2948 2010-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2949
2950         * tree-nested.c (remap_vla_decls): Fully expand value expressions of
2951         VLA variables.
2952
2953 2010-11-27  Richard Guenther  <rguenther@suse.de>
2954
2955         * gimple.c (gimple_assign_copy_p): Use gimple_assign_single_p.
2956         (gimple_assign_ssa_name_copy_p): Likewise.
2957         (gimple_assign_unary_nop_p): Use is_gimple_assign.
2958         (is_gimple_cast): Remove.
2959         (gimple_assign_single_p): Move ...
2960         * gimple.h (gimple_assign_single_p): ... here.
2961         (is_gimple_cast): Remove.
2962         (gimple_assign_rhs_code): Simplify.
2963         * gimple-fold.c (gimple_fold_builtin): Use CONVERT_EXPR_P
2964         instead of is_gimple_cast.
2965         * ipa-type-escape.c (look_for_casts): Likewise.
2966
2967 2010-11-26  Joseph Myers  <joseph@codesourcery.com>
2968
2969         * doc/options.texi (Enum, EnumValue): Document new record types.
2970         (Enum): Document new option flag.
2971         * opt-functions.awk
2972         * optc-gen.awk: Handle enumerated option arguments.
2973         * opth-gen.awk: Handle enumerated option arguments.
2974         * opts-common.c (enum_arg_ok_for_language, enum_arg_to_value,
2975         enum_value_to_arg): New.
2976         (decode_cmdline_option): Handle enumerated arguments.
2977         (read_cmdline_option): Handle CL_ERR_ENUM_ARG.
2978         (set_option, option_enabled, get_option_state): Handle CLVC_ENUM.
2979         * opts.c (print_filtered_help, print_specific_help): Take
2980         lang_mask arguments.
2981         (print_filtered_help): Handle printing values of enumerated
2982         options.  Print possible arguments for enumerated options.
2983         (print_specific_help): Update call to print_filtered_help.
2984         (common_handle_option): Update calls to print_specific_help.  Use
2985         value rather than arg for OPT_fdiagnostics_show_location_.  Don't
2986         handle OPT_ffp_contract_, OPT_fexcess_precision_,
2987         OPT_fvisibility_, OPT_ftls_model_, OPT_fira_algorithm_ or
2988         OPT_fira_region_ here.
2989         * opts.h (enum cl_var_type): Add CLVC_ENUM.
2990         (struct cl_option): Add var_enum.
2991         (CL_ENUM_CANONICAL, CL_ENUM_DRIVER_ONLY, struct cl_enum_arg,
2992         struct cl_enum, cl_enums, cl_enums_count): New.
2993         (CL_ERR_ENUM_ARG): Define.
2994         (CL_ERR_NEGATIVE): Update value.
2995         (enum_value_to_arg): Declare.
2996         * common.opt (flag_ira_algorithm, flag_ira_region,
2997         flag_fp_contract_mode, flag_excess_precision_cmdline,
2998         default_visibility, flag_tls_default): Remove Variable entries.
2999         (help_enum_printed): New Variable.
3000         (fdiagnostics-show-location=): Use Enum.  Add associated
3001         SourceInclude, Enum and EnumValue entries.
3002         (fexcess-precision=, ffp-contract=, fira-algorithm=, fira-region=,
3003         ftls-model=, fvisibility=): Use Enum, Var and Init.  Add
3004         associated Enum and EnumValue entries.
3005
3006 2010-11-26  Joern Rennecke  <amylaar@spamcop.net>
3007
3008         PR target/46623
3009         * config/microblaze/microblaze.c (microblaze_block_move_straight):
3010         Use XALLOCAVEC.
3011         (microblaze_option_override): Don't use C++ style comments.
3012         (save_restore_insns): Remove unused variable base_offset.
3013         (microblaze_expand_prologue): Remove unused variable insn.
3014         (microblaze_secondary_reload): Adjust type to match target.h .
3015         (microblaze_elf_in_small_data_p): Move declarations to start of block.
3016         (microblaze_expand_move): Likewise.
3017         * config/microblaze/microblaze.h (LARGE_INT):
3018         Avoid signed / unsigned comparisons.
3019         (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
3020         (ASM_FORMAT_PRIVATE_NAME): Make format specifier match printed data.
3021         (ASM_FINISH_DECLARE_OBJECT): Likewise.  Constify name.
3022
3023 2010-11-26  Michael Matz  <matz@suse.de>
3024
3025         * tree-ssa-copy.c (fini_copy_prop): Don't DCE when we have loops.
3026
3027         * passes.c (init_optimization_passes): Remove superfluous
3028         copy-prop pass.
3029
3030 2010-11-26  Richard Guenther  <rguenther@suse.de>
3031
3032         PR lto/46648
3033         * gimple.c (gtc_visit): Do not return true for members of an
3034         SCC still being processed but the current lattice value of
3035         the member.  Treat SCC members comparison state as lattice,
3036         starting at equal, eventually dropping to unequal.
3037         (gimple_types_compatible_p_1): Likewise.
3038
3039 2010-11-26  Richard Guenther  <rguenther@suse.de>
3040
3041         PR middle-end/46559
3042         * dwarf2out.c (dwarf2out_finish): Use comp_unit_die as root
3043         for location list processing.
3044
3045 2010-11-26  Richard Guenther  <rguenther@suse.de>
3046
3047         PR lto/46560
3048         * cgraph.c (cgraph_clone_edge): Clone call_stmt dependent
3049         flags manually.
3050
3051 2010-11-26  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3052
3053         * config/s390/s390.c (print_operand_address): Replace assert with
3054         error message.
3055         (print_operand): Replace assertions, gcc_unreachable and
3056         fatal_insn with error messages.
3057
3058 2010-11-26  Richard Guenther  <rguenther@suse.de>
3059
3060         PR tree-optimization/46665
3061         * tree-ssa-structalias.c (pt_solution_set_var): Use DECL_PT_UID.
3062
3063 2010-11-26  Ian Bolton  <ian.bolton@arm.com>
3064
3065         * config/arm/arm.c (arm_option_override): enable loop array
3066         prefetching at -O3 for suitable targets, and configure params.
3067         * config/arm/arm-protos.h (struct tune_params): Add fields for
3068         configuring loop array prefetching.
3069
3070 2010-11-26  Christian Borntraeger  <borntraeger@de.ibm.com>
3071
3072         * config/s390/2817.md (z196_crack): Add z196_g3 as possible slot.
3073
3074 2010-11-26  Richard Guenther  <rguenther@suse.de>
3075
3076         PR tree-optimization/46664
3077         * tree-affine.c (aff_combination_to_tree): Add rest last.
3078
3079 2010-11-26  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
3080
3081         PR target/33637
3082         * configure.ac: Accept extra arguments for AS_FOR_TARGET,
3083         LD_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET.
3084         * configure: Regenerated.
3085         * exec-tool.in: Not quoting command, may have extra arguments.
3086
3087 2010-11-26  Richard Guenther  <rguenther@suse.de>
3088
3089         PR tree-optimization/46528
3090         PR debug/46338
3091         * profile.c (branch_prob): Do not split blocks based on locations
3092         from debug statements.
3093
3094 2010-11-26  Jakub Jelinek  <jakub@redhat.com>
3095
3096         PR middle-end/46647
3097         * builtins.c (fold_builtin_memset): Check c is INTEGER_CST instead
3098         of host_integerp check.  Use TREE_INT_CST_LOW instead of tree_low_cst.
3099
3100         PR bootstrap/45700
3101         * tree.h (build1_stat_loc, build2_stat_loc, build3_stat_loc,
3102         build4_stat_loc, build5_stat_loc, build6_stat_loc): New inlines.
3103         (build1_loc, build2_loc, build3_loc, build4_loc, build5_loc,
3104         build6_loc): Define.
3105         * fold-const.c (protected_set_expr_location_unshare): New inline.
3106         (fold_convert_loc, pedantic_non_lvalue_loc): Use it.
3107         (negate_expr, associate_trees, non_lvalue_loc, omit_one_operand_loc,
3108         pedantic_omit_one_operand_loc, omit_two_operands_loc,
3109         fold_truth_not_expr, invert_truthvalue_loc, make_bit_field_ref,
3110         optimize_bit_field_compare, make_range, fold_range_test, fold_truthop,
3111         build_fold_addr_expr_with_type_loc, fold_unary_loc, fold_binary_loc,
3112         fold_indirect_ref_1, build_fold_indirect_ref_loc): Use builN_loc
3113         instead of buildN followed by SET_EXPR_LOCATION or
3114         protected_set_expr_location.
3115         (fold_build1_stat_loc, fold_build2_stat_loc, fold_build3_stat_loc):
3116         Use buildN_stat_loc instead of buildN_stat followed by
3117         SET_EXPR_LOCATION.
3118
3119 2010-11-26  Basile Starynkevitch  <basile@starynkevitch.net>
3120
3121         * Makefile.in (s-tm-texi): Remove spurous tab.
3122
3123 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
3124
3125         PR debug/46258
3126         * tree-cfg.c (replace_uses_by): Don't mark BBs as altered on
3127         debug stmts.
3128
3129 2010-11-26  Alexandre Oliva  <aoliva@redhat.com>
3130
3131         * toplev.c (finalize): Add no_backend parameter.  Don't finish
3132         passes when preprocessing only.  Adjust...
3133         (do_compile): ... caller.
3134
3135 2010-11-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3136
3137         * config/pa/pa.md (negdf2): Condition on !flag_signed_zeros instead of
3138         flag_unsafe_math_optimizations.
3139         (negsf2): Likewise.
3140         Move fnegabs related patterns together.  Only use fmpynfadd instruction
3141         to negate a multiply if !flag_signed_zeros is true.
3142
3143 2010-11-25  Uros Bizjak  <ubizjak@gmail.com>
3144
3145         * gengtype-state.c (read_state_structures): Initialize "previous".
3146
3147 2010-11-25  Basile Starynkevitch  <basile@starynkevitch.net>
3148             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3149
3150         * gengtype-state.c: Add new file.
3151
3152         * gengtype.c (type count): New variable.
3153         (new_structure, find_param_structure, create_pointer)
3154         (create_array): Use it to set state_number in types.
3155         (dump_everything): Improve comment.
3156         (main): Call read_state and write_state. Print type_count.
3157
3158         * gengtype.h (type_lineloc): New function.
3159         (read_state, write_state): New declarations.
3160
3161         * Makefile.in (GENGTYPE_FLAGS): New variable.
3162         (s-gtype): Run gengtype twice and generate gtype.state.
3163         (build/gengtype-state.o): New rule.
3164         (build/gengtype$(build_exeext)): Link gengtype-state.o.
3165         (mostlyclean): Update comment.  Remove gtype.state.
3166
3167 2010-11-25  Jakub Jelinek  <jakub@redhat.com>
3168
3169         PR middle-end/46637
3170         * combine.c (try_combine): When substing i2dest for i2src, pass
3171         1 as last argument even if
3172         i0_feeds_i1_n && i1_feeds_i2_n && i0dest_in_i0src.
3173
3174 2010-11-25  H.J. Lu  <hongjiu.lu@intel.com>
3175
3176         PR middle-end/46647
3177         * builtins.c (target_char_cast): Check INTEGER_CST instead of
3178         host_integerp.  Replace tree_low_cst with TREE_INT_CST_LOW.
3179
3180 2010-11-25  Joseph Myers  <joseph@codesourcery.com>
3181
3182         * target.def (supports_split_stack, except_unwind_info): Take
3183         gcc_options parameters.
3184         * targhooks.c (default_except_unwind_info,
3185         dwarf2_except_unwind_info, sjlj_except_unwind_info): Take
3186         gcc_options parameters.
3187         * targhooks.h (default_except_unwind_info,
3188         dwarf2_except_unwind_info, sjlj_except_unwind_info): Update
3189         prototypes.
3190         * doc/tm.texi.in (TARGET_IRA_COVER_CLASSES,
3191         TARGET_HAVE_NAMED_SECTIONS, TARGET_UNWIND_TABLES_DEFAULT):
3192         Document that hooks must not be modified.
3193         (TARGET_EXCEPT_UNWIND_INFO): Refer to opts argument.
3194         * doc/tm.texi: Regenerate.
3195         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Pass
3196         &global_options to targetm.except_unwind_info.
3197         * dwarf2out.c (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3198         dwarf2out_begin_prologue, dwarf2out_frame_init,
3199         dwarf2out_frame_finish, dwarf2out_assembly_start): Pass
3200         &global_options to targetm.except_unwind_info.
3201         * except.c (init_eh, finish_eh_generation,
3202         gate_convert_to_eh_region_ranges,
3203         output_one_function_exception_table): Pass &global_options to
3204         targetm.except_unwind_info.
3205         * expr.c (build_personality_function): Pass &global_options to
3206         targetm.except_unwind_info.
3207         * function.c (expand_function_end): Pass &global_options to
3208         targetm.except_unwind_info.
3209         * hooks.c (hook_bool_bool_gcc_optionsp_false): New.
3210         * hooks.h (hook_bool_bool_gcc_optionsp_false): Declare.
3211         * opts.c (finish_options): Pass opts to targetm.except_unwind_info
3212         and targetm.supports_split_stack.  Remove assertions about opts
3213         and opts_set.
3214         (common_handle_option): Remove assertions about opts, opts_set and dc.
3215         * tree-tailcall.c (suitable_for_tail_call_opt_p): Pass
3216         &global_options to targetm.except_unwind_info.
3217         * tree.c (build_common_builtin_nodes: Pass &global_options to
3218         targetm.except_unwind_info.
3219         * config/arm/arm.c (arm_except_unwind_info): Add gcc_options parameter.
3220         (arm_compute_func_type, arm_expand_prologue, thumb_pushpop,
3221         thumb1_expand_prologue, thumb1_output_function_prologue,
3222         arm_unwind_emit, arm_output_fn_unwind): Update calls to
3223         arm_except_unwind_info.
3224         * config/i386/i386.c (ix86_supports_split_stack): Add gcc_options
3225         parameter.
3226         * config/ia64/ia64.c (ia64_except_unwind_info): Add gcc_options
3227         parameter.
3228         (ia64_output_function_prologue, ia64_add_bundle_selector_before,
3229         ia64_reorg, ia64_asm_unwind_emit): Update calls to
3230         ia64_except_unwind_info.
3231         * config/pa/pa.c (pa_option_override): Pass &global_options to
3232         targetm.except_unwind_info.
3233         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3234         Remove prototype.
3235
3236 2010-11-25  Kai Tietz  <kai.tietz@onevision.com>
3237
3238         * cgraphunit.c (process_function_and_variable_attributes):
3239         Mark dllexport-ed function/variables as needed.
3240         * ipa.c (cgraph_externally_visible_p): Make dllexport-ed
3241         as externally visible.
3242
3243 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3244
3245         PR rtl-optimization/46585
3246         * sel-sched-ir.c (return_regset_to_pool): Verify that RS is not NULL.
3247         (vinsn_init): Skip computation of dependencies for local NOPs.
3248         (vinsn_delete): Don't try to free regsets for local NOPs.
3249         (setup_nop_and_exit_insns): Change definition of nop_pattern.
3250
3251 2010-11-25  Alexander Monakov  <amonakov@ispras.ru>
3252
3253         PR rtl-optimization/46602
3254         * sel-sched-ir.c (maybe_tidy_empty_bb): Move checking ...
3255         (tidy_control_flow): Here.
3256
3257 2010-11-25  Joern Rennecke  <amylaar@spamcop.net>
3258             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3259
3260         PR bootstrap/45888
3261         * Makefile.in (s-tm-texi): Remove \r occurences from tmp-tm.texi.
3262         Fix target.def pathname in timestamp comparison.
3263
3264 2010-11-24  Richard Henderson  <rth@redhat.com>
3265
3266         * config/ia64/predicates.md (pmpyshr_operand): New.
3267         * config/ia64/ia64.c (ia64_expand_unpack): New.
3268         (ia64_expand_widen_mul_v4hi): New.
3269         (ia64_expand_widen_sum): Update for pattern renames.
3270         (ia64_expand_dot_prod_v8qi): Likewise.
3271         * config/ia64/ia64-protos.h: Update.
3272         * config/ia64/vect.md (vecwider): New mode attribute.
3273         (vec_widen_umult_lo_v8qi, vec_widen_umult_hi_v8qi): New.
3274         (vec_widen_smult_lo_v8qi, vec_widen_smult_hi_v8qi): New.
3275         (pmpyshr2, pmpyshr2_u): New.
3276         (vec_widen_smult_lo_v4hi, vec_widen_smult_hi_v4hi): New.
3277         (vec_widen_umult_lo_v4hi, vec_widen_umult_hi_v4hi): New.
3278         (mulv2si3): New.
3279         (vec_pack_ssat_v4hi): Rename from pack2_sss.
3280         (vec_pack_usat_v4hi): Rename from *pack2_uss.
3281         (vec_pack_ssat_v2si): Rename from pack4_sss.
3282         (vec_interleave_lowv8qi): Rename from unpack1_l, use the correct
3283         vec_select operation.
3284         (vec_interleave_highv8qi): Similarly.
3285         (mux1_alt): Rename from *mux1_alt.
3286         (vec_extract_evenv8qi, vec_extract_oddv8qi): New.
3287         (vec_interleave_lowv4hi): Rename from unpack2_l.
3288         (vec_interleave_highv4hi): Rename from unpack2_h.
3289         (mix2_r): Rename from *mix2_r.
3290         (mix2_l): Similarly.
3291         (vec_extract_evenodd_helper): New.
3292         (vec_extract_evenv4hi, vec_extract_oddv4hi): New.
3293         (vec_interleave_lowv2si): Rename from *unpack4_l.
3294         (vec_interleave_highv2si): Rename from *unpack4_h.
3295         (vec_extract_evenv2si, vec_extract_oddv2si): New.
3296         (vec_interleave_lowv2sf): Rename from fmix_r.
3297         (vec_interleave_highv2sf): Rename from *fmix_l.
3298         (vec_extract_evenv2sf, vec_extract_oddv2sf): New.
3299         (vec_unpacku_lo_<VECINT12>, vec_unpacku_hi_<VECINT12>): New.
3300         (vec_unpacks_lo_<VECINT12>, vec_unpacks_hi_<VECINT12>): New.
3301         (vec_pack_trunc_v4hi, vec_pack_trunc_v2si): New.
3302
3303 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3304
3305         * targhooks.c (default_except_unwind_info): Remove
3306         MUST_USE_SJLJ_EXCEPTIONS case.
3307         * config/h8300/h8300.h (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3308         * config/h8300/h8300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3309         * doc/tm.texi.in (MUST_USE_SJLJ_EXCEPTIONS): Delete.
3310         * doc/tm.texi: Regenerate.
3311         * system.h (MUST_USE_SJLJ_EXCEPTIONS): Poison.
3312
3313 2010-11-24  Nathan Froyd  <froydnj@codesourcery.com>
3314
3315         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
3316         __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
3317         * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
3318         * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
3319         * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
3320
3321 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3322
3323         PR target/46519
3324         * config/i386/i386.c (ix86_expand_call): Don't check
3325         TREE_THIS_VOLATILE.
3326
3327 2010-11-24  H.J. Lu  <hongjiu.lu@intel.com>
3328
3329         PR target/46519
3330         * config/i386/i386.c (upper_128bits_state): New.
3331         (block_info_def): Remove upper_128bits_set and done.  Add state,
3332         referenced, count, processed and rescanned.
3333         (check_avx256_stores): Updated.
3334         (move_or_delete_vzeroupper_2): Updated. Handle deleted BB_END.
3335         Call note_stores only if needed.  Set referenced and count.
3336         (move_or_delete_vzeroupper_1): Updated.  Set rescan_vzeroupper_p.
3337         (rescan_move_or_delete_vzeroupper): New.
3338         (move_or_delete_vzeroupper):  Process and rescan all all basic
3339         blocks instead of predecessor blocks of all exit points.
3340         (ix86_option_override_internal): Enable vzeroupper optimization
3341         only for -fexpensive-optimizations and not optimizing for size.
3342         (use_avx256_p): Removed.
3343         (init_cumulative_args): Don't set use_avx256_p.
3344         (ix86_function_arg): Likewise.
3345         (ix86_expand_move): Likewise.
3346         (ix86_expand_vector_move_misalign): Likewise.
3347         (ix86_local_alignment): Likewise.
3348         (ix86_minimum_alignment): Likewise.
3349         (ix86_expand_epilogue): Don't check use_avx256_p when generating
3350         vzeroupper.
3351         (ix86_expand_call): Likewise.
3352
3353         * config/i386/i386.h (machine_function): Remove use_vzeroupper_p
3354         and use_avx256_p.  Add rescan_vzeroupper_p.
3355
3356 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3357
3358         * toplev.c: Include <signal.h>.
3359
3360 2010-11-24  Richard Guenther  <rguenther@suse.de>
3361
3362         PR lto/43218
3363         * lto-symtab.c (lto_cgraph_replace_node): Mark edges with
3364         conflicting function signatures as non-inlineable.
3365
3366 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR rtl-optimization/46614
3369         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP_P): Define.
3370          (deps_analyze_insn): Mark JUMP_INSNs in
3371         last_pending_memory_flush that weren't added through
3372         flush_pending_lists with NON_FLUSH_JUMP_KIND.
3373         (sched_analyze_2, sched_analyze_insn): Check NON_FLUSH_JUMP_P
3374         on INSN_LIST instead of JUMP_P check on its operand.
3375         * sched-rgn.c (concat_INSN_LIST): Copy over REG_NOTE_KIND.
3376
3377 2010-11-24  Richard Guenther  <rguenther@suse.de>
3378
3379         * lto-streamer-in.c (input_gimple_stmt): Use types_compatible_p.
3380
3381 2010-11-24  Richard Guenther  <rguenther@suse.de>
3382
3383         PR lto/46606
3384         * lto-streamer-in.c (input_gimple_stmt): When we cannot find
3385         a FIELD_DECL that is type correct issue a warning and fixup
3386         with a VIEW_CONVERT_EXPR.
3387
3388 2010-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
3389
3390         * doc/invoke.texi (Options for Debugging Your Program or GCC):
3391         Explain static numbering of dump files.
3392
3393 2010-11-24  Joseph Myers  <joseph@codesourcery.com>
3394
3395         * common.opt (user_vect_verbosity_level): New Variable entry.
3396         (ftree-vectorizer-verbose=): Mark as UInteger.
3397         * flag-types.h (enum vect_verbosity_levels): Move from enum
3398         verbosity_levels in tree-vectorizer.h.
3399         * opts.c: Don't include tree.h.
3400         (vect_set_verbosity_level): Move from tree-vectorizer.c.  Use
3401         gcc_options parameter; take integer option argument.
3402         (common_handle_option): Update call to vect_set_verbosity_level.
3403         * tree-vectorizer.c (user_vect_verbosity_level): Remove.
3404         (vect_set_verbosity_level): Move to opts.c.
3405         (vect_verbosity_level, vect_print_dump_info): Update for change of
3406         enum name.
3407         * tree-vectorizer.h (enum verbosity_levels): Move to flag-types.h.
3408         (vect_print_dump_info): Update for change of enum name.
3409         * tree.h (vect_set_verbosity_level): Remove.
3410         * Makefile.in (opts.o): Update dependencies.
3411
3412 2010-11-24  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR middle-end/46629
3415         * cfgexpand.c (maybe_cleanup_end_of_block): Test NEXT_INSN (insn)
3416         instead of insn with any_condjump_p.
3417
3418 2010-11-24  Mingjie Xing  <mingjie.xing@gmail.com>
3419
3420         * config/mips/loongson.md: Change the description comment of the file
3421         and update the copyright years.
3422         (define_insn "<u>div<mode>3): Add loongson3a support.
3423         (define_insn "<u>mod<mode>3"): Likewise.
3424         * config/mips/mips.md: Rename mul<mode>3_mul3_ls2ef to
3425         mul<mode>3_mul3_loongson.
3426         (define_expand "mul<mode>3"): Add TARGET_LOONGSON_3A.
3427         (define_insn "mul<mode>3_mul3_loongson"): Add loongson3a support.
3428
3429 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3430
3431         * common.opt (initial_max_fld_align, flag_debug_asm,
3432         flag_dump_rtl_in_asm, flag_dump_all_passed, rtl_dump_and_exit,
3433         flag_print_asm_name, graph_dump_format, help_printed,
3434         help_columns, flag_opts_finished): New Variable entries.
3435         (fdbg-cnt-list, fdbg-cnt=, fdebug-prefix-map=, frandom-seed,
3436         frandom-seed=): Mark deferred.
3437         (fsched-verbose=): Use UInteger and Var.
3438         * flags.h (set_struct_debug_option, flag_print_asm_name,
3439         rtl_dump_and_exit, flag_debug_asm, flag_dump_rtl_in_asm,
3440         graph_dump_format): Don't declare here.
3441         * haifa-sched.c (sched_verbose_param, fix_sched_param): Remove.
3442         * opts-global.c: Include dbgcnt.h and debug.h.
3443         (decode_options): Pass location to finish_options.
3444         (handle_common_deferred_options): Check flag_dump_all_passed.
3445         Handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list, OPT_fdebug_prefix_map_,
3446         OPT_frandom_seed and OPT_frandom_seed_.  Don't assert on
3447         OPT_fstack_limit.
3448         * opts.c: Don't include toplev.h, dbgcnt.h or debug.h.
3449         (set_struct_debug_option): Add location_t parameter.  Update
3450         recursive call.  Use error_at.
3451         (default_options_optimization): Use error_at.
3452         (finish_options): Add location_t parameter.  Use
3453         opts->x_flag_opts_finished instead of first_time_p.  Use
3454         opts->x_optimize instead of optimize.  Use error_at.  Pass
3455         location to inform.
3456         (print_filtered_help): Use opts->x_help_printed to track what
3457         options have been printed.
3458         (print_specific_help): Use opts->x_help_columns to track number of
3459         columns.
3460         (common_handle_option): Pass locations and gcc_options pointers to
3461         more functions.  Use warning_at instead of fnotice and warning.
3462         Don't handle OPT_fdbg_cnt_, OPT_fdbg_cnt_list or
3463         OPT_fdebug_prefix_map_.  Use error_at.  Set
3464         opts->x_initial_max_fld_align; don't set maximum_field_alignment.
3465         Don't handle OPT_frandom_seed or OPT_frandom_seed_.  Don't handle
3466         OPT_fsched_verbose_.
3467         (handle_param): Add location_r parameter.  Use error_at.
3468         (set_debug_level): Add location_r parameter.  Use error_at and
3469         warning_at.
3470         (setup_core_dumping): Add diagnostic_context parameter.
3471         (decode_d_option): Add gcc_options, location_t and
3472         diagnostic_context parameters and use them instead of global
3473         state.  Use warning_at.
3474         (enable_warning_as_error): Use error_at.
3475         * opts.h (finish_options): Update prototype.
3476         (set_struct_debug_option): Declare here.
3477         * rtl.h (fix_sched_param): Remove.
3478         * stor-layout.c (initial_max_fld_align): Remove.
3479         * toplev.c (rtl_dump_and_exit, flag_print_asm_name,
3480         graph_dump_format, flag_debug_asm, flag_dump_rtl_in_asm): Remove.
3481         (process_options): Set maximum_field_alignment.
3482         * tree.h (initial_max_fld_align) Don't declare here.
3483         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3484
3485 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3486
3487         * flag-types.h (struct visibility_flags): Don't declare here.
3488         * flags.h (strip_off_ending, fast_math_flags_set_p,
3489         fast_math_flags_struct_set_p): Declare here.
3490         (visibility_options): Don't declare here.
3491         * opts-common.c (option_enabled, get_option_state): Move from
3492         opts.c.
3493         * opts-global.c: Include diagnostic.h instead of
3494         diagnostic-core.h.  Include tree.h, langhooks.h, lto-streamer.h
3495         and toplev.h.
3496         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3497         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3498         print_ignored_options, unknown_option_callback,
3499         post_handling_callback, lang_handle_option, add_input_filename,
3500         read_cmdline_options, initial_lang_mask, init_options_once,
3501         decode_cmdline_options_to_array_default_mask,
3502         set_default_handlers, decode_options): Move from opts.c.
3503         (print_ignored_options): Use warning_at instead of saving and
3504         restoring input_location.
3505         * opts.c: Include <signal.h> and <sys/resource.h>.  Include rtl.h
3506         instead of expr.h.  Don't include langhooks.h, except.h or
3507         lto-streamer.h.  Add more comments on includes.
3508         (strip_off_ending, setup_core_dumping, decode_d_option): Move from
3509         toplev.c.
3510         (visibility_options): Move to c-family/c-common.c.
3511         (const_char_p, ignored_options, in_fnames, num_in_fnames,
3512         write_langs, complain_wrong_lang, postpone_unknown_option_warning,
3513         print_ignored_options, unknown_option_callback,
3514         post_handling_callback, lang_handle_option, add_input_filename,
3515         read_cmdline_options, initial_lang_mask, init_options_once,
3516         decode_cmdline_options_to_array_default_mask,
3517         set_default_handlers, decode_options): Move to opts-global.c.
3518         (target_handle_option, default_options_optimization,
3519         finish_options, common_handle_option): Remove static.
3520         (option_enabled, get_option_state): Move to opts-common.c.
3521         * opts.h (common_handle_option, target_handle_option,
3522         finish_options, default_options_optimization): Declare.
3523         * toplev.c: Don't include <signal.h> or <sys/resource.h>.
3524         (setup_core_dumping, strip_off_ending, decode_d_option): Move to
3525         opts.c.
3526         * toplev.h (strip_off_ending, decode_d_option,
3527         fast_math_flags_set_p, fast_math_flags_struct_set_p): Don't
3528         declare here.
3529         * Makefile.in (opts.o, opts-global.o): Update dependencies.
3530
3531 2010-11-23  Dave Korn  <dave.korn.cygwin@gmail.com>
3532
3533         PR driver/42690
3534         * gcc.c (LINK_COMMAND_SPEC): Remove hard-coded pass-through plugin
3535         options, replace by call of pass-through-libs spec function to process
3536         link_gcc_c_sequence spec.
3537         (lto_libgcc_spec): Delete variable.
3538         (static_specs[]): Remove related entry.
3539         (static_spec_functions[]): Add new entry for pass-through-libs.
3540         (main): Don't generate deleted lto_libgcc_spec.
3541         (pass_through_libs_spec_func): New function to implement the new
3542         pass-through-libs spec function.
3543         * doc/invoke.texi (pass-through-libs): Document new spec function.
3544
3545 2010-11-23  Joseph Myers  <joseph@codesourcery.com>
3546
3547         * doc/options.texi (Warning, Optimization): Document.
3548
3549 2010-11-23  Jan Hubicka  <jh@suse.cz>
3550
3551         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): New macro.
3552         (tree_decl_with_vis): Add implicit_section_name_p.
3553         * targhooks.h (default_function_section): Declare.
3554         * target.def (function_section): New hook.
3555         * defaults.h (HOT_TEXT_SECTION_NAME,
3556         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3557         * predict.c (choose_function_section): Remove.
3558         (estimate_bb_frequencies): Do not use choose_function_section.
3559         * coretypes.h (enum node_frequency): Move here from cgraph.h
3560         * cgraph.h (enum node_frequency): Remove.
3561         * varasm.c (initialize_cold_section_name, unlikely_text_section,
3562         unlikely_text_section_p): Remove.
3563         (named_subsection_entry): New structure.
3564         (get_text_section): New function.
3565         (default_function_section): New function.
3566         (function_section_1): Break out from ...; handle profile info.
3567         (function_section): ... here.
3568         (unlikely_text_section): Remove.
3569         (unlikely_text_section_p): Use function_section_1.
3570         (assemble_start_function): Do not initialize cold section.
3571         (default_section_type_flags): Do not special case cold subsection.
3572         (switch_to_section): Likewise.
3573         * output.h (get_text_section): Define.
3574         * config/i386/winnt.c: Do not special case cold section.
3575         * config/darwin-protos.h (darwin_function_section): Declare.
3576         * config/microblaze/microblaze.h (HOT_TEXT_SECTION_NAME,
3577         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3578         * config/ia64/hpux.h (HOT_TEXT_SECTION_NAME,
3579         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3580         (TARGET_ASM_FUNCTION_SECTION): Define to ia64_hpux_function_section.
3581         * config/ia64/ia64.c (ia64_hpux_function_section): New function.
3582         * config/darwin.c (machopic_select_section): Use
3583         darwin_function_section.
3584         (darwin_function_section): New function.
3585         * config/darwin.h (HOT_TEXT_SECTION_NAME,
3586         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
3587         (TARGET_ASM_FUNCTION_SECTION): Define.
3588         * system.h (HOT_TEXT_SECTION_NAME,
3589         UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Poison.
3590
3591 2010-11-23  Iain Sandoe  <iains@gcc.gnu.org>
3592
3593         * config/darwin.h (LINK_COMMAND_SPEC_A): Use %(link_gcc_c_sequence).
3594         LINK_GCC_C_SEQUENCE_SPEC: Define new macro.
3595
3596 2010-11-23  Jakub Jelinek  <jakub@redhat.com>
3597
3598         PR middle-end/46499
3599         * cfgexpand.c (maybe_cleanup_end_of_block): Remove also BARRIERs
3600         following unconditional jumps.
3601
3602 2010-11-23  Richard Guenther  <rguenther@suse.de>
3603
3604         * doc/md.texi (386 constraints): Clarify A constraint documentation.
3605
3606 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3607             Jeremie Salvucci  <jeremie.salvucci@free.fr>
3608
3609         * gengtype.c (enum typekind, struct options)
3610         (struct nested_ptr_data, struct pair, NUM_PARAM)
3611         (enum gc_used_num, struct type, UNION_P, UNION_OR_STRUCT_P):
3612         Move to gengtype.h.
3613         (string_type, scalar_nonchar, scalar_nonchar, scalar_char):
3614         Remove static, add zero state_number.
3615         (typedefs, structures, param_structs, variables): Remove static.
3616         (create_option): Remove.
3617         (create_string_option, create_type_option, create_nested_option):
3618         New functions.
3619         (create_nested_ptr_option): Use create_nested_option.
3620         (note_variable, adjust_field_rtx_def, adjust_field_type): Call the
3621         new create*option functions.
3622         (process_gc_options): Adjust for discriminated option.
3623         (output_mangled_typename): Handle TYPE_NONE.
3624         (walk_type): Test option kinds.
3625         (write_types_process_field): Handle TYPE_NONE and TYPE_ARRAY.
3626         (write_func_for_structure, write_type, write_local, write_root)
3627         (write_roots, note_def_vec, dump_options): Adjust for
3628         discriminated option.
3629
3630         * gengtype.h (typedefs, structures, param_structs, variables
3631         enum typekind): Move from gengtype.c
3632         (enum option_kind): New discriminating enumeration.
3633         (struct options): Becomes discriminated.
3634         (struct nested_ptr_data): Nove from gengtype.c
3635         (create_string_option, create_type_option, create_nested_option)
3636         (create_nested_ptr_option): New functions
3637         (struct pair, enum_gc_used_enum, NUM_PARAM, struct type, UNION_P)
3638         (UNION_OR_STRUCT_P): Move from gengtype.c
3639
3640         * gengtype-parse.c (str_optvalue_opt, type_optvalue, option): Make
3641         discriminated options.
3642
3643 2010-11-23  Richard Guenther  <rguenther@suse.de>
3644
3645         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid doing work
3646         twice.  Avoid re-allocating the ops vector all the time.
3647
3648 2010-11-23  Richard Guenther  <rguenther@suse.de>
3649
3650         * tree-ssa-alias.c (refs_may_alias_p_1): Avoid calls to
3651         is_gimple_min_invariant, group tree code checks to allow
3652         combining them.
3653         (stmt_may_clobber_ref_p_1): Check for SSA_NAME instead
3654         of is_gimple_reg.
3655
3656 2010-11-23  Eric Botcazou  <ebotcazou@adacore.com>
3657
3658         * config.gcc (sparc*-*-*): Reorder.
3659
3660 2010-11-23  Basile Starynkevitch  <basile@starynkevitch.net>
3661
3662         * gengtype.c (header_dot_h_frul, source_dot_c_frul):
3663         Remove ENABLE_CHECKING around DBGPRINTF.
3664
3665 2010-11-22  Joseph Myers  <joseph@codesourcery.com>
3666
3667         * common.opt (exit_after_options, write_symbols, debug_info_level,
3668         use_gnu_debug_info_extensions): New Variable entries.
3669         (fprofile-dir=): Use Var.
3670         * flag-types.h (enum debug_info_level): Rename to enum
3671         debug_info_levels.
3672         * flags.h (write_symbols, debug_info_level,
3673         use_gnu_debug_info_extensions): Remove declarations.
3674         * opts.c (exit_after_options, write_symbols, debug_info_level): Remove.
3675         (set_struct_debug_option): Make static variables const.
3676         (use_gnu_debug_info_extensions): Remove.
3677         (set_debug_level, print_filtered_help, print_specific_help,
3678         fast_math_flags_set_p): Take gcc_options parameters and use them
3679         in place of global variables.
3680         (print_filtered_help): Make new_help non-static.
3681         (print_specific_help): Update call to print_filtered_help.
3682         (common_handle_option): Update calls to print_specific_help.  Use
3683         gcc_options structure for more settings.  Make --help table
3684         const.  Don't handle OPT_fprofile_dir_ here.  Update calls to
3685         set_debug_level.
3686         * toplev.c (profile_data_prefix): Remove.
3687         * toplev.h (profile_data_prefix, exit_after_options): Remove
3688         declarations.
3689         (fast_math_flags_set_p): Update prototype.
3690         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
3691         Update call to fast_math_flags_set_p.
3692
3693 2010-11-22  Richard Henderson  <rth@redhat.com>
3694
3695         PR target/46434
3696         * config/crx/crx.c (crx_addr_reg): Rename from crx_addr_reg_p;
3697         return the address register extracted.
3698         (crx_decompose_address): Update the extracted address register.
3699
3700 2010-11-22  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
3701
3702         PR driver/43335
3703         * gcc.c (main): Don't crash when lto-wrapper program is not found.
3704
3705 2010-11-22  Joern Rennecke  <amylaar@spamcop.net>
3706
3707         PR target/46608
3708         * config/picochip/picochip.c (picochip_secondary_reload): Make static.
3709         * config/picochip/picochip-protos.h: Don't include "target.h" .
3710         (picochip_secondary_reload): Don't declare.
3711
3712         PR target/46613
3713         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Declare.
3714         * config/m32c/m32c.c (m32c_conditional_register_usage): No longer
3715         static.
3716
3717 2010-11-22  H.J. Lu  <hongjiu.lu@intel.com>
3718
3719         PR bootstrap/46609
3720         * gengtype.c (header_dot_h_frul): Check ENABLE_CHECKING.
3721         (source_dot_c_frul): Likewise.
3722
3723 2010-11-22  Basile Starynkevitch  <basile@starynkevitch.net>
3724
3725         * gimple-pretty-print.c (dump_bb_header): Add check for cfun.
3726
3727 2010-11-22  Paolo Bonzini  <bonzini@gnu.org>
3728
3729         PR bootstrap/44970
3730         * Makefile.in (fwprop.o) Add sparseset.h.
3731         * fwprop.c: Include sparseset.h
3732         (struct find_occurrence_data, find_occurrence_callback,
3733         find_occurrence): Remove.
3734         (active_defs, active_defs_check, register_active_defs,
3735         update_df_init, update_uses): New.
3736         (update_df): Rewrite.
3737         (try_fwprop_subst, forward_propagate_asm): Add calls to
3738         update_df_init and update_df.
3739         (fwprop_init): Allocate active_defs and active_defs_check.
3740         (fwprop_done): Free them.
3741         (fwprop, fwprop_addr): Adjust comments.
3742         * df.h (df_uses_create): Declare.
3743         * df-scan.c (df_install_ref_incremental): Break out of df_ref_create.
3744         (df_ref_create): Return result of df_ref_create_structure directly.
3745         (df_ref_create_structure): Call df_install_ref_incremental when
3746         no collection_rec is passed.
3747         (df_ref_record): Do not create multiword hard reg info when no
3748         collection_rec is passed.
3749         (df_uses_create): New.
3750
3751 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3752
3753         PR middle-end/43057
3754         * fold-const.c (pedantic_non_lvalue_loc): Unshare x before
3755         setting location.
3756
3757 2010-11-22  Richard Guenther  <rguenther@suse.de>
3758
3759         * gimple-fold.c (maybe_fold_reference): When canonicalizing
3760         MEM_REFs, preserve volatileness.
3761         * cgraphbuild.c (mark_address): Properly check for FUNCTION_DECL
3762         addresses.
3763
3764 2010-11-22  Richard Guenther  <rguenther@suse.de>
3765
3766         * tree-ssa-ccp.c (get_base_constructor): Remove superfluous breaks.
3767
3768 2010-11-22  Alexander Monakov  <amonakov@ispras.ru>
3769
3770         PR rtl-optimization/45652
3771         * alias.c (get_reg_base_value): New.
3772         * rtl.h (get_reg_base_value): Add prototype.
3773         * sel-sched.c (init_regs_for_mode): Use it.  Don't use registers with
3774         non-null REG_BASE_VALUE for renaming.
3775
3776 2010-11-22  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3777             Basile Starynkevitch  <basile@starynkevitch.net>
3778
3779         * gengtype.c: Include xregex.h and obstack.h
3780         Added comments about role of get_output_file_with_visibility and
3781         our regexpr machinery.
3782         (frul_actionrout_t, struct file_rule_st): New.
3783         (hader_dot_h_frul, source_dot_c_frul): New functions.
3784         (NULL_REGEX,  NULL_FRULACT): New.
3785         (files_rules): New.
3786         (matching_file_name_substitute): New function.
3787         (get_output_file_with_visibility): Updated comments and rewritten
3788         to use the new files_rules machinery.
3789
3790         * Makefile.in (XREGEX_H): Added variable.
3791         (build/gengtype.o): Added dependencies for xregex.h and obstack.h
3792
3793 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3794
3795         * system.h (FUNCTION_ARG_BOUNDARY): Really poison.
3796
3797 2010-11-21  Nathan Froyd  <froydnj@codesourcery.com>
3798
3799         * target.def (conditional_register_usage): Define.
3800         * reginfo.c (init_reg_sets_1): Call
3801         targetm.conditional_register_usage.
3802         * system.h (CONDITIONAL_REGISTER_USAGE): Poison.
3803         * doc/tm.texi.in (CONDITIONAL_REGISTER_USAGE): Adjust language
3804         for making it a hook.
3805         * doc/tm.texi: Regenerate.
3806         * config/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3807         * config/alpha/alpha.c (alpha_conditional_register_usage): ...here.
3808         New function.
3809         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3810         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3811         * config/arc/arc.c (arc_conditional_register_usage): ...here.
3812         New function.
3813         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3814         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3815         * config/arm/arm.c (arm_conditional_register_usage): ...here.
3816         New function.
3817         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3818         * config/bfin/bfin.h (CONDITIONAL_REGISTER_USAGE): Delete.
3819         * config/bfin/bfin-protos.h (conditional_register_usage): Delete.
3820         * config/bfin/bfin.c (conditional_register_usage): Move code into...
3821         (bfin_conditional_register_usage): ...here.  New function.
3822         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3823         * config/cris/cris.h (CONDITIONAL_REGISTER_USAGE): Delete.
3824         * config/cris/cris-protos.h (cris_conditional_register_usage): Delete.
3825         * config/cris/cris.c (cris_conditional_register_usage): Make static.
3826         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3827         * config/fr30/fr30.h (FIXED_REGISTERS): Adjust comment.
3828         * config/frv/frv.h (CONDITIONAL_REGISTER_USAGE): Delete.
3829         * config/frv/frv-protos.h (frv_conditional_register_usage): Delete.
3830         * config/frv/frv.c (frv_conditional_register_usage): Make static.
3831         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3832         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3833         * config/h8300/h8300.c (h8300_conditional_register_usage): ...here.
3834         New function.
3835         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3836         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Delete.
3837         * config/i386/i386-protos.h (ix86_conditional_register_usage): Delete.
3838         * config/i386/i386.c (ix86_conditional_register_usage): Make static.
3839         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3840         * config/m32c/m32c.h (CONDITIONAL_REGISTER_USAGE): Delete.
3841         * config/m32c/m32c-protos.h (m32c_conditional_register_usage): Delete.
3842         * config/m32c/m32c.c (m32c_conditional_register_usage): Make static.
3843         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3844         * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3845         * config/m32r/m32r.c (m32r_conditional_register_usage): ...here.
3846         New function.
3847         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3848         * config/m68hc11/m68hc11.h (CONDITIONAL_REGISTER_USAGE): Delete.
3849         * config/m68hc11/m68hc11-protos.h (m68hc11_conditional_register_usage):
3850         Delete.
3851         * config/m68hc11/m68hc11.c (m68hc11_conditional_register_usage): Make
3852         static.
3853         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3854         * config/mep/mep.h (CONDITIONAL_REGISTER_USAGE): Delete.
3855         * config/mep/mep-protos.h (mep_conditional_register_usage): Delete.
3856         * config/mep/mep.c (mep_conditional_register_usage): Make static.
3857         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3858         * config/mips/mips.h (CONDITIONAL_REGISTER_USAGE): Delete.
3859         * config/mips/mips-protos.h (mips_conditional_register_usage): Delete.
3860         * config/mips/mips.c (mips_conditional_register_usage): Make static.
3861         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3862         * config/mmix/mmix.h (CONDITIONAL_REGISTER_USAGE): Delete.
3863         * config/mmix/mmix-protos.h (mmix_conditional_register_usage): Delete.
3864         * config/mmix/mmix.c (mmix_conditional_register_usage): Make static.
3865         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3866         * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3867         * config/mn10300/mn10300.c (mn10300_conditional_register_usage):
3868         ...here.  New function.
3869         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3870         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3871         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): ...with this...
3872         * config/pa/pa.c (pa_conditional_register_usage): ...here.
3873         New function.
3874         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3875         * config/pdp11/pdp11.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3876         * config/pdp11/pdp11.c (pdp11_conditional_register_usage): ...here.
3877         New function.
3878         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3879         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Delete.
3880         * config/rs6000/rs6000-protos.h (rs6000_conditional_register_usage):
3881         Delete.
3882         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make
3883         static.
3884         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3885         * config/rx/rx.h (CONDITIONAL_REGISTER_USAGE): Delete.
3886         * config/rx/rx-protos.h (rx_conditional_register_usage): Delete.
3887         * config/rx/rx.c (rx_conditional_register_usage): Make static.
3888         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3889         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Delete.
3890         * config/s390/s390-protos.h (s390_conditional_register_usage): Delete.
3891         * config/s390/s390.c (s390_conditional_register_usage): Make static.
3892         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3893         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3894         * config/score/score.c (score_conditional_register_usage): ...here.
3895         New function.
3896         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3897         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3898         * config/sh/sh.c (sh_conditional_register_usage): ...here.
3899         New function.
3900         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3901         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3902         * config/sparc/sparc.c (sparc_conditional_register_usage): ...here.
3903         New function.
3904         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3905         * config/spu/spu.h (CONDITIONAL_REGISTER_USAGE): Delete.
3906         * config/spu/spu-protos.h (spu_conditional_register_usage): Delete.
3907         * config/spu/spu.c (spu_conditional_register_usage): Make static.
3908         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3909         * config/v850/v850.h (CONDITIONAL_REGISTER_USAGE): Move logic...
3910         * config/v850/v850.c (v850_conditional_register_usage): ...here.
3911         New function.
3912         (TARGET_CONDITIONAL_REGISTER_USAGE): Define.
3913
3914 2010-11-21  Jan Hubicka  <jh@suse.cz>
3915             Dominique d'Humieres <dominiq@lps.ens.ft>
3916
3917         PR target/46510
3918         * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
3919         finalize external decls.
3920
3921 2010-11-21  Joseph Myers  <joseph@codesourcery.com>
3922
3923         * system.h (strerror): Poison.
3924
3925 2010-11-21  Richard Henderson  <rth@redhat.com>
3926
3927         * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
3928         for infq/huge_valq.
3929
3930 2010-11-21  Richard Henderson  <rth@redhat.com>
3931
3932         PR rtl-optimization/46571
3933         * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
3934         (compute_hash_table_work): Use NONDEBUG_INSN_P.
3935
3936 2010-11-21  Paul Koning  <ni1d@arrl.net>
3937
3938         * config/mips/pdp11.md (negsi2): Fix wrong code.
3939
3940 2010-11-21  Paul Koning  <ni1d@arrl.net>
3941
3942         * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
3943         * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3944
3945 2010-11-21  Eric Botcazou  <ebotcazou@adacore.com>
3946
3947         * config/mips/mips.c (machine_function): Rename load_label_length to
3948         load_label_num_insns.
3949         (mips_load_label_length): Rename to...
3950         (mips_load_label_num_insns): ...this.  Adjust to first renaming.
3951         (mips_adjust_insn_length): Adjust to second renaming.  Fix thinko.
3952
3953 2010-11-21  Uros Bizjak  <ubizjak@gmail.com>
3954
3955         PR target/46533
3956         * config/alpha/predicates.md (direct_call_operand): Return false
3957         for !TARGET_SMALL_TEXT targets.
3958
3959 2010-11-20  Joseph Myers  <joseph@codesourcery.com>
3960
3961         * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
3962         HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
3963         (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to HANDLE_SYSV_PRAGMA.
3964         * doc/tm.texi: Regenerate.
3965         * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
3966         HANDLE_PRAGMA_WEAK): Poison.
3967         * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
3968         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3969         * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
3970         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
3971         * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3972         * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3973         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3974         * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
3975         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3976         * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
3977         * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3978         * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
3979         * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3980         * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3981         * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3982         (HANDLE_PRAGMA_WEAK): Don't undefine.
3983         * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3984         * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
3985         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3986         * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
3987         * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
3988         (HANDLE_PRAGMA_WEAK): Don't undefine.
3989         * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3990         * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
3991         (HANDLE_PRAGMA_PACK): Don't undefine.
3992         * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
3993         * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3994         * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3995         * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3996         * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
3997         * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
3998         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
3999         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
4000         * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
4001         (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
4002         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
4003         * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
4004         * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
4005         * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
4006         * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
4007         * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
4008         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
4009
4010 2010-11-20  Eric Botcazou  <ebotcazou@adacore.com>
4011
4012         PR target/31100
4013         * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
4014         * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
4015         * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
4016
4017 2010-11-20  Jan Hubicka  <jh@suse.cz>
4018
4019         * cgraph.c (ld_plugin_symbol_resolution_names): New.
4020         (dump_cgraph_node): Dump resolution.
4021         * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
4022         (cgraph_comdat_can_be_unshared_p): Dclare.
4023         * lto-streamer-out.c (produce_symtab): Use
4024         cgraph_comdat_can_be_unshared_p.
4025         * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
4026         (cgraph_comdat_can_be_unshared_p): New function based on logic
4027         in cgraph_externally_visible_p.
4028         (cgraph_externally_visible_p): Use it.
4029         (varpool_externally_visible_p): Virtual tables can be unshared.
4030         * varpool.c (dump_varpool_node): Dump resolution.
4031
4032 2010-11-20  Jan Hubicka  <jh@suse.cz>
4033
4034         * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
4035
4036 2010-11-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4037
4038         PR other/46202
4039         * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
4040         (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
4041         shell quoting.
4042         (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
4043         (install-strip): New target.
4044         (STRIPPROG): New variable, exported if STRIP is set.
4045         * doc/install.texi (Final install): Minor markup and code style
4046         fixes.  Document install-strip target.
4047
4048 2010-11-20  Paul Koning  <ni1d@arrl.net>
4049
4050         * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
4051         pdp11_regno_reg_class): New functions.
4052         * config/pdp11/pdp11.md (define_constants): Add register numbers.
4053         * config/pdp11/pdp11.c (pdp11_regno_reg_class,
4054         pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
4055         functions.
4056         * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
4057         frame pointer and argument pointer pseudo-registers.
4058         (ARG_POINTER_REGNUM): Define.
4059         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
4060         argument pointer.
4061         (FIRST_PARM_OFFSET): Update for argument pointer.
4062         (INITIAL_FRAME_POINTER_OFFSET): Delete.
4063         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
4064         (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
4065         frame pointer and argument pointer.
4066
4067 2010-11-20  Jakub Jelinek  <jakub@redhat.com>
4068
4069         PR debug/46561
4070         * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
4071         when looking for immediate uses.
4072
4073         PR tree-optimization/45830
4074         * stmt.c (expand_switch_using_bit_tests_p): New function.
4075         (expand_case): Use it.
4076         * tree.h (expand_switch_using_bit_tests_p): New prototype.
4077         * tree-switch-conversion.c (struct switch_conv_info): Add
4078         bit_test_uniq, bit_test_count and bit_test_bb fields.
4079         (check_range): Fix a comment.
4080         (check_process_case): Compute bit_test_uniq and bit_test_count.
4081         (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
4082         allocation.
4083         (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
4084         (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
4085         (array_value_type): New function.
4086         (build_one_array): Use it, if it returned different type,
4087         fold_convert all constructor fields and convert back to the
4088         wider type in the generated code.
4089         (process_switch): Initialize bit_test_uniq, bit_test_count and
4090         bit_test_bb fields.  Don't optimize if expand_switch_using_bit_tests_p
4091         returned true.
4092
4093 2010-11-19  Michael Matz  <matz@suse.de>
4094
4095         PR tree-optimization/46077
4096         * tree-chrec.c (eq_evolutions_p): Accept some expressions.
4097
4098 2010-11-19  Anatoly Sokolov  <aesok@post.ru>
4099
4100         * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4101         * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
4102         function.
4103         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4104
4105 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
4106
4107         * mode-switching.c (optimize_mode_switching): Use
4108         FOR_BB_INSNS instead of open-coded loop.
4109         * cfgrtl.c (redirect_branch_edge): Ditto.
4110
4111 2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
4112
4113         PR target/46436
4114         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
4115         to accomodate 32 bit HOST_WIDE_INT.
4116         (m68hc11_emit_logical): Remove unused variable insn.
4117         (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
4118         this_insn_uses_iy before use.
4119
4120         PR target/46434
4121         * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
4122
4123 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4124
4125         PR c/46547
4126         * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
4127         * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
4128
4129 2010-11-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
4130
4131         * doc/extend.texi (Function attributes): Document PowerPC target
4132         attributes that are supported.
4133         (Pragmas): Document that PowerPC now supports target pragmas.
4134
4135         * doc/options.texi (TargetVariable): Document TargetVariable,
4136         HeaderInclude, and SourceInclude.
4137
4138         * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
4139         mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
4140         -ffp-contract=off.
4141
4142         * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
4143         SourceInclude directives.  Fix a cut+paste error with target save
4144         enum variables.  Sort enums in the structures after ints and
4145         before shorts.
4146         * opth-gen.awk: Ditto.
4147
4148         * configure.ac: Add support for HeaderInclude and SourceInclude option
4149         directives to add the appropriate files to the dependency lists.
4150         * configure: Regenerate.
4151         * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
4152         (OPTIONS_C_EXTRA): New variable for SourceInclude.
4153         (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
4154         (options.o): Add $(OPTIONS_C_EXTRA) dependency.
4155         (gcc-options.o): Ditto.
4156         * opt-include.awk: New awk script to handle HeaderInclude and
4157         TargetInclude.
4158
4159         * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
4160         gets saved in the target options.
4161         * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
4162         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
4163         (-mprototype): Ditto.
4164         (-mbit-word): ditto.
4165         (-mregnames): Ditto.
4166         (-msecure-plt): Ditto.
4167         (-mbss-plt): Ditto.
4168         * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
4169         (-mpowerpc-gfxopt): Ditto.
4170         (-mmfcrf): Ditto.
4171         (-mpopcntb): Ditto.
4172         (-mfprnd): Ditto.
4173         (-mcmpb): Ditto.
4174         (-mmmfpgpr): Ditto.
4175         (-maltivec): Ditto.
4176         (-mhard-dfp): Ditto.
4177         (-mmulhw): Ditto.
4178         (-mdlmzb): Ditto.
4179         (-mmultiple): Ditto.
4180         (-mstring): Ditto.
4181         (-mpopcntd): Ditto.
4182         (-mfriz): Ditto.
4183         (-mvsx): Ditto.
4184         (-mno-update): Ditto.
4185         (-mavoid-indexed-addresses): Ditto.
4186         (-mtls-markers): Ditto.
4187         (-msched-epilog): Ditto.
4188         (-msched-prolog): Ditto.
4189         (-maix-struct-return): Ditto.
4190         (-msvr4-struct-return): Ditto.
4191         (-mxl-compat): Ditto.
4192         (-mrecip-precision): Ditto.
4193         (-mfp-in-toc): Ditto.
4194         (-msum-in-toc): Ditto.
4195         (-mvrsave): Ditto.
4196         (-mblock-move-inline-limit=): Ditto.
4197         (-misel): Ditto.
4198         (-mpaired): Ditto.
4199         (-mlongcall): Ditto.
4200         (-mgen-cell-microcode): Ditto.
4201         (-mwarn-cell-microcode): Ditto.
4202         (-mwarn-altivec-long): Ditto.
4203         (-mprioritize-restricted-insns=): Ditto.
4204         (-msingle-float): Ditto.
4205         (-mdouble-float): Ditto.
4206         (-msimple-fpu): Ditto.
4207         (-mxilinx-fpu): Ditto.
4208         * config/rs6000/aix64.opt (-mpe): Ditto.
4209
4210         * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
4211         (rs6000_cpu): Move variable to be a target variable.  Rename
4212         cmodel to rs6000_current_cmodel because of macro conflict.  Merge
4213         -mdebug=<xxx> variables into a single int.
4214         (rs6000_always_hint): Ditto.
4215         (rs6000_sched_groups): Ditto.
4216         (rs6000_align_branch_targets): Ditto.
4217         (rs6000_sched_costly_dep): Ditto.
4218         (rs6000_sched_insert_nops): Ditto.
4219         (rs6000_long_double_type_size): Ditto.
4220         (rs6000_ieeequad): Ditto.
4221         (rs6000_altivec_abi): Ditto.
4222         (rs6000_spe): Ditto.
4223         (rs6000_spe_abi): Ditto.
4224         (rs6000_float_gprs): Ditto.
4225         (rs6000_darwin64_abi): Ditto.
4226         (can_override_loop_align): Ditto.
4227         (rs6000_sdata): Ditto.
4228         (rs6000_tls_size): Ditto.
4229         (rs6000_current_abi): Ditto.
4230         (rs6000_traceback): Ditto.
4231         (rs6000_alignment_flags): Ditto.
4232         (rs6000_current_cmodel): Ditto.
4233         (rs6000_recip_control): Ditto.
4234         (rs6000_cpu_index): Ditto.
4235         (rs6000_tune_index): Ditto.
4236         (rs6000_debug): Ditto.
4237         (rs6000_target_flags_explict): Ditto.
4238
4239         * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
4240         declaration.
4241
4242         * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
4243         cmodel.  Change all uses.
4244
4245         * config/rs6000/rs6000.c (rs6000_always_hint): Move to
4246         rs6000.opt.  Combine -mdebug=<xxx> variables into a single int.
4247         Rename cmodel to rs6000_current_cmodel.
4248         (rs6000_sched_groups): Ditto.
4249         (rs6000_align_branch_targets): Ditto.
4250         (rs6000_sched_costly_dep): Ditto.
4251         (rs6000_sched_insert_nops): Ditto.
4252         (rs6000_long_double_type_size): Ditto.
4253         (rs6000_ieeequad): Ditto.
4254         (rs6000_altivec_abi): Ditto.
4255         (rs6000_spe): Ditto.
4256         (rs6000_spe_abi): Ditto.
4257         (rs6000_float_gprs): Ditto.
4258         (rs6000_darwin64_abi): Ditto.
4259         (can_override_loop_align): Ditto.
4260         (rs6000_sdata): Ditto.
4261         (rs6000_tls_size): Ditto.
4262         (rs6000_current_abi): Ditto.
4263         (rs6000_traceback): Ditto.
4264         (rs6000_alignment_flags): Ditto.
4265         (rs6000_current_cmodel): Ditto.
4266         (rs6000_recip_control): Ditto.
4267         (rs6000_cpu_index): Ditto.
4268         (rs6000_tune_index): Ditto.
4269         (rs6000_debug): Ditto.
4270         (rs6000_target_flags_explict): Ditto.
4271         (rs6000_sched_insert_nops_str): Make static.
4272         (rs6000_sched_costly_dep_str): Ditto.
4273         (rs6000_recip_name): Ditto.
4274         (rs6000_abi_name): Ditto.
4275         (rs6000_sdata_name): Ditto.
4276         (enum rs6000_traceback_name): Move to rs6000-opts.h.
4277         (rs6000_parse_tls_size_option): Delete.
4278         (rs6000_valid_attribute_p): New function for target attributes and
4279         pragmas.
4280         (rs6000_function_specific_save): Ditto.
4281         (rs6000_function_specific_restore): Ditto.
4282         (rs6000_function_specific_print): Ditto.
4283         (rs6000_can_inline_p): Ditto.
4284         (rs6000_set_current_function): Ditto.
4285         (rs6000_inner_target_options): Ditto.
4286         (rs6000_debug_target_options): Ditto.
4287         (rs6000_pragma_target_parse): Ditto.
4288         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
4289         attributes and pragmas.
4290         (TARGET_OPTION_SAVE): Ditto.
4291         (TARGET_OPTION_RESTORE): Ditto.
4292         (TARGET_OPTION_PRINT): Ditto.
4293         (TARGET_CAN_INLINE_P): Ditto.
4294         (TARGET_SET_CURRENT_FUNCTION): Ditto.
4295         (POWER_MASKS): Move to file level scope from the
4296         rs6000_option_override_internal function.
4297         (POWERPC_MASKS): Ditto.
4298         (ISA_*_MASKS): Ditto.
4299         (struct rs6000_ptt): Ditto.
4300         (processor_target_table): Ditto.
4301         (rs6000_cpu_name_lookup): Map cpu name to an index in
4302         processor_target_table.
4303         (rs6000_debug_reg_global): Print more information on processor
4304         options for -mdebug=reg.
4305         (rs6000_init_hard_regno_mode_ok): Add support for target
4306         attributes and pragmas.  Merge all -mdebug=<xxx> fields into one.
4307         Allow -mdebug=val1,val2.  Rename cmodel variable.
4308         (rs6000_option_override_internal): Ditto.
4309         (rs6000_option_override): Ditto.
4310         (rs6000_handle_option): Ditto.
4311         (rs6000_conditional_register_usage): Add debug trace message.
4312         (struct rs6000_opt_mask): New for target attribute/pragma support.
4313         (rs6000_opt_masks): Ditto.
4314         (struct rs6000_opt_var): Ditto.
4315         (rs6000_opt_vars): Ditto.
4316         (rs6000_previous_function): Ditto.
4317
4318         * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
4319         wasn't already included.
4320         (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
4321         (enum processor_type): Ditto.
4322         (rs6000_cpu): Ditto.
4323         (enum fpu_type_t): Ditto.
4324         (fpu_type): Ditto.
4325         (enum rs6000_dependence_cost): Ditto.
4326         (enum rs6000_nop_insertion): Ditto.
4327         (enum group_termination): Ditto.
4328         (rs6000_long_double_type_size): Ditto.
4329         (rs6000_ieeequad): Ditto.
4330         (rs6000_altivec_abi): Ditto.
4331         (rs6000_spe_abi): Ditto.
4332         (rs6000_spe): Ditto.
4333         (rs6000_float_gprs): Ditto.
4334         (rs6000_alignment_flags): Ditto.
4335         (rs6000_sched_insert_nops): Ditto.
4336         (enum rs6000_vector): Ditto.
4337         (enum rs6000_abi): Ditto.
4338         (rs6000_current_opt): Ditto.
4339         (rs6000_debug_*): Delete.
4340         (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
4341         (TARGET_DEBUG*): Ditto.
4342
4343         * config/rs6000/rs6000-opts.h: New header file to define the enums
4344         that are used in target variables that are now defined in rs6000.opt.
4345
4346         * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
4347         rs6000-opts.h.
4348         (rs6000_sdata): Ditto.
4349         (rs6000_abi_name): Delete.
4350         (rs6000_sdata_name): Ditto.
4351         (rs6000_tls_size_string): Ditto.
4352
4353 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4354
4355         * common.opt (debug_struct_ordinary, debug_struct_generic): New
4356         Variable entries.
4357         * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
4358         should_emit_struct_debug): Move from opts.c.
4359         * flag-types.h (enum debug_struct_file): Move from opts.c.
4360         * flags.h (should_emit_struct_debug): Remove.
4361         (base_of_path): Declare.
4362         (set_struct_debug_option): Add gcc_options parameter.
4363         * optc-gen.awk, opth-gen.awk: Handle array variables.
4364         * opts.c (enum debug_struct_file, debug_struct_ordinary,
4365         debug_struct_generic): Remove.
4366         (set_struct_debug_option): Add gcc_options parameter.
4367         (base_of_path): Remove static.
4368         (main_input_basename, main_input_baselength, matches_main_base,
4369         dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
4370         Remove.
4371         * toplev.c (main_input_basename, main_input_baselength): Define
4372         here.
4373         * toplev.h (main_input_basename, main_input_baselength): Declare
4374         here.
4375
4376 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4377
4378         * common.opt (flag_instrument_functions_exclude_functions,
4379         flag_instrument_functions_exclude_files): New Variable definitions.
4380         * flags.h (flag_instrument_functions_exclude_p): Don't declare.
4381         * gimplify.c (char_p): Declare type and vectors.
4382         (flag_instrument_functions_exclude_p): Moved from opts.c.  Make static.
4383         * opts.c (flag_instrument_functions_exclude_functions,
4384         flag_instrument_functions_exclude_files): Remove.
4385         (add_comma_separated_to_vector): Take void **.
4386         (flag_instrument_functions_exclude_p): Move to gimplify.c.
4387         (common_handle_option): Use options structure for
4388         -finstrument-functions-exclude- options.
4389
4390 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
4391
4392         * doc/options.texi (Var): Document effects of Defer.
4393         (Defer): Document.
4394         * opt-functions.awk (var_type, var_set): Handle deferred options.
4395         * opts-common.c (set_option): Handle CLVC_DEFER.
4396         * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
4397         fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
4398         fstack-limit-symbol=): Mark as deferred.
4399         * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
4400         plugin.h.
4401         (print_filtered_help): Don't report state of CLVC_DEFER options.
4402         (common_handle_option): Move code for OPT_fcall_used_,
4403         OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
4404         OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
4405         OPT_fstack_limit_symbol_ to opts-global.c.
4406         (option_enabled, get_option_state): Handle CLVC_DEFER.
4407         * opts.h: Include vec.h.
4408         (enum cl_var_type): Add CLVC_DEFER.
4409         (cl_deferred_option): Define type and vectors.
4410         (handle_common_deferred_options): Declare.
4411         * opts-global.c: New.
4412         * toplev.c (toplev_main): Call handle_common_deferred_options
4413         * Makefile.in (OPTS_H): Include $(VEC_H).
4414         (OBJS-common): Include opts-global.o.
4415         (opts.o): Update dependencies.
4416         (opts-global.o): Add dependencies.
4417
4418 2010-11-19  Nicola Pero  <nicola.pero@meta-innovation.com>
4419
4420         * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
4421         to objc_declare_protocols.
4422
4423 2010-11-19  Richard Guenther  <rguenther@suse.de>
4424
4425         PR lto/45789
4426         * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
4427         IDENTIFIERs do not stream TREE_TYPE.
4428         * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
4429
4430 2010-11-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4431
4432         * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
4433
4434 2010-11-19  Jakub Jelinek  <jakub@redhat.com>
4435
4436         PR target/45870
4437         * dwarf2out.c (const_ok_for_output_1): Don't complain about
4438         non-delegitimized TLS UNSPECs.
4439
4440 2010-11-18  Jack Howarth  <howarth@bromo.med.uc.edu>
4441             Ian Lance Taylor  <iant@google.com>
4442
4443         * config/darwin-c.c (darwin_additional_format_types): Export.
4444
4445 2010-11-18  Paul Koning  <ni1d@arrl.net>
4446
4447         * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
4448         pointer.
4449
4450 2010-11-18  Paul Koning  <ni1d@arrl.net>
4451
4452         * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
4453         * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
4454         * config/pdp11/pdp11.opt (-mabshi): Delete.
4455
4456 2010-11-19  Mingjie Xing  <mingjie.xing@gmail.com>
4457
4458         * resource.h (struct resources): Fix typo in the comment.
4459
4460 2010-11-19  Uros Bizjak  <ubizjak@gmail.com>
4461
4462         PR target/46546
4463         * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
4464
4465 2010-11-18  Richard Henderson  <rth@redhat.com>
4466
4467         PR middle-end/46515
4468         * function.c (maybe_copy_prologue_epilogue_insn): Rename from
4469         maybe_copy_epilogue_insn; handle prologue insns as well.
4470         * rtl.h, cfglayout.c: Update for rename.
4471         * recog.c (peep2_attempt): Copy prologue/epilogue data for
4472         RTX_FRAME_RELATED_P insns.
4473
4474 2010-11-18  Jakub Jelinek  <jakub@redhat.com>
4475
4476         PR middle-end/46534
4477         * builtins.c (fold_builtin_printf): Don't copy and modify string
4478         before build_string_literal, instead modify what
4479         build_string_literal returned.
4480
4481 2010-11-18  Nathan Froyd  <froydnj@codesourcery.com>
4482
4483         PR c/33193
4484         * c-typeck.c (build_unary_op): Call build_real_imag_expr for
4485         REALPART_EXPR and IMAGPART_EXPR.
4486
4487 2010-11-18  Richard Guenther  <rguenther@suse.de>
4488
4489         PR tree-optimization/46172
4490         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
4491         function.
4492         (slpeel_tree_peel_loop_to_edge): Call it.
4493
4494 2010-11-18  Jeff Law  <law@redhat.com>
4495
4496         PR middle-end-optimization/46297
4497         * postreload.c (reload_combine_note_store): Deal with embedded
4498         side effects in MEM expressions.
4499
4500 2010-11-18  Richard Guenther  <rguenther@suse.de>
4501
4502         PR lto/45089
4503         * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
4504         when checking is not enabled.
4505
4506 2010-11-18  Richard Guenther  <rguenther@suse.de>
4507
4508         PR lto/46525
4509         * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
4510         type leaders.
4511         (gimple_register_canonical_type): Also cache the canoncial type
4512         for non type leaders.
4513
4514 2010-11-18  Richard Guenther  <rguenther@suse.de>
4515
4516         * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
4517
4518 2010-11-18  Alexander Monakov  <amonakov@ispras.ru>
4519
4520         PR middle-end/46518
4521         * sel-sched-ir.c (init_expr): Use the correct type for
4522         target_available.
4523         * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
4524
4525 2010-11-17  Joakim Tjernlund  <Joakim.Tjernlund@transmode.se>
4526
4527         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
4528         as well as -mrelocatable at the same time.
4529
4530 2010-11-17  Quentin Neill  <quentin.neill.gnu@gmail.com>
4531
4532         PR target/46422
4533         * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
4534         Call the clz builtin.
4535
4536 2010-11-17  Dinar Temirbulatov <dtemirbulatov@gmail.com>
4537             Steve Ellcey  <sje@cup.hp.com>
4538
4539         PR middle-end/31490
4540         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
4541         if section attribute used.
4542
4543 2010-11-17  Jan Hubicka  <jh@suse.cz>
4544
4545         * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
4546         expand errno setting variant when optimizing for size.
4547
4548 2010-11-17  Eric Botcazou  <ebotcazou@adacore.com>
4549
4550         * postreload.c (reload_combine): Call control_flow_insn_p only once.
4551         Reverse backward loop.  Fix formatting issues.
4552
4553 2010-11-17  Paolo Bonzini  <bonzini@gnu.org>
4554
4555         * c-parser.c (c_token_is_qualifier,
4556         c_parser_next_token_is_qualifier): New.
4557         (c_parser_declaration_or_fndef, c_parser_struct_declaration):
4558         Improve error message on specs->tagdef_seen_p.
4559         (c_parser_struct_or_union_specifier): Improve error recovery.
4560         (c_parser_declspecs): Move exit condition on C_ID_ID early.
4561         Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
4562         using c_parser_next_token_is_qualifier; extend it to cover
4563         a ctsk_tagdef typespec and !typespec_ok in general.
4564
4565 2010-11-17  Richard Guenther  <rguenther@suse.de>
4566
4567         * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
4568         (gimple_mod_pow2_value_transform): Likewise.
4569         (gimple_mod_subtract_transform): Likewise.
4570
4571 2010-11-17  Richard Guenther  <rguenther@suse.de>
4572
4573         PR lto/46504
4574         * gimple.c (gimple_register_canonical_type): Make sure to only
4575         make type leaders canonical types.
4576
4577 2010-11-17  Michael Matz  <matz@suse.de>
4578
4579         * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
4580         TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
4581         TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
4582         TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
4583         * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
4584         (pass_build_ssa): ... but here.
4585         * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
4586         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
4587         * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
4588         * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
4589         * predict.c (rebuild_frequencies): Ditto.
4590         * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
4591         * emit-rtl.c (verify_rtl_sharing): Ditto.
4592         * tree-cfgcleanup.c (repair_loop_structures): Ditto.
4593         * tree-ssa-live.c (remove_unused_locals): Ditto.
4594         * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
4595         * tree-ssa.c (pass_early_warn_uninitialized,
4596         execute_update_addresses_taken, pass_update_address_taken): Ditto.
4597         * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
4598         pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
4599         * passes.c (pass_postreload, execute_todo): Ditto.
4600         * tree-ssanames.c (pass_release_ssa_names): Ditto.
4601
4602 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4603
4604         * doc/invoke.texi (-dy): Remove.
4605         * langhooks-def.h (lhd_do_nothing_i): Don't declare.
4606         (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
4607         * langhooks.c (lhd_do_nothing_i): Remove.
4608         * langhooks.h (lang_hooks.parse_file): Take no arguments.
4609         * toplev.c (set_yydebug): Remove.
4610         (compile_file): Update call to lang_hooks.parse_file.
4611         (decode_d_option): Don't handle -dy.
4612
4613 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4614
4615         PR rtl-optimization/46440
4616         * combine.c (update_cfg_for_uncondjump): When changing
4617         an indirect jump into unconditional jump, remove BARRIERs
4618         from bb's footer.
4619
4620 2010-11-17  Joseph Myers  <joseph@codesourcery.com>
4621
4622         * opts.c (target_handle_option): Do not assert that loc ==
4623         UNKNOWN_LOCATION.
4624
4625 2010-11-17  Jakub Jelinek  <jakub@redhat.com>
4626             Richard Guenther  <rguenther@suse.de>
4627
4628         PR middle-end/45838
4629         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4630         call_may_clobber_ref_p_1): Return true for __sync_* and some
4631         OpenMP builtins that act as threading barriers.
4632
4633 2010-11-17  Richard Guenther  <rguenther@suse.de>
4634
4635         PR tree-optimization/46498
4636         * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
4637
4638 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4639
4640         * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
4641         (xtensa_function_arg_boundary): ...this.
4642         * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
4643         thinko in declaration.
4644         (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
4645         number of parameters to picochip_function_arg_boundary.
4646         (picochip_arg_advance): Likewise.
4647
4648 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4649
4650         PR target/46512
4651         * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
4652         under check for type.
4653
4654 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4655
4656         * ifcvt.c (dead_or_predicable): Fix typo.
4657
4658 2010-11-16  Richard Henderson  <rth@redhat.com>
4659
4660         * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
4661         * config/s390/s390.opt (mfused-madd): Remove.
4662         * config/s390/s390.c (s390_rtx_costs): Handle FMA.
4663         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
4664         * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
4665         (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
4666
4667 2010-11-16  Richard Henderson  <rth@redhat.com>
4668
4669         * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
4670         * config/rs6000/rs6000.opt (mfused-madd): Remove.
4671         * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
4672         (*altivec_vmaddfp_1): Remove.
4673         (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
4674         (altivec_mulv4sf3): Expand to FMA directly.
4675         (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
4676         (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
4677         * config/rs6000/paired.md (paired_madds0): Use FMA.
4678         (paired_madds1): Likewise.
4679         (*paired_madd): Rename from paired_madd; use FMA.
4680         (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
4681         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
4682         consider TARGET_FUSED_MADD wrt rs6000_recip_control.
4683         (bdesc_3arg): Update CODE_FOR_* for pattern renames.
4684         (rs6000_emit_madd): Use fma_optab.
4685         (rs6000_emit_msub): Use fms_optab.
4686         (rs6000_emit_nmsub): Expand the FMA pattern directly.
4687         * config/rs6000/rs6000.md (FMA_F): New mode iterator.
4688         (*fmasf4_fpr): Rename from fmasf4_fpr.
4689         (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
4690         (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
4691         (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
4692         (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
4693         (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
4694         (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
4695         (*fmadf4_fpr): Rename from fmadf4_fpr.
4696         (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
4697         (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
4698         (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
4699         (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
4700         (fmasf4, fmadf4): Macroize into...
4701         (fma<FMA_F>4): ... here.
4702         (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
4703         (nfma<FMA_F>4, nfms<FMA_F>4): New.
4704         * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
4705         TARGET_FUSED_MADD.
4706         * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
4707         (*vsx_fmadd<mode>4_1): Remove.
4708         (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
4709         (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
4710         (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
4711         (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
4712         (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
4713         (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
4714         (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
4715
4716 2010-11-16  Richard Henderson  <rth@redhat.com>
4717
4718         * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
4719         (fmasf4, fnmadf4, fnmasf4): Likewise.
4720         (unnamed plus+mult insns and splitters): Delete.
4721
4722 2010-11-16  Richard Henderson  <rth@redhat.com>
4723
4724         * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
4725         (fnma<VSF>4): Rename from fnms_<VSF>.
4726         (fms<VSF>4): Rename from fms_<VSF>.
4727         (fma<VDF>4): Rename from fma_<VDF>.
4728         (fms<VDF>4): Rename from fms_<VDF>.
4729         (nfma<VDF>4): Rename from fnma_<VDF>.
4730         (nfms<VDF>4): Rename from fnms_<VDF>.
4731         (fnma<VDF>4, fnms<VDF>4): New expanders.
4732         (floatunsdisf2): Update for the renames.
4733         (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
4734         * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
4735
4736 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4737
4738         PR rtl-optimization/46490
4739         * combine.c (expand_compound_operation): Fix thinko.
4740
4741 2010-11-16  Richard Henderson  <rth@redhat.com>
4742
4743         PR target/46470
4744         * recog.c (peep2_attempt): Convert frame-related info when possible.
4745         (peep2_fill_buffer): Allow frame-related insns into the buffer.
4746         (peephole2_optimize): Allow peep2_attempt to fail.
4747
4748 2010-11-16  Eric Botcazou  <ebotcazou@adacore.com>
4749
4750         PR rtl-optimization/46315
4751         * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
4752         * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
4753         extracted from...
4754         * dce.c (delete_corresponding_reg_eq_notes): ...here.  Rename into...
4755         (remove_reg_equal_equiv_notes_for_defs): ...this.
4756         (delete_unmarked_insns): Adjust to above renaming.
4757         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
4758         referring to registers set in the insns being moved, if any.
4759
4760         * df-core.c (df_ref_dump): New function extracted from...
4761         (df_refs_chain_dump): ...here.  Call it.
4762         (df_regs_chain_dump): Likewise.
4763         * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
4764         * df-scan.c (df_scan_start_dump): Likewise.  Fix long line.
4765
4766 2010-11-16  Andreas Schwab  <schwab@linux-m68k.org>
4767
4768         PR rtl-optimization/46395
4769         * postreload.c (reload_combine): Invalidate register use
4770         information on all control flow insns.
4771
4772         * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
4773         LABEL_REF in UNSPEC operand.
4774
4775 2010-11-16  Jan Hubicka  <jh@suse.cz>
4776
4777         * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
4778         when !flag_toplevel_reorder do not remove unless variable is
4779         COMDAT or ARTIFICIAL.
4780         * ipa.c (varpool_can_remove_if_no_refs): ... here.
4781         (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
4782         * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
4783         * varpool.c (decide_is_variable_needed): Do not handle visibility
4784         issues.
4785         (varpool_finalize_decl): Likewise.
4786         (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
4787         update outdated comment on DECL_RTL_SET_P check.
4788
4789 2010-11-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4790
4791         * config/sol2.h (NM_FLAGS): Define.
4792         * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
4793         * doc/tm.texi: Update.
4794
4795 2010-11-16  Nick Clifton  <nickc@redhat.com>
4796
4797         * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
4798         (msubsf4): Rename to fmssf4, and use fma.
4799         (nmaddsf4): Rename to fnmasf4 and use fma.
4800         (nmsubsf4): Rename to fnmssf4 and use fma.
4801
4802 2010-11-16  Joern Rennecke  <amylaar@spamcop.net>
4803
4804         PR target/44762
4805         * config/score/score3.c (score3_return_in_memory): Constify arguments.
4806         (score3_in_small_data_p, score3_function_value): Likewise.
4807         (score3_trampoline_init): Use LCT_NORMAL.
4808         (score3_print_operand): Initialize code as UNKNOWN.
4809         * config/score/predicates.md (score_load_multiple_operation):
4810         Remove unused variable.
4811         (score_store_multiple_operation): Likewise.
4812         * config/score/score7.c (score7_return_in_memory): Constify arguments.
4813         (score7_in_small_data_p, score7_function_value): Likewise.
4814         (score7_trampoline_init): Use LCT_NORMAL.
4815         (score7_print_operand): Initialize code as UNKNOWN.
4816         * config/score/score3.h (score3_return_in_memory): Update prototype.
4817         (score3_in_small_data_p, score3_function_value): Likewise.
4818         * config/score/score-protos.h (score_function_value): Likewise.
4819         * config/score/score7.h (score7_return_in_memory): Update prototype.
4820         (score7_in_small_data_p, score7_function_value): Likewise.
4821         * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
4822         (score_return_in_memory, score_pass_by_reference): Constify arguments.
4823         (score_output_mi_thunk, score_function_prologue): Don't return a value.
4824         (score_function_epilogue, score_in_small_data_p): Likewise.
4825         (score_option_override, score_asm_trampoline_template): Likewise.
4826         (score_trampoline_init, score_print_operand): Likewise.
4827         (score_print_operand_address, score_prologue): Likewise.
4828         (score_epilogue, score_call, score_call_value): Likewise.
4829         (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
4830         (score_function_arg_advance): Likewise. Make static.
4831         (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
4832         (score_function_arg, score_legitimate_address_p): Make static.
4833         (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
4834         * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
4835         * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
4836         Allow (W) == HOST_BITS_PER_WIDE_INT.
4837
4838         PR java/46386
4839         * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
4840         * config/t-pnt16-warn (java/constants.o-warn): Likewise.
4841
4842 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4843
4844         * config/arc/arc.c: Delete pasto.
4845         * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
4846
4847 2010-11-16  Anatoly Sokolov  <aesok@post.ru>
4848
4849         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
4850         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4851         * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
4852         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4853         (mn10300_preferred_reload_class,
4854         mn10300_preferred_output_reload_class): New functions.
4855
4856 2010-11-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4857
4858         * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
4859         (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
4860         (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
4861         (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
4862
4863 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4864
4865         * builtins.c (std_gimplify_va_arg_expr): Use
4866         targetm.calls.function_arg_boundary.
4867         * function.c (assign_parms, locate_and_pad_parm): Likewise.
4868         * calls.c (struct arg_data): Update comment.
4869         * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
4870         * target.def (function_arg_boundary): Define.
4871         * targhooks.h (default_function_arg_boundary): Declare.
4872         * targhooks.c (default_function_arg_boundary): Define.
4873         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
4874         TARGET_FUNCTION_ARG_BOUNDARY.
4875         (FUNCTION_ARG_BOUNDARY): Delete.
4876         (TARGET_FUNCTION_ARG_BOUNDARY): New.
4877         * doc/tm.texi: Regenerate.
4878         * system.h (FUNCTION_ARG_BOUNDARY): Poison.
4879         * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
4880         * config/arc/arc.c (arc_function_arg_boundary): Define.
4881         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4882         * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
4883         * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
4884         * config/arm/arm.c (arm_needs_doubleword_align): Make static.
4885         (arm_function_arg_boundary): Define.
4886         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4887         * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
4888         * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
4889         * config/frv/frv.c (frv_function_arg_boundary): Make static.
4890         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4891         * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
4892         * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
4893         * config/i386/i386.c (ix86_function_arg_boundary): Make static.
4894         (ix86_compat_function_arg_boundary): Take and return unsigned int.
4895         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4896         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
4897         * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
4898         * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
4899         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4900         * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
4901         * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
4902         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4903         * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
4904         * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
4905         * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
4906         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4907         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
4908         * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
4909         * config/mips/mips.c (mips_function_arg_boundary): Make static.
4910         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4911         * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
4912         * config/pa/pa.c (pa_function_arg_boundary): Define.
4913         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4914         * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
4915         * config/picochip/picochip-protos.h
4916         (picochip_get_function_arg_boundary): Delete.
4917         * config/picochip/picochip.c (picochip_get_function_arg_boundary):
4918         Rename to...
4919         (picochip_function_arg_boundary): ...this.  Make static.
4920         (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
4921         (picochip_arg_advance): Adjust.
4922         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4923         * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
4924         * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
4925         * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
4926         (rs6000_function_arg_boundary): ...this.  Make static.
4927         (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
4928         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4929         * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
4930         * config/rx/rx.c (rx_function_arg_boundary): Define.
4931         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4932         * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
4933         * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
4934         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4935         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
4936         * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
4937         * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
4938         (xtensa_function_arg_boundary): ...this.  Make static.
4939         (TARGET_FUNCTION_ARG_BOUNDARY): Define.
4940
4941 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4942
4943         * expr.c (alignment_for_piecewise_move): New function.
4944         (widest_int_mode_for_size): New function.
4945         (move_by_pieces, move_by_pieces_ninsns): Call them.
4946         (can_store_by_pieces, store_by_pieces_1): Likewise.
4947
4948 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4949
4950         * gcc.c (char_p): Define.  Define a VEC of it.
4951         (n_linker_options, n_assembler_options, n_preprocessor_options):
4952         Delete.
4953         (linker_options, assembler_options, preprocessor_options): Convert
4954         to a VEC.
4955         (add_preprocessor_option): Adjust.
4956         (add_assembler_option): Adjust.
4957         (add_linker_option): Adjust.
4958         (do_specs_vec): New function.
4959         (do_spec_1): Call it.  Adjust for new types.
4960
4961 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4962
4963         * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
4964         (sreal.o, statistics.o, stringpool.o): Likewise.
4965
4966 2010-11-16  Richard Guenther  <rguenther@suse.de>
4967
4968         PR tree-optimization/44545
4969         * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
4970         statements are not reassociatable.
4971         (reassociate_bb): Likewise.
4972
4973 2010-11-16  Nathan Froyd  <froydnj@codesourcery.com>
4974
4975         * bitmap.c: Delete unnecessary includes.
4976         * ebitmap.c: Likewise.
4977         * et-forest.c: Likewise.
4978         * sreal.c: Likewise.
4979         * statistics.c: Likewise.
4980         * stringpool.c: Likewise.
4981         * double-int.c: Add comment for inclusion of tm.h.
4982
4983 2010-11-16  Richard Guenther  <rguenther@suse.de>
4984
4985         * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
4986         (visit_nary_op): ... this.
4987         (visit_binary_op): Remove.
4988         (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
4989
4990 2010-11-16  Richard Guenther  <rguenther@suse.de>
4991
4992         PR middle-end/45172
4993         * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
4994
4995 2010-11-16  Nick Clifton  <nickc@redhat.com>
4996
4997         * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
4998         record is packed.
4999
5000 2010-11-15  Richard Henderson  <rth@redhat.com>
5001
5002         * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
5003         WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
5004         DOT_PROD_EXPR.
5005
5006 2010-11-15  Richard Henderson  <rth@redhat.com>
5007
5008         * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
5009         from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively.  Use
5010         fma rtx_code.
5011
5012 2010-11-15  Richard Henderson  <rth@redhat.com>
5013
5014         * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
5015         and *mulsubsf4 respectively.  Use fma rtx_code.
5016
5017 2010-11-15  Joseph Myers  <joseph@codesourcery.com>
5018
5019         * gcc.c: Include "vec.h".
5020         (argbuf): Make into a VEC.
5021         (argbuf_length, argbuf_index): Remove.
5022         (alloc_args, clear_args, store_arg, execute, insert_wrapper,
5023         do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
5024         compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
5025         * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
5026         (gcc.o): Depend on $(VEC_H).
5027
5028 2010-11-15  Richard Henderson  <rth@redhat.com>
5029
5030         * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
5031         via FMA if unsafe math.
5032         (insert_var_expansion_initialization): Handle FMA.
5033         (combine_var_copies_in_loop_exit): Likewise.
5034
5035 2010-11-15  Richard Henderson  <rth@redhat.com>
5036
5037         * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
5038         * config/ia64/ia64.opt: Remove mfused-madd.
5039         * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
5040         * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
5041         * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
5042         * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
5043         * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
5044         * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
5045         (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
5046         (fmav2sf4): Rename from fpma; use FMA code.
5047         (fmsv2sf4): Rename from fpms; use FMA code.
5048         (fnmav2sf4): Rename from *fpnma; use FMA code.
5049         * config/ia64/ia64.md (MODE_SDF): New iterator.
5050         (suffix): New mode attribute.
5051         (*maddsf4, *msubsf4, *nmaddsf4): Remove.
5052         (fmssf4): Rename from *fmssf4.
5053         (fnmasf4): Rename from *nfmasf4.
5054         (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
5055         (*nmadddf4, *nmadddf4_truncsf): Remove.
5056         (fmsdf4): Rename from *fmsdf4.
5057         (fnmadf4): Rename from *nfmadf4.
5058         (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
5059         (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
5060         (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
5061         (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
5062         (fmsxf4): Rename from *fmsxf4.
5063         (fnmaxf4): Rename from *nfmaxf4.
5064         (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
5065         (*fnmaxf_trunc_<MODE_SDF>): New.
5066
5067 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
5068
5069         PR tree-optimization/46461
5070         * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
5071         a gimple val.
5072
5073 2010-11-15  Ian Lance Taylor  <iant@google.com>
5074
5075         * godump.c: New file.
5076         * common.opt (fdump-go-spec=): New option.
5077         * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
5078         (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
5079         (TYPE_SYMTAB_IS_DIE): Define.
5080         (struct tree_type): Change GTY for symtab field to use
5081         TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
5082         to pick the union field.
5083         * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
5084         (dump_go_spec_init): Declare.
5085         * toplev.c (process_options): Handle flag_dump_go_spec.
5086         * debug.c: Include "tree.h".
5087         (do_nothing_debug_hooks): Set tree_type_symtab_field.
5088         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
5089         * dbxout.c (dbx_debug_hooks): Likewise.
5090         (xcoff_debug_hooks): Likewise.
5091         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5092         * sdbout.c (sdb_debug_hooks): Likewise.  Do not define if
5093         SDB_DEBUGGING_INFO is not defined.
5094         * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
5095         (Overall Options): Document -fdump-go-spec.
5096         * Makefile.in (OBJS-common): Add godump.o.
5097         (debug.o): Add dependency on $(TREE_H).
5098         (godump.o): New target.
5099         (GTFILES): Add $(srcdir)/godump.c.
5100
5101 2010-11-15  Jakub Jelinek  <jakub@redhat.com>
5102
5103         PR debug/46095
5104         * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
5105         marking r11 set RTX_FRAME_RELATED_P if offset is too large for
5106         style < 0, add REG_FRAME_RELATED_EXPR.
5107
5108         PR debug/46387
5109         * rtl.h (vt_equate_reg_base_value): New prototype.
5110         * alias.c (vt_equate_reg_base_value): New function.
5111         * var-tracking.c (vt_init_cfa_base): Use it.
5112
5113 2010-11-15  Jan Hubicka  <jh@suse.cz>
5114             Diego Novillo  <dnovillo@google.com>
5115
5116         PR lto/41528
5117         * doc/lto.texi: Add.
5118         * doc/gccint.texi: Add reference to lto.texi.
5119         * doc/invoke.texi: Update user documentation for LTO.
5120         Move internal flags to lto.texi
5121
5122 2010-11-15  Nicola Pero  <nicola.pero@meta-innovation.com>
5123
5124         * c-typeck.c (build_unary_op): Use
5125         objc_build_incr_expr_for_property_ref to build the pre/post
5126         increment/decrement of an Objective-C property ref, and skip the
5127         lvalue_or_else check in that case.
5128
5129 2010-11-15  Martin Jambor  <mjambor@suse.cz>
5130
5131         PR tree-optimization/46349
5132         * tree-sra.c (contains_bitfld_comp_ref_p): New function.
5133         (contains_vce_or_bfcref_p): Likewise.
5134         (sra_modify_assign): Use them.
5135
5136 2010-11-15  Richard Guenther  <rguenther@suse.de>
5137
5138         PR tree-optimization/46467
5139         * tree-ssa-structalias.c (do_structure_copy): Properly treat
5140         variables without subvars.
5141
5142 2010-11-15  Hariharan Sandanagobalane  <hariharan@picochip.com>
5143
5144         * config/picochip/picochip.c (file header): Picochip name change.
5145         * config/picochip/picochip.md (file header): Likewise.
5146         * config/picochip/predicates.md (file header): Likewise.
5147         * config/picochip/dfa_space.md (file header): Likewise.
5148         * config/picochip/dfa_speed.md (file header): Likewise.
5149         * config/picochip/picochip.h(file header): Likewise.
5150         * config/picochip/constraints.md (file header): Likewise.
5151         * config/picochip/picochip-protos.h (file header): Likewise.
5152         * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
5153         * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
5154         * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
5155         * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
5156         * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
5157         * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
5158         * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
5159         * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
5160         * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
5161         * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
5162         * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
5163         * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
5164         * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
5165         * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
5166
5167 2010-11-15  Richard Guenther  <rguenther@suse.de>
5168
5169         PR bootstrap/46474
5170         * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
5171
5172 2010-11-15  Nick Clifton  <nickc@redhat.com>
5173
5174         * config/stormy16/stormy16.c (direct_return): Do not generate a
5175         direct return for interrupt handlers.
5176
5177 2010-11-15  Joern Rennecke  <amylaar@spamcop.net>
5178
5179         * Makefile.in (tm.texi): Replace with rule for:
5180         ($(srcdir)/doc/tm.texi).
5181         (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
5182         $(srcdir)/doc/tm.texi .
5183         (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
5184         tm.texi .
5185
5186         PR target/46427
5187         * config/m32r/m32r.c: Remove unused variables frame_size and insn.
5188
5189         PR bootstrap/45444
5190         * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
5191         (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
5192
5193         PR target/46432
5194         * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
5195
5196 2010-11-15  Richard Guenther  <rguenther@suse.de>
5197
5198         PR lto/44150
5199         * lto-opts.c (lto_write_options): Write -fexceptions even if
5200         not set by the user.
5201
5202 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5203
5204         PR c/46462
5205         * c-decl.c (declspecs_add_type): Make variables with error types
5206         integers.
5207         * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
5208         do not start a declaration before an Objective-C foreach.
5209         (c_parser_declaration_or_fndef): Improve recovery after unknown
5210         type name.
5211         (c_parser_for_statement): Hoist entrance of "foreach context"
5212         before ifs, add corresponding reset where it was missing.  Do
5213         not set objc_could_be_foreach_context for C.
5214
5215 2010-11-14  Eric Botcazou  <ebotcazou@adacore.com>
5216
5217         PR tree-optimization/45722
5218         * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
5219         this is a reference to a component.
5220         * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
5221         (ipa_note_param_call): Adjust comment.
5222
5223 2010-11-14  Richard Sandiford  <rdsandiford@googlemail.com>
5224
5225         * config/mips/mips.c (machine_function): Remove
5226         initialized_mips16_gp_pseudo_p.
5227         (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
5228         detect whether a pseudo has already been created.  Unconditionally
5229         create a new one if not.
5230         (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
5231         expanding to rtl.  Create a new pseudo otherwise, if allowed.
5232
5233 2010-11-13  Richard Earnshaw  <rearnsha@arm.com>
5234
5235         PR target/43440
5236         * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
5237         * tm.texi: Regenerated.
5238         * output.h (decode_reg_name_and_count): Declare.
5239         * varasm.c (decode_reg_name_and_count): New function.
5240         (decode_reg_name): Reimplement using decode_reg_name_and_count.
5241         * reginfo.c (fix_register): Use decode_reg_name_and_count and
5242         iterate over all regs used.
5243         * stmt.c (expand_asm_operands): Likewise.
5244         * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
5245         (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
5246         multiple machine registers.
5247
5248 2010-11-13  Eric Botcazou  <ebotcazou@adacore.com>
5249
5250         * stor-layout.c (place_union_field): Do not put location information
5251         on offset expressions.
5252         (place_field): Likewise.
5253         (finalize_record_size): Likewise on size expressions.
5254         (finalize_type_size): Likewise.
5255         (layout_type): Likewise.
5256
5257 2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
5258
5259         PR debug/42889
5260         * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
5261         * df-core.c (df_set_bb_dirty_nonrl): Remove.
5262         * df.h (df_set_bb_dirty_nonlr): Likewise.
5263
5264 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
5265
5266         * config/mips/mips.md (call_internal): Pass curr_insn to
5267         mips_split_call.
5268         (call_internal_direct): Ditto.
5269         (call_value_internal): Ditto.
5270         (call_value_internal_direct): Ditto.
5271         (call_value_multiple_internal): Ditto.
5272         * config/mips/mips.c (mips_split_call): Do not copy
5273         CALL_INSN_FUNCTION_USAGE here.
5274
5275 2010-11-13  Mingming Sun  <mingm.sun@gmail.com>
5276
5277         * doc/invoke.texi (MIPS Options): Add loongson3a processor.
5278         * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
5279         (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
5280         * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
5281         (TUNE_LOONGSON_3A): Define.
5282         (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
5283         (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
5284         * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
5285         (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
5286         (mips_rtx_cost_data): Add Loongson-3A.
5287
5288 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5289
5290         * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
5291         switches.
5292
5293 2010-11-13  Iain Sandoe  <iains@gcc.gnu.org>
5294
5295         * dwarf2out.c (macinfo_entry): New struct.
5296         (output_comp_unit): Emit the section start label here and flag that we
5297         will emit an info section.
5298         (dwarf2out_start_source_file): Save data in a macinfo entry rather than
5299         emitting directly.
5300         (dwarf2out_end_source_file): Likewise.
5301         (dwarf2out_define): Likewise.
5302         (dwarf2out_undef): Likewise.
5303         (output_macinfo): New.
5304         (dwarf2out_init): Do not emit debug section switches here, allocate a
5305         vec for macinfo, when required.
5306         (dwarf2out_finish): First switch to debug_abbrev_section here.
5307         debug_line_section,  debug_macinfo_section, Likewise.
5308         Check that the pubtypes table has at least one unpruned entry before
5309         trying to emit it.
5310
5311 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5312
5313         PR c/20385
5314         * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
5315         (c_parser_next_tokens_start_declaration): ... this.  Handle 2nd
5316         token lookahead.
5317         (c_parser_compound_statement_nostart, c_parser_label,
5318         c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
5319         (c_parser_declaration_or_fndef): Detect the case now matched by
5320         c_parser_next_tokens_start_declaration, give error and correct it.
5321
5322 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5323
5324         * c-tree.h (enum c_typespec_kind): Add ctsk_none.
5325         (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
5326         with typespec_kind.
5327         * c-decl.c (build_null_declspecs): Initialize typespec_kind.
5328         (shadow_tag_warned, check_compound_literal_type): Adjust
5329         uses of tag_defined_p.
5330         (declspecs_add_type): Set typespec_kind.
5331         * c-parser.c (c_parser_declaration_or_fndef,
5332         c_parser_declspecs, c_parser_struct_declaration,
5333         c_parser_parameter_declaration, c_parser_type_name,
5334         c_parser_objc_diagnose_bad_element_prefix): Adjust uses
5335         of type_seen_p.
5336         * c-typeck.c (c_cast_expr): Use typespec_kind instead of
5337         tag_defined_p, pass ctsk_firstref through.
5338
5339 2010-11-13  Paolo Bonzini  <bonzini@gnu.org>
5340
5341         * c-format.c (enum format_specifier_kind, kind_descriptions): New.
5342         (struct format_wanted_type): Replace field "name" with "kind", add
5343         "format_start" and "format_length".
5344         (check_format_info_main): Fill in new fields.  Fill in
5345         FORMAT_WANTED_TYPES even for missing arguments.  Move checks
5346         after the final NUL outside the while loop.  Do not include
5347         width and precision modifiers in the format_start/format_length
5348         of the main format.
5349         (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
5350         arguments.  Compute WANTED_TYPE first so that format_type_warning
5351         can be called for missing arguments.  Adjust calls to
5352         format_type_warning.
5353         (format_type_warning): Fetch as much information as possible
5354         from format_wanted_type.  Adjust printing now that every
5355         warning has a "descr", as well as for missing argument warnings
5356         and to include % sign for format specifiers.
5357
5358 2010-11-12  Alexander Monakov  <amonakov@ispras.ru>
5359
5360         PR rtl-optimization/46204
5361         * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
5362         Update all callers.  Do not recompute topological order.  Adjust
5363         fallthrough edges following a degenerate conditional jump.
5364
5365 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5366
5367         * opts-common.c (control_warning_option): New.
5368         * opts.c (set_default_handlers): New.
5369         (decode_options): Use set_default_handlers and
5370         control_warning_option.
5371         (common_handle_option): Update call to enable_warning_as_error.
5372         (enable_warning_as_error): Take gcc_options parameters.  Use
5373         control_warning_option.
5374         * opts.h (set_default_handlers, control_warning_option): Declare.
5375
5376 2010-11-12  Joseph Myers  <joseph@codesourcery.com>
5377
5378         * Makefile.in (OPTS_H): Define.
5379         (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
5380         c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
5381         cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
5382         opts-common.o, toplev.o, passes.o, matrix-reorg.o,
5383         ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
5384         * gcc.c (driver_handle_option): Take location_t parameter.
5385         (process_command, do_self_spec): Update calls to
5386         read_cmdline_option.
5387         * langhooks-def.h (lhd_handle_option): Take location_t parameter.
5388         * langhooks.c (lhd_handle_option): Take location_t parameter.
5389         * langhooks.h (handle_option): Take location_t parameter.
5390         * lto-opts.c (lto_reissue_options): Update call to set_option.
5391         * opts-common.c (handle_option): Make static.  Take location_t
5392         parameter and pass it to other functions.
5393         (handle_generated_option): Take location_t parameter and pass it
5394         to other functions.
5395         (read_cmdline_option): Take location_t parameter and pass it to
5396         other functions.  Use warning_at and error_at.
5397         (set_option): Take location_t parameter and pass it to other
5398         functions.
5399         * opts.c (common_handle_option): Take location_t parameter and
5400         pass it to other functions.
5401         (enable_warning_as_error): Make static.  Take location_t parameter
5402         and pass it to other functions.
5403         (lang_handle_option): Take location_t parameter and pass it to
5404         other functions.
5405         (target_handle_option): Take location_t parameter.
5406         (read_cmdline_options, maybe_default_option,
5407         maybe_default_options, default_options_optimization,
5408         decode_options): Take location_t parameter and pass it to other
5409         functions.
5410         * opts.h: Include input.h.
5411         (struct cl_option_handler_func, decode_options, set_option,
5412         handle_generated_option, read_cmdline_option): Take location_t
5413         parameters.
5414         (handle_option, enable_warning_as_error): Remove.
5415         * toplev.c (toplev_main): Update call to decode_options.
5416
5417 2010-11-12  Tobias Grosser  <grosser@fim.uni-passau.de>
5418
5419         * graphite-cloog-util.c (oppose_constraint,
5420         cloog_matrix_to_ppl_constraint,
5421         new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
5422         CLooG isl uses unsigned integers.  This triggered a warning.
5423
5424 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5425
5426         PR target/46438
5427         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
5428         (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
5429         (xtensa_function_arg_1): De-constify cum.
5430         (xtensa_expand_prologue): Use add_reg_note.
5431
5432         PR target/46435
5433         * config/cris/cris.c (saved_regs_mentioned): Delete.
5434         (cris_reload_address_legitimized): Cast itype to enum reload_type.
5435         Remove unused variable op0p.
5436         (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
5437         (cris_emit_movem_store): Use add_reg_note.
5438
5439         PR bootstrap/46456
5440         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
5441
5442 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5443
5444         * function.c (expand_function_end): Set the locator of the prologue on
5445         the stack checking insns.
5446
5447 2010-11-12  Richard Henderson  <rth@redhat.com>
5448
5449         * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
5450         * config/xtensa/xtensa.opt (mfused-madd): Remove.
5451         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
5452         MASK_FUSED_MADD.
5453         * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
5454         (fnmasf4): Rename from mulsubsf3; use fma.
5455
5456 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5457             Richard Henderson  <rth@redhat.com>
5458
5459         PR target/46428
5460         * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
5461         * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
5462         comparison.
5463
5464 2010-11-12  Pat Haugen  <pthaugen@us.ibm.com>
5465
5466         * opts-common.c (decode_cmdline_option): Initialize separate_args.
5467
5468 2010-11-12  Jan Hubicka  <jh@suse.cz>
5469
5470         * doc/invoke.texi (early-inlining-insns): Update default.
5471         * params.def (early-inlining-insns): Default to 10.
5472
5473 2010-11-12  Olivier Hainque  <hainque@adacore.com>
5474
5475         * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
5476
5477 2010-11-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5478
5479         * config/mips/iris6.h [!IRIX_USING_GNU_LD]
5480         (SUPPORTS_INIT_PRIORITY): Define.
5481
5482 2010-11-12  Joern Rennecke  <amylaar@spamcop.net>
5483
5484         PR target/46430
5485         * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
5486         * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
5487         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
5488         (avr_device_to_devicelib): Likewise.
5489         * config/avr/avr.md (zero_extendqihi2): Put variable declarations
5490         into block.
5491         (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
5492         (zero_extendhidi2, zero_extendsidi2): Likewise.
5493         * config/avr/avr.c (avr_num_arg_regs): Constify type.
5494         (avr_return_addr_rtx): De-constify tem.
5495         (avr_rotate_bytes): Move declarations to start of block.
5496         Don't use variable length array.  Put nested if/else into block.
5497
5498         PR rtl-optimization/46433
5499         * var-tracking.c: Include tm_p.h .
5500
5501         PR bootstrap/44756
5502         PR build/44767
5503         * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
5504         should be unsigned.
5505         (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
5506         * doc/tm.texi: Regenerate.
5507
5508         PR target/46412
5509         * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
5510         * config/bfin/bfin.c: Include sel-sched.h .
5511         (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
5512         (expand_interrupt_handler_prologue): Remove unused variable insn.
5513         (bfin_load_pic_reg): Likewise.
5514         (bfin_rtx_costs): Make code / outer_code variables of type
5515         enum rtx_code, copied from re-named parameters.
5516         (bfin_local_alignment): Change align argument and return type
5517         to unsigned.
5518         (bfin_adjust_cost): Remove unused variable insn_type.
5519         Declare variables at start of block.
5520         (struct loop_info): Rename to...
5521         (struct loop_info_d).
5522         (workaround_rts_anomaly): Change type of icode to int.
5523         (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
5524         with int-typed variable.
5525         (note_np_check_stores): Likewise.
5526         (trapping_loads_p): Remove unused variable pat.
5527         (bfin_expand_binop_builtin): Use expand_normal.
5528         (bfin_expand_unop_builtin): Likewise.
5529         (bfin_expand_builtin): Likewise.  Set tmode before use.
5530
5531         PR middle-end/44769
5532         * final.c (split_double): Don't use BITS_PER_WORD directly in
5533         shift count.
5534
5535         PR target/46431
5536         * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
5537         assignment.
5538
5539         PR target/46450
5540         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
5541         Use add_reg_note.
5542         (xstormy16_function_arg): Dereference cum.
5543         (xstormy16_expand_builtin): Use expand_normal.
5544         Change type of omode to enum machine_mode.
5545         (combine_bnp): Rename and to and_insn.
5546
5547         PR target/46437
5548         * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
5549         localreg.
5550
5551 2010-11-12  Eric Botcazou  <ebotcazou@adacore.com>
5552
5553         PR debug/46375
5554         * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
5555
5556 2010-11-11  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
5557
5558         PR lto/46376
5559         * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
5560
5561 2010-11-11  Nathan Froyd  <froydnj@codesourcery.com>
5562
5563         PR c/44782
5564         * common.opt (fmax-errors=): New option.
5565         * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
5566         * diagnostic.h (struct diagnostic_context): Add max_errors field.
5567         * diagnostic.c (diagnostic_initialize): Initialize it.
5568         (diagnostic_action_after_output): Exit if more than max_errors
5569         have been output.
5570         * doc/invoke.texi (Warning Options): Add -fmax-errors.
5571         (-fmax-errors): Document.
5572
5573 2010-11-11  Richard Henderson  <rth@redhat.com>
5574
5575         * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
5576
5577 2010-11-11  Richard Henderson  <rth@redhat.com>
5578
5579         * config/fused-madd.opt: New file.
5580         * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
5581         * config/i386/i386.c (ix86_extra_costs): Handle FMA.
5582         (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
5583         * config/i386/i386.opt (mfused-madd): Remove.
5584         * config/i386/sse.md (split_fma): Remove.
5585         (split_fms, split_fnma, split_fnms): Remove.
5586
5587 2010-11-12  Jakub Jelinek  <jakub@redhat.com>
5588
5589         PR target/46088
5590         * config/i386/i386.md (*ashl<mode>3_cconly,
5591         *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
5592         change nonimmediate_operand predicate to register_operand.
5593
5594 2010-11-11  Paolo Bonzini  <bonzini@gnu.org>
5595
5596         * Makefile.in (gengtype-lex.c): Include bconfig.h first.
5597
5598 2010-11-11  Jan Hubicka  <jh@suse.cz>
5599
5600         * opts.c (finish_options): Do not error on -flto-partition alone.
5601
5602         * doc/invoke.texi (-fwhopr): Merge into -flto section.
5603         (-flto-partition): Document none.
5604         * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
5605         * lto-wrapper.c: Update comment.
5606         (run_gcc): Update LTO option parsing.
5607         * opts.c (finish_options): add support -flto-partition=none
5608         (common_handle_option): Remove fwhopr.
5609         * common.opt: Turn fwhopr into flto.
5610         * collect2.c (main): Update option handling.
5611         * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
5612         * ipa-split.c (execute_split_functions): Remove flag_whopr.
5613         * ipa.c (function_and_variable_visibility): Remove flag_whopr.
5614         * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
5615         * varpool.c (decide_is_variable_needed): Remove flag_whopr.
5616
5617 2010-11-11  Jan Hubicka  <jh@suse.cz>
5618
5619         PR tree-optimize/40436
5620         * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
5621         (eliminated_by_inlining_prob): ... this one; return 50% probability
5622         for SRA.
5623         (estimate_function_body_sizes): Update use of
5624         eliminated_by_inlining_prob; estimate static function size
5625         for 2 instructions.
5626
5627 2010-11-11  Joern Rennecke  <amylaar@spamcop.net>
5628
5629         PR target/44749
5630         * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
5631         declare.  Change type of argument four to type int.
5632         (mep_secondary_input_reload_class): Returns enum reg_class.
5633         (mep_secondary_output_reload_class): Likewise.
5634         (mep_function_value): Change types of arguments to cont_tree.
5635         * config/mep/mep.c (mep_legitimize_reload_address): Change type of
5636         argument four to type int.
5637         (mep_secondary_input_reload_class): Returns enum reg_class.
5638         (mep_secondary_output_reload_class): Likewise.
5639         (mep_function_value): Change types of arguments to cont_tree.
5640         * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
5641         mep_regno_reg_class to enum reg_class.
5642
5643 2010-11-11  Richard Henderson  <rth@redhat.com>
5644
5645         * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
5646         that the target has the exact fma operation that we matched.
5647
5648 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5649
5650         * reginfo.c (fix_register): Avoid inserting English word in
5651         diagnostic sentence.  Use %qs for quoting and %'.
5652
5653 2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
5654
5655         * config/i386/driver-i386.c (host_detect_local_cpu): Support
5656         Intel processor family 6, model 0x2c.
5657
5658 2010-11-11  Joseph Myers  <joseph@codesourcery.com>
5659
5660         * opts.c (warning_as_error_callback,
5661         register_warning_as_error_callback): Remove.
5662         (enable_warning_as_error): Don't use warning_as_error_callback.
5663         * opts.h (register_warning_as_error_callback): Remove.
5664
5665 2010-11-11  Richard Henderson  <rth@redhat.com>
5666
5667         * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
5668         in between the MULT and the PLUS/MINUS.
5669
5670 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5671
5672         PR middle-end/46388
5673         * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
5674         BLKmode mode for it.
5675         (expand_expr_real_1): Similarly for op0.
5676
5677 2010-11-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5678
5679         * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
5680         Document optional target selector.
5681
5682 2010-11-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5683
5684         * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
5685         assembling high and low parts of size if not using 32-bit HWINT; else
5686         use DECL_SIZE_UNITS, not DECL_SIZE.
5687
5688 2010-11-11  Martin Jambor  <mjambor@suse.cz>
5689
5690         PR tree-optimization/46383
5691         * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
5692         offsets.
5693         (compute_complex_ancestor_jump_func): Likewise.
5694         * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
5695
5696 2010-11-11  Jakub Jelinek  <jakub@redhat.com>
5697
5698         PR debug/46150
5699         * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
5700         true if expr1->hash != expr2->hash.
5701
5702 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5703
5704         * cfgloop.c (verify_loop_structure): Use %' in diagnostics.  Start
5705         diagnostics with lowercase letters.
5706         * cgraphunit.c (verify_cgraph_node): Start diagnostics with
5707         lowercase letters.
5708         * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
5709         diagnostic.
5710         * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5711         * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
5712         lowercase letters.
5713         * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5714         Remove trailing ' ' from diagnostic.
5715         * config/avr/avr.c (print_operand_address): Start diagnostic with
5716         a lowercase letter and remove trailing '.'.
5717         * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
5718         * config/bfin/bfin.c (bfin_option_override): Start diagnostics
5719         with lowercase letters.  Use %' in diagnostics.  Remove trailing
5720         '.' from diagnostics.
5721         (bfin_handle_longcall_attribute): Use %' in diagnostic.
5722         * config/cris/cris.c (cris_split_movdx,
5723         cris_expand_pic_call_address): Start diagnostics with lowercase
5724         letters.
5725         (cris_asm_output_label_ref): Use %' in diagnostic.
5726         * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
5727         letter.
5728         * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
5729         lowercase letter.
5730         * config/darwin-c.c (version_as_macro): Start diagnostic with a
5731         lowercase letter.
5732         * config/darwin-driver.c (darwin_default_min_version): Use %' in
5733         diagnostic.
5734         * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
5735         diagnostic.
5736         * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5737         * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
5738         diagnostics.
5739         * config/i386/i386.c (ix86_option_override_internal): Write
5740         diagnostic as a single sentence without trailing '.'.  Use %' in
5741         diagnostics.
5742         (ix86_function_sseregparm, classify_argument): Start diagnostics
5743         with lowercase letters.
5744         (ix86_expand_prologue): Use %' in diagnostic.
5745         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
5746         diagnostic.
5747         * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
5748         lowercase letter.
5749         * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
5750         diagnostic.
5751         * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5752         * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
5753         '`' in help text.
5754         * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
5755         lowercase letter.
5756         * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
5757         lowercase letters.
5758         * config/microblaze/microblaze.c (microblaze_handle_option):
5759         Remove trailing '.' from diagnostic.
5760         (print_operand): Start diagnostic with a lowercase letter.
5761         * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
5762         lowercase letters.  Avoid '`' in diagnostics.
5763         * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
5764         lowercase letters.  Avoid '`' in diagnostics.
5765         * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
5766         lowercase letters.  Avoid '`' in diagnostics.
5767         * config/picochip/picochip.c (picochip_option_override,
5768         picochip_emit_save_register, picochip_function_arg,
5769         picochip_output_label, picochip_output_internal_label,
5770         picochip_asm_output_opcode, picochip_output_cbranch,
5771         picochip_output_compare, picochip_output_branch,
5772         picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
5773         diagnostics. Start diagnostics with lowercase letters.  Use %' in
5774         diagnostics.
5775         * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
5776         "SPE" capitalization.  Start diagnostic with a lowercase letter.
5777         (rs6000_handle_option): Start diagnostics with lowercase letters.
5778         (def_builtin): Remove trailing '.' from diagnostic.
5779         (rs6000_savres_routine_name): Start diagnostic with a lowercase
5780         letter.
5781         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
5782         diagnostic.
5783         * config/rx/rx.c (rx_handle_option): Start diagnostic with a
5784         lowercase letter.
5785         * config/s390/s390.c (s390_option_override) Start diagnostics with
5786         lowercase letters.  Use %' in diagnostic.
5787         * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
5788         lowercase letters.
5789         * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
5790         diagnostic.
5791         * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
5792         diagnostic.
5793         * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
5794         diagnostic.
5795         * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
5796         * config/spu/spu.c (spu_option_override): Start diagnostics with
5797         lowercase letters.  Use %qs for quoting in diagnostics.
5798         (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
5799         Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
5800         * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
5801         from diagnostic.
5802         * convert.c (convert_to_integer, convert_to_vector): Use %' in
5803         diagnostics.
5804         * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
5805         letter and use "cannot" spelling.
5806         * expmed.c (extract_fixed_bit_field): Start diagnostic with
5807         lowercase letter and format as a single sentence without '.'.
5808         * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
5809         Use %' in diagnostics.
5810         * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5811         Use %' in diagnostics.
5812         * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
5813         Use %' in diagnostics.
5814         * graph.c (clean_graph_dump_file): Use %' in diagnostic.
5815         * graphite-poly.c (graphite_read_scop_file): Start diagnostics
5816         with lowercase letters and remove tailing '.' and '\n'.
5817         * lto-cgraph.c (input_profile_summary): Start diagnostic with
5818         lowercase letter and remove trailing '.'.
5819         (input_cgraph): Start diagnostics with lowercase letters and
5820         remove trailing '\n'.
5821         * opts.c (finish_options, common_handle_option): Start diagnostics
5822         with lowercase letters and remove trailing '.'.  Fix typo in
5823         diagnostic.
5824         * passes.c (position_pass): Start diagnostic with lowercase letter.
5825         * plugin.c (add_new_plugin, parse_plugin_arg_opt,
5826         register_callback, try_init_one_plugin): Start diagnostics with
5827         lowercase letters.
5828         * reload1.c (spill_failure): Use %' in diagnostic.
5829         (gen_reload): Start diagnostic with a lowercase letter.
5830         * stor-layout.c (place_field): Start diagnostic with a lowercase
5831         letter.
5832         * toplev.c (open_auxiliary_file): Use %' in diagnostic.
5833         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
5834         verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
5835         Start diagnostics with lowercase letters, remove trailing '.' and
5836         use %' in diagnostics.
5837         * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
5838         (verify_ssa): Don't split diagnostic across two error calls.
5839         Spell out "number" and use %' in diagnostic.
5840         * value-prof.c (visit_hist, check_counter): Start diagnostics with
5841         lowercase letters.
5842
5843 2010-11-10  Uros Bizjak  <ubizjak@gmail.com>
5844
5845         PR middle-end/46419
5846         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
5847         (_mm_cvtpu16_ps): Ditto.
5848
5849 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
5850
5851         * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
5852         warn_larger_than, larger_than_size, warn_frame_larger_than,
5853         frame_larger_than_size, flag_gen_aux_info, flag_shlib,
5854         default_visibility, flag_tls_default): New Variable declarations.
5855         (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
5856         falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
5857         (v): Declare as Common and document here.
5858         * flags.h (default_visibility, flag_generate_lto,
5859         warn_larger_than, larger_than_size, warn_frame_larger_than,
5860         frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
5861         flag_shlib, flag_excess_precision_cmdline): Remove.
5862         (set_Wstrict_aliasing): Update prototype.
5863         * gcc.c (verbose_flag): Remove.
5864         (driver_handle_option): Add diagnostic_context parameter.  Don't
5865         handle OPT_v explicitly here.  Set verbose_flag to 1 rather than
5866         incrementing it.
5867         * opts-common.c (handle_option): Pass dc to handler.
5868         * opts.c (warn_larger_than, larger_than_size,
5869         warn_frame_larger_than, frame_larger_than_size,
5870         default_visibility): Remove.
5871         (common_handle_option): Add diagnostic_context parameter.
5872         (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
5873         gcc_options parameters.
5874         (lang_handle_option, target_handle_option, read_cmdline_options,
5875         decode_options): Add diagnostic_context parameters.
5876         (finish_options): Access option state through opts pointer where
5877         possible.
5878         (common_handle_option): Access option state through opts pointer
5879         where possible.  Do not set local static variable verbose.  Do not
5880         explicitly handle OPT_v, OPT_Wstrict_aliasing_,
5881         OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
5882         OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
5883         OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
5884         OPT_fwhopr_.  Do not explicitly set .opt file variables for
5885         OPT_aux_info or OPT_pedantic_errors.  Use dc for diagnostic context.
5886         (set_Wstrict_aliasing): Add gcc_options parameter.
5887         * opts.h (struct cl_option_handler_func): Add diagnostic_context
5888         parameter to handler.
5889         (decode_options): Add diagnostic_context parameter.
5890         * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
5891         asm_file_name, flag_generate_lto, flag_gen_aux_info,
5892         aux_info_file_name, flag_shlib, flag_tls_default,
5893         flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
5894         (toplev_main): Pass global_dc to decode_options.
5895         * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
5896         aux_info_file_name, asm_file_name): Remove.
5897         * tree.h (flag_tls_default): Remove.
5898
5899 2010-11-10  Eric Botcazou  <ebotcazou@adacore.com>
5900
5901         PR target/45986
5902         * config/sparc/sparc.c (sparc_delegitimize_address): New function.
5903         (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
5904
5905 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5906
5907         * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
5908         (x86_64-*-*): Likewise.
5909         * config/i386/cpuid.h: Define TBM bit.
5910         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5911         and set has_tbm.
5912         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5913         isa_flag for TBM.
5914         * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
5915         (OPTION_MASK_ISA_TBM_UNSET): New.
5916         (ix86_handle_option): Handle -mtbm.
5917         (isa_opts): Add -mtbm.
5918         (enum pta_flags): Add PTA_TBM.
5919         (ix86_option_override_internal): Add TBM support.
5920         (ix86_valid_target_attribute_inner_p): Handle -mtbm.
5921         (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
5922         (IX86_BUILTIN_BEXTRI64): Likewise.
5923         (bdesc_args): Add TBM intrinsics.
5924         (ix86_expand_builtin): Add TBM specific case.
5925         * config/i386/i386.h (TARGET_TBM): New for TBM.
5926         * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
5927         (tbm_bextri_<mode>): Likewise.
5928         (*tbm_blcfill_<mode>): Likewise.
5929         (*tbm_blci_<mode>): Likewise.
5930         (*tbm_blcic_<mode>): Likewise.
5931         (*tbm_blcmsk_<mode>): Likewise.
5932         (*tbm_blcs_<mode>): Likewise.
5933         (*tbm_blsfill_<mode>): Likewise.
5934         (*tbm_blsic_<mode>): Likewise.
5935         (*tbm_t1mskc_<mode>): Likewise.
5936         (*tbm_tzmsk_<mode>): Likewise.
5937         * config/i386/i386.opt: Add -mtbm.
5938         * config/i386/tbmintrin.h (__bextri_u32): New.
5939         (__blcfill_u32): Likewise.
5940         (__blci_u32): Likewise.
5941         (__blcic_u32): Likewise.
5942         (__blcmsk_u32): Likewise.
5943         (__blcs_u32): Likewise.
5944         (__blsfill_u32): Likewise.
5945         (__blsic_u32): Likewise.
5946         (__t1mskc_u32): Likewise.
5947         (__tzmsk_u32): Likewise.
5948         (__bextri_u64): Likewise.
5949         (__blcfill_u64): Likewise.
5950         (__blci_u64): Likewise.
5951         (__blcic_u64): Likewise.
5952         (__blcmsk_u64): Likewise.
5953         (__blcs_u64): Likewise.
5954         (__blsfill_u64): Likewise.
5955         (__blsic_u64): Likewise.
5956         (__t1mskc_u64): Likewise.
5957         (__tzmsk_u64): Likewise.
5958         * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
5959         * doc/invoke.texi: Document -mtbm.
5960         * doc/extend.texi: Document TBM built-in functions.
5961
5962 2010-11-10  Quentin Neill  <quentin.neill.gnu@gmail.com>
5963
5964         * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
5965         (x86_64-*-*): Likewise.
5966         * config/i386/cpuid.h: Define BMI bit.
5967         * config/i386/driver-i386.c (host_detect_local_cpu): Define
5968         and set has_bmi.
5969         * config/i386/i386-c.c (ix86_target_macros_internal): Check
5970         isa_flag for BMI.
5971         * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
5972         (OPTION_MASK_ISA_BMI_UNSET): New.
5973         (ix86_handle_option): Handle -mbmi.
5974         (isa_opts): Add -mbmi.
5975         (enum pta_flags): Add PTA_BMI.
5976         (ix86_option_override_internal): Add BMI support.
5977         (ix86_valid_target_attribute_inner_p): Handle -mbmi.
5978         (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
5979         (IX86_BUILTIN_BEXTR64): Likewise.
5980         (IX86_BUILTIN_CTZS): Likewise.
5981         (bdesc_args): Add BMI intrinsics.
5982         (ix86_expand_args_builtin): Add BMI specific cases.
5983         * config/i386/i386.h (TARGET_BMI): New for BMI.
5984         (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
5985         (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
5986         * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
5987         (UNSPEC_TZCNT): Likewise.
5988         (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
5989         (bmi_andn_<mode>): New for BMI.
5990         (bmi_bextr_<mode>): Likewise.
5991         (bmi_blsi_<mode>): Likewise.
5992         (bmi_blsmsk_<mode>): Likewise.
5993         (bmi_blsr_<mode>): Likewise.
5994         * config/i386/i386.opt: Add -mbmi.
5995         * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
5996         * config/i386/bmiintrin.h (__lzcnt_u16): New.
5997         (__tzcnt_u16): Likewise.
5998         (__andn_u32): Likewise.
5999         (__bextr_u32): Likewise.
6000         (__blsi_u32): Likewise.
6001         (__blsmsk_u32): Likewise.
6002         (__blsr_u32): Likewise.
6003         (__lzcnt_u32): Likewise.
6004         (__tzcnt_u32): Likewise.
6005         (__andn_u64): Likewise.
6006         (__bextr_u64): Likewise.
6007         (__blsi_u64): Likewise.
6008         (__blsmsk_u64): Likewise.
6009         (__blsr_u64): Likewise.
6010         (__lzcnt_u64): Likewise.
6011         (__tzcnt_u64): Likewise.
6012         * doc/invoke.texi: Document -mbmi and -mno-bmi.
6013         * doc/extend.texi: Document BMI built-in functions.
6014
6015 2010-11-10  Jan Hubicka  <jh@suse.cz>
6016
6017         PR tree-optimize/46228
6018         * doc/invoke.texi (comdat-sharing-probability): Document.
6019         * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
6020         * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
6021
6022 2010-11-10  Jan Hubicka  <jh@suse.cz>
6023
6024         PR tree-optimize/46228
6025         * cgraph.c (cgraph_propagate_frequency): Fix typo.
6026
6027 2010-11-10  H.J. Lu  <hongjiu.lu@intel.com>
6028
6029         PR tree-optimization/46414
6030         * tree-inline.c (estimate_move_cost): Check preferred vector
6031         mode for vector type.
6032
6033 2010-11-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6034
6035         * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
6036
6037 2010-11-10  Sebastian Pop  <sebastian.pop@amd.com>
6038
6039         PR tree-optimization/45971
6040         * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
6041         for phi nodes analyzable by scev.
6042
6043 2010-11-10  Richard Guenther  <rguenther@suse.de>
6044
6045         PR tree-optimization/44964
6046         * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
6047
6048 2010-11-10  Martin Jambor  <mjambor@suse.cz>
6049
6050         PR tree-optimization/46351
6051         PR tree-optimization/46377
6052         * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
6053         aggregate bit-fields.
6054
6055 2010-11-10  Joseph Myers  <joseph@codesourcery.com>
6056
6057         * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
6058         * doc/tm.texi: Regenerate.
6059         * opts-common.c (tm.h): Don't include.
6060         (target_option_translations): Remove.
6061         (decode_cmdline_options_to_array): Don't handle translating options.
6062         * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
6063         * config/darwin-driver.c: Don't condition includes on
6064         CROSS_DIRECTORY_STRUCTURE.
6065         (darwin_default_min_version): Make static.
6066         (darwin_driver_init): New.  Call darwin_default_min_version if not
6067         CROSS_DIRECTORY_STRUCTURE.
6068         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
6069         (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
6070         (ASM_SPEC): Add %{static}.
6071         (darwin_default_min_version): Don't declare.
6072         (darwin_driver_init): Declare.
6073         (GCC_DRIVER_HOST_INITIALIZATION): Define to call
6074         darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
6075         * config/darwin.opt (all_load, allowable_client,
6076         arch_errors_fatal, bind_at_load, bundle, bundle_loader,
6077         dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
6078         exported_symbols_list, filelist, findirect-virtual-calls,
6079         flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
6080         framework, fterminated-vtables, gfull, gused, image_base, init,
6081         install_name, multi_module, multiply_defined,
6082         multiply_defined_unused, no_dead_strip_inits_and_terms,
6083         seg_addr_table, seg_addr_table_filename, segaddr,
6084         segs_read_only_addr, segs_read_write_addr, single_module,
6085         umbrella, unexported_symbols_list, weak_reference_mismatches,
6086         Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
6087         Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
6088         Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
6089         Zno_dead_strip_inits_and_terms, Zsingle_module): New.
6090         * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
6091         (ASM_SPEC): Add %{static}.
6092         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
6093         * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
6094         (DRIVER_SELF_SPECS): Handle options formerly in
6095         TARGET_OPTION_TRANSLATE_TABLE.
6096         * config/mep/mep.opt (mfar): New.
6097         * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
6098         (DRIVER_SELF_SPECS): Define.  Handle options formerly in
6099         TARGET_OPTION_TRANSLATE_TABLE.
6100         * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
6101         (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
6102         * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
6103         ffix-and-continue, findirect-data): New.
6104         * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
6105         * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
6106         (mnofpu): Define mask and use Report here.
6107
6108 2010-11-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6109
6110         * config/s390/s390.c (s390_emit_prologue): Report the stack
6111         size if -fstack-usage is used.
6112
6113 2010-11-10  Richard Guenther  <rguenther@suse.de>
6114
6115         PR tree-optimization/46398
6116         * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
6117
6118 2010-11-10  Joern Rennecke  <amylaar@spamcop.net>
6119
6120         PR target/44760
6121         * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
6122         (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
6123         GP_REG_OR_PSEUDO_STRICT_P.
6124         * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
6125         unexpected alternative.
6126         (*movsf_internal): Likewise.
6127         (indirect_jump): Replace call to non-existant function with call to
6128         internal_error.
6129         (tablejump): Likewise.
6130         * config/iq2000/iq2000.c: Include df.h .
6131         (iq2000_function_arg_advance): Use CONST_CAST2.
6132         (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
6133         (iq2000_can_eliminate): Call leaf_function_p instead of testing for
6134         a non-zero function address.
6135         (iq2000_initial_elimination_offset): Add gcc_unreachable for
6136         unexpected value of FROM.
6137         (symbolic_expression_p): Delete.
6138         (iq2000_function_value): Constify func.
6139         (expand_one_builtin): Use expand_normal.
6140         (iq2000_print_operand): Don't print VALUE if calculating it failed.
6141
6142         PR rtl-optimization/44764
6143         * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
6144
6145         PR target/46407
6146         * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
6147         * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
6148         with ATTRIBUTE_UNUSED.
6149         (valid_psw_flag): Constify parameter which.
6150         (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
6151
6152         PR target/46415
6153         * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
6154         (mmix_dbx_register_number): Likewise.
6155         * config/mmix/mmix.c: Include df.h .
6156         (mmix_local_alignment): Change argument basic_align and return type
6157         to unsigned.
6158         (mmix_dbx_register_number): Change argument and return type to
6159         unsigned.
6160         (mmix_expand_prologue): Use add_reg_note.
6161
6162         PR target/46417
6163         * config/spu/spu.c (spu_expand_insv): Remove unused variables.
6164         (spu_split_store): Use aform.
6165         (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
6166
6167 2010-11-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6168
6169         PR/46268
6170         * doc/gty.texi (GTY Options): Clarify that variable_size produces
6171         allocators taking size in bytes, compare with length option.  Add
6172         size calculation example.
6173         (Invoking the garbage collector): Ensure that sentences are
6174         followed by two spaces.  Describe that pointer fields must be
6175         initialized at ggc_collect call.
6176         (Troubleshooting): New section.
6177
6178 2010-11-09  Jan Hubicka  <jh@suse.cz>
6179
6180         PR tree-optimization/40436
6181         * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
6182         * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
6183         normal instructions; be sure bultin is not implemented in this file;
6184         compute non-zero return cost.
6185         (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
6186         * tree-inline.h (eni_weights_d): Add return cost.
6187
6188 2010-11-09  Joseph Myers  <joseph@codesourcery.com>
6189
6190         * c-parser.c (c_parser_struct_declaration): Handle declaration
6191         specifiers followed by CPP_CLOSE_BRACE.
6192
6193 2010-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
6194
6195         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
6196         split occurs before reload, and we allocate memory at the time of
6197         the split, not during expansion.  Add attributes.
6198         (floatsi<mode>2_lfiwax_mem): Ditto.
6199         (floatunssi<mode>2_lfiwzx): Ditto.
6200         (floatunssi<mode>2_lfiwzx_mem): Ditto.
6201         (floatsidf2): Ditto.
6202         (floatunssisf2): Ditto.
6203         (floatunssidf2): Ditto.
6204         (fix_trunc<mode>si2): Ditto.
6205         (fix_trunc<mode>si2_stfiwx): Ditto.
6206         (fix_trunc<mode>si2_internal): Ditto.
6207         (fix_trunc<mode>si2): Ditto.
6208         (fix_trunc<mode>di2): Ditto.
6209         (fixuns_trunc<mode>si2_stfiwx): Ditto.
6210         (floatsisf2): Ditto.
6211         (floatdidf2_mem): Ditto.
6212         (floatunsdidf2_mem): Ditto.
6213         (floatunsdidf2): Ditto.
6214         (floatdisf2_internal1): Ditto.
6215         (floatdisf2_mem): Ditto.
6216         (floatunsdisf2_mem): Ditto.
6217         (floatsi<mode>2_lfiwax_mem2): Delete.
6218         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
6219         (fix_trunc<mode>si2_mem): Ditto.
6220         (fixuns_trunc<mode>si2_mem): Ditto.
6221         (round32<mode>2_fprs): New combiner insn to combine (double)(int)
6222         type operations to reduce copying the values to multiple memory slots.
6223         (roundu32<mode>2_fprs): Ditto.
6224
6225         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
6226         PRE_INC, PRE_DEC, PRE_MODIFY.
6227         (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
6228
6229         * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
6230         Delete prototype.
6231
6232 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6233
6234         PR target/43808
6235         * cfgexpand.c (partition_stack_vars): Call
6236         update_alias_info_with_stack_vars unconditionally.
6237         (update_alias_info_with_stack_vars): Allow unused
6238         unreferenced vars when not optimizing.
6239
6240 2010-11-09  Sebastian Pop  <sebastian.pop@amd.com>
6241
6242         PR tree-optimization/46036
6243         * tree-if-conv.c (predicate_bbs): Call unshare_expr before
6244         add_to_dst_predicate_list.
6245
6246 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6247
6248         PR debug/46171
6249         * df-problems.c (struct dead_debug_use, struct dead_debug): Move
6250         earlier.
6251         (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
6252         argument, call dead_debug_reset when adding REG_UNUSED note.
6253         (dead_debug_reset): New function.
6254         (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
6255         df_create_unused_note callers.
6256
6257 2010-11-09  Anatoly Sokolov  <aesok@post.ru>
6258
6259         * config/fr30/fr30.c: Include "df.h".
6260
6261 2010-11-09  Richard Guenther  <rguenther@suse.de>
6262
6263         PR tree-optimization/46355
6264         * tree-loop-distribution.c (tree_loop_distribution): Do not
6265         distribute loops without a single exit.
6266
6267 2010-11-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6268
6269         PR rtl-optimization/46237
6270         * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
6271         saved hard regs if they might get partially clobbered.
6272
6273 2010-11-09  Paul Koning  <ni1d@arrl.net>
6274
6275         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
6276
6277 2010-11-09  Richard Guenther  <rguenther@suse.de>
6278
6279         PR tree-optimization/46177
6280         * tree-loop-distribution.c (prop_phis): Remove.
6281         (generate_builtin): Re-use the old loop exit edge to avoid
6282         needing to update PHI nodes.
6283
6284 2010-11-09  Joern Rennecke  <amylaar@spamcop.net>
6285
6286         * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
6287         type of args_size to unsigned HOST_WIDE_INT.
6288
6289         PR target/44755
6290         * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
6291         * config/t-pnt16-warn: New file.
6292         * config/picochip/picochip.c (picochip_emit_stack_allocate):
6293         Use add_reg_note.
6294         (picochip_emit_save_register): Likewise.
6295         (picochip_emit_restore_register): Remove variable insn.
6296         (picochip_legitimize_address): Don't use C++ style comments.
6297         (picochip_legitimize_reload_address): Likewise.
6298         (reorder_var_tracking_notes): Remove variable vliw_start.
6299         (picochip_reorg): Cast first arguemnt to emit_note_after to
6300         enum insn_note.
6301         (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
6302         (picochip_expand_builtin_3op): Likewise.
6303         (picochip_expand_builtin_2opvoid): Likewise.
6304         (picochip_expand_array_get, picochip_expand_array_put): Likewise.
6305         (picochip_expand_array_testport): Likewise.
6306         (picochip_init_builtins): Remove unused variables.
6307         * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
6308         to unsigned long, and output it as such.
6309         (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
6310         * config/picochip/picochip.md (movhicc): Remove nonsense statement.
6311         (schedType): Cast result of picochip_schedule_type to
6312         enum attr_schedType.
6313
6314         PR target/44759
6315         * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
6316         conditional to type of S.
6317         (mn10300_function_arg): Remove unused variable align.
6318         (mn10300_arg_partial_bytes): Likewise.
6319         * config/mn10300/mn10300.md (attribute cpu): Cast value to
6320         enum attr_cpu.
6321
6322 2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
6323
6324         PR bootstrap/46392
6325         * gengtype-parse.c (type): Call get_input_file_name to get file name.
6326
6327 2010-11-09  Eric Botcazou  <ebotcazou@adacore.com>
6328
6329         * tree.h (contains_placeholder_p): Fix comment.
6330         (type_contains_placeholder_p): Adjust comment.
6331         * tree.c (contains_placeholder_p): Fix comment.
6332         (type_contains_placeholder_1): Do not recurse on pointed-to types and
6333         adjust comment.
6334         (type_contains_placeholder_p): Add comment.
6335
6336 2010-11-09  Paul Koning  <ni1d@arrl.net>
6337
6338         * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
6339         output of byte values.
6340
6341 2010-11-09  Jakub Jelinek  <jakub@redhat.com>
6342
6343         PR middle-end/46360
6344         * tree-ssa-propagate.c (update_call_from_tree): Fix for use
6345         not in SSA mode.
6346
6347 2010-11-09  Richard Guenther  <rguenther@suse.de>
6348
6349         PR middle-end/46221
6350         * varasm.c (compute_visible_aliases): New function.
6351         (remove_unreachable_alias_pairs): Aliases make a target available
6352         even though we reclaimed the cgraph node.
6353         (finish_aliases_1): Likewise.
6354         * Makefile.in (varasm.o): Add pointer-set.h dependency.
6355
6356 2010-11-09  Nick Clifton  <nickc@redhat.com>
6357
6358         * config/mn10300/mn10300-modes.def: New file.
6359
6360 2010-11-09  Basile Starynkevitch  <basile@starynkevitch.net>
6361             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6362
6363         * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
6364         (plugin_files, get_file_basename, get_file_realbasename)
6365         (get_file_langdir, error_at_line, gt_files, this_file)
6366         (system_h_file, read_input_list, create_field_all)
6367         (get_file_srcdir_relative_path, get_file_basename)
6368         (get_file_langdir, get_file_gtfilename)
6369         (get_output_file_with_visibility, get_output_file_name)
6370         (struct flist, put_mangled_filename, walk_type)
6371         (put_mangled_filename, finish_root_table, write_roots): Use
6372         input_file-s.
6373         (lang_dir_names, num_lang_dirs): Remove static.
6374         (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
6375         (main): Use input_file-s.
6376
6377         * gengtype.h: (struct input_file_st, input_file): New type.
6378         (struct fileloc): Use it.
6379         (gt_files, num_gt_files, this_file, system_h_file)
6380         (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
6381         (get_input_file_name): New function.
6382         (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
6383         use input_file.
6384         (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
6385         (get_output_file_name): Ditto.
6386
6387         * gengtype-lex.l (yybegin): Use input_file.
6388
6389         * gengtype-parse.c (parse_error): Use input_file.
6390
6391 2010-11-08  Xinliang David Li  <davidxl@google.com>
6392
6393         PR tree-optimization/46316
6394         * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
6395         * double-int.h (double_int_mul_with_sign): New function.
6396         * double-int.c (double_int_mul_with_sign): New function.
6397
6398 2010-11-08  Paul Koning  <ni1d@arrl.net>
6399
6400         * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
6401
6402 2010-11-08  Paul Koning  <ni1d@arrl.net>
6403
6404         * config/pdp11/pdp11.md (negsi2): Fix wrong code.
6405
6406 2010-11-08  Paul Koning  <ni1d@arrl.net>
6407
6408         * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
6409         to 8 bits.
6410
6411 2010-11-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
6412
6413         PR target/46378
6414         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6415         turn on ISA 2.04 rounding instructions for power5.
6416
6417         * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
6418         not ISA 2.02.
6419
6420         PR target/45585
6421         * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
6422         in FPR registers.
6423         (movdi_low_st): Ditto.
6424
6425 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6426             Richard Henderson  <rth@redhat.com>
6427
6428         PR target/44758
6429         * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
6430         (attribute acc_group): Cast value to enum attr_acc_group.
6431         (*movdi_nodouble+6): Use gen_int_mode.
6432         * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
6433         if RTX_CODE is defined or not.
6434         * config/frv/frv.c (enum frv_io_type): New enum, broken out of
6435         struct frv_io.
6436         (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
6437         (frv_frame_access, frv_expand_prologue): Remove unused variables.
6438         (frv_expand_block_clear): Likewise.
6439         (frv_trampoline_init): Use LCT_NORMAL.
6440         (struct frv_packet_group): New struct, broken out of type of
6441         frv_packet.
6442         (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
6443         use cast in loop counter increment.
6444         (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
6445         assigning to io->type.
6446         (bdesc_set): Use rtx_code UNKNOWN in initializer.
6447         (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
6448         (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
6449         (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
6450         (frv_read_argument): Use expand_normal.
6451
6452         PR target/44757
6453         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
6454         lm32_legitimate_constant_p.
6455         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
6456         * config/lm32/lm32.c (gen_int_relational): Make new block for
6457         LE / LT / LEU / LTU case.  Declare variables at start of block.
6458         (lm32_block_move_inline): Use XALLOCAVEC.
6459
6460 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6461
6462         * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
6463
6464 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6465
6466         * gengtype (get_output_file_for_structure): Ensure type is union
6467         or struct.
6468         (write_splay_tree_allocator_def): Use
6469         get_output_file_with_visibility.
6470
6471 2010-11-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6472
6473         * config/s390/s390.c (s390_handle_arch_option): Set type and flags
6474         to defined values in case of an error.
6475         (s390_option_override): Skip further processing if the -march
6476         parameter wasn't recognized.
6477
6478 2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
6479
6480         * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
6481         assert that REG is a hard register number before using it as an index.
6482
6483         PR bootstrap/46358
6484         * config/i386/i386.c (ix86_expand_split_stack_prologue):
6485         Avoid warnings when HOST_WIDE_INT is 32 bit.
6486
6487 2010-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6488
6489         PR target/46208
6490         * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
6491         (sparc_promote_prototypes): Likewise.
6492         (sparc_promote_function_mode): Promote in 32-bit mode as well.
6493         (sparc_return_in_memory): Remove superfluous parentheses.
6494         (sparc_struct_value_rtx): Fix long lines.
6495         (sparc_function_value_1): Promote in 32-bit mode as well.
6496
6497 2010-11-08  Andrey Belevantsev  <abel@ispras.ru>
6498
6499         PR rtl-optimization/45352
6500         * sel-sched.c (find_best_expr): Do not set pneed_stall when
6501         the variable_issue hook is not implemented.
6502         (fill_insns): Remove dead variable stall_iterations.
6503         (init_seqno_1): Force EBB start for resetting sched cycles on any
6504         successor blocks of the rescheduled region.
6505         (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
6506         (reset_sched_cycles_in_current_ebb): Add debug printing.
6507         New variable issued_insns.  Advance state when we have issued
6508         issue_rate insns.
6509
6510 2010-11-08  Basile Starynkevitch  <basile@starynkevitch.net>
6511
6512         * gengtype (main): Get here's position using POS_HERE macro for
6513         do*typedef calls.
6514
6515 2010-11-07  Ian Lance Taylor  <iant@google.com>
6516
6517         PR target/46089
6518         * config/i386/i386.c (split_stack_fn_large): New static variable.
6519         (ix86_expand_split_stack_prologue): Handle large model.
6520
6521 2010-11-07  Andreas Schwab  <schwab@linux-m68k.org>
6522
6523         * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
6524         all possible addressing modes.
6525
6526 2010-11-07  Uros Bizjak  <ubizjak@gmail.com>
6527
6528         PR tree-optimization/46346
6529         * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
6530
6531 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6532
6533         * config/mips/mips.c: Revert previous patch.
6534         * config/mips/mips.md: Likewise.
6535
6536 2010-11-07  Richard Sandiford  <rdsandiford@googlemail.com>
6537
6538         * config/mips/mips.c (mips_rtx_costs): Handle FMA.
6539         * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
6540         (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
6541         (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
6542         (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
6543         to use FMA.
6544         (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
6545         (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
6546         (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
6547         (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
6548
6549 2010-11-06  Simon Martin  <simartin@users.sourceforge.net>
6550
6551         PR c/43384
6552         * c-decl.c (lookup_label): Labels can only be referenced in a
6553         function's scope.
6554         (store_parm_decls_oldstyle): Skip erroneous parameters.
6555
6556 2010-11-06  Anatoly Sokolov  <aesok@post.ru>
6557
6558         * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6559         LIBCALL_VALUE): Remove macros.
6560         * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6561         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6562         (fr30_function_value_regno_p, fr30_function_value,
6563         fr30_libcall_value): New functions.
6564
6565 2010-11-06  Joern Rennecke  <amylaar@spamcop.net>
6566
6567         PR middle-end/46314
6568         * target.def (generate_internal_label): New asm_out hook.
6569         * output.h (default_generate_internal_label): Declare.
6570         * varasm.c (default_generate_internal_label): Define.
6571
6572 2010-11-06  Iain Sandoe  <iains@gcc.gnu.org>
6573
6574         PR target/44981
6575         * doc/extend.tex (format): Document NSString extension.
6576         (format_arg): Likewise.
6577         (Darwin Format Checks): New section.
6578         * doc/tm.texi: Document string object hooks (generated).
6579         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
6580         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6581         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6582         * target.def (objc_construct_string_object): Rename, amend
6583         documentation.
6584         (string_object_ref_type_p): New hook.
6585         (check_string_object_format_arg): New hook.
6586         * c-parser.c (c_parser_attributes): Allow objective-c class names as
6587         attribute identifiers.
6588         * config/darwin-c.c (darwin_cfstring_ref_p): New.
6589         (darwin_check_cfstring_format_arg): New.
6590         (darwin_additional_format_types): New.
6591         * config/darwin-protos.h (darwin_cfstring_ref_p) New.
6592         (darwin_check_cfstring_format_arg): New.
6593         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
6594         (TARGET_STRING_OBJECT_REF_TYPE_P): New.
6595         (TARGET_N_FORMAT_TYPES): New.
6596         (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
6597
6598 2010-11-06  Eric Botcazou  <ebotcazou@adacore.com>
6599             Pascal Obry  <obry@adacore.com>
6600
6601         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine.  Use 33
6602         in 64-bit mode and 17 otherwise.
6603
6604 2010-11-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6605
6606         PR debug/45939
6607         * var-tracking.c (emit_note_insn_var_location): Make sure that
6608         call related var location notes come before the normal ones.
6609
6610 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6611
6612         PR target/46326
6613         * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
6614         in the last change.
6615
6616 2010-11-05  Ian Lance Taylor  <iant@google.com>
6617
6618         * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
6619
6620 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6621
6622         PR c/44772
6623         * c-decl.c (warn_cxx_compat_finish_struct): Don't call
6624         pointer_set_contains if DECL_NAME is NULL.
6625
6626 2010-11-05  Ian Lance Taylor  <iant@google.com>
6627
6628         PR target/46084
6629         * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
6630         request enough additional space for alignment, and force alignment.
6631
6632 2010-11-05  Kai Tietz  <kai.tietz@onevision.com>
6633
6634         * config/i386/i386.c (legitimate_pic_address_disp_p):
6635         Handle UNSPEC_PCREL.
6636         (ix86_legitimate_address_p): Likewise.
6637         (legitimize_pic_address): Likewise.
6638         (output_pic_addr_const): Likewise.
6639         (ix86_delegitimize_address): Likewise.
6640         (ix86_find_base_term): Likewise.
6641         (memory_address_length): Likewise.
6642         (x86_output_mi_thunk): Handle special case x64
6643         for non local binding.
6644         * config/i386/i386.md (UNSPEC_PCREL): New.
6645         * config/i386/winnt.c (i386_pe_binds_local_p):
6646         Allow weak symbol for x64 windows with non-local binding.
6647
6648 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6649
6650         PR target/45670
6651         * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
6652         instead of EXPAND_NORMAL for base expansion.
6653
6654 2010-11-05  Uros Bizjak  <ubizjak@gmail.com>
6655
6656         * config.gcc: Support --with-fpmath=avx for x86.
6657         * config/i386/avxmath.h: New.
6658         * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
6659
6660 2010-11-05  Ian Lance Taylor  <iant@google.com>
6661
6662         * tree.h (struct tree_type): Don't use descbits in GTY annotation.
6663         * gengtype.c (walk_type): Don't recognize descbits option.
6664
6665 2010-11-05  Joseph Myers  <joseph@codesourcery.com>
6666
6667         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
6668         WORD_SWITCH_TAKES_ARG): Remove.
6669         * doc/options.texi (Args): Document.
6670         * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
6671         * doc/tm.texi: Regenerate.
6672         * opt-functions.awk (switch_flags): Handle Args.
6673         * opts-common.c: Update comment on tm.h include.
6674         (decode_cmdline_option): Handle options with multiple arguments.
6675         Don't check WORD_SWITCH_TAKES_ARG for unknown options.
6676         * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
6677         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6678         CL_COMMON): Update values.
6679         * system.h (WORD_SWITCH_TAKES_ARG): Poison.
6680         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
6681         * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
6682         sectobjectsymbols, sectorder, segcreate, segprot): New.
6683
6684 2010-11-05  H.J. Lu  <hongjiu.lu@intel.com>
6685             Uros Bizjak  <ubizjak@gmail.com>
6686
6687         * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
6688         256bit AVX register is used.
6689         (ix86_expand_vector_move_misalign): Likewise.
6690         (ix86_expand_vector_move): Replace use_avx256_p with
6691         VALID_AVX256_REG_MODE.
6692
6693 2010-11-05  Joern Rennecke  <amylaar@spamcop.net>
6694
6695          PR target/44750
6696         * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
6697         change.  Set $@-warn.o to -Wno-error.
6698
6699         PR bootstrap/44756
6700         * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
6701         comparing it to a signed value.
6702
6703         PR middle-end/44766
6704         * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
6705         PR bootstrap/44770
6706         * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
6707         to i.
6708
6709         PR target/44754
6710         * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
6711         (m32c_function_arg).  Add comma between arguments two and three.
6712         (m32c_promote_prototypes): Remove declaration.
6713         (current_function_special_page_vector): Likewise.
6714         (m32c_regno_reg_class): Change return type to enum reg_class.
6715         (m32c_pushm_popm): Use add_reg_note.
6716         (m32c_push_rounding): Change return type to unsigned int.
6717         (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
6718         enum reload_type.
6719         (m32c_insert_attributes): Constify variable name.
6720         (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
6721         (m32c_prepare_shift): Remove variable lref.
6722         (m32c_expand_movcc): Remove variable cmp.
6723         (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
6724         (m32c_compare_redundant): Remove variable op2.
6725         * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
6726         (m32c_pragma_memregs): Assign the number to target_memregs.
6727         (m32c_pragma_address): Remove variable var_str.
6728         * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
6729         enum reg_class.
6730         (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
6731         * config/m32c/bitops.md (andsi3): Add default case to switch.
6732         (iorsi3, xorsi3): Likewise.
6733         * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
6734         * config/m32c/jump.md (call, call_value): Likewise.
6735         * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
6736         (m32c_regno_reg_class): Likewise.
6737         (current_function_special_page_vector): Declare.
6738
6739 2010-11-05  Jakub Jelinek  <jakub@redhat.com>
6740
6741         * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
6742
6743         PR tree-optimization/46099
6744         * tree-parloops.c (take_address_of): Add GSI argument.  Return NULL
6745         if it is NULL and uid wasn't found in the hash table.  Just fold the
6746         result if it is NULL otherwise.  Insert other potentially needed
6747         stmts right before current stmt instead of on the entry edge.
6748         (struct elv_data): Add gsi and reset fields.
6749         (eliminate_local_variables_1): Adjust caller.  If take_address_of
6750         failed for debug stmt, set dta->reset and return.
6751         (eliminate_local_variables_stmt): Change STMT argument for GSI,
6752         pass GSI through to the callback, handle resetting of debug stmts.
6753         (eliminate_local_variables): Adjust caller.  Process debug stmts
6754         in second phase.
6755
6756         PR middle-end/43690
6757         * gimplify.c (gimplify_asm_expr): If a "m" input is a
6758         {pre,post}{in,de}crement, fail.
6759
6760         PR debug/46307
6761         * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
6762         * tree-pretty-print.c (dump_generic_node): Likewise.
6763         (op_code_prio): Likewise.
6764         * cfgexpand.c (expand_debug_expr): Likewise.
6765
6766 2010-11-04  Paul Koning  <ni1d@arrl.net>
6767
6768         * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
6769         constraints.
6770
6771 2010-11-04  Chao-ying Fu  <fu@mips.com>
6772
6773         * configure.ac: Test assembler support for DSP Rev1 mult.
6774         * configure: Regenerate.
6775         * config.in: Regenerate.
6776         * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
6777         * config/mips/mips.c (CODE_FOR_mips_mult): New define.
6778         (CODE_FOR_mips_multu): New define.
6779         (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
6780         dspr2_32 to dsp_32.
6781         (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
6782         Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
6783         * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
6784         New define_expand patterns.
6785         * config/mips/constraints.md (ka): Update the constraint to test
6786         ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
6787         * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
6788         mips_multu): Delete.
6789         * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
6790         Change target constraint to "ka".
6791         Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
6792         (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
6793         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6794         (<u>msubsidi4): Add comments.  Test ISA_HAS_DSP.
6795         Emit the accumulator destination when ISA_HAS_DSP_MULT.
6796         (<u>maddsidi4): Likewise.
6797         * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
6798         msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
6799
6800 2010-11-04  Paul Koning  <ni1d@arrl.net>
6801
6802         * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
6803
6804 2010-11-04  Paul Koning  <ni1d@arrl.net>
6805
6806         * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
6807
6808 2010-11-04  Nicola Pero  <nicola.pero@meta-innovation.com>
6809
6810         Fixed using the Objective-C 2.0 dot-syntax with class names.
6811         * c-parser.c (c_parser_next_token_starts_declspecs): In
6812         Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
6813         (c_parser_next_token_starts_declaration): Same.
6814         (c_parser_postfix_expression): Parse the Objective-C 2.0
6815         dot-syntax with a class name.
6816
6817 2010-11-04  Pat Haugen  <pthaugen@us.ibm.com>
6818
6819         * final.c (compute_alignments): Compute/free loop info all the time.
6820         * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
6821         * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
6822         * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
6823         * config/rs6000/rs6000.c (cfgloop.h): Include.
6824         (can_override_loop_align): New.
6825         (rs6000_option_override_internal): Set it.
6826         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
6827         (rs6000_loop_align): New function.
6828         (rs6000_loop_align_max_skip): Likewise.
6829
6830 2010-11-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6831
6832         PR driver/45703
6833         * collect2.c (main): Print --help output to stdout.  Do not
6834         exit right away, so ld --help is appended.  Add empty lines
6835         to separate output suitably.
6836
6837 2010-11-04  Jakub Jelinek  <jakub@redhat.com>
6838
6839         PR tree-optimization/46233
6840         * ipa-pure-const.c (local_pure_const): Do noreturn discovery
6841         after calling analyze_function, not before.
6842
6843         PR target/46234
6844         * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
6845         instead of build_va_arg_indirect_ref.
6846         * config/spu/spu.c (spu_va_start): Likewise.
6847         * config/s390/s390.c (s390_va_start): Likewise.
6848
6849 2010-11-03  Uros Bizjak  <ubizjak@gmail.com>
6850
6851         PR middle-end/46292
6852         * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
6853         if the innermode is not vector mode, determine the mode of a subreg
6854         by using mode_for_size of inner_size.
6855
6856 2010-11-04  Richard Guenther  <rguenther@suse.de>
6857
6858         PR rtl-optimization/46183
6859         * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
6860         (execute_rtl_pre): Likewise.
6861         (execute_rtl_hoist): Likewise.
6862
6863 2010-11-04  Richard Guenther  <rguenther@suse.de>
6864
6865         PR tree-optimization/46068
6866         * ipa-split.c (consider_split): Remove gcc_unreachable.
6867
6868 2010-11-04  Richard Guenther  <rguenther@suse.de>
6869
6870         * tree-nested.c (build_addr): Use build_fold_addr_expr.
6871
6872 2010-11-04  Richard Guenther  <rguenther@suse.de>
6873
6874         PR tree-optimization/45991
6875         * gimplify.c (force_gimple_operand_1): Use the provded test
6876         function in the initial test.
6877
6878 2010-11-04  Jeff Law  <law@redhat.com>
6879
6880         * ira.c (validate_equiv_mem): Remove code to avoid invalidation
6881         of readonly memory equivalances for const/pure calls.
6882
6883 2010-11-04  Richard Guenther  <rguenther@suse.de>
6884
6885         PR tree-optimization/45733
6886         * tree-vect-stmts.c (reverse_vec_elements): Honor the
6887         permute builtins function return type.
6888
6889 2010-11-04  Joern Rennecke  <amylaar@spamcop.net>
6890
6891         PR middle-end/44765
6892         * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
6893         as an index, check it is not INVALID_REGNUM.
6894
6895         PR bootstrap/44756
6896         * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
6897         unsignedp.
6898         * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
6899
6900         PR bootstrap/44756
6901         * function.c (thread_prologue_and_epilogue_insns): Add
6902         ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
6903
6904         PR bootstrap/44756
6905         * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
6906
6907         PR target/44750
6908         * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
6909         (pdp11_preferred_reload_class): Rename class to rclass.
6910         (pdp11_preferred_output_reload_class): Likewise.
6911         * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
6912         ALL_COMPILERFLAGS .
6913         (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
6914
6915         PR bootstrap/44756
6916         * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
6917         iteration variables to enum machine_mode.
6918
6919         PR target/44751
6920         * config/h8300/h8300.c: Include df.h.
6921         (push, pop): Use add_reg_note.
6922         (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
6923         (compute_a_shift_cc): Likewise.
6924         (expand_a_shift): Argument code has type enum rtx_code.
6925         (struct shift_insn): Member cc_valid has type enum attr_cc.
6926         (struct shift_info) <cc_inline, cc_special>: Likewise.
6927         enum attr_cc.
6928         * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
6929         (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
6930
6931 2010-11-04  Ira Rosen  <irar@il.ibm.com>
6932
6933         PR tree-optimization/46213
6934         * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
6935         MINUS_EXPR only if the first operand is reduction operand.
6936
6937 2010-11-04  Richard Guenther  <rguenther@suse.de>
6938             Richard Henderson  <rth@redhat.com>
6939
6940         * tree.def (FMA_EXPR): New tree code.
6941         * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
6942         * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
6943         * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
6944         * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
6945         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
6946         * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
6947         (execute_optimize_widening_mul): Call it.  Reorganize to allow
6948         dead stmt removal.  Move TODO flags ...
6949         (pass_optimize_widening_mul): ... here.
6950         * flag-types.h (enum fp_contract_mode): New enum.
6951         * common.opt (flag_fp_contract_mode): New variable.
6952         (-ffp-contract): New option.
6953         * opts.c (common_handle_option): Handle it.
6954         * doc/invoke.texi (-ffp-contract): Document.
6955         * tree.h (fold_fma): Declare.
6956         * builtins.c (fold_fma): New function.
6957         (fold_builtin_fma): Likewise.
6958         (fold_builtin_3): Call it for fma.
6959         * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
6960         * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
6961         * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
6962         New expanders.
6963         * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
6964         named patterns.
6965         * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
6966         * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
6967         (fms_optab, fnma_optab, fnms_optab): New defines.
6968         * gimplify.c (gimplify_expr): Handle binary truth expressions
6969         explicitly.  Handle FMA_EXPR.
6970         * tree-vect-stmts.c (vectorizable_operation): Handle ternary
6971         operations.
6972
6973 2010-11-04  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
6974             Richard Guenther  <rguenther@suse.de>
6975
6976         * passes.c (init_optimization_passes): Move veclower after SSA.
6977         * tree-vect-generic.c (uniform_vector_p): New function.
6978         (expand_vector_operations_1): Handle conversion.
6979         (pass_lower_vector): Update SSA form.
6980
6981 2010-11-04  Iain Sandoe  <iains@gcc.gnu.org>
6982
6983         * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
6984         plugin capabilities.
6985         * configure: Regenerate.
6986
6987 2010-11-03  Xinliang David Li  <davidxl@google.com>
6988
6989         PR target/46200
6990         * tree-ssa-loop-ivopts.c (get_computation_cost_at):
6991         Adjust cbase if the use stmt is after iv update.
6992
6993 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6994
6995         * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
6996
6997 2010-11-03  Kaz Kojima  <kkojima@gcc.gnu.org>
6998
6999         * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
7000         comment.  Pass true to the last argument of output_stack_adjust.
7001
7002 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
7003
7004         PR target/46295
7005         * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
7006         if 256bit AVX register is used.
7007
7008 2010-11-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7009
7010         * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
7011         xsmindp/xsmaxdp on VSX for single precision min/max.
7012         * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
7013         (vsx_sminsf3): Ditto.
7014
7015 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
7016
7017         * combine.c (try_combine): Fix formatting issues, improve comments and
7018         fix a pasto.
7019
7020 2010-11-03  Eric Botcazou  <ebotcazou@adacore.com>
7021
7022         * tree-tailcall.c (find_tail_calls): Convert the operands to the type
7023         of the result before building binary expressions.
7024
7025 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
7026
7027         PR rtl-optimization/45865
7028         * Makefile.in (df-problems.o): Revert revision 164552.
7029         * basic-block.h (enum bb_flags): Likewise.
7030         * cfgcleanup.c (block_was_dirty): Likewise.
7031         (try_forward_edges): Likewise.
7032         (try_crossjump_bb): Likewise.
7033         (try_head_merge_bb): Likewise.
7034         (try_optimize_cfg): Likewise.
7035         (cleanup_cfg): Likewise.
7036         * df-core.c (df_set_bb_dirty): Likewise.
7037         * df-problems.c: Likewise.
7038         (df_simulate_find_uses): Likewise.
7039         (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
7040         (find_memory, find_memory_store): Likewise.
7041         (can_move_insns_across): Likewise.
7042         * df.h (can_move_insns_across): Likewise.
7043         * ifcvt.c (find_memory): Likewise.
7044         (dead_or_predicable): Likewise.
7045
7046 2010-11-03  Richard Guenther  <rguenther@suse.de>
7047
7048         PR middle-end/46288
7049         * predict.c (strip_predict_hints): Simply DCE builtin expect if
7050         the result is unused.
7051
7052 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7053
7054         PR tree-optimization/46009
7055         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
7056         cond_if_else_store_replacement if bb1 and bb2 have the same
7057         single successor.
7058         (cond_store_replacement): Use gimple_assign_single_p, don't
7059         check if rhs is SSA_NAME or invariant.  Call release_defs for
7060         assign.
7061         (cond_if_else_store_replacement): New function.
7062
7063 2010-11-03  Richard Guenther  <rguenther@suse.de>
7064
7065         * opts.c (finish_options): Properly check for all WHOPR
7066         flags before complaining about -flto-partition.
7067
7068 2010-11-04  Alan Modra  <amodra@gmail.com>
7069
7070         * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
7071         (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
7072         TARGET_SECURE_PLT.
7073         * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
7074         * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
7075         on input, "r" on output.
7076
7077 2010-11-03  Nicola Pero  <nicola.pero@meta-innovation.com>
7078
7079         Implemented -fobjc-std=objc1 flag.
7080         * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
7081         option.
7082         * doc/standards.texi (Standards): Updated the section on
7083         Objective-C; mention support for Objective-C 2.0 features and the
7084         new -fstd-objc=objc1 flag to disable them.
7085
7086 2010-11-03  Richard Guenther  <rguenther@suse.de>
7087
7088         PR middle-end/46241
7089         * dwarf2out.c (scope_die_for): Properly detect global scope.
7090
7091 2010-11-03  Richard Guenther  <rguenther@suse.de>
7092
7093         PR tree-optimization/46190
7094         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7095         Properly compute peel iterations.
7096
7097 2010-11-03  Richard Guenther  <rguenther@suse.de>
7098
7099         PR tree-optimization/46286
7100         * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
7101         re-allocated vector data.
7102
7103 2010-11-03  H.J. Lu  <hongjiu.lu@intel.com>
7104
7105         PR target/46285
7106         * config/i386/i386.c (ix86_expand_call): Conditionally decorate
7107         calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
7108         is completed.
7109
7110 2010-11-03  Richard Guenther  <rguenther@suse.de>
7111
7112         PR tree-optimization/46217
7113         * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
7114         flag matches.
7115         (execute_update_addresses_taken): Likewise.
7116
7117 2010-11-03  Joern Rennecke  <joern.rennecke@embecosm.com>
7118
7119         PR bootstrap/44335
7120         * targhooks.c (targhook_words_big_endian): New function.
7121         (targhook_float_words_big_endian): Likewise.
7122         * targhooks.h (targhook_words_big_endian): Declare.
7123         (targhook_float_words_big_endian): Likewise.
7124         * target.def (words_big_endian, float_words_big_endian): New hooks.
7125
7126 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7127
7128         PR tree-optimization/46165
7129         * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
7130         a normal call into noreturn call.
7131
7132 2010-11-03  Richard Guenther  <rguenther@suse.de>
7133
7134         PR middle-end/46251
7135         * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
7136         not INDIRECT_REFs.
7137
7138 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7139
7140         PR tree-optimization/46107
7141         * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
7142         if cfg_hook_duplicate_loop_to_header_edge failed.
7143
7144 2010-11-03  Ian Lance Taylor  <iant@google.com>
7145
7146         PR lto/46273
7147         * config.gcc: Don't set lto_binary_reader.
7148         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7149         (Configuration): Mention --disable-lto.  Remove --with-libelf
7150         paragraph.
7151
7152 2010-11-03  Jakub Jelinek  <jakub@redhat.com>
7153
7154         PR debug/46252
7155         * reload1.c (delete_dead_insn): Use prev_active_insn instead of
7156         prev_real_insn.
7157         * gcse.c (insert_insn_end_basic_block): Likewise.
7158
7159         PR rtl-optimization/46034
7160         PR rtl-optimization/46212
7161         PR rtl-optimization/46248
7162         * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
7163         and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
7164         before i0dest -> i0src substitution and pass 1 instead of 0 as last
7165         argument to subst on i2pat.
7166
7167 2010-11-02  Ian Lance Taylor  <iant@google.com>
7168
7169         * configure.ac: Use AC_SYS_LARGEFILE.
7170         * configure: Rebuild.
7171         * config.in: Rebuild.
7172
7173 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7174
7175         * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
7176         fold_convert.
7177         * c-typeck.c (build_function_call_vec): Likewise.
7178         * cfgexpand.c (expand_debug_expr): Likewise.
7179         * cgraphunit.c (assemble_thunk): Likewise.
7180         * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
7181         * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
7182         (fold_binary_loc, fold_ternary_loc): Likewise.
7183         * gimple-fold.c (get_symbol_constant_value): Likewise.
7184         * gimple-low.c (lower_builtin_setjmp): Likewise.
7185         * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
7186         * gimplify.c (gimplify_init_constructor): Likewise.
7187         * lambda.h (build_linear_expr): Likewise.
7188         * omp-low.c (omp_reduction_init): Likewise.
7189         * tree-inline.c (remap_ssa_name): Likewise.
7190         * tree-object-size.c (compute_object_sizes): Likewise.
7191         * tree-sra.c (init_subtree_with_zero): Likewise.
7192         (sra_ipa_modify_assign): Likewise.
7193         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
7194         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
7195         (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
7196         (undistribute_ops_list): Likewise.
7197         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
7198         * tree-vect-stmts.c (vectorizable_call): Likewise.
7199         * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
7200         (build_zero_cst): Handle more cases directly.  Update comment.
7201
7202 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7203
7204         * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
7205         * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
7206
7207         * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
7208         and call ix86_split_call_vzeroupper instead of
7209         ix86_split_call_pop_vzeroupper.
7210         (*call_pop_1_vzeroupper): Likewise.
7211         (*sibcall_pop_1_vzeroupper): Likewise.
7212         (*call_value_pop_0_vzeroupper): Likewise.
7213         (*call_value_pop_1_vzeroupper): Likewise.
7214         (*sibcall_value_pop_1_vzeroupper): Likewise.
7215
7216 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7217
7218         * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
7219
7220 2010-11-02  Eric Botcazou  <ebotcazou@adacore.com>
7221
7222         * basic-block.h (insert_insn_end_bb_new): Delete.
7223         * cfgrtl.c (insert_insn_end_bb_new): Likewise.
7224
7225 2010-11-02  Uros Bizjak  <ubizjak@gmail.com>
7226             H.J. Lu  <hongjiu.lu@intel.com>
7227
7228         * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
7229         (ix86_split_call_pop_vzeroupper): Likewise.
7230
7231         * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
7232         (ix86_expand_call): Conditionally decorate calls with
7233         UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
7234         (ix86_split_call_vzeroupper): New.
7235         (ix86_split_call_pop_vzeroupper): Likewise.
7236
7237         * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
7238         (*call_pop_0_vzeroupper): New insn_and_split pattern.
7239         (*call_pop_1_vzeroupper): Likewise.
7240         (*sibcall_pop_1_vzeroupper): Likewise.
7241         (*call_0_vzeroupper): Likewise.
7242         (*call_1_vzeroupper): Likewise.
7243         (*sibcall_1_vzeroupper): Likewise.
7244         (*call_1_rex64_vzeroupper): Likewise.
7245         (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
7246         (*call_1_rex64_large_vzeroupper): Likewise.
7247         (*sibcall_1_rex64_vzeroupper): Likewise.
7248         (*call_value_pop_0_vzeroupper): Likewise.
7249         (*call_value_pop_1_vzeroupper): Likewise.
7250         (*sibcall_value_pop_1_vzeroupper): Likewise.
7251         (*call_value_0_vzeroupper): Likewise.
7252         (*call_value_0_rex64_vzeroupper): Likewise.
7253         (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
7254         (*call_value_1_vzeroupper): Likewise.
7255         (*sibcall_value_1_vzeroupper): Likewise.
7256         (*call_value_1_rex64_vzeroupper): Likewise.
7257         (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
7258         (*call_value_1_rex64_large_vzeroupper): Likewise.
7259         (*sibcall_value_1_rex64_vzeroupper): Likewise.
7260
7261 2010-11-02  Ian Lance Taylor  <iant@google.com>
7262
7263         PR lto/46273
7264         * config.gcc: Revert last patch: set lto_binary_reader.
7265
7266 2010-11-02  Richard Guenther  <rguenther@suse.de>
7267
7268         PR tree-optimization/46149
7269         * tree-ssa-structalias.c (get_constraint_fop_1): Properly handle
7270         non-indirect MEM_REF variants.
7271
7272 2010-11-02  Richard Guenther  <rguenther@suse.de>
7273
7274         PR tree-optimization/46216
7275         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
7276         Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
7277
7278 2010-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7279
7280         * configure.ac (*-*-irix6*): Disable set_have_as_tls.
7281         (*-*-osf*): Likewise.
7282         * configure: Regenerate.
7283
7284 2010-11-02  H.J. Lu  <hongjiu.lu@intel.com>
7285
7286         * config/i386/driver-i386.c (host_detect_local_cpu): Updated
7287         for Intel Core 2 and Core i7.
7288
7289 2010-11-02  Maxim Kuvyrkov  <maxim@codesourcery.com>
7290
7291         Model decoder of Core 2/i7 for multipass scheduling.
7292
7293         * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
7294         New type to hold target-specific data for multipass scheduling.
7295         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7296         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
7297         Core 2/i7.
7298         (core2i7_secondary_decoder_max_insn_size,)
7299         (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
7300         New static variables.
7301         ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
7302         ([_]ix86_first_cycle_multipass_data): New static variable.
7303         (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
7304         Implement targetm.sched hooks.
7305         (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
7306         of ...
7307         (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
7308         Implement new targetm.sched hooks.
7309         (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
7310         targetm.sched hook to install multipass scheduling hooks on demand.
7311
7312         * doc/tm.texi.in: Document new targetm.sched hooks.
7313         * doc/tm.texi: Regenerate.
7314
7315         * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
7316         (first_cycle_multipass_data_t): New typedef.
7317         (struct choice_entry: target_data): New field.
7318         (max_issue): Add first_cycle_insn_p parameter.  Call new target hooks
7319         to allow target model restrictions not represented in DFA.
7320         (choose_ready, schedule_block): Update.
7321         (sched_extend_ready_list, sched_finish_ready_list): Call new target
7322         hooks to initialize target-specific data for multipass scheduling.
7323         * sched-int.h (max_issue): Update declaration.
7324         * sel-sched.c (choose_best_insn): Update.
7325         * target.def (first_cycle_multipass_{begin, issue, backtrack},)
7326         (first_cycle_multipass_{init, fini}): Define and document new
7327         targetm.sched hooks.
7328
7329 2010-11-02  Richard Guenther  <rguenther@suse.de>
7330
7331         PR tree-optimization/46184
7332         * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
7333         input vector type from the reduction operand as well.
7334
7335 2010-11-02  Richard Guenther  <rguenther@suse.de>
7336
7337         PR tree-optimization/46177
7338         * tree-loop-distribution.c (prop_phis): Use
7339         mark_virtual_phi_result_for_renaming.
7340
7341 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7342
7343         PR middle-end/46120
7344         * tree.c (get_binfo_at_offset): Bail out on artificial
7345         fields.  Identify primary bases according to their offsets.
7346
7347 2010-11-02  Martin Jambor  <mjambor@suse.cz>
7348
7349         PR tree-optimization/45875
7350         * gimple-fold.c (get_first_base_binfo_with_virtuals): Removed.
7351         (gimple_get_relevant_ref_binfo): Detect primary bases according to
7352         their field offset.
7353
7354 2010-11-02  Ian Lance Taylor  <iant@google.com>
7355
7356         * doc/install.texi (Configuration): Note in two places that Java
7357         is not enabled by default.
7358
7359 2010-11-02  Ian Lance Taylor  <iant@google.com>
7360
7361         * doc/install.texi (Prerequisites): Remove libelf paragraphs.
7362         (Configuration): Mention --disable-lto.  Remove --with-libelf
7363         paragraph.
7364
7365 2010-11-02  Ian Lance Taylor  <iant@google.com>
7366
7367         * configure.ac: Remove elf_getshdrstrndx test.  Don't substitute
7368         LTO_BINARY_READER or LTO_USE_LIBELF.  Remove LIBELFLIBS and
7369         LIBELFINC.  Remove HAVE_libelf.
7370         * config.gcc: Don't set lto_binary_reader.
7371         * Makefile.in (LIBELFLIBS, LIBELFINC): Remove variables.
7372         (LTO_BINARY_READER, LTO_USE_LIBELF): Remove variables.
7373         (LIBS): Remove $(LIBELFLIBS).
7374         (INCLUDES): Remove $(LIBELFINC).
7375         * configure: Rebuild.
7376         * config.in: Rebuild.
7377
7378 2010-11-02  Nathan Froyd  <froydnj@codesourcery.com>
7379
7380         * config/microblaze/microblaze-protos.h (function_arg): Delete.
7381         (function_arg_advance): Delete.
7382         * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
7383         (FUNCTION_ARG): Delete.
7384         * config/microblaze/microblaze.c (function_arg_advance): Rename to...
7385         (microblaze_function_arg_advance): ...this.  Make static.  Take a
7386         const_tree and a bool.
7387         (function-arg): Rename to...
7388         (microblaze_function_arg): ...this.  Make static.  Take a const_tree
7389         and a bool.
7390         (microblaze_expand_prologue): Call targetm.calls.function_arg and
7391         targetm.calls.function_arg_advance.
7392         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7393
7394 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7395
7396         Merge from FSF "apple/trunk" branch.
7397
7398         * config/rs6000/darwin.opt (mdynamic-no-pic): move from here ...
7399         * config/darwin.opt: .. to here.
7400         (matt-stubs): New option.
7401         * config/i386/darwin.opt: Delete.
7402         * config/i386/i386.h (MACHOPIC_ATT_STUB): New.
7403         (MACHO_DYNAMIC_NO_PIC_P): New.
7404         (MACHOPIC_INDIRECT): New.
7405         (MACHOPIC_PURE): New.
7406         * config/i386/darwin.h (DARWIN_X86) Define to 1.
7407         (MACHOPIC_ATT_STUB): New.
7408         (CC1_SPEC): Do not remove mdynamic-no-pic.
7409         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7410         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7411         (FUNCTION_PROFILER): Correct over-length line.
7412         (SUBTARGET_OVERRIDE_OPTIONS): New.
7413         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7414         * config/i386/i386.c (config/i386/i386.c): Darwin has no PLT.
7415         (legitimate_constant_p): Handle mdynamic-no-pic.
7416         (ix86_legitimate_address_p): Likewise.
7417         (ix86_legitimize_address): Likewise.
7418         (ix86_expand_move): Likewise.
7419         (machopic_output_stub): Update for ATT-style stubs and
7420         mdynamic-no-pic.
7421         * config/darwin-protos.h (machopic_symbol_defined_p): New.
7422         * config/rs6000/darwin.h (DARWIN_PPC): Define to 1.
7423         TARGET_DYNAMIC_NO_PIC: Remove.
7424         Move HOT_TEXT_SECTION_NAME: move to config/darwin.h
7425         UNLIKELY_EXECUTED_TEXT_SECTION_NAME: Likewise.
7426         * config/rs6000/rs6000.c (darwin_rs6000_override_options):
7427         Remove handling of mdynamic-no-pic.
7428         * config/darwin.c (HAVE_lo_sum, gen_macho_high, gen_macho_low):
7429         Define if required.
7430         (machopic_symbol_defined_p): Do not try to use current_function_decl
7431         when generating _get_pc thunks within stubs.
7432         (machopic_indirect_data_reference): Rework for direct conditionals
7433         rather than #ifdefs, add x86 mdynamic-no-pic
7434         (machopic_legitimize_pic_address): Update to use HAVE_lo_sum with a
7435         defined value.
7436         (darwin_override_options): Handle mdynamic-no-pic here.
7437         * config/darwin-sections.def (machopic_lazy_symbol_ptr2_section): New.
7438         (machopic_lazy_symbol_ptr3_section): New.
7439         (machopic_picsymbol_stub2_section): New.
7440         (machopic_picsymbol_stub3_section): New.
7441         * config/darwin.h (DARWIN_X86, DARWIN_PPC): Define to 0.
7442         (MACHOPIC_NL_SYMBOL_PTR_SECTION): New.
7443         (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
7444         Moved common definition from x86 and rs6000.
7445         (MACHO_DYNAMIC_NO_PIC_P): Override value.
7446         (MACHOPIC_INDIRECT): Likewise.
7447         (MACHOPIC_PURE): Likewise.
7448         * config.gcc (x86-darwin-*): Remove darwin.opt.
7449
7450 2010-11-02  Jakub Jelinek  <jakub@redhat.com>
7451
7452         PR debug/46255
7453         * tree-cfg.c (gimple_flow_call_edges_add): Use gsi_last_nondebug_bb
7454         instead of gsi_last_bb.
7455
7456 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7457             Maxim Kuvyrkov  <maxim@codesourcery.com>
7458
7459         * config/i386/i386.c (cpu_names): Add "corei7".
7460         * config/i386/i386.h (enum target_cpu_default): Add entry for Core i7.
7461
7462 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7463             Maxim Kuvyrkov  <maxim@codesourcery.com>
7464
7465         Tune alignment for Intel Core i7
7466
7467         * config/i386.h (TARGET_COREI7{_32,_64,}): New macros.
7468         (enum processor_type): Update comment.  Add entries for Core i7.
7469         * config/i386-c.c (ix86_target_macros_internal): Update.
7470         * config/i386.c (m_COREI7{_32,_64}): New macros.
7471         (m_GENERIC32, m_GENERIC64): Use generic tuning for Core i7.
7472         (processor_target_table): Tune alignment for Core i7.
7473         (ix86_option_override_internal): Use PROCESSOR_COREI7_*.
7474
7475         * doc/invoke.texi: Document "corei7" option value.
7476
7477 2010-11-02  Bernd Schmidt  <bernds@codesourcery.com>
7478             Maxim Kuvyrkov  <maxim@codesourcery.com>
7479             H.J. Lu  <hjl.tools@gmail.com>
7480
7481         Basic support for Intel Core i7
7482
7483         * i386.c (ix86_option_override_internal): Add entry for corei7, use
7484         generic tuning.  Use generic32 when compiling for 32-bit ABI.
7485
7486 2010-11-02  Iain Sandoe  <iains@gcc.gnu.org>
7487
7488         * config/darwin.c (darwin_asm_named_section): Check for __DWARF
7489         sections and call darwin_asm_dwarf_section() to handle them.
7490         (darwin_asm_dwarf_section): New.
7491         (darwin_file_start): Remove code emitting dwarf section symbols.
7492
7493 2010-11-02  Chung-Lin Tang  <cltang@codesourcery.com>
7494
7495         * Makefile.in (LIBGCC2_CFLAGS): Add -fno-stack-protector, to
7496         explicitly disable stack protection when building libgcc.
7497         (CRTSTUFF_CFLAGS): Same, for crtbegin/end.
7498
7499 2010-11-01  Jason Merrill  <jason@redhat.com>
7500
7501         * fold-const.c (fold_indirect_ref_1): Handle folding
7502         POINTER_PLUS_EXPR to ARRAY_REF.
7503
7504 2010-11-01  Kaz Kojima  <kkojima@gcc.gnu.org>
7505
7506         * config/sh/sh.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
7507         (sh_delegitimize_address): New function.
7508
7509 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7510
7511         * config/alpha/alpha.h (WORD_SWITCH_TAKES_ARG): Remove.
7512         * config/cris/cris.h (WORD_SWITCH_TAKES_ARG): Remove.
7513         (CC1_SPEC): Don't handle -target.
7514         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove single-argument
7515         options.
7516         * config/darwin.opt (Zallowable_client, Zbundle_loader,
7517         Zdylib_file, Zexported_symbols_list, Zfn_seg_addr_table_filename,
7518         Zimage_base, Zinit, Zinstall_name, Zmultiply_defined,
7519         Zmultiplydefinedunused, Zseg_addr_table, Zsegs_read_only_addr,
7520         Zsegs_read_write_addr, Zumbrella, Zunexported_symbols_list,
7521         Zweak_reference_mismatches, client_name, compatibility_version,
7522         current_version, dylinker_install_name, pagezero_size,
7523         read_only_relocs, seg1addr, segs_read_only_addr,
7524         segs_read_write_addr, sub_library, sub_umbrella): New.
7525         * config/freebsd-spec.h (BSD_WORD_SWITCH_TAKES_ARG): Remove.
7526         * config/freebsd.h (WORD_SWITCH_TAKES_ARG): Remove.
7527         * config/freebsd.opt: New.
7528         * config/interix.h (WORD_SWITCH_TAKES_ARG): Remove.
7529         * config/mips/iris6.h (WORD_SWITCH_TAKES_ARG): Remove.
7530         * config/rpath.opt: New.
7531         * config.gcc (*-*-freebsd*): Use rpath.opt and freebsd.opt.
7532         (alpha*-dec-osf5.1*, i[34567]86-*-interix3*, mips-sgi-irix6.5*):
7533         Use rpath.opt.
7534
7535 2010-11-01  Joseph Myers  <joseph@codesourcery.com>
7536
7537         * common.opt (R, T, Tbss, Tdata, Ttext, h, z): New.
7538         * defaults.h (DEFAULT_SWITCH_TAKES_ARG, SWITCH_TAKES_ARG): Remove.
7539         (DEFAULT_WORD_SWITCH_TAKES_ARG): Define to 0.
7540         * doc/tm.texi.in (SWITCH_TAKES_ARG): Remove.
7541         (WORD_SWITCH_TAKES_ARG): Don't refer to SWITCH_TAKES_ARG.
7542         Document that options in .opt files do not need to be included.
7543         * doc/tm.texi: Regenerate.
7544         * gcc.c (LINK_COMMAND_SPEC): Don't include %{x}.
7545         * opts-common.c: Update comment on tm.h include.
7546         (decode_cmdline_option): Don't use SWITCH_TAKES_ARG.
7547         * system.h (SWITCH_TAKES_ARG): Poison.
7548         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Remove.
7549         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove options included
7550         in darwin.opt.
7551         (LINK_COMMAND_SPEC_A): Don't include %{x}.
7552         * config/fr30/fr30.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7553         * config/freebsd-spec.h (FBSD_SWITCH_TAKES_ARG): Remove.
7554         * config/freebsd.h (SWITCH_TAKES_ARG): Remove.
7555         * config/frv/frv.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7556         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Don't include %{x}.
7557         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Remove.
7558         * config/interix.h (WORD_SWITCH_TAKES_ARG): Don't handle -T options.
7559         * config/lm32/lm32.h (SWITCH_TAKES_ARG): Remove.
7560         * config/m32r/m32r.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7561         * config/microblaze/microblaze.h (SWITCH_TAKES_ARG): Remove.
7562         * config/mips/mips.h (SWITCH_TAKES_ARG): Remove.
7563         * config/mips/netbsd.h (SWITCH_TAKES_ARG): Remove.
7564         * config/mips/vxworks.h (SWITCH_TAKES_ARG): Remove.
7565         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove.
7566         * config/netbsd-elf.h (SWITCH_TAKES_ARG): Remove.
7567         * config/openbsd.h (SWITCH_TAKES_ARG): Remove.
7568         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Remove.
7569         * config/score/score.h (SWITCH_TAKES_ARG): Remove.
7570         * config/sol2.h (SWITCH_TAKES_ARG): Remove.
7571         * config/sparc/sp-elf.h (SWITCH_TAKES_ARG): Remove.
7572         * config/sparc/sp64-elf.h (SWITCH_TAKES_ARG): Remove.
7573         * config/sparc/sparc.h (ASM_SPEC): Don't include %{R}.
7574         * config/svr4.h (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
7575
7576 2010-11-01  Paul Koning  <ni1d@arrl.net>
7577
7578         * config/pdp11/pdp11.md: Use iterators.
7579         (addqi3, subqi3, iorsi3, xorsi3): Delete.
7580
7581 2010-11-01  Steve Ellcey  <sje@cup.hp.com>
7582
7583         * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): Move under ifdef
7584         GCC_INSN_FLAGS_H.
7585         * libgcov.c (__gcov_indirect_call_profiler): Set
7586         VTABLE_USES_DESCRIPTORS if TARGET_VTABLE_USES_DESCRIPTORS is
7587         defined and use in place of TARGET_VTABLE_USES_DESCRIPTORS.
7588
7589 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7590
7591         PR tree-optimization/46259
7592
7593         Revert:
7594         2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7595         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
7596         build_vector_from_val.
7597
7598 2010-11-01  DJ Delorie  <dj@redhat.com>
7599
7600         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add define for RX610
7601         as well as an assertion.
7602
7603 2010-11-01  Paul Koning  <ni1d@arrl.net>
7604
7605         * config/pdp11/pdp11.c (pdp11_return_in_memory): Return vector and
7606         complex modes in memory.
7607
7608 2010-11-01  Nathan Froyd  <froydnj@codesourcery.com>
7609
7610         * tree.c (build_vector_from_val): Use useless_type_conversion_p.
7611
7612 2010-11-01  Jakub Jelinek  <jakub@redhat.com>
7613
7614         PR target/45250
7615         * var-tracking.c (cfa_base_rtx): Move definition earlier in the file.
7616         (cfa_base_offset): New variable.
7617         (compute_cfa_pointer): Use cfa_base_rtx and cfa_base_offset.
7618         (adjust_mems): Don't do any sp or hfp replacements if cfa_base_rtx
7619         is NULL.
7620         (vt_init_cfa_base): Initialize cfa_base_offset.
7621
7622 2010-11-01  Alan Modra  <amodra@gmail.com>
7623
7624         PR target/46030
7625         * config/rs6000/rs6000.c (struct rs6000_stack): Add reload_completed
7626         and savres_strategy.
7627         (stack_info): New file scope var.
7628         (rs6000_init_machine_status): Init stack_info.
7629         (SAVRES_INLINE_FPRS, SAVRES_INLINE_GPRS,
7630         SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
7631         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): Replace with..
7632         (SAVE_INLINE_FPRS, SAVE_INLINE_GPRS, REST_INLINE_FPRS, REST_INLINE_GPRS,
7633         SAVE_NOINLINE_GPRS_SAVES_LR, SAVE_NOINLINE_FPRS_SAVES_LR
7634         REST_NOINLINE_FPRS_DOESNT_RESTORE_LR): ..this.  Update all refs.
7635         (rs6000_savres_strategy): Rewrite.
7636         (rs6000_stack_info): Use "stack_info" in place of local "info".
7637         Return cached stack info when reload_completed unless ENABLE_CHECKING
7638         in which case confirm newly calculated stack info matches old info.
7639         Delay calculation of lr_save_p, set it for out of line gp save/restore
7640         as well as fp.  Call rs6000_savres_strategy from here..
7641         (rs6000_emit_prologue, rs6000_emit_epilogue): ..rather than here.
7642         (rs6000_output_function_prologue): Use info->savres_strategy to
7643         determine whether fp save/restore externs need to be emitted.
7644
7645 2010-10-31  Jason Merrill  <jason@redhat.com>
7646
7647         * tree.h (EXPR_LOC_OR_HERE): New macro.
7648         * builtins.c (c_strlen): Use it.
7649         * c-decl.c (build_enumerator): Likewise.
7650         * gimplify.c (internal_get_tmp_var): Likewise.
7651         (shortcut_cond_expr): Likewise.
7652         (gimplify_one_sizepos): Likewise.
7653
7654 2010-10-31  Richard Henderson  <rth@redhat.com>
7655
7656         * config/i386/cygming.h (TARGET_SEH): New.
7657         (MAX_STACK_ALIGNMENT): New.  Disable alignment for SEH.
7658         (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
7659         TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
7660         (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
7661         (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
7662         (ASM_DECLARE_FUNCTION_SIZE): New.
7663         * config/i386/i386-protos.h: Update.
7664         * config/i386/i386.c (ix86_option_override_internal): Enable
7665         flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
7666         restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
7667         (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
7668         (ix86_compute_frame_layout): For SEH, disable
7669         use_fast_prologue_epilogue, move frame pointer to the end of
7670         the frame.  Initialize hfp_save_offset.
7671         (ix86_expand_prologue): Honor hfp_save_offset.  Emit blockage
7672         at end of prologue for SEH.
7673         (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
7674         emit blockage at beginning of epilogue.
7675         (ix86_expand_binary_operator): After reload, emit LEA if needed.
7676         (ix86_output_call_insn): New.
7677         * config/i386/i386.h (TARGET_SEH): New.
7678         (struct machine_function): Add member seh.
7679         * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
7680         * config/i386/winnt.c (struct seh_frame_state): New.
7681         (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
7682         seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
7683         seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
7684         i386_pe_start_function, i386_pe_end_function): New.
7685
7686         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
7687         as CFA_STORE in rules 12 and 13.
7688
7689 2010-10-31  Uros Bizjak  <ubizjak@gmail.com>
7690
7691         PR tree-optimization/46142
7692         * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
7693         accommodate third function argument.
7694
7695 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7696
7697         * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
7698
7699 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7700
7701         * fold-const.c (build_zero_vector): Use build_vector_from_val.
7702         * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
7703         (get_initial_def_for_reduction): Likewise.
7704         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7705         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
7706         * tree.c (build_one_cst): Likewise.
7707         (build_vector_from_val): Use types_compatible_p for assert.
7708
7709 2010-10-30  Nathan Froyd  <froydnj@codesourcery.com>
7710
7711         * emit-rtl.c (mark_used_flags): New function.
7712         (set_used_flags, reset_used_flags): Call it.
7713
7714 2010-10-30  Uros Bizjak  <ubizjak@gmail.com>
7715
7716         PR middle-end/44569
7717         * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
7718         determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
7719
7720 2010-10-30  H.J. Lu  <hongjiu.lu@intel.com>
7721
7722         PR target/46195
7723         * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
7724         (ix86_compat_aligned_value_p): This.
7725         (ix86_old_function_arg_boundary): Renamed to ...
7726         (ix86_compat_function_arg_boundary): This.  Updated.
7727         (ix86_contains_aligned_value_p): New.
7728         (ix86_function_arg_boundary): Align long double parameters on
7729         stack to 4byte in 32bit.
7730
7731 2010-10-30  Nicola Pero  <nicola.pero@meta-innovation.com>
7732
7733         Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
7734         * c-parser.c (c_parser_objc_at_property_declaration): Removed
7735         parsing of RID_COPIES and RID_IVAR.  Updated call to
7736         objc_add_property_declaration.
7737         * c-typecheck.c (build_component_ref): Call
7738         objc_maybe_build_component_ref instead of objc_build_setter_call.
7739         Use objc_is_property_ref to improve Objective-C checks.
7740         (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
7741         of objc_build_getter_call.
7742
7743 2010-10-29  Paul Koning  <ni1d@arrl.net>
7744
7745         * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7746         REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
7747         REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
7748         (REG_OK_STRICT): Move description.
7749
7750 2010-10-29  Paul Koning  <ni1d@arrl.net>
7751
7752         * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
7753
7754 2010-10-29  Paul Koning  <ni1d@arrl.net>
7755
7756         * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
7757
7758 2010-10-29  Paul Koning  <ni1d@arrl.net>
7759
7760         PR/41822
7761         * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
7762
7763 2010-10-29  Richard Henderson  <rth@redhat.com>
7764
7765         PR rtl-opt/46226
7766         * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
7767         for asm goto.
7768
7769 2010-10-29  Paul Koning  <ni1d@arrl.net>
7770
7771         * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
7772         register to register move.
7773
7774 2010-10-29  Paul Koning  <ni1d@arrl.net>
7775
7776         * config/pdp11/pdp11.c (print_operand_address): Correct handling
7777         of integer constant addresses, delete vax-only logic.
7778
7779 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
7780
7781         * config/picochip/picochip.c (picochip_is_short_branch): Simplify
7782         a conditional expression.
7783
7784 2010-10-29  Paul Koning  <ni1d@arrl.net>
7785
7786         * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
7787         instruction encoding.
7788
7789 2010-10-29  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
7790             Andrew Pinski  <pinskia@gmail.com>
7791
7792         * tree.h (build_vector_from_val): Declare.
7793         * tree.c (build_vector_from_val): New function.
7794         * c-typeck.c (build_binary_op): Handle vector shifting.
7795         * doc/extend.texi: Description of the vector shifting operation.
7796
7797 2010-10-29  Paul Koning  <pkoning@equallogic.com>
7798
7799         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
7800         pdp11_secondary_memory_needed): Declare.
7801         * config/pdp11/predicates.md (float_operand): New predicate.
7802         * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
7803         (cbranchdf4, movdf): Change predicate.
7804         (movsf): Handle FPU register case.
7805         (truncdfsf2, extendsfdf2): Add FPU register case.
7806         * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
7807         TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
7808         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
7809         (pdp11_register_move_cost): Update cost matrix.
7810         (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
7811         pdp11_preferred_output_reload_class, pdp11_secondary_reload,
7812         pdp11_secondary_memory_needed): New function.
7813         (pdp11_return_in_memory): Add other float types.
7814         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
7815         (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
7816         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
7817         REGISTER_MOVE_COST): Delete.
7818         (BASE_RETURN_VALUE_REG): Add other float types.
7819
7820 2010-10-29  Nick Clifton  <nickc@redhat.com>
7821
7822         * doc/invoke.texi: Document -mam34 and -mtune options.
7823         * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
7824         (mn10300_tune_cpu): New variable.
7825         (mn10300_handle_option): Handle -mam34 and -mtune options.
7826         (mn10300_option_override): Convert tune string into tune cpu variable.
7827         (mn10300_legitimate_constant_p): Delete unused local variable.
7828         (is_load_insn): New function.
7829         (is_store_insn): New function.
7830         (mn10300_adjust_schedule_cost): New function.
7831         (TARGET_SCHED_ADJUST_COST): Define.
7832         * config/mn10300/mn10300.opt (mam34): New option.
7833         (mtune): New option.
7834         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
7835         (enum processor_type): Add AM34.
7836         (TARGET_AM34): Define.
7837         * config/mn10300/mn10300.md (attr cpu): Add am34.
7838         Add pipeline description.
7839         (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
7840         Remove unneeded alternatives.  Add timing attribute.
7841         (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
7842         mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
7843         mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
7844         mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
7845         mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
7846         bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
7847         bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
7848         float_conditional_branch, jump, indirect_jump, tablejump,
7849         call_internal, call_value_internal, zero_extendqisi2_am33,
7850         zero_extendqisi2_mn10300, zero_extendhisi2_am33,
7851         zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
7852         extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
7853         mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
7854         mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
7855         addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
7856         fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
7857         return_internal_regs, store_movm, return, call_next_insn):
7858         Add timing attribute.
7859         (am33_subsi3): Add missing clobber of CC_REG.
7860         (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
7861         (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
7862         subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
7863         extendqisi2): Fix predicates.
7864         (call_internal, call_internal_value): Separate alternatives.
7865         * config/mn10300/t-mn10300: Add AM34 multilib.
7866
7867 2010-10-29  Paolo Bonzini  <bonzini@gnu.org>
7868
7869         * config/sh/sh.c (sh_promote_function_mode): Use
7870         default_promote_function_mode if !sh_promote_prototypes.
7871
7872 2010-10-28  Paolo Bonzini  <bonzini@gnu.org>
7873
7874         * recog.c (split_all_insns): Remove dead code.
7875
7876 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7877
7878         * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7879
7880 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7881
7882         * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
7883         (FUNCTION_ARG_ADVANCE): Delete.
7884         * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
7885         functions.
7886         (cris_function_incoming_arg, cris_function_arg_advance): New functions.
7887         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
7888         (TARGET_FUNCTION_ARG_ADVANCE): Define.
7889
7890 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7891
7892         * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
7893         * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7894         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7895         Take a const_tree and a bool.
7896         (mcore_function_arg_advance): New function.
7897         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7898
7899 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7900
7901         * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
7902         * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7903         * config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
7904         Take a const_tree and a bool.
7905         (mcore_function_arg_advance): New function.
7906         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7907
7908 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7909
7910         * config/h8300/h8300-protos.h (function_arg): Delete.
7911         * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7912         * config/h8300/h8300.c (function_arg): Rename to...
7913         (h8300_function_arg): ...this.  Make static.  Take a const_tree and
7914         a bool.
7915         (h8300_function_arg_advance): New function.
7916         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7917
7918 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7919
7920         * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
7921         to...
7922         * config/arc/arc.c (arc_function_arg): ...here and...
7923         (arc_function_arg_advance): ...here.  New functions.
7924         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7925
7926 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7927
7928         * config/crx/crx-protos.h (crx_function_arg): Delete.
7929         (crx_function_arg_advance): Delete.
7930         * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7931         * config/crx/crx.c (crx_function_arg): Make static.  Take a
7932         const_tree and a bool.
7933         (crx_function_arg_advance): Make static.  Take a const_tree and a bool.
7934         (enough_regs_for_param): Take a const_tree.
7935         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7936
7937 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7938
7939         * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
7940         (m68hc11_function_arg_advance): Delete.
7941         * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
7942         (FUNCTION_ARG_ADVANCE): Delete.
7943         * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
7944         Take a const_tree and a bool.
7945         (m68hc11_function_arg_advance): Likewise.
7946         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7947
7948 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7949
7950         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
7951         (xstormy16_function_arg_advance): Delete.
7952         * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
7953         (FUNCTION_ARG_ADVANCE): Delete.
7954         * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
7955         Take a const_tree and a bool.
7956         (xstormy16_function_arg_advance): Likewise.  Return void, updating
7957         the CUM parameter instead.
7958         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7959
7960 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7961
7962         * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
7963         * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7964         (MOXIE_FUNCTION_ARG_SIZE): Move to...
7965         * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
7966         (moxie_function_arg): Make static.  Take a const_tree and a bool.
7967         (moxie_function_arg_advance): New function.
7968         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7969
7970 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7971
7972         * config/mn10300/mn10300-protos.h (function_arg): Delete.
7973         * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
7974         (FUNCTION_ARG_ADVANCE): Delete.
7975         * config/mn10300/mn10300.c (function_arg): Rename to...
7976         (mn10300_function_arg): ...this.  Make static.  Take a const_tree
7977         and a bool.
7978         (mn10300_function_arg_advance): New function.
7979         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7980
7981 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7982
7983         * config/iq2000/iq2000-protos.h (function_arg): Delete.
7984         (function_arg_advance): Delete.
7985         * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7986         * config/iq2000/iq2000.c (function_arg): Rename to...
7987         (iq2000_function_arg): ...this.  Make static.  Take a const_tree and
7988         a bool.
7989         (function_arg_advance): Rename to...
7990         (iq2000_function_arg_advance): ...this.  Make static.  Take a
7991         const_tree and a bool.
7992         (iq2000_expand_prologue): Call iq2000_function_arg_advance and
7993         iq2000_function_arg.
7994         (iq2000_pass_by_reference): Call iq2000_function_arg).
7995         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7996
7997 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
7998
7999         * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
8000         * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8001         * config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
8002         const_tree.
8003         (fr30_function_arg): New function.
8004         (fr30_function_arg_advance): New function.
8005         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
8006
8007 2010-10-28  Nathan Froyd  <froydnj@codesourcery.com>
8008
8009         * config/frv/frv-protos.h (frv_function_arg): Delete.
8010         (frv_function_arg_advance): Delete.
8011         * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
8012         * config/frv/frv.c (frv_function_arg): Rename to...
8013         (frv_function_arg_1): Make static.  Take const_tree and bool arguments.
8014         (frv_function_arg, frv_function_incoming_arg): New functions.
8015         (frv_function_arg_advance): Make static.  Take a const_tree and a bool.
8016         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8017         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8018
8019 2010-10-28  Uros Bizjak  <ubizjak@gmail.com>
8020
8021         PR target/46153
8022         * config/i386/sse.md (sse_movhlps_exp): Use destination
8023         returned from ix86_fixup_binary_operands to expand insn.
8024         (sse_movlhps_exp): Ditto.
8025         (sse_loadhps_exp): Ditto.
8026         (sse_loadlps_exp): Ditto.
8027         (sse2_loadhpd_exp): Ditto.
8028         (sse2_loadlpd_exp): Ditto.
8029
8030 2010-10-28  Andrew Stubbs  <ams@codesourcery.com>
8031
8032         * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
8033         constants in thumb2.
8034
8035 2010-10-28  Eric Botcazou  <ebotcazou@adacore.com>
8036
8037         * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
8038         arithmetics in masking operations.
8039         (contains_muldiv): Likewise.
8040         (try_combine): Likewise.
8041         (find_split_point): Likewise.
8042         (combine_simplify_rtx): Likewise.
8043         (simplify_if_then_else): Likewise.
8044         (simplify_set): Likewise.
8045         (expand_compound_operation): Likewise.
8046         (expand_field_assignment): Likewise.
8047         (make_extraction): Likewise.
8048         (extract_left_shift): Likewise.
8049         (make_compound_operation): Likewise.
8050         (force_to_mode): Likewise.
8051         (make_field_assignment): Likewise.
8052         (reg_nonzero_bits_for_combine): Likewise.
8053         (simplify_shift_const_1): Likewise.
8054         (simplify_comparison): Likewise.
8055
8056 2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>
8057
8058         * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
8059         (ia64_function_arg_advance): Delete.
8060         * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
8061         (FUNCTION_ARG_ADVANCE): Delete.
8062         * config/ia64/ia64.c (ia64_function_arg): Rename to...
8063         (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
8064         bool arguments.
8065         (ia64_function_arg, ia64_function_incoming_arg): New functions.
8066         (ia64_function_arg_advance): Make static.  Take a const_tree and
8067         a bool.
8068         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
8069         (TARGET_FUNCTION_ARG_ADVANCE): Define.
8070
8071 2010-10-27  Steve Ellcey  <sje@cup.hp.com>
8072
8073         * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
8074         (TARGET_GET_RAW_ARG_MODE): New.
8075         * doc/tm.texi: Regenerate.
8076         * target.def (get_raw_result_mode): New.
8077         (get_raw_arg_mode): New.
8078         * targhooks.c (default_get_reg_raw_mode): New.
8079         * targhooks.h (default_get_reg_raw_mode): New.
8080         * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
8081         (apply_result_size): Ditto.
8082         * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
8083         (TARGET_GET_RAW_RESULT_MODE): Define.
8084         (TARGET_GET_RAW_ARG_MODE): Ditto.
8085
8086 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8087
8088         * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
8089         for newer Solaris 10 release.
8090         (sparc_fallback_frame_state): Likewise.
8091
8092 2010-10-27  Jason Merrill  <jason@redhat.com>
8093
8094         * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
8095         variables sooner.
8096
8097 2010-10-27  Jie Zhang  <jie@codesourcery.com>
8098             Maxim Kuvyrkov  <maxim@codesourcery.com>
8099
8100         * haifa-sched.c (ISSUE_POINTS): Remove.
8101         (max_issue): Don't issue more than issue_rate instructions.
8102
8103 2010-10-27  Ian Lance Taylor  <iant@google.com>
8104
8105         PR target/46197
8106         * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
8107         (split_stack_return): Replace UNSPEC_STACK_CHECK with
8108         UNSPECV_SPLIT_STACK_RETURN.
8109
8110 2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>
8111
8112         * config/i386/i386-protos.h (init_cumulative_args): Add an int.
8113
8114         * config/i386/i386.c (block_info): New.
8115         (BLOCK_INFO): Likewise.
8116         (call_avx256_state): Likewise.
8117         (check_avx256_stores): Likewise.
8118         (move_or_delete_vzeroupper_2): Likewise.
8119         (move_or_delete_vzeroupper_1): Likewise.
8120         (move_or_delete_vzeroupper): Likewise.
8121         (use_avx256_p): Likewise.
8122         (function_pass_avx256_p): Likewise.
8123         (flag_opts): Add -mvzeroupper.
8124         (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
8125         default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
8126         is disabled.
8127         (ix86_function_ok_for_sibcall): Disable sibcall if we need to
8128         generate vzeroupper.
8129         (init_cumulative_args): Add an int to indicate caller.  Set
8130         use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
8131         based on return type.
8132         (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
8133         caller_pass_avx256_p based on argument type.
8134         (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
8135         is used, but not returned by caller.
8136         (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
8137         (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
8138         is used.
8139         (ix86_minimum_alignment): Likewise.
8140         (ix86_expand_special_args_builtin): Set target to
8141         GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
8142         (ix86_reorg): Run the vzeroupper optimization if needed.
8143
8144         * config/i386/i386.h (ix86_args): Add caller.
8145         (INIT_CUMULATIVE_ARGS): Updated.
8146         (machine_function): Add use_vzeroupper_p, use_avx256_p,
8147         caller_pass_avx256_p, caller_return_avx256_p,
8148         callee_pass_avx256_p and callee_return_avx256_p.
8149
8150         * config/i386/i386.opt (-mvzeroupper): New.
8151
8152         * config/i386/predicates.md (vzeroupper_operation): Removed.
8153
8154         * config/i386/sse.md (avx_vzeroupper): Removed.
8155         (*avx_vzeroupper): Removed.
8156         (avx_vzeroupper): New.
8157
8158         * doc/invoke.texi: Document -mvzeroupper.
8159
8160 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8161
8162         * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
8163         * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
8164         * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
8165
8166 2010-10-27  Eric Botcazou  <ebotcazou@adacore.com>
8167             Olivier Hainque  <hainque@adacore.com>
8168
8169         * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
8170         of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
8171         fs->signal_frame instead.
8172
8173 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8174
8175         * c-parser.c (cp_parser_objc_at_property_declaration): Removed
8176         parsing of RID_COPIES and RID_IVAR.
8177
8178 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8179
8180         * c-parser.c (c_parser_objc_at_property_declaration): Recognize
8181         RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
8182         Do not use objc_set_property_attr, but use local variables
8183         instead.  Detect repeated usage of setter, getter and ivar
8184         attributes.  Improved error processing when a setter name does not
8185         end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
8186         that the token is a keyword.  Updated call to
8187         objc_add_property_declaration.
8188
8189 2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>
8190
8191         * c-parser.c (c_parser_objc_at_property): Renamed to
8192         c_parser_objc_at_property_declaration.  Updated calls to
8193         objc_add_property_variable, now objc_add_property_declaration.
8194         Code rewritten to be much more robust in recovering from syntax
8195         errors.  Added comments.
8196         (c_parser_objc_property_attrlist): Removed.
8197         (c_parser_external_declaration): Updated calls to
8198         c_parser_objc_at_property, now
8199         c_parser_objc_at_property_declaration.
8200         (c_parser_objc_methodprotolist): Same change.
8201
8202 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8203
8204         * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
8205
8206 2010-10-26  Jan Hubicka  <jh@suse.cz>
8207
8208         * ipa.c (process_references): Enqueue all referenced nodes;
8209         mark as reachable only non-external nodes.
8210         (cgraph_remove_unreachable_nodes): All referenced nodes should
8211         be enqueued; remove bogues node->needed check.
8212
8213 2010-10-26  Jan Hubicka  <jh@suse.cz>
8214
8215         * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
8216         to represent OMP.
8217
8218 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8219
8220         * config/i386/i386.md (split_stack_return): Replace
8221         unspec_volatile with unspec.
8222
8223 2010-10-26  Jonathan Wakely  <jwakely.gcc@gmail.com>
8224
8225         * doc/install.texi: Fix typo in --with-sysroot description.
8226
8227 2010-10-26  Jan Hubicka  <jh@suse.cz>
8228
8229         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
8230         Use info provided by linker plugin.
8231
8232 2010-10-26  Jason Merrill  <jason@redhat.com>
8233
8234         * varasm.c (constructor_static_from_elts_p): Don't require a
8235         CONSTRUCTOR to have elements to be suitable for static
8236         initialization.  Allow ARRAY_TYPE as well.
8237
8238 2010-10-26  Jan Hubicka  <jh@suse.cz>
8239
8240         PR middle-end/45736
8241         * cgraph.c (cgraph_set_readonly_flag): Rename to...
8242         (cgraph_set_const_flags) ... this one; get also looping argument;
8243         clear constructor/destructor flags.
8244         (cgraph_set_pure_flag): Likewise.
8245         (cgraph_set_looping_const_or_pure_flag): Remove.
8246         (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
8247         to optimize away static ctors/dtors; it does not work on inline clones;
8248         external functions can always be rmeoved.
8249         (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
8250         inline clones; in LTO external functions always can go.
8251         (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
8252         (cgraph_mark_address_taken_node): Assert that we are not taking
8253         address of inline clone.
8254         (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
8255         external functions.
8256         * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
8257         address taken.
8258         (ipcp_initialize_node_lattices): Only local functions can be
8259         handled without cloning.
8260         * cgraph.h (cgraph_set_readonly_flag,
8261         cgraph_set_looping_const_or_pure_flag): Remove.
8262         (cgraph_set_const_flag): Declare.
8263         (cgraph_set_pure_flag): Update.
8264         * ipa-pure-const (propagate_pure_const, local_pure_const): Update
8265         flags setting code.
8266         * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
8267         look at inline clones; fix handling of external definitions.
8268         (cgraph_postorder): Do not look at inline clones in the first pass.
8269         (function_and_variable_visibility): Drop constructors/destructor
8270         flags at pure and const functions.
8271         * tree-profile.c (tree_profiling): Update.
8272         * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
8273         address taken; external functions do not account to whole program size.
8274         (cgraph_decide_inlining): Likewise; do not try to inline
8275         functions already inlined.
8276
8277 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8278
8279         * doc/invoke.texi: Improve documentation of
8280         -fstrict-volatile-bitfields.
8281
8282 2010-10-26  Ira Rosen  <irar@il.ibm.com>
8283
8284         PR tree-optimization/46167
8285         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
8286         is basic block for the statement.
8287
8288 2010-10-26  Paul Koning  <ni1d@arrl.net>
8289
8290         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
8291         current definition of struct_real_format.
8292
8293 2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>
8294
8295         PR target/44948
8296         * config/i386/i386.c (ix86_old_function_arg_boundary): New.
8297         (ix86_function_arg_boundary): Always align parameters on stack
8298         in 64bit and align parameters with alignment >= 16byte on stack
8299         in 32bit.  Warn alignment change.
8300
8301 2010-10-26  Ian Lance Taylor  <iant@google.com>
8302
8303         PR middle-end/45687
8304         * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
8305         offset.
8306
8307 2010-10-25  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
8308
8309         Implement opaque-enum-specifiesr for C++0x
8310         * tree.h (ENUM_IS_OPAQUE): New.
8311         * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
8312
8313 2010-10-26  Jie Zhang  <jie@codesourcery.com>
8314
8315         * stor-layout.c (layout_decl): Use the field's type to
8316         determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
8317         * config/arm/arm.c (arm_override_options): Default to
8318         -fstrict-volatile-bitfields.
8319
8320 2010-10-25  Paul Koning  <ni1d@arrl.net>
8321
8322         * config/pdp11/pdp11.md: Add define_constants for register
8323         numbers, branch offset limits.
8324         * config/pdp11/pdp11.c: Use named constants instead of numbers.
8325         * config/pdp11.pdp11.h: Ditto.
8326
8327 2010-10-25  Eric Botcazou  <ebotcazou@adacore.com>
8328
8329         * configure.ac: Use $cpu_type instead of $target to define the nop.
8330         * configure: Regenerate.
8331
8332 2010-10-25  Jie Zhang  <jie@codesourcery.com>
8333
8334         * combine.c (try_combine): If insns need to be kept around, check that
8335         they can be copied in the merged instruction.
8336
8337 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8338
8339         * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
8340         has been modified.
8341         (convert_regs_2): Likewise.  Adjust calls to convert_regs_1.
8342         (convert_regs): Adjust calls to convert_regs_2.  Clean up the CFG if
8343         it has been modified.
8344
8345 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8346
8347         * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
8348
8349 2010-10-24  Paul Koning  <ni1d@arrl.net>
8350
8351         * config/pdp11/pdp11.md: Change length attribute to be in bytes.
8352         * config/pdp11/pdp11.c (output_jump): Ditto.
8353
8354 2010-10-24  Ian Lance Taylor  <iant@google.com>
8355
8356         * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
8357
8358 2010-10-24  Eric Botcazou  <ebotcazou@adacore.com>
8359
8360         * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
8361         least one insn with a locus corresponding to an edge's goto_locus,
8362         disregard non-fallthru edges to the exit block and merge the blocks
8363         created for the same goto_locus.
8364
8365 2010-10-23  Joseph Myers  <joseph@codesourcery.com>
8366
8367         * gcc.c (n_switches_alloc_debug_check): New.
8368         (set_option_handlers): New.
8369         (process_command): Use set_option_handlers.
8370         (do_self_spec): Pass spec-generated options through option handlers.
8371         (main): Also save and restore n_switches_alloc when swapping
8372         switch arrays.
8373
8374 2010-10-23  Richard Henderson  <rth@redhat.com>
8375
8376         PR target/46144
8377         * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
8378         (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
8379         Honor matching operands when splitting to XOR.
8380
8381 2010-10-23  Ian Lance Taylor  <iant@google.com>
8382
8383         * tree-vrp.c (extract_range_from_binary_expr): If
8384         flag_non_call_exceptions don't eliminate division by zero.
8385         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
8386
8387 2010-10-23  Nathan Froyd  <froydnj@codesourcery.com>
8388
8389         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
8390         __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
8391         __ORDER_PDP_ENDIAN__.
8392         * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8393         (struct DWstruct): Define based on __BYTE_ORDER__.
8394         * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8395         (struct INTstruct): Define based on __BYTE_ORDER__.
8396         * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8397         (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
8398         * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
8399         * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8400         * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8401         * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8402         * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8403         * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8404         * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8405         * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8406         * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8407         * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8408         * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8409         * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8410         * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8411         * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8412         * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8413         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8414         * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
8415         * doc/tm.texi: Regenerate.
8416         * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
8417         (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
8418
8419 2010-10-23  Jie Zhang  <jie@codesourcery.com>
8420
8421         PR rtl-optimization/37360
8422         * config/mips/mips.c (cached_can_issue_more): New local variable.
8423         (mips_sched_reorder_1): New.
8424         (mips_sched_reorder): Use mips_sched_reorder_1.
8425         (mips_sched_reorder2): New.
8426         (mips_variable_issue): Set cached_can_issue_more.
8427         (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
8428         instead of mips_sched_reorder.
8429
8430         Revert:
8431         2008-09-09  Andrey Belevantsev  <abel@ispras.ru>
8432         PR rtl-optimization/37360
8433         * haifa-sched.c (max_issue): Do not assert that we never issue more
8434         insns than issue_rate.  Add comment.
8435
8436 2010-10-22  Eric Botcazou  <ebotcazou@adacore.com>
8437
8438         * gimplify.c (gimplify_variable_sized_compare): Preserve the source
8439         location info of the expression.
8440
8441 2010-10-22  DJ Delorie  <dj@redhat.com>
8442
8443         * doc/extend.texi (Named Address Spaces): Document the M32C named
8444         address space.
8445
8446         * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
8447         __far address space.
8448         * config/m32c/m32c.h (ADDR_SPACE_FAR): New.  Add support for
8449         "__far" address space for R8C and M16C processor variants.
8450         * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
8451         (far_addr_space_p): New.
8452         (encode_pattern_1): Add sign and zero extend support.
8453         (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
8454         (m32c_extra_constraint_p2): Add SF constraint.
8455         (m32c_legitimate_address_p): Support __far addresses.
8456         (m32c_addr_space_pointer_mode): New.
8457         (m32c_addr_space_address_mode): New.
8458         (m32c_addr_space_legitimate_address_p): New.
8459         (m32c_addr_space_legitimize_address): New.
8460         (m32c_addr_space_subset_p): New.
8461         (m32c_addr_space_convert): New.
8462         (conversions): Add __far operand patterns.
8463         (m32c_prepare_move): Force constants into registers for __far moves.
8464         (m32c_split_move): __far moves are always split.
8465         * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
8466         * config/m32c/mov.md (mov<mode>_far_op1): New.
8467         (mov<mode>_far_op2): New.
8468         (movqi_op): Add __far (SF) support.
8469         (movhi_op): Likewise.
8470         (movsi_splittable): Split A1A0 also.
8471
8472 2010-10-22  Artjoms Sinkarovs  <artyom.shinakroff@gmail.com>
8473             Andrew Pinski  <pinskia@gmail.com>
8474
8475         * c-typeck.c (build_array_ref): Handle subscripting of vectors.
8476         * doc/extend.texi: New paragraph
8477
8478 2010-10-22  Paul Koning  <ni1d@arrl.net>
8479
8480         * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
8481
8482 2010-10-22  DJ Delorie  <dj@redhat.com>
8483
8484         * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
8485
8486 2010-10-22  Paul Koning  <ni1d@arrl.net>
8487
8488         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
8489
8490 2010-10-22  Richard Henderson  <rth@redhat.com>
8491
8492         * config/i386/i386.c (ix86_builtin_vectorized_function): Add
8493         cases for __builtin_fma and __builtin_fmaf.
8494
8495 2010-10-22  Richard Henderson  <rth@redhat.com>
8496
8497         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
8498         NEG+USE for vectors as well.
8499         * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
8500         and splitter.
8501
8502 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8503
8504         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
8505         SWITCH_CURTAILS_COMPILATION): Remove.
8506         * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
8507         * doc/tm.texi: Regenerate.
8508         * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
8509
8510 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8511
8512         * config/i386/bdver1.md: New file.
8513         * config/i386/i386.md (include "bdver1.md"): Invoke the
8514         pipeline description for bdver1.
8515         (x86_sahf_1): Add "bdver1_decode" attribute.
8516         (*cmpfp_i_mixed): Likewise.
8517         (*cmpfp_i_sse): Likewise.
8518         (*cmpfp_i_i387): Likewise.
8519         (*cmpfp_iu_mixed): Likewise.
8520         (*cmpfp_iu_sse): Likewise.
8521         (*cmpfp_iu_387): Likewise.
8522         (*swap<mode>,*swap<mode>_1): Likewise.
8523         (fixuns_trunc<mode>hi2): Likewise.
8524         (fix_trunc<mode>si_sse): Likewise.
8525         (x86_fnstcw_1): Likewise.
8526         (x86_fldcw_1): Likewise.
8527         (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
8528         (*floatsi<mode>2_vector_mixed): Likewise.
8529         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
8530         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
8531         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
8532         (*floatsi<mode>2_vector_sse_with_temp): Likewise.
8533         (*floatsi<mode>2_vector_sse): Likewise.
8534         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
8535         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
8536         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
8537         (*mul<mode>3_1): Likewise.
8538         (*mulsi3_1_zext): Likewise.
8539         (*mulhi3_1): Likewise.
8540         (*mulqi3_1): Likewise.
8541         (*<u>mul<mode><dwi>3_1): Likewise.
8542         (*<u>mulqihi3_1): Likewise.
8543         (*<s>muldi3_highpart_1): Likewise.
8544         (*<s>mulsi3_highpart_1): Likewise.
8545         (*<s>mulsi3_highpart_zext): Likewise.
8546         (x86_64_shld): Likewise.
8547         (x86_shld): Likewise.
8548         (x86_64_shrd): Likewise.
8549         (x86_shrd): Likewise.
8550         (sqrtxf2): Likewise.
8551         (sqrt_extend<mode>xf2_i387): Likewise.
8552         (*sqrt<mode>2_sse): Likewise.
8553         * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
8554         (sse_cvtsi2ssq): Likewise.
8555         (sse_cvtss2si): Likewise.
8556         (sse_cvtss2si_2): Likewise.
8557         (sse_cvtss2siq): Likewise.
8558         (sse_cvtss2siq_2): Likewise.
8559         (sse_cvttss2si): Likewise.
8560         (sse_cvttss2siq): Likewise.
8561         (sse2_cvtpi2pd): Likewise.
8562         (sse2_cvttpd2pi): Likewise.
8563         (sse2_cvtsi2sd): Likewise.
8564         (sse2_cvtsi2sdq): Likewise.
8565         (sse2_cvtsd2si): Likewise.
8566         (sse2_cvtsd2si_2): Likewise.
8567         (sse2_cvtsd2siq): Likewise.
8568         (sse2_cvtsd2siq_2): Likewise.
8569         (sse2_cvttsd2si): Likewise.
8570         (sse2_cvttsd2siq): Likewise.
8571         (*sse2_cvtpd2dq): Likewise.
8572         (*sse2_cvttpd2dq): Likewise.
8573         (sse2_cvtsd2ss): Likewise.
8574         (sse2_cvtss2sd): Likewise.
8575         (*sse2_cvtpd2ps): Likewise.
8576         (sse2_cvtps2pd): Likewise.
8577
8578 2010-10-22  Richard Guenther  <rguenther@suse.de>
8579
8580         PR middle-end/46137
8581         * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
8582         remove the virtual operands if they are not needed.
8583
8584 2010-10-22  Changpeng Fang  <changpeng.fang@amd.com>
8585
8586         * config/i386/i386.c (processor_costs bdver1_cost): Update
8587         insn costs and architectural parameters for bdver1.
8588
8589 2010-10-22  Richard Guenther  <rguenther@suse.de>
8590
8591         * gimple.h (gimple_register_canonical_type): Declare.
8592         * gimple.c (gimple_canonical_types): New global hashtable.
8593         (struct gimple_type_leader_entry_s): New type.
8594         (gimple_type_leader): New global cache.
8595         (gimple_lookup_type_leader): New function.
8596         (gtc_visit): Query the proper cache.
8597         (gimple_types_compatible_p): Likewise.
8598         (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
8599         (gimple_canonical_type_eq): New function.
8600         (gimple_register_canonical_type): Likewise.
8601         (print_gimple_types_stats): Adjust for gimple_canonical_types.
8602         (free_gimple_type_tables): Likewise.  Free gimple_type_leader.
8603         * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
8604         gimple_types_compatible_p for LTO.
8605
8606 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
8607
8608         PR target/46098
8609         * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8610         Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8611         (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8612         (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8613         (<sse>_movu<ssemodesuffix>): New expander.
8614         (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8615         (avx_movdqu<avxmodesuffix>): New expander.
8616         (*sse2_movdqu): Rename from sse2_movdqu.
8617         (sse2_movdqu): New expander.
8618
8619 2010-10-22  Richard Guenther  <rguenther@suse.de>
8620
8621         PR tree-optimization/45720
8622         * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
8623         Handle negative step.
8624         (vect_enhance_data_refs_alignment): Likewise.
8625         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
8626         (vect_create_cond_for_align_checks): Likewise.
8627         (vect_create_cond_for_alias_checks): Likewise.
8628
8629 2010-10-22  Ira Rosen  <irar@il.ibm.com>
8630
8631         PR tree-optimization/46126
8632         * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
8633         vectorizable_shift in case of basic block vectorization.
8634
8635 2010-10-22  Joseph Myers  <joseph@codesourcery.com>
8636
8637         * target.h (enum opt_levels, struct default_options): New.
8638         * target.def (handle_ofast): Remove hook.
8639         (target_option.optimization): Change to
8640         target_option.optimization_table.
8641         * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
8642         TARGET_OPTION_OPTIMIZATION_TABLE.
8643         (CAN_DEBUG_WITHOUT_FP): Remove.
8644         * doc/tm.texi: Regenerate.
8645         * opts.c (maybe_default_option, maybe_default_options,
8646         default_options_table): New.
8647         (default_options_optimization): Take extra parameters.  Don't
8648         assert that global_options and global_options_set are in use.  Use
8649         maybe_default_options.
8650         (decode_options): Pass extra parameters to
8651         default_options_optimization.
8652         * common.opt (falign-loops): Use value 0 with Var.
8653         (frerun-cse-after-loop, ftree-ter): Remove Init.
8654         * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
8655         TARGET_OPTION_OPTIMIZATION): Remove.
8656         * targhooks.c (empty_optimization_table): New.
8657         * targhooks.h (empty_optimization_table): Declare.
8658         * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
8659         * config/alpha/alpha.c (alpha_option_optimization_table,
8660         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8661         * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
8662         * config/arm/arm.c (arm_option_optimization: Change to
8663         arm_option_optimization_table.
8664         (TARGET_OPTION_OPTIMIZATION): Change to
8665         TARGET_OPTION_OPTIMIZATION_TABLE.
8666         * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
8667         * config/avr/avr.c (avr_option_optimization_table,
8668         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8669         * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
8670         * config/cris/cris.c (cris_option_optimization): Change to
8671         cris_option_optimization_table.
8672         (TARGET_OPTION_OPTIMIZATION): Change to
8673         TARGET_OPTION_OPTIMIZATION_TABLE.
8674         * config/crx/crx.c (crx_option_optimization): Change to
8675         crx_option_optimization_table.
8676         (TARGET_OPTION_OPTIMIZATION): Change to
8677         TARGET_OPTION_OPTIMIZATION_TABLE.
8678         * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8679         * config/fr30/fr30.c (fr30_option_optimization_table,
8680         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8681         * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
8682         * config/frv/frv.c (frv_option_optimization_table,
8683         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8684         * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
8685         * config/h8300/h8300.c (h8300_option_optimization): Change to
8686         h8300_option_optimization_table.
8687         (TARGET_OPTION_OPTIMIZATION): Change to
8688         TARGET_OPTION_OPTIMIZATION_TABLE.
8689         * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8690         * config/i386/i386.c (ix86_option_optimization): Change to
8691         ix86_option_optimization_table.
8692         (TARGET_OPTION_OPTIMIZATION): Change to
8693         TARGET_OPTION_OPTIMIZATION_TABLE.
8694         * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
8695         as initializer.
8696         * config/ia64/ia64.c (ia64_option_optimization): Change to
8697         ia64_option_optimization_table.
8698         (TARGET_OPTION_OPTIMIZATION): Change to
8699         TARGET_OPTION_OPTIMIZATION_TABLE.
8700         * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
8701         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
8702         initializer.
8703         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
8704         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8705         * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8706         * config/lm32/lm32.c (lm32_option_optimization_table,
8707         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8708         * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
8709         * config/m32r/m32r.c (m32r_option_optimization): Change to
8710         m32r_option_optimization_table.
8711         (TARGET_OPTION_OPTIMIZATION): Change to
8712         TARGET_OPTION_OPTIMIZATION_TABLE.
8713         * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
8714         CAN_DEBUG_WITHOUT_FP): Remove.
8715         * config/mcore/mcore.c (mcore_option_optimization): Change to
8716         mcore_option_optimization_table.
8717         (TARGET_OPTION_OPTIMIZATION): Change to
8718         TARGET_OPTION_OPTIMIZATION_TABLE.
8719         * config/mep/mep.c (mep_option_optimization): Change to
8720         mep_option_optimization_table.
8721         (TARGET_OPTION_OPTIMIZATION): Change to
8722         TARGET_OPTION_OPTIMIZATION_TABLE.
8723         * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
8724         * config/microblaze/microblaze.c
8725         (microblaze_option_optimization_table,
8726         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8727         * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
8728         * config/mips/mips.c (mips_option_optimization_table,
8729         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8730         * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
8731         * config/mmix/mmix.c (mmix_option_optimization): Change to
8732         mmix_option_optimization_table.
8733         (TARGET_OPTION_OPTIMIZATION): Change to
8734         TARGET_OPTION_OPTIMIZATION_TABLE.
8735         * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
8736         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
8737         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8738         * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
8739         * config/pa/pa.c (pa_option_optimization_table,
8740         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8741         * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8742         * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
8743         pdp11_option_optimization_table.
8744         (TARGET_OPTION_OPTIMIZATION): Change to
8745         TARGET_OPTION_OPTIMIZATION_TABLE.
8746         * config/picochip/picochip.c (picochip_option_optimization_table,
8747         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8748         * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
8749         * config/rs6000/rs6000.c (rs6000_option_optimization_table,
8750         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8751         * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
8752         * config/rx/rx.c (rx_option_optimization_table,
8753         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8754         * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
8755         * config/s390/s390.c (s390_option_optimization): Change to
8756         s390_option_optimization_table.
8757         (s390_option_override): Update comment.
8758         (TARGET_OPTION_OPTIMIZATION): Change to
8759         TARGET_OPTION_OPTIMIZATION_TABLE.
8760         * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
8761         * config/score/score.c (score_option_optimization_table,
8762         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8763         * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
8764         * config/sh/sh.c (sh_option_optimization): Change to
8765         sh_option_optimization_table.
8766         (TARGET_OPTION_OPTIMIZATION): Change to
8767         TARGET_OPTION_OPTIMIZATION_TABLE.
8768         (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
8769         (sh_option_override, expand_block_move, multcosts, find_barrier,
8770         barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
8771         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
8772         (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
8773         STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
8774         instead of TARGET_SMALLCODE.
8775         * config/sh/sh.opt (mspace): Make into an alias for -Os.
8776         * config/sparc/sparc.c (sparc_option_optimization_table,
8777         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8778         * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
8779         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
8780         TARGET_OPTION_OPTIMIZATION_TABLE): New.
8781         * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
8782         * config/v850/v850.c (v850_option_optimization): Change to
8783         v850_option_optimization_table.
8784         (TARGET_OPTION_OPTIMIZATION): Change to
8785         TARGET_OPTION_OPTIMIZATION_TABLE.
8786         * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
8787         * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
8788         xtensa_option_optimization_table.
8789         (TARGET_OPTION_OPTIMIZATION): Change to
8790         TARGET_OPTION_OPTIMIZATION_TABLE.
8791         * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
8792
8793 2010-10-21  Iain Sandoe  <iains@gcc.gnu.org>
8794
8795         Based on the CFString implementation in FSF apple/trunk branch.
8796
8797         * target.def (objc_construct_string): New Hook.
8798         * doc/tm.texi (objc_construct_string): Document.
8799         * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
8800         * config/t-darwin: Amend build rules for darwin.o.
8801         * config/darwin.opt: Add cfstrings flags.
8802         * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
8803         (darwin_objc_construct_string): New.
8804         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
8805         * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
8806         * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
8807         (darwin_fold_builtin): Likewise.
8808         (darwin_build_constant_cfstring): Likewise.
8809         (darwin_objc_construct_string): Likewise.
8810         (darwin_cfstring_p): Likewise.
8811         (darwin_enter_string_into_cfstring_table): Likewise.
8812         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
8813         * config/darwin.c (darwin_running_cxx): New var.
8814         (machopic_select_section): Return cfstring_constant_object_section.
8815         (darwin_override_options): Set darwin_running_cxx.
8816         (add_builtin_field_decl): New.
8817         (darwin_init_cfstring_builtins): New.
8818         (darwin_build_constant_cfstring): New.
8819         (darwin_fold_builtin): New.
8820         (cfstring_hash): New.
8821         (cfstring_eq): New.
8822         (darwin_enter_string_into_cfstring_table): New.
8823         * config/darwin-sections.def (cfstring_constant_object_section): New.
8824         * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
8825         (TARGET_OBJC_CONSTRUCT_STRING): Define.
8826
8827 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8828
8829         * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
8830         TYPE_STUB_DECL instead of TREE_CHAIN.
8831         * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
8832         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
8833         * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
8834         * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
8835         * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
8836         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
8837         Likewise.
8838         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
8839
8840 2010-10-22  Jie Zhang  <jie@codesourcery.com>
8841
8842         * expr.c (emit_group_load_1): Update calls to extract_bit_field.
8843         (copy_blkmode_from_reg): Likewise.
8844         (read_complex_part): Likewise.
8845         (expand_expr_real_1): Calculate packedp and pass it to
8846         extract_bit_field.
8847         * expr.h (extract_bit_field): Update declaration.
8848         * calls.c (store_unaligned_arguments_into_pseudos): Update call
8849         to extract_bit_field.
8850         * expmed.c (extract_fixed_bit_field): Update calls to
8851         extract_fixed_bit_field.
8852         (store_split_bit_field): Likewise.
8853         (extract_bit_field_1): Add new argument packedp.
8854         (extract_bit_field): Add new argument packedp.
8855         (extract_fixed_bit_field): Add new argument packedp and let
8856         packed attribute override volatile.
8857         * stmt.c (expand_return): Update call to extract_bit_field.
8858
8859 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8860
8861         * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
8862
8863 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8864
8865         * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
8866         of gcc_checking_assert.
8867         * sel-sched.c (code_motion_process_successors): Likewise.
8868
8869 2010-10-21  Eric Botcazou  <ebotcazou@adacore.com>
8870
8871         * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
8872         when stopping because of a different locus on edge or insn.
8873         (try_optimize_cfg): Add comment.
8874         * cfgrtl.c (rtl_merge_blocks): Tweak log message.  If the destination
8875         block is a forwarder block, propagate locus on the edge.
8876         (cfg_layout_merge_blocks): Likewise.
8877
8878 2010-10-21  Uros Bizjak  <ubizjak@gmail.com>
8879
8880         PR target/45946
8881         * config/i386/i386.md (*pushti2): New insn pattern.
8882         (pushti2 splitter): New insn splitter.
8883         (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
8884         DWI mode iterator.
8885
8886 2010-10-21  Paul Koning  <ni1d@arrl.net>
8887
8888         * config/pdp11/pdp11-protos.md (arith_operand,
8889         const_immediate_operand, expand_shift_operand,
8890         immediate15_operand): Delete
8891         * config/pdp11/pdp11.c: Ditto.
8892         * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
8893         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8894         EXTRA_CONSTRAINT): Delete.
8895         * config/pdp11/pdp11.md (various): Use standard constraints
8896         instead of removed ones.
8897         * config/pdp11/constraints.md: New file.
8898         * config/pdp11/predicates.md: New file.
8899
8900 2010-10-21  Bingfeng Mei  <bmei@broadcom.com>
8901
8902         PR c/45834
8903         * alias.c (true_dependence_1): Remove obsolete check for QImode.
8904         (may_alias_p): Ditto.
8905
8906 2010-10-21  Martin Jambor  <mjambor@suse.cz>
8907
8908         PR tree-optimization/45875
8909         * tree.c (get_binfo_at_offset): Remove initial zero offset test.
8910
8911 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8912
8913         * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
8914         variables.
8915         (create_new_def_for): Likewise.
8916
8917 2010-10-21  Nick Clifton  <nickc@redhat.com>
8918
8919         * config/mn10300/mn10300.c: Fold code to 80-character width.
8920         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8921         MEM, CONST_INT and CONST_DOUBLE.
8922         (targetm): Move initialization to end of file.
8923         (print_operand): Rename to mn10300_print_operand.
8924         (print_operand_address): Rename to mn10300_print_operand_address.
8925         (can_use_return_insn): Rename to mn10300_can_use_return_insn.
8926         (expand_prologue): Rename to mn10300_expand_prologue.
8927         (expand_epilogue): Rename to mn10300_expand_epilogue.
8928         (initial_offset): Rename to mn10300_initial_offset.
8929         (function_arg): Rename to mn10300_function_arg.
8930         (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
8931         (symbolic_operand): Rename to mn10300_symbolic_operand.
8932         (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
8933         (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
8934         * config/mn10300/mn10300-protos.h: Update prototypes.
8935         * config/mn10300/mn10300.h: Fold code to 80-character width.
8936         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8937         MEM, CONST_INT and CONST_DOUBLE.
8938         (CPP_SPEC): Move to...
8939         (TARGET_CPU_CPP_BUILTINS): ... here.
8940         * config/mn10300/mn10300.md: Fold code to 80-character width.
8941         Replace GET_CODE (foo) == REG with REG_P (foo).  Likewise for
8942         MEM, CONST_INT and CONST_DOUBLE.
8943
8944 2010-10-21  Ira Rosen  <irar@il.ibm.com>
8945
8946         PR tree-optimization/46049
8947         PR tree-optimization/46052
8948         * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
8949         (vect_get_slp_defs): Add arguments.
8950         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
8951         operands to vect_get_slp_defs.
8952         (vectorizable_reduction): Fix comment, pass scalar operands to
8953         vect_get_slp_defs.
8954         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
8955         type to determine number of units in the created vector.
8956         (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
8957         (vectorizable_conversion): Fix comment.
8958         (vectorizable_shift): New function.
8959         (vectorizable_operation): Move code that handles shifts to
8960         vectorizable_shift.
8961         (vectorizable_type_demotion): Fix comment, pass scalar operands to
8962         vect_get_slp_defs.
8963         (vectorizable_type_promotion, vectorizable_store): Likewise.
8964         (vectorizable_condition): Fix comment.
8965         (vect_analyze_stmt): Call vectorizable_shift.
8966         (vect_transform_stmt): Likewise.
8967         * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
8968         Use it as the operand to create vectors for, except reduction
8969         initial definition and store.  Use operands type.
8970         (vect_get_slp_defs): Add new arguments.  Pass them to
8971          vect_get_constant_vectors.
8972
8973 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
8974
8975         * basic-block.h (single_succ_edge): Use gcc_checking_assert.
8976         (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
8977         * cfghooks.c (fixup_reorder_chain): Likewise.
8978         * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
8979         * cgraph.c (cgraph_add_thunk): Likewise.
8980         (cgraph_create_edge_1): Likewise.
8981         (cgraph_create_virtual_clone): Likewise.
8982         * ddg.c (add_cross_iteration_register_deps): Likewise.
8983         * dwarf2out.c (modified_type_die): Likewise.
8984         * emit-rtl.c (set_mem_alias_set): Likewise.
8985         * ggc-zone.c (zone_allocate_marks): Likewise.
8986         * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
8987         * gimple.c (iterative_hash_gimple_type): Likewise.
8988         * graphite-scop-detection.c (create_single_entry_edge): Likewise.
8989         (create_single_exit_edge): Likewise.
8990         * haifa-sched.c (choose_ready): Likewise.
8991         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8992         * passes.c (execute_todo): Likewise.
8993         * sched-ebb.c (begin_schedule_ready): Likewise.
8994         * sel-sched.c (code_motion_process_successors): Likewise.
8995         * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
8996         * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
8997         * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
8998         (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
8999         * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
9000         * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
9001         (ssa_conflicts_add): Likewise.
9002         * tree-ssa-copy.c (replace_exp): Likewise.
9003         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
9004         * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
9005         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
9006         * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
9007         (compute_antic): Likewise.
9008         * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
9009         (add_dependence): Likewise.
9010         (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
9011         * tree-vrp.c (supports_overflow_infinity): Likewise.
9012         (make_overflow_infinity, negative_overflow_infinity): Likewise.
9013         (avoid_overflow_infinity, register_new_assert_for): Likewise.
9014         (process_assert_insertions_for): Likewise.
9015         * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
9016         (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
9017         (intersect_loc_chains, variable_merge_over_cur): Likewise.
9018
9019 2010-10-21  Nathan Froyd  <froydnj@codesourcery.com>
9020
9021         * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
9022         * reload1.c (has_nonexceptional_receiver): Likewise.
9023         * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
9024         (create_new_def_for): Likewise.
9025         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
9026         (merge_phi_nodes): Likewise.
9027         (has_abnormal_incoming_edge_p): Delete.
9028
9029 2010-10-21  H.J. Lu  <hongjiu.lu@intel.com>
9030
9031         * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
9032
9033 2010-10-21  Richard Guenther  <rguenther@suse.de>
9034             Michael Matz  <matz@suse.de>
9035
9036         PR tree-optimization/45764
9037         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9038         Adjust initial misalignment for negative DR_STEP.
9039         (vect_find_same_alignment_drs): Two DRs with different DR_STEP
9040         do not have the same alignment over the whole iteration domain.
9041
9042 2010-10-21  Richard Guenther  <rguenther@suse.de>
9043
9044         PR tree-optimization/46111
9045         * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
9046
9047 2010-10-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9048
9049         * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
9050
9051 2010-10-21  Tristan Gingold  <gingold@adacore.com>
9052
9053         * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
9054         * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
9055
9056 2010-10-21  Tristan Gingold  <gingold@adacore.com>
9057
9058         * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
9059         signal_frame.
9060         * config/alpha/alpha.c (alpha_function_arg): Adjust call.
9061
9062 2010-10-21  Tristan Gingold  <gingold@adacore.com>
9063
9064         * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
9065         * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
9066
9067 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
9068
9069         * basic-block.h (find_fallthru_edge): Define.
9070         * cfgcleanup.c (merge_blocks_move): Use it.
9071         (try_crossjump_bb): Likewise.
9072         * cfglayout.c (fixup_reorder_chains): Likewise.
9073         (fixup_fallthru_exit_predecessor): Likewise.
9074         * cfgrtl.c (rtl_split_edge): Likewise.
9075         (rtl_verify_flow_info): Likewise.
9076         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9077         * gimple-pretty-print.c (dump_implicit_edges): Likewise.
9078         * ifcvt.c (block_fallthru): Likewise.
9079         * reload1.c (fixup_abnormal_edges): Likewise.
9080         * sched-ebb.c (being_schedule_ready): Likewise.
9081         (schedule_ebb): Likwise.
9082         * sched-rgn.c (find_single_block_region): Likewise.
9083         * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
9084         * tree-complex.c (expand_complex_move): Likewise.
9085         * sched-int.h (find_fallthru_edge): Rename to...
9086         (find_fallthru_edge_from): ...this.
9087         * haifa-sched.c (find_fallthru_edge): Rename to...
9088         (find_fallthru_edge_from): ...this.  Use new find_fallthru_edge.
9089         (init_before_recovery): Call find_fallthru_edge_from.
9090         * sel-sched-ir.c (merge_fences): Likewise.
9091         * sel-sched.c (in_fallthru_bb_p): Likewise.
9092         (move_cond_jump): Likewise.
9093
9094 2010-10-20  Paul Koning  <ni1d@arrl.net>
9095
9096         * config/pdp11/pdp11.md (various): Fix conditions on a number of
9097         insn to check for target 11/40 or higher.
9098
9099 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9100
9101         * parser.c (c_parser_objc_method_type): Mark inline.  Return a
9102         bool instead of a tree.
9103         (c_parser_objc_method_decl): Added bool argument.  Updated call to
9104         objc_build_method_signature.
9105         (c_parser_objc_method_definition): Do not call
9106         objc_set_method_type.  Updated calls to c_parser_objc_method_type,
9107         c_parser_objc_method_decl and objc_start_method_definition.
9108         (c_parser_objc_methodproto): Do not call objc_set_method_type.
9109         Updated calls to c_parser_objc_method_type,
9110         c_parser_objc_method_decl and objc_add_method_declaration.
9111
9112 2010-10-20  Jakub Jelinek  <jakub@redhat.com>
9113
9114         PR tree-optimization/45919
9115         * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
9116         array members.
9117
9118         PR tree-optimization/46066
9119         * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
9120         instead of gsi_last_bb.
9121
9122 2010-10-20  DJ Delorie  <dj@redhat.com>
9123
9124         * config/m32c/m32c.c (m32c_option_override): Always disable
9125         function-cse in 16-bit mode.  Indirect calls are always worse than
9126         direct calls as there is no 16-bit indirect call opcode.
9127         (m32c_override_options_after_change): New, likewise.
9128
9129 2010-10-20  Nathan Froyd  <froydnj@codesourcery.com>
9130
9131         * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
9132         emitting the conditional move in the inner mode of the SUBREG.
9133
9134 2010-10-20  Anatoly Sokolov  <aesok@post.ru>
9135
9136         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
9137         * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
9138         * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
9139         (ia64_preferred_reload_class): Make static.  Change rclass argument
9140         and result types from enum reg_class to reg_class_t.
9141
9142 2010-10-20  Pat Haugen  <pthaugen@us.ibm.com>
9143
9144         * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
9145         call for single operand expression.
9146
9147 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
9148
9149         * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
9150         if there is a call statement to pure or const function in the block.
9151
9152 2010-10-20  Paul Koning  <pkoning@equallogic.com>
9153
9154         Fix several build errors for pdp11 target.
9155         * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
9156         (cbranchdf4): Conditional on TARGET_FPU.
9157         (movdf): Ditto; correct alternatives check.
9158         (movmemhi): Fix predicate and constraint.
9159         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
9160
9161 2010-10-20  Richard Guenther  <rguenther@suse.de>
9162
9163         PR lto/45667
9164         * lto-streamer-out.c (output_gimple_stmt): Fix typo.
9165         * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
9166         (verify_gimple_assign_single): Disable ADDR_EXPR type check
9167         when in LTO.
9168
9169 2010-10-20  Vladimir Makarov  <vmakarov@redhat.com>
9170
9171         PR fortran/42169
9172         * ira-emit.c (store_can_be_removed_p): Return false instead of
9173         gcc_unreachable.
9174
9175 2010-10-20  Dmitry Melnik  <dm@ispras.ru>
9176
9177         * fold-const.c (fold_binary_loc): New transformation.
9178
9179 2010-10-20  H.J. Lu  <hongjiu.lu@intel.com>
9180
9181         PR target/46085
9182         * config/i386/sse.md (reduc_splus_v8sf): Updated.
9183         (reduc_splus_v4df): Likewise.
9184
9185 2010-10-20  Richard Guenther  <rguenther@suse.de>
9186
9187         PR tree-optimization/45860
9188         * tree-ssa-phiopt.c (cond_store_replacement): Do not do
9189         conditional store replacement for non-register type stores.
9190
9191 2010-10-20  Eric Botcazou  <ebotcazou@adacore.com>
9192
9193         * stor-layout.c (skip_simple_constant_arithmetic): New function.
9194         (self_referential_size): Use it instead of skip_simple_arithmetic.
9195
9196 2010-10-20  Olivier Hainque  <hainque@adacore.com>
9197
9198         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
9199         If the current function calls eh_return, claim live all registers
9200         that we need to check for liveness otherwise.
9201
9202 2010-10-20  Nicola Pero  <nicola.pero@meta-innovation.com>
9203
9204         * c-decl.c (c_write_global_declarations): Call
9205         objc_write_global_declarations when compiling Objective-C.
9206         * c-lang.c (finish_file): Removed.
9207
9208 2010-10-19  DJ Delorie  <dj@redhat.com>
9209
9210         * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
9211         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
9212         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
9213         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
9214         * doc/tm.texi: Regenerate.
9215         * targhooks.h (default_label_align_after_barrier_max_skip,
9216         default_loop_align_max_skip, default_label_align_max_skip,
9217         default_jump_align_max_skip): Declare.
9218         * target.def (label_align_after_barrier_max_skip): New.
9219         (loop_align_max_skip): New.
9220         (label_align_max_skip): New.
9221         (jump_align_max_skip): New.
9222         * system.h (poison): Add those macros to the list.
9223         * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
9224         (LOOP_ALIGN_MAX_SKIP): Remove.
9225         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
9226         (JUMP_ALIGN_MAX_SKIP): Remove.
9227         (default_label_align_after_barrier_max_skip): New.
9228         (default_loop_align_max_skip): New.
9229         (default_label_align_max_skip): New.
9230         (default_jump_align_max_skip): New.
9231         (compute_alignments): Use the new hooks.
9232         (shorten_branches): Likewise.
9233
9234 2010-10-19  Richard Henderson  <rth@redhat.com>
9235
9236         * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
9237         * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
9238         (fma4i_fmadd_<mode>): New.
9239         (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
9240         fma4_fm*_<mode> and adjust to be pre-reload splitters to the
9241         standard fma patterns.
9242         (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
9243         enable for FMA.
9244         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9245         (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
9246         (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
9247
9248 2010-10-19  Paul Koning  <pkoning@equallogic.com>
9249
9250         * lower-subreg.c (resolve_shift_zext): Delete conditional code for
9251         WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
9252
9253 2010-10-19  Richard Henderson  <rth@redhat.com>
9254
9255         * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
9256         (fmadf4, *fmsdf4, *nfmadf4): New.
9257         (fmaxf4, *fmsxf4, *nfmaxf4): New.
9258
9259 2010-10-19  Michael Eager  <eager@eagercon.com>
9260
9261         * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
9262         Use sjlj unwind info for exceptions.
9263
9264 2010-10-19  Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
9265
9266         PR fortran/43414
9267         * dwarf2out.c (add_calling_convention_attribute): Flag main
9268         Fortran subroutine with DW_AT_main_subprogram.
9269
9270 2010-10-19  Nick Clifton  <nickc@redhat.com>
9271
9272         * config/rx/rx.c (rx_function_value): Small integer types are
9273         promoted to SImode.
9274         (rx_promote_function_mode): New function.
9275         (TARGET_PROMOTE_FUNCTION_MODE): Define.
9276
9277 2010-10-19  Nick Clifton  <nickc@redhat.com>
9278
9279         * config/mep/mep.c (mep_print_operand): Use
9280         targetm.strip_name_encoding.
9281         (mep_output_aligned_common): Likewise.
9282
9283 2010-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
9284
9285         * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
9286
9287 2010-10-18  Richard Henderson  <rth@redhat.com>
9288
9289         * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
9290         (fma (neg a) (neg b) c) and (fma a (neg b) c).
9291
9292 2010-10-18  Richard Henderson  <rth@redhat.com>
9293
9294         * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
9295         IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
9296         IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
9297         IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
9298         IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
9299         IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
9300         IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
9301         IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
9302         IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
9303         IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
9304         (bdesc_multi_arg): Remove the corresponding builtins.
9305         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
9306         (UNSPEC_FMA4_FMSUBADD): Remove.
9307         (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
9308         * config/i386/sse.md (FMA4MODEF4): Remove.
9309         (FMAMODE): Add.
9310         (fma<mode>4): New expander.
9311         (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
9312         and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
9313         (*fma4i_fmsub_<mode>): Similarly.
9314         (*fma4i_fnmadd_<mode>): Similarly.
9315         (*fma4i_fnmsub_<mode>): Similarly.
9316         (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
9317         with the first operand.
9318         (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
9319         of explicit arithmetic.  Macroize with AVXMODEF2P.
9320         (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
9321         (xop_frcz<mode>2): Macroize with FMAMODE.
9322         (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
9323         the first operand.
9324         * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
9325         extra negations.
9326         (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
9327         (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
9328         (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
9329         (_mm256_msub_ps, _mm256_msub_pd): Likewise.
9330         (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
9331         (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
9332         (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
9333         (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
9334
9335 2010-10-18  Bernd Schmidt  <bernds@codesourcery.com>
9336
9337         PR rtl-optimization/45966
9338         * combine.c (try_combine): If added_sets_2, deal with the case
9339         where i0 feeds i1 and i1 feeds i2.
9340
9341 2010-10-18  Jan Hubicka  <jh@suse.cz>
9342
9343         * ipa.c (cgraph_externally_visible_p): Handle externally visible and
9344         preserve flags before trying to guess on visibility.
9345         (varpool_externally_visible_p): New function.
9346         (function_and_variable_visibility): Use it.
9347
9348 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9349
9350         Implemented parsing @synthesize and @dynamic for Objective-C.
9351         * c-parser.c (c_parser_external_declaration): Recognize
9352         RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
9353         (c_parser_objc_at_synthesize_declaration): New.
9354         (c_parser_objc_at_dynamic_declaration): New.
9355
9356 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9357
9358         * c-parser.c (c_parser_objc_class_declaration): After finding an
9359         error, parse the whole declaration then reset parser->error.
9360
9361 2010-10-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9362
9363         PR target/46041
9364         * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
9365         * builtins.c (mode_has_fma): Ditto.
9366
9367 2010-10-18  Steve Ellcey  <sje@cup.hp.com>
9368
9369         PR target/36898
9370         PR middle-end/43760
9371         * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
9372
9373 2010-10-18  Joseph Myers  <joseph@codesourcery.com>
9374
9375         * config/i386/i386.c (ix86_option_override_internal): Define and
9376         use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
9377         default.
9378         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
9379         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
9380
9381 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9382
9383         Merge from 'apple/trunk' branch on FSF servers.
9384         * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
9385         following Objective-C change:
9386
9387         2005-10-10  Fariborz Jahanian  <fjahanian@apple.com>
9388
9389         Radar 4301047
9390         * c-parse.in (objc_quals): Build objc qualifier list same way
9391         as gcc-3.3
9392
9393 2010-10-18  Jan Hubicka  <jh@suse.cz>
9394
9395         * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
9396         function_and_variable_visibility): Revert accidental commit.
9397
9398 2010-10-18  Nicola Pero  <nicola.pero@meta-innovation.com>
9399
9400         Merge from 'apple/trunk' branch on FSF servers.
9401         * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
9402         the following Objective-C change:
9403
9404         2005-10-07  Fariborz Jahanian  <fjahanian@apple.com>
9405
9406         Radar 4204796
9407         * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
9408         'volatilized' type used in a typeof operator.
9409
9410 2010-10-18  Eric Botcazou  <ebotcazou@adacore.com>
9411
9412         * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
9413         * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
9414         rewrite modelled on gimple_purge_dead_eh_edges.
9415         (gimple_purge_all_dead_abnormal_call_edges): New function.
9416         * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
9417         directly instead of through gimple_purge_dead_abnormal_call_edges.
9418         * tree-ssa-pre.c (need_ab_cleanup): New static variable.
9419         (eliminate): Set bit in need_ab_cleanup for the basic block if we have
9420         removed AB side-effects from one of its statements.
9421         (init_pre): Initialize need_ab_cleanup.
9422         (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
9423         are set in need_ab_cleanup.  Free need_ab_cleanup afterward.
9424
9425 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9426
9427         PR c/46015
9428         * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
9429         on computed goto argument.
9430
9431 2010-10-18  Richard Guenther  <rguenther@suse.de>
9432
9433         PR tree-optimization/45967
9434         * tree-ssa-structalias.c (type_could_have_pointers): Remove.
9435         (could_have_pointers): Likewise.
9436         (handle_rhs_call, handle_const_call, handle_pure_call,
9437         find_func_aliases, intra_create_variable_infos): Remove calls to them.
9438         (struct fieldoff): Add must_have_pointers field.
9439         (type_must_have_pointers): New function.
9440         (field_must_have_pointers): Likewise.
9441         (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
9442         Adjust field merging.
9443         (create_function_info_for): May-have-pointers of varinfo is
9444         almost always true.
9445         (create_variable_info_for_1): Likewise.
9446
9447 2010-10-18  Tejas Belagod  <tejas.belagod@arm.com>
9448
9449         * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
9450         of operands to vec_concat.
9451
9452 2010-10-18  Richard Guenther  <rguenther@suse.de>
9453
9454         PR lto/44950
9455         * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
9456         also clear references to entries of it.
9457
9458 2010-10-18  Andi Kleen  <ak@linux.intel.com>
9459
9460         PR other/43448
9461         * gccbug.in: Remove.
9462         * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
9463         (doc, distclean, install-common): Remove reference to gccbug.
9464         * configure: Regenerate.
9465         * configure.ac (all_outputs): Remove gccbug.
9466         * doc/configfiles.texi: Remove references to gccbug.
9467         * doc/sourcebuild.texi: Dito.
9468
9469 2010-10-18  Jakub Jelinek  <jakub@redhat.com>
9470
9471         PR middle-end/46019
9472         * fold-const.c (fold_binary_loc): If integer_pow2p has
9473         TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
9474
9475 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9476             Jeremie Salvucci  <jeremie.salvucci@free.fr>
9477
9478         * gengtype.c (verbosity_level): Add variable.
9479         (set_gc_used): Count variables for verbosity.
9480         (close_output_files): Backing up files, counting written ones
9481         verbosily.
9482         (write_types): Count emitted functions for verbosity. Added
9483         debug messages.
9484         (write_enum_defn): Count structures for verbosity. Added debug
9485         messages.
9486         (gengtype_long_options): Add "verbose" & "backupdir".
9487         (print_usage): Ditto.
9488         (main): Verbose display of parsed files.
9489
9490         * gengtype.h (verbosity_level): Add declaration.
9491
9492 2010-10-18  Basile Starynkevitch  <basile@starynkevitch.net>
9493
9494         * gengtype.c (parse_program_options): Add allocation of
9495         plugin_files, and correct test on nb_plugin_files.
9496
9497 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9498
9499         Merge from 'apple/trunk' branch on FSF servers.
9500
9501         2006-03-27 Fariborz Jahanian  <fjahanian@apple.com>
9502
9503         Radar 4133425
9504         * c-decl.c (undeclared_variable): Issue diagnostic on
9505         private 'ivar' access.
9506
9507 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9508
9509         PR target/46051
9510         * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
9511         generated sequence to match *avx_vperm2f128<mode>_nozero.
9512         (vec_interleave_lowv4df): Ditto.
9513         (vec_interleave_highv8sf): Ditto.
9514         (vec_interleave_lowv8sf): Ditto.
9515
9516 2010-10-17  Kai Tietz  <kai.tietz@onevision.com>
9517
9518         * libgcov.c (create_file_directory): Enable it for win32 case.
9519         (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
9520         * doc/gcov.texi (GCOV_PREFIX): Adjusted.
9521         (GCOV_PREFIX_SKIP): Likewise.
9522
9523 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9524
9525         * doc/objc.texi (GNU Objective-C runtime API): New section.
9526         (Modern GNU Objective-C runtime API): New section.
9527         (Traditional GNU Objective-C runtime API): New section.
9528         (Executing code before main): Mention that this section is
9529         specific to the GNU Objective-C runtime.
9530         (Garbage Collection): Same.
9531
9532 2010-10-17  Uros Bizjak  <ubizjak@gmail.com>
9533
9534         * c-parser.c (c_parser_for_statement): Move initialization of
9535         cond and incr before if.
9536
9537 2010-10-17  Anatoly Sokolov  <aesok@post.ru>
9538
9539         * target.def (preferred_output_reload_class): New hook.
9540         * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
9541         * doc/tm.texi: Regenerate.
9542         * targhooks.c (default_preferred_output_reload_class): New function.
9543         * targhooks.h (default_preferred_output_reload_class): Declare.
9544         * reload.c (find_dummy_reload): Change rclass argument type from
9545         enum reg_class to reg_class_t. Change this_alternative array type
9546         from enum reg_class to reg_class_t.
9547         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9548         (push_reload): Change preferred_class variable type to reg_class_t.
9549         Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
9550         * recog.c (reg_fits_class_p): Change result type to bool. Change cl
9551         argument type from enum reg_class to reg_class_t. Use
9552         HARD_REGISTER_NUM_P predicate.
9553         * recog.h (reg_fits_class_p): Update prototype.
9554
9555         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9556         * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
9557         Remove.
9558         * config/i386/i386.c (ix86_preferred_output_reload_class): Make
9559         static. Change regclass argument and result types from enum reg_class
9560         to reg_class_t.
9561         (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9562
9563 2010-10-17  Iain Sandoe  <iains@gcc.gnu.org>
9564
9565         * c-parser.c (c_parser_objc_class_instance_variables): Update to use
9566         visibility enum, and handle @package.
9567
9568 2010-10-17  Nicola Pero  <nicola.pero@meta-innovation.com>
9569
9570         * doc/objc.texi (What you can and what you cannot do in +load):
9571         Document that sending messages to constant string objects in +load
9572         is not guaranteed to work.
9573
9574 2010-10-16  Jan Hubicka  <jh@suse.cz>
9575
9576         PR middle-end/44206
9577         * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
9578         existence of refrences before removing the function.
9579
9580 2010-10-16  Jan Hubicka  <jh@suse.cz>
9581
9582         * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
9583         only_called_at_startup and only_called_at_exit.
9584         (cgraph_propagate_frequency): Compute only_called_at_startup and
9585         only_called_at_exit.
9586         * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
9587         only_called_at_exit.
9588         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
9589         flags.
9590         * predict.c (compute_function_frequency): Initialize the new flags.
9591
9592 2010-10-16  Eric Botcazou  <ebotcazou@adacore.com>
9593
9594         * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
9595         ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
9596         on the bounds of its domain.
9597         * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
9598
9599 2010-10-16  Anatoly Sokolov  <aesok@post.ru>
9600
9601         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
9602         * config/avr/avr-protos.h (preferred_reload_class): Remove.
9603         * config/avr/avr.c (preferred_reload_class): Remove.
9604         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
9605         * config/pa/pa.c (emit_move_sequence): Update comment
9606         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
9607         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
9608         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
9609         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
9610         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
9611         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
9612         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
9613         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
9614         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
9615         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
9616         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
9617         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
9618         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
9619
9620 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9621
9622         * opts.c (set_fast_math_flags,
9623         set_unsafe_math_optimizations_flags): Make static.
9624         * toplev.h (set_fast_math_flags,
9625         set_unsafe_math_optimizations_flags): Remove prototypes.
9626
9627 2010-10-16  Joseph Myers  <joseph@codesourcery.com>
9628
9629         * config/arm/arm.c (arm_option_optimization): Set
9630         flag_section_anchors to 1 not 2.
9631         * config/i386/i386.c (ix86_option_override_internal): Check
9632         global_options_set.x_flag_zee and
9633         global_options_set.x_flag_omit_frame_pointer.
9634         (ix86_option_optimization): Don't set flag_omit_frame_pointer and
9635         flag_zee to 2.
9636         * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
9637         global_options_set.x_flag_omit_frame_pointer.
9638         * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
9639         opts->x_flag_section_anchors to 1 not 2.
9640         * config/sh/sh.c (sh_option_optimization): Don't set
9641         flag_schedule_insns to 2.
9642         (sh_option_override): Check
9643         global_options_set.x_flag_schedule_insns.
9644         * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
9645
9646 2010-10-16  Kai Tietz  <kai.tietz@onevision.com>
9647
9648         * configure.ac: Make sure inhibit_libc remains false for mingw targets
9649         as cross.
9650         * configure: Regenerated.
9651
9652 2010-10-15  Xinliang David Li  <davidxl@google.com>
9653
9654         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
9655         function.
9656         (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
9657         into a recursive function.
9658
9659 2010-10-15  Uros Bizjak  <ubizjak@gmail.com>
9660
9661         * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
9662         (*movdfcc_1): ditto.
9663
9664 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9665
9666         * target.def (target_option.init_struct): New hook.
9667         * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
9668         * doc/tm.texi: Regenerate.
9669         * hooks.c (hook_void_gcc_optionsp): New.
9670         * hooks.h (hook_void_gcc_optionsp): Declare.
9671         * langhooks-def.h (lhd_init_options_struct): Remove.
9672         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
9673         * langhooks.c (lhd_init_options_struct): Remove.
9674         * opts.c (init_options_struct): Also call
9675         targetm.target_option.init_struct.
9676         * config/i386/i386.c (ix86_option_init_struct,
9677         TARGET_OPTION_INIT_STRUCT): New.
9678         (ix86_option_optimization): Move some settings to
9679         ix86_option_init_struct.
9680         * config/pdp11/pdp11.c (pdp11_option_init_struct,
9681         TARGET_OPTION_INIT_STRUCT): New.
9682         (pdp11_option_optimization): Move some settings to
9683         pdp11_option_init_struct.
9684         * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
9685         rs6000_option_init_struct.  Use options structure pointer.
9686         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9687         * config/s390/s390.c (s390_option_init_struct,
9688         TARGET_OPTION_INIT_STRUCT): New.
9689         (s390_option_optimization): Don't set
9690         flag_asynchronous_unwind_tables here.
9691         * config/sh/sh.c (sh_option_init_struct,
9692         TARGET_OPTION_INIT_STRUCT): New.
9693         (sh_option_optimization): Don't set flag_finite_math_only here.
9694         * config/spu/spu.c (spu_option_optimization): Replace by
9695         spu_option_optimization.  Use options structure pointer.
9696         (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
9697
9698 2010-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9699
9700         * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
9701
9702         * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary.  Add
9703         SIGN_EXTRACT and ZERO_EXTRACT which were missing.
9704         (Standard names): Document fma.
9705
9706         * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
9707         __FP_FAST_FMAF, __FP_FAST_FMAL.
9708
9709         * builitns.c (expand_builtin_mathfn_ternary): New function for
9710         expanding ternary math functions, like fma.
9711         (expand_builtin): Call it for the fma builtins.
9712
9713         * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
9714         ops at present.
9715
9716         * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
9717         vectorizable functions to support vectorizing fma.
9718
9719         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9720         Handle fma builtins.
9721
9722         * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
9723         (UNSPEC_VSX_MSUB): Ditto.
9724         (UNSPEC_VSX_NMADD): Ditto.
9725         (UNSPEC_VSX_NMSUB): Ditto.
9726         (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
9727         of UNSPEC. Renumber combiner patterns.
9728         (vsx_fmsub<mode>4*): Ditto.
9729         (vsx_fnmadd<mode>4*): Ditto.
9730         (vsx_fnmsub<mode>4*): Ditto.
9731
9732         * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
9733         (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
9734         multiply/add.  Rename combiner pattern, and add TARGET_FUSED_MADD test.
9735         (altivec_vmaddfp_1): Ditto.
9736         (altivec_vmaddfp_2): Ditto.
9737         (atlivec_mulv4sf3): Ditto.
9738         (altivec_vnmsubfp): Ditto.
9739         (altivec_vnmsubfp_1): Ditto.
9740         (altivec_vnmsubfp_2): Ditto.
9741         (altivec_vnmsubfp_3): Delete.
9742
9743         * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
9744         (fmasf4_fpr): Ditto.
9745         (fmssf4_fpr): Ditto.
9746         (fnmasf4_fpr): Ditto.
9747         (fnmssf4_fpr): Ditto.
9748         (fmadf4): Ditto.
9749         (fmadf4_fpr): Ditto.
9750         (fmsdf4_fpr): Ditto.
9751         (fnmadf4_fpr): Ditto.
9752         (fnmsdf4_fpr): Ditto.
9753
9754         * optabs.h (OTI_fma): Add fma optab.
9755         (fma_optab): Ditto.
9756
9757         * genopinit.c (optabs): Set fma optab.
9758
9759         * rtl.def (FMA): Add FMA rtl.
9760
9761         * tree.h (mode_has_fma): New function to return if MODE supports a
9762         fast multiply and add instruction.
9763         * builtins.c (mode_has_fma): Ditto.
9764
9765 2010-10-15  Jan Hubicka  <jh@suse.cz>
9766
9767         * lto-streamer-out.c (write_symbol): Use pointer set of seen
9768         objects instead of bitmap.
9769         (produce_symtab): Likewise; output defined symbols first.
9770
9771 2010-10-15  Jie Zhang  <jie@codesourcery.com>
9772
9773         * doc/invoke.texi: Add -fstrict-volatile-bitfields to
9774         Option Summary and Index.
9775
9776 2010-10-15  Richard Guenther  <rguenther@suse.de>
9777
9778         * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
9779         for automatic variables again.
9780
9781 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9782
9783         * doc/extend.texi (Variable Length): Don't refer to VLAs not
9784         conforming to C99.
9785
9786 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9787
9788         * config/rx/rx.c (rx_option_optimization): Change to
9789         rx_override_options_after_change.  Don't change
9790         flag_lto_compression_level.  Don't check for changes to whether
9791         FPU instructions can be used.  Check and set only
9792         flag_finite_math_only, not other fast-math flags.
9793         (rx_option_override): Call rx_override_options_after_change.
9794         (TARGET_OPTION_OPTIMIZATION): Remove.
9795         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
9796
9797 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9798
9799         * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
9800         disable section anchors for lang_hooks.name[4] != 'O'.
9801
9802 2010-10-15  Joseph Myers  <joseph@codesourcery.com>
9803
9804         * config/frv/frv.c (frv_option_optimization,
9805         TARGET_OPTION_OPTIMIZATION): Remove.
9806         * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
9807
9808 2010-10-15  Michael Matz  <matz@suse.de>
9809
9810         * cgraphunit.c (clone_of_p): Define unconditionally.
9811
9812 2010-10-15  Richard Guenther  <rguenther@suse.de>
9813
9814         PR lto/45957
9815         * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
9816
9817 2010-10-15  Chung-Lin Tang  <cltang@codesourcery.com>
9818
9819         * ifcvt.c (find_active_insn_before): New function.
9820         (find_active_insn_after): New function.
9821         (cond_exec_process_if_block): Use new functions to replace
9822         prev_active_insn() and next_active_insn().
9823
9824 2010-10-14  Yao Qi  <yao@codesourcery.com>
9825
9826         PR target/45447
9827         * config/arm/arm.c (arm_build_builtin_va_list): Assign
9828         va_list_name to TYPE_STUB_DECL (va_list_type).
9829
9830 2010-10-14  Jan Hubicka  <jh@suse.cz>
9831
9832         PR middle-end/45621
9833         * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
9834         redirected to clone, be happy.
9835         * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
9836         * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
9837         former_clone_of unconditionally.
9838
9839 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9840
9841         Merge from FSF apple 'trunk' branch.
9842         2006 Fariborz Jahanian  <fjahanian@apple.com>
9843
9844         Radars 4436866, 4505126, 4506903, 4517826
9845         * c-parser.c (c_parser, objc_property_attr_context) New flag.
9846         (c_lex_one_token): Handle property attributes.
9847         (c_parser_external_declaration): Handle @property.
9848         (c_parser_declaration_or_fndef): Warn on invalid attributes before
9849         @alias, @class, @end and @property objc keywords.
9850         (c_parser_objc_methodprotolist): Handle @property.
9851         (c_parser_objc_property_attrlist): New.
9852         (c_parser_objc_at_property): New.
9853         * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
9854         (build_modify_expr): Likewise.
9855
9856 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
9857
9858         PR tree-optimization/46008
9859         * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
9860
9861 2010-10-14  Richard Guenther  <rguenther@suse.de>
9862
9863         PR tree-optimization/44913
9864         * tree-data-ref.c (disjoint_objects_p): Remove.
9865         (dr_may_alias_p): Simplify.  Only hand the base object to
9866         the alias-oracle.
9867         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9868         some more trees, bail out instead of asserting.
9869         (ptr_derefs_may_alias_p): Likewise.  Export.
9870         (refs_may_alias_p_1): Handle STRING_CSTs.
9871         * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
9872
9873 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9874
9875         PR c/45969
9876         * c-typeck.c (build_binary_op): Don't try to compute a semantic
9877         type with excess precision for boolean operations.
9878
9879 2010-10-14  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9880             Basile Starynkevitch  <basile@starynkevitch.net>
9881
9882         * gengtype.c:  Include getopt.h and version.h.
9883
9884         (lang_bitmap, struct outf, outf_p)
9885         (get_output_file_with_visibility, oprintf): Definitions moved to
9886         gengtype.h
9887         (output_files, header_file, srcdir, srcdir_len, this_file)
9888         (do_dump): No more static variables.
9889         (do_debug): New.
9890         (dbgprint_count_type_at): Added new function.
9891         (gengtype_long_options): New.
9892         (print_usage, print_version, parse_program_options): New.
9893         (main): Call parse_program_options, and removed old option
9894         handling code.  Added some debug output.
9895
9896         * gengtype.h:  Updated copyright year.
9897         (lang_bitmap, struct outf, outf_p, header_file, oprintf)
9898         (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
9899         Moved from gengtype.c to here.
9900         (do_debug, read_state_filename, write_state_filename): New variables.
9901         (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
9902
9903         * Makefile.in:
9904         (REVISION): Always defined.
9905         (version.o): Removed ifdef REVISION_c.
9906         (s-gtype): Pass arguments to build/gengtype program.
9907         (build/version.o): Added building rule.
9908         (build/gengtype$(build_exeext)): Added build/version.o.
9909
9910 2010-10-14  Iain Sandoe  <iains@gcc.gnu.org>
9911
9912         Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
9913         * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
9914         __strong macros.
9915
9916 2010-10-14  Eric Botcazou  <ebotcazou@adacore.com>
9917
9918         * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
9919         may_trap_or_fault_p instead of may_trap_p predicate.
9920         * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
9921         (substitute_placeholder_in_expr): Likewise.
9922         * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
9923         flag on MEM_REF nodes.
9924         (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
9925         flags on INDIRECT_REF nodes.
9926
9927 2010-10-14  Nathan Froyd  <froydnj@codesourcery.com>
9928
9929         * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
9930         (arm*-*-uclinux*eabi) <tm_file>: Likewise.
9931         (arm*-*-eabi*) <tm_file>: Likewise.
9932         (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
9933         (frv-*-*linux*) <tm_file>: Likewise.
9934         * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
9935         and associated helper macros.
9936         * config/frv/frv-abi.h: Delete.
9937
9938 2010-10-14  Richard Guenther  <rguenther@suse.de>
9939
9940         PR lto/44561
9941         * tree.def (NULLPTR_TYPE): New tree code.
9942         * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
9943         * dwarf2out.c (is_base_type): Likewise.
9944         (gen_type_die_with_usage): Likewise.
9945         * sdbout.c (plain_type_1): Likewise.
9946         * tree.c (build_int_cst_wide): Likewise.
9947         * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
9948
9949 2010-10-14  Joseph Myers  <joseph@codesourcery.com>
9950
9951         * params.c (params_finished): New.
9952         (add_params): Assert !params_finished.
9953         (finish_params): New.
9954         (set_param_value_internal): Take params and params_set
9955         parameters.  Assert params_finished.
9956         (set_param_value, maybe_set_param_value): Take params and
9957         params_set parameters.  Update calls to set_param_value_internal.
9958         (set_default_param_value): Assert !params_finished.  Don't use
9959         set_param_value_internal.
9960         (default_param_value, init_param_values): New.
9961         * params.h (struct param_info): Change value to default_value.
9962         Remove set.
9963         (set_param_value, maybe_set_param_value): Add params and
9964         params_set parameters.
9965         (PARAM_VALUE): Get parameters from global_options.
9966         (PARAM_SET_P): Remove.
9967         (finish_params, default_param_value, init_param_values): New.
9968         * common.opt (param_values): New Variable.
9969         * config/arm/arm.c (arm_option_override): Pass extra arguments to
9970         maybe_set_param_value.
9971         * config/i386/i386.c (ix86_option_override_internal): Pass extra
9972         arguments to maybe_set_param_value.
9973         * config/picochip/picochip.c (picochip_option_override): Pass
9974         extra arguments to maybe_set_param_value.
9975         * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
9976         extra arguments to maybe_set_param_value.
9977         * config/s390/s390.c (s390_option_override): Use
9978         maybe_set_param_value instead of set_param_value.  Pass extra
9979         arguments to maybe_set_param_value.
9980         * config/sparc/sparc.c (sparc_option_override): Pass extra
9981         arguments to maybe_set_param_value.
9982         * config/spu/spu.c (spu_option_override): Pass extra arguments to
9983         maybe_set_param_value.
9984         * opts.c (handle_param): Take opts and opts_set parameters.
9985         Update call to set_param_value.
9986         (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
9987         initial_loop_invariant_max_bbs_in_loop): Remove.
9988         (init_options_once): Don't set them.
9989         (init_options_struct): Initialize parameters structures.
9990         (default_options_optimization): Use default_param_value when
9991         restoring defaults.  Update calls to maybe_set_param_value.
9992         (finish_options): Update calls to maybe_set_param_value.
9993         (common_handle_option): Update calls to handle_param and
9994         set_param_value.
9995         * toplev.c (DEFPARAM): Update definition for changes to param_info.
9996         (general_init): Call finish_params.
9997
9998 2010-10-14  Nick Clifton  <nickc@redhat.com>
9999
10000         * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
10001         (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
10002         (FIRST_PSEUDO_REGISTER): Increase by one.
10003         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
10004         (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
10005         (MODES_TIEABLE): Call mn10300_modes_tieable.
10006         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
10007         (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
10008         (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
10009         (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
10010         (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
10011         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
10012         (mn10300_cc_status_mdep): Delete.
10013         (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
10014         * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
10015         the combine-stack-adjust pass.
10016         (print_operand): Use the mode of the comparison operation to
10017         select the comparison suffix.
10018         (notice_update_cc): Delete.
10019         (mn10300_secondary_reload_class): Remove test for stack pointer
10020         based arithmetic.
10021         (output_tst): Rename to mn10300_output_cmp.
10022         (impossible_plus_operand): Move into predicates.md.
10023         (mn10300_legitimize_address): Make static.
10024         (mn10300_legitimate_address_p): Make static.  Only allow SI sized
10025         constant pic operands.
10026         (mn10300_legitimate_constant_p): New function.
10027         (mn10300_case_values_threshold): Make static.
10028         (mn10300_hard_regno_mode_ok): New function.
10029         (mn10300_modes_tieable): New function.
10030         (mn10300_select_cc_mode): New function.
10031         * config/mn10300/predicates.md (impossible_plus_operand): Define.
10032         * config/mn10300/mn10300-protos.h: Tidy.
10033         (mn10300_legitimate_constant_p, mn10300_modes_tieable)
10034         (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
10035         * config/mn10300/mn10300.md (cc attribute): Delete.  Replace
10036         with clobbers or sets of CC_REG.
10037         (CC_REG): Define.
10038         (mov*): Remove use of CLR instruction.
10039         (cbranch_si4_<code>): New pattern/split.
10040         (integer_conditional_branch): New pattern.
10041         (cbranch_sf4_<code>): New pattern/split.
10042         (float_conditional_branch): New pattern.
10043         (casesi): Use addsi3 pattern instead of movsi pattern to add and
10044         move a value at the same time.
10045         (cc0 peepholes): Remove.
10046
10047 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
10048
10049         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
10050         on RTX_FRAME_RELATED_P insns and the insn to which
10051         NOTE_INSN_EPILOGUE_BEG is attached.
10052         * sched-vis.c (print_value): Allow NULL value.
10053
10054 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
10055
10056         PR rtl-optimization/45570
10057         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
10058         assert that we are pipelining outer loops.  Allow returning
10059         zero predecessors.
10060
10061 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
10062
10063         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
10064         (tidy_control_flow): Tidy vertical space.
10065         (sel_remove_bb): New variable idx.  Use it to remember the basic
10066         block index before deleting the block.
10067         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
10068         (sel_merge_blocks): ... here.
10069         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
10070
10071 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
10072
10073         * cse.c (is_dead_reg): Change into inline function that is not
10074         called through for_each_rtx.
10075         (set_live_p): Adjust caller.
10076         (insn_live_p): Don't reset DEBUG_INSNs here.
10077         (struct dead_debug_insn_data): New data.
10078         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
10079         (delete_trivially_dead_insns): If there is just one setter for the
10080         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
10081         and add DEBUG_INSN for it right before the removed setter and
10082         use the DEBUG_EXPR instead of the dead pseudo.
10083
10084 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
10085
10086         * et-forest.c (et_nca): Return NULL immediately when
10087         the dominance forest has disjoint components.
10088
10089 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
10090
10091         * ira.c (setup_class_hard_regs): Fix typo in indexing
10092         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
10093
10094 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
10095
10096         * graph.c (inbb): New variable.
10097         (start_bb): Set inbb to 1 if output is inside of a building block.
10098         (end_bb): Check if output is inside of a building block.
10099
10100 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
10101
10102         PR rtl-optimization/45912
10103         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
10104         regno of registers instead of their index to compute the alignment.
10105
10106 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
10107
10108         * config/i386/i386.c (ix86_build_const_vector): Check vector
10109         mode instead of scalar mode.
10110         (ix86_build_signbit_mask): Likewise.
10111         (ix86_expand_fp_absneg_operator): Updated.
10112         (ix86_expand_copysign): Likewise.
10113         (ix86_expand_int_vcond): Likewise.
10114         (ix86_emit_swdivsf): Likewise.
10115         (ix86_sse_copysign_to_positive): Likewise.
10116         (ix86_expand_sse_fabs): Likewise.
10117         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
10118         * config/i386/sse.md (copysign<mode>3): Likewise.
10119         (sse2_cvtudq2ps): Likewise.
10120         (vec_unpacku_float_hi_v4si): Likewise.
10121         (vec_unpacku_float_lo_v4si): Likewise.
10122
10123         * config/i386/i386.c (ix86_builtins): Add
10124         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
10125         (bdesc_args): Likewise.
10126         (ix86_builtin_vectorized_function): Support
10127         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
10128         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
10129         and IX86_BUILTIN_CVTPS2DQ256.
10130         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
10131
10132         * config/i386/sse.md (STORENT_MODE): New.
10133         (VEC_FLOAT_MODE): Likewise.
10134         (VEC_EXTRACT_MODE): Likewise.
10135         (*avx_cvtdq2pd256_2): Likewise.
10136         (vec_pack_trunc_v4df): Likewise.
10137         (vec_interleave_highv8sf): Likewise.
10138         (vec_interleave_lowv8sf): Likewise.
10139         (storent<mode>): Macroized.
10140         (<code><mode>2: absneg): Likewise.
10141         (copysign<mode>3): Likewise.
10142         (vec_extract<mode>): Likewise.
10143
10144         PR target/44180
10145         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
10146         for V8SFmode.
10147
10148 2010-10-13  Richard Guenther  <rguenther@suse.de>
10149             H.J. Lu  <hongjiu.lu@intel.com>
10150
10151         * config/i386/sse.md (reduc_splus_v8sf): Add.
10152         (reduc_splus_v4df): Likewise.
10153         (vec_unpacks_hi_v8sf): Likewise.
10154         (vec_unpacks_lo_v8sf): Likewise.
10155         (*avx_cvtps2pd256_2): Likewise.
10156         (vec_unpacks_float_hi_v8si): Likewise.
10157         (vec_unpacks_float_lo_v8si): Likewise.
10158         (vec_interleave_highv4df): Likewise.
10159         (vec_interleave_lowv4df): Likewise.
10160
10161 2010-10-13  Richard Guenther  <rguenther@suse.de>
10162
10163         PR objc/45878
10164         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
10165         alone if there are no virtual methods.
10166
10167 2010-10-13  Richard Henderson  <rth@redhat.com>
10168
10169         * expr.c (build_personality_function): Take parameter LANG instead
10170         of parameter NAME.  Build the name based on the lang prefix and the
10171         unwind method in use.
10172         * tree.c (lhd_gcc_personality): Update call to
10173         build_personality_function.
10174
10175 2010-10-13  Richard Guenther  <rguenther@suse.de>
10176
10177         PR objc/45878
10178         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
10179
10180 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
10181
10182         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
10183         Canonicalize input operands of ASM_OPERANDS insns.
10184
10185 2010-10-13  Richard Guenther  <rguenther@suse.de>
10186
10187         PR tree-optimization/45788
10188         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
10189         EH update until fixup-cfg.
10190
10191 2010-10-13  Julian Brown  <julian@codesourcery.com>
10192
10193         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
10194         from CORE_REGS and GENERAL_REGS classes.
10195         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
10196         final constraint for register preferencing.
10197
10198 2010-10-13  Richard Guenther  <rguenther@suse.de>
10199
10200         PR tree-optimization/45970
10201         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
10202         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
10203         (stmt_kills_ref_p): Likewise.
10204         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
10205
10206 2010-10-13  Richard Guenther  <rguenther@suse.de>
10207
10208         PR tree-optimization/45982
10209         * tree-ssa-structalias.c (make_constraints_to): New function.
10210         (make_constraint_to): Implement in terms of make_constraints_to.
10211         (find_func_aliases): Properly make return values of pure/const
10212         functions escape if they assign to sth that is not a pointer.
10213
10214 2010-10-13  Richard Guenther  <rguenther@suse.de>
10215
10216         PR middle-end/45874
10217         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
10218         Fixup the CFG when EH was fixed up.
10219
10220 2010-10-13  Ira Rosen  <irar@il.ibm.com>
10221
10222         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
10223         Use operand's type for POINTER_PLUS_EXPR.
10224
10225 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
10226
10227         * c-parser.c (c_parser_for_statement): Initialize incr.
10228
10229 2010-10-12  Xinliang David Li  <davidxl@google.com>
10230
10231         PR tree-optimization/45972
10232         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
10233         with too many arguments.
10234
10235 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10236
10237         PR fortran/45636
10238         * tree-ssa-forwprop.c: Include expr.h.
10239         (constant_pointer_difference, simplify_builtin_call): New functions.
10240         (tree_ssa_forward_propagate_single_use_vars): Call
10241         simplify_builtin_call on builtin calls.
10242
10243 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
10244
10245         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
10246         (*adddi3_extend_sp32): Likewise.
10247         (*subdi3_insn_sp32): Likewise.
10248         (*subdi3_extend_sp32): Likewise.
10249         (*negdi2_sp32): Use negative test for consistency.
10250
10251 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10252
10253         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
10254         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10255         * config/fixed-bit.h: Likewise.
10256         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10257         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
10258         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
10259         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
10260         (DF_SIZE): Likewise.
10261         * doc/tm.texi: Regenerate.
10262
10263 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
10264
10265         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
10266         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
10267         (*isel_reversed_unsigned_<mode>): New.
10268         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
10269         as valid comparisons and adjust operands and output appropriately.
10270         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
10271
10272 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
10273
10274         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
10275         DATA_ALIGNMENT and add COND parameter. Update comments above.
10276         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
10277         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
10278
10279 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
10280
10281         PR bootstrap/45958
10282         * exec-tool.in: Support '-plugin' as the second option to the linker.
10283
10284 2010-10-12  Richard Henderson  <rth@redhat.com>
10285
10286         PR middle-end/45962
10287         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
10288         (expand_stack_vars): Assert large base allocated when used.
10289
10290 2010-10-12  Richard Guenther  <rguenther@suse.de>
10291
10292         * tree-ssa-structalias.c (get_constraint_for_1): Constants
10293         only point to nonlocal, not anything.
10294
10295 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10296
10297         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
10298         unwind info for exceptions.
10299
10300 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10301
10302         PR testsuite/45851
10303         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
10304         Document optional target selector.
10305
10306 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
10307
10308         * flag-types.h: New.
10309         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
10310         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
10311         options.h.
10312         (OPTIONS_H): Define.
10313         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
10314         of options.h.
10315         * configure.ac (tm_include_list): Include options.h not flags.h.
10316         * configure: Regenerate.
10317         * flags.h: Include flag-types.h.  Include options.h at top of file
10318         again.
10319         (enum debug_info_type, enum debug_info_level, enum
10320         debug_info_usage, enum symbol_visibility, struct visibility_flags,
10321         enum ira_algorithm, enum ira_region, enum excess_precision, enum
10322         graph_dump_types, enum stack_check_type,
10323         enum warn_strict_overflow_code): Move to flag-types.h
10324         * opth-gen.awk: Include flag-types.h in options.h.
10325
10326 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
10327
10328         * expr.c (store_expr): Share code for STRING_CST and
10329         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
10330         check if target is a MEM.
10331
10332         * rtl.h: Include hashtab.h.
10333         (iterative_hash_rtx): New prototype.
10334         * rtl.c (iterative_hash_rtx): New function.
10335         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
10336         (output_loc_list): Return immediately if emitted is set, set it.
10337         (hash_loc_operands, hash_locs, hash_loc_list,
10338         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
10339         optimize_location_lists_1, optimize_location_lists): New function.
10340         (dwarf2out_finish): Call optimize_location_lists.
10341         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
10342
10343 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10344
10345         PR testsuite/45974
10346         Revert:
10347         * Makefile.in ($(lang_checks_parallel))
10348         ($(lang_checks_parallelized)): Use single quotes for
10349         $(RUNTESTFLAGS), to allow passing quoted content.
10350
10351 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10352
10353         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
10354         actual_oldval.  Use __builtin_expect.
10355         (SUBWORD_VAL_CAS): Likewise.
10356
10357 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10358
10359         * recog.c (nonmemory_operand): Call immediate_operand for
10360         CONSTANT_P operands.
10361
10362 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
10363
10364         * config/i386/i386.md (movmem<mode>): Macroize expander from
10365         movmem{si,di} using SWI48 mode iterator.
10366         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
10367         *strmovsi_rex_1 using P mode iterator.
10368         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
10369         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
10370         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
10371         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
10372         (setmem<mode>): Macroize expander from setmem{si,di} using
10373         SWI48 mode iterator.
10374         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
10375         *strsetsi_rex_1 using P mode iterator.
10376         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
10377         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
10378         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
10379         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
10380         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
10381         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
10382         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
10383         mode iterator.
10384         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
10385         *strlenqi_rex_1 using P mode iterator.
10386
10387 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
10388
10389         PR bootstrap/45445
10390         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
10391         static functions.
10392         (mark_ref_live, mark_ref_dead): Use them.
10393         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
10394         Save the original reg, and use the new functions.
10395         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
10396         changed.
10397         (check_and_make_def_conflict): Save the original reg.
10398
10399 2010-10-11  Martin Jambor  <mjambor@suse.cz>
10400
10401         PR middle-end/45699
10402         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
10403         thunks.
10404
10405 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10406
10407         * Makefile.in ($(lang_checks_parallel))
10408         ($(lang_checks_parallelized)): Use single quotes for
10409         $(RUNTESTFLAGS), to allow passing quoted content.
10410
10411         PR bootstrap/35855
10412         * opt-functions.awk (BEGIN): New section.
10413         (lower, upper, digit, alnum): New variables.
10414         (static_var, opt_sanitized_name): Use alnum instead of character
10415         classes, for non-C locale.
10416         * optc-gen.awk: Likewise.
10417         * opth-gen.awk: Likewise.
10418
10419 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
10420
10421         * target.def (preferred_reload_class): New hook.
10422         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
10423         * doc/tm.texi: Regenerate.
10424         * targhooks.c (default_preferred_reload_class): New function.
10425         * targhooks.h (default_preferred_reload_class): Declare.
10426         * reload.c (find_dummy_reload): Change preferred_class variable type
10427         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
10428         target hook.
10429         (find_reloads): Change goal_alternative array type from int to
10430         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
10431         (push_reload, find_reloads_address_part): Use
10432         TARGET_PREFERRED_RELOAD_CLASS target hook.
10433         * reload1.c (emit_input_reload_insns): Ditto.
10434         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
10435         hook. Change rclass argument and secondary_class variable types from
10436         'enum reg_class' to reg_class_t.
10437
10438         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
10439         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
10440         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
10441         Change regclass argument and result types from enum reg_class to
10442         reg_class_t.
10443         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10444
10445 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
10446
10447         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
10448         in masking operations.
10449         (simplify_const_unary_operation): Likewise.
10450         (simplify_binary_operation_1): Likewise.
10451         (simplify_const_binary_operation): Likewise.
10452         (simplify_const_relational_operation): Likewise.
10453         (simplify_ternary_operation): Likewise.
10454         (simplify_immed_subreg): Likewise.
10455
10456 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10457
10458         PR middle-end/45862
10459         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
10460         (TARGET_SUPPORTS_WEAK): New.
10461         * doc/tm.texi: Regenerate.
10462         * defaults.h (SUPPORTS_WEAK): Update comment.
10463         (TARGET_SUPPORTS_WEAK): New.
10464         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
10465         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
10466         SUPPORTS_WEAK.
10467         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
10468         make_decl_one_only): Likewise.
10469         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
10470         TARGET_SUPPORTS_WEAK.
10471         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
10472         instead of SUPPORTS_WEAK.
10473
10474 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10475
10476         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
10477
10478 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
10479
10480         * vec.h (VEC_qsort): Define.
10481         * dbxout.c (output_used_types): Use it.
10482         * df-scan.c (df_sort_and_compress_refs): Likewise.
10483         (df_sort_and_compress_mws): Likewise.
10484         * genautomata.c (uniq_sort_alt_states): Likewise.
10485         (evaluate_equiv_classes): Likewise.
10486         (output_trans_table): Likewise.
10487         (output_state): Likewise.
10488         * gimplify.c (compare_case_labels): Likewise.
10489         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
10490         * ipa.c (build_cdtor_fns): Likewise.
10491         * lto.c (lto_wpa_write_files): Likewise.
10492         * sel-sched.c (fill_vec_av_set): Likewise.
10493         * tree-predcom.c (determine_roots_comp): Likewise.
10494         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
10495         (splice_param_accesses): Likewise.
10496         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
10497         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
10498         (reassociate_bb): Likewise.
10499         * tree-ssa-sccvn.c (sort_scc): Likewise.
10500         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
10501
10502 2010-10-11  Ian Lance Taylor  <iant@google.com>
10503
10504         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
10505         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
10506         TREE_THIS_NOTRAP when appropriate.
10507         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
10508         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
10509         newly created MEM_REF.
10510
10511 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
10512
10513         Nathan Froyds patch to hooks FUNCTION_ARG etc.
10514         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
10515         (picochip_incoming_function_arg): Delete.
10516         (picochip_arg_advance): Delete.
10517         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
10518         (FUNCTION_INCOMING_ARG): Delete.
10519         (FUNCTION_ARG_ADVANCE): Delete.
10520         * config/picochip/picochip.c (picochip_function_arg): Take a
10521         const_tree and a bool.
10522         (picochip_incoming_function_arg): Likewise.
10523         (picochip_arg_advance): Likewise.
10524         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10525         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10526
10527 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10528
10529         PR middle-end/45955
10530         * ipa.c (build_cdtor): Delete endless loop.
10531
10532 2010-10-07  Andi Kleen  <ak@linux.intel.com>
10533
10534         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
10535         checksum-options.
10536         (checksum-options): Add.
10537         (cc1-dummy): Remove.
10538         (cc1-checksum): Change to run checksum over object files
10539         and options only.
10540         * dummy-checksum.c: Remove.
10541         * genchecksum.c: Update copyright.
10542         (usage): Allow multiple arguments.
10543         (BLOCKSIZE): Add.
10544         (dosum): Change for incremental checksum. Remove C output.
10545         (main): Iterate over all argument files. Add C output.
10546
10547 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
10548
10549         * params.c (set_param_value_internal): New.
10550         (set_param_value): Use set_param_value_internal.
10551         (maybe_set_param_value, set_default_param_value): New.
10552         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
10553         (maybe_set_param_value, set_default_param_value): Declare.
10554         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
10555         * config/i386/i386.c (ix86_option_override_internal): Use
10556         maybe_set_param_value.
10557         * config/ia64/ia64.c (ia64_option_default_params,
10558         TARGET_OPTION_DEFAULT_PARAMS): New.
10559         (ia64_option_optimization): Move some code to
10560         ia64_option_default_params.
10561         * config/picochip/picochip.c (picochip_option_override): Use
10562         maybe_set_param_value.
10563         * config/rs6000/rs6000.c (rs6000_option_default_params,
10564         TARGET_OPTION_DEFAULT_PARAMS): New.
10565         (rs6000_option_override_internal): Use maybe_set_param_value.
10566         (rs6000_option_optimization): Move some code to
10567         rs6000_option_default_params.
10568         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
10569         * config/sh/sh.c (sh_option_default_params,
10570         TARGET_OPTION_DEFAULT_PARAMS): New.
10571         (sh_option_optimization): Move some code to sh_option_default_params.
10572         * config/sparc/sparc.c (sparc_option_override): Use
10573         maybe_set_param_value.
10574         * config/spu/spu.c (spu_option_default_params,
10575         TARGET_OPTION_DEFAULT_PARAMS): New.
10576         (spu_option_optimization): Move some code to spu_option_default_params.
10577         (spu_option_override): Use maybe_set_param_value.
10578         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
10579         * doc/tm.texi: Regenerate.
10580         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
10581         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
10582         compiler_params.
10583         (default_options_optimization): Use maybe_set_param_value.
10584         (finish_options): Use maybe_set_param_value.
10585         * target.def (target_option.default_params): New hook.
10586         * toplev.c (general_init): Call targetm.target_option.default_params.
10587
10588 2010-10-11  Ira Rosen  <irar@il.ibm.com>
10589
10590         PR tree-optimization/45902
10591         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
10592         vector type for constants, unless it's a pointer.
10593
10594 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10595
10596         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
10597
10598 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
10599
10600         PR target/45870
10601         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
10602         (ix86_delegitimize_address): Use it.
10603
10604 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
10605
10606         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
10607
10608 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
10609
10610         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
10611         to cum struct in the call to function_arg_advance.
10612         (alpha_function_arg_advance): Mark named as unused.
10613
10614 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
10615
10616         * config/mips/mips.c (mips_handle_option): Make "value" with
10617         ATTRIBUTE_UNUSED.
10618
10619 2010-10-09  Richard Henderson  <rth@redhat.com>
10620
10621         PR rtl-opt/33721
10622         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
10623         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
10624         required_align, tidy the code a bit.  Emit split_stack code in the
10625         right place.  Mark the return value with the alignment properly.
10626         * expr.h (allocate_dynamic_stack_space): Update decl.
10627         * builtins.c (expand_builtin_apply): Update call to
10628         allocate_dynamic_stack_space.
10629         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
10630         * calls.c (initialize_argument_information): Update call to
10631         allocate_dynamic_stack_space.
10632         (expand_call): Likewise.
10633
10634         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
10635         Don't update_stack_alignment here.
10636         (alloc_stack_frame_space): Make ALIGN unsigned.
10637         (stack_var_cmp): Sort by alignment too.
10638         (partition_stack_vars): Don't merge large and small alignment vars.
10639         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
10640         Take care when BASE is not virtual_stack_vars_rtx.
10641         (expand_stack_vars): Allocate dynamic stack space for large
10642         alignment variables.
10643         (expand_one_stack_var): Update all to expand_one_stack_var_at.
10644         (defer_stack_allocation): True for large alignment vars.
10645         (update_stack_alignment): Merge into ...
10646         (expand_one_var): ... here.
10647         (gimple_expand_cfg): Place code from expand_stack_vars.
10648
10649 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10650
10651         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10652         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
10653         (pdp11_function_arg_advance): New function.
10654         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10655
10656 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10657
10658         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
10659         * libgcc2.c: Likewise.
10660
10661 2010-10-09  Richard Guenther  <rguenther@suse.de>
10662
10663         PR lto/45956
10664         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
10665         Properly check if a decl is an automatic var.
10666
10667 2010-10-09  Richard Guenther  <rguenther@suse.de>
10668
10669         PR lto/45947
10670         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
10671
10672 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10673
10674         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
10675         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10676         * config/mmix/mmix.c (mmix_function_arg): Rename to...
10677         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
10678         bool arguments.
10679         (mmix_function_arg): New function.
10680         (mmix_function_incoming_arg): New function.
10681         (mmix_function_arg_advance): New function.
10682         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
10683         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10684
10685 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10686
10687         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10688         * config/vax/vax.c (vax_function_arg): New function.
10689         (vax_function_arg_advance): New function.
10690         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10691
10692 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10693
10694         * config/pa/pa-protos.h (function_arg): Delete.
10695         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10696         * config/pa/pa.c (function_arg): Rename to...
10697         (pa_function_arg): ...this.  Make static.  Take a const_tree and
10698         a bool.
10699         (pa_function_arg_advance): New function.
10700         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10701
10702 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10703
10704         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10705         * config/m68k/m68k.c (m68k_function_arg): New function.
10706         (m68k_function_arg_advance): New function.
10707         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10708
10709 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10710
10711         * config/avr/avr-protos.h (function_arg): Delete.
10712         (function_arg_advance): Delete.
10713         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10714         * config/avr/avr.c (function_arg): Rename to...
10715         (avr_function_arg): ...this.  Make static.  Take a const_tree and
10716         a bool.
10717         (function_arg_advance): Rename to...
10718         (avr_function_arg_advance): ...this.  Make static.  Take a
10719         const_tree and a bool.
10720         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10721
10722 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10723
10724         * config/alpha/alpha-protos.h (function_arg): Delete.
10725         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10726         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
10727         * config/alpha/alpha.c (function_arg): Rename to...
10728         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
10729         a bool.  Delete TARGET_ABI_UNICOSMK code.
10730         (alpha_function_arg_advance): New function.
10731         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10732
10733 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10734
10735         * config/mep/mep-protos.h (mep_function_arg): Delete.
10736         (mep_function_arg_advance): Delete.
10737         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10738         * config/mep/mep.c (mep_function_arg): Make static.  Take a
10739         const_tree and a bool.
10740         (mep_function_arg_advance): Likewise.
10741         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10742
10743 2010-10-09  Richard Guenther  <rguenther@suse.de>
10744
10745         PR tree-optimization/45945
10746         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
10747
10748 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
10749
10750         PR tree-optimization/45612
10751         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
10752         Test LABEL_DECLs as well.  Fix formatting issues.
10753         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
10754         whose label is present in NON_SSA_VARS.
10755         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
10756         as well.  Fix formatting issues.
10757         (visit_bb): Fix typos and formatting issue.
10758
10759 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
10760
10761         PR tree-optimization/45950
10762         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
10763         before initializing vno->op.
10764
10765 2010-10-09  Ralf Corsépius  <ralf.corsepius@rtems.org>
10766
10767         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
10768         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
10769
10770 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
10771
10772         PR target/45913
10773         * config/i386/i386.c (ix86_binary_operator_ok): Support
10774         "andhi/andsi/anddi" as a zero-extending move.
10775
10776 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10777
10778         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
10779         into a temporary array.
10780
10781 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
10782
10783         PR tree-optimization/45903
10784         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
10785         of {A,L}SHIFTRT of MEM.
10786
10787 2010-10-08  Richard Guenther  <rguenther@suse.de>
10788
10789         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
10790         Re-construct BLOCK_VARS.
10791         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
10792         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
10793         * tree.c (free_lang_data_in_block): Remove.
10794         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
10795         Do not touch the BLOCK tree.
10796         * expr.c (expand_expr_real_1): Allow externals.
10797
10798 2010-10-08  Richard Guenther  <rguenther@suse.de>
10799
10800         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
10801         Do not output BLOCK_SUBBLOCKS.
10802         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
10803         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
10804         Re-construct BLOCK_SUBBLOCKS of parent block.
10805         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
10806         for BINFO_BASE_ACCESSES.
10807
10808 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
10809
10810         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
10811         (TREE_H): Include $(FLAGS_H) instead of options.h.
10812         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
10813         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10814         * common.opt (flag_complex_method, flag_evaluation_order,
10815         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
10816         Variable declarations.
10817         * configure.ac (tm_include_list): Include flags.h instead of options.h.
10818         * configure: Regenerate.
10819         * flags.h: Condition out contents for target libraries.  Include
10820         options.h at end of file.
10821         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
10822         flag_evaluation_order, flag_warn_unused_result): Remove.
10823         * gcc.c (main): Intialize global_options with global_options_init.
10824         * langhooks-def.h (lhd_init_options_struct): Declare.
10825         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
10826         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
10827         * langhooks.c (lhd_init_options_struct): New.
10828         * langhooks.h (struct lang_hooks): Add init_options_struct.
10829         Update comment on init_options.
10830         * optc-gen.awk: Generate initializer for global_options_init, not
10831         global_options.
10832         * opth-gen.awk: Condition out structure declarations for target
10833         libraries.  Declare global_options_init.
10834         * opts-common.c: Include flags.h instead of options.h.
10835         * opts.c (flag_warn_unused_result): Remove.
10836         (read_cmdline_options): Take gcc_options parameters.  Pass them to
10837         read_cmdline_option.
10838         (initial_lang_mask, initial_min_crossjump_insns,
10839         initial_max_fields_for_field_sensitive,
10840         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
10841         (init_options_once): New.  Split out of decode_options.
10842         (init_options_struct): New.  Split out of decode_options.
10843         (decode_cmdline_options_to_array_default_mask): New.
10844         (default_options_optimization): New.  Split out of decode_options.
10845         (decode_options): Move most code to other functions.  Update call
10846         to read_cmdline_options.
10847         (finish_options): New.  Split out of decode_options.
10848         * opts.h (decode_options): Add gcc_options parameters.
10849         (init_options_once, init_options_struct,
10850         decode_cmdline_options_to_array_default_mask): New.
10851         * toplev.c (flag_complex_method, flag_ira_algorithm,
10852         flag_ira_region, flag_evaluation_order): Remove.
10853         (general_init): Use global_options_init for initial flag values
10854         for global_dc.
10855         (toplev_main): Call init_options_once, init_options_struct,
10856         lang_hooks.init_options_struct,
10857         decode_cmdline_options_to_array_default_mask and
10858         lang_hooks.init_option before decode_options.  Update arguments to
10859         decode_options.
10860         * tree.h: Include flags.h instead of options.h.
10861
10862 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10863
10864         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10865
10866 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10867
10868         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
10869         Delete.
10870         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
10871         (FUNCTION_INCOMING_ARG): Delete.
10872         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
10873         (function_arg_slotno): Likewise.  Take bool arguments.
10874         (sparc_arg_partial_bytes): Update call to it.
10875         (function_arg): Rename to...
10876         (sparc_function_arg_1): ...this.  Take bool arguments.
10877         (sparc_function_arg, sparc_function_incoming_arg): New functions.
10878         (function_arg_advance): Rename to...
10879         (sparc_function_arg_advance): ...this.  Take bool argument.
10880         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
10881         (TARGET_FUNCTION_INCOMING_ARG): Define.
10882
10883 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10884
10885         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
10886         Delete.
10887         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10888         * config/bfin/bfin.c (function_arg_advance): Rename to...
10889         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
10890         and bool arguments.
10891         (function_arg): Rename to...
10892         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
10893         arguments.
10894         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10895
10896 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10897
10898         * config/score/score-protos.h (score_function_arg): Delete.
10899         (score_function_arg_advance): Delete.
10900         * config/score/score3.h (score3_function_arg_advance): Take a
10901         const_tree and a bool.
10902         (score3_function_arg): Likewise.
10903         * config/score/score7.h (score7_function_arg_advance): Likewise.
10904         (score7_function_arg): Likewise.
10905         * config/score/score3.c (score3_classify_arg): Likewise.
10906         (score3_function_arg_advance, score3_function_arg): Likewise.
10907         * config/score/score7.c (score7_classify_arg): Likewise.
10908         (score7_function_arg_advance, score7_function_arg): Likewise.
10909         * config/score/score.c (score_function_arg_advance): Likewise.
10910         (score_function_arg): Likewise.  De-const-ify `cum' argument.
10911         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10912
10913 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10914
10915         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
10916         (s390_function_arg): Delete.
10917         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
10918         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
10919         (s390_function_arg_integer): Likewise.
10920         (s390_function_arg_advance): Make static.  Take a const_tree and
10921         a bool.
10922         (s390_function_arg): Likewise.
10923         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10924
10925 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10926
10927         * config/spu/spu-protos.h (spu_function_arg): Delete.
10928         * config/spu/spu.h (FUNCTION_ARG): Delete.
10929         (FUNCTION_ARG_ADVANCE): Move code to ...
10930         * config/spu/spu.c (spu_function_arg_advance): New function.
10931         (spu_function_arg): Make static.  Take a const_tree and a bool.
10932         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
10933         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
10934
10935 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10936
10937         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10938
10939 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10940
10941         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
10942         (init_vn_nary_op_from_op): New function.
10943         (init_vn_nary_op_from_stmt): New function.
10944         (vn_nary_op_lookup_1): New function.
10945         (sizeof_vn_nary_op): New function.
10946         (alloc_vn_nary_op_noinit): New function.
10947         (alloc_vn_nary_op): New function.
10948         (vn_nary_op_insert_into): New function.
10949         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
10950         (vn_nary_op_lookup): Likewise.
10951         (vn_nary_op_lookup_stmt): Likewise.
10952         (vn_nary_op_insert_pieces): Likewise.
10953         (vn_nary_op_insert): Likewise.
10954         (vn_nary_op_insert_stmt): Likewise.
10955         (copy_nary): Likewise.
10956         (set_value_id_for_result): New function.
10957         (set_hashtable_value_ids): Call it.
10958
10959 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10960
10961         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10962         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
10963
10964 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
10965
10966         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
10967         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
10968
10969 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10970
10971         PR debug/45656
10972         * cse.c (cse_extended_basic_block): Preserve cc0 info across
10973         debug isnsn.  Skip them when searching for cc0 setter.
10974         (set_live_p): Skip debug insns when searching for cc0 user.
10975
10976 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
10977
10978         PR debug/45673
10979         PR debug/45604
10980         PR debug/45419
10981         PR debug/45408
10982         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
10983         type of MEM_REFs to INTEGER_CSTs.
10984
10985 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10986
10987         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
10988         m68hc11_print_operand_address.
10989
10990 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
10991
10992         * builtins.c (rewrite_call_expr): Move code to...
10993         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
10994         (rewrite_call_expr_array): New function.
10995         (fold_builtin_sprintf_chk_1): New function.
10996         (fold_builtin_sprintf_chk): Call it.
10997         (gimple_fold_builtin_sprintf_chk): Likewise.
10998         (fold_builtin_snprintf_chk_1): New function.
10999         (fold_builtin_snprintf_chk): Call it.
11000         (gimple_fold_builtin_snprintf_chk): Likewise.
11001         (gimple_rewrite_call_expr): Delete.
11002
11003 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
11004
11005         * config.host: Update copyright year.
11006
11007 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
11008
11009         * config.host (host_lto_plugin_soname): New shell variable.
11010         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
11011         * config.in: Regenerate.
11012         * configure: Regenerate.
11013         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
11014         LTO plugin shared library.
11015
11016 2010-10-07  Richard Henderson  <rth@redhat.com>
11017
11018         * target.h (enum unwind_info_type): Move ...
11019         * coretypes.h: ... here.
11020
11021 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
11022
11023         * doc/objc.texi (Fast enumeration protocol): Mention that
11024         'unsigned int' can also be used instead of 'unsigned long' in
11025         countByEnumeratingWithState:objects:count:.
11026
11027 2010-10-07  Martin Jambor  <mjambor@suse.cz>
11028
11029         * tree-sra.c (struct access): New field grp_assignment_write.
11030         (dump_access): Dump grp_assignment_write.
11031         (build_accesses_from_assign): Set grp_assignment_write.
11032         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
11033         (mark_read_status): Renamed to mark_rw_status, individual values
11034         renamed too.
11035         (analyze_access_subtree): Changed type of mark_write to
11036         mark_read_status.  Fixed propagating of mark_read and
11037         mark_write.  Changed benefit estimate.  Updated comment.
11038
11039 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
11040
11041         PR Tree-Vect/45847
11042         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
11043         check for vectype_out returned by get_vectype_for_scalar_type().
11044
11045 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
11046
11047         PR target/45805
11048         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
11049         constraint, add register specifier in instruction template.
11050         (neon_vec_pack_trunc_<mode>): Likewise.
11051         (neon_vec_<US>mult_<mode>): Add register specifier to
11052         instruction template.
11053
11054 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
11055
11056         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
11057         cygwin2.o.
11058         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
11059         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
11060         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
11061         (cygwin2.o): Likewise.
11062         * config/i386/cygwin1.c: Delete file.
11063         * config/i386/cygwin2.c: Likewise.
11064         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
11065         make all {%!mno-cygwin} ones unconditional.
11066         (STARTFILE_SPEC): Likewise.
11067         (REAL_LIBGCC_SPEC): Likewise.
11068         (LIB_SPEC): Likewise.
11069         (CXX_WRAP_SPEC): Likewise.
11070         (LINK_SPEC): Likewise.
11071         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
11072         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
11073         (cygwin_gplusplus_include_dir): Delete now-unused array.
11074         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
11075         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
11076         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
11077         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
11078         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
11079         (cygwin_local_include_dir): Delete now-unused array.
11080         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
11081         (cygwin_cross_include_dir): Delete now-unused array.
11082         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
11083         (cygwin_tool_include_dir): Delete now-unused array.
11084         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
11085         (cygwin_standard_include_dir): Delete now-unused array.
11086         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
11087         (GEN_CVT_ARRAY): Delete now-unused macro definition.
11088         (cvt_to_mingw): Delete now-unused array.
11089         (mingw_scan): Remove prototype of deleted function.
11090         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
11091         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
11092         * doc/invoke.texi (-mcygwin): Don't document removed option.
11093         (-mno-cygwin): Likewise.
11094
11095 2010-10-07  Richard Guenther  <rguenther@suse.de>
11096
11097         * machmode.h (mode_for_vector): Declare.
11098         * stor-layout.c (mode_for_vector): New function, split out from ...
11099         (layout_type): ... here.
11100         * tree-vectorizer.h (current_vector_size): Declare.
11101         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
11102         mask vector type is available.
11103         (get_vectype_for_scalar_type): Rename to ...
11104         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
11105         size argument.
11106         (get_vectype_for_scalar_type): New wrapper around
11107         get_vectype_for_scalar_type_and_size using current_vector_size.
11108         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
11109         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
11110         of vect_analyze_loop here.
11111         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
11112         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
11113         to autodetect.
11114         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
11115         V8SF to V8SI conversion builtin.
11116
11117 2010-10-07  Richard Guenther  <rguenther@suse.de>
11118
11119         * target.def (autovectorize_vector_sizes): New target hook.
11120         * targhooks.c (default_autovectorize_vector_sizes): New function.
11121         * targhooks.h (default_autovectorize_vector_sizes): Declare.
11122         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
11123         Document.
11124         * doc/tm.texi: Update.
11125         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
11126         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
11127
11128 2010-10-07  Richard Guenther  <rguenther@suse.de>
11129
11130         * target.def (units_per_simd_word): Rename to ...
11131         (preferred_simd_mode): ... this.  Return mode instead of size.
11132         * targhooks.c (default_units_per_simd_word): Rename to ...
11133         (default_preferred_simd_mode): ... this.  Return word_mode.
11134         * targhooks.h (default_preferred_simd_mode): Declare.
11135         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
11136         (arm_preferred_simd_mode): ... this.  Re-implement.
11137         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
11138         (ix86_preferred_simd_mode): ... this.  Re-implement.
11139         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
11140         (sparc_preferred_simd_mode): ... this.  Re-implement.
11141         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
11142         (mips_preferred_simd_mode): ... this.  Re-implement.
11143         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
11144         (rs6000_preferred_simd_mode): ... this.  Re-implement.
11145         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
11146         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
11147         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
11148         * doc/tm.texi: Update.
11149
11150 2010-10-07  Richard Guenther  <rguenther@suse.de>
11151
11152         PR middle-end/45869
11153         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
11154         of pointers.
11155
11156 2010-10-07  Alan Modra  <amodra@gmail.com>
11157
11158         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
11159         rather than sign extension by hand.
11160
11161 2010-10-07  Jan Hubicka  <jh@suse.cz>
11162
11163         PR middle-end/45926
11164         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
11165
11166 2010-10-07  Richard Guenther  <rguenther@suse.de>
11167
11168         PR bootstrap/45914
11169         * configure.ac: Fix typo.
11170         * configure: Regenerated.
11171
11172 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11173
11174         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
11175         define_builtin_std where it's unnecessary.
11176         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
11177
11178 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
11179
11180         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
11181         * doc/tm.texi.in: Regenerate.
11182         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
11183         * targhooks.c (default_class_likely_spilled_p): Don't use the
11184         CLASS_LIKELY_SPILLED_P macro.
11185
11186         * config/arm/arm.md: Update comment.
11187
11188 2010-10-06  Jan Hubicka  <jh@suse.cz>
11189
11190         * ipa.c (cgraph_remove_unreachable_nodes): External references can
11191         always be removed.
11192         (cgraph_externally_visible_p): We can not bring local comdats that
11193         are known to linker; fix handling of internal visibility.
11194         (function_and_variable_visibility): Likewise.
11195
11196 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
11197
11198         PR rtl-optimization/45394
11199         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
11200         (struct rtx_subst_pair): Remove AFTER field.
11201         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
11202         (propagate_for_debug): Remove MOVE parameter and adjust.
11203         (try_combine): In the special case where I2 is a PARALLEL, combine only
11204         destinations of SETs and set I2SRC to the I2 source.
11205         Adjust calls to propagate_for_debug throughout.
11206         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
11207         insns.
11208
11209 2010-10-06  Olivier Hainque  <hainque@adacore.com>
11210
11211         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
11212         switch on insn codes as sequence of ifs.
11213
11214 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11215
11216         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
11217         be UI_NONE for picochip.
11218         (picochip_option_override): Do not disable exception flags.
11219         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
11220         Declare.
11221
11222 2010-10-06  Richard Guenther  <rguenther@suse.de>
11223
11224         * Makefile.in (regmove.o): Depend on $(TARGET_H).
11225
11226 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
11227
11228         Implemented fast enumeration for Objective-C.
11229         * c-parser.c (objc_could_be_foreach_context): New.
11230         (c_lex_one_token): Recognize RID_IN keyword in a potential
11231         Objective-C foreach context.
11232         (c_parser_declaration_or_fndef): Added parameter.  Accept
11233         Objective-C RID_IN keyword as terminating a declaration; in that
11234         case, return the declaration in the new parameter.
11235         (c_parser_extenral_declaration): Updated calls to
11236         c_parser_declaration_or_fndef.
11237         (c_parser_declaration_or_fndef): Same change.
11238         (c_parser_compound_statement_nostart): Same change.
11239         (c_parser_label): Same change.
11240         (c_parser_objc_methodprotolist): Same change.
11241         (c_parser_omp_for_loop): Same change.
11242         (c_parser_for_statement): Detect and parse Objective-C foreach
11243         statements.
11244         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
11245         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
11246         fast enumeration parsing code to turn off the c99 error but still
11247         perform checks on the loop declarations.
11248         * c-tree.h (check_for_loop_decls): Updated declaration.
11249         * doc/objc.texi: Document fast enumeration.
11250
11251 2010-10-06  Nick Clifton  <nickc@redhat.com>
11252
11253         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
11254         (MDR_REGNUM): Define.
11255         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
11256         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
11257         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
11258         (REGISTER_NAMES): Add MDR.
11259         (DWARF2_DEBUGGING_INFO): Define to 1.
11260         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
11261         (F): New function.  Sets RTX_FRAME_RELATED_P.
11262         (mn10300_gen_multiple_store): Use F.
11263         (expand_prologue): Use F.  Use gen_movsf() to push floating
11264         point registers.
11265         (expand_epilogue): Use gen_movsf() to pop floating point registers.
11266         (mn10300_option_override): Disable combine stack adjust pass.
11267
11268 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
11269
11270         PR target/45901
11271         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
11272         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
11273
11274 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
11275
11276         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
11277         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
11278         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
11279         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
11280         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
11281         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
11282         BUILT_IN_TOUPPER): Mark as leaf.
11283
11284         PR middle-end/45838
11285         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
11286         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
11287         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
11288         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
11289         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
11290         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
11291         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
11292
11293 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
11294
11295         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
11296         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
11297         (m68hc11_class_likely_spilled_p): New function.
11298
11299 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
11300
11301         * c-parser.c (c_parser_objc_method_definition): Updated comment.
11302
11303 2010-10-05  Jan Hubicka  <jh@suse.cz>
11304
11305         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
11306         Document.
11307         * opts.c (decode_options): Handle lto partitions.
11308         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
11309         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
11310
11311 2010-10-05  Jan Hubicka  <jh@suse.cz>
11312
11313         * cgraphunit.c (assemble_function): Output thunks and aliases before
11314         the function itself.
11315
11316 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
11317
11318         * config/picochip/picochip.c (picochip_option_override): Disable
11319         exception flags for picochip.
11320
11321 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
11322
11323         * opts-common.c (handle_option, handle_generated_option,
11324         read_cmdline_option, set_option): Add diagnostic_context
11325         parameter.  Update calls among these functions.
11326         (set_option): Don't use global_dc.
11327         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
11328         (decode_options): Pass global_dc to enable_warning_as_error.
11329         (common_handle_option): Pass global_dc to enable_warning_as_error.
11330         (enable_warning_as_error): Add diagnostic_context parameter.
11331         Document parameters.  Don't use global_dc.  Pass
11332         diagnostic_context parameter to handle_generated_option.
11333         * opts.h (set_option, handle_option, handle_generated_option,
11334         read_cmdline_option, enable_warning_as_error): Add
11335         diagnostic_context parameter.
11336         * Makefile.in (lto-opts.o): Update dependencies.
11337         * coretypes.h (struct diagnostic_context, diagnostic_context):
11338         Declare here.
11339         * diagnostic.h (diagnostic_context): Don't declare typedef here.
11340         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
11341         * langhooks-def.h (struct diagnostic_context): Don't declare here.
11342         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
11343         using diagnostic_context typedef.
11344         * langhooks.c (lhd_initialize_diagnostics): Declare using
11345         diagnostic_context typedef.
11346         * langhooks.h (struct diagnostic_context): Don't declare here.
11347         (initialize_diagnostics, print_error_function): Declare using
11348         diagnostic_context typedef.
11349         * lto-opts.c: Include diagnostic.h.
11350         (lto_reissue_options): Pass global_dc to set_option.  Pass
11351         DK_UNSPECIFIED not 0.
11352         * plugin.c (plugins_internal_error_function): Declare using
11353         diagnostic_context typedef.
11354         * plugin.h (struct diagnostic_context): Don't declare here.
11355         (plugins_internal_error_function): Declare using
11356         diagnostic_context typedef.
11357
11358 2010-10-05  Olivier Hainque  <hainque@adacore.com>
11359             Nicolas Roche  <roche@adacore.com>
11360
11361         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
11362         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
11363
11364 2010-10-05  Ira Rosen  <irar@il.ibm.com>
11365
11366         PR tree-optimization/45752
11367         * tree-vect-slp.c (vect_get_mask_element): Remove static
11368         variables, make them function arguments.
11369         (vect_transform_slp_perm_load): Pass new arguments to
11370         vect_get_mask_element.
11371
11372 2010-10-05  Richard Guenther  <rguenther@suse.de>
11373
11374         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
11375         (gimple_mod_pow2): Likewise.
11376         (gimple_mod_subtract): Likewise.
11377         (gimple_ic): Likewise.
11378         (gimple_stringop_fixed_value): Likewise.
11379         * tree-profile.c (tree_init_edge_profiler): Mark profile
11380         functions nothrow and leaf.
11381         (add_abnormal_goto_call_edges): Remove.
11382         (tree_gen_edge_profiler): Work on SSA form.
11383         (tree_gen_ic_profiler): Likewise.  Simplify.
11384         (do_tree_profiling): Update SSA form.
11385         (pass_tree_profile): Remove.
11386         (do_tree_profiling): Likewise.
11387         (gate_tree_profile_ipa): New function.
11388         (pass_ipa_tree_profile): New.
11389         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
11390         state of instrumented functions.
11391         * passes.c (init_optimization_passes): Remove early non-SSA
11392         inlining.  Move profiling after early optimizations.
11393         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
11394         (pass_ipa_early_inline): Likewise.
11395         * tree-pass.h (pass_ipa_early_inline): Remove.
11396         (pass_tree_profile): Likewise.
11397         (pass_ipa_tree_profile): Declare.
11398
11399 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11400             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
11401
11402         * config/s390/s390.c (z196_cost): New.
11403         (s390_handle_arch_option): Add -march=z196.
11404         (s390_option_override): Use the new cost function and use the z10
11405         defaults also for z196.
11406         (legitimate_reload_constant_p): Adjust comment.
11407         (legitimate_reload_fp_constant_p): New function.
11408         (s390_preferred_reload_class): Distingiush between FP and Int constants.
11409         (preferred_la_operand_p): Avoid la with index on z196.
11410         (s390_adjust_priority): Trigger also for z196.
11411         (s390_issue_rate): Issue rate for z196 is 3.
11412         (s390_z10_fix_long_loop_prediction): Rename to ...
11413         (s390_fix_long_loop_prediction): ... this.
11414         (s390_reorg): Apply the z10 adjustments also for z196.
11415         (s390_loop_unroll_adjust): Do this also for z196.
11416         * config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
11417         (enum processor_flags): Add PF_Z196.
11418         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
11419         (TARGET_CPU_Z196, TARGET_Z196): New macros.
11420         * config.gcc: Enable z196 for --with-arch.
11421         * config/s390/2817.md: New file.
11422         * config/s390/2084.md: New type for multiply and add.
11423         * config/s390/2097.md: Likewise.
11424         * config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
11425         (UNSPECV_ATOMIC_OP): New constants.
11426         (fmadddf, fmaddsf): New values for type attribute.
11427         (z196prop): New insn attribute.
11428         (cpu, cpu_facility): Add z196.
11429         (ATOMIC_Z196): New code iterator.
11430         (noxa): New code attribute.
11431         (gk): New mode attribute.
11432         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
11433         Support load zero for fp constants.
11434         (fixuns_truncdddi2, fixuns_trunctddi2)
11435         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
11436         for z196.
11437         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
11438         (popcounthi2, popcountqi2): New expander.
11439         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
11440         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
11441         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
11442         insn definition.
11443         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
11444         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
11445         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
11446         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
11447         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
11448         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
11449         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
11450         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
11451         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
11452         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
11453         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
11454         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
11455         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
11456         Support new z196 instructions.
11457
11458 2010-10-05  Richard Guenther  <rguenther@suse.de>
11459
11460         PR middle-end/45877
11461         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
11462         case where gimplification optimizes away the stmt.
11463
11464 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11465
11466         PR debug/45849
11467         * var-tracking.c (strip_pointer_flags): New function.
11468         (emit_note_insn_var_location): If rtx_equal_p check failed,
11469         retry on locations simplified with simplify_replace_fn_rtx
11470         and strip_pointer_flags as its callback.
11471
11472 2010-10-04  Jan Hubicka  <jh@suse.cz>
11473
11474         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
11475         (can_refer_decl_in_current_unit_p): ... this one; reverse return
11476         value; handle comdats too.
11477         (canonicalize_constructor_val): Use it; handle function_decls
11478         correctly.
11479         (gimple_fold_obj_type_ref_known_binfo): Likewise.
11480         * gimple.c (get_base_address): Accept all kinds of decls.
11481
11482 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11483
11484         * flags.h (g_switch_value, g_switch_set): Remove.
11485         * opts.c (g_switch_value, g_switch_set): Remove.
11486         * config/g.opt (G): Add Var(g_switch_value).
11487         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
11488         (alpha_option_override): Check global_options_set.x_g_switch_value
11489         instead of g_switch_set.
11490         (alpha_in_small_data_p): Remove cast in comparison with
11491         g_switch_value.
11492         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
11493         g_switch_value to unsigned HOST_WIDE_INT.
11494         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
11495         with g_switch_value.
11496         (frv_handle_option): Don't handle -G here.
11497         (frv_option_override): Check global_options_set.x_g_switch_value
11498         instead of g_switch_set.  Don't modify g_switch_set.
11499         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
11500         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
11501         g_switch_value to unsigned HOST_WIDE_INT.
11502         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
11503         (ia64_option_override): Check global_options_set.x_g_switch_value
11504         instead of g_switch_set.
11505         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
11506         Remove.
11507         (lm32_in_small_data_p): Remove cast in comparison with
11508         g_switch_value.
11509         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
11510         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
11511         HOST_WIDE_INT.
11512         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
11513         (m32r_init): Check global_options_set.x_g_switch_value instead of
11514         g_switch_set.
11515         (m32r_in_small_data_p): Remove cast in comparison with
11516         g_switch_value.
11517         (m32r_file_start): Format g_switch_value with %d.
11518         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
11519         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
11520         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
11521         handle -G here.
11522         (microblaze_option_override): Check
11523         global_options_set.x_g_switch_value instead of g_switch_set.
11524         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
11525         (mips_option_override): Check global_options_set.x_g_switch_value
11526         instead of g_switch_set.
11527         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
11528         (rs6000_file_start): Format g_switch_value with %d.
11529         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
11530         comparisons with g_switch_value.
11531         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
11532         global_options_set.x_g_switch_value instead of g_switch_set.
11533         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11534         global_options_set.x_g_switch_value instead of g_switch_set.
11535         * config/score/score.c (score_handle_option): Don't handle -G here.
11536         * config/score/score3.c (score3_option_override): Check
11537         global_options_set.x_g_switch_value instead of g_switch_set.
11538         * config/score/score7.c (score7_option_override): Check
11539         global_options_set.x_g_switch_value instead of g_switch_set.
11540
11541 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
11542
11543         * common.opt (fira-coalesce): Remove.
11544
11545         * doc/invoke.texi (flag_ira_coalesce): Remove.
11546
11547         * ira-color.c (allocno_coalesced_p): Move before
11548         copy_freq_compare_func.
11549         processed_coalesced_allocno_bitmap): Ditto.
11550         (update_conflict_hard_regno_costs): Don't use
11551         ALLOCNO_FIRST_COALESCED_ALLOCNO.
11552         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
11553         (assign_hard_reg): Assume no coalesced allocnos.
11554         (get_coalesced_allocnos_attributes): Remove.
11555         (bucket_allocno_compare_func): Assume no coalesced allocnos.
11556         (push_allocno_to_stack): Ditto.
11557         (remove_allocno_from_bucket_and_push): Use
11558         ira_print_expanded_allocno instead of print_coalesced_allocno.
11559         (push_allocnos_to_stack): Assume uncoalesced allocnos.
11560         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
11561         all_conflicting_hard_regs.
11562         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
11563         (setup_allocno_left_conflicts_size): Ditto.
11564         (put_allocno_into_bucket): Ditto.
11565         (copy_freq_compare_func): Remove.
11566         (copy_freq_compare_func, merge_allocnos): Move before
11567         coalesced_pseudo_reg_freq_compare.
11568         coalesced_allocno_conflict_p): Ditto.
11569         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
11570         parameter.  Assume it true.
11571         (color_allocnos): Assume uncoalesced allocnos.  Use
11572         ira_print_expanded_allocno instead of print_coalesced_allocno.
11573         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
11574         parameter.
11575
11576         * ira.c: Remove comment about coalescing.
11577
11578 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11579
11580         * config/mips/mips.h (target_flags_explicit): Declare for
11581         GENERATOR_FILE.
11582
11583 2010-10-04  Andi Kleen  <ak@linux.intel.com>
11584
11585         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
11586         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
11587
11588 2010-10-04  Matthias Klose  <doko@ubuntu.com>
11589
11590         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
11591         multilib osdirname if it exists.
11592         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
11593
11594 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
11595
11596         PR middle-end/45876
11597         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
11598         arg0's type or its unsigned counterpart as utype.  Convert
11599         arg1 to utype unconditionally.
11600
11601 2010-10-04  Julian Brown  <julian@codesourcery.com>
11602
11603         * expr.c (expand_assignment): Add assertion to prevent emitting
11604         null rtx for movmisalign pattern.
11605         (expand_expr_real_1): Likewise.
11606         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
11607         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
11608         (arm_vector_alignment_reachable): New.
11609         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
11610         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
11611         (arm_print_operand): Include alignment qualifier in %A.
11612         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
11613         (movmisalign<mode>): New expander.
11614         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
11615         insn patterns.
11616
11617 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
11618
11619         * optc-gen.awk: Define global_options_set.  Don't define
11620         target_flags_explicit.
11621         * opth-gen.awk: Declare global_options_set.  Define
11622         target_flags_explicit as macro.
11623         * opts-common.c (handle_option): Take opts_set and generated_p
11624         parameters.
11625         (handle_generated_option, read_cmdline_option, set_option): Take
11626         opts_set parameter.
11627         (set_option): Use opts_set instead of hardcoding target_flags and
11628         target_flags_explicit.
11629         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
11630         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
11631         flag_value_profile_transformations_set, flag_peel_loops_set,
11632         flag_branch_probabilities_set, flag_inline_functions_set,
11633         flag_ipa_cp_set, flag_ipa_cp_clone_set,
11634         flag_predictive_commoning_set, flag_unswitch_loops_set,
11635         flag_gcse_after_reload_set): Remove.
11636         (common_handle_option, lang_handle_option, target_handle_option):
11637         Take opts_set parameter.  Assert that it is &global_options_set.
11638         (common_handle_option): Don't set _set variables.  Check opts_set
11639         instead of such variables.
11640         (enable_warning_as_error): Pass &global_options_set to
11641         handle_generated_option.
11642         * opts.h (cl_option_handler_func.handler, set_option,
11643         handle_option, handle_generated_option, read_cmdline_option): Add
11644         opts_set parameters.
11645         (handle_option): Add generated_p parameter.
11646         * config/i386/i386.c (ix86_function_specific_save,
11647         ix86_function_specific_restore): Updat for renaming of
11648         target_flags_explicit field.
11649         * config/i386/i386.opt (target_flags_explicit): Rename to
11650         ix86_target_flags_explicit.
11651         * config/ia64/ia64.c (ia64_override_options_after_change): Check
11652         global_options_set.x_flag_selective_scheduling and
11653         global_options_set.x_flag_selective_scheduling2, not
11654         sel_sched_switch_set.
11655         * flags.h (sel_sched_switch_set,
11656         flag_speculative_prefetching_set): Remove.
11657         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
11658         that it is &global_options_set.
11659         (process_command): Pass &global_options_set to read_cmdline_option.
11660         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
11661         set_option.
11662         * toplev.c (target_flags_explicit): Remove.
11663
11664 2010-10-04  Jan Hubicka  <jh@suse.cz>
11665
11666         PR middle-end/45871
11667         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
11668         use get_ref_base_and_offset to handle references.
11669         (fold_const_aggregate_ref): Update.
11670
11671 2010-10-04  Martin Jambor  <mjambor@suse.cz>
11672
11673         PR tree-optimization/45572
11674         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
11675         ipa_check_create_node_params.
11676         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
11677
11678 2010-10-04  Yao Qi  <yao@codesourcery.com>
11679
11680         * doc/passes.texi: Clean up.
11681
11682 2010-10-03  Ian Lance Taylor  <iant@google.com>
11683
11684         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
11685         referring to a field using a typedef name.
11686         (find_anonymous_field_with_type): New static function.
11687         (convert_to_anonymous_field): New static function.
11688         (convert_for_assignment): If -fplan9-extensions, permit converting
11689         pointer to struct to pointer to anonymous field.
11690         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
11691         (is_duplicate_field): New static function.
11692         (detect_field_duplicates_hash): If -fplan9-extensions, check for
11693         typedef names duplicating field names.
11694         (detect_field_duplicates): Likewise.
11695         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
11696         (C Dialect Options): Document -fplan9-extensions.
11697         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
11698
11699 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
11700
11701         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
11702         revision 164914.
11703         (vect_create_data_ref_ptr): Likewise.
11704         * tree-vect-stmts.c (vectorizable_store): Likewise.
11705         (perm_mask_for_reverse): Likewise.
11706         (reverse_vec_elements): Likewise.
11707         (vectorizable_load): Likewise.
11708
11709 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
11710
11711         * cppbuiltin.c: New file.
11712         * cppbuiltin.h: New file.
11713         * Makefile.in: Take into account cppbuiltin.{h,c}.
11714
11715 2010-10-03  Andi Kleen  <ak@linux.intel.com>
11716
11717         * lto-cgraph.c (input_cgraph): Check for missing sections.
11718
11719 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
11720
11721         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
11722         to nonimmediate_operand.  Force operand 2 to register when allowed.
11723         (*<shiftrt_insn><mode>3_mask): Ditto.
11724         (*<rotate_insn><mode>3_mask): Ditto.
11725
11726 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
11727
11728         PR tree-optimization/45720
11729         PR tree-optimization/45764
11730         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
11731         Don't accept backwards consecutive accesses.
11732         (vect_create_data_ref_ptr): Disallow negative steps.
11733
11734         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
11735         (perm_mask_for_reverse): Removed.
11736         (reverse_vec_elements): Likewise.
11737         (vectorizable_load): Don't handle negative steps.
11738
11739 2010-10-02  Jan Hubicka  <jh@suse.cz>
11740
11741         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
11742         call destination is known.
11743
11744 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11745
11746         PR target/45820
11747         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
11748         earlier.
11749
11750 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11751
11752         * doc/install.texi (Configuration): Document build_configargs,
11753         host_configargs, target_configargs.
11754
11755 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
11756
11757         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
11758         (*<shiftrt_insn><mode>3_mask): Ditto.
11759         (*<rotate_insn><mode>3_mask): Ditto.
11760
11761 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
11762
11763         PR tree-optimization/44716
11764         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
11765         (HOT_TEXT_SECTION_NAME): Define.
11766
11767 2010-10-01  Nick Clifton  <nickc@redhat.com>
11768
11769         * common.opt: Add -fcombine-stack-adjustments.
11770         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
11771         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
11772         flag_combine_stack_adjustments.
11773         * doc/invoke.texi: Document the new option.
11774
11775 2010-10-01  Richard Guenther  <rguenther@suse.de>
11776
11777         PR tree-optimization/45854
11778         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
11779
11780 2010-10-01  Anthony Green  <green@moxielogic.com>
11781
11782         * config.gcc: Fix moxie-*-rtems* configuration.
11783
11784 2010-10-01  Richard Guenther  <rguenther@suse.de>
11785
11786         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
11787         (gen_decl_die): Likewise.
11788
11789 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11790
11791         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
11792         to the function code for SPU MD builtins.
11793         (spu_expand_builtin): Update.
11794         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
11795
11796 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11797
11798         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
11799         sjlj_except_unwind_info.
11800
11801 2010-10-01  Tristan Gingold  <gingold@adacore.com>
11802
11803         * configure.ac: Define the nop insn for avr*-*-*
11804         * configure: Regenerate.
11805
11806 2010-10-01  Alan Modra  <amodra@gmail.com>
11807
11808         PR target/45807
11809         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
11810         extend toc_restore_insn.
11811
11812 2010-09-30  Richard Guenther  <rguenther@suse.de>
11813
11814         PR tree-optimization/43959
11815         * function.c (gimplify_parameters): Use create_tmp_reg instead of
11816         create_tmp_var.
11817
11818 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
11819
11820         * config/sh/sh.c (sh_expand_prologue): Set
11821         current_function_static_stack_size.
11822
11823 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11824
11825         * configure.ac: Check for Solaris 8 ld with .hidden support.
11826         * configure: Regenerate.
11827
11828 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11829
11830         PR middle-end/45758
11831         * graphite.c (graphite_initialize): Call scev_reset.
11832
11833 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11834
11835         * sese.h (scev_analyzable_p): Return false for real or floating
11836         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
11837
11838 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11839
11840         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
11841         and ps.
11842         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
11843         domain.
11844         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
11845         Do not allocate ub_expr, it is passed in initialized.
11846
11847 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
11848
11849         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
11850         (build_cloog_prog): Dump CLooG input file when
11851         flag_graphite_dump_cloog is set.  This is disabled on trunk.
11852         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
11853
11854 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11855
11856         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
11857         verify_dominators for CDI_POST_DOMINATORS.
11858         * sese.h: Remove comment about CDI_POST_DOMINATORS.
11859         (recompute_all_dominators): Remove call to free_dominance_info
11860         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
11861         for CDI_POST_DOMINATORS.
11862
11863 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11864
11865         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
11866         over pbb_dim_iter_domain.
11867
11868 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11869
11870         * graphite-flattening.c: Fix comments.
11871
11872 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11873
11874         * Makefile.in (OBJS-common): Add graphite-flattening.o.
11875         (graphite-flattening.o): New rule.
11876         * common.opt (floop-flatten): New flag.
11877         * doc/invoke.texi (-floop-flatten): Documented.
11878         * graphite-flattening.c: New.
11879         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
11880         * graphite-poly.h (flatten_all_loops): Declared.
11881         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
11882         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
11883         is set, also set flag_graphite.
11884
11885 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11886
11887         * graphite-poly.c (cloog_checksum): New.
11888         * graphite-poly.h (cloog_checksum): Declared.
11889
11890 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11891
11892         * graphite-poly.c (pbb_number_of_iterations): Removed.
11893         (pbb_number_of_iterations_at_time): Correctly compute the number
11894         of iterations in the transformed loop.
11895         * graphite-poly.h (pbb_number_of_iterations): Removed.
11896
11897 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11898
11899         * graphite-poly.h (lst_update_scattering_seq): Removed.
11900         (lst_update_scattering): Correctly handle outermost loop dewey
11901         renumbering.
11902
11903 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11904
11905         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
11906         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
11907         * graphite-poly.h (lst_niter_for_loop): New.
11908
11909 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11910
11911         * graphite-poly.c (apply_poly_transforms): Do not abort when the
11912         transform read from disk is not legal.  Call fatal_error instead.
11913
11914 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11915
11916         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
11917         (print_scop_header): Removed.  Inlined in the only call place...
11918         (print_scop): ... here.
11919
11920 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11921
11922         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
11923
11924 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11925
11926         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
11927
11928 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11929
11930         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
11931         (dot_deps_stmt): Same.
11932         * graphite-poly.c (dot_lst): Same.
11933
11934 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11935
11936         * graphite-blocking.c (scop_do_strip_mine): Do not call
11937         graphite_legal_transform.
11938         (scop_do_block): Same.
11939
11940 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11941
11942         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
11943         description.
11944
11945 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11946
11947         * tree-scalar-evolution.c (instantiate_array_ref): New.
11948         (instantiate_scev_r): Also handle ARRAY_REFs.
11949
11950 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11951
11952         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
11953         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
11954         RESULT_DECL, and FIELD_DECL.  Return false for an
11955         SSA_NAME_IS_DEFAULT_DEF.
11956         (compute_scalar_evolution_in_loop): Do not further analyze the
11957         scalar evolution when no_evolution_in_loop_p returns true.
11958
11959 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11960
11961         * tree-chrec.h (evolution_function_is_affine_p): Do not check
11962         whether CHREC_LEFT is invariant.  A function is affine when
11963         CHREC_RIGHT is invariant.
11964
11965 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11966
11967         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
11968         is_gimple_reg.
11969         (rewrite_degenerate_phi): Same.
11970         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
11971
11972 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
11973
11974         * graphite-scop-detection.c (graphite_can_represent_scev,
11975         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
11976         graphite_can_represent_loop): Remove outermost_loop.
11977
11978 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11979
11980         PR middle-end/45229
11981         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
11982         handle GIMPLE_CALLs with no LHS.
11983
11984 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
11985
11986         * graphite-poly.c (init_graphite_out_file): New.
11987         (init_graphite_in_file): New.
11988         (apply_poly_transforms): Updated to enable reading and writing of
11989         multiple scop files.
11990
11991 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
11992
11993         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
11994         redundant checks.
11995
11996 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
11997
11998         * graphite-clast-to-gimple.c (precision_for_value): Adjust
11999         computation of precision by 1.
12000
12001 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
12002
12003         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
12004         (openscop_read_polyhedron_matrix): New.
12005         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
12006         (openscop_read_N_int): Same.
12007         * graphite-poly.c (openscop_read_N_int): New.
12008         (openscop_read_one_int): New.
12009         (openscop_read_N_string): New.
12010         (openscop_read_one_string): New.
12011         (openscop_read_powerset_matrix): New.
12012         (graphite_read_transforms): Remove.
12013         (graphite_read_scatt): New.
12014         (graphite_read_scop_file): New.
12015         (apply_poly_transforms): Updated to call graphite_read_scop_file.
12016
12017 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12018
12019         * graphite-poly.c: Change include order.
12020
12021 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12022
12023         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
12024         (cloog_matrix_nrows): New.
12025
12026 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
12027
12028         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
12029         from matrix lines.
12030         * graphite-poly.c (openscop_print_scattering_function_1): Same.
12031         (print_scattering_function_1): Same.
12032         (openscop_print_pbb_domain): Same.
12033         (openscop_print_scop_context): Same.
12034         (print_scop_context): Same.
12035
12036 2010-09-30  Riyadh Baghdad  <baghdadi.mr@gmail.com>
12037
12038         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
12039         (openscop_print_pdr_polyhedron): Print pph.
12040
12041 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
12042
12043         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
12044         priority signed types.
12045
12046 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
12047
12048         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
12049         the call to lang_hooks.types.type_for_size.  Call
12050         build_nonstandard_integer_type.
12051
12052 2010-09-30  Riyadh Baghdadi  <baghdadi.mr@gmail.com>
12053
12054         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
12055         (openscop_print_polyhedron_matrix): New.
12056         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
12057         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
12058         (openscop_print_pdr_powerset): New.
12059         (openscop_print_powerset_matrix): New.
12060         (openscop_print_scattering_function_1): New.
12061         (print_scattering_function): Add support for scattering names and
12062         OpenScop format.
12063         (graphite_write_transforms): Remove.
12064         (print_pdr_access_layout): Updated to support OpenScop format.
12065         (print_pdr): Same.
12066         (openscop_print_pbb_domain): New.
12067         (print_pbb_body): Added a parameter to allow indicating that pbb_body
12068         is not provided.
12069         (print_pbb): Updated to call the new print_pbb_body.
12070         (openscop_print_scop_context): New.
12071         (print_scop_header): New.
12072         (print_scop): Updated to call print_scop_header.
12073         * graphite-poly.h: Document OpenScop format.
12074
12075 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
12076
12077         * config/cris/m32c.c (cris_memory_move_cost): New.
12078         (cris_register_move_cost): Make static. Change arguments type from
12079         enum reg_class to reg_class_t.
12080         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
12081         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
12082         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
12083
12084 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
12085
12086         PR target/45843
12087         * config/i386/i386.c (ix86_gimplify_va_arg): Use
12088         INTVAL (XEXP (slot, 1)) as prev_size.
12089
12090 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
12091
12092         PR target/45837
12093         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
12094         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
12095         defined.
12096         * config/rs6000/option-defaults.h (toplevel): Change #if
12097         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
12098         global option changes.
12099
12100 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
12101
12102         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
12103
12104         PR tree-optimization/31261
12105         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
12106         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
12107
12108 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12109
12110         PR bootstrap/45796
12111         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
12112         special-casing for generators and turn into ...
12113         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
12114         rule, for better error messages in case of toplevel dependency errors.
12115         (genprog): Add hooks, rename to ...
12116         (genprogerr): ... this, and let genprog also contain check,
12117         checksum, condmd.
12118         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
12119         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
12120         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
12121
12122 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
12123             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12124
12125         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
12126         for GMP, MPFR and MPC.
12127
12128 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12129
12130         * config/sparc/sparc.opt (mimpure-text): Move ...
12131         * config/sol2.opt: ... here.  Correct description.
12132         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
12133         * doc/invoke.texi (Option Summary, SPARC Options): Move
12134         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
12135         (Option Summary, Solaris 2 Options): ... here.
12136         (Submodel Options, Solaris 2 Options): New menu entry.
12137         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
12138         (Solaris 2 Options): ... here.
12139
12140 2010-09-30  Michael Eager  <eager@eagercon.com>
12141
12142         * extend.texi (interrupt_handler): Add MicroBlaze to list.
12143         (save_volatiles): Describe option for MicroBlaze.
12144         * invoke.texi: Add MicroBlaze Options.
12145         * contrib.texi: Add acknowledgment.
12146         * md.texi: Add MicroBlaze d and z constraints.
12147         * install.texi: Add microblaze-*-elf.
12148         * configure.ac: Add microblaze-*-* to target list.
12149         * configure: Regenerate.
12150         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
12151         * config/microblaze/microblaze-protos.h: New.
12152         * config/microblaze/crti.s: New.
12153         * config/microblaze/predicates.md: New.
12154         * config/microblaze/linux.h: New.
12155         * config/microblaze/microblaze.md: New.
12156         * config/microblaze/constraints.md: New.
12157         * config/microblaze/crtn.s: New.
12158         * config/microblaze/microblaze.opt: New.
12159         * config/microblaze/microblaze-c.c: New.
12160         * config/microblaze/t-microblaze: New.
12161         * config/microblaze/microblaze.c: New.
12162         * config/microblaze/microblaze.h: New.
12163
12164 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
12165
12166         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
12167         parse @optional/@required and set the flags as appropriate.
12168
12169 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
12170
12171         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
12172
12173 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
12174
12175         * opt-functions.awk (static_var): Update comment.
12176         (var_ref): Return offsetof expression or -1, not variable address.
12177         * optc-gen.awk: Generate structure field initializers instead of
12178         static variables.  Expect -1 for missing variables instead of null
12179         pointer.  Add gcc_options parameters to generated functions.
12180         * opth-gen.awk: Generate structure fields for static variables.
12181         Add gcc_options parameters to generated functions.
12182         * common.opt (optimize, optimize_size): Add variables.
12183         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
12184         &global_options to cl_target_option_restore.
12185         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
12186         &global_options to cl_optimization_restore, cl_target_option_save
12187         and cl_target_option_restore.
12188         (ix86_set_current_function): Pass &global_options to
12189         cl_target_option_restore.
12190         * config/pdp11/pdp11.h (optimize): Remove.
12191         * config/rs6000/rs6000.h (optimize): Remove.
12192         * config/sh/sh.h (optimize): Remove.
12193         * config/xtensa/xtensa.h (optimize): Remove.
12194         * coretypes.h (struct gcc_options): Declare.
12195         * diagnostic.c (diagnostic_initialize): Initialize
12196         context->option_state.
12197         (diagnostic_report_diagnostic): Pass option_state to
12198         option_enabled hook.
12199         * diagnostic.h (diagnostic_context.option_enabled): Add void *
12200         parameter.
12201         (diagnostic_context.option_state): New field.
12202         * final.c (final_start_function, final, final_scan_insn): Rename
12203         optimize parameter to optimize_p.
12204         * flags.h (optimize, optimize_size): Remove.
12205         * function.c (invoke_set_current_function_hook): Pass
12206         &global_options to cl_optimization_restore.
12207         * gcc.c (driver_handle_option): Take gcc_options parameter.
12208         Assert that it is &global_options.
12209         (process_command): Pass &global_options to read_cmdline_option.
12210         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
12211         option_enabled.
12212         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
12213         &global_options to set_option.
12214         * opts-common.c (handle_option, handle_generated_option,
12215         read_cmdline_option, set_option): Take explicit gcc_options
12216         parameters.  Use option_flag_var.
12217         (option_flag_var): New.
12218         * opts.c (common_handle_option, lang_handle_option,
12219         target_handle_option): Take gcc_options parameter.  Assert that it
12220         is &global_options.
12221         (read_cmdline_options): Pass &global_options to read_cmdline_option.
12222         (print_filtered_help): Use option_flag_var.  Pass &global_options
12223         to option_enabled.
12224         (common_handle_option): Use option_flag_var.
12225         (option_enabled): Take opts parameter.  Use option_flag_var.
12226         (get_option_state): Take gcc_options parameter.  Use
12227         option_flag_var.  Pass gcc_options parameter to option_enabled.
12228         (enable_warning_as_error): Pass &global_options to
12229         handle_generated_option.
12230         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
12231         (cl_option_handler_func.handler): Take gcc_options parameter.
12232         (option_enabled, get_option_state, set_option, handle_option,
12233         handle_generated_option, read_cmdline_option): Take gcc_options
12234         parameters.
12235         * toplev.c (optimize, optimize_size): Remove.
12236         (print_switch_values): Pass &global_options to option_enabled.
12237         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
12238         to get_option_state.
12239         (general_init): Initialize global_dc->option_state.
12240         * tree.c (build_optimization_node): Pass &global_options to
12241         cl_optimization_save.
12242         (build_target_option_node): Pass &global_options to
12243         cl_target_option_save.
12244
12245 2010-09-30  Martin Jambor  <mjambor@suse.cz>
12246
12247         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
12248         zero sized bit-fields.
12249
12250 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
12251
12252         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
12253         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
12254         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
12255         (c_parser_objc_class_declaration): Same change.
12256         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
12257         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12258         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
12259         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
12260         and RID_AT_PUBLIC instead of RID_PUBLIC.
12261         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
12262         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
12263
12264 2010-09-30  Tom G. Christensen  <tgc@jupiterrise.com>
12265
12266         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
12267         Add links to current providers of packages for Solaris and IRIX.
12268
12269 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12270
12271         Merge from 'apple/trunk' branch on FSF servers.
12272         * c-parser.c: Applied change originally in c-parse.in.
12273
12274         2005-10-04  Fariborz Jahanian  <fjahanian@apple.com>
12275
12276         Radar 4281748
12277         * c-decl.c (start_decl): Check for redeclaration of class name.
12278         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
12279
12280 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
12281
12282         * config/ia64/ia64.c (ia64_builtin_decl): New.
12283         (TARGET_BUILTIN_DECL): Define.
12284         (ia64_builtins): New.
12285         (ia64_init_builtins): Save decls in ia64_builtins.
12286
12287 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
12288
12289         PR target/40457
12290         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
12291         (move2add_use_add3_insn): Likewise.
12292         (reload_cse_move2add): Likewise.
12293         * rtlanal.c (get_full_rtx_cost): New function.
12294         * rtl.h (struct full_rtx_costs): New.
12295         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
12296         costs_add_n_insns): New inline functions.
12297         (get_full_rtx_cost): Declare.
12298
12299         PR c/45054
12300         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
12301         invariants.  Check for reg_equiv_invariant.
12302         (reload): Assert that spilled_pseudos is empty when returning.
12303
12304 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
12305
12306         * config/i386/mingw32.h (TARGET_64BIT): replaced by
12307         TARGET_64BIT_DEFAULT in #if check.
12308
12309 2010-09-29  Jack Howarth  <howarth@bromo.med.uc.edu>
12310
12311         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
12312
12313 2010-09-29  Mike Stump  <mikestump@comcast.net>
12314
12315         * config/darwin.h (flag_mkernel): Remove.
12316         (flag_apple_kext): Likewise.
12317
12318 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12319             Jack Howarth  <howarth@bromo.med.uc.edu>
12320
12321         * config/darwin.opt (undefined): Add.
12322
12323 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
12324
12325         PR testsuite/45664
12326         * configure.ac: Add --enable-indirect-function option.
12327         * config.gcc: Add default_gnu_indirect_function.
12328         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
12329         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
12330         * varasm.c (do_assemble_alias): Adjust for macro name change.
12331         * configure: Rebuilt.
12332         * doc/install.texi: Document --enable-indirect-function.
12333
12334 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12335
12336         * doc/options.texi (Variable, Var, Init): Update documentation
12337         without reference to VarExists.
12338         (VarExists): Remove.
12339         * common.opt, config/i386/i386.opt, config/linux.opt,
12340         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
12341         Don't use VarExists.
12342
12343 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
12344
12345         * optc-gen.awk: Generate global_options initializer instead of
12346         individual variables.  Add x_ prefix to names of structure members.
12347         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
12348         names of structure members.
12349         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12350         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
12351         * doc/tm.texi: Regenerate.
12352         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12353         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12354         * c-parser.c (disable_extension_diagnostics,
12355         restore_extension_diagnostics): Update names of cpp_options members.
12356         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12357         * common.opt (fcompare-debug-second): Don't use Var.
12358         * config/alpha/alpha.h (target_flags): Remove.
12359         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12360         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12361         * config/bfin/bfin.h (target_flags): Remove.
12362         * config/cris/cris.h (target_flags): Remove.
12363         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
12364         cl_target_option members.
12365         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
12366         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
12367         ix86_can_inline_p): Update names of cl_target_option members.
12368         * config/i386/i386.h (ix86_isa_flags): Remove.
12369         * config/lm32/lm32.h (target_flags): Remove.
12370         * config/mcore/mcore.h (mcore_stack_increment): Remove.
12371         * config/mcore/mcore.md (addsi3): Remove extern declaration of
12372         flag_omit_frame_pointer.
12373         * config/mep/mep.h (target_flags): Remove.
12374         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12375         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
12376         * config/mmix/mmix.h (target_flags): Remove.
12377         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
12378         flag_expensive_optimizations): Remove.
12379         * config/s390/s390.h (flag_pic): Remove.
12380         * config/score/score-conv.h (target_flags): Remove.
12381         * config/sh/sh.h (sh_fixed_range_str): Remove.
12382         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
12383         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12384         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12385         * diagnostic.c (diagnostic_initialize): Update names of
12386         diagnostic_context members.
12387         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
12388         warn_system_headers.
12389         (diagnostic_report_warnings_p): Update for new names.
12390         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
12391         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
12392         HARD_FRAME_POINTER_IS_ARG_POINTER.
12393         * flags.h (flag_compare_debug): Declare.
12394         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12395         * opts.c (flag_compare_debug): Define.
12396         (common_handle_option): Update names of diagnostic_context
12397         members.  Handle -fcompare-debug-second.
12398         (fast_math_flags_struct_set_p): Update names of cl_optimization
12399         members.
12400         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12401         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12402         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12403         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12404         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
12405         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
12406         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
12407         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
12408         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
12409
12410 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
12411
12412         * config/picochip/picochip.c (picochip_output_internal_label):
12413         This function can now be called for debug CFI labels, which can come
12414         in the middle of a vliw instruction.  Postpone until end of vliw.
12415
12416 2010-09-29  Richard Guenther  <rguenther@suse.de>
12417
12418         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
12419         (DECL_FILE_SCOPE_P): Use it.
12420         (TYPE_FILE_SCOPE_P): New macro.
12421
12422 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12423
12424         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
12425         a CPP_NAME which is a reserved word, clearly separate cases for
12426         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
12427
12428 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
12429
12430         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
12431         token->value with the canonical spelling.  Do exactly like C and
12432         C++ and leave it as it is.
12433
12434 2010-09-28  Richard Henderson  <rth@redhat.com>
12435
12436         * config/alpha/alpha.c (alpha_builtins): New.
12437         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
12438         (alpha_builtin_function): New.
12439         (alpha_add_builtins, alpha_init_builtins): Use it.
12440
12441 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
12442
12443         * doc/standards.texi (Standards): Expanded the section on
12444         Objective-C and Objective-C++.
12445
12446 2010-09-28  DJ Delorie  <dj@redhat.com>
12447
12448         PR target/45800
12449         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
12450         volatile MEMs.
12451
12452 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12453
12454         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
12455         attributes on methods.
12456          (c_parser_objc_method_definition): Handle attributes.
12457         (c_parser_objc_methodproto): Likewise.
12458         (c_parser_objc_maybe_method_attributes): New.
12459         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
12460         missing definition, similar to that in ObjC++.
12461
12462 2010-09-28  Richard Henderson  <rth@redhat.com>
12463
12464         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
12465         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12466         (CONFIG_SJLJ_EXCEPTIONS): Remove.
12467         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
12468         (STACK_CHECK_PROTECT): Likewise.
12469         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
12470         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
12471         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
12472         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
12473         (dwarf2out_assembly_start): Likewise.
12474         * except.c (init_eh): Use targetm.except_unwind_info.
12475         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
12476         (output_one_function_exception_table): Likewise.
12477         * final.c: Unconditionally include dwarf2out.h.
12478         (final_start_function): Unconditionally call dwarf2out routines.
12479         (final_end_function, final_scan_insn): Likewise.
12480         * function.c (expand_function_end): Use targetm.except_unwind_info.
12481         * opts.c (decode_options): Use targetm.except_unwind_info.
12482         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
12483         * target.def (debug_unwind_info, except_unwind_info): New.
12484         * target.h (enum unwind_info_type): New.
12485         * targhooks.c (default_debug_unwind_info): New.
12486         (default_except_unwind_info): New.
12487         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
12488         * targhooks.h: Declare them.
12489         * tree-tailcall.c: Include "target.h"
12490         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
12491         * Makefile.in (tree-tailcall.o): Update.
12492         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
12493         (lhd_gcc_personality): Likewise.
12494
12495         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
12496         (TARGET_EXCEPT_UNWIND_INFO): New.
12497         (DWARF2_UNWIND_INFO): Update.
12498         (TARGET_DEBUG_UNWIND_INFO): New.
12499         * doc/tm.texi: Rebuild.
12500
12501         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
12502         targetm.except_unwind_info.
12503
12504         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
12505         (arm_except_unwind_info): New.
12506         (arm_compute_func_type): Use it.
12507         (arm_expand_prologue, thumb_pushpop): Likewise.
12508         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
12509         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
12510         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
12511         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
12512         (DWARF2_UNWIND_INFO): Remove.
12513         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
12514         (ARM_EABI_UNWIND_TABLES): Remove.
12515
12516         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
12517         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
12518         (ia64_except_unwind_info): New.
12519         (ia64_output_function_prologue): Use it.
12520         (ia64_add_bundle_selector_before): Likewise.
12521         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
12522         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
12523         (TARGET_UNWIND_INFO): Remove.
12524
12525         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
12526
12527 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
12528
12529         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
12530         (c_parser_objc_protocol_definition): Likewise.
12531         (c_parser_external_declaration): Provide dummy attribute arguments.
12532         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
12533         (c_parser_objc_class_definition): Handle attributes.
12534         (c_parser_objc_protocol_definition): Likewise.
12535
12536 2010-09-28  Tobias Burnus  <burnus@net-b.de>
12537
12538         PR fortran/40569
12539         PR fortran/40568
12540         * toplev.h (save_decoded_options, save_decoded_options_count):
12541         New global variables.
12542         * toplev.c (save_decoded_options, save_decoded_options_count):
12543         Export variables.
12544
12545 2010-09-28  Ian Lance Taylor  <iant@google.com>
12546
12547         * config/i386/i386.c (ix86_supports_split_stack): Test
12548         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
12549
12550 2010-09-28  Ian Lance Taylor  <iant@google.com>
12551
12552         PR target/45815
12553         * opts.c (decode_options): Don't test whether the target supports
12554         split stack if flag_split_stack == 0.
12555
12556 2010-09-28  Jan Hubicka  <jh@suse.cz>
12557
12558         * builtin-attrs.def (ATTR_LEAF): New attribute.
12559         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
12560         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
12561         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
12562         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
12563         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
12564         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
12565         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
12566         * sync-builtins.def: Annotate all builtins by leaf.
12567         * omp-builtins.def: Annotate all builtins by leaf.
12568         * builtins.def: Annotate relevant builtins with leaf attribute.
12569         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
12570         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
12571         leaf.
12572
12573 2010-09-28  Jan Hubicka  <jh@suse.cz>
12574
12575         * tree-ssa-ccp.c (fold_ctor_reference): New function.
12576         (fold_const_aggregate_ref): Use it.
12577         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
12578         into external static.
12579
12580 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12581
12582         PR target/44452
12583         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
12584         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
12585         (ix86_solaris_return_in_memory): Remove.
12586         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
12587         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12588         (TARGET_SUBTARGET_DEFAULT): Redefine.
12589         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
12590         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
12591         (TARGET_SUBTARGET_DEFAULT): Redefine.
12592         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
12593         -mvect8-ret-in-mem.
12594         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
12595
12596 2010-09-29  Alan Modra  <amodra@gmail.com>
12597
12598         PR target/45807
12599         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
12600         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
12601         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
12602         Delete.
12603         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
12604         (rs6000_emit_prologue): Don't just create frame save info for r2,
12605         actually save r2.
12606
12607 2010-09-28  Richard Henderson  <rth@redhat.com>
12608
12609         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
12610         when 8 bytes are requested.
12611
12612 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12613
12614         * config/avr/avr.c (expand_prologue): Set
12615         current_function_static_stack_size.
12616
12617 2010-09-28  Tristan Gingold  <gingold@adacore.com>
12618
12619         * config/alpha/alpha.md: Change the initial condition of the
12620         probing loop.
12621
12622 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
12623
12624         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
12625         Split from *avx_<maxmin:code><mode>3.
12626         (*avx_<smaxmin:code><mode>3): Ditto.
12627         * config/i386/i386.md (maxmin): Remove code iterator.
12628
12629 2010-09-27  Ian Lance Taylor  <iant@google.com>
12630
12631         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
12632         requires assembler support for CFI directives.
12633
12634 2010-09-27  Richard Henderson  <rth@redhat.com>
12635
12636         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
12637
12638 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12639
12640         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
12641         that AFTER is not in the range FROM..TO, inclusive.
12642
12643 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
12644             Bernd Schmidt  <bernds@codesourcery.com>
12645
12646         PR rtl-optimization/45792
12647         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
12648         If not all insns are to be merged, for each edge, stash the
12649         next candidate after the to-be-merged insns before doing the
12650         merge, and use them for the retry at the new insertion point.
12651         Handle CC0 targets when retrying.
12652
12653 2010-09-27  Ian Lance Taylor  <iant@google.com>
12654
12655         * common.opt (fsplit-stack): New option.
12656         * opts.c (decode_options): Set flag_split_stack to final value.
12657         * target.def (supports_split_stack): New hook.
12658         * gcc.c (STACK_SPLIT_SPEC): Define.
12659         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
12660         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
12661         (Code Gen Options): Document -fsplit-stack.
12662         * doc/extend.texi (Function Attributes): Mention no_split_stack.
12663         (Function Attributes): Document no_split_stack.
12664         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
12665         TARGET_SUPPORTS_SPLIT_STACK.
12666         * doc/tm.texi: Rebuild.
12667         * function.c (thread_prologue_and_epilogue_insns): If
12668         flag_split_stack, add split stack prologue.
12669         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
12670         * varasm.c (saw_no_split_stack): New static variable.
12671         (assemble_start_function): Set saw_no_split_stack if the function
12672         has the no_split_stack attribute.
12673         (file_end_indicate_split_stack): New function.
12674         * output.h (file_end_indicate_split_stack): Declare.
12675         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
12676         and function.
12677         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
12678         routines.
12679         * config/i386/i386.c (ix86_option_override_internal): Don't set
12680         expand_builtin_va_start to NULL if -fsplit-stack.
12681         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
12682         -fsplit-stack.
12683         (ix86_va_start): If -fsplit-stack, get overflow pointer from
12684         scratch register set by prologue.
12685         (ix86_code_end): If -fsplit-stack, call
12686         file_end_indicate_split_stack.
12687         (ix86_supports_split_stack): New static function.
12688         (SPLIT_STACK_AVAILABLE): Define.
12689         (split_stack_prologue_scratch_regno): New static function.
12690         (split_stack_fn): New static variable.
12691         (ix86_expand_split_stack_prologue): New function.
12692         (ix86_live_on_entry): New static function.
12693         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
12694         (output_pic_addr_const): Likewise.
12695         (i386_asm_output_addr_const_extra): Likewise.
12696         (ix86_expand_call): Change return type to rtx.  Return the new
12697         call instruction.
12698         (TARGET_SUPPORTS_SPLIT_STACK): Define.
12699         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12700         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
12701         (split_stack_prologue, split_stack_return): New insns.
12702         (split_stack_space_check): New insn.
12703         * config/i386/i386.h (struct machine_function): Add
12704         split_stack_varargs_pointer field.
12705         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
12706         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12707         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
12708         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12709         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
12710         Declare.
12711         (ix86_expand_call): Update declaration.
12712
12713 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12714
12715         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
12716         code.  Added byref, which was missing in the list of codes.
12717         Explain that enumeration values are encoded as the integer type
12718         that the compiler uses to store them.  Explain and make examples
12719         of how 'const' interacts with pointers, and the complication of
12720         the encoding of 'const char *'.
12721         (Legacy type encoding): New subsection, explaining that GCC emits
12722         incorrect type encodings for the NeXT runtime for compatibility
12723         reasons.
12724         (@@encode): New subsection, explaining @encode and particularly
12725         that protocol qualifiers are not recognized inside an @encode()
12726         expression.
12727         (Method signatures): New subsection, explaining how method
12728         signatures are encoded.
12729
12730 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
12731
12732         Merge from 'apple/trunk' branch on FSF servers.  Removed small
12733         change in build_conditional_expr that had been added when fixing
12734         PR objc/27377 and which did the same check in a less complete way.
12735
12736         2005-12-15  Fariborz Jahanian  <fjahanian@apple.com>
12737
12738         Radar 4229905
12739         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
12740         looking for objective-c common pointer types.
12741
12742         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
12743
12744         Radar 4154928
12745         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
12746         use their ObjC common type.
12747
12748 2010-09-27  Richard Guenther  <rguenther@suse.de>
12749
12750         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
12751
12752 2010-09-27  Jie Zhang  <jie@codesourcery.com>
12753
12754         * print-tree.c (print_node): Print in-constant-pool.
12755
12756 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
12757
12758         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
12759         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
12760         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
12761         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
12762
12763 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12764
12765         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
12766         from pro_epilogue_adjust_stack_<mode>_{1,2}.
12767         (pro_epilogue_adjust_stack_<mode>_add): Rename from
12768         pro_epilogue_adjust_stack_<mode>_3.
12769         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
12770         renamed pro_epilogue_adjust_stack_{si,di}_add.
12771         (ix86_expand_prologue): Use indirect functions.  Update for renamed
12772         pro_epilogue_adjust_stack_{si,di}_sub.
12773
12774 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
12775
12776         * config/i386/i386.md (movmsk_df): New insn.
12777         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
12778         sequence for TARGET_SSE_MATH.
12779
12780 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
12781
12782         * config/mips/mips.c (mips_builtin_decls): Declare.
12783         (mips_init_builtins): Store function declarations in
12784         mips_builtin_decls.
12785         (mips_builtin_decl): New function.
12786         (TARGET_BUILTIN_DECL): Define.
12787
12788 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
12789             Richard Henderson  <rth@redhat.com>
12790
12791         * config/i386/cygwin.asm: Include auto-host.h.
12792         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
12793         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
12794         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
12795         alignment code from the 64-bit path.  Use gas local labels.
12796         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
12797         from _di_2.  Remove the useless constant integer argument.
12798         (pro_epilogue_adjust_stack_<mode>_3): New.
12799         (allocate_stack_worker_probe_<mode>): Macroize from
12800         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
12801         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
12802         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
12803         (__chkstk_ms): New function.
12804         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
12805         * config/i386/t-interix: Likewise.
12806         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
12807         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
12808         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
12809         * configure, config.in: Rebuild.
12810
12811 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
12812
12813         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
12814         statements because of the return slot optimization.
12815
12816 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
12817
12818         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
12819         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
12820         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
12821         (class_likely_spilled_p): Rename to...
12822         (avr_class_likely_spilled_p): ...this. Make static. Change argument
12823         type to reg_class_t.
12824
12825 2010-09-24  Jan Hubicka  <jh@suse.cz>
12826
12827         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
12828         (lto_symtab_resolve_symbols): Set it.
12829         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
12830         store resolution field in cgraph/varpool.
12831         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
12832         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
12833         (cgraph_dump_node): Drop used_from_object_file.
12834         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
12835         (cgraph_function_body_availability): Use decl_replaceable_p.
12836         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
12837         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
12838         cgraph_used_from_object_file_p.
12839         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
12840         cgraph_used_from_object_file_p.
12841         (resolution_used_from_other_file_p): New functoin.
12842         (cgraph_used_from_object_file_p): New predicate.
12843         * cgraph.h: Include plugin-api.h
12844         (struct cgraph_local_info): Remove used_from_object_file.
12845         (struct cgraph_node): Add resolution field.
12846         (struct varpool_node): Likewise; remove used_from_object_file;
12847         reove const_value_known.
12848         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
12849         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
12850         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
12851         varpool_used_from_object_file_p): Declare.
12852         (varpool_get_node, varpool_extra_name_alias): Update prototype.
12853         * tree.h (DECL_REPLACEABLE_P): Remove.
12854         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
12855         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
12856         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12857         input_overwrite_node, input_node, input_varpool_node): Stream
12858         resolution.
12859         * expr.c (expand_expr_real_1): Use const_value_known_p
12860         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
12861         const_value_known.
12862         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
12863         (function_and_variable_visibility): Set resolution for local vars
12864         and functions; use varpool_used_from_object_file_p.
12865         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
12866         static functions.
12867         (default_binds_local_p_1): Use resolutoin info.
12868         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
12869         * varpool.c (varpool_get_node): Constify.
12870         (const_value_known_p): Do not use vnode->const_value_known;
12871         use decl_replaceable_p.
12872         (varpool_finalize_decl): Do not set const_value_known.
12873         (cgraph_variable_initializer_availability): Use decl_replaceable_p
12874         (varpool_extra_name_alias): Return new node.
12875         (varpool_used_from_object_file_p): New function.
12876
12877 2010-09-24  Richard Henderson  <rth@redhat.com>
12878
12879         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
12880         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
12881         (do_spill): Use REG_CFA_OFFSET.
12882         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
12883         as appropriate.
12884         (ia64_expand_epilogue): Likewise.
12885         (process_set): Split into ...
12886         (process_cfa_adjust_cfa): this,
12887         (process_cfa_register): this,
12888         (process_cfa_offset): and this new function.
12889         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
12890         instead of REG_FRAME_RELATED_EXPR.
12891
12892 2010-09-24  Olivier Hainque  <hainque@adacore.com>
12893
12894         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
12895
12896 2010-09-24  Jan Hubicka  <jh@suse.cz>
12897
12898         * doc/extend.texi: (attribute leaf): Document.
12899         * tree.c (local_define_builtin): Handle ECF_LEAF.
12900         (build_common_builtin_nodes): Set ECF_LEAF where needed.
12901         * tree.h (ECF_LEAF): New.
12902         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
12903         overwrittable and unavailable functions.
12904         (ipa_init): Put all_module_statics into optimization_summary_obstack.
12905         (copy_global_bitmap): Do not copy all_module_statics.
12906         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
12907         (propagate): Handle overwritable and unavailable leaf functions;
12908         initialize global info for overwritable and unavailable leaf functions;
12909         do not free all module statics.
12910         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
12911         local statics.
12912         * calls.c (flags_from_decl_or_type): Handle leaf.
12913         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
12914         abnormal gotos.
12915
12916 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
12917
12918         * gengtype.c: Reindented.
12919         * gengtype.h: Reindented.
12920         * gengtype-parse.c: Reindented.
12921
12922 2010-09-24  Jan Hubicka  <jh@suse.cz>
12923
12924         PR tree-optimization/45738
12925         PR tree-optimization/45741
12926         * expr.c (string_constant): Allow CONST_DECL too;
12927         check that DECL_INITIAL is set.
12928         * varpool.c (const_value_known_p): Only look into VAR_DECL
12929         and CONST_DECL.
12930
12931 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
12932
12933         * common.opt (undef): New.
12934
12935 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
12936
12937         PR middle-end/45234
12938         * rtl.h (enum global_rtl_index): Add
12939         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
12940         (LAST_VIRTUAL_POINTER_REGISTER): Define.
12941         (virtual_preferred_stack_boundary_rtx,
12942         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
12943         (LAST_VIRTUAL_REGISTER): Increase by one.
12944         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
12945         instead of LAST_VIRTUAL_REGISTER.
12946         * function.c (instantiate_new_reg): Handle
12947         virtual_preferred_stack_boundary_rtx.
12948         * emit-rtl.c (init_virtual_regs): Handle
12949         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12950         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
12951         * explow.c (round_push): If crtl->preferred_stack_boundary
12952         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
12953         virtual_preferred_stack_boundary_rtx alignment instead of
12954         crtl->preferred_stack_boundary alignment.
12955         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
12956         macros.  Never decrease crtl->preferred_stack_boundary,
12957         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
12958         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
12959         stack_pointer_delta in dynamic allocation, even when size
12960         is constant.
12961         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
12962         macro.
12963         * print-rtl.c (print_rtx): Handle
12964         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
12965         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
12966         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
12967         * config/frv/frv.c (frv_emit_movsi): Likewise.
12968         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
12969         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
12970         Likewise.
12971
12972         Revert:
12973         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
12974
12975         PR middle-end/45234
12976         * calls.c (expand_call): Make sure that all variable sized
12977         adjustments are multiple of preferred stack boundary after
12978         stack alignment.
12979
12980 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
12981             Dominique Dhumieres  <dominiq@lps.ens.fr>
12982
12983         PR bootstrap/45751
12984         * config/darwin-driver.c (darwin_default_min_version):
12985         Adjust size passed to memcpy in two places.
12986
12987 2010-09-24  Richard Guenther  <rguenther@suse.de>
12988
12989         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
12990         Make sure to not call set_type_context with error_mark_node.
12991         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
12992
12993 2010-09-24  Richard Guenther  <rguenther@suse.de>
12994
12995         * Makefile.in (OBJS-onestep): Remove.
12996         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
12997         (libbackend.a): Remove onestep support.
12998         (libbackend.o): Remove.
12999         * configure.ac (--enable-intermodule): Remove.
13000         * configure: Regenerate.
13001
13002 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
13003
13004         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
13005         reaching the end of a block if it occurs at a DEBUG_INSN.
13006
13007 2010-09-09  Tristan Gingold  <gingold@adacore.com>
13008
13009         PR target/44242
13010         * config/vms/vms-crt0-64.c: Removed.
13011         * config/vms/vms-crt0.c: Removed.
13012         * config/vms/vms-psxcrt0-64.c: Removed.
13013         * config/vms/vms-psxcrt0.c: Removed.
13014         * config/vms/vms-ucrt0.c: New file.
13015         * config/vms/t-vms64: Removed.
13016         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
13017         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
13018         * config.gcc (alpha-dec-vms): Use t-vms.
13019
13020 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
13021
13022         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
13023         underfull hbox in DVI output.
13024         (-fobjc-class-cxx-cdtors): Same change.
13025         (-fobjc-exceptions): Tidied up documentation.  Explain what the
13026         option does, but moved the (lenghty) description of the exception
13027         syntax into objc.texi.
13028         (-fobjc-gc): Explain that the option is not useful with the GNU
13029         runtime.
13030         (-fzero-link): Explain that the GNU runtime always works in
13031         "zero-link" mode.
13032         * doc/objc.texi: All sections: simplified @node declarations
13033         removing specification of next, previous, up node.
13034         (Objective-C): Updated introduction.
13035         (Garbage Collection): Updated.  The bohem-gc library is now
13036         included in gcc itself.  Mention that this section only applies to
13037         the GNU Objective-C runtime.
13038         (compatibility_alias): Small tidy up.
13039         (Exceptions): New section mostly containing text previously in the
13040         description of the -fobjc-exception command-line option.
13041         (Synchronization): Same.
13042
13043 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
13044
13045         * config/i386/i386.md (ix86_code_end): Move the initialization of
13046         xops array near the consumer.  Use AX_REG and SP_REG instead of
13047         numerical constants.
13048
13049 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
13050
13051         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
13052         method [methodname]' for an Objective-C method instead of the less
13053         satisfactory 'too many arguments to function' (with no method name).
13054
13055 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
13056
13057         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
13058         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
13059         (execute_update_addresses_taken): Remove parameter.  Execute the
13060         optimization unconditionally.
13061         * passes.c (execute_function_todo): Call execute_update_addresses_taken
13062         unconditionally if TODO_rebuild_alias is set, else only when optimizing
13063         if TODO_update_address_taken is set.
13064
13065 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
13066
13067         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
13068         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
13069         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13070         (arm_output_addr_const_extra): Make static.
13071
13072 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
13073
13074         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
13075         define as unspec_volatile.
13076         ("nops"): Define as unspec_volatile. Use fputs to write to
13077         asm_out_file directly.  Output NOPs on separate lines using while loop.
13078         * config/i386/i386.c (ix86_code_end): Use fputs to write to
13079         asm_out_file directly.  Output NOPs on separate lines using while loop.
13080
13081 2010-09-23  Richard Guenther  <rguenther@suse.de>
13082
13083         PR tree-optimization/45565
13084         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
13085         Make sure to adjust the fndecl before replacing the stmt.
13086
13087 2010-09-23  Richard Guenther  <rguenther@suse.de>
13088
13089         PR middle-end/45750
13090         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
13091         gimplifying MEM_REF.
13092
13093 2010-09-23  Alan Modra  <amodra@gmail.com>
13094
13095         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
13096         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
13097
13098 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
13099
13100         PR rtl-optimization/44374
13101         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
13102         * df-core.c (df_set_bb_dirty): Set it.
13103         * ifcvt.c (find_memory): Remove function.
13104         (dead_or_predicable): Use can_move_insns_across.
13105         * df.h (can_move_insns_across): Declare function.
13106         * cfgcleanup.c (block_was_dirty): New static variable.
13107         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
13108         than df_get_bb_dirty.
13109         (try_head_merge_bb): New static function.
13110         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
13111         is set.
13112         * df-problems.c: Include "target.h"
13113         (df_simulate_find_uses): New static function.
13114         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
13115         (find_memory, find_memory_store): New static functions.
13116         (can_move_insns_across): New function.
13117         * Makefile.in (df-problems.o): Update dependencies.
13118
13119 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13120
13121         PR java/44095
13122         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
13123         is specified and the suffix of the file isn't ".c".
13124         * config/sparc/linux64.h (ASM_SPEC): Likewise.
13125
13126 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13127
13128         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
13129         * doc/cppopts.texi: Fix markup of index entry.
13130         * doc/extend.texi (Constructing Calls): Fix markup of
13131         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
13132         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
13133         (Vague Linkage, C++ Attributes): Fix markup of index entries and
13134         keywords.
13135         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
13136         avoid long lines.
13137         (C Dialect Options, C++ Dialect Options, Warning Options)
13138         (Debugging Options, Spec Files, Darwin Options)
13139         (i386 and x86-64 Options, MIPS Options)
13140         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
13141         index entries, avoid abbreviations, allow URLs to wrap, avoid
13142         long lines, avoid overlong pages from long @itemx lists.
13143         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
13144         * doc/standards.texi (Standards): Likewise.
13145         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
13146
13147 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
13148
13149         * opts-common.c (prune_options): Make static.  Work with decoded
13150         options.
13151         (decode_cmdline_options_to_array): Call prune_options.  Don't
13152         resize option array here.
13153         * opts.h (prune_options): Remove prototype.
13154         * gcc.c (process_command): Take decoded options; don't call
13155         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
13156         (main): Call decode_cmdline_options_to_array here instead of
13157         prune_options.  Update call to process_command.
13158         * config/darwin-driver.c: Include opts.h.
13159         (darwin_default_min_version): Work with decoded options.  Don't
13160         handle -b or -V here.
13161         * config/darwin.h (darwin_default_min_version): Update prototype.
13162         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
13163         darwin_default_min_version.
13164         * config/i386/cygwin.h (mingw_scan): Update prototype.
13165         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
13166         * config/i386/cygwin1.c: Include opts.h.
13167         (mingw_scan): Work with decoded options.
13168         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
13169         * config/t-darwin (darwin-driver.o): Update dependencies.
13170
13171 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
13172
13173         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
13174         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
13175         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
13176         -force-link, -force-link=, -language, -language=,
13177         -library-directory, -library-directory=, -no-canonical-prefixes,
13178         -no-standard-libraries, -no-warnings, -optimize, -output,
13179         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
13180         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
13181         -print-file-name=, -print-libgcc-file-name,
13182         -print-multi-directory, -print-multi-lib,
13183         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
13184         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
13185         -profile, -save-temps, -shared, -specs, -specs=, -static,
13186         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
13187         symbolic): New.
13188         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
13189         * gcc.c (A Short Introduction to Adding a Command-Line Option):
13190         Remove comment.
13191         (cc1_options): Correct specs for passing down --help,
13192         --target-help and --help=*.  Add spec for passing down --version.
13193         (struct option_map, option_map, target_option_translations,
13194         translate_options): Remove.
13195         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
13196         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
13197         OPT_fhelp_ and OPT_ftarget_help.
13198         (process_command): Don't call translate_options.  Call
13199         decode_cmdline_options_to_array before checking for
13200         -no-canonical-prefixes using decoded options.
13201         * opts-common.c (tm.h): Update comment on #include.
13202         (find_opt): Allow abbreviations of long options.
13203         (struct option_map, option_map): New.
13204         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
13205         and -mno handling.
13206         (target_option_translations): New.
13207         (decode_cmdline_options_to_array): Handle
13208         TARGET_OPTION_TRANSLATE_TABLE in driver.
13209         * opts.c (common_handle_option): Don't handle OPT_fhelp,
13210         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
13211
13212 2010-09-22  Richard Guenther  <rguenther@suse.de>
13213
13214         * tree-inline.c (optimize_inline_calls): Schedule cleanups
13215         only if we inlined something.  Block compaction and conditional
13216         folding are done by cfg cleanup.  Schedule update-address-taken.
13217         (tree_function_versioning): Remove redundant call to number_blocks.
13218         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
13219         folding is done by cfg cleanup.
13220         * passes.c (init_optimization_passes): Remove update-address-taken
13221         pass after IPA inlining.
13222
13223 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
13224
13225         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
13226         to update conditions. Fix reg_mode[] check.
13227
13228 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
13229
13230         * config/picochip/picochip.md (movhicc): Use expand to check whether
13231         movhicc is available and split it after reload.
13232
13233 2010-09-22  Richard Guenther  <rguenther@suse.de>
13234
13235         * tree-ssanames.c (release_dead_ssa_names): Do not remove
13236         callee edges here.
13237         * passes.c (init_optimization_passes): Remove early CFG cleanup.
13238         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
13239         (pass_cleanup_cfg): Likewise.
13240         (execute_fixup_cfg): Cleanup.
13241         * tree-pass.h (pass_cleanup_cfg): Remove.
13242
13243 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13244
13245         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
13246         builtins if it is true.
13247         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
13248         parameter.
13249
13250 2010-09-22  Martin Jambor  <mjambor@suse.cz>
13251
13252         * tree-sra.c (struct access): New field grp_no_warning.
13253         (create_access_replacement): Set TREE_NO_WARNING according to
13254          grp_no_warning.
13255         (create_artificial_child_access): Use build_ref_for_model and set
13256         grp_no_warning if build_user_friendly_ref_for_offset fails.
13257         (propagate_subaccesses_across_link): Likewise.
13258
13259 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
13260
13261         PR target/35664
13262         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
13263         ('f'): Likewise.
13264
13265 2010-09-22  Tristan Gingold  <gingold@adacore.com>
13266
13267         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
13268
13269 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
13270
13271         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
13272         * config/i386/i386.c (decide_alg): Update for rename.
13273
13274 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
13275
13276         PR rtl-optimization/45739
13277         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
13278         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
13279
13280 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
13281
13282         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
13283         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
13284         Remove.
13285         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
13286         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
13287
13288 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13289
13290         PR objc/23710
13291         * c-parser.c (c_parser_objc_method_definition): Check the return
13292         value of objc_start_method_definition and if false is returned,
13293         parse the method definition but emit no code.
13294
13295 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13296
13297         PR objc/25965
13298         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
13299         call objc_get_interface_ivars ().
13300
13301 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
13302
13303         PR target/45694
13304         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
13305         static chain-register is used for 64-bit.
13306
13307 2010-09-21  Richard Guenther  <rguenther@suse.de>
13308
13309         * dwarf2out.c (is_cu_die): New function.
13310         (add_pubtype): Use it.
13311         (gen_subprogram_die): Likewise.
13312         (gen_struct_or_union_type_die): Likewise.
13313         (dwarf2out_finish): Likewise.
13314         (comp_unit_die): Rename to ...
13315         (single_comp_unit_die): ... this.
13316         (comp_unit_die): New function lazily constructing and
13317         returning single_comp_unit_die.
13318         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
13319         base_type_die, subrange_type_die, modified_type_die,
13320         lower_bound_default, add_bound_info, add_prototyped_attribute,
13321         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
13322         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
13323         force_decl_die, gen_namespace_die, dwarf2out_decl,
13324         dwarf2out_start_source_file, dwarf2out_end_source_file,
13325         prune_unused_types, dwarf2out_finish): Use it.
13326         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
13327         the global list of translation-unit decls.
13328         (dwarf2out_init): Do not create single_comp_unit_die here.
13329         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
13330
13331 2010-09-21  Richard Guenther  <rguenther@suse.de>
13332
13333         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
13334         for bool for C++.
13335
13336 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
13337
13338         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
13339         (qhs_extenddi_cstr): Likewise.
13340         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
13341         them for the source operand.
13342
13343 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
13344
13345         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
13346         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
13347         (ix86_split_ashr): Ditto.
13348         (ix86_split_lshr): Ditto.
13349
13350 2010-09-21  Richard Guenther  <rguenther@suse.de>
13351
13352         PR tree-optimization/45580
13353         * tree-ssa-propagate.c (substitute_and_fold): Always replace
13354         regular uses.
13355         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
13356         virtuals fold the call into a regular indirect one.
13357
13358 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13359
13360         PR rtl-optimization/42775
13361         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
13362         scheduling is enabled.
13363
13364 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13365
13366         PR rtl-optimization/45728
13367         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
13368         gen_lowpart_common first and if that fails, force_reg first
13369         before calling gen_lowpart.
13370
13371         PR middle-end/45678
13372         * cfgexpand.c (expand_one_stack_var_at): Use
13373         crtl->max_used_stack_slot_alignment as max_align, instead
13374         of maximum of that and PREFERRED_STACK_BOUNDARY.
13375         Don't call update_stack_alignment.
13376
13377 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
13378
13379         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
13380         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
13381         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
13382         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
13383         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
13384         (build_nonstandard_integer_type): Likewise.
13385         (build_range_type_1): New function, built from...
13386         (build_range_type): ...this.  Call build_range_type_1.
13387         (build_nonshared_range_type): New function.
13388         (build_array_type_1): New function, built from...
13389         (build_array_type: ...this.  Call build_array_type_1.
13390         (build_nonshared_array_type): New function.
13391         * tree.h (build_nonshared_range_type): Declare.
13392         (build_nonshared_array_type): Likewise.
13393
13394 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
13395
13396         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
13397         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13398         (arm_class_likely_spilled_p): New function.
13399
13400 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
13401
13402         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
13403         indirect functions.
13404         (ix86_split_ashl): Ditto.
13405         (ix86_split_ashr): Ditto.
13406         (ix86_split_lshr): Ditto.
13407         (ix86_adjust_counter): Ditto.
13408
13409 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
13410
13411         * c-family/c-common.h (constant_string_class): Documented with
13412         comment identical to the one already in c-common.c.
13413
13414 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13415
13416         * dwarf2out.c (any_cfis_emitted): New static variable.
13417         (add_fde_cfi): Set it.
13418         (dwarf2out_frame_debug): Clear it before processing,
13419         if it is set afterwards, flush any queued reg saves.
13420
13421         PR debug/45124
13422         * dwarf2out.c (add_accessibility_attribute): Assume
13423         DW_ACCESS_private as the default for dwarf_version > 2
13424         and DW_TAG_class_type parent.
13425         (gen_inheritance_die): Assume DW_ACCESS_public as the default
13426         for dwarf_version > 2 and parent other than DW_TAG_class_type.
13427
13428 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13429
13430         PR target/45726
13431         * arm.md (arm_movt): Only enable on machines with MOVT.
13432
13433 2010-09-20  Jie Zhang  <jie@codesourcery.com>
13434
13435         * config/arm/arm.c (arm_address_offset_is_imm): New.
13436         (arm_early_store_addr_dep): New.
13437         (arm_early_load_addr_dep): New.
13438         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
13439         (arm_early_load_addr_dep): Declare.
13440         (arm_address_offset_is_imm): Declare.
13441         * config/arm/cortex-m4.md: New file.
13442         * config/arm/cortex-m4-fpu.md: New file.
13443         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
13444         (attr generic_sched): Exclude cortexm4.
13445         (attr generic_vfp): Exclude cortexm4.
13446
13447 2010-09-20  Richard Guenther  <rguenther@suse.de>
13448
13449         PR middle-end/45704
13450         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
13451
13452 2010-09-20  Jan Hubicka  <jh@suse.cz>
13453
13454         PR tree-optimize/45605
13455         * cgraph.h (const_value_known_p): Declare.
13456         (varpool_decide_const_value_known): Remove.
13457         * tree-ssa-ccp.c (get_base_constructor): Use it.
13458         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
13459         * expr.c (string_constant): Likewise.
13460         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
13461         * ipa.c (ipa_discover_readonly_nonaddressable_var,
13462         function_and_variable_visibility): Likewise.
13463         * gimplify.c (gimplify_call_expr): Likewise.
13464         * gimple-fold.c (get_symbol_constant_value): Likewise.
13465         * varpool.c (varpool_decide_const_value_known): Replace by...
13466         (const_value_known_p): ... this one; handle other kinds of DECLs
13467         too and work for automatic vars.
13468         (varpool_finalize_decl): Use const_value_known_p.
13469
13470 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
13471
13472         PR target/45726
13473         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
13474
13475 2010-09-20  Richard Guenther  <rguenther@suse.de>
13476
13477         PR tree-optimization/45705
13478         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
13479
13480 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
13481
13482         PR rtl-optimization/45695
13483         * combine.c (try_combine): When splitting a two set pattern,
13484         make sure the pattern which will be put into i2 doesn't use REGs
13485         or MEMs set by insns in between i2 and i3.
13486
13487 2010-09-19  Jan Hubicka  <jh@suse.cz>
13488
13489         PR lto/44246
13490         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
13491         processing same node twice.
13492
13493 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
13494
13495         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
13496         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
13497         (bfin_class_likely_spilled_p): New function
13498
13499 2010-09-19  Ira Rosen  <irar@il.ibm.com>
13500
13501         PR tree-optimization/45714
13502         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
13503         created in vectorizable_call instead of the original statement in
13504         def stmt updates.
13505
13506 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
13507
13508         * config/i386/i386-protos.h (split_double_mode): New prototype.
13509         (split_di, split_ti): Remove prototypes.
13510         * config/i386/i386.c (split_double_mode): New function.
13511         (split_di, split_ti): Remove.
13512         (ix86_expand_branch): Use split_double_mode.
13513         (ix86_split_to_parts): Ditto.
13514         (ix86_split_ashl): Ditto.
13515         (ix86_split_ashr): Ditto.
13516         (ix86_split_lshr): Ditto.
13517         (ix86_force_to_memory): Ditto.
13518         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
13519
13520 2010-09-18  Jan Hubicka  <jh@suse.cz>
13521
13522         PR tree-optimization/45453
13523         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
13524         virtual functions are reachable.
13525         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
13526         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
13527         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
13528         when modifying function.
13529
13530 2010-09-18  Jan Hubicka  <jh@suse.cz>
13531
13532         PR tree-optimization/45605
13533         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
13534         * gimple-fold.c (static_object_in_other_unit_p): New function.
13535         (canonicalize_constructor_val): Use it.
13536         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
13537         returning NULL.
13538         (gimple_fold_obj_type_ref_known_binfo): Use
13539         static_object_in_other_unit_p.
13540
13541 2010-09-18  Richard Guenther  <rguenther@suse.de>
13542
13543         PR tree-optimization/45709
13544         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
13545         insertions until after all PHI nodes of the block are processed.
13546
13547 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
13548
13549         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
13550
13551 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
13552
13553         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
13554
13555 2010-09-18  Richard Guenther  <rguenther@suse.de>
13556
13557         PR tree-optimization/45709
13558         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
13559
13560 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13561
13562         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
13563         (dot_deps_stmt): Same.
13564         * graphite-poly.c (dot_lst): Same.
13565         * graphite-scop-detection.c (dot_all_scops): Same.
13566         (dot_scop): Same.
13567
13568 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
13569
13570         Revert:
13571         2009-12-16  Ben Elliston  <bje@au.ibm.com>
13572
13573         * tree-data-ref.c (dot_rdg_1): Added back.
13574         (dot_rdg): Same.  Added "#if 0" around system call.
13575
13576 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13577             Richard Henderson  <rth@redhat.com>
13578
13579         * config/i386/i386.c (initial_ix86_tune_features): Add
13580         X86_TUNE_PAD_SHORT_FUNCTION.
13581         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
13582         (ix86_count_insn): New.
13583         (ix86_pad_short_function): Likewise.
13584         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
13585
13586         * config/i386/i386.h (ix86_tune_indices): Add
13587         X86_TUNE_PAD_SHORT_FUNCTION.
13588         (TARGET_PAD_SHORT_FUNCTION): New.
13589
13590         * config/i386/i386.md (UNSPEC_NOPS): New.
13591         (nops): Likewise.
13592
13593 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13594
13595         PR middle-end/45234
13596         * calls.c (expand_call): Make sure that all variable sized
13597         adjustments are multiple of preferred stack boundary after
13598         stack alignment.
13599
13600 2010-09-17  DJ Delorie  <dj@redhat.com>
13601
13602         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
13603         passed an invalid value, print an error instead of ICEing.
13604         (valid_psw_flag): New.
13605         (rx_expand_builtin): Call it for setpsw/clrpsw.
13606         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
13607
13608         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
13609         (bitclr_in_memory): Likewise.
13610         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
13611
13612 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
13613
13614         PR middle-end/45678
13615         * cfgexpand.c (update_stack_alignment): New.
13616         (get_decl_align_unit): Use it.
13617         (expand_one_stack_var_at): Call update_stack_alignment.
13618
13619 2010-09-17  Richard Guenther  <rguenther@suse.de>
13620
13621         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
13622         Properly copy the read string.
13623
13624 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
13625
13626         * doc/options.texi (Variable): Document.
13627         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
13628         generate target_flags declarations explicitly.  Don't define
13629         VarExists variables for the driver.
13630         * common.opt (target_flags): New Variable record.
13631         (flag_dump_unnumbered, flag_dump_unnumbered_links,
13632         flag_var_tracking, flag_var_tracking_assignments,
13633         flag_var_tracking_assignments_toggle): Don't mark variables with
13634         VarExists.
13635         * config/i386/i386.c (ix86_isa_flags): Don't define here.
13636         * config/i386/i386.opt (ix86_isa_flags): Define here.
13637         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
13638         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
13639         VarExists.
13640         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
13641         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
13642         Only define for generator programs.
13643         * rtlanal.c (target_flags): Remove.
13644         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
13645         flag_var_tracking_assignments_toggle): Remove.
13646
13647 2010-09-17  Michael Matz  <matz@suse.de>
13648
13649         PR tree-optimization/43432
13650         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
13651         Accept backwards consecutive accesses.
13652         (vect_create_data_ref_ptr): If step is negative generate
13653         decreasing IVs.
13654         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
13655         (perm_mask_for_reverse, reverse_vec_elements): New functions.
13656         (vectorizable_load): Handle loads with negative steps when easily
13657         possible.
13658
13659 2010-09-03  Jan Hubicka  <jh@suse.cz>
13660
13661         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
13662
13663 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
13664
13665         * config/v850/v850.c (v850_function_value_regno_p): Make static.
13666         Adjust comments. Declare.
13667         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13668         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
13669
13670 2010-09-17  Richard Guenther  <rguenther@suse.de>
13671
13672         * common.opt (combine): Remove.
13673         * gcc.c (default_compilers): Remove specs testing combine.
13674         The C compilers no longer can combine.
13675         (option_map): Remove -combine.
13676         (display_help): Remove -combine.
13677         (driver_handle_option): Remove OPT_combine handling.
13678         (compile_input_file_p): Remove.
13679         (do_spec): Remove code concerning combine.
13680         (main): Likewise.
13681         * doc/invoke.texi: Remove traces of -combine.
13682         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
13683
13684 2010-09-17  Richard Guenther  <rguenther@suse.de>
13685
13686         PR middle-end/45678
13687         * builtins.c (fold_builtin_memory_op): Always properly adjust
13688         alignment of memory accesses.
13689
13690 2010-09-16  Jan Hubicka  <jh@suse.cz>
13691
13692         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
13693         processing clone.
13694
13695 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
13696
13697         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
13698
13699         * config/i386/i386.c (predict_jump): Add prototype.
13700         (flag_opts): Add -m8bit-idiv.
13701         (ix86_split_idivmod): New.
13702
13703         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
13704         Add 2 splitters for SI/DI mode divide.
13705         (divmod<mode>4_1): New pattern.
13706         (udivmod<mode>4_1): Likewise.
13707         (testdi_ccno_1): Likewise.
13708
13709         * config/i386/i386.opt (m8bit-idiv): New.
13710
13711         * doc/invoke.texi: Document -m8bit-idiv.
13712
13713 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
13714
13715         PR bootstrap/45680
13716         * config/i386/i386.c (min_insn_size): Moved out of the
13717         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
13718
13719 2010-09-16  Jan Hubicka  <jh@suse.cz>
13720
13721         * lto-cgraph.c (lto_output_node): Fix handling of clones.
13722         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
13723         unreachable clones with reachable clones.
13724         * tree-inline.c (copy_bb): Fix sanity checking when producing
13725         unreachable clone.
13726
13727 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
13728
13729         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
13730         (TARGET_MEMORY_MOVE_COST): Define.
13731         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
13732
13733 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
13734
13735         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
13736         maybe_tidy_empty_bb.
13737
13738         Revert:
13739         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
13740         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
13741
13742 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13743
13744         * target.def (target_option.optimization): New hook.
13745         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
13746         TARGET_OPTION_OPTIMIZATION hook.
13747         * doc/tm.texi: Regenerate.
13748         * hooks.c (hook_void_int_int): New.
13749         * hooks.h (hook_void_int_int): Declare.
13750         * opts.c: Don't include tm_p.h.
13751         (decode_options): Use targetm.target_option.optimization instead
13752         of OPTIMIZATION_OPTIONS.
13753         * system.h (OPTIMIZATION_OPTIONS): Poison.
13754         * config/arm/arm-protos.h (arm_optimization_options): Remove.
13755         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
13756         (arm_optimization_options): Rename to arm_option_optimization.
13757         Make static.
13758         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
13759         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
13760         (cris_option_optimization): New.
13761         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
13762         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
13763         (crx_option_optimization): New.
13764         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
13765         * config/frv/frv-protos.h (frv_optimization_options): Remove.
13766         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
13767         (frv_optimization_options): Rename to frv_option_optimization.
13768         Make static.
13769         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
13770         * config/h8300/h8300.c (h8300_option_optimization): New.
13771         (TARGET_OPTION_OPTIMIZATION): Define.
13772         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
13773         * config/i386/i386-protos.h (optimization_options): Remove.
13774         * config/i386/i386.c (optimization_options): Rename to
13775         ix86_option_optimization.  Make static.
13776         (TARGET_OPTION_OPTIMIZATION): Define.
13777         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
13778         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
13779         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
13780         (ia64_optimization_options): Rename to ia64_option_optimization.
13781         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
13782         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
13783         commented-out definition.
13784         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
13785         instead of OPTIMIZATION_OPTIONS.
13786         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
13787         (m32r_option_optimization): New.
13788         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
13789         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
13790         Remove.
13791         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
13792         (mcore_option_optimization): New.
13793         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
13794         * config/mep/mep-protos.h (mep_optimization_options): Remove.
13795         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
13796         (mep_optimization_options): Rename to mep_option_optimization.
13797         Make static.  Take unused level and size parameters.
13798         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
13799         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
13800         (mmix_option_optimization): New.
13801         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
13802         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
13803         (pdp11_option_optimization): New.
13804         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
13805         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
13806         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
13807         (optimization_options): Rename to rs6000_option_optimization.
13808         Make static.
13809         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
13810         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
13811         * config/rx/rx.c (rx_set_optimization_options): Rename to
13812         rx_option_optimization.  Make static.  Take unused level and size
13813         parameters.
13814         (TARGET_OPTION_OPTIMIZATION): Define.
13815         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
13816         * config/s390/s390-protos.h (optimization_options): Remove.
13817         * config/s390/s390.c (optimization_options): Rename to
13818         s390_option_optimization.  Make static.  Don't mark size parameter
13819         unused.
13820         (TARGET_OPTION_OPTIMIZATION): Define.
13821         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
13822         * config/sh/sh-protos.h (sh_optimization_options): Remove.
13823         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
13824         (sh_optimization_options): Rename to sh_option_optimization.  Make
13825         static.  Don't mark parameters unused.
13826         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
13827         * config/spu/spu-protos.h (spu_optimization_options): Remove.
13828         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
13829         (spu_optimization_options): Rename to spu_option_optimization.
13830         Make static.
13831         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
13832         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
13833         (v850_option_optimization): New.
13834         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
13835         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
13836         (xtensa_option_optimization): New.
13837         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
13838
13839 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
13840
13841         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
13842         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
13843         * doc/tm.texi: Regenerate.
13844         * system.h (OVERRIDE_OPTIONS): Poison.
13845         * target.def (override): Default to hook_void_void.
13846         * targhooks.c (default_target_option_override): Remove.
13847         * genmodes.c, machmode.def: Update comments mentioning
13848         OVERRIDE_OPTIONS.
13849         * config/alpha/alpha-modes.def: Update comment mentioning
13850         alpha_override_options.
13851         * config/alpha/alpha-protos.h (override_options): Remove.
13852         * config/alpha/alpha.c (override_options): Rename to
13853         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
13854         (TARGET_OPTION_OVERRIDE): Define.
13855         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
13856         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
13857         of OVERRIDE_OPTIONS.
13858         * config/arc/arc-protos.h (arc_init): Remove.
13859         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
13860         (arc_init): Rename to arc_option_override.  Make static.
13861         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
13862         (OVERRIDE_OPTIONS): Remove.
13863         * config/arm/arm-protos.h (arm_override_options): Remove.
13864         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
13865         (arm_override_options): Rename to arm_option_override.  Make
13866         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13867         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
13868         * config/arm/arm.md: Update comment referring to arm_override_options.
13869         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13870         instead of OVERRIDE_OPTIONS.
13871         * config/avr/avr-protos.h (avr_override_options): Remove.
13872         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
13873         (avr_override_options): Rename to avr_option_override.  Make static.
13874         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
13875         * config/bfin/bfin-protos.h (override_options): Remove (twice).
13876         * config/bfin/bfin.c (override_options): Rename to
13877         bfin_option_override.  Make static.
13878         (TARGET_OPTION_OVERRIDE): Define.
13879         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
13880         * config/cris/cris-protos.h (cris_override_options): Remove.
13881         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
13882         (cris_override_options): Rename to cris_option_override.  Make static.
13883         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
13884         * config/frv/frv-protos.h (frv_override_options): Remove.
13885         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
13886         (frv_override_options): Rename to frv_option_override.  Make static.
13887         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
13888         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
13889         * config/h8300/h8300.c (h8300_init_once): Rename to
13890         h8300_option_override.  Make static.
13891         (TARGET_OPTION_OVERRIDE): Define.
13892         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
13893         * config/i386/i386-protos.h (override_options): Remove.
13894         * config/i386/i386.c (override_options): Rename to
13895         ix86_option_override_internal.  Make static.  Comments referring
13896         to this function and callers changed.
13897         (ix86_option_override): New.
13898         (TARGET_OPTION_OVERRIDE): Define.
13899         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
13900         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
13901         * config/ia64/ia64.c (ia64_file_start): Update comment referring
13902         to ia64_override_options.
13903         * config/iq2000/iq2000-protos.h (override_options): Remove.
13904         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
13905         (override_options): Rename to iq2000_option_override.  Make static.
13906         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
13907         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
13908         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
13909         (lm32_override_options): Rename to lm32_option_override.  Make static.
13910         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
13911         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
13912         (m32r_option_override): New.
13913         (m32r_init): Update comment.
13914         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
13915         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
13916         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
13917         (m68hc11_override_options): Rename to m68hc11_option_override.
13918         Make static.  Return void.
13919         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
13920         * config/m68k/m68k-protos.h (override_options): Remove.
13921         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
13922         (override_options): Rename to m68k_option_override.  Make static.
13923         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
13924         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
13925         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
13926         (mcore_override_options): Rename to mcore_option_override.  Make
13927         static.
13928         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
13929         * config/mep/mep-protos.h (mep_override_options): Remove.
13930         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
13931         (mep_override_options): Rename to mep_option_override.  Make static.
13932         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
13933         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
13934         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
13935         (mmix_override_options): Rename to mmix_option_override.  Make static.
13936         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
13937         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
13938         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
13939         (mn10300_override_options): Rename to mn10300_option_override.
13940         Make static.
13941         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
13942         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
13943         * config/moxie/moxie.c (moxie_override_options): Rename to
13944         moxie_option_override.  Make static.
13945         (TARGET_OPTION_OVERRIDE): Define.
13946         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
13947         * config/picochip/picochip-protos.h (picochip_override_options):
13948         Remove.  Update comment referring to picochip_override_options.
13949         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
13950         (picochip_override_options): Rename to picochip_option_override.
13951         Make static.  Update comment and definition of
13952         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
13953         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
13954         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13955         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13956         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13957         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13958         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13959         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
13960         instead of OVERRIDE_OPTIONS.
13961         * config/rs6000/rs6000-modes.def: Update comment referring to
13962         rs6000_override_options.
13963         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
13964         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
13965         (rs6000_override_options): Rename to
13966         rs6000_option_override_internal.  Make static.  Commented
13967         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
13968         (rs6000_option_override): New.
13969         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
13970         instead of OVERRIDE_OPTIONS.
13971         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
13972         * config/s390/s390-protos.h (override_options): Remove.
13973         * config/s390/s390.c (override_options): Rename to
13974         s390_option_override.  Make static.
13975         (TARGET_OPTION_OVERRIDE): Define.
13976         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
13977         * config/score/score-protos.h (score_override_options): Remove.
13978         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
13979         (score_override_options): Rename to score_option_override.  Make
13980         static.
13981         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
13982         Update comment referring to override_options.
13983         * config/score/score3.c (score3_override_options): Rename to
13984         score3_option_override.
13985         * config/score/score3.h (score3_override_options): Rename to
13986         score3_option_override.
13987         * config/score/score7.c (score7_override_options): Rename to
13988         score7_option_override.
13989         * config/score/score7.h (score7_override_options): Rename to
13990         score7_option_override.
13991         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
13992         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
13993         (sparc_override_options): Rename to sparc_option_override.  Make
13994         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
13995         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
13996         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
13997         instead of OVERRIDE_OPTIONS.
13998         * config/spu/spu-protos.h (spu_override_options): Remove.
13999         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
14000         (spu_override_options): Rename to spu_option_override.  Make
14001         static.
14002         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
14003         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
14004         OVERRIDE_OPTIONS.
14005         * config/vax/vax-protos.h (override_options): Remove.
14006         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
14007         (override_options): Rename to vax_option_override.  Make static.
14008         Call SUBTARGET_OVERRIDE_OPTIONS.
14009         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
14010         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
14011         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
14012         * config/xtensa/xtensa-protos.h (override_options): Remove.
14013         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
14014         (override_options): Rename to xtensa_option_override.  Make static.
14015         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
14016
14017 2010-09-16  Richard Guenther  <rguenther@suse.de>
14018
14019         PR tree-optimization/45623
14020         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
14021         (get_constraint_for_component_ref): If computing a constraint
14022         for the rhs handle type punning through unions.
14023         (get_constraint_for_address_of): Adjust.
14024         (get_constraint_for_1): Likewise.
14025         (get_constraint_for): Likewise.
14026         (get_constraint_for_rhs): New function.
14027         (do_structure_copy): Adjust.
14028         (make_constraint_to): Likewise.
14029         (handle_const_call): Likewise.
14030         (find_func_aliases): Likewise.
14031         (process_ipa_clobber): Likewise.
14032         (create_variable_info_for): Likewise.
14033
14034 2010-09-16  Ira Rosen  <irar@il.ibm.com>
14035
14036         * tree-vectorizer.c: Fix documentation.
14037         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
14038         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
14039         is_pattern_stmt_p, is_loop_header_bb_p,
14040         stmt_vinfo_set_inside_of_loop_cost,
14041         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
14042         known_alignment_for_access_p): Likewise.
14043         * tree-vect-loop.c: Fix documentation.
14044         (vect_get_cost): Start function name from new line.
14045         * tree-vect-data-refs.c: Fix documentation.
14046         * tree-vect_stmts.c: Likewise.
14047         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
14048         (vectorizable_store): Free vec_oprnds if allocated.
14049         (vectorizable_condition): Initialize several variables to avoid
14050         warnings.
14051         * tree-vect-slp.c: Fix documentation.
14052
14053 2010-09-16  Richard Guenther  <rguenther@suse.de>
14054
14055         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
14056         is TS_TRANSLATION_UNIT_DECL.
14057         (initialize_tree_contains_struct): Adjust.
14058         (all_translation_units): New global vector.
14059         (build_translation_unit_decl): New function.
14060         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
14061         (struct tree_translation_unit_decl): New.
14062         (all_translation_units): Declare.
14063         (union tree_node): Add translation_unit_decl member.
14064         (build_translation_unit_decl): Declare.
14065         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
14066         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
14067         New function.
14068         (pack_value_fields): Call it.
14069         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
14070         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
14071         (lto_output_tree_pointers): Call it.
14072         * lto-streamer-in.c (lto_input_tree_ref): Handle references
14073         to TRANSLATION_UNIT_DECL.
14074         (unpack_ts_translation_unit_decl_value_fields): New function.
14075         (unpack_value_fields): Call it.
14076         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
14077         (lto_input_tree_pointers): Call it.
14078         * lto-streamer.c (check_handled_ts_structures): Adjust.
14079         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
14080         * c-decl.c (all_translation_units): Remove.
14081         (pop_scope): Use build_translation_unit_decl.
14082         (collect_all_refs): Adjust.
14083         (for_each_global_decl): Likewise.
14084         (c_write_global_declarations): Likewise.
14085
14086 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
14087
14088         PR bootstrap/45686
14089         * fold-const.c (fold_checksum_tree): Change slot from const void **
14090         to void **, use CONST_CAST_TREE to store into *slot.
14091
14092 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
14093
14094         * config/i386/i386.md: Remove unneeded empty conditions and
14095         preparation statements from expanders.
14096         * config/i386/mmx.md: Ditto.
14097         * config/i386/sse.md: Ditto.
14098
14099 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
14100
14101         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
14102
14103 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
14104
14105         PR rtl-optimization/45593
14106         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
14107         insns that were in delay slots as stand-alone insns.
14108
14109 2010-09-15  Ian Lance Taylor  <iant@google.com>
14110
14111         * incpath.c (remove_duplicates): If name is not a directory, issue
14112         a warning rather than an error.
14113
14114 2010-09-15  Martin Jambor  <mjambor@suse.cz>
14115
14116         PR middle-end/45644
14117         * tree-sra.c (create_access): Check for bit-fields directly.
14118
14119 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
14120
14121         PR tree-optimization/45633
14122         * tree-cfg.c (verify_gimple_assign_binary): Allow
14123         MINUS_EXPR with lhs and rhs1 pointer vector and
14124         rhs2 sizetype vector.
14125         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
14126         or vector pointer use TER to optimize pointer subtraction.
14127
14128 2010-09-15  Jie Zhang  <jie@codesourcery.com>
14129
14130         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
14131         fcmpd to fcmps.
14132
14133 2010-09-15  Ian Lance Taylor  <iant@google.com>
14134
14135         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
14136
14137 2010-09-15  Ian Lance Taylor  <iant@google.com>
14138
14139         * function.c (get_arg_pointer_save_area): Set
14140         arg_pointer_save_area_init to true.
14141
14142 2010-09-15  Martin Jambor  <mjambor@suse.cz>
14143
14144         * tree-sra.c (generate_subtree_copies): Updated comment.
14145         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
14146         obtained from the statement iterator instead.
14147         (load_assign_lhs_subreplacements): Removed parameters lhs and
14148         right_offset, which is obtained from top_racc instead.  Parameter lacc
14149         is now expected to be the root of the processed tree rather than root's
14150         first child.  Updated all callers.
14151
14152 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
14153
14154         * config/pdp11/pdp11.c (register_move_cost): Rename to
14155         pdp11_register_move_cost.
14156         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
14157         pdp11_register_move_cost.
14158         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
14159         pdp11_register_move_cost instead of register_move_cost.
14160
14161 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
14162
14163         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
14164         pattern for vmovn. Expansion in case of non
14165         -mvectorize-with-neon-quad.
14166         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
14167         non- -mvectorize-with-neon-quad case.
14168         (move_lo_quad_<mode>): New expansion to vmov into low part.
14169         (move_hi_quad_<mode>): New expansion to vmov into high part.
14170         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
14171         (move_lo_quad_v4sf): Likewise.
14172         (move_lo_quad_v8hi): Likewise.
14173         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
14174         low part.
14175         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
14176         high part.
14177         * config/arm/iterators.md (ANY128): New mode iterator.
14178         (V_narrow_pack): New mode attribute.
14179         (V_HALF): Add attribute.
14180         (V_DOUBLE): Add attribute.
14181         (V_mode_nunits): Add attribute.
14182
14183 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
14184
14185         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
14186         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
14187
14188 2010-09-15  Olivier Hainque  <hainque@adacore.com>
14189             Jose Ruiz  <ruiz@adacore.com>
14190
14191         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
14192         * config/alpha/osf5-unwind.h: New file.
14193
14194 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14195
14196         PR bootstrap/45672
14197         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
14198         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
14199         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
14200
14201 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14202
14203         * c-lang.h (struct lang_type): Add variable_size GTY option.
14204
14205 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14206
14207         PR bootstrap/45672
14208         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14209
14210 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14211
14212         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
14213         result isn't used in memory address.
14214
14215 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14216
14217         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
14218         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
14219         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
14220         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
14221         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
14222         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
14223
14224         * target.def: Add units_per_simd_word to vectorize.
14225
14226         * targhooks.c (default_units_per_simd_word): New.
14227         * targhooks.h (default_units_per_simd_word): Likewise.
14228         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
14229         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14230         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
14231         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14232         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
14233         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14234         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
14235         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
14236
14237         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
14238         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
14239
14240         * tree-vect-stmts.c: Don't include "tm_p.h".
14241         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
14242         with targetm.vectorize.units_per_simd_word.
14243
14244         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
14245
14246         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
14247
14248         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
14249         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
14250
14251         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
14252         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
14253
14254         * doc/tm.texi: Regenerated.
14255
14256 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
14257
14258         * tree-vect-stmts.c: Include "tm_p.h".
14259
14260         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
14261         out of RTX_CODE.
14262
14263 2010-09-14  Martin Jambor  <mjambor@suse.cz>
14264
14265         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
14266         location of generated statement.  Changed all callers.
14267         (build_ref_for_model): New parameter loc which used to set location of
14268         all generated expressions.  Changed all callers.
14269         (generate_subtree_copies): Likewise.
14270         (init_subtree_with_zero): Likewise.
14271         (sra_modify_expr): Set locations of all generated statements and
14272         expressions to the location the original statement.
14273         (handle_unscalarized_data_in_subtree): Likewise.
14274         (load_assign_lhs_subreplacements): Likewise.
14275         (sra_modify_constructor_assign): Likewise.
14276         (sra_modify_assign): Likewise.
14277
14278 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
14279
14280         PR target/45277
14281         PR target/45363
14282         PR target/45407
14283         * doc/install.texi (sparc*-*-*): New section.
14284         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
14285
14286 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14287
14288         PR middle-end/45567
14289         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
14290         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
14291         (expand_builtin): Adjust caller.
14292         (expand_builtin_unop): Only use subtarget if it has the right mode.
14293
14294 2010-09-14  Tristan Gingold  <gingold@adacore.com>
14295
14296         * configure.ac (plugins): Fix typos.
14297         * configure: Regenerate.
14298
14299 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
14300
14301         PR debug/45660
14302         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
14303         gen_type_die for function/method return type.
14304
14305 2010-09-14  Ira Rosen  <irar@il.ibm.com>
14306
14307         PR tree-optimization/45470
14308         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
14309         can throw an exception.
14310         * tree-vect-stmts.c (vectorizable_call): Likewise.
14311
14312 2010-09-14  DJ Delorie  <dj@redhat.com>
14313
14314         PR target/44749
14315         * config/mep/mep-protos.h (mep_save_register_info,
14316         mep_reinit_regs, mep_init_regs): Declare.
14317
14318         * config/mep/mep.c: Move all target definitions to the end of the
14319         file to avoid the need for duplicate declarations.
14320         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
14321         (mep_reorg_erepeat): Remove unused variables.
14322         (mep_expand_builtin): Likewise.
14323
14324         * config/mep/mep-pragma.c: Don't include rtl.h.
14325         (INVALID_REGNUM): New.
14326         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
14327         functions.
14328         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
14329         Avoid enum/integer math.
14330
14331 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
14332
14333         PR target/44749
14334         * config/mep/t-mep (GTM_H): Add insn-constants.h.
14335         * config/mep/mep.c (mep_conditional_register_usage): Take no
14336         parameters.
14337         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
14338         prototype.
14339         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
14340         call to mep_conditional_register_usage.
14341
14342 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
14343
14344         PR debug/43937
14345         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
14346         the DECL as well.
14347
14348 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
14349
14350         PR rtl-optimization/45617
14351         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
14352         even if low N bits of X aren't known to be zero.
14353
14354 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
14355
14356         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
14357
14358         * config/i386/i386.c (initial_ix86_tune_features): Add
14359         X86_TUNE_VECTORIZE_DOUBLE.
14360         (ix86_units_per_simd_word): New.
14361
14362         * config/i386/i386.h (ix86_tune_indices): Add
14363         X86_TUNE_VECTORIZE_DOUBLE.
14364         (TARGET_VECTORIZE_DOUBLE): New.
14365         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
14366
14367 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
14368
14369         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
14370         (new_temp_expr_table): Allocate call_cnt vector.
14371         (free_temp_expr_table): Free it.
14372         (process_replaceable): Add call_cnt parm and set in vector.
14373         (find_replaceable_in_bb): Skip replacement if def/use span a call.
14374         (debug_ter): Dump call_cnt value, remove stderr uses.
14375
14376 2010-09-13  Jan Hubicka  <jh@suse.cz>
14377
14378         * tree.c (build_zero_cst): New.
14379         * tree.h (build_zero_cst): Declare.
14380         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
14381         (get_base_constructor): Break out from ...
14382         (fold_const_aggregate_ref): Here; handle empty constructors.
14383
14384 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14385
14386         * config/arm/arm.md: (define_attr "conds"): Update comment.
14387         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
14388         conds attribute to clob.
14389         (arm_sync_compare_and_swapsi): Likewise.
14390         (arm_sync_compare_and_swap<mode>): Likewise.
14391         (arm_sync_lock_test_and_setsi): Likewise.
14392         (arm_sync_lock_test_and_set<mode>): Likewise.
14393         (arm_sync_new_<sync_optab>si): Likewise.
14394         (arm_sync_new_nandsi): Likewise.
14395         (arm_sync_new_<sync_optab><mode>): Likewise.
14396         (arm_sync_new_nand<mode>): Likewise.
14397         (arm_sync_old_<sync_optab>si): Likewise.
14398         (arm_sync_old_nandsi): Likewise.
14399         (arm_sync_old_<sync_optab><mode>): Likewise.
14400         (arm_sync_old_nand<mode>): Likewise.
14401
14402 2010-09-13  Olivier Hainque  <hainque@adacore.com>
14403
14404         * fwprop.c (forward_propagate_and_simplify): Only attach a
14405         REG_EQUAL note to an insn if the destination is a register.
14406         * gcse.c (try_replace_reg): Likewise.
14407
14408 2010-09-13  Richard Guenther  <rguenther@suse.de>
14409
14410         PR tree-optimization/45611
14411         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
14412         (copy_ref_info): Likewise.
14413
14414 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
14415
14416         PR debug/45604
14417         PR debug/45419
14418         PR debug/45408
14419         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14420         types of MEM_REF pointer types to the same type.
14421
14422 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
14423
14424         PR rtl-optimization/41087
14425         * ifcvt.c (noce_get_condition): Don't allow conditions with
14426         side-effects.
14427
14428 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
14429
14430         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14431         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
14432         * config/frv/frv.c (frv_register_move_cost): Make static. Change
14433         arguments type to reg_class_t. Add mode argument.
14434         (frv_memory_move_cost): New.
14435         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
14436
14437 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
14438
14439         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
14440         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
14441
14442 2010-09-10  Jan Hubicka  <jh@suse.cz>
14443
14444         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
14445
14446 2010-09-10  Richard Guenther  <rguenther@suse.de>
14447
14448         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
14449         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
14450         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
14451         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
14452         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
14453
14454 2010-09-10  Richard Guenther  <rguenther@suse.de>
14455
14456         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
14457         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
14458         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
14459         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
14460
14461 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
14462
14463         PR middle-end/45634
14464         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
14465         of string folding is of integral type.
14466
14467 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
14468
14469         * doc/invoke.texi (-x): Fix typo.
14470
14471 2010-09-10  Richard Guenther  <rguenther@suse.de>
14472
14473         PR debug/44115
14474         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
14475         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14476         Output DECL_DEBUG_EXPR.
14477         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
14478         Input DECL_DEBUG_EXPR.
14479
14480 2010-09-10  Richard Guenther  <rguenther@suse.de>
14481
14482         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
14483         (build_index_type): Implement in terms of build_range_type.
14484         (build_range_type): Do not allow NULL_TREE type, improve
14485         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
14486         if we didn't hash.
14487         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
14488         create a distinct copy of the type.
14489
14490 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
14491
14492         * configure: Regenerated.
14493         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
14494
14495 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14496
14497         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
14498         * config/arm/cortex-a9-neon.md: New and partially generated.
14499         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
14500
14501 2010-09-10  Richard Guenther  <rguenther@suse.de>
14502
14503         * tree.h (build_index_2_type): Remove.
14504         * tree.c (build_index_2_type): Remove.
14505
14506 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
14507
14508         PR bootstrap/45630
14509         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
14510         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
14511         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
14512
14513 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14514
14515         PR tree-optimization/44972
14516         * tree-sra.c: Include toplev.h.
14517         (build_ref_for_offset): Entirely reimplemented.
14518         (build_ref_for_model): New function.
14519         (build_user_friendly_ref_for_offset): New function.
14520         (analyze_access_subtree): Removed build_ref_for_offset check.
14521         (propagate_subaccesses_across_link): Likewise.
14522         (create_artificial_child_access): Use
14523         build_user_friendly_ref_for_offset.
14524         (propagate_subaccesses_across_link): Likewise.
14525         (ref_expr_for_all_replacements_p): Removed.
14526         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
14527         (sra_modify_expr): Use build_ref_for_model.
14528         (load_assign_lhs_subreplacements): Likewise.
14529         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
14530         checks for return values of build_ref_for_offset.
14531         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
14532         build_ref_for_offset.
14533         * ipa-prop.h: Include gimple.h
14534         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
14535         (ipa_analyze_indirect_call_uses): Update comment.
14536         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
14537         (IPA_PROP_H): Likewise.
14538
14539 2010-09-10  Martin Jambor  <mjambor@suse.cz>
14540
14541         PR tree-optimization/44972
14542         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
14543         calling build_ref_for_offset.
14544
14545 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14546
14547         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
14548         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
14549         * config/arm/arm-tune.md: Regenerate.
14550         * doc/invoke.texi (ARM Options): Document it.
14551
14552 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
14553
14554         * config/i386/i386.c: Include sched-int.h.
14555         (TARGET_SCHED_DISPATCH): Defined.
14556         (TARGET_SCHED_DISPATCH_DO): Defined.
14557         (DISPATCH_WINDOW_SIZE): Defined.
14558         (MAX_DISPATCH_WINDOWS): Defined.
14559         (MAX_INSN): Defined.
14560         (MAX_IMM): Defined.
14561         (MAX_IMM_SIZE): Defined.
14562         (MAX_IMM_32): Defined.
14563         (MAX_IMM_64): Defined.
14564         (MAX_LOAD): Defined.
14565         (MAX_STORE): Defined.
14566         (BIG): Defined.
14567         (dispatch_group): New.
14568         (num_allowable_groups): New.
14569         (group_name): New.
14570         (sched_insn_info_s): New.
14571         (dispatch_windows_s): New.
14572         (imm_info_s): New.
14573         (dispatch_window_list): New.
14574         (dispatch_window_list1): New.
14575         (get_mem_group): New.
14576         (is_cmp): New.
14577         (dispatch_violation): New.
14578         (is_branch): New.
14579         (is_prefetch): New.
14580         (init_window): New.
14581         (allocate_window): New.
14582         (init_dispatch_sched): New.
14583         (is_end_basic_block): New.
14584         (process_end_window): New.
14585         (allocate_next_window): New.
14586         (find_constant_1): New.
14587         (find_constant): New.
14588         (get_num_immediates): New.
14589         (has_immediate): New.
14590         (get_insn_path): New.
14591         (get_insn_group): New.
14592         (count_num_restricted): New.
14593         (fits_dispatch_window): New.
14594         (add_insn_window): New.
14595         (add_to_dispatch_window): New.
14596         (debug_dispatch_window_file): New.
14597         (debug_dispatch_window): New.
14598         (debug_insn_dispatch_info_file): New.
14599         (debug_ready_dispatch): New.
14600         (do_dispatch): New.
14601         (has_dispatch): New.
14602         * config/i386/i386.h (debug_ready_dispatch): Declared.
14603         (debug_dispatch_window): Declared.
14604         * config/i386/i386.opt (mdispatch-scheduler): New flag.
14605         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
14606         (TARGET_SCHED_DISPATCH_DO): New.
14607         * doc/tm.texi: Regererated.
14608         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
14609         ready_remove_first_dispatch
14610         (schedule_block): Call targetm.sched.dispatch and
14611         targetm.sched.dispatch_do.
14612         (sched_init): Call targetm.sched.dispatch and
14613         targetm.sched.dispatch_do.
14614         (ready_remove_first_dispatch): New.
14615         (number_in_ready): New.
14616         (get_ready_element): New.
14617         * hooks.c (hook_bool_rtx_int_false): New.
14618         (hook_void_rtx_int): New.
14619         * hooks.h (hook_bool_rtx_int_false): Declared.
14620         (hook_void_rtx_int): Declared.
14621         * sched-int.h (IS_DISPATCH_ON): Defined.
14622         (IS_CMP): Defined.
14623         (DISPATCH_VIOLATION): Defined.
14624         (FITS_DISPATCH_WINDOW): Defined.
14625         (DISPATCH_INIT): Defined.
14626         (ADD_TO_DISPATCH_WINDOW): Defined.
14627         (get_ready_element): Declared.
14628         (number_in_ready): Declared.
14629         * target.def (dispatch): Defined.
14630         (dispatch_do): Defined.
14631
14632 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14633
14634         PR middle-end/45312
14635         * reload1.c (merge_assigned_reloads): Remove.
14636         (reload_as_needed): Don't call it.
14637
14638 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
14639
14640         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
14641         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
14642         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
14643
14644 2010-09-09  Matthias Klose  <doko@ubuntu.com>
14645
14646         PR bootstrap/43847
14647         * configure.ac (--enable-plugin): Enhance for cross builds.
14648         * configure: Regenerate.
14649
14650 2010-09-09  Jan Hubicka  <jh@suse.cz>
14651
14652         PR tree-optimization/45598
14653         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
14654         string folding is of integral type.
14655
14656 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
14657
14658         * configure.ac (gnu_indirect_function): New test.
14659         * configure: Rebuilt.
14660         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
14661         * defaults.h (IFUNC_ASM_TYPE): Provide default.
14662
14663         * doc/extend.texi (Function Attributes): Document ifunc.
14664         * varasm.c (do_assemble_alias): Deal with ifuncs too.
14665
14666 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
14667
14668         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
14669         epilogue instruction move.
14670
14671 2010-09-09  Jan Hubicka  <jh@suse.cz>
14672
14673         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
14674         command line to allow more partitions than input files.
14675
14676 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14677
14678         PR middle-end/44554
14679         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
14680
14681 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
14682
14683         PR middle-end/40386
14684         * ira.c (pseudo_for_reload_consideration_p): Don't use
14685         flag_ira_share_spill_slots.
14686
14687 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14688
14689         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
14690         point zero operands that fit into a single GPR.
14691         (s390_preferred_reload_class): Ensure we only return general-purpose
14692         register classes.
14693         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
14694         floating-point zero operands into GPRs.
14695         ("*mov<mode>_64"): Likewise.
14696         ("mov<mode>"): Likewise using lhi.
14697
14698 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14699
14700         * config/s390/s390.c (s390_symref_operand_p): Return false for
14701         literal pool references.
14702         (s390_check_qrst_address): Update caller.
14703
14704 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
14705
14706         * config/i386/predicates.md (ext_register_operand): Check that
14707         SUBREG_REG is really a register before looking for REGNO.
14708         (reg_not_xmm0_operand): Handle SUBREGs correctly.
14709         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
14710
14711 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
14712
14713         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
14714         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
14715         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
14716         * print-rtl.c (print_rtx): Likewise.
14717         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
14718         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
14719         for ADDR_EXPR with non-addressable object.
14720         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
14721         (struct dw_val_struct): Add v.val_decl_ref.
14722         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
14723         Handle DW_OP_GNU_implicit_pointer.
14724         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
14725         (get_ref_die_offset_label): New function.
14726         (implicit_ptr_descriptor): New function.
14727         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
14728         (loc_descriptor): Likewise.
14729         (gen_variable_die): Put even definitions into decl_die_table.
14730         (resolve_addr_in_expr): Resolve still unresolved
14731         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
14732         return false.
14733         (dwarf2out_finish): Call output_location_lists after outputting
14734         .debug_info and .debug_abbrev instead of before.
14735
14736 2010-09-09  Roland McGrath  <roland@redhat.com>
14737
14738         * dwarf2out.c (DWARF_REF_SIZE): Define.
14739         (size_of_loc_descr): Use it for DW_OP_call_ref.
14740
14741 2010-09-09  Alan Modra  <amodra@gmail.com>
14742
14743         * doc/invoke.text: Reinstate mcmodel=medium.
14744         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14745         CMODEL_MEDIUM as default.
14746         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
14747         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
14748         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
14749         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
14750
14751 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14752
14753         PR target/45250
14754         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
14755         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
14756         (builtin_longjmp): Likewise.
14757         (allocate_stack): Use hard_frame_pointer_rtx instead of
14758         frame_pointer_rtx.
14759         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
14760         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
14761         (pa_can_eliminate): Likewise.
14762         (TARGET_INTERNAL_ARG_POINTER): Define.
14763         (TARGET_CAN_ELIMINATE): Define.
14764         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
14765         pointer.
14766         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
14767         (pa_internal_arg_pointer, pa_can_eliminate,
14768         pa_initial_elimination_offset): New.
14769         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
14770         (HARD_FRAME_POINTER_REGNUM): Set to register three.
14771         (INITIAL_FRAME_POINTER_OFFSET): Delete.
14772         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
14773         Define.
14774         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
14775         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
14776         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
14777         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
14778         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
14779         new soft frame pointer.
14780         * config/pa/pa64-regs.h: Likewise.
14781
14782 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14783
14784         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
14785         numerical constant.
14786         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
14787
14788 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14789
14790         PR debug/45531
14791         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
14792
14793 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
14794
14795         PR debug/45419
14796         PR debug/45408
14797         * tree-pretty-print.c (dump_generic_node): Disregard top-level
14798         qualifiers in otherwise equal MEM_REF pointer types.
14799         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
14800         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
14801
14802 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14803
14804         PR target/44392
14805         * config/arm/arm.md (bswapsi2): Handle condition correctly
14806         for armv6 and optimize_size.
14807
14808 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14809
14810         PR other/18555
14811         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
14812
14813 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
14814
14815         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
14816         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
14817         ix86_expand_strlen, legitimate_pic_address_disp_p,
14818         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
14819         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
14820         ix86_check_movabs, ix86_secondary_memory_needed): Change function
14821         prototype to bool.
14822         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
14823         return_in_memory_ms_64, ix86_check_movabs,
14824         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
14825         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
14826         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
14827         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
14828         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
14829         ix86_secondary_memory_needed): Change to bool.  Return
14830         "true" and "false" values.
14831         * config/i386/i386.md: Return "true" and "false" values.
14832
14833 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14834
14835         * doc/sourcebuild.texi (Effective-Target Keywords): Document
14836         run_expensive_tests.
14837
14838 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14839
14840         * toplev.c (output_stack_usage): Use lbasename instead of basename.
14841
14842 2010-09-08  Martin Jambor  <mjambor@suse.cz>
14843
14844         PR other/45443
14845         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
14846         at -O3.
14847
14848 2010-09-08  Richard Guenther  <rguenther@suse.de>
14849
14850         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
14851         (visit): Adjust.
14852         (iterative_hash_gimple_type): Likewise.
14853         (gimple_type_hash): Likewise.
14854         (gimple_register_type): Likewise.
14855         (print_gimple_types_stats): Likewise.
14856         (free_gimple_type_tables): Likewise.
14857
14858 2010-09-08  Michael Matz  <matz@suse.de>
14859
14860         PR tree-optimization/43430
14861         * tree-vect-stmts.c (vectorizable_condition): Support multiple
14862         copies for conditional statements if it's not part of a reduction.
14863
14864 2010-09-08  Michael Matz  <matz@suse.de>
14865
14866         PR tree-optimization/33244
14867         * tree-ssa-sink.c (statement_sink_location): Don't sink into
14868         empty loop latches.
14869
14870 2010-09-08  Richard Guenther  <rguenther@suse.de>
14871
14872         PR tree-optimization/45578
14873         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
14874         Be more careful when transfering alignment information to
14875         the new induction variable.
14876         (copy_ref_info): Likewise.
14877
14878 2010-09-08  Richard Guenther  <rguenther@suse.de>
14879
14880         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
14881         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
14882
14883 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
14884
14885         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
14886         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
14887
14888 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
14889
14890         PR doc/45587
14891         * doc/md.texi: Fixed modes on several standard pattern names.
14892
14893 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
14894
14895         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
14896         (ashl<mode>3): ...this.
14897         (loongson_psra<V_suffix>): Rename to...
14898         (ashr<mode>3): ...this.
14899         (loongson_psrl<V_suffix>): Rename to...
14900         (lshr<mode>3): ...this.
14901         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
14902         (CODE_FOR_loongson_psllw): Define.
14903         (CODE_FOR_loongson_psrlh): Define.
14904         (CODE_FOR_loongson_psrlw): Define.
14905         (CODE_FOR_loongson_psrah): Define.
14906         (CODE_FOR_loongson_psraw): Define.
14907
14908 2010-09-07  Richard Henderson  <rth@redhat.com>
14909
14910         * tree-vect-data-refs.c: Include tm_p.h.
14911         * Makefile.in (tree-vect-data-refs.o): Update deps.
14912         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
14913         Move delarations outside #ifdef RTX_CODE.
14914
14915 2010-09-07  Richard Henderson  <rth@redhat.com>
14916
14917         * final.c (rest_of_handle_final): Unconditionally do
14918         output_function_exception_table before assemble_end_function.
14919
14920 2010-09-07  Jan Hubicka  <jh@suse.cz>
14921
14922         * tree-inline.c (tree_inlinable_function_p): Do not test
14923         DECL_REPLACEABLE_P.
14924         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
14925         update_callee_keys, cgraph_decide_inlining): Test function availability.
14926         * cif-code.def (OVERWRITABLE): New code.
14927
14928 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
14929             Jack Howarth  <howarth@bromo.med.uc.edu>
14930
14931         PR target/36502
14932         PR target/42313
14933         PR target/44651
14934         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
14935         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
14936         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
14937         MAX macro.
14938
14939 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14940
14941         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
14942         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
14943
14944 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14945
14946         * config.gcc: Don't append t-android for Android targets.
14947
14948         * config/t-android: Removed.
14949
14950 2010-09-07  Richard Henderson  <rth@redhat.com>
14951
14952         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
14953         * doc/tm.texi.in: Add doc marker.
14954         * doc/tm.texi: Rebuild.
14955         * except.c (switch_to_exception_section): Always build.
14956         (output_one_function_exception_table): Move section switch,
14957         personality output, and label output ...
14958         (output_function_exception_table): ... here.  Use the new
14959         personality hook.
14960
14961         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
14962         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
14963         TARGET_ASM_INIT_SECTIONS): New.
14964         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
14965         make static.
14966         (TARGET_ASM_UNWIND_EMIT): Update to match.
14967         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
14968
14969         * config/arm/arm.c (arm_asm_emit_except_personality): New.
14970         (arm_asm_init_sections): New.
14971         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
14972
14973 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14974
14975         * config/arm/arm.md: Remove unused variable.
14976
14977 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
14978
14979         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
14980         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
14981         (m32r_memory_move_cost): New function.
14982
14983 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
14984
14985         * config.gcc: Append t-android for Android targets.
14986
14987         * config/t-android: New.
14988
14989 2010-09-07  Richard Henderson  <rth@redhat.com>
14990
14991         * target.def (unwind_emit_before_insn): New hook.
14992         * doc/tm.texi.in: Add @hook marker for it.
14993         * doc/tm.texi: Rebuild.
14994         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
14995
14996 2010-09-07  Martin Jambor  <mjambor@suse.cz>
14997
14998         PR fortran/43665
14999         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
15000         are any type attributes.
15001
15002 2010-09-07  Jan Hubicka  <jh@suse.cz>
15003
15004         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
15005         array_ref_low_bound in string access folding.
15006
15007 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
15008
15009         PR target/45206
15010         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
15011         eh_return fixup sequence.
15012
15013 2010-09-07  Jan Hubicka  <jh@suse.cz>
15014
15015         * gimple-fold.c (maybe_fold_reference): Verify that operand is
15016         gimple_min_invariant.
15017
15018 2010-09-07  Richard Guenther  <rguenther@suse.de>
15019
15020         PR middle-end/45569
15021         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
15022         nor CONSTRUCTOR can trap.
15023         * tree-complex.c (update_complex_assignment): Update EH info.
15024
15025 2010-09-07  Richard Guenther  <rguenther@suse.de>
15026
15027         PR middle-end/45569
15028         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
15029         * passes.c (execute_function_todo): Do not verify anything if
15030         we saw errors.
15031
15032 2010-09-07  Richard Guenther  <rguenther@suse.de>
15033
15034         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
15035
15036 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
15037
15038         PR target/43137
15039         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
15040         New define_mode_attrs.
15041         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
15042         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
15043         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
15044         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
15045         Remove pool_range attribute.
15046         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
15047         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
15048         pool_range and neg_pool_range attributes.
15049         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
15050         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
15051         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
15052
15053 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
15054
15055         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
15056         check glibc.
15057
15058 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
15059
15060         PR target/22152
15061         * config/i386/mmx.md (*mov<mode>_internal_rex64,
15062         *mov<mode>_internal_avx, *mov<mode>_internal,
15063         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
15064         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
15065
15066 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
15067
15068         * c-typeck.c (do_warn_double_promotion): Remove.
15069         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
15070         Objective-C++ too.
15071
15072 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
15073
15074         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
15075         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
15076         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
15077         argument type to reg_class_t. Change result type to bool.
15078         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15079
15080 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
15081
15082         PR libobjc/19850
15083         * gthr-posix.h (__gthread_objc_thread_detach): Use
15084         _objc_thread_attribs when detaching a thread.
15085         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
15086
15087 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
15088
15089         PR target/45524
15090         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
15091         * configure: Regenerated.
15092
15093 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15094
15095         * combine.c (try_combine): Set subst_low_luid to i0.
15096
15097 2010-09-06  Richard Guenther  <rguenther@suse.de>
15098
15099         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
15100         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
15101         (build_aligned_type): Declare.
15102         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
15103         (check_aligned_type): New function.
15104         (build_aligned_type): Likewise.
15105         * expr.c (expand_assignment): Handle misaligned stores via
15106         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
15107         (expand_expr_real_1): Likewise.
15108         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
15109         * tree-vect-stmts.c (vectorizable_store): Do not build
15110         MISALIGNED_INDIRECT_REF but initialize alignment information.
15111         (vectorizable_load): Likewise.
15112         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
15113         handling.
15114         * cfgexpand.c (expand_debug_expr): Likewise.
15115         * dwarf2out.c (loc_list_from_tree): Likewise.
15116         * fold-const.c (maybe_lvalue_p): Likewise.
15117         (operand_equal_p): Likewise.
15118         (build_fold_addr_expr_with_type_loc): Likewise.
15119         * gimplify.c (gimplify_addr_expr): Likewise.
15120         (gimplify_expr): Likewise.
15121         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
15122         (verify_gimple_assign_single): Likewise.
15123         * tree-dump.c (dequeue_and_dump): Likewise.
15124         (tree_could_trap_p): Likewise.
15125         * tree-predcom.c (ref_at_iteration): Likewise.
15126         * tree-pretty-print.c (dump_generic_node): Likewise.
15127         (op_code_prio): Likewise.
15128         (op_symbol_code): Likewise.
15129         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
15130         * tree-ssa-loop-im.c (for_each_index): Likewise.
15131         (gen_lsm_tmp_name): Likewise.
15132         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
15133         (find_interesting_uses_address): Likewise.
15134         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
15135         * tree-ssa-operands.c (get_expr_operands): Likewise.
15136         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15137         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15138         (ao_ref_init_from_vn_reference): Likewise.
15139         * tree.c (staticp): Likewise.
15140         (build1_stat): Likewise.
15141         (reference_alias_ptr_type): Likewise.
15142         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
15143         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
15144         MISALIGNED_INDIRECT_REF handling.
15145
15146 2010-09-06  Richard Guenther  <rguenther@suse.de>
15147
15148         PR tree-optimization/45534
15149         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
15150         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
15151         on the target.
15152         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
15153         valid on the target.
15154
15155 2010-09-06  Andreas Schwab  <schwab@redhat.com>
15156
15157         * configure.ac: Quote argument of AC_MSG_WARN.
15158         * configure: Regenerate.
15159
15160 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
15161
15162         * sel-sched.c (move_cond_jump): Correct arguments to
15163         maybe_tidy_empty_bb.
15164         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
15165
15166 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
15167
15168         PR rtl-optimization/44919
15169         * sel-sched.c (move_cond_jump): Remove assert, check that
15170         the several blocks case can only happen with mutually exclusive
15171         insns instead.  Rewrite the movement code to support moving through
15172         several basic blocks.
15173
15174 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
15175
15176         * config/i386/i386.md (iptrsize): New mode attribute.
15177         (tp_seg): Ditto.
15178         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
15179         mode iterator.
15180         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
15181         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
15182         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
15183         (stack_tls_protect_set_<mode>): Ditto from
15184         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
15185         of thread base pointer load.
15186         (stack_tls_protect_test_<mode>): Ditto from
15187         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
15188         of thread base pointer load.
15189         (stack_protect_set): Rewrite using indirect functions.
15190         (stack_protect_test): Ditto.
15191         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
15192         (ix86_print_operand): Handle '@'.
15193
15194 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
15195
15196         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
15197         MINUS_EXPR.
15198
15199 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
15200
15201         * doc/invoke.texi: Document -Wdouble-promotion.
15202         * c-typeck.c (convert_arguments): Check for implicit conversions
15203         from float to double.
15204         (do_warn_double_promotion): New function.
15205         (build_conditional_expr): Use it.
15206         (build_binary_op): Likewise.
15207
15208 2010-09-05  Richard Guenther  <rguenther@suse.de>
15209
15210         PR tree-optimization/45535
15211         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
15212         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
15213         dereferencing it.
15214         (indirect_refs_may_alias_p): Likewise.
15215
15216 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
15217
15218         * config/sh/sh.c (sh_option_override): Make static.
15219         Adjust comments.  Declare.
15220         (sh_function_value_regno_p): Likewise.
15221         (sh_register_move_cost): Modify the arguments, make static.
15222         Adjust comments.  Declare.
15223         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
15224         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15225         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
15226         REGISTER_MOVE_COST): Delete.
15227         * config/sh/sh-protos.h (sh_override_options): Delete.
15228         (sh_register_move_cost): Delete.
15229         (sh_function_value_regno_p): Delete.
15230
15231 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
15232
15233         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
15234         m32r_function_value_regno_p): New functions.
15235         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15236         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
15237         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
15238         FUNCTION_VALUE_REGNO_P): Remove.
15239
15240 2010-09-04  Jan Hubicka  <jh@suse.cz>
15241
15242         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
15243         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
15244         fold_read_from_constant_string.
15245
15246         * gimple.h (canonicalize_constructor_val): Declare.
15247         * gimple-fold.c (canonicalize_constructor_val): New function.
15248         (get_symbol_constant_value):Use it.
15249         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
15250
15251 2010-09-04  Jan Hubicka  <jh@suse.cz>
15252
15253         * tree-switch-conversion.c (build_one_array): Set constructor to be
15254         static.
15255         * varpool.c (varpool_finalize_decl): Compute const_value_known.
15256
15257 2010-09-04  Richard Guenther  <rguenther@suse.de>
15258
15259         PR bootstrap/45519
15260         * tree-flow.h (force_gimple_operand_1): Declare.
15261         (force_gimple_operand_gsi_1): Likewise.
15262         * gimplify.c (force_gimple_operand_1): New worker taking a
15263         gimple predicate for ...
15264         (force_gimple_operand): ... which now wraps it.
15265         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
15266         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
15267         last change.
15268         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
15269         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
15270         (create_mem_ref): Likewise.
15271
15272 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
15273
15274         * config/i386/predicates.md (sse_reg_operand): New predicate.
15275         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
15276         predicate for operand 1.
15277         (XFmode push splitter): Use fp_register_operand predicate
15278         for operand 1.
15279         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
15280         (SF-DF float_extend push splitter): Add reload_completed insn
15281         predicate.
15282         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
15283         MODEF mode macro.  Add reload_completed insn predicate.
15284
15285 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
15286
15287         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
15288         (struct df_extract_ref): Remove.
15289         (union df_ref_d): Remove extract_ref member.
15290         (df_ref_create): Remove last three arguments.
15291         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
15292         * df-scan.c (df_ref_record): Remove last three arguments, do not
15293         pass them to df_ref_create_structure.
15294         (df_uses_record): Remove first and last three arguments.  Replace
15295         first argument with DF_REF_REGULAR, adjust calls to remove the
15296         width, offset and mode.  Always call recursively on the second
15297         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
15298         (df_ref_create_structure): Remove first argument.
15299         (struct df_scan_problem_data): Remove ref_extract_pool.
15300         (df_scan_free_internal): Do not free it.
15301         (df_scan_alloc): Do not allocate it.
15302         (df_ref_create): Remove last three arguments, do not pass them to
15303         df_ref_create_structure.
15304         (df_free_ref): Remove DF_REF_EXTRACT case.
15305         (df_notes_rescan): Adjust call to df_uses_record.
15306         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
15307         Remove DF_REF_EXTRACT case.
15308         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
15309         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
15310         and SUBREG definitions.
15311         (df_get_conditional_uses): Remove references to width/offset/mode,
15312         adjust call to df_ref_create_structure.
15313         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
15314         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
15315         calls to df_uses_record and df_ref_record.
15316         * fwprop.c (update_df): Remove references to width/offset/mode,
15317         adjust call to df_ref_create.
15318
15319 2010-09-03  Jan Hubicka  <jh@suse.cz>
15320
15321         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
15322         (build_cdtor_fns): Update use of build_cdtor.
15323
15324 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
15325
15326         * doc/options.texi (SeparateAlias): Document.
15327         * opt-functions.awk (switch_flags): Handle SeparateAlias.
15328         * opth-gen.awk: Generate enumeration names for options marked
15329         SeparateAlias, but not for those marked Ignore.
15330         * opts-common.c (generate_canonical_option): Don't output separate
15331         argument for options marked CL_SEPARATE_ALIAS.
15332         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
15333         * opts.h (CL_SEPARATE_ALIAS): New.
15334         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
15335         CL_COMMON): Adjust definitions.
15336         * config/i386/darwin.opt, config/mips/sde.opt: New.
15337         * common.opt (fdump-final-insns): New.
15338         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
15339         i386/darwin.opt.
15340         (mips*-sde-elf*): Add mips/sde.opt.
15341         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
15342         -mno-data-in-code and -mcode-xonly here.
15343         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
15344         * gcc.c (option_map): Add "j" to --dump entry.
15345         (translate_options): Don't translate -d to -foutput-class-dir= here.
15346
15347 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
15348
15349         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
15350         DR_IS_WRITE.
15351         (compute_all_dependences): Same.
15352         (create_rdg_edge_for_ddr): Same.
15353         * tree-data-ref.h (DR_IS_WRITE): New.
15354         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
15355         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
15356         (write_memrefs_written_at_least_once): Same.
15357         * tree-predcom.c (suitable_component_p): Same.
15358         (determine_roots_comp): Same.
15359         (execute_load_motion): Same.
15360         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
15361         (vect_enhance_data_refs_alignment): Same.
15362         (vect_analyze_group_access): Same.
15363
15364 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
15365
15366         PR testsuite/42843
15367         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
15368         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
15369
15370 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
15371
15372         * dwarf2out.c (file scope): Remove #if0'd code.
15373         (gen_subprogram_die): Same.
15374
15375 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15376
15377         PR middle-end/45484
15378         * dwarf2out.c (flush_queued_reg_saves): Rename to...
15379         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
15380         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
15381         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
15382         * config/i386/i386.c (output_set_got): Call it.
15383
15384 2010-09-03  Michael Matz  <matz@suse.de>
15385
15386         PR middle-end/45415
15387         * tree-sra.c (sra_modify_assign): If we modify the statement,
15388         say so.
15389
15390         * tree-ssa.c (verify_ssa): Check number of operands and links
15391         per statement to agree.
15392
15393 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15394             Iain Sandoe  <iains@gcc.gnu.org>
15395
15396         PR target/45476
15397         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
15398         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
15399         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15400
15401 2010-09-03  Richard Guenther  <rguenther@suse.de>
15402
15403         * lto-streamer-out.c (output_function): Output function
15404         start and end loci.
15405         * lto-streamer-in.c (input_function): Input function start
15406         and end loci.
15407
15408 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15409
15410         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
15411         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
15412         * configure: Regenerate.
15413         * aclocal.m4: Regenerate.
15414
15415 2010-09-03  Jan Hubicka  <jh@suse.cz>
15416
15417         PR lto/44812
15418         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
15419         on functions/variables in other partition.
15420
15421 2010-09-03  Jan Hubicka  <jh@suse.cz>
15422
15423         * cgraph.h (struct varpool_node): Add const_value_known.
15424         (varpool_decide_const_value_known): Declare.
15425         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
15426         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
15427         (input_varpool_node): Restore const_value_known.
15428         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
15429         initializer folding.
15430         * ipa.c (ipa_discover_readonly_nonaddressable_var,
15431         function_and_variable_visibility): Compute const_value_known.
15432         * gimple-fold.c (get_symbol_constant_value): Use varpool for
15433         initializer folding.
15434         * varpool.c (varpool_decide_const_value_known): New function.
15435
15436 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
15437
15438         * config/i386/i386.md: Remove empty preparation statements
15439         from splitters.
15440
15441 2010-09-03  Jan Hubicka  <jh@suse.cz>
15442
15443         * passes.c (rest_of_decl_compilation): Do not add local vars into
15444         varpool.
15445         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
15446         static or extern vars are in varpool.
15447         (varpool_finalize_decl): Sanity check that only static vars are
15448         finalized.
15449
15450 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
15451
15452         PR debug/45500
15453         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
15454         not just generic vectors with BLKmode.
15455
15456 2010-09-03  Richard Guenther  <rguenther@suse.de>
15457
15458         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
15459         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
15460         * tree.h (TMR_SYMBOL): Remove.
15461         (TMR_BASE, TMR_OFFSET): Adjust.
15462         (TMR_INDEX2): New.
15463         * alias.c (ao_ref_from_mem): Use TMR_BASE.
15464         * builtins.c (get_object_alignment): Merge TMR_BASE and
15465         TMR_SYMBOL handling.
15466         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
15467         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
15468         handling.  Also allow TARGET_MEM_REF as base address.
15469         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
15470         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
15471         base.  Gimplify TMR_INDEX2.
15472         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
15473         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15474         (get_addr_base_and_unit_offset): Likewise.
15475         * tree-eh.c (tree_could_trap_p): Likewise.
15476         * tree-pretty-print.c (dump_generic_node): Likewise.
15477         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
15478         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
15479         base to index2.
15480         (get_address_description): Reconstruct addres description
15481         from merged TMR_BASE and TMR_INDEX2.
15482         (maybe_fold_tmr): Fold propagated addresses.
15483         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
15484         MEM_REF and TARGET_MEM_REF paths.
15485         (indirect_refs_may_alias_p): Likewise.
15486         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
15487         instead of TMR_SYMBOL.
15488         * tree-ssa-operands.c (get_tmr_operands): Simplify.
15489         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
15490         according to changes ...
15491         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
15492         Split TARGET_MEM_REF into two fields plus the base.
15493         * tree.c (mem_ref_offset): Simplify.
15494         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
15495         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
15496         Strip NOPs when folding MEM_REF addresses.
15497         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
15498         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
15499         (fold_gimple_assign): ... not here.
15500
15501 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
15502
15503         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
15504         * config/mips/mips.c (mips_shift_truncation_mask): New function.
15505         (TARGET_SHIFT_TRUNCATION_MASK): Define.
15506
15507 2010-09-02  Richard Henderson  <rth@redhat.com>
15508
15509         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
15510         instead of readelf in the test.
15511         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
15512         in the .debug_frame section for coff targets.
15513         * configure: Rebuild.
15514
15515 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15516
15517         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
15518         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
15519         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15520         (m32c_class_likely_spilled_p): Make static. Change argument type to
15521         reg_class_t. Change result type to bool.
15522
15523 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15524
15525         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
15526         to convert (double)(long) into a single FRIZ instruction or not
15527         when -ffast-math is used.
15528
15529         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
15530         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
15531         or FRIZ instruction if -ffast-math.
15532         * config/rs6000/rs6000.md (friz): Ditto.
15533
15534         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
15535
15536 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15537
15538         * opth-gen.awk (quote, comma): Remove unused variables.
15539
15540 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
15541
15542         * arm.c (arm_override_options): Correct fall-back code to use
15543         SUBTARGET_CPU_DEFAULT.
15544
15545 2010-09-02  Julian Brown  <julian@codesourcery.com>
15546
15547         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
15548         unspecs.
15549         (vcond<mode>, vcondu<mode>): New expanders.
15550         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
15551         comparisons with zero.
15552         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
15553         * config/arm/constraints.md (Dz): New constraint.
15554
15555 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
15556
15557         * target.def (class_likely_spilled_p): New hook.
15558         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
15559         * doc/tm.texi: Regenerate.
15560         * targhooks.c (default_class_likely_spilled_p): New function.
15561         * targhooks.h (default_class_likely_spilled_p): Declare.
15562         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
15563         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
15564         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
15565         Use fixed_reg_set instead of fixed_regs.
15566         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15567         * calls.c (avoid_likely_spilled_reg): Ditto.
15568         * ira-conflicts.c (ira_build_conflicts): Ditto.
15569         * ira.c (update_equiv_regs): Ditto.
15570         * mode-switching.c (create_pre_exit): Ditto.
15571         * regmove.c (find_matches): Ditto.
15572         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
15573         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
15574         (small_register_class_p): New inline function.
15575         (push_secondary_reload, find_reusable_reload, find_reloads): Use
15576         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
15577
15578         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
15579         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
15580         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
15581
15582 2010-09-02  Richard Guenther  <rguenther@suse.de>
15583
15584         PR tree-optimization/44937
15585         PR tree-optimization/45412
15586         * ipa-split.c (split_function): Properly remove PHI nodes.
15587
15588 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15589
15590         * opts.h (struct cl_option): Add warn_message field.
15591         (struct cl_decoded_option): Add warn_message field.
15592         * doc/options.texi (Ignore, Warn): Document.
15593         * opt-functions.awk (needs_state_p): Don't consider aliases or
15594         ignored options to need state saved.
15595         * optc-gen.awk: Handle Warn and Ignore.
15596         * opth-gen.awk: Output OPT_SPECIAL_ignore.
15597         * opts-common.c (decode_cmdline_option): Set warn_message field.
15598         Handle ignored options.
15599         (decode_cmdline_options_to_array, generate_option,
15600         generate_option_input_file): Set warn_message field.
15601         (read_cmdline_option): Generate warnings from warn_message field.
15602         Handle ignored options.
15603         * common.opt (Wunreachable-code, fargument-alias,
15604         fargument-noalias, fargument-noalias-global,
15605         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
15606         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
15607         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
15608         ftree-salias): Mark Ignore.
15609         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
15610         -mintel-syntax and -mno-intel-syntax here.
15611         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
15612         using Warn.
15613         * opts.c (common_handle_option): Don't handle options marked as
15614         ignored.
15615         (enable_warning_as_error): Handle ignored options.
15616
15617 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
15618
15619         PR driver/44076
15620         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
15621         alias_target fields.
15622         * opt-functions.awk (opt_sanitized_name): Don't handle
15623         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
15624         * optc-gen.awk: Generate alias fields.
15625         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
15626         Don't generate such constants for aliases.
15627         * opts-common.c (generate_canonical_option): New.
15628         (decode_cmdline_option): Handle aliases.  Use
15629         generate_canonical_option for known options instead of copying the
15630         input option text.
15631         * doc/options.texi (Alias): Document.
15632         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
15633         fstack-check, specs): Mark as aliases.
15634         * gcc.c (driver_handle_option): Canonicalize -L options to joined
15635         arguments.
15636         (driver_handle_option): Don't handle OPT_specs.
15637         * opts.c (common_handle_option): Don't handle options marked as
15638         aliases.
15639         (enable_warning_as_error): Handle aliases.
15640         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
15641         OPT_Wlarger_than_eq.
15642         * tree-optimize.c (tree_rest_of_compilation): Use
15643         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
15644
15645 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15646
15647         * config/i386/i386.md (nonmemory_operand): New mode attribute.
15648         (push memory peephole2): Macroize peepholes using SWI mode iterator.
15649         (move immediate to memory peephole2): Macroize peepholes using
15650         SWI124 mode iterator.
15651         (non-pairable NOT peephole2): Macroize peepholes using SWI124
15652         mode iterator.
15653         (simple lea add peephole2): Macroize peepholes using SWI48
15654         mode iterator.
15655         (simple lea mult peephole2): Ditto.
15656         (imul by 3,5,9 to lea peephole2): Ditto.
15657         (mov $-1, reg peephole2): Macroize peepholes using SWI248
15658         mode iterator.
15659         (imul $32bit_imm,mem,reg peephole2): Ditto.
15660         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
15661
15662 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
15663
15664         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
15665
15666 2010-09-02  Olivier Hainque  <hainque@adacore.com>
15667
15668         PR middle-end/44763
15669         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
15670         (allocno_priority_compare_func): Use it instead of a straight
15671         difference computation over priorities.
15672
15673 2010-09-02  Andi Kleen  <ak@linux.intel.com>
15674
15675         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
15676
15677 2010-09-02  Ira Rosen  <irar@il.ibm.com>
15678
15679         * tree-vectorizer.h (get_later_stmt): New function.
15680         (vect_analyze_data_ref_dependences): Add argument.
15681         * tree-vect-loop.c (vect_analyze_loop): Update call to
15682         vect_analyze_data_ref_dependences.
15683         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
15684         New function.
15685         (vect_analyze_data_ref_dependence): Add argument for basic block
15686         dependencies. Check dependencies in basic block vectorization.
15687         (vect_analyze_data_ref_dependences): Add argument and update call to
15688         vect_analyze_data_ref_dependences.
15689         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
15690         (vect_bb_vectorizable_with_dependencies): New.
15691         (vect_slp_analyze_bb): Check dependencies in basic block.
15692         (vect_schedule_slp_instance): Insert stores before the last store in
15693         SLP instance.
15694
15695 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
15696
15697         PR target/45476
15698         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
15699         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
15700
15701 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
15702
15703         PR middle-end/45458
15704         * bb-reorder.c (add_labels_and_missing_jumps): Treat
15705         bbs ending with throwing insns like blocks ending with a call.
15706         (fix_up_fall_thru_edges): Likewise.
15707
15708 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
15709
15710         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
15711         (m32c_function_arg_advance): Delete.
15712         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15713         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
15714         comments.  Take a const_tree and a bool.  Declare.
15715         (m32c_function_arg_advance): Likewise.
15716         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15717
15718 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15719
15720         PR target/45476
15721         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
15722         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
15723         * config/i386/mingw32.h: ... here.
15724
15725 2010-09-01  Andi Kleen  <ak@linux.intel.com>
15726
15727         PR lto/45475
15728         * lto-streamer-in.c (lto_input_ts_target_option): Add.
15729         (lto_input_tree_pointers): Call lto_input_ts_target_option.
15730         * lto-streamer-out (lto_output_ts_target_option): Add.
15731         (lto_output_tree_pointers): Call lto_output_ts_target_option.
15732
15733 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
15734
15735         PR/target 45452
15736         * config/i386/cygwin.h: Change order of specified import libraries.
15737         * config/i386/mingw32.h: Likewise.
15738         * config/i386/t-cygwin: Likewise.
15739         * config/i386/t-mingw32: Likewise.
15740         * config/i386/t-mingw-w32: Likewise.
15741         * config/i386/t-mingw-w64: Likewise.
15742
15743 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15744
15745         * config/arm/neon-schedgen.ml (core): New type.
15746         (allCores): List of supported cores.
15747         (availability_table): Add supported cores.
15748         (collate_bypasses): Accept core as a parameter.
15749         (worst_case_latencies_and_bypasses): Accept core as a parameter.
15750         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
15751         and coreStr to get tune attribute and prefix for functional units.
15752         (emit_bypasses): Accept core name and use it.
15753         (calculate_per_core_availability_table): New.
15754         (filter_core): New.
15755         (calculate_core_availability_table): New.
15756         (main): Use calculate_core_availablity_table.
15757         * config/arm/cortex-a8-neon.md: Update copyright year.
15758         Regenerated from ml file and merged in.
15759         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
15760         cortex_a8_neon_mrc.
15761
15762 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
15763
15764         * Makefile.in (tree-switch-conversion.o): Update dependencies.
15765
15766 2010-09-01  Richard Guenther  <rguenther@suse.de>
15767
15768         * alias.c (ao_ref_from_mem): Adjust.
15769         * builtins.c (get_object_alignment): Likewise.
15770         * cfgexpand.c (expand_debug_expr): Likewise.
15771         * gimple.c (get_base_address): Likewise.
15772         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15773         (get_addr_base_and_unit_offset): Likewise.  Fix for
15774         both TMR_SYMBOL and TMR_BASE being set.
15775         * tree-eh.c (tree_could_trap_p): Likewise.
15776         * gimplify.c (gimplify_expr): Do not attempt to gimplify
15777         TMR_SYMBOL.  Always gimplify TMR_BASE.
15778         * tree-cfg.c (verify_types_in_gimple_reference): Verify
15779         TMR_BASE if there is a TMR_SYMBOL.
15780         * tree-pretty-print.c (dump_generic_node): Adjust.
15781         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
15782         (tree_mem_ref_addr): Likewise.
15783         (create_mem_ref_raw): Likewise.
15784         (move_fixed_address_to_symbol): Likewise.
15785         (create_mem_ref): Likewise.
15786         (dump_mem_address): Likewise.
15787         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
15788         Fix for both TMR_SYMBOL and TMR_BASE being set.
15789         (indirect_refs_may_alias_p): Likewise.
15790         * tree-ssa-operands.c (get_tmr_operands): Adjust.
15791         * tree.def (TARGET_MEM_REF): Adjust documentation.
15792
15793 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15794
15795         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
15796         Rename from X86_TUNE_ADD_ESP_4.
15797         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
15798         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
15799         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
15800         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
15801         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
15802         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
15803         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
15804         * config/i386/i386.c (initial_ix86_tune_features)
15805         <X86_TUNE_SINGLE_POP>: Invert members.
15806         <X86_TUNE_DOUBLE_POP>: Ditto.
15807         <X86_TUNE_SINGLE_PUSH>: Ditto.
15808         <X86_TUNE_DOUBLE_PUSH>: Ditto.
15809         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
15810         No longer exported.
15811         (push peephole2 patterns): Macroize peepholes using P mode iterator.
15812         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
15813         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
15814         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
15815
15816 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
15817
15818         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
15819         a volatile LHS if the constructor has only one element.
15820
15821 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
15822
15823         PR bootstrap/45321
15824         * tree.c (stdarg_p): Make fntype parameter const.
15825         * tree.h (stdarg_p): Likewise.
15826         (function_args_iterator): Remove unused fntype field.
15827         (function_args_iter_init): Do not initialize fntype
15828         field.  Make fntype parameter const.
15829
15830 2010-09-01  Richard Guenther  <rguenther@suse.de>
15831
15832         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
15833         estimate.
15834         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
15835         (execute_vrp): Compute number of iteration estimates.
15836         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
15837         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
15838         * tree-data-ref.c (estimated_loop_iterations): Adjust.
15839         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
15840         Infer loop bounds from undefined behavior based on a new parameter.
15841         (estimate_numbers_of_iterations): Likewise.
15842         (scev_probably_wraps_p): Adjust.
15843         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
15844
15845 2010-09-01  Nick Clifton  <nickc@redhat.com>
15846
15847         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
15848         where appropriate.
15849         (xstormy16_legitimate_address_p): Use true and false instead of 1
15850         and 0.
15851         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
15852         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
15853         magic constant 2.
15854         (xstormy16_expand_call): Fix comment at start of function.
15855
15856 2010-09-01  Nick Clifton  <nickc@redhat.com>
15857
15858         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
15859         when pushing accumulator register.
15860         (rx_get_stack_layout): Always save call clobbered registers inside
15861         interrupt handlers.
15862         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
15863
15864 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
15865
15866         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
15867         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
15868
15869         * libgcc-std.ver (GCC_4.6.0): Define version.
15870
15871 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15872
15873         * tree-nested.c (convert_all_function_calls): Iterate until after the
15874         sum of static chains in the nest doesn't change.
15875
15876 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
15877
15878         * config/m32c/m32c.c (classes_intersect): Remove.
15879         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
15880         reg_classes_intersect_p instead of classes_intersect.
15881         (class_can_hold_mode): Change arguments type from enum reg_class to
15882         reg_class_t.  Use reg_class_contents instead of class_contents.
15883         (m32c_register_move_cost): Make static. Change arguments type from
15884         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
15885         classes_intersect. Use reg_class_contents instead of class_contents.
15886         (m32c_memory_move_cost): Make static. Change arguments type from
15887         enum reg_class to reg_class_t.
15888         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
15889         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
15890         * config/m32c/m32c-protos.h (m32c_register_move_cost,
15891         m32c_memory_move_cost): Remove.
15892
15893 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15894
15895         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
15896         (arm_function_arg): Delete.
15897         (arm_needs_doubleword_align): Take a const_tree.
15898         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15899         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
15900         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
15901         (arm_function_arg): Make static.  Take a const_tree and a bool.
15902         (arm_function_arg_advance): Likewise.
15903         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15904
15905 2010-08-31  Andi Kleen  <ak@linux.intel.com>
15906
15907         * common.opt (fwhopr=): Update for -fwhopr=jobserver
15908         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
15909         * lto-wrapper.c (run_gcc): Add jobserver mode.
15910         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
15911         argument.
15912
15913 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
15914
15915         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
15916         (popsi1): Ditto.
15917         (*popdi1_epilogue): Ditto.
15918         (*popsi1_epilogue): Ditto.
15919         (popsi, popdi peephole2 patterns): Update peepholes for changed
15920         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
15921
15922         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
15923         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
15924
15925         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
15926         (override_options): Do not initialize removed ix86_gen_pop1.
15927         (gen_pop): New static function.
15928         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
15929         (release_scratch_register_on_entry): Ditto.
15930         (ix86_restore_reg_using_pop): Ditto.
15931         (ix86_expand_epilogue): Ditto.
15932
15933 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
15934
15935         PR middle-end/45461
15936         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
15937
15938 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15939
15940         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
15941         semicolons.
15942
15943 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
15944
15945         * doc/extend.texi: Fix documentation of the return value of
15946         __builtin_choose_expr.
15947
15948 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15949
15950         * config/v850/v850-protos.h (function_arg): Delete.
15951         * config/v850/v850.h (FUNCTION_ARG): Delete.
15952         (FUNCTION_ARG_ADVANCE): Move code to...
15953         * config/v850/v850.c (v850_function_arg_advance): ...here.
15954         (v850_function_arg): Make static.  Take a const_tree and a bool.
15955         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15956
15957 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15958
15959         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
15960         these...
15961         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15962         ...and these...
15963         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
15964         ..to here..
15965         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
15966         ...and here.
15967         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15968
15969 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
15970
15971         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
15972         Delete.
15973         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
15974         * config/rx/rx.c (rx_function_arg_size): Make static.
15975         (rx_function_arg): Likewise.
15976         (rx_function_arg_advance): New function.
15977         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
15978
15979 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
15980
15981         * config/arm/arm.c (arm_override_options): Remove superfluous test.
15982         Fix indentation.
15983
15984 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
15985
15986         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
15987         (dwarf2out_decl) <CONST_DECL>: Likewise.
15988
15989 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
15990
15991         Stack usage support
15992         * common.opt (-fstack-usage): New option.
15993         * doc/invoke.texi (Debugging options): Document it.
15994         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
15995         allocate_dynamic_stack_space.
15996         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
15997         and propagate it to allocate_dynamic_stack_space.
15998         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
15999         * calls.c (initialize_argument_information): Pass TRUE as 4th
16000         argument to allocate_dynamic_stack_space.
16001         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
16002         to 1 when pushing a variable-sized argument onto the stack.  Pass
16003         TRUE as 4th argument to allocate_dynamic_stack_space.
16004         Update current_function_pushed_stack_size.
16005         (emit_library_call_value_1): Likewise.
16006         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
16007         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
16008         attempt to find an upper bound.  Remove redundant code for the
16009         SETJMP_VIA_SAVE_AREA case.
16010         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
16011         * function.h (struct stack_usage): New structure.
16012         (current_function_static_stack_size): New macro.
16013         (current_function_dynamic_stack_size): Likewise.
16014         (current_function_pushed_stack_size): Likewise.
16015         (current_function_dynamic_alloc_count): Likewise.
16016         (current_function_has_unbounded_dynamic_stack_size): Likewise.
16017         (current_function_allocates_dynamic_stack_space): Likewise.
16018         (struct function): Add new field 'su'.
16019         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
16020         add the value of the dynamic offset to the dynamic stack usage.
16021         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
16022         for variable-sized objects.
16023         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
16024         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
16025         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
16026         BUILT_IN_ALLOCA for variable-sized objects.
16027         * output.h (output_stack_usage): Declare.
16028         * toplev.c (stack_usage_file): New file pointer.
16029         (output_stack_usage): New function.
16030         (open_auxiliary_file): Likewise.
16031         (lang_dependent_init): Open file if flag_stack_usage is set.
16032         (finalize): Close file if stack_usage_file is not null.
16033         * tree.h (ALLOCA_FOR_VAR_P): New macro.
16034         * config/alpha/alpha.c (compute_frame_size): New function.
16035         (alpha_expand_prologue): Use it.
16036         (alpha_start_function): Likewise.
16037         (alpha_expand_epilogue): Likewise.  Set stack usage info.
16038         * config/i386/i386.c (ix86_expand_prologue): Likewise.
16039         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
16040         * config/mips/mips.c (mips_expand_prologue): Likewise.
16041         * config/pa/pa.c (hppa_expand_prologue): Likewise.
16042         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
16043         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
16044
16045 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
16046
16047         PR tree-optimization/45427
16048         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
16049         Handle the case that the exit is never taken correctly.
16050         (number_of_iterations_ne): Pass exit_must_be_taken to
16051         number_of_iterations_ne_max.
16052
16053 2010-08-30  Catherine Moore  <clm@codesourcery.com>
16054
16055         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
16056         Infer -mdspr2 for the the 74K.
16057
16058 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
16059
16060         PR debug/45419
16061         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
16062
16063         PR middle-end/45423
16064         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
16065         and TRUTH_{AND,OR,XOR}_EXPR.
16066         * c-parser.c (c_parser_omp_atomic): Handle boolean
16067         {PRE,POST}_{INC,DEC}REMENT.
16068
16069 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
16070
16071         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
16072         (function_arg): Delete.
16073         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16074         (FUNCTION_INCOMING_ARG): Delete.
16075         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
16076         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
16077         and a bool.
16078         (function_arg): Rename to...
16079         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
16080         a bool.
16081         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
16082         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16083         (TARGET_FUNCTION_INCOMING_ARG): Define.
16084
16085 2010-08-30  Richard Guenther  <rguenther@suse.de>
16086
16087         PR tree-optimization/21602
16088         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
16089         using points-to information.
16090
16091 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
16092
16093         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
16094
16095 2010-08-30  Richard Guenther  <rguenther@suse.de>
16096
16097         PR tree-optimization/45449
16098         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
16099         variables.
16100
16101 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
16102
16103         * opts.h (CL_ERR_NEGATIVE): Define.
16104         * opts.c (unknown_option_callback): Don't postpone warnings for
16105         options marked with CL_ERR_NEGATIVE.
16106         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
16107         for negative versions of CL_REJECT_NEGATIVE options.
16108
16109 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
16110
16111         * config/i386/i386.md (zero_extendsidi2_1): Rename from
16112         zero_extendsidi2_32.
16113         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
16114         using SWI12 mode iterator.
16115         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
16116         to define_insn_and_split pattern.
16117         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
16118         using SWI24 mode iterator.
16119         (*zero_extendqi<mode>2_and): Macroize insn from
16120         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
16121         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
16122         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
16123         SWI24 mode iterator.
16124         (*zero_extendqi<mode>2_movzbl): Ditto from
16125         *zero_extendqi{hi,si}2_movzbl.
16126         (extendsidi2_1): Rename from extendsidi2_32.
16127         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
16128         SWI12 mode iterator.
16129
16130 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
16131
16132         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
16133         general purpose registers.
16134         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
16135         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
16136         with general purpose registers and memory operands.  Add associated
16137         CCImode post-reload splitter.
16138         * config/ia64/div.md: Change BImode to CCImode throughout.
16139
16140 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
16141
16142         * config/ia64/ia64.md (cstorebi4): Fix thinko.
16143
16144 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
16145
16146         * config/picochip/picochip.c (reorder_var_tracking_notes): This
16147         function was dropping debug insns which caused PR45299.
16148
16149 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
16150
16151         * config/i386/sse.md (extsuffix): New code attribute.
16152         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
16153         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
16154         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
16155         and sse4_1_zero_extendv4qiv4si2.
16156         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
16157         and sse4_1_zero_extendv2qiv2di2.
16158         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
16159         and sse4_1_zero_extendv4hiv4si2.
16160         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
16161         and sse4_1_zero_extendv2hiv2di2.
16162         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
16163         and sse4_1_zero_extendv2siv2di2
16164
16165         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
16166         using any_extend code iterator.
16167         (*avx_<s>mulv8hi3_highpart): Macroize insn from
16168         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
16169         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
16170
16171         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
16172         gen_sse4_1_sign_extend* functions.
16173         (struct builtin_description bdesc_args): Ditto.
16174
16175 2010-08-27  Xinliang David Li  <davidxl@google.com>
16176
16177         PR/45422
16178         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
16179         (iv_ca_set_no_cp): Update used inv expr count.
16180         (iv_ca_set_cp): Ditto.
16181         (iv_ca_new): Initialize new member.
16182         (iv_ca_free): Free memory.
16183
16184 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16185
16186         * config/sh/sh-protos.h (sh_function_arg): Delete.
16187         (sh_function_arg_advance): Delete.
16188         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16189         (PASS_IN_REG_P): Eliminate cast.
16190         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
16191         const_tree and a bool.
16192         (sh_function_arg): Likewise.
16193         (sh_output_mi_thunk): Call sh_function_arg_advance) and
16194         sh_function_arg.
16195         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16196
16197 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
16198             Kaz Kojima  <kkojima@gcc.gnu.org>
16199
16200         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
16201         when possible.
16202         (sh_expand_epilogue): Likewise.
16203         * config/sh/sh.md (movml_push_banked): New insn.
16204         (movml_pop_banked): Likewise.
16205
16206 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
16207
16208         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
16209         gen_regexp_oneof, gen_regexp_sequence): Use the string found
16210         in vector element 0 rather than the original string when there's
16211         only one element.
16212         (gen_regexp): Remove extra semicolon.
16213
16214         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
16215         thumb2_movsf_vfp): Set attribute "insn".
16216         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
16217         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
16218         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
16219         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
16220         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
16221         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
16222         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
16223         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
16224         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
16225         if_not_arith, if_arith_not, cond_move_not): Likewise.
16226
16227 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16228
16229         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
16230         New declaration.
16231         (rs6000_allocate_stack_temp): Ditto.
16232         (rs6000_expand_convert_si_to_sfdf): Ditto.
16233
16234         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
16235         line.  Update the options set if power6 or power7 server/embedded
16236         type options are used.  If we give a warning for no vsx under
16237         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
16238         (rs6000_allocate_stack_temp): New function to allocate a stack
16239         tempoary and adjust the address so it meets either REG+OFFSET or
16240         REG+REG addressing requirements.
16241         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
16242         that they can be used with the LFIWAX/LFIWZX instrucitons.
16243         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
16244         converting signed/unsigned SImode to either SFmode/DFmode.
16245
16246         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
16247         whether certain instructions can be generated.
16248         (TARGET_FCTIDZ): Ditto.
16249         (TARGET_STFIWX): Ditto.
16250         (TARGET_LFIWAX): Ditto.
16251         (TARGET_LFIWZX): Ditto.
16252         (TARGET_FCFIDS): Ditto.
16253         (TARGET_FCFIDU): Ditto.
16254         (TARGET_FCFIDUS): Ditto.
16255         (TARGET_FCTIDUZ): Ditto.
16256         (TARGET_FCTIWUZ): Ditto.
16257
16258         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
16259         (UNSPEC_FCTID): Ditto.
16260         (UNSPEC_LFIWAX): Ditto.
16261         (UNSPEC_LFIWZX): Ditto.
16262         (UNSPEC_FCTIWUZ): Ditto.
16263         (rreg): Use correct constraints.
16264         (SI_CONVERT_FP): New mode attribute for floating point conversion
16265         tests.
16266         (E500_CONVERT): Ditto.
16267         (lfiwax): New insns for converting from integer to floating point
16268         utilizing newer instructions.  Attempt to optimize conversions
16269         that come from memory so that we don't load the value into a GPR,
16270         spill it to the stack and reload it into a FPR.
16271         (floatsi<mode>2_lfiwax): Ditto.
16272         (floatsi<mode>2_lfiwax_mem): Ditto.
16273         (floatsi<mode>2_lfiwax_mem2): Ditto.
16274         (lfiwzx): Ditto.
16275         (floatunssi<mode>2_lfiwzx): Ditto.
16276         (floatunssi<mode>2_lfiwzx_mem): Ditto.
16277         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
16278         (floatdidf2_mem): Ditto.
16279         (floatunsdidf2_fcfidu): Ditto.
16280         (floatunsdidf2_mem): Ditto.
16281         (floatunsdisf2): Ditto.
16282         (floatunsdisf2_fcfidus): Ditto.
16283         (floatunsdisf2_mem): Ditto.
16284         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
16285         Use FCFID on 32-bit hosts that support it.
16286         (floatsidf2_internal): Ditto.
16287         (floatunssisf2): Ditto.
16288         (floatunssidf2): Ditto.
16289         (floatunssidf2_internal): Ditto.
16290         (floatsisf2): Ditto.
16291         (floatdidf2): Ditto.
16292         (floatdidf2_fpr): Ditto.
16293         (floatunsdidf2): Ditto.
16294         (floatdisf2): Ditto.
16295         (floatdisf2_fcfids): Ditto.
16296         (floatdisf2_internal1): Ditto.
16297         (fixuns_truncsfsi2): Delete, merge into common pattern for both
16298         SF/DF.  Add power7 support.
16299         (fix_truncsfsi2): Ditto.
16300         (fixuns_truncdfsi2): Ditto.
16301         (fixuns_truncdfdi2): Ditto.
16302         (fix_truncdfsi2): Ditto.
16303         (fix_truncdfsi2_internal): Ditto.
16304         (fix_truncdfsi2_internal_gfxopt): Ditto.
16305         (fix_truncdfsi2_mfpgpr): Ditto.
16306         (fctiwz): Ditto.
16307         (btruncdf2): Ditto.
16308         (btruncdf2_fpr): Ditto.
16309         (btructsf2): Ditto.
16310         (ceildf2): Ditto.
16311         (ceildf2_fpr): Ditto.
16312         (ceilsf2): Ditto.
16313         (floordf2): Ditto.
16314         (floordf2_fpr): Ditto.
16315         (floorsf2): Ditto.
16316         (rounddf2): Ditto.
16317         (rounddf2_fpr): Ditto.
16318         (roundsf2): Ditto.
16319         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
16320         (fix_trunc<mode>di2): Ditto.
16321         (fixuns_trunc<mode>si2): Ditto.
16322         (fixuns_trunc<mode>di2): Ditto.
16323         (fctiwz_<mode>): Ditto.
16324         (btrunc<mode>2): Ditto.
16325         (btrunc<mode>2_fpr): Ditto.
16326         (ceil<mode>2): Ditto.
16327         (ceil<mode>2_fpr): Ditto.
16328         (floor<mode>2): Ditto.
16329         (float<mode>2_fpr): Ditto.
16330         (round<mode>2): Ditto.
16331         (round<mode>2_fpr): Ditto.
16332         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
16333         (fixuns_trunc<mode>si2_stfiwx): Ditto.
16334         (fix_truncdfsi2_internal): Ditto.
16335         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
16336         converted value on stack, loaded into GPR, and then stored into
16337         the final destination.
16338         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
16339         FCTIDZ.
16340         (lrint<mode>di2): New insn, provide the lrint builtin functions.
16341         (ftruncdf2): Delete, unused.
16342         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
16343
16344         * config/rs6000/vsx.md (toplevel): Update copyright year.
16345         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
16346         (VSr3): Ditto.
16347
16348 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
16349             Jeremie Salvucci  <jeremie.salvucci@free.fr>
16350
16351         * gengtype.c (output_type_enum): Test the right union member.
16352
16353 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
16354
16355         PR target/41484
16356         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
16357         operands for operand 1.
16358         (sse4_1_extendv4qiv4si2): Ditto.
16359         (sse4_1_extendv2qiv2di2): Ditto.
16360         (sse4_1_extendv4hiv4si2): Ditto.
16361         (sse4_1_extendv2hiv2di2): Ditto.
16362         (sse4_1_extendv2siv2di2): Ditto.
16363         (sse4_1_zero_extendv8qiv8hi2): Ditto.
16364         (sse4_1_zero_extendv4qiv4si2): Ditto.
16365         (sse4_1_zero_extendv2qiv2di2): Ditto.
16366         (sse4_1_zero_extendv4hiv4si2): Ditto.
16367         (sse4_1_zero_extendv2hiv2di2): Ditto.
16368         (sse4_1_zero_extendv2siv2di2): Ditto.
16369         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
16370         (*sse4_1_extendv4qiv4si2): Ditto.
16371         (*sse4_1_extendv2qiv2di2): Ditto.
16372         (*sse4_1_extendv4hiv4si2): Ditto.
16373         (*sse4_1_extendv2hiv2di2): Ditto.
16374         (*sse4_1_extendv2siv2di2): Ditto.
16375         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
16376         (*sse4_1_zero_extendv4qiv4si2): Ditto.
16377         (*sse4_1_zero_extendv2qiv2di2): Ditto.
16378         (*sse4_1_zero_extendv4hiv4si2): Ditto.
16379         (*sse4_1_zero_extendv2hiv2di2): Ditto.
16380         (*sse4_1_zero_extendv2siv2di2): Ditto.
16381
16382 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16383
16384         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
16385         (mips_function_arg): Delete.
16386         (mips_function_arg_boundary): Take a const_tree.
16387         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
16388         (mips_arg_info): Likewise.
16389         (mips_setup_incoming_varargs): Call mips_function_arg_advance
16390         instead of FUNCTION_ARG_ADVANCE.
16391         (mips_function_arg_advance): Adjust prototype.  Make static.
16392         (mips_function_arg): Likewise.
16393         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16394         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
16395
16396 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
16397
16398         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
16399         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
16400         (function_arg): Delete.
16401         (function_arg_boundary): Take a const_tree.
16402         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
16403         (rs6000_spe_function_arg): Likewise.
16404         (rs6000_parm_start): Likewise.
16405         (rs6000_arg_size): Likewise.
16406         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
16407         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
16408         (rs6000_mixed_function_arg): Likewise.
16409         (function_arg): Rename to...
16410         (rs6000_function_arg): ...this.
16411         (function_arg_advance): Rename to...
16412         (rs6000_function_arg_advance_1): ...this
16413         (rs6000_function_arg_advance): New function.  Call it.
16414         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
16415         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
16416         (rs6000_function_value): Likewise.
16417         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
16418
16419 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16420
16421         * config/arm/arm.md (enabled): Test the value of arch_enabled
16422         rather than just using it.
16423
16424 2010-08-27  Olivier Hainque  <hainque@adacore.com>
16425             Eric Botcazou  <ebotcazou@adacore.com>
16426
16427         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
16428         cover all the possible offsets from this base.
16429         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
16430
16431 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
16432
16433         PR tree-optimization/44485
16434         * calls.c (flags_from_decl_or_type): For const or pure
16435         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
16436         together with ECF_CONST resp. ECF_PURE.
16437         * builtins.c (expand_builtin): Use flags_from_decl_or_type
16438         instead of querying flags directly.
16439         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
16440         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
16441
16442 2010-08-26  Richard Guenther  <rguenther@suse.de>
16443
16444         PR tree-optimization/45255
16445         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
16446         and externals are also invariant.
16447
16448 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16449
16450         PR rtl-optimization/44858
16451         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
16452         newi2pat, make sure they don't affect newpat.
16453
16454         PR rtl-optimization/45400
16455         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
16456         SUBREG_REG if both modes are of MODE_INT class.
16457
16458 2010-08-25  Julian Brown  <julian@codesourcery.com>
16459
16460         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
16461         * config/arm/arm.md (generic_sched): No for Cortex-A5.
16462         (generic_vfp): Likewise.
16463         (cortex-a5.md): Include.
16464         * config/arm/cortex-a5.md: New.
16465
16466 2010-08-25  Richard Guenther  <rguenther@suse.de>
16467
16468         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
16469         * gimple.c (gimple_get_alias_set): Remove special handling
16470         for pointers.
16471
16472 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
16473
16474         PR middle-end/45355
16475         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
16476         dead_or_set_p when computing i0_feeds_i2_n.
16477
16478         * combine.c (find_split_point): Undo canonicalization of multiply-add
16479         to (minus x (mult)) when it seems likely that this will increase the
16480         chances of a split.
16481
16482 2010-08-25  Richard Guenther  <rguenther@suse.de>
16483
16484         PR lto/44562
16485         * lto-streamer.c (lto_record_common_node): Do not mess with
16486         TYPE_CANONICAL when not in lto.
16487         * gimple.c (gimple_register_type): Likewise.
16488
16489 2010-08-25  Richard Guenther  <rguenther@suse.de>
16490
16491         PR tree-optimization/45316
16492         * tree-ssa-pre.c (eliminate): Properly clean EH info.
16493
16494 2010-08-25  Richard Guenther  <rguenther@suse.de>
16495
16496         PR tree-optimization/45393
16497         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
16498         and clean EH info.  Avoid SSA update.
16499         (execute_cse_sincos): Cleanup the CFG if it has changed.
16500
16501 2010-08-25  Richard Guenther  <rguenther@suse.de>
16502
16503         PR middle-end/45379
16504         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
16505         TARGET_MEM_REF in alignment computation.
16506
16507 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
16508
16509         PR tree-optimization/45059
16510         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
16511         type conversions from newop{1,2}.  Assert t is a comparison and
16512         newop{1,2} after the stripping are gimple vals.
16513
16514 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
16515
16516         * config/arm/iterators.md (VU, SE, V_widen_l): New.
16517         (V_unpack, US): New.
16518         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
16519         (vec_unpack<US>_lo_<mode>): Likewise.
16520         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
16521         (neon_vec_unpack<US>_lo_<mode>): Likewise.
16522         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
16523         (vec_widen_<US>mult_hi_<mode>): Likewise.
16524         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
16525         (neon_vec_<US>mult_hi_<mode>"): Likewise.
16526         (neon_unpack<US>_<mode>): Widening move intermediate step for
16527         vectorizing without -mvectorize-with-neon-quad.
16528         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
16529         for vectorizing without -mvectorize-with-neon-quad.
16530         * config/arm/predicates.md (vect_par_constant_high): Check for
16531         high-half lanes of a vector.
16532         (vect_par_constant_low): Check for low-half lanes of a vector.
16533
16534 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16535
16536         * tree-if-conv.c (struct ifc_dr): New.
16537         (IFC_DR): New.
16538         (DR_WRITTEN_AT_LEAST_ONCE): New.
16539         (DR_RW_UNCONDITIONALLY): New.
16540         (memref_read_or_written_unconditionally): Use the cached values
16541         when possible.
16542         (write_memref_written_at_least_once): Same.
16543         (if_convertible_loop_p): Initialize and free DR->aux fields.
16544
16545 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16546
16547         * gimple.c (gimple_could_trap_p_1): Not static anymore.
16548         Pass an extra bool parameter include_mem.
16549         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
16550         (gimple_assign_rhs_could_trap_p): Same.
16551         * gimple.h (gimple_could_trap_p_1): Declared.
16552         * tree-data-ref.h (same_data_refs_base_objects): New.
16553         (same_data_refs): New.
16554         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
16555         (write_memrefs_written_at_least_once): New.
16556         (ifcvt_memrefs_wont_trap): New.
16557         (operations_could_trap): New.
16558         (ifcvt_could_trap_p): New.
16559         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
16560         Gets a vector of data refs.
16561         (if_convertible_stmt_p): Same.
16562         (if_convertible_loop_p_1): New.
16563         (if_convertible_loop_p): Call if_convertible_loop_p_1.
16564
16565 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
16566
16567         * common.opt (ftree-loop-if-convert-stores): New flag.
16568         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
16569         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
16570         the created statement before GSI.
16571         (if_convertible_phi_p): Allow virtual phi nodes when
16572         flag_loop_if_convert_stores is set.
16573         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
16574         Do not handle types that do not match is_gimple_reg_type.
16575         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
16576         when flag_loop_if_convert_stores is set, as LHS can contain
16577         memory refs.
16578         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
16579         to if_convertible_gimple_assign_stmt_p.
16580         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
16581         (replace_phi_with_cond_gimple_assign_stmt): Renamed
16582         predicate_scalar_phi.  Do not handle virtual phi nodes.
16583         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
16584         Call predicate_scalar_phi.
16585         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
16586         just after the labels for flag_loop_if_convert_stores, otherwise
16587         insert the predicate in the end of the BB.
16588         (predicate_mem_writes): New.
16589         (combine_blocks): Call predicate_all_scalar_phis.  When
16590         flag_loop_if_convert_stores is set, call predicate_mem_writes.
16591         (tree_if_conversion): Call mark_sym_for_renaming when
16592         flag_loop_if_convert_stores is set.
16593         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
16594         flag_loop_if_convert_stores is set.
16595
16596 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
16597
16598         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
16599         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
16600         (pa_function_value): Make static.
16601         (override_options): Rename to...
16602         (pa_option_override): ...this. Make static.
16603         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
16604         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
16605         TARGET_OPTION_OVERRIDE): Define.
16606         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
16607         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
16608         Remove.
16609         * config/pa/pa-protos.h (override_options): Remove.
16610
16611 2010-08-24  Richard Guenther  <rguenther@suse.de>
16612
16613         PR middle-end/45379
16614         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
16615         if addr->index is NULL or zero.
16616         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
16617         TARGET_MEM_REF more properly.
16618         (indirect_ref_may_alias_decl_p): Likewise.
16619         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
16620         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
16621
16622 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
16623
16624         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
16625         (m32c_override_options): Rename to...
16626         (m32c_option_override): ...this. Make static.
16627         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
16628         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
16629         Remove.
16630         * config/m32c/m32c-protos.h (m32c_override_options,
16631         m32c_function_value_regno_p): Remove.
16632
16633 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16634
16635         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
16636         Fix a typo in a previous commit.
16637
16638 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
16639
16640         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
16641         Pre-initialize innerloop_iters to one.
16642
16643 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
16644
16645         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
16646         existing static function global.
16647
16648         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
16649         is changed to global.
16650
16651         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
16652         may_be_nonaddressable_p on base, and don't collect this reference
16653         if the address of the base could not be taken.
16654
16655 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16656
16657         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
16658         enable the compiler to autovectorize mathmetical functions for
16659         power7 using the Mathematical Acceleration Subsystem library.
16660
16661         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
16662         handle which vector math library we have.
16663         (rs6000_override_options): Add -mveclibabi=mass support.
16664         (rs6000_builtin_vectorized_libmass): New function to handle auto
16665         vectorizing math functions that are in the MASS library.
16666         (rs6000_builtin_vectorized_function): Call it.
16667
16668         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
16669         -mveclibabi=mass.
16670
16671 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16672
16673         PR boehm-gc/34544
16674         * gthr-posix.h (__gthread_active_init): Delete.
16675         (__gthread_active_p): Do activity check here.
16676         Don't include errno.h on hppa-hpux.  Update comment.
16677         * gthr-posix95.h (__gthread_active_init): Delete.
16678         (__gthread_active_p): Do activity check here.
16679         Don't include errno.h on hppa-hpux.  Update comment.
16680         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
16681         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
16682         add -lpthread when -mt or -pthread is specified.
16683         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
16684         (LINK_GCC_C_SEQUENCE_SPEC): Define.
16685         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
16686         (stublib.c, pthread_default_stacksize_np-stub.o,
16687         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
16688         $(T)libgcc_stub.a): Add methods.
16689         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
16690         (stublib.c, pthread_default_stacksize_np-stub.o,
16691         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
16692         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
16693         pthread_mutex_unlock): New stubs.
16694
16695 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
16696
16697         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
16698         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
16699         options.
16700         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
16701         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
16702         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
16703         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
16704         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
16705         "-l".
16706         * cppspec.c: Include opts.h.
16707         (lang_specific_driver): Use cl_decoded_option structures.
16708         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
16709         * doc/tm.texi: Regenerate.
16710         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
16711         (driver_handle_option): Allow driver options needing no special
16712         processing.
16713         (process_command): Decode options before call to
16714         lang_specific_driver.  Pass decoded options to
16715         lang_specific_driver.
16716         * gcc.h (lang_specific_driver): Update prototype.
16717         * gccspec.c: Include opts.h.
16718         (lang_specific_driver): Use cl_decoded_option structures.
16719         * opts-common.c (option_ok_for_language, generate_option,
16720         generate_option_input_file): New.
16721         (decode_cmdline_option): Use option_ok_for_language.
16722         (decode_cmdline_options_to_array): Use generate_option_input_file.
16723         (handle_generated_option): Use generate_option.
16724         * opts.h (generate_option, generate_option_input_file): Declare.
16725
16726 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
16727
16728         * config/mips/mips.c (mips_override_options): Rename to...
16729         (mips_option_override): ...this. Make static.
16730         (TARGET_OPTION_OVERRIDE): Define.
16731         (mips_in_small_data_p): Update comment.
16732         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
16733         (FIXED_REGISTERS): Update comment.
16734         * config/mips/mips-protos.h (mips_override_options): Remove.
16735
16736 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16737
16738         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
16739
16740 2010-08-21  Olivier Hainque  <hainque@adacore.com>
16741
16742         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
16743         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
16744
16745 2010-08-20  Jan Hubicka  <jh@suse.cz>
16746
16747         * tree-pass.h (pass_ipa_cdtor_merge): New function.
16748         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
16749         heap allocated.
16750         (record_cdtor_fn): Move to ipa.c; do not test for
16751         have_ctors_dtors.
16752         (build_cdtor): Move to ipa.c; add code avoiding construction
16753         when target have ctors/dtors and there is only one ctor/dtor at given
16754         priority.
16755         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
16756         sort; reverse order of constructors.
16757         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
16758         (cgraph_finalize_function): Do not call record_cdtor_fn.
16759         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
16760         (cgraph_build_static_cdtor): Move to ipa.c.
16761         * ipa.c: Include target.h and tree-iterator.h.
16762         (cgraph_build_static_cdtor, static_ctors, static_dtors,
16763         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
16764         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
16765         pass_ipa_cdtor_merge): New.
16766         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
16767         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
16768         bounds access.
16769
16770 2010-08-20  Jan Hubicka  <jh@suse.cz>
16771
16772         PR c++/45307
16773         PR c++/17736
16774         * cgraph.h (cgraph_only_called_directly_p,
16775         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
16776         static cdtors.
16777         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
16778         are not needed.
16779         (cgraph_finalize_function): Static cdtors are reachable.
16780         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
16781
16782 2010-08-20  Jan Hubicka  <jh@suse.cz>
16783
16784         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
16785         flag_wpa.
16786         * lto-streamer-out.c (lto_output): Likewise.
16787         * passes.c (ipa_write_optimization_summaries): Initialize statement
16788         uids.
16789
16790 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16791
16792         * tree.h (alias_diag_flags): New enum.
16793         (alias_pair): Add an 'emitted_diags' field.
16794         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
16795         (assemble_alias): Initialize emitted_diags of new pairs.
16796
16797 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
16798
16799         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
16800         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16801         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16802         (STACK_CHECK_PROTECT): Define.
16803         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
16804         (output_probe_stack_range): Likewise.
16805         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
16806         builtin stack checking is enabled.
16807         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
16808         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
16809         (probe_stack_range): New insn.
16810
16811 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
16812
16813         PR target/45336
16814         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
16815         short first.
16816
16817         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
16818         char first.
16819
16820 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16821
16822         PR target/45336
16823         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
16824         to cover zero extension into 64-bit register.
16825         (*sse2_pextrw): Likewise.
16826         (*sse4_1_pextrd_zext): New insn.
16827
16828 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16829
16830         revert r163410, partially revert r163267.
16831         * config/rs6000/darwin.h (LIB_SPEC): Remove.
16832         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
16833         Darwin versions.
16834
16835 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16836
16837         PR middle-end/44974
16838         * builtins.c (expand_builtin): Don't optimize away
16839         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
16840
16841 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
16842
16843         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
16844         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
16845         alternative 1 of operand 2.
16846
16847 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16848             Paolo Bonzini  <bonzini@gnu.org>
16849
16850         * simplify-rtx.c (simplify_unary_operation_1): Optimize
16851         (sign_extend (zero_extend (...)) and
16852         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
16853
16854 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16855
16856         PR rtl-optimization/45353
16857         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
16858         after bb_note is a BARRIER.
16859
16860 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
16861
16862         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
16863         linking libgcc.a.
16864
16865 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
16866             Michael Matz  <matz@suse.de>
16867
16868         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
16869
16870 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16871
16872         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
16873         (ggc_mark_roots): ...here.
16874
16875 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
16876
16877         * vec.h (FOR_EACH_VEC_ELT): Define.
16878         * c-decl.c: Use it.
16879         * cfgloop.c: Likewise.
16880         * cfgloopmanip.c: Likewise.
16881         * cgraph.c: Likewise.
16882         * cgraphunit.c: Likewise.
16883         * combine.c: Likewise.
16884         * config/bfin/bfin.c: Likewise.
16885         * config/mips/mips.c: Likewise.
16886         * config/rs6000/rs6000.c: Likewise.
16887         * dbxout.c: Likewise.
16888         * df-scan.c: Likewise.
16889         * dominance.c: Likewise.
16890         * dse.c: Likewise.
16891         * dwarf2out.c: Likewise.
16892         * except.c: Likewise.
16893         * expr.c: Likewise.
16894         * function.c: Likewise.
16895         * gcse.c: Likewise.
16896         * genattr.c: Likewise.
16897         * ggc-common.c: Likewise.
16898         * gimplify.c: Likewise.
16899         * graphite-blocking.c: Likewise.
16900         * graphite-clast-to-gimple.c: Likewise.
16901         * graphite-dependences.c: Likewise.
16902         * graphite-interchange.c: Likewise.
16903         * graphite-poly.c: Likewise.
16904         * graphite-scop-detection.c: Likewise.
16905         * graphite-sese-to-poly.c: Likewise.
16906         * graphite.c: Likewise.
16907         * haifa-sched.c: Likewise.
16908         * ifcvt.c: Likewise.
16909         * implicit-zee.c: Likewise.
16910         * ipa-prop.c: Likewise.
16911         * ipa-struct-reorg.c: Likewise.
16912         * ipa.c: Likewise.
16913         * ira-build.c: Likewise.
16914         * ira-color.c: Likewise.
16915         * ira-emit.c: Likewise.
16916         * lambda-code.c: Likewise.
16917         * loop-invariant.c: Likewise.
16918         * loop-unroll.c: Likewise.
16919         * lower-subreg.c: Likewise.
16920         * lto-cgraph.c: Likewise.
16921         * lto-opts.c: Likewise.
16922         * lto-streamer-in.c: Likewise.
16923         * lto-streamer-out.c: Likewise.
16924         * lto-streamer.c: Likewise.
16925         * lto-symtab.c: Likewise.
16926         * matrix-reorg.c: Likewise.
16927         * opts.c: Likewise.
16928         * predict.c: Likewise.
16929         * print-tree.c: Likewise.
16930         * sdbout.c: Likewise.
16931         * sel-sched-dump.c: Likewise.
16932         * sel-sched-ir.c: Likewise.
16933         * sel-sched.c: Likewise.
16934         * sese.c: Likewise.
16935         * stor-layout.c: Likewise.
16936         * tree-cfg.c: Likewise.
16937         * tree-cfgcleanup.c: Likewise.
16938         * tree-chrec.c: Likewise.
16939         * tree-data-ref.c: Likewise.
16940         * tree-emutls.c: Likewise.
16941         * tree-inline.c: Likewise.
16942         * tree-into-ssa.c: Likewise.
16943         * tree-loop-distribution.c: Likewise.
16944         * tree-loop-linear.c: Likewise.
16945         * tree-mudflap.c: Likewise.
16946         * tree-outof-ssa.c: Likewise.
16947         * tree-parloops.c: Likewise.
16948         * tree-predcom.c: Likewise.
16949         * tree-pretty-print.c: Likewise.
16950         * tree-scalar-evolution.c: Likewise.
16951         * tree-ssa-live.c: Likewise.
16952         * tree-ssa-loop-im.c: Likewise.
16953         * tree-ssa-loop-ivcanon.c: Likewise.
16954         * tree-ssa-loop-ivopts.c: Likewise.
16955         * tree-ssa-loop-manip.c: Likewise.
16956         * tree-ssa-loop-niter.c: Likewise.
16957         * tree-ssa-loop-prefetch.c: Likewise.
16958         * tree-ssa-phiprop.c: Likewise.
16959         * tree-ssa-pre.c: Likewise.
16960         * tree-ssa-reassoc.c: Likewise.
16961         * tree-ssa-sccvn.c: Likewise.
16962         * tree-ssa-structalias.c: Likewise.
16963         * tree-ssa.c: Likewise.
16964         * tree-vect-data-refs.c: Likewise.
16965         * tree-vect-loop-manip.c: Likewise.
16966         * tree-vect-loop.c: Likewise.
16967         * tree-vect-patterns.c: Likewise.
16968         * tree-vect-slp.c: Likewise.
16969         * tree-vect-stmts.c: Likewise.
16970         * tree-vrp.c: Likewise.
16971         * tree.c: Likewise.
16972         * value-prof.c: Likewise.
16973         * var-tracking.c: Likewise.
16974         * varasm.c: Likewise.
16975         * vmsdbgout.c: Likewise.
16976
16977 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
16978             Richard Guenther  <richard.guenther@gmail.com>
16979
16980         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
16981         copy the src value and return a copy.
16982         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
16983         (C++ Volatiles): Adjust to describe C++ semantics only.
16984
16985 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
16986
16987         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
16988         be zero or nonzero.
16989         * doc/tm.texi: Regenerate.
16990         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
16991         * df-scan.c (df_get_exit_block_use_set), reginfo.c
16992         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
16993         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
16994         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
16995         to 1.
16996
16997 2010-08-20  Olivier Hainque  <hainque@adacore.com>
16998
16999         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
17000         an extra nop past a sibling call at the very end.
17001
17002 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
17003
17004         PR bootstrap/45350
17005         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
17006         a comment.
17007
17008 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
17009
17010         * target.def (function_arg, function_incoming_arg): Remove const
17011         qualifier on CUMULATIVE_ARGS parameter.
17012         * targhooks.h (default_function_arg, default_function_incoming_arg):
17013         Likewise.
17014         * targhooks.c (default_function_arg, default_function_incoming_arg):
17015         Likewise.
17016         * config/i386/i386.c (ix86_function_arg): Likewise.
17017
17018 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
17019
17020         PR target/45336
17021         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
17022         SIGN_EXTENDs or ZERO_EXTENDs.
17023
17024 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
17025
17026         PR target/42172
17027         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
17028         Take its cost into account if nonnull.
17029         (insn_a_feeds_b): New static function.
17030         (combine_instructions): Look for four-insn combinations.
17031         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
17032         them into account when computing all_adjacent and looking for other
17033         uses.
17034         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
17035         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
17036         (try_combine): New arg I0.  Handle four-insn combinations.
17037         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
17038         like ELIM_I1.
17039
17040 2010-08-19  Jason Merrill  <jason@redhat.com>
17041
17042         PR c++/45307
17043         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
17044         if ctor is empty.
17045         (gimplify_modify_expr_rhs): Adjust.
17046
17047 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
17048
17049         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
17050         bitmap_bit_p.
17051         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
17052         * dominance.c (iterate_fix_dominators): Likewise.
17053         * dse.c (set_usage_bits): Likewise.
17054         (set_position_unneeded, record_store): Likewise.
17055         * gimple-fold.c (get_maxval_strlen): Likewise.
17056         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
17057         * ipa-inline.c (update_caller_keys): Likewise.
17058         * ipa-split.c (verify_non_ssa_vars): Likewise.
17059         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
17060         (close_type_exposed_parameter, close_type_full_escape): Likewise.
17061         (close_addressof_down): Likewise.
17062         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
17063         (setup_allocno_left_conflicts_size): Likewise.
17064         (ira_reassign_conflict_allocnos): Likewise.
17065         (ira_reassign_pseudos): Likewise.
17066         * ira-emit.c (change_loop): Likewise.
17067         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
17068         * lto-streamer-out.c (write_symbol): Likewise.
17069         * predict.c (expr_expected_value_1): Likewise.
17070         * regstat.c (regstat_bb_compute_ri): Likewise.
17071         * sel-sched.c (create_block_for_bookkeeping): Likewise.
17072         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
17073         * stmt.c (expand_case): Likewise.
17074         * tree-eh.c (emit_eh_dispatch): Likewise.
17075         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
17076         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
17077         Likewise.
17078         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
17079         (rdg_build_components): Likewise.
17080         * tree-object-size.c (collect_object_sizes_for): Likewise.
17081         * tree-sra.c (convert_callers): Likewise.
17082         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
17083         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
17084         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
17085
17086 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
17087
17088         * config/i386/i386.md (*lea_1): Use P mode iterator.
17089         (lea add splitter): Also handle DImode operands.
17090         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
17091         predicate.  Do not use ix86_lea_for_add_ok.
17092         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
17093         (lea ashift splitter): Also handle DImode operands.
17094         (DImode lea ashift splitter): Remove splitter.
17095
17096 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
17097
17098         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
17099         ix86_binary_operator_ok.
17100
17101 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
17102
17103         PR rtl-optimization/44691
17104         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
17105         is not a register.
17106
17107 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
17108
17109         PR target/45070
17110         * config/arm/arm.c (arm_output_epilogue): Ensure that return
17111          value of size 1-3 is handled correctly.
17112
17113 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
17114
17115         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
17116         type for the conditional has wide enough range.
17117
17118 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
17119
17120         PR target/45327
17121         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
17122         ix86_binary_operator_ok.
17123
17124 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
17125
17126         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
17127         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
17128         code to output insn mnemonic.  Fix comment.
17129         (*addsi_1_zext): Add r-r-0 alternative 1.
17130         <TYPE_LEA>: Split insn to lea.
17131         <default>: Handle alternative 1.
17132         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
17133         multi-level if_then_else RTX to set "type" attribute.
17134         <default>: Handle alternative 2.
17135         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
17136         Use cond RTX instead of multi-level if_then_else RTX to set
17137         "type" attribute.
17138         <default>: Handle alternatives 2 and 4.
17139         (lea splitters): Update calls to ix86_lea_for_add_ok.
17140
17141         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
17142         argument.
17143         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
17144
17145 2010-08-18  Richard Guenther  <rguenther@suse.de>
17146
17147         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
17148         use operand helpers.
17149
17150 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
17151
17152         PR middle-end/45292
17153         * optabs.c (expand_bool_compare_and_swap): Expand pending
17154         pops before trying the optab.
17155
17156 2010-08-18  Yao Qi  <yao@codesourcery.com>
17157
17158         PR target/45094
17159         * config/arm/arm.c (output_move_double): Fix typo generating
17160         instructions ('ldr'->'str').
17161
17162 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
17163
17164         PR rtl-optimization/42575
17165         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
17166         live ranges.
17167
17168 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
17169
17170         * config/arm/arm-protos.h (arm_expand_sync): New.
17171         (arm_output_memory_barrier, arm_output_sync_insn): New.
17172         (arm_sync_loop_insns): New.
17173         * config/arm/arm.c (FL_ARCH7): New.
17174         (FL_FOR_ARCH7): Include FL_ARCH7.
17175         (arm_arch7): New.
17176         (arm_print_operand): Support %C markup.
17177         (arm_legitimize_sync_memory): New.
17178         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
17179         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
17180         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
17181         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
17182         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
17183         (arm_process_output_sync_insn, arm_output_sync_insn): New.
17184         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
17185         * config/arm/arm.h (struct arm_sync_generator): New.
17186         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
17187         (TARGET_HAVE_MEMORY_BARRIER): New.
17188         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
17189         * config/arm/arm.md: Include sync.md.
17190         (UNSPEC_MEMORY_BARRIER): New.
17191         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
17192         (VUNSPEC_SYNC_OP):New.
17193         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
17194         (sync_result, sync_memory, sync_required_value): New attributes.
17195         (sync_new_value, sync_t1, sync_t2): Likewise.
17196         (sync_release_barrier, sync_op): Likewise.
17197         (length): Add logic to length attribute defintion to call
17198         arm_sync_loop_insns when appropriate.
17199         * config/arm/sync.md: New file.
17200
17201 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17202
17203         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
17204         ENABLE_TREE_CHECKING.
17205         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
17206         and GCC >= 4.3.
17207
17208 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
17209
17210         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
17211         or optimizing for size, always avoid lea if possible.
17212
17213         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
17214
17215 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
17216
17217         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
17218         Dunmmy function with NULL return unless the target is
17219         OSX >= 10.6 (Darwin10).
17220
17221 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
17222
17223         * gcc.c (spec_function): Add remove-outfile.
17224         (remove_outfile_spec_function): New function.
17225         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
17226         * invoke.texi (replace-outfile): Document.
17227
17228 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
17229
17230         PR target/45296
17231         * reginfo.c (globalize_reg): Reject stack registers.
17232
17233 2010-08-17  Richard Guenther  <rguenther@suse.de>
17234
17235         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
17236         list of conditional equivalences.
17237         (free_all_edge_infos): Adjust.
17238         (record_equivalences_from_incoming_edge): Likewise.
17239         (record_cond): Likewise.
17240         (build_and_record_new_cond): Likewise.
17241         (record_conditions): Likewise.
17242         (dom_opt_leave_block): Likewise.
17243
17244 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
17245
17246         * doc/invoke.texi (ms-extension): Add documentation.
17247
17248 2010-08-17  Richard Guenther  <rguenther@suse.de>
17249
17250         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
17251
17252 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
17253
17254         PR c/40563
17255         * c-decl.c (diagnose_uninitialized_cst_member): New function.
17256         (finish_decl): Use it to issue a -Wc++-compat warning about
17257         uninitialized const field in struct or union.
17258
17259         (finish_struct): Use strip_array_types.
17260
17261 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
17262
17263         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
17264         functions.
17265         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
17266         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
17267         call block_nreverse here.
17268         (blocks_nreverse): Rename decl temporary to block.
17269
17270 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
17271
17272         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
17273         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
17274         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
17275         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
17276         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
17277         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
17278         thumb2_iorsi3): Delete.
17279         (orsi_notsi_si): No longer a named pattern.
17280         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
17281         * config/arm/predicates.md (shift_amount_operand): New.
17282         (mult_operator): New.
17283         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
17284         attr enabled): New.
17285         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
17286         arch matches t2.
17287         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
17288         (not_shiftsi_compare0): Likewise, renamed from
17289         arm_notsi_shiftsi_compare0.
17290         (not_shiftsi_compare0_scratch): Likweise, renamed from
17291         arm_notsi_shiftsi_compare0_scratch.
17292         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
17293         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
17294         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
17295         so that the register alternative is disabled when the shift_operator
17296         is MULT.  Use "M" as the constraint for constants.
17297         (arith_shiftsi splitter): Enable for TARGET_32BIT.
17298         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
17299         constraint for constants.
17300         (arith_shiftsi_compare0_scratch): Likewise.
17301         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
17302         Handle Thumb2 alternative.
17303
17304 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17305
17306         * doc/options.texi (NoDriverArg): Document.
17307         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
17308         -MDX and -MMDX.
17309         * opt-functions.awk (switch_flags): Handle NoDriverArg.
17310         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
17311         marking for CL_NO_DRIVER_ARG options when in the driver.
17312         * opts.h (CL_NO_DRIVER_ARG): Define.
17313         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
17314         CL_COMMON): Update values.
17315
17316 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
17317
17318         * common.opt: Add driver options.
17319         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
17320         * doc/options.texi (Driver, RejectDriver): Document.
17321         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
17322         print_prog_name, print_multi_directory, print_sysroot,
17323         print_multi_os_directory, print_multi_lib,
17324         print_sysroot_headers_suffix, report_times, combine_flag,
17325         use_pipes, wrapper_string): Remove.
17326         (save_switch, driver_unknown_option_callback,
17327         driver_wrong_lang_callback, driver_post_handling_callback,
17328         driver_handle_option): New.
17329         (spec_lang, last_language_n_infiles): Make file-scope static
17330         instead of local to process_command.
17331         (process_command): Use decode_cmdline_options_to_array and
17332         read_cmdline_option for option processing.  Compute have_c in
17333         prescan of decoded options.
17334         * opt-functions.awk (switch_flags): Handle Driver and
17335         RejectDriver.
17336         (var_type, var_type_struct): Handle Separate options as generating
17337         const char * variables.
17338         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
17339         CL_TARGET to be passed by caller if required.
17340         (decode_cmdline_options_to_array): Update comment.
17341         * opts.c (complain_wrong_lang): Handle options only valid for the
17342         driver.
17343         (decode_options): Update call to decode_cmdline_options_to_array.
17344         (print_filtered_help): Ignore driver-only options.
17345         (print_specific_help): Ignore CL_DRIVER.
17346         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
17347         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
17348         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
17349         Update values.
17350
17351 2010-08-16  Richard Guenther  <rguenther@suse.de>
17352
17353         * tree-cfg.c (verify_types_in_gimple_reference): Verify
17354         TARGET_MEM_REF a bit.
17355         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
17356         (create_mem_ref_raw): Always create TMR_OFFSET, store the
17357         alias pointer type via it.
17358         (copy_mem_ref_info): Adjust.
17359         (maybe_fold_tmr): Likewise.
17360         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
17361         (reference_alias_ptr_type): Likewise.
17362         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
17363         adjust documentation of TMR_OFFSET operand.
17364         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
17365         use the alias pointer type.
17366         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
17367         initialize mem attrs but the TMR itself.
17368         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
17369         similar to MEM_REF.
17370         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
17371         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
17372         (unshare_and_remove_ssa_names): Likewise.
17373         (copy_ref_info): Adjust.
17374         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
17375         TARGET_MEM_REF case.
17376         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
17377         at TMR_ORIGINAL.
17378         * tree.h (TMR_ORIGINAL): Remove.
17379         * gimple.c (get_base_address): For TARGET_MEM_REF with a
17380         symbol return that.
17381         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
17382         with a symbol.
17383         (get_addr_base_and_unit_offset): Likewise.
17384         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
17385         TARGET_MEM_REFs.
17386         (indirect_ref_may_alias_decl_p): Likewise.
17387         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
17388
17389 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
17390
17391         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
17392         with GCC version 4.6, the default setting (when not optimizing
17393         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
17394         been changed to -fomit-frame-pointer.
17395
17396 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
17397
17398         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
17399         Darwin10.  Do not link libgcc.a for Darwin >= 9.
17400
17401 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
17402
17403         * doc/invoke.texi (Warning Options): Fix terminology and markup
17404         in the description of how unknown warning options are handled.
17405
17406 2010-08-15  Ira Rosen  <irar@il.ibm.com>
17407
17408         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
17409         in basic blocks.
17410         (vect_supportable_dr_alignment): Check alignment for basic blocks.
17411         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
17412         data references.
17413         (vect_bb_vectorization_profitable_p): New function.
17414         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
17415         check if it's worthwhile to vectorize the basic block.
17416
17417 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
17418
17419         * reload.h (register_move_cost, memory_move_secondary_cost,
17420         secondary_reload_class): Adjust prototype.
17421         * rtl.h (reg_class_subset_p): Adjust prototype.
17422         * reload.c (secondary_reload_class): Change arguments type from
17423         enum reg_class to reg_class_t. Change result type to reg_class_t.
17424         * reginfo.c (register_move_cost, reg_class_subset_p): Change
17425         arguments type from enum reg_class to reg_class_t.
17426         (memory_move_secondary_cost): Change arguments type from
17427         enum reg_class to reg_class_t. Change type of saved_flags to
17428         reg_class_t.
17429
17430         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17431         Remove macros.
17432         (mips_cost): Remove.
17433         (struct mips_rtx_cost_data): Moved to mips.c.
17434         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
17435         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
17436         (mips_cost): Make static.
17437         (mips_canonicalize_move_class): Change argument type to reg_class_t.
17438         Change result type to reg_class_t.
17439         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
17440         type from enum reg_class to reg_class_t.
17441         (mips_register_move_cost): Make static. Change arguments
17442         type from enum reg_class to reg_class_t.
17443         (mips_memory_move_cost): New function.
17444         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
17445
17446 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
17447
17448         PR rtl-optimization/43358
17449         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
17450         of a single hard register, using simplify_subreg_regno to decide
17451         what that register should be.
17452
17453 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
17454
17455         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
17456         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
17457         (loongson_pmull<V_suffix>): Rename to...
17458         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
17459
17460 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
17461
17462         * configure.ac: Enable -fomit-frame-pointer on darwin
17463         which support dwarf2.
17464         * config/i386/i386.c (override_options): Same.
17465
17466 2010-08-13  Jie Zhang  <jie@codesourcery.com>
17467
17468         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
17469
17470 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
17471
17472         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
17473         -MMD.
17474
17475 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
17476
17477         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
17478         up dot_prod pattern searching if a stmt is outside the loop.
17479
17480 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
17481             Uros Bizjak  <ubizjak@gmail.com>
17482
17483         * config.gcc: Handle --enable-frame-pointer.
17484
17485         * configure.ac: Add --enable-frame-pointer.
17486         * configure: Regenerated.
17487
17488         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
17489         (override_options): If not configured with --enable-frame-pointer,
17490         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
17491         optimizing for size), -fasynchronous-unwind-tables and
17492         -maccumulate-outgoing-args by default.
17493
17494 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17495
17496         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
17497
17498         PR middle-end/45262
17499         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
17500         -a overflows.  Normalize the range.
17501
17502 2010-08-12  Richard Guenther  <rguenther@suse.de>
17503
17504         PR tree-optimization/45232
17505         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
17506         for types with undefined overflow.
17507         (reassociate_bb): Allow re-associating of bit and min/max
17508         operations for types with undefined overflow.
17509         * tree-ssa-forwprop.c (associate_plusminus): New function.
17510         (tree_ssa_forward_propagate_single_use_vars): Call it.
17511
17512 2010-08-12  Richard Guenther  <rguenther@suse.de>
17513
17514         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
17515         * tree-ssa-alias.c (get_ptr_info): Move ...
17516         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
17517         align and misalign fields conservatively.
17518         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
17519         derive alignment information.
17520         (evaluate_stmt): Derive alignment information from memory
17521         allocation functions.
17522         * tree.h (get_pointer_alignment): Make unsigned.
17523         * builtins.c (get_object_alignment): Use alignment information we
17524         have computed for pointers.
17525         (get_pointer_alignment): Likewise.  Make conservative, return
17526         and unsigned value.
17527         (expand_builtin_strlen): Adjust.
17528         (expand_builtin_memcmp): Likewise.
17529         (expand_builtin_strcmp): Likewise.
17530         (expand_builtin_strncmp): Likewise.
17531         (get_builtin_sync_mem): Use at least mode alignment.
17532         (fold_builtin_memset): Adjust.
17533         (fold_builtin_memory_op): Likewise.
17534         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
17535         information also dump pointer alignment knowledge.
17536         (dump_gimple_stmt): Likewise.
17537
17538 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
17539
17540         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
17541         (EMPTY_FIELD_BOUNDARY): Remove.
17542         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
17543
17544 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
17545
17546         PR debug/45259
17547         * caller-save.c (save_call_clobbered_regs): Only swap notes with
17548         DEBUG_INSNs if n_regs_saved.
17549
17550 2010-08-12  Wei Guozhi  <carrot@google.com>
17551
17552         PR target/44999
17553         * config/arm/arm.md (andsi3): Change to zero extension if possible.
17554         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
17555
17556 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
17557
17558         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
17559
17560         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
17561
17562 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17563
17564         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
17565         the case removed in the previous patch, when the only phi argument
17566         is defined in the same loop as the phi node itself.  Handle it
17567         separately from the invariant case by both propagating it outside
17568         the region and replacing the phi node with an assign.
17569
17570 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17571
17572         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
17573         constant phi nodes with one argument are is_gimple_min_invariant
17574         and SSA_NAME_IS_DEFAULT_DEF.
17575
17576 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17577
17578         * graphite-cloog-util.c (oppose_constraint):
17579         Extend loop counter's value range (CLOOG_ORG).
17580         (cloog_matrix_to_ppl_constraint): Same.
17581         (new_Constraint_System_from_Cloog_matrix): Same.
17582         * graphite-cloog-compat.h (matrix_num_type): New.
17583
17584 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17585
17586         * graphite.c (graphite_initialize): Do not initialize
17587         CLooG and initialize the Parma Polyhedra Library
17588         manually when using CLOOG_ORG.
17589         (graphite_finalize): Do not finalize CLooG and finalize
17590         the Parma Polyhedra Library manually when using CLOOG_ORG.
17591         * graphite-cloog-compat.h (cloog_initialize): Hide function
17592         when using CLOOG_ORG.
17593         (cloog_finalize): Same.
17594
17595 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17596
17597         * graphite-clast-to-gimple.c (free_scattering): Change
17598         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
17599         (CLOOG_ORG).
17600         (build_cloog_prog): Same.
17601         * graphite-cloog-compat.h (cloog_domain): Removed.
17602         (cloog_scattering): New.
17603         (cloog_set_domain): Removed.
17604         (cloog_set_scattering): New.
17605         (cloog_next_domain): Removed.
17606         (cloog_next_scattering): New.
17607         (cloog_set_next_domain): Removed.
17608         (cloog_set_next_scattering): New.
17609         (CloogScatteringList): New.
17610         (CloogScattering): New.
17611         (cloog_scattering_free): New.
17612         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
17613         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
17614         New.
17615
17616 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17617
17618         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
17619         CloogState.
17620         (set_cloog_options): Same.
17621         (print_clast_stmt): Same.
17622         (scop_to_clast): Same.
17623         (print_generated_program): Same.
17624         (gloog): Same.
17625         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
17626         (scop_to_clast): Extend with CloogState.
17627         * graphite-cloog-util.c: Include graphite-cloog-compat.h
17628         (new_Cloog_Domain_from_ppl_Polyhedron):
17629         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
17630         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
17631         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17632         * graphite-cloog-util.h (build_cloog_prog): Same.
17633         * graphite-cloog-copat.h (build_cloog_prog): New.
17634         (CloogState): New.
17635         (cloog_state_malloc): New.
17636         (cloog_state_free): New.
17637         (cloog_loop_malloc): New.
17638         (cloog_options_malloc): New.
17639         (cloog_statement_alloc): New.
17640         (cloog_domain_from_cloog_matrix): New.
17641         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
17642         (new_Cloog_Domain_from_ppl_Polyhedron): New.
17643
17644 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17645
17646         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
17647         type of NAME now depends on used CLooG version.
17648         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
17649         (gcc_type_for_clast_expr): Same.
17650         (print_clast_stmt): Replace pprint with clast_pprint.
17651         * graphite-cloog-compat.h: Provide compatibility macros for
17652         CLooG Legacy.
17653         (clast_name_p): New.
17654         (clast_expr_term): New.
17655         (clast_expr_red): New.
17656         (clast_expr_bin): New.
17657         (clast_pprint): New.
17658
17659 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17660
17661         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
17662         compatible to newer CLooG releases (CLOOG_ORG).
17663         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
17664         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
17665         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
17666         (build_cloog_prog) : New.
17667         (cloog_program_extract_scalars): New.
17668         (cloog_program_scatter): New.
17669
17670 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17671
17672         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
17673         conditionally (CLOOG_ORG).
17674         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
17675         (cloog_statement_usr): New.
17676         (cloog_domain): Same.
17677         (cloog_set_domain): Same.
17678         (cloog_next_domain): Same.
17679         (cloog_set_next_domain): Same.
17680         (cloog_program_nb_scattdims): Same.
17681         (cloog_program_set_nb_scattdims): Same.
17682         (cloog_program_names): Same.
17683         (cloog_program_set_names): Same.
17684         (cloog_program_set_context): Same.
17685         (cloog_program_set_loop): Same.
17686         (cloog_program_blocklist): Same.
17687         (cloog_program_set_blocklist): Same.
17688         (cloog_program_scaldims): Same.
17689         (cloog_program_set_scaldims): Same.
17690         (cloog_names_nb_parameters): Same.
17691         (cloog_names_set_nb_parameters): Same.
17692         (cloog_names_parameters): Same.
17693         (cloog_names_set_parameters): Same.
17694         (cloog_names_set_nb_iterators): Same.
17695         (cloog_names_set_iterators): Same.
17696         (cloog_names_set_nb_scattering): Same.
17697         (cloog_names_set_scattering): Same.
17698         (cloog_statement_set_usr): Same.
17699         (cloog_loop_set_next): Same.
17700         (cloog_loop_set_domain): Same.
17701         (cloog_loop_set_block): Same.
17702         (cloog_block_list_next): Same.
17703         (cloog_block_list_set_next):
17704         (cloog_block_list_set_block): Same.
17705
17706 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17707
17708         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
17709         a bool.
17710         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
17711         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
17712         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
17713         when something has been changed.
17714         (rewrite_commutative_reductions_out_of_ssa): Same.
17715
17716 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17717
17718         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
17719         handle the case when def is in the sese region.
17720         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
17721         for invariant expressions.
17722         (rewrite_cross_bb_phi_deps): Removed.
17723         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
17724         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
17725         rewrite_cross_bb_phi_deps.
17726
17727 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17728
17729         * graphite-sese-to-poly.c
17730         (rewrite_commutative_reductions_out_of_ssa_loop): Call
17731         scev_analyzable_p only on is_gimple_reg
17732
17733 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17734
17735         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
17736         (rewrite_close_phi_out_of_ssa): Propagate constant values or
17737         parametric expressions outside the scop region.
17738         (rewrite_cross_bb_scalar_deps): Same.
17739         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
17740
17741 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17742
17743         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
17744         SSA_NAME_DEF_STMT only on SSA_NAMEs.
17745
17746 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17747
17748         * tree-scalar-evolution.c (instantiate_scev_name): Do not
17749         instantiate default definitions.
17750
17751 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
17752             Sebastian Pop  <sebastian.pop@amd.com>
17753
17754         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
17755         (loop_exits_from_bb_p): New.
17756         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
17757         (loop_exits_from_bb_p): Declared.
17758         * graphite-scop-detection.c (scopdet_basic_block_info): Call
17759         loop_exits_to_bb_p.
17760
17761 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17762
17763         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
17764         extra parameter for the region.  Call scev_analyzable_p.
17765         (rewrite_reductions_out_of_ssa): Update call to
17766         rewrite_close_phi_out_of_ssa.
17767         (rewrite_cross_bb_phi_deps): Same.
17768         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
17769         parameter for the region.  Call scev_analyzable_p.
17770         (rewrite_commutative_reductions_out_of_ssa): Update call to
17771         rewrite_commutative_reductions_out_of_ssa_loop.
17772
17773 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17774
17775         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
17776
17777 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17778
17779         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
17780         SSA scalar phi nodes that can be scev_analyzable_p.
17781
17782 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17783
17784         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
17785         handle SSA_NAME_IS_DEFAULT_DEF.
17786
17787 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17788
17789         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
17790
17791 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17792
17793         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
17794         case non close-phi nodes with one argument.
17795
17796 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17797
17798         * sese.h (scev_analyzable_p): Scevs could be expressions without
17799         chrecs and still be scev_analyzable_p.
17800
17801 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17802
17803         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
17804
17805 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17806
17807         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
17808         * cfgloop.h (struct loop): Remove single_iv field.
17809         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
17810         (scop_canonicalize_loops): Removed.
17811         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
17812         over all the loop phi nodes in loop->header.
17813         (build_poly_scop): Remove use of scop_canonicalize_loops.
17814
17815 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17816
17817         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
17818         handle GIMPLE_CALL.
17819
17820 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17821
17822         * tree-chrec.c (chrec_apply): Should only apply to the specified
17823         variable.  Also handle multivariate chains of recurrences that
17824         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
17825
17826 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17827
17828         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
17829         (debug_clast_name_indexes_1): Removed.
17830         (debug_clast_name_indexes): Removed.
17831         (pbb_to_depth_to_oldiv): Removed.
17832         (build_iv_mapping): Replace the use of rename_map with iv_map.
17833         (translate_clast_user): Remove uses of rename_map.  Allocate and
17834         free iv_map.
17835         (translate_clast_for_loop): Remove uses of rename_map.
17836         (translate_clast_for): Same.
17837         (translate_clast_guard): Same.
17838         (translate_clast): Same.
17839         (gloog): Same.
17840         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
17841         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
17842         * sese.c (set_rename): Now static.
17843         (rename_variables_in_stmt): Removed.
17844         (rename_uses): New.
17845         (is_parameter): Removed.
17846         (is_iv): Removed.
17847         (expand_scalar_variables_call): Removed.
17848         (expand_scalar_variables_ssa_name): Removed.
17849         (expand_scalar_variables_expr): Removed.
17850         (expand_scalar_variables_stmt): Removed.
17851         (expand_scalar_variables): Removed.
17852         (rename_variables): Removed.
17853         (remove_condition): Removed.
17854         (get_true_edge_from_guard_bb): Removed.
17855         (get_false_edge_from_guard_bb): Removed.
17856         (struct igp): Removed.
17857         (default_before_guard): Removed.
17858         (convert_for_phi_arg): Removed.
17859         (add_guard_exit_phis): Removed.
17860         (insert_guard_phis): Removed.
17861         (graphite_copy_stmts_from_block): Now also uses iv_map and a
17862         region.  Do not copy conditions.  Do not copy induction variables.
17863         Call rename_uses.
17864         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
17865         the translated statement.  Use the iv_map for the induction
17866         variable renaming.
17867         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
17868         (set_rename): Removed declaration.
17869         (scev_analyzable_p): ...here.
17870         * tree-chrec.c (chrec_apply_map): New.
17871         * tree-chrec.h (chrec_apply_map): Declared.
17872
17873 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17874
17875         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
17876         insert_loop_close_phis.
17877         * sese.c (name_defined_in_loop_p): Removed.
17878         (expr_defined_in_loop_p): Removed.
17879         (alive_after_loop): Removed.
17880         (close_phi_not_yet_inserted_p): Removed.
17881         (struct alep): Removed.
17882         (add_loop_exit_phis): Removed.
17883         (insert_loop_close_phis): Removed.
17884
17885 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17886
17887         * graphite-cloog-util.c
17888         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
17889         * graphite-poly.c
17890         (psct_scattering_dim_for_loop_depth): Same.
17891
17892 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17893
17894         * graphite-cloog-util.h: Added cloog.h.
17895         * graphite-blocking.c: Removed cloog.h.
17896         * graphite-dependences.c: Same.
17897         * graphite-interchange.c: Same.
17898         * graphite-poly.c: Same.
17899         * graphite-ppl.c: Same.
17900         * graphite-scop-detection.c: Same.
17901         * graphite-sese-to-poly.c:
17902         Removed cloog.h.
17903         Removed graphite-clast-to-gimple.h.
17904         (check_poly_representation): Removed (unused).
17905         * graphite-sese-to-poly.h
17906         (check_poly_representation): Removed (unused).
17907
17908 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17909
17910         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
17911         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
17912         (graphite-cloog-util.o): New.
17913         (graphite-ppl.o): Added graphite-cloog-util.h.
17914         * graphite-clast-to-gimple.c:
17915         Added graphite-cloog-util.h to include statements.
17916         * graphite-cloog-util.c: New.
17917         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
17918         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17919         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17920         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17921         (insert_constraint_into_matrix): Same.
17922         (ppl_Constrain_System_number_of_constraints): Same.
17923         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17924         (oppose_constraint): Same.
17925         (cloog_matrix_to_ppl_constraint): Same.
17926         (new_Constraint_System_from_Cloog_Matrix): Same.
17927         * graphite-cloog-util.h: New.
17928         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
17929         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17930         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17931         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17932         (insert_constraint_into_matrix): Same.
17933         * graphite-ppl.c:
17934         Added graphite-cloog-util.h to include statements.
17935         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
17936         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17937         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17938         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17939         (insert_constraint_into_matrix): Same.
17940         (ppl_Constrain_System_number_of_constraints): Same.
17941         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
17942         (oppose_constraint): Same.
17943         (cloog_matrix_to_ppl_constraint): Same.
17944         (new_Constraint_System_from_Cloog_Matrix): Same.
17945         * graphite-ppl.h:
17946         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
17947         graphite-cloog-util.h.
17948         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
17949         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
17950         (new_C_Polyhedron_from_Cloog_Matrix): Same.
17951         (insert_constraint_into_matrix): Same.
17952
17953 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
17954
17955         * graphite-clast-to-gimple.c
17956         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
17957         (precision_for_interval): Same.
17958         (gcc_type_for_interval): Same.
17959         (compute_type_for_level): Same.
17960         * graphite-interchange.c
17961         (lst_interchange_profitable_p): Same.
17962         * graphite-poly.c
17963         (psct_scattering_dim_for_loop_depth): Same.
17964         * graphite-ppl.c
17965         (ppl_max_for_le_pointset): Same.
17966         (ppl_min_for_le_pointset): Same.
17967
17968 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17969
17970         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
17971         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
17972
17973 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17974
17975         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
17976         rewrite_close_phi_out_of_ssa.
17977
17978 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17979
17980         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
17981
17982 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
17983
17984         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
17985         rename_map.
17986         * sese.c (debug_rename_map): Same.
17987         (get_rename): Same.
17988         (set_rename): Same.
17989         (rename_variables_in_stmt): Same.
17990         (expand_scalar_variables_call): Same.
17991         (expand_scalar_variables_ssa_name): Same.
17992         (expand_scalar_variables_expr): Same.
17993         (expand_scalar_variables_stmt): Same.
17994         (expand_scalar_variables): Same.
17995         (rename_variables): Same.
17996         (graphite_copy_stmts_from_block): Same.
17997         (copy_bb_and_scalar_dependences): Same.
17998
17999 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18000
18001         * graphite-clast-to-gimple.c (copy_renames): Removed.
18002         (translate_clast_for): Do not call copy_renames.
18003         (translate_clast_guard): Same.
18004
18005 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18006
18007         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
18008         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
18009         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
18010         before rewrite_cross_bb_scalar_deps.
18011
18012 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18013
18014         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
18015         Early return in when flag_associative_math is not set.
18016
18017 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18018
18019         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
18020         of SSA copies on edges except for loop->latch.
18021
18022 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18023
18024         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
18025         Split out of rewrite_reductions_out_of_ssa.
18026         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
18027         Declared.
18028         * graphite.c (graphite_transform_loops): Call it.
18029
18030 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18031
18032         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
18033
18034 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
18035
18036         * dbgcnt.def (graphite_scop): New counter.
18037         * graphite.c: Include dbgcnt.h.
18038         (graphite_transform_loops): Use new counter to limit transformations.
18039         * Makefile.in (graphite.o): Depend on DBGCNT_H.
18040
18041 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18042
18043         * passes.c (init_optimization_passes): Add pass_graphite.
18044         Schedule a pass_copy_prop before pass_graphite_transforms.
18045         * timevar.def (TV_GRAPHITE): Declared.
18046         * tree-pass.h (pass_graphite): Declared.
18047         * tree-ssa-loop.c (pass_graphite): New.
18048
18049 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18050
18051         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
18052         Remove calls to rename_nb_iterations and rename_sese_parameters.
18053         * graphite-clast-to-gimple.h (gloog): Update declaration.
18054         * graphite.c (graphite_transform_loops): Update call to gloog.
18055         * sese.c (rename_variables_in_expr): Removed.
18056         (rename_nb_iterations): Removed.
18057         (rename_sese_parameters): Removed.
18058         * sese.h (rename_nb_iterations): Removed.
18059         (rename_sese_parameters): Removed.
18060
18061 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18062
18063         * graphite-clast-to-gimple.c (gloog): Remove call to
18064         sese_adjust_liveout_phis.
18065         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
18066         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
18067         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
18068         rewrite_phi_out_of_ssa.
18069         * sese.c (get_vdef_before_sese): Removed.
18070         (sese_adjust_vphi): Removed.
18071         (sese_adjust_liveout_phis): Removed.
18072         * sese.h (sese_adjust_liveout_phis): Removed.
18073
18074 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18075
18076         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
18077         argument for the place after which to insert the out of SSA copy.
18078         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
18079         (rewrite_phi_out_of_ssa): Same.
18080         (rewrite_cross_bb_scalar_deps): Same.
18081         (insert_copyout): Removed.
18082         (insert_copyin): Removed.
18083         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
18084         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
18085         insert_copyin.
18086
18087 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18088
18089         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
18090         (rewrite_reductions_out_of_ssa): Same.
18091         (rewrite_commutative_reductions_out_of_ssa): Same.
18092         (build_poly_scop): Do not call these functions.
18093         * graphite-sese-to-poly.h (build_poly_scop): Declared.
18094         (rewrite_reductions_out_of_ssa): Declared.
18095         (rewrite_commutative_reductions_out_of_ssa): Declared.
18096         * graphite.c (graphite_transform_loops): Call on every scop
18097         rewrite_commutative_reductions_out_of_ssa before calling
18098         rewrite_reductions_out_of_ssa and build_scop_bbs.
18099
18100 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18101
18102         * graphite-dependences.c (dot_deps): Make system call to dotty run
18103         in background.
18104         (dot_deps_stmt): Same.
18105         * graphite-poly.c (dot_lst): Same.
18106
18107 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
18108
18109         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
18110         phi_arg_in_outermost_loop.
18111         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
18112         (remove_invariant_phi): Same.
18113
18114 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
18115
18116         * target.def (output_addr_const_extra): New hook.
18117         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
18118         * doc/tm.texi: Regenerate.
18119         * targhooks.c (default_asm_output_addr_const_extra): New function.
18120         * targhooks.h (default_asm_output_addr_const_extra): Declare.
18121         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
18122         target hook.
18123
18124         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
18125         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
18126         * config/i386/i386.h (output_addr_const_extra): Rename to...
18127         (i386_asm_output_addr_const_extra): ...this. Make static.
18128         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
18129
18130 2010-08-11  Richard Henderson  <rth@redhat.com>
18131
18132         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
18133
18134 2010-08-11  Nick Clifton  <nickc@redhat.com>
18135
18136         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
18137         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
18138         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
18139         stormy16-lib2-cmpsi.c.
18140
18141         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
18142         -O2.
18143
18144 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
18145
18146         * opts.h (struct cl_option_handler_func): Make handler take
18147         cl_decoded_option structure as parameter, not individual elements.
18148         (struct cl_option_handlers): Make callbacks take cl_decoded_option
18149         structure as parameter, not individual elements.
18150         (handle_option): Take cl_decoded_option structure as parameter,
18151         not individual elements.
18152         (handle_generated_option): Declare.
18153         * opts-common.c (handle_option): Take cl_decoded_option structure
18154         as parameter, not individual elements.  Update calls to callback
18155         and handler functions.
18156         (handle_generated_option): New.
18157         (read_cmdline_option): Update calls to callback functions and
18158         handle_option.
18159         * opts.c (common_handle_option, complain_wrong_lang,
18160         unknown_option_callback, post_handling_callback,
18161         lang_handle_option, target_handle_option): Take cl_decoded_option
18162         structure as parameter, not individual elements.
18163         (lang_handle_option, target_handle_option, common_handle_option):
18164         Assert option has at most one argument.
18165         (enable_warning_as_error): Call handle_generated_option instead of
18166         handle_option.  Do not pass -Werror argument as argument of
18167         generated option.
18168
18169 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18170
18171         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18172         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18173         (SUBWORD_BOOL_CAS): Likewise.
18174         (SUBWORD_SYNC_OP): Likewise.
18175         (SUBWORD_TEST_AND_SET): Likewise.
18176         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18177         (SUBWORD_SYNC_OP): Likewise.
18178         (OP_AND_FETCH_WORD): Likewise.
18179
18180 2010-08-10  Xinliang David Li  <davidxl@google.com>
18181
18182         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
18183         compute max/min offset in address.
18184
18185 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
18186
18187         * ira-live.c: Include sbitmap.h.
18188         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
18189         Compress live ranges even more.
18190
18191 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18192
18193         * coverage.c (ctr_labels): Delete.
18194
18195 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18196
18197         PR bootstrap/45177
18198         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
18199         test here from arm_gen_load_multiple_1.
18200         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
18201         multiple_operation_profitable_p.
18202
18203 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18204
18205         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
18206         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
18207
18208 2010-08-10  Richard Henderson  <rth@redhat.com>
18209
18210         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
18211         after saving registers.  Assert that SSE registers are only saved
18212         with a sufficiently aligned frame.
18213         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
18214         remove stack_realign_fp handling.
18215         (ix86_expand_prologue): Save int registers before stack_realign_fp,
18216         and do not mark the stack alignment as frame related.
18217         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
18218
18219         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
18220         saves when re-aligning the stack.
18221
18222 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18223
18224         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
18225         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
18226         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
18227
18228 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
18229
18230         * dwarf2out.c (struct die_struct): Move die_tag to the end.
18231
18232 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
18233
18234         * config/arm/iterators.md: New file.
18235         * config/arm/arm.md: Include iterators.md.
18236         (QHSI): Move to new file.
18237         (LTUGEU, cnb, optab, ior_xor): Likewise.
18238         * config/arm/iwmmxt.md (VMMX): Move to new file.
18239         (VSHFT, MMX_char): Likewise.
18240         * config/arm/neon.md (VD): Move to new file.
18241         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
18242         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
18243         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
18244         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
18245         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
18246         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
18247         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
18248         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
18249         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
18250         (Is_d_reg, V_mode_nunits): Likewise.
18251         * config/arm/vec-common.md (VALL): Move to new file.
18252         (VALLW, VINT, VINTW): Likewise.
18253
18254 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
18255
18256         PR middle-end/45182
18257         * combine.c (make_compound_operation): Don't try to convert
18258         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
18259
18260 2010-08-10  Richard Guenther  <rguenther@suse.de>
18261
18262         * tree.h (get_object_alignment): Adjust prototype.
18263         * builtins.c (get_object_alignment): Return unsigned int,
18264         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
18265         and TARGET_MEM_REF properly.
18266         (get_pointer_alignment): Adjust.
18267         * emit-rtl.c (get_mem_align_offset): Adjust comment.
18268         (set_mem_attributes_minus_bitpos): Adjust.
18269         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
18270
18271 2010-08-10  Richard Guenther  <rguenther@suse.de>
18272
18273         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
18274         (copy_prop_visit_assignment): Simplify.
18275         (copy_prop_visit_stmt): Also visit assignments from
18276         constants.
18277         (copy_prop_visit_phi_node): Use operand_equal_p.
18278
18279 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18280
18281         * ipa-split.c (find_split_points): Free stack.
18282
18283 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18284
18285         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
18286         * tree.c (tree_node_kind): Delete corresponding entries.
18287
18288 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
18289
18290         * alias.c (may_alias_p): Remove unused ret.
18291
18292 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
18293
18294         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
18295         alias_sets_conflict_p.
18296         (walk_mems_1): Moved from alias.c.
18297         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
18298         in alias.c.
18299         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
18300         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
18301         * alias.c (walk_mems_2): Moved to ddg.c.
18302         (walk_mems_1): Ditto.
18303         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
18304         to ddg.c.
18305         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
18306         disambiguation.
18307         *(may_alias_p): New function to check whether two memory expression
18308         may alias or not. Currently used in buidling inter-iteration memory
18309         dependence.
18310         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
18311         (insn_alias_sets_conflict_p): Removed
18312         *rtl.h (may_alias_p): New function prototype.
18313
18314 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18315
18316         * tree.c (nreverse): Assert that we don't have a BLOCK.
18317
18318 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
18319
18320         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
18321         * config/arm/arm.c (arm_get_pcs_model): Likewise.
18322         * config/avr/avr.c (init_cumulative_args): Likewise.
18323         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18324         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
18325         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
18326         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
18327         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
18328         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
18329         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
18330         * dwarf2out.c (gen_subprogram_die): Likewise.
18331         * function.c (allocate_struct_function): Likewise.
18332         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
18333         (deserves_ellipsis): Delete.
18334
18335 2010-08-09  Richard Guenther  <rguenther@suse.de>
18336
18337         * tree-ssa-copy.c (cached_last_copy_of): Remove.
18338         (valueize_val): New function.
18339         (get_last_copy_of): Remove.
18340         (set_copy_of_val): Simplify.
18341         (dump_copy_of): Likewise.
18342         (copy_prop_visit_cond_stmt): Use valueize_val.
18343         (copy_prop_visit_phi_node): Properly handle unvisited names.
18344         Drop code managing copy-of chains.
18345         (init_copy_prop): Adjust.
18346         (fini_copy_prop): Likewise.
18347         (execute_copy_prop): Remove obsolete comment.
18348
18349 2010-08-09  Richard Guenther  <rguenther@suse.de>
18350
18351         PR middle-end/44632
18352         * function.c (gimplify_parameters): Do not clear addressable
18353         bit of the original parameter.
18354
18355 2010-08-09  Richard Guenther  <rguenther@suse.de>
18356
18357         PR middle-end/45212
18358         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
18359         alignment from MEM_REF offset only if we took it from the
18360         base object.
18361
18362 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
18363
18364         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
18365
18366 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18367
18368         * c-tree.h (build_arg_info): Declare.
18369         * c-decl.c (build_arg_info): Define.
18370         (get_parm_info): Call it.  Delete initialization code.
18371         * c-parser.c (c_parser_parms_declarator): Likewise.
18372         (c_parser_parms_list_declaractor): Likewise.
18373
18374 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18375
18376         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
18377         (struct c_arg_info): Change type of tags field.
18378         * c-decl.c (grokdeclarator): Update for changed type of tags field.
18379         (get_parm_info): Likewise.
18380         (store_parm_decls_newstyle): Likewise.
18381
18382 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
18383
18384         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
18385         (branch_island_list): Delete.
18386         (branch_islands): Declare.
18387         (add_compiler_branch_island): Adjust for branch_islands instead of
18388         branch_island_list.
18389         (macho_branch_islands): Likewise.
18390         (no_previous_def): Likewise.
18391         (get_prev_label): Likewise.
18392
18393 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18394
18395         PR boehm-gc/34544
18396         * gthr-posix.h (__gthread_start): Delete.
18397         (__gthread_active_init): Use pthread_default_stacksize_np instead of
18398         pthread_create to determine if hpux pthreads are active.
18399         * gthr-posix95.h (__gthread_start): Delete.
18400         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
18401
18402 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
18403
18404         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
18405         _WIN64 not expanded.
18406
18407 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
18408             H.J. Lu  <hongjiu.lu@intel.com>
18409
18410         PR target/45213
18411         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
18412         to output 32bit SFmode immediate as 8 byte sign extended value.
18413
18414 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18415
18416         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
18417         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
18418         (SUBWORD_BOOL_CAS): Likewise.
18419         (SUBWORD_SYNC_OP): Likewise.
18420         (SUBWORD_TEST_AND_SET): Likewise.
18421         (FETCH_AND_OP_WORD): Parenthesise INF_OP
18422         (SUBWORD_SYNC_OP): Likewise.
18423         (OP_AND_FETCH_WORD): Likewise.
18424
18425 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18426
18427         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
18428         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
18429         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
18430         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
18431         generic part.
18432         (cortex_a9_sched_adjust_cost): New function.
18433         (xscale_sched_adjust_cost): New function.
18434         * config/arm/arm-protos.h (struct tune_params): New field
18435         sched_adjust_cost.
18436         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
18437
18438 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
18439
18440         PR target/44942
18441         * config/sparc/sparc.c (function_arg_advance): Always take into account
18442         the padding, if any.
18443
18444 2010-08-06  Richard Guenther  <rguenther@suse.de>
18445
18446         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
18447         (dump_lattice_value): Dump it.
18448         (get_default_value): Adjust.
18449         (get_constant_value): Likewise.
18450         (set_value_varying): Likewise.
18451         (set_lattice_value): Make sure to not go up the lattice
18452         with bitwise constant values.
18453         (get_value_for_expr): Handle ADDR_EXPRs.
18454         (value_to_double_int): New function.
18455         (get_value_from_alignment): Likewise.
18456         (do_dbg_cnt): Adjust.
18457         (ccp_lattice_meet): Handle partially constant values.
18458         (bit_value_unop_1): New function.
18459         (bit_value_binop_1): Likewise.
18460         (bit_value_unop): Likewise.
18461         (bit_value_binop): Likewise.
18462         (evaluate_stmt): Track partially constant values if
18463         flag_tree_bit_ccp is set.
18464         (ccp_fold_stmt): Dump if we folded a predicate.
18465         (ccp_visit_stmt): Adjust.
18466         * common.opt (ftree-bit-ccp): New flag.
18467         * doc/invoke.texi (ftree-bit-ccp): Document.
18468         * opts.c (decode_options): Enable bit-CCP at -O1.
18469
18470 2010-08-06  Alan Modra  <amodra@gmail.com>
18471
18472         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
18473         and -mrelocatable-lib description.
18474
18475 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
18476
18477         From Martin Thuresson  <martint@google.com>
18478         * postreload.c (reload_cse_simplify_operands): Use
18479         SET_REGNO_RAW instead of SET_REGNO.
18480         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
18481         SET_REGNO.
18482         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
18483         instead of SET_REGNO.
18484         * rtl.h (SET_REGNO_RAW): New macro.
18485
18486 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
18487
18488         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
18489         computations.  Fix formatting issues.
18490         (num_sign_bit_copies1): Likewise.
18491         (canonicalize_condition): Likewise.
18492
18493 2010-08-05  Richard Henderson  <rth@redhat.com>
18494
18495         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
18496         (floor_log2): Use clz_hwi.
18497         (exact_log2): Use ctz_hwi.
18498         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
18499         * builtins.c (fold_builtin_bitop): Use them.
18500         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
18501         * combine.c (get_pos_from_mask): Use ctz_hwi.
18502         * double-int.c (double_int_ctz): Likewise.
18503         * explow.c (force_reg): Likewise.
18504         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
18505
18506 2010-08-05  Richard Henderson  <rth@redhat.com>
18507
18508         PR target/45189
18509         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
18510         the alignment constant is properly sign-extended.
18511
18512 2010-08-05  Richard Guenther  <rguenther@suse.de>
18513
18514         * expr.c (store_expr): Use emit_block_move only if both
18515         source and target are MEMs.  Use store_bit_field if only
18516         the target is a MEM.
18517
18518 2010-08-05  Richard Henderson  <rth@redhat.com>
18519
18520         PR debug/45188
18521         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
18522         (INCOMING_RETURN_ADDR_RTX): Likewise.
18523         (dwarf2out_do_frame): Remove conditional compilation.
18524         (dwarf2out_frame_init): Likewise.
18525
18526 2010-08-05  Nicolas Setton  <setton@adacore.com>
18527
18528         * gcov.c (flag_display_progress): New static variable.
18529         (main): Display progress info on standard output if requested.
18530         (options): Add -d/--display-progress.
18531         (print_usage): Print them.
18532         (process_args): Handle them.
18533         * doc/gcov.texi: Document them.
18534
18535 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18536
18537         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
18538         (ipcp_insert_stage): Redirect only edges not flagged with
18539         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
18540         discovered constants.
18541
18542 2010-08-05  Martin Jambor  <mjambor@suse.cz>
18543
18544         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
18545         (struct ipa_param_descriptor): New fields types and
18546         cannot_devirtualize.
18547         (ipa_param_cannot_devirtualize_p): New function.
18548         (ipa_param_types_vec_empty): Likewise.
18549         (ipa_make_edge_direct_to_target): Declare.
18550         * ipa-cp.c: Fixed first stage driver name in initial comment,
18551         described devirtualization there too.
18552         (ipcp_analyze_node): Call ipa_analyze_params_uses.
18553         (ipcp_print_all_lattices): Print devirtualization info.
18554         (ipa_set_param_cannot_devirtualize): New function.
18555         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
18556         lattice to BOTTOM.
18557         (ipcp_init_stage): Merged into...
18558         (ipcp_generate_summary): ...its caller.
18559         (ipcp_change_tops_to_bottom): Also process type lists.
18560         (ipcp_add_param_type): New function.
18561         (ipcp_copy_types): Likewise.
18562         (ipcp_propagate_types): Likewise.
18563         (ipcp_propagate_stage): Also propagate types.
18564         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
18565         Also return true if propagated types require it.
18566         (ipcp_update_callgraph): Dump redirection info.
18567         (ipcp_process_devirtualization_opportunities): New function.
18568         (ipcp_const_param_count): Include known type information.
18569         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
18570         on new node.  Fixed formatting.
18571         * ipa-prop.c (make_edge_direct_to_target): Renamed to
18572         ipa_make_edge_direct_to_target and changed all callers.  Made
18573         externally visible.
18574         (ipa_node_duplication_hook): Duplicate types vector.
18575         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
18576         redirect outgoing calls for which we can't get a decl from the
18577         statement.  Check that we can get a decl from the call statement.
18578         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
18579         ipa_analyze_params_uses only when ipa-cp is disabled.
18580         * tree-inline.c (get_indirect_callee_fndecl): Removed.
18581         (expand_call_inline): Do not call get_indirect_callee_fndecl.
18582         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
18583         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
18584
18585 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18586
18587         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
18588         temporary. Emit move from temporary to accum, so REG_EQUAL note will
18589         be attached to this insn in correct mode.
18590
18591 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
18592
18593         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
18594         using REGNO of base_reg directly.
18595
18596 2010-08-05  Jie Zhang  <jie@codesourcery.com>
18597
18598         PR tree-optimization/45144
18599         * tree-sra.c (type_consists_of_records_p): Return false
18600         if the record contains bit-field.
18601
18602 2010-08-04  Richard Henderson  <rth@redhat.com>
18603
18604         * config/i386/i386.c (struct ix86_frame): Remove padding and
18605         to_allocate members.
18606         (ix86_compute_frame_layout): Don't store them.
18607         (ix86_can_use_return_insn_p): Use a more direct and more obviously
18608         correct condition for the position of the stack pointer.
18609         (ix86_expand_prologue): Compute remaining stack allocation based
18610         on the ultimate stack pointer offset.
18611         (ix86_expand_epilogue): Use more obvious expressions testing for
18612         the stack pointer already pointing to the saved registers.
18613
18614         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
18615         duplication deconstructing the frame pointer.  Simplify
18616         deallocation of the local stack frame.
18617
18618         * reg-notes.def (CFA_EXPRESSION): New.
18619         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18620         (dwarf2out_frame_debug_cfa_expression): New.
18621         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
18622
18623         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
18624         * config/i386/i386.c (ix86_expand_prologue): Set it.
18625         (ix86_expand_epilogue): Clear it.
18626         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
18627         context, add REG_CFA_EXPRESSION notes.
18628
18629         * config/i386/i386.h (struct machine_frame_state): Rename from
18630         machine_cfa_state.  Add members tracking SP and FP regardless
18631         of the current CFA register.
18632         (ix86_cfa_state): Remove.
18633         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
18634         and sse_reg_save_offset members.
18635         (ix86_compute_frame_layout): Set them.
18636         (gen_push): Increment sp_offset too.
18637         (choose_baseaddr_len, choose_baseaddr): New.
18638         (ix86_emit_save_reg_using_mov): New.
18639         (ix86_emit_save_regs_using_mov): Use it.
18640         (ix86_emit_save_sse_regs_using_mov): Likewise.
18641         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
18642         compare vs the saved red_zone_offset.
18643         (pro_epilogue_adjust_stack): Adjust sp_offset.
18644         (ix86_adjust_stack_and_probe): Likewise.
18645         (ix86_expand_prologue): Set up, use, and validate the new
18646         frame_state_info members.  Use gen_frame_mem.
18647         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
18648         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
18649         new frame_state_info members.
18650         (ix86_emit_leave): Likewise.
18651         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
18652         out-of-range stack pointer offsets here.
18653         (ix86_emit_restore_sse_regs_using_mov): Likewise.
18654         (ix86_expand_epilogue): Use and validate the new frame_state_info
18655         members.  Break up and simplify the logic selecting the
18656         restore_regs_via_mov code path.  Ensure that there will be no
18657         out-of-range stack pointer offsets.
18658
18659         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
18660
18661         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
18662         argument name to reflect the expected tree; fix indentation.
18663         (ix86_asm_output_function_label): Output the entire 32-bit
18664         ms_hook here as bytes ...
18665         (ix86_expand_prologue): ... not here as insns.  Attach the
18666         unwind info for the ms_hook to a blockage insn.
18667         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
18668         (ix86_ms_bitfield_layout_p): Fix indentation.
18669         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
18670
18671         * config/i386/i386.c (ix86_using_red_zone): New.
18672         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
18673         ix86_expand_prologue, ix86_force_to_memory): Use it.
18674
18675         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
18676         saving the int registers.
18677
18678         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
18679         and DWARF2_UNWIND_INFO conditional compilation.
18680
18681 2010-08-04  Richard Henderson  <rth@redhat.com>
18682
18683         PR debug/45171
18684         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
18685         an is_naming_typedef_decl.
18686
18687 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
18688
18689         PR rtl-optimization/45162
18690         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
18691         * dce.c (word_dce_process_block): Likewise.
18692
18693 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
18694
18695         PR target/44583
18696         * config/ia64/constraints.md (Z): New.
18697         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
18698         (xfreg_or_signed_fp01_operand): New.
18699         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
18700         with fr_reg_or_signed_fp01_operand and constraint G with Z.
18701         (subsf3): Ditto.
18702         (*maddsf4): Ditto.
18703         (*msubsf4): Ditto.
18704         (adddf3): Ditto.
18705         (adddf3_trunc): Ditto.
18706         (subdf3): Ditto.
18707         (*subdf3_trunc): Ditto.
18708         (*madddf4): Ditto.
18709         (*madddf4_trunc): Ditto.
18710         (*msubdf4): Ditto.
18711         (*msubdf4_trunc): Ditto.
18712         (addxf3): Replace xfreg_or_fp01_operand with
18713         xfreg_or_signed_fp01_operand and constraint G with Z.
18714         (*addxf3_truncsf): Ditto.
18715         (*addxf3_truncdf): Ditto.
18716         (subxf3): Ditto.
18717         (*subxf3_truncsf): Ditto.
18718         (*subxf3_truncdf): Ditto.
18719         (*maddxf4): Ditto.
18720         (*maddxf4_truncsf): Ditto.
18721         (*maddxf4_truncdf): Ditto.
18722         (*msubxf4): Ditto.
18723         (*msubxf4_truncsf): Ditto.
18724         (*msubxf4_truncdf): Ditto.
18725
18726 2010-08-04  Richard Guenther  <rguenther@suse.de>
18727
18728         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
18729         if either alias-set is zero.
18730
18731 2010-08-04  Richard Guenther  <rguenther@suse.de>
18732
18733         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
18734         * tree-ssa-ccp.c: ... here.
18735         * tree-ssa-copy.c: ... and here.
18736         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
18737         value_range_t): Move ...
18738         * tree-vrp.c: ... here.
18739         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
18740         (substitute_and_fold): Adjust prototype.
18741         * tree-ssa-propagate.c (replace_uses_in): Adjust.
18742         (replace_phi_args_in): Likewise.
18743         (substitute_and_fold): Take callback to query lattice instead
18744         of pointer to lattice.  Replace SSA name defs with lattice
18745         values first.
18746         * tree-ssa-ccp.c (ccp_finalize): Adjust.
18747         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
18748         (get_value): New function.
18749         (fini_copy_prop): Adjust.
18750         * tree-vrp.c (vrp_finalize): Adjust.
18751
18752 2010-08-04  Richard Guenther  <rguenther@suse.de>
18753
18754         PR middle-end/45176
18755         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
18756         points-to set for original MEM_REF.
18757
18758 2010-08-04  Richard Guenther  <rguenther@suse.de>
18759
18760         * tree-ssa-ccp.c (get_constant_value): New function.
18761         (get_rhs_assign_op_for_ccp): Remove.
18762         (valueize_op): New function.
18763         (ccp_fold): Use get_constant_value and valueize_op.
18764         (fold_const_aggregate_ref): Likewise.
18765         (ccp_fold_stmt): Likewise.
18766         (visit_assignment): Simplify.
18767
18768 2010-08-04  Richard Guenther  <rguenther@suse.de>
18769
18770         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
18771         * double-int.h (double_int_ctz): Declare.
18772         * double-int.c (double_int_ctz): New function.
18773
18774 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18775
18776         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
18777         Define.
18778         picochip_expand_movmemhi : Expand movmem pattern.
18779         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
18780         Declare.
18781         * config/picochip/picochip.md (movmemhi) : New pattern.
18782
18783 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18784
18785         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
18786
18787 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
18788
18789         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
18790         NEG as operand of a MULT by merging it with the other operand.
18791         * combine.c (make_compound_operation): Use trunc_int_for_mode when
18792         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
18793         MULT.
18794         * config/arm/constraints.md (M): Examine only 32 bits of a
18795         HOST_WIDE_INT.
18796         * config/arm/predicates.md (power_of_two_operand): Likewise.
18797
18798 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18799
18800         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
18801         non-NOTE insns.
18802
18803 2010-08-03  Jan Hubicka  <jh@suse.cz>
18804
18805         * ipa-split.c (struct split_point): Add split_part_set_retval.
18806         (find_retval): Forward declare.
18807         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
18808         (consider_split): Compute current->split_part_set_retval.
18809         (visit_bb): Do not look into return value.
18810         (split_function): Handle !split_part_set_retval
18811
18812 2010-08-03  Martin Jambor  <mjambor@suse.cz>
18813
18814         * tree-sra.c (completely_scalarize_record): New parameter REF, create
18815         its own access->expr intead of using build_ref_for_offset.
18816
18817 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
18818
18819         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
18820         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
18821         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
18822         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
18823         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
18824         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
18825         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
18826         DEFAULT_SWITCH_TAKES_ARG.
18827         * config/rx/rx.opt (-patch=): Remove option.
18828         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
18829         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
18830         * doc/invoke.texi (RX Options): Remove -patch=.
18831         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
18832         (option_map): Remove --profile-blocks, --quiet and --silent.
18833
18834 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
18835
18836         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
18837         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
18838         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
18839         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18840         Update calls to ix86_expand_compare and ix86_expand_branch.
18841         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
18842         ix86_expand_compare.
18843         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
18844         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
18845         Make static.
18846         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
18847         and ix86_compare_op1.  Update calls to ix86_expand_compare.
18848         (ix86_expand_int_movcc): Ditto.
18849         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
18850         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
18851         (ix86_expand_setcc): Ditto.
18852         (ix86_expand_compare): Remove prototype.
18853         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
18854         ix86_compare_op0 and ix86_compare_op1.  Update calls
18855         to ix86_expand_branch to directly pass operands[1] and operands[2].
18856         (cbranchxf4): Ditto.
18857         (cbranch<MODEF:mode>4): Ditto.
18858         (cbranchcc4): Ditto.
18859         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
18860         Update calls to ix86_expand_setcc to directly pass operands[2] and
18861         operands[3].
18862         (cstorexf4): Ditto.
18863         (cstore<MODEF:mode>4): Ditto.
18864         (cstorecc4): Ditto.
18865
18866 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18867
18868         PR target/45063
18869         * caller-save.c (save_call_clobbered_regs): Remove regs from
18870         hard_regs_saved when they are set.
18871
18872 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
18873
18874         PR target/41089
18875         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
18876         as volatile.
18877
18878 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
18879
18880         * common.opt (ftree-loop-distribute-patterns): New.
18881         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
18882         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
18883         at -O3.
18884         * tree-data-ref.c (stores_zero_from_loop): New.
18885         * tree-data-ref.h (stores_zero_from_loop): Declared.
18886         * tree-loop-distribution.c (tree_loop_distribution): Call
18887         stores_zero_from_loop.
18888         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
18889
18890 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
18891
18892         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
18893         into account.
18894
18895         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
18896         * config/arm/arm.c (thumb1_code): New variable.
18897         (arm_override_options): Set it.
18898         (thumb1_final_prescan_insn): Keep track of condition code status.
18899         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
18900         jumps that depend on them.
18901         * config/arm/arm.h (thumb1_code): Declare variable.
18902         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
18903         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
18904         thumb1_cc_mode.
18905         (CC_STATUS_INIT): New macro.
18906         * config/arm/constraints.md (Pd): New constraint.
18907         * config/arm/predicates.md (noov_comparison_operator): New predicate.
18908         * config/arm/arm.md (is_thumb1): New define_attr.
18909         (conds): Set default to "clob" when generating Thumb1 code.
18910         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
18911         code are set.  Use two-operand assembly syntax.
18912         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
18913         pattern.
18914         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
18915         codes are set.  Use two-operand assembly syntax.
18916         (zero_extendhisi splitter): Remove constraints.
18917         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
18918         thumb1_movsf_insn): Set conds attribute as appropriate.
18919         (cbranchsi4_insn): Use condition code status from struct
18920         machine_function to determine whether the comparison can be eliminated.
18921         Discourage the alternative using high registers.
18922         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
18923         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
18924         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
18925         subsi3_cbranch): Delete.
18926         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
18927         one subtract and one cbranch insn.
18928
18929         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
18930         thumb2_movdf_soft_insn): Delete patterns.
18931         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
18932         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
18933         (pool_range, neg_pool_range): Use them to define defaults.
18934         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
18935         and allow for TARGET_32BIT.
18936
18937         PR target/40457
18938         * config/arm/arm.h (arm_regs_in_sequence): Declare.
18939         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
18940         load_multiple_sequence, store_multiple_sequence): Delete
18941         declarations.
18942         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
18943         declarations.
18944         * config/arm/ldmstm.md: New file.
18945         * config/arm/arm.c (arm_regs_in_sequence): New array.
18946         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
18947         CHECK_REGS.  All callers changed.
18948         If SAVED_ORDER is nonnull, copy the computed order into it.
18949         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
18950         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
18951         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
18952         If SAVED_ORDER is nonnull, copy the computed order into it.
18953         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
18954         like REGS.  Handle Thumb mode.
18955         (arm_gen_load_multiple_1): New function, broken out of
18956         arm_gen_load_multiple.
18957         (arm_gen_store_multiple_1): New function, broken out of
18958         arm_gen_store_multiple.
18959         (arm_gen_multiple_op): New function, with code from
18960         arm_gen_load_multiple and arm_gen_store_multiple moved here.
18961         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
18962         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
18963         changed.
18964         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
18965         * config/arm/predicates.md (commutative_binary_operator): New.
18966         (load_multiple_operation, store_multiple_operation): Handle more
18967         variants of these patterns with different starting offsets.  Handle
18968         Thumb-1.
18969         * config/arm/arm.md: Include "ldmstm.md".
18970         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
18971         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
18972         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
18973         peepholes): Delete.
18974         * config/arm/ldmstm.md: New file.
18975         * config/arm/arm-ldmstm.ml: New file.
18976
18977         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
18978         if statement which adds extra costs to frame-related expressions.
18979
18980 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18981
18982         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
18983
18984 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
18985
18986         PR target/45142
18987         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
18988         alternative 2.
18989         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
18990         split V4SI operands.
18991
18992 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
18993
18994         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
18995         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
18996         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
18997         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
18998
18999 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
19000
19001         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
19002         LOCAL_INCLUDE_DIR.
19003
19004 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
19005
19006         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
19007         used in the call to optab_for_tree_code.  Fix the second
19008         is_widening_mult_p call.  Check that both unwidened operands
19009         have the same sign.
19010
19011 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
19012
19013         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
19014
19015 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
19016
19017         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19018
19019 2010-07-30  DJ Delorie  <dj@redhat.com>
19020
19021         * config/rx/predicates.md (rx_constshift_operand): New.
19022         * config/rx/rx.md (zs_cond): New.
19023         (cbranchsi4): Remove mode.
19024         (*cbranchsi4_<code>): Likewise.
19025         (*tstbranchsi4_<code>): New.
19026         (*tstbranchsi4r_<code>): New.
19027         (*tstbranchsi4m_eq): New.
19028         (*tstbranchsi4m_ne): New.
19029         (cbranchsf4): Remove mode.
19030         (*cbranchsf4_<code>): Likewise.
19031
19032 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
19033
19034         * rtlanal.c (simplify_subreg_regno): Don't treat
19035         HARD_FRAME_POINTER_REGNUM specially.
19036
19037 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
19038
19039         * common.opt (-G): Don't define option here.
19040         * config/g.opt: New.
19041         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
19042         rs6000/powerpc and score targets.
19043         * opts.c (common_handle_option): Don't handle -G here.
19044         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
19045         * config/frv/frv.c (frv_handle_option): Handle -G.
19046         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
19047         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
19048         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
19049         * config/mips/mips.c (mips_handle_option): Handle -G.
19050         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
19051         * config/score/score.c (score_handle_option): Handle -G.
19052
19053 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
19054
19055         * config/mmix/mmix.c: Include basic-block.h.
19056
19057 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
19058
19059         PR debug/45055
19060         PR rtl-optimization/45137
19061         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
19062         prototypes.
19063         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
19064         New functions.
19065         * combine.c (next_nonnote_nondebug_insn): Removed.
19066         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
19067         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
19068         * sched-deps.c (sched_analyze_insn): Likewise.
19069         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
19070         * rtlanal.c (canonicalize_condition): Likewise.
19071         * postreload.c (reload_combine_recognize_pattern): Likewise.
19072         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
19073
19074 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
19075
19076         * config/i386/i386.md (int_cond): Remove code iterator.
19077         (fp_cond): Ditto.
19078         (cbranch<mode>4): Use ordered_comparison_operator predicate
19079         for operator0.
19080         (cstore<mode>4): Ditto for operator1.
19081         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
19082         (add<mode>cc): ditto.
19083
19084 2010-07-30  Richard Guenther  <rguenther@suse.de>
19085
19086         PR middle-end/45141
19087         * expr.c (expand_expr_real_1): Check for not handled base address.
19088
19089 2010-07-30  Richard Guenther  <rguenther@suse.de>
19090
19091         * ipa-prop.c (ipa_modify_formal_parameters): Use
19092         build_distinct_type_copy.
19093
19094 2010-07-30  Anthony Green  <green@moxielogic.com>
19095
19096         * config/moxie/rtems.h: New file.
19097         * config.gcc: Add moxie-rtems support.
19098
19099 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
19100
19101         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
19102         df flags as in run_fast_df_dce.
19103
19104 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
19105
19106         Revert:
19107         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19108
19109         * rtl.def (NOTE): Swap operands 4 and 5.
19110         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
19111         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
19112         Adjust accordingly.
19113         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
19114
19115 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
19116
19117         PR debug/45110
19118         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
19119         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
19120         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
19121         formal parameters.
19122         (gen_decl_die): Change return type to dw_die_ref, return what
19123         gen_formal_parameter_die returned.
19124
19125 2010-07-29  Martin Jambor  <mjambor@suse.cz>
19126
19127         * dbgcnt.def (eipa_sra): New counter.
19128         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
19129
19130 2010-07-29  Xinliang David Li  <davidxl@google.com>
19131
19132         PR bootstrap/45119
19133         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
19134         in revision 162652.
19135
19136 2010-07-29  Richard Guenther  <rguenther@suse.de>
19137
19138         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
19139         (TV_TREE_STORE_CCP): Likewise.
19140         (TV_TREE_REDPHI): Likewise.
19141
19142 2010-07-29  Richard Guenther  <rguenther@suse.de>
19143
19144         * double-int.h (double_int_and_not): New function.
19145         * combine.c (try_combine): Use it.
19146         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
19147
19148 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
19149
19150         PR rtl-optimization/42575
19151         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
19152         Argument AU removed.  All callers changed.  Ignore artificial refs.
19153         Use return value of df_word_lr_simulate_defs to decide whether an insn
19154         is necessary.
19155         (fast_dce): Rename arg to WORD_LEVEL.
19156         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
19157         static.
19158         (pass_fast_rtl_byte_dce): Delete.
19159         * dce.h (run_word_dce): Declare.
19160         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
19161         All callers changed.  Simplify code to only deal with two-word regs.
19162         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
19163         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
19164         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
19165         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
19166         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
19167         (df_word_lr_mark_ref): Declare.
19168         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
19169         df_word_lr_simulate_uses): Declare or rename from byte variants.
19170         (df_byte_lr_simulate_artificial_refs_at_top,
19171         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
19172         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
19173         declarations.
19174         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
19175         (enum df_mm): Delete.
19176         * df-byte-scan.c: Delete file.
19177         * df-problems.c (df_word_lr_problem_data): Renamed from
19178         df_byte_lr_problem_data, all members deleted except for
19179         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
19180         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
19181         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
19182         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
19183         df_byte_lr_confluence_0): Delete functions.
19184         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
19185         callers changed.
19186         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
19187         Don't initialize members that were deleted, don't try to discover data
19188         about registers.  Ignore hard regs.
19189         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
19190         (df_word_lr_mark_ref): New function.
19191         (df_word_lr_bb_local_compute): Renamed from
19192         df_byte_bb_lr_local_compute; all callers changed.  Use
19193         df_word_lr_mark_ref.  Assert that artificial refs don't include
19194         pseudos.  Ignore hard registers.
19195         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
19196         Assert that exit block uses don't contain pseudos.
19197         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
19198         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
19199         callers changed.  Ignore hard regs.
19200         (df_word_lr_transfer_function): Renamed from
19201         df_byte_lr_transfer_function; all callers changed.
19202         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
19203         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
19204         changed.
19205         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
19206         callers changed.
19207         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
19208         confluence operator 0 set to NULL.
19209         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
19210         callers changed.
19211         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
19212         Return bool, true if bitmap changed or insn otherwise necessary.
19213         All callers changed.  Simplify using df_word_lr_mark_ref.
19214         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
19215         all callers changed.  Simplify using df_word_lr_mark_ref.
19216         * lower-subreg.c: Include "dce.h"
19217         (decompose_multiword_subregs): Call run_word_dce if df available.
19218         * Makefile.in (lower-subreg.o): Adjust dependencies.
19219         (df-byte-scan.o): Delete.
19220         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
19221
19222 2010-07-29  Richard Guenther  <rguenther@suse.de>
19223
19224         * tree.c (build_vector): Assert that the vector constant
19225         has enough elements.
19226         (build_vector_from_ctor): Pad with trailing zeros.
19227
19228 2010-07-29  Richard Guenther  <rguenther@suse.de>
19229
19230         PR tree-optimization/45120
19231         * tree-ssa-structalias.c (get_constraint_for_component_ref):
19232         Handle offset in DEREFs properly.
19233         (get_constraint_for_1): Handle MEM_REF offset properly.
19234
19235 2010-07-29  Richard Guenther  <rguenther@suse.de>
19236
19237         PR middle-end/45034
19238         * convert.c (convert_to_integer): Always use an unsigned
19239         type for narrowed negate and bitwise not.
19240
19241 2010-07-29  Ira Rosen  <irar@il.ibm.com>
19242
19243         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
19244         to outer loop when creating reduction epilogue for double reduction,
19245         and switch back to the inner loop when updating the phi nodes.
19246         Update uses of outer loop exit phi nodes in double reduction (instead
19247         of uses of reduction).
19248
19249 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
19250
19251         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
19252         popcount on power7 and parity on power6 systems.
19253         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
19254         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
19255         instructions.
19256
19257         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
19258         (UNSPEC_PARITY): Ditto.
19259         (SFDF): New iterator for SF/DF.
19260         (rreg2): New mode attribute for floating register constraint.
19261         (TARGET_FLOAT): New mode attribute for whether single/double float
19262         is supported.
19263         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
19264         pattern.
19265         (parity<mode>2_cmpb): New insn for parity on power6 and newer
19266         machines.
19267         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
19268         pattern.  Add support for fcpsgn instruction added in power6.
19269         (copysignsf3): Delete.
19270         (copysigndf3): Delete.
19271         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
19272         instead of if_then_else in RTL to avoid problems with -0.
19273
19274         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
19275         of if_then_else to mirror scalar code.
19276         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
19277         rs6000.md.
19278
19279         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
19280         instead of if_then_else.
19281
19282 2010-07-28  Xinliang David Li  <davidxl@google.com>
19283
19284         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
19285         (dump_cand): Dump var_before/after.
19286         (htab_inv_expr_eq): New function.
19287         (htab_inv_expr_hash): New function.
19288         (tree_ssa_iv_optimize_init): Support pseudo invariants.
19289         (add_candidate_1): consider base type precision.
19290         (set_use_iv_cost): New parameter.
19291         (adjust_setup_cost): Use profile information.
19292         (get_address_cost): Do not hard code width in computing address
19293         offset limits.
19294         (compare_aff_trees): New function.
19295         (get_loop_invariant_expr_id): New function.
19296         (get_computation_cost_at): New parameter and use profile information.
19297         (get_computation_cost): New parameter.
19298         (determine_use_iv_cost_generic): Pass new parameter.
19299         (determine_use_iv_cost_address): Ditto.
19300         (determine_use_iv_cost_condition): Ditto.
19301         (autoinc_possible_for_pair): Ditto.
19302         (determine_use_iv_costs): More dumps.
19303         (iv_ca_get_num_inv_exprs): New function.
19304         (iv_ca_recount_cost): Consider loop invariants in register pressure
19305         cost.
19306         (iv_ca_add_use): New parameter.
19307         (iv_ca_dump): Better dumping.
19308         (iv_ca_extend): New parameter.
19309         (try_add_cand_for): Attempt to get better partial solution.
19310         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
19311         (create_new-ivs): More dumps.
19312         (rewrite_use_compare): Ditto.
19313         (free_loop_data): More cleanup.
19314         (treee_ssa_iv_optimize_finalize): Ditto.
19315
19316 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
19317
19318         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
19319         * config/i386/i386.c (ix86_profile_before_prologue): New.
19320         (override_options): Add special handling for -mfentry.
19321         (ix86_function_regparm): Likewise.
19322         (ix86_function_sseregparm): Likewise.
19323         (ix86_frame_pointer_required): Likewise.
19324         (ix86_expand_prologue): Check for ms_hook_prologue.
19325         (x86_function_profiler): Adjust mcount output.
19326         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
19327         * config/i386/i386.opt (mfentry): New.
19328         * doc/invoke.texi (mfentry): Add documentation.
19329         * doc/tm.texi: Regenerated..
19330         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
19331         * final.c (final_start_function): Replace macro
19332         PROFILE_BEFORE_PROLOGUE by target hook.
19333         * function.c (thread_prologue_and_epilogue_insns): Likewise.
19334         * target.def (profile_before_prologue): New hook.
19335         * targhooks.c (default_profile_before_prologue): New.
19336         * targhooks.h (default_profile_before_prologue): New.
19337
19338 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
19339
19340         PR debug/45105
19341         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
19342
19343         PR debug/45103
19344         * dwarf2out.c (dwarf2out_var_location): Always consider
19345         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
19346
19347 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19348
19349         PR rtl-optimization/45107
19350         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
19351
19352 2010-07-28  Richard Guenther  <rguenther@suse.de>
19353
19354         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
19355         (set_lattice_value): Do not query an old default value.
19356         (get_value_for_expr): New function.  Properly canonicalize
19357         float values.
19358         (ccp_visit_phi_node): Use it.
19359
19360 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
19361
19362         * config/arm/arm.c (arm_pcs_default): Remove static.
19363         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
19364         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
19365         (arm_pcs_default): Declare.
19366
19367 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
19368
19369         * config/rs6000/rs6000.c (rs6000_override_options):
19370         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
19371         ... to darwin_rs6000_override_options.
19372         (rs6000_return_in_memory): Update preceding comment for darwin
19373         64 bit ABI.  Use TARGET_MACHO inline.
19374         (rs6000_darwin64_struct_check_p): New.
19375         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
19376         (function_arg): Likewise.
19377         (rs6000_arg_partial_bytes): Likewise.
19378         (rs6000_function_value): Likewise.
19379
19380 2010-07-28  Andi Kleen  <ak@linux.intel.com>
19381
19382         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
19383
19384 2010-07-28  Richard Guenther  <rguenther@suse.de>
19385
19386         PR middle-end/44903
19387         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
19388         targets try harder to not generate unaligned accesses.
19389
19390 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19391
19392         PR rtl-optimization/45101
19393         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
19394         for gcse-las.
19395
19396 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19397
19398         PR tree-optimization/44885
19399         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
19400         with non-aliased component.
19401
19402 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
19403
19404         * config/darwin-driver.c (SWITCH_TAKES_ARG,
19405         WORD_SWITCH_TAKES_ARG): Remove.
19406         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
19407         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
19408         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
19409         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
19410         definitions from gcc.c.
19411         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
19412         defaults.h.
19413         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
19414         Move to defaults.h.
19415         * opts-common.c: Include tm.h.
19416         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
19417         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
19418         Handle more than one argument.  Set canonical_option_num_elements.
19419         (decode_cmdline_options_to_array): Set
19420         canonical_option_num_elements and trailing elements of
19421         canonical_option.
19422         * opts.h (struct cl_decoded_option): Allow four elements in
19423         canonical_option.  Add field canonical_option_num_elements.
19424         * Makefile.in (opts-common.o): Update dependencies.
19425
19426 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
19427
19428         PR middle-end/44790
19429         PR middle-end/44993
19430         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
19431         sure the base has address_mode before adding the offset.
19432
19433 2010-07-27  Xinliang David Li  <davidxl@google.com>
19434
19435         * tree-flow.h (create_mem_ref): Add one new parameter.
19436         * tree-ssa-address.c (create_mem_ref): New parameter.
19437         (addr_to_parts): Ditto.
19438         (move_variant_to_index): New function.
19439         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
19440
19441 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19442
19443         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
19444         4 and 5.
19445         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
19446         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
19447         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
19448         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
19449         CODE_LABELs and NOTEs.
19450         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
19451         * combine.c (try_combine): Likewise.
19452         * ira.c (setup_prohibited_mode_move_regs): Likewise.
19453         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
19454
19455 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19456
19457         * coretypes.h (struct cl_option_handlers): Declare.
19458         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
19459         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
19460         * langhooks-def.h (lhd_handle_option): Declare.
19461         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
19462         * langhooks.c (lhd_handle_option): New.
19463         * langhooks.h (struct lang_hooks): Update prototype and return
19464         value type of handle_option hook.
19465         * optc-gen.awk: Generate target_flags_explicit definition for the
19466         driver.
19467         * opts-common.c: Include diagnostic.h.
19468         (handle_option): Move from opts.c.  Update prototype and return
19469         value type.  Use handlers structure.
19470         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
19471         handlers structure.
19472         (set_option): Move from opts.c.
19473         * opts.c (common_handle_option): Update prototype and return value
19474         type.  Update calls to handle_option and enable_warning_as_error.
19475         (unknown_option_callback, post_handling_callback,
19476         lang_handle_option, target_handle_option): New.
19477         (handle_option, read_cmdline_option): Move to opts-common.c.
19478         (read_cmdline_options): Update prototype.  Update call to
19479         read_cmdline_option.
19480         (decode_options): Initialize and use handlers structure.
19481         (set_option): Move to opts-common.c.
19482         (enable_warning_as_error): Update prototype.  Update call to
19483         handle_option.
19484         * opts.h (struct cl_option_handler_func, struct
19485         cl_option_handlers): New.
19486         (handle_option, enable_warning_as_error): Update prototypes.
19487         (read_cmdline_option): Declare.
19488         * Makefile.in (opts-common.o): Update dependencies.
19489
19490 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19491
19492         * config/arm/arm.c (params.h): Include.
19493         (arm_override_options): Tune gcse-unrestricted-cost.
19494         * config/arm/t-arm (arm.o): Define dependencies.
19495
19496 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19497
19498         PR target/42495
19499         PR middle-end/42574
19500         * basic-block.h (get_dominated_to_depth): Declare.
19501         * dominance.c (get_dominated_to_depth): New function, use
19502         get_all_dominated_blocks as a base.
19503         (get_all_dominated_blocks): Use get_dominated_to_depth.
19504
19505         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
19506         (hoist_exprs): Remove.
19507         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
19508         (compute_code_hoist_vbeinout): Add debug print outs.
19509         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
19510
19511         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
19512         quadratic behavior.
19513         * params.h (MAX_HOIST_DEPTH): New macro.
19514         * doc/invoke.texi (max-hoist-depth): Document.
19515
19516 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19517
19518         PR rtl-optimization/40956
19519         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
19520         constants.
19521
19522 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19523
19524         PR target/42495
19525         PR middle-end/42574
19526         * config/arm/arm.c (legitimize_pic_address): Use
19527         gen_calculate_pic_address pattern to emit calculation of PIC address.
19528         (will_be_in_index_register): New function.
19529         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
19530         (thumb1_legitimate_address_p): Use it provided !strict_p.
19531         * config/arm/arm.md (calculate_pic_address): New expand and split.
19532
19533 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19534
19535         PR target/42495
19536         PR middle-end/42574
19537         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
19538         * config/arm/arm.md (define_split "J", define_split "K"): Make
19539         IRA/reload friendly.
19540
19541 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19542
19543         * gcse.c (insert_insn_end_basic_block): Update signature, remove
19544         unused checks.
19545         (pre_edge_insert, hoist_code): Update.
19546
19547 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19548
19549         PR target/42495
19550         PR middle-end/42574
19551         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
19552
19553 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19554
19555         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
19556
19557 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19558
19559         PR rtl-optimization/40956
19560         PR target/42495
19561         PR middle-end/42574
19562         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
19563         for hoisting.
19564         (hoist_code): Count occurences in current block too.
19565
19566 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19567
19568         * gcse.c (struct expr:max_distance): New field.
19569         (doing_code_hoisting_p): New static variable.
19570         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
19571         simple expressions, don't change behavior for PRE.  Set max_distance.
19572         (insert_expr_in_table): Set new max_distance field.
19573         (hash_scan_set): Update.
19574         (hoist_expr_reaches_here_p): Stop search after max_distance
19575         instructions.
19576         (find_occr_in_bb): New static function.  Use it in ...
19577         (hoist_code): Calculate sizes of basic block before any changes are
19578         done.  Pass max_distance to hoist_expr_reaches_here_p.
19579         (one_code_hoisting_pass): Set doing_code_hoisting_p.
19580
19581         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
19582         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
19583         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
19584         macros.
19585         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
19586         Document.
19587
19588 2010-07-27  Jeff Law  <law@redhat.com>
19589             Maxim Kuvyrkov  <maxim@codesourcery.com>
19590
19591         * gcse.c (compute_transpout, transpout): Remove, move logic
19592         to prune_expressions.
19593         (compute_pre_data): Move pruning of trapping expressions ...
19594         (prune_expressions): ... here.  New static function.
19595         (compute_code_hoist_data): Use it.
19596         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
19597
19598 2010-07-27  Xinliang David Li  <davidxl@google.com>
19599
19600         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
19601         (rewrite_use_address): Adjust iv update position when needed.
19602
19603 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19604
19605         * dbgcnt.def (hoist_insn): New debug counter.
19606         * gcse.c (hoist_code): Use it.
19607
19608 2010-07-27  Xinliang David Li  <davidxl@google.com>
19609
19610         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
19611         (niter_for_single_dom_exit): Passes additional parameter.
19612         (iv_period): Fix comments.
19613         (may_eliminate_iv): Handles multiple exit loops properly.
19614         (free_tree_niter_desc): New function.
19615         (free_loop_data): Frees up loop iteration descriptors.
19616
19617 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19618
19619         PR target/44542
19620         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
19621         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
19622         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
19623         (expand_one_var): Don't consider DECL_ALIGN for variables for
19624         which expand_one_stack_var_at has been already called.
19625
19626         PR testsuite/44701
19627         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
19628         constraints on IA-64.
19629
19630 2010-07-27  Jie Zhang  <jie@codesourcery.com>
19631
19632         PR target/44290
19633         Revert:
19634         2010-07-23  Jie Zhang  <jie@codesourcery.com>
19635
19636         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
19637         false if ! tree_versionable_function_p.
19638
19639 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19640
19641         * dwarf2out.c (add_data_member_location_attribute): Use
19642         add_AT_unsigned instead of add_AT_int if offset is non-negative.
19643
19644 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19645
19646         * postreload.c (try_replace_in_use): New static function.
19647         (reload_combine_recognize_const_pattern): Use it here.  Allow
19648         substituting into a final add insn, and substituting into a memory
19649         reference in an insn that sets the reg.
19650
19651 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19652
19653         * common.opt (o): Add MissingArgError.
19654         * doc/options.texi (MissingArgError): Document.
19655         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
19656         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
19657         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
19658         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
19659         * langhooks.h (struct lang_hooks): Remove missing_argument.
19660         * optc-gen.awk: Handle MissingArgError and output new structure
19661         field initializers.
19662         * opts.c (read_cmdline_option): Use missing_argument_error field
19663         instead of missing_argument langhook.
19664         * opts.h (struct cl_option): Add missing_argument_error field.
19665         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
19666
19667 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19668
19669         PR target/29090
19670         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
19671         Darwin64 ABI, for zero-sized objects.
19672
19673 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
19674
19675         PR target/35491
19676         PR target/29090
19677
19678         Merge from Apple local 4.2.1.
19679         2005-05-11  Stan Shebs  <shebs@apple.com>
19680         Fix 64-bit varargs for Darwin (Radar 4028089).
19681         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
19682         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
19683         Add argument, add case for 8-byte register half-filled with a float.
19684         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
19685         single-precision floats specially.
19686
19687 2010-07-27  Ira Rosen  <irar@il.ibm.com>
19688
19689         PR tree-optimization/44152
19690         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
19691         complex numbers for further check.
19692         (vect_supported_load_permutation_p): Check nodes with
19693         complex numbers.
19694
19695 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
19696
19697         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
19698         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
19699         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
19700         (LANG_HOOKS_INITIALIZER): Add new hooks.
19701         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
19702         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
19703         and complain_wrong_lang_p.  Update init_options prototype.
19704         * c-objc-common.c (c_initialize_diagnostics): First call
19705         c_common_initialize_diagnostics.
19706         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
19707         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
19708         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
19709         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
19710         (hook_uint_void_0): New.
19711         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
19712         (hook_uint_void_0): New.
19713         * opts-common.c (decode_cmdline_option,
19714         decode_cmdline_options_to_array): Also fill in canonical_option field.
19715         * opts.c (complain_wrong_lang): Use langhook to determine whether
19716         to complain instead of special-casing LTO.
19717         (decode_options): Separate lang_mask determination with
19718         option_lang_mask hook from call of init_options hook.
19719         * opts.h (struct cl_decoded_option): Add canonical_option.
19720
19721 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
19722
19723         PR tree-optimization/45083
19724         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
19725
19726 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
19727
19728         * postreload.c (reload_combine_recognize_const_pattern): Move test
19729         for limiting the insn movement to the right scope.
19730
19731         PR rtl-optimization/45051
19732         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
19733         than reg_mentioned_p.
19734
19735 2010-07-26  Richard Henderson  <rth@redhat.com>
19736
19737         PR target/44132
19738         * tree-emutls.c: New file.
19739         * Makefile.in (OBJS-common): Add it.
19740         * tree-pass.h (pass_ipa_lower_emutls): Declare.
19741         * passes.c (init_optimization_passes): Add it.
19742
19743         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
19744         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
19745         * expr.c (emutls_var_address): Delete.
19746         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
19747         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
19748         (emutls_finish): Delete.
19749         * toplev.c (compile_file): Don't call it.
19750         * tree.h (emutls_decl): Delete.
19751         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
19752         (emutls_finish, emutls_finalize_control_var): Delete.
19753         (emutls_object_type): Move to tree-emutls.c.
19754         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
19755         default_emutls_var_fields, get_emutls_object_type,
19756         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
19757         default_emutls_var_init): Likewise.
19758         (get_variable_section): Don't special case emutls.
19759         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
19760         default_elf_select_section, default_unique_section,
19761         default_encode_section_info): Likewise.
19762         * varpool.c (decide_is_variable_needed): Likewise.
19763         * gimple-iterator.c (update_call_edge_frequencies): New
19764         (gsi_insert_on_edge_immediate): Use it.
19765         (gsi_insert_seq_on_edge_immediate): Likewise.
19766         (gsi_commit_one_edge_insert): Likewise.
19767
19768         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
19769         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
19770         (x86_64_elf_unique_section): Likewise.
19771
19772 2010-07-26  Jan Hubicka  <jh@suse.cz>
19773
19774         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
19775         GTY((skip)).
19776
19777 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
19778
19779         * target.def (output_source_filename): New hook.
19780         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
19781         * doc/tm.texi: Regenerate.
19782         * toplev.c (output_file_directive) Remove function.
19783         * toplev.h (output_file_directive) Remove.
19784         * output.h (default_asm_output_source_filename,
19785         output_file_directive): Declare.
19786         * varasm.h (default_asm_output_source_filename,
19787         output_file_directive): New functions.
19788
19789         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
19790         * config/mips/mips-protos.h (mips_output_filename): Remove.
19791         * config/mips/mips.c (mips_output_filename): Make Static.
19792         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
19793
19794 2010-07-26  Richard Guenther  <rguenther@suse.de>
19795
19796         PR tree-optimization/43784
19797         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
19798         if the destination is used by the call.
19799
19800 2010-07-26  Richard Guenther  <rguenther@suse.de>
19801
19802         PR middle-end/45073
19803         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
19804         SSA updating on being in SSA form.
19805
19806 2010-07-26  Richard Guenther  <rguenther@suse.de>
19807
19808         PR middle-end/45056
19809         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
19810
19811 2010-07-26  Richard Guenther  <rguenther@suse.de>
19812
19813         PR tree-optimization/45071
19814         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
19815         adjust op->opcode.
19816
19817 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
19818
19819         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
19820         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
19821         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
19822         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
19823         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
19824         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
19825         save_r31, return_r31, save_interrupt, return_interrupt,
19826         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
19827         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
19828         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
19829         new ABI requirements.
19830         (save_r6_r9, L_callt_save_r6_r9): Remove.
19831         * config/v850/predicates.md (even_reg_operand, disp23_operand,
19832         const_float_1_operand const_float_0_operand): New Predicates.
19833         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
19834         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
19835         * config/v850/t-v850: Update multilibs for new target variants.
19836         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
19837         * config/v850/t-v850e: Likewise.
19838         * config/v850/v850.c (v850_issue_rate): New.
19839         (v850_strict_argument_naming): New.
19840         (function_arg): Modify to generate a different ABI.
19841         (print_operand): Update case 'z' to support float modes.
19842         (output_move_single): Modify to generate appropriate and better
19843         assembly.
19844         (v850_float_z_comparison_operator, v850_select_cc_mode,
19845         v850_float_nz_comparison_operator,  v850_gen_float_compare,
19846         v850_gen_compare): New functions to support comparison of float values.
19847         (ep_memory_offset): Add support for V850E2 targets.
19848         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
19849         (INTERRUPT_REGPARM_NUM): Remove.
19850         (compute_register_save_size): Add extra case to save/restore long call.
19851         (use_prolog_function): New function to support prologue.
19852         (expand_prologue): Add support for V850E2 targets and modified
19853         as per the current ABI requirements.
19854         (expand_epilogue): Likewise.
19855         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
19856         (construct_save_jarl): Likewise.
19857         (construct_dispose_instruction): Update as per the current ABI
19858         requirements.
19859         (construct_prepare_instruction): Likewise.
19860         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
19861         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
19862         (CPP_SPEC): Updated to support v850e2 targets.
19863         (STRICT_ALIGNMENT): Modified.
19864         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
19865         (FIXED_REGISTERS): Likewise.
19866         (CALL_USED_REGISTERS): Likewise.
19867         (CONDITIONAL_REGISTER_USAGE): Updated.
19868         (HARD_REGNO_MODE_OK): Updated.
19869         (reg_class): Updated to add even registers.
19870         (REG_CLASS_NAMES): Likewise.
19871         (REG_CLASS_CONTENTS): Likewise.
19872         (REGNO_REG_CLASS): Updated for CC registers.
19873         (REG_CLASS_FROM_LETTER): Added support for even registers.
19874         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
19875         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
19876         ARG_POINTER_REGNUM): Updated.
19877         (FUNCTION_ARG_ADVANCE): Define.
19878         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
19879         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
19880         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
19881         (GO_IF_LEGITIMATE_ADDRESS): Updated.
19882         (SELECT_CC_MODE): Define.
19883         (REGISTER_NAMES): Updated to add psw and fcc registers.
19884         (ADDITIONAL_REGISTER_NAMES): Updated.
19885         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
19886         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
19887         * config/v850/v850.md (define_constants): Define new constants.
19888         (type): Update store,bit1,macc,div,fpu and single attributes.
19889         (cpu): New attribute.
19890         (cc): Add set_z attribute.
19891         (unsign23byte_load, sign23byte_load, unsign23hword_load,
19892         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
19893         23word_store): New instructions for 23-bit displacement load and store.
19894         (movqi_internal, movhi_internal): Update the attributes.
19895         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
19896         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
19897         the attributes.
19898         (v850_tst1): Modified using CC_REGNUM.
19899         (tstsi): Remove.
19900         (cmpsi): Modified as define_expand from define_insn.
19901         (cmpsi_insn, cmpsf, cmpdf): New instructions.
19902         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
19903         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
19904         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
19905         one_cmplsi2): Clobber the CC_REGNUM register.
19906         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
19907         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
19908         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
19909         (setf_insn, set_z_insn, set_nz_insn): New instructions for
19910         v850e2v3 target.
19911         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
19912         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
19913         targets.
19914         (sasf_1, sasf_2): Remove.
19915         (sasf): New instruction.
19916         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
19917         targets. CC_REGNUM register is clobbered and attributes are
19918         updated.
19919         (branch_z_normal, branch_z_invert, branch_nz_normal,
19920         branch_nz_invert): New branch related instructions.
19921         (jump): Updated the attributes.
19922         (switch): Update to support new targets. CC_REGNUM register is
19923         clobbered and attributes are updated.
19924         (call_internal_short, call_internal_long, call_value_internal_short,
19925         call_value_internal_long): Updated the attributes.
19926         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
19927         clobbered and attributes are updated.
19928         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
19929         Update to support new targets. CC_REGNUM register is clobbered.
19930         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
19931         instructions.
19932         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
19933         are updated.
19934         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
19935         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
19936         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
19937         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
19938         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
19939         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
19940         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
19941         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
19942         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
19943         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
19944         point instructions defined for V850e2v3 target.
19945         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
19946         Add support for V850E2 targets and CC_REGNUM register is clobbered.
19947         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
19948         support for new targets.
19949         * config/v850/v850-modes.def: New file.
19950         * config/v850/v850.opt(mstrict-align): Remove.
19951         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
19952         mv850e2v3): New command line options for V850.
19953         * config.gcc: Update the newly added files.
19954         * doc/invoke.texi: Update the newly added command line options for
19955         V850 target.
19956
19957 2010-07-26  Richard Guenther  <rguenther@suse.de>
19958
19959         PR tree-optimization/45052
19960         * ipa-pure-const.c (check_stmt): Check volatileness.
19961
19962 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19963
19964         PR target/44707
19965         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
19966         * config/sparc/sparc.c: Include reload.h.
19967         (legitimize_tls_address): Rename into...
19968         (sparc_legitimize_tls_address): ...this.
19969         (legitimize_pic_address): Rename into...
19970         (sparc_legitimize_pic_address): ...this.
19971         (sparc_expand_move): Adjust to above renaming.
19972         (sparc_tls_referenced_p): Likewise.
19973         (sparc_legitimize_tls_address): Likewise.
19974         (sparc_legitimize_pic_address): Likewise.
19975         (sparc_legitimize_address): Likewise.
19976         (sparc_output_mi_thunk): Likewise.
19977         (sparc_legitimize_reload_address): New global function.  Recognize
19978         (lo_sum (high ...) ...) patterns generated by earlier passes.
19979         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
19980
19981 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
19982
19983         PR target/44484
19984         * config/sparc/predicates.md (memory_reg_operand): Delete.
19985         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
19986         (*sync_compare_and_swap): Encode the address form in the pattern.
19987         (*sync_compare_and_swapdi_v8plus): Likewise.
19988
19989 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
19990
19991         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
19992         Streamline paragraph on compatibility with the system compiler.
19993
19994 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
19995
19996         PR middle-end/45035
19997         * alias.c (true_dependence_1): Fix thinko in merge of old
19998         true_dependence and canon_true_dependence.
19999
20000 2010-07-23  Jan Hubicka  <jh@suse.cz>
20001
20002         * lto-streamer-out.c (write_symbol): Fix visibilities of external
20003         references.
20004
20005 2010-07-23  Le-Chun Wu  <lcwu@google.com>
20006
20007         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
20008         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
20009         and an unnecessary assignment.
20010         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
20011         self-assign warning.
20012         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
20013         unnecessary self-init.
20014
20015 2010-07-23  Richard Guenther  <rguenther@suse.de>
20016
20017         PR lto/43071
20018         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
20019         for -flto and -fwhopr.
20020
20021 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
20022
20023         PR target/41943
20024         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
20025         (stmp-int-hdrs): Prefix/postfix headers by include_next.
20026         * config.gcc (user_headers_inc_next_pre): New.
20027         (user_headers_inc_next_post): Likewise.
20028         (*-w64-mingw*): Use for float.h post-fixing, and for
20029         stddef.h/stdarg.h pre-fixing by include_next.
20030         * configure.ac (user_headers_inc_next_post): New.
20031         (user_headers_inc_next_pre): New.
20032         * configure: Regenerated.
20033
20034 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20035
20036         * configure.ac: Don't disable TLS on Solaris 8/9 by default
20037         Set tga_func for Solaris 2/x86 resp. SPARC.
20038         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
20039         (LIB_THREAD_LDFLAGS_SPEC): Define.
20040         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
20041         * configure: Regenerate.
20042         * config.in: Regenerate.
20043         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
20044         -pthread, -threads, LIB_TLS_SPEC with -pthread.
20045         * doc/install.texi (Specific, *-*-solaris2*): Document use of
20046         alternate thread libraries on Solaris 8.
20047         Document TLS patch requirements.
20048         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
20049         Document tls.
20050
20051         PR target/18788
20052         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
20053         -shared.
20054
20055 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
20056
20057         * tree.h (struct tree_base): Add nameless_flag bitfield.
20058         (TYPE_NAMELESS, DECL_NAMELESS): Define.
20059         * omp-low.c (create_omp_child_function, scan_omp_parallel,
20060         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
20061         DECL_ARTIFICIAL where needed.
20062         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
20063         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
20064         has DECL_NAMELESS set.
20065
20066 2010-07-23  Martin Jambor  <mjambor@suse.cz>
20067
20068         PR tree-optimization/44915
20069         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
20070         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
20071         (analyze_function): Likewise.
20072
20073 2010-07-23  Martin Jambor  <mjambor@suse.cz>
20074
20075         PR tree-optimization/44914
20076         * tree-sra.c (sra_modify_function_body): Return true if CFG was
20077         changed, add purging dead eh edges.
20078         (ipa_sra_modify_function_body): Return true if CFG was changed,
20079         simplify purging dead eh edges.
20080         (modify_function): Return true if CFG was changed.
20081         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
20082         was changed.
20083         (ipa_early_sra): Likewise.
20084
20085 2010-07-23  Jie Zhang  <jie@codesourcery.com>
20086
20087         PR target/44290
20088         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
20089         if "naked".
20090         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
20091         false if ! tree_versionable_function_p.
20092
20093 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
20094
20095         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
20096         * ipa-pure-const.c (special_builtlin_state): Remove
20097         BUILT_IN_ARGS_INFO case.
20098         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
20099         * builtins.c (expand_builtin): Likewise.
20100         (expand_builtin_args_info): Remove.
20101         * doc/tm.texi (__builtin_args_info): Remove.
20102         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
20103         * doc/tm.text.in: Likewise.
20104
20105 2010-07-23  Richard Guenther  <rguenther@suse.de>
20106
20107         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
20108         (lto_symtab_merge_decls_2): Likewise.
20109         * tree-ssa.c (useless_type_conversion_p): Likewise.
20110         * lto-streamer-in.c (input_gimple_stmt): Likewise.
20111         * gimple.c (gtc_visited2, gtc_ob2): Remove.
20112         (struct type_pair_d): Make same_p an array indexed by mode.
20113         Update comment.
20114         (lookup_type_pair): Update initialization.
20115         (struct sccs): Adjust same_p type.
20116         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
20117         Adjust.
20118         (print_gimple_types_stats): Likewise.
20119         * gimple.h (enum gtc_mode): New.
20120         (gimple_types_compatible_p): Adjust prototype.
20121
20122 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
20123
20124         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
20125         again after processing insn.
20126
20127 2010-07-23  Jie Zhang  <jie@codesourcery.com>
20128
20129         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
20130         proper words when !tree_versionable_function_p.
20131
20132 2010-07-23  Richard Guenther  <rguenther@suse.de>
20133
20134         PR tree-optimization/45037
20135         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
20136
20137 2010-07-23  Jie Zhang  <jie@codesourcery.com>
20138
20139         * doc/extend.texi: Remove IP2K from the description of naked attribute.
20140         Add MCORE instead.
20141
20142 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20143
20144         PR lto/44992
20145         * lto-opts.c (lto_write_options): Add NULL file_data argument to
20146         lto_get_section_name.
20147         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
20148         * lto-streamer-out.c (produce_asm): Likewise.
20149         (copy_function): Likewise.
20150         (produce_symtab): Likewise.
20151         (produce_asm_for_decls): Likewise.
20152         * lto-streamer.c (lto_get_section_name): Add file_data argument.
20153         Rewrite to add random postfix to LTO sections.
20154         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
20155         (lto_get_section_name): Add file_data argument to prototype.
20156
20157 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20158
20159         * lto-section-in.c (lto_section_name): Synchronize names
20160         with lto_get_section_name.
20161
20162 2010-07-10  Andi Kleen  <ak@linux.intel.com>
20163
20164         * lto-opts.c (lto_read_file_options): Check for missing section.
20165
20166 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20167
20168         * ira.c (check_allocation): Correctly handle the case where an allocno
20169         with two objects was allocated to a single reg.
20170
20171 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
20172
20173         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
20174         (is_widening_mult_p): Likewise.
20175         (convert_to_widen): Use them.
20176         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
20177         well as integer ones.
20178
20179 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
20180
20181         * alias.c (true_dependence_1): New function, merged version of
20182         true_dependence and canon_true_dependence.
20183         (true_dependence): Simplify.
20184         (canon_true_dependence): Simplify.
20185
20186 2010-07-22  Richard Henderson  <rth@redhat.com>
20187
20188         PR target/45027
20189         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
20190         of V4SFmode for the SSE saves; increase stack alignment if needed.
20191         (ix86_gimplify_va_arg): Don't increase stack alignment here.
20192
20193 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
20194
20195         PR bootstrap/45028
20196         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
20197         call cprop_find_used_regs again via note_uses.
20198
20199 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
20200
20201         * alias.c (get_alias_set): Fix formatting issues.
20202
20203 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
20204
20205         PR middle-end/44878
20206         * stmt.c (expand_value_return):  Call promote_function_mode with
20207         a for_return argument of 2 when returning by reference.
20208
20209 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
20210
20211         PR debug/45024
20212         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
20213         unit DIE if we can find the scope DIE.
20214
20215 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20216
20217         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
20218         changed.  Initialize OBJECT_SUBWORD.
20219         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
20220         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
20221         all callers changed.
20222         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
20223         (finish_allocno): Likewise.
20224         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
20225         (remove_low_level_allocnos): Likewise.
20226         (update_bad_spill_attribute): Likewise.
20227         (setup_min_max_allocno_live_range_point): Likewise.
20228         (sort_conflict_id_map): Likewise.
20229         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
20230         (ior_hard_reg_conflicts): New function.
20231         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
20232         (compress_conflict_vecs): Iterate over objects, not allocnos.
20233         (ira_add_live_range_to_object): New function.
20234         (object_range_compare_func): Renamed from allocno_range_compare_func.
20235         All callers changed.
20236         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
20237         subobjects, widen the min/max range of the lowest-order object to
20238         potentially include all other such low-order objects.
20239         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
20240         (check_allocation): Likewise.  Use more fine-grained tests for register
20241         conflicts.
20242         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
20243         allocno subobjects.
20244         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
20245         choices about which bits to set in each set.  Don't use
20246         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
20247         using the multiple sets we computed.
20248         (push_allocno_to_stack): Iterate over allocno subobjects.
20249         (all_conflicting_hard_regs_coalesced): New static function.
20250         (setup_allocno_available_regs_num): Use it.
20251         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
20252         subobjects.
20253         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
20254         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20255         by ALLOCNO_NUM_OBJECTS.
20256         (calculate_spill_cost): Likewise.
20257         (color_pass): Express if statement in a more normal way.
20258         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
20259         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
20260         (setup_slot_coalesced_allocno_live_ranges): Likewise.
20261         (allocno_reload_assign): Likewise.
20262         (ira_reassign_pseudos): Likewise.
20263         (fast_allocation): Likewise.
20264         * ira-conflicts.c (build_conflict_bit_table): Likewise.
20265         (print_allocno_conflicts): Likewise.
20266         (ira_build_conflicts): Likewise.
20267         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
20268         callers changed.  Test subword 0 of each allocno for conflicts.
20269         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
20270         callers changed.  Iterate over allocno subobjects.
20271         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
20272         * ira-int.h (struct ira_allocno): New member: num_objects.
20273         Rename object to objects and change it into an array.
20274         (ALLOCNO_OBJECT): Add new argument N.
20275         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
20276         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
20277         (ior_hard_reg_conflicts): Declare.
20278         (ira_add_live_range_to_object): Declare.
20279         (ira_allocno_object_iterator): New.
20280         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
20281         (FOR_EACH_ALLOCNO_OBJECT): New macro.
20282         * ira-lives.c (objects_live): Renamed from allocnos_live; all
20283         uses changed.
20284         (allocnos_processed): New sparseset.
20285         (make_object_born): Renamed from make_allocno_born; take an
20286         ira_object_t argument.  All callers changed.
20287         (make_object_dead): Renamed from make_allocno_dead; take an
20288         ira_object_t argument.  All callers changed.
20289         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
20290         All callers changed.
20291         (mark_pseudo_regno_live): Iterate over allocno subobjects.
20292         (mark_pseudo_regno_dead): Likewise.
20293         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
20294         functions.
20295         (mark_ref_live): Detect subword accesses and call
20296         mark_pseudo_regno_subword_live as appropriate.
20297         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
20298         (process_bb_nodes_live): Deal with object-related updates first; set
20299         and test bits in allocnos_processed to avoid computing allocno
20300         statistics more than once.
20301         (create_start_finish_chains): Iterate over objects, not allocnos.
20302         (print_object_live_ranges): New function.
20303         (print_allocno_live_ranges): Use it.
20304         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
20305         and objects_live.
20306
20307 2010-07-22  Richard Guenther  <rguenther@suse.de>
20308
20309         PR lto/42451
20310         * gimple.c (gtc_next_dfs_num): New global.
20311         (struct sccs): Make value a union, add integer same_p member.
20312         (gtc_visit): New function.
20313         (gimple_types_compatible_p_1): New function, split out from ...
20314         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
20315         (iterative_hash_gimple_type): Adjust for sccs change.
20316
20317 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20318
20319         PR tree-optimization/44891
20320         * tree-sra.c: Include gimple-pretty-print.h.
20321         (replace_uses_with_default_def_ssa_name): Renamed to
20322         get_repl_default_def_ssa_name, return the new SSA name instead of
20323         replacing the old one.
20324         (sra_modify_assign): Dump a message when removing a load, if the LHS
20325         is an SSA_NAME, do not do any propagation, just set the RHS to a
20326         default definition SSA NAME, type convert if necessary.
20327         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
20328
20329 2010-07-22  Richard Guenther  <rguenther@suse.de>
20330
20331         PR tree-optimization/45017
20332         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
20333         TYPE_PRECISION of integral types in addition to size.
20334
20335 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
20336
20337         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
20338         when no C library is specified.
20339
20340 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20341
20342         * ipa-prop.h (struct ipa_node_params): Updated comment.
20343         (struct ipa_edge_args): Likewise.
20344         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
20345
20346 2010-07-22  Martin Jambor  <mjambor@suse.cz>
20347
20348         * cgraphunit.c (verify_edge_count_and_frequency): New function.
20349         (verify_cgraph_node): Verify frequencies of indirect edges.
20350         * tree-inline.c (tree_function_versioning): Update frequencies of
20351         indirect edges.
20352
20353 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20354
20355         PR target/43698
20356         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
20357         Set *arm_rev to be predicable.
20358
20359 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20360
20361         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
20362         (LINK_COMMAND_SPEC_A): New.
20363         (DSYMUTIL): New.
20364         (DSYMUTIL_SPEC): New.
20365         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
20366         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
20367
20368 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
20369
20370         * calls.c (load_register_parameters): Move check for zero
20371         sized items so that only the call to
20372         mem_overlaps_already_clobbered_arg_p () is protected.
20373
20374 2010-07-22  Jan Hubicka  <jh@suse.cz>
20375
20376         * ipa-pure-const.c (varying_state): Break out from ...
20377         (get_function_state): ... here; always return varying_state
20378         when state would be NULL otherwise.
20379         (remove_node_data): Do not free varying state.
20380
20381 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
20382
20383         PR bootstrap/44970
20384         PR middle-end/45009
20385         * postreload.c: Include "target.h".
20386         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
20387         into account.
20388         (fixup_debug_insns): Don't copy the rtx.
20389         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
20390         Don't copy when replacing.  Call fixup_debug_insns in the case where
20391         we merged one add with another.
20392         (reload_combine_recognize_pattern): Fail if there aren't any uses.
20393         Try harder to determine whether we're picking a valid index register.
20394         Don't set store_ruid for an insn we're going to scan in the
20395         next iteration.
20396         (reload_combine): Remove unused code.
20397         (reload_combine_note_use): When updating use information for
20398         an old insn, ignore a use that occurs after store_ruid.
20399         * Makefile.in (postreload.o): Update dependencies.
20400
20401         * function.c (record_hard_reg_sets): Restrict the previous change
20402         to cases where the incoming nominal mode is the same as the
20403         incoming promoted mode and everything happens in MODE_INT.
20404
20405 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20406
20407         PR debug/45015
20408         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
20409         ASM_OPERANDS_OUTPUT_IDX.
20410         (adjust_insn): For inline asm with multiple sets ensure first
20411         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
20412         the insn.
20413
20414 2010-07-21  Richard Henderson  <rth@redhat.com>
20415
20416         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
20417         comparison for avoiding xmm register saves.  Emit the xmm register
20418         saves explicitly.
20419         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
20420         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
20421         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
20422         Remove patterns and the associated splitters.
20423
20424 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
20425
20426         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
20427         and imagine parts of a complex, so that they can have the same
20428         base and fall into the same group.
20429
20430 2010-07-21  Richard Guenther  <rguenther@suse.de>
20431
20432         PR lto/45018
20433         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
20434         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
20435         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
20436
20437 2010-07-21  Martin Jambor  <mjambor@suse.cz>
20438
20439         PR tree-optimization/44900
20440         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
20441         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
20442
20443 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
20444
20445         PR middle-end/44738
20446         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
20447
20448 2010-07-21  Richard Guenther  <rguenther@suse.de>
20449
20450         PR middle-end/45013
20451         * tree-ssa.c (useless_type_conversion_p): Dispatch to
20452         gimple_types_compatible_p only when in lto.
20453         * gimple.c (gimple_types_compatible_p): Use canonical types
20454         to speed up comparison.
20455
20456 2010-07-21  Richard Guenther  <rguenther@suse.de>
20457
20458         * tree-flow.h (referenced_var): Move define ...
20459         * tree-flow-inline.h (referenced_var): ... here as an inline
20460         function.  Assert here ...
20461         * tree-dfa.c (referenced_var_lookup): ... instead of here.
20462         * tree-ssa.c (maybe_optimize_var): Check if the variable
20463         is in referenced vars.
20464         (execute_update_addresses_taken): Remove old broken check.
20465         * gimple-pretty-print.c (pp_points_to_solution): Use
20466         referenced_var_lookup.
20467         * tree-into-ssa.c (dump_decl_set): Likewise.
20468
20469 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
20470
20471         PR debug/45003
20472         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
20473         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
20474         ZERO_EXTEND here.
20475
20476 2010-07-20  Richard Henderson  <rth@redhat.com>
20477
20478         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
20479
20480 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20481
20482         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
20483         computing the sum of the stack pointer and a large constant.
20484         * config/arm/constraints.md (M): Remove superfluous parentheses.
20485         (Pc): New constraint.
20486
20487 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20488
20489         PR debug/45006
20490         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
20491         operand's type if exp is tcc_unary class tree.
20492
20493 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20494
20495         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
20496         Reverse sense of if_then_else condition.
20497
20498 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
20499
20500         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
20501         * config/rs6000/rs6000.c (rs6000_override_options): Set
20502         rs6000_block_move_inline_limit appropriately.
20503         (expand_block_move): Use rs6000_block_move_inline_limit.
20504         * doc/invoke.texi (mblock-move-inline-limit): Document.
20505
20506 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
20507
20508         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
20509         FROM and TO.  All callers changed.  Don't look for tracked uses,
20510         just scan the RTL for DEBUG_INSNs and substitute.
20511         (reload_combine_recognize_pattern): Call fixup_debug_insns.
20512         (reload_combine): Ignore DEBUG_INSNs.
20513
20514 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
20515
20516         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
20517         depth to 8 from 5.
20518
20519         PR debug/45003
20520         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
20521         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
20522         instead of the result's type.
20523
20524 2010-07-20  Richard Guenther  <rguenther@suse.de>
20525
20526         PR tree-optimization/44977
20527         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
20528         SSA form.
20529
20530 2010-07-20  Richard Guenther  <rguenther@suse.de>
20531
20532         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
20533         (lto_symtab_merge_decls_2): Likewise.
20534         * gimple.h (gimple_types_compatible_p): Declare.
20535         * gimple.c (gimple_queue_type_fixup): Remove.
20536         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
20537         (gimple_compatible_complete_and_incomplete_type_p): New function.
20538         (gimple_types_compatible_p): Adjust.
20539         (gimple_register_type): Remove type fixup code.
20540         (print_gimple_types_stats): Adjust.
20541         (free_gimple_type_tables): Likewise.
20542         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
20543         * tree-ssa.c (useless_type_conversion_p): Likewise.
20544
20545 2010-07-20  Richard Guenther  <rguenther@suse.de>
20546
20547         PR middle-end/44971
20548         PR middle-end/44988
20549         * tree-ssa.c (maybe_optimize_var): New function split out from ...
20550         (execute_update_addresses_taken): ... here.
20551         (non_rewritable_mem_ref_base): Likewise.
20552         (execute_update_addresses_taken): Do not iterate over all referenced
20553         vars but just all local decls and parms.
20554         Properly check call and asm arguments and rewrite call arguments.
20555
20556 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
20557
20558         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
20559         to top level.
20560         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
20561         definitions ...
20562         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
20563         New macro.
20564         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
20565
20566 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
20567
20568         * gengtype.c (start_root_entry): New function, split out from
20569         write_root.  Check whether V is null and raise an error if so.
20570         (write_field_root): Check for V being null.  Don't raise an error here;
20571         set V to null instead.
20572         (write_root): Update comment above function.  Use start_root_entry.
20573
20574 2010-07-19  Xinliang David Li  <davidxl@google.com>
20575
20576         PR testsuite/44932
20577         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
20578         def edges.
20579         (find_uninit_use): Add dump.
20580         (is_use_properly_guarded): Ditto.
20581         (warn_uninitialized_phi): Ditto.
20582         (execute_late_warn_uninitialized): Ditto.
20583
20584 2010-07-19  Richard Guenther  <rguenther@suse.de>
20585
20586         PR middle-end/44941
20587         * expr.c (emit_block_move_hints): Move zero size check first.
20588         Move asserts to more useful places.
20589         * calls.c (load_register_parameters): Check for zero size.
20590
20591 2010-07-19  Richard Henderson  <rth@redhat.com>
20592
20593         * tree-optimize.c (execute_all_early_local_passes): New.  Change
20594         cgraph_state here ...
20595         (execute_early_local_optimizations): ... not here.  Remove.
20596         (pass_early_local_passes, pass_all_early_optimizations): Update.
20597
20598 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
20599
20600         * postreload.c (reload_combine_closest_single_use): Ignore the
20601         number of uses for DEBUG_INSNs.
20602         (fixup_debug_insns): New static function.
20603         (reload_combine_recognize_const_pattern): Use it.  Don't let the
20604         main loop be affected by DEBUG_INSNs.
20605         Really disallow moving adds past a jump insn.
20606         (reload_combine_recognize_pattern): Don't update use_ruid here.
20607         (reload_combine_note_use): Do it here.
20608         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
20609
20610 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
20611
20612         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
20613         of a loop.
20614         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
20615
20616 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
20617
20618         * config/i386/darwin.h: Define darwin_emit_branch_islands.
20619         (TARGET_MACHO_BRANCH_ISLANDS): New.
20620         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
20621         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
20622         default value.
20623         * config/i386/i386.c (output_pic_addr_const): Do not emit
20624         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
20625         (x86_output_mi_thunk): Adjust symbol creation.
20626         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
20627         Remove out of date comment.
20628         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
20629         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20630         (DARWIN_GENERATE_ISLANDS): Ditto.
20631         (output_call):  Do not emit branch islands unless
20632         darwin_emit_branch_islands is set.
20633         * config/darwin.c: Declare darwin_emit_branch_islands.
20634         (machopic_indirect_data_reference): Do not emit unless
20635         darwin_emit_branch_islands is set.
20636         (darwin_override_options): Set darwin_emit_branch_islands
20637         where it is needed.
20638         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
20639
20640 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20641
20642         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20643         sse_runtime, sse2_runtime.
20644
20645 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
20646
20647         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
20648         low half of a single-register SCmode return value before ORing
20649         it with the high half.
20650         * config/mips/mips16.S (MERGE_GPRf): Likewise.
20651
20652 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20653
20654         PR target/44805
20655         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
20656         on all targets.
20657
20658 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
20659
20660         PR target/42235
20661         * postreload.c (reload_cse_move2add): Return bool, true if anything.
20662         changed.  All callers changed.
20663         (move2add_use_add2_insn): Likewise.
20664         (move2add_use_add3_insn): Likewise.
20665         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
20666         reload_combine.
20667         (RELOAD_COMBINE_MAX_USES): Bump to 16.
20668         (last_jump_ruid): New static variable.
20669         (struct reg_use): New members CONTAINING_MEM and RUID.
20670         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
20671         (reload_combine_split_one_ruid, reload_combine_split_ruids,
20672         reload_combine_purge_insn_uses, reload_combine_closest_single_use
20673         reload_combine_purge_reg_uses_after_ruid,
20674         reload_combine_recognize_const_pattern): New static functions.
20675         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
20676         is true for our reg and that we have available index regs.
20677         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
20678         callers changed.  Use them to initialize fields in struct reg_use.
20679         (reload_combine): Initialize last_jump_ruid.  Be careful when to
20680         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
20681         Call reload_combine_recognize_const_pattern.
20682         (reload_combine_note_store): Update REAL_STORE_RUID field.
20683
20684 2010-07-16  Jason Merrill  <jason@redhat.com>
20685
20686         * Makefile.in (opts-common.o): Depend on options.h.
20687
20688 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20689
20690         * tree.c (build_common_builtin_nodes): Use build_function_type_list
20691         instead of build_function_type.
20692         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
20693         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
20694
20695 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
20696
20697         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
20698         do all the work.
20699         (rs6000_emit_int_cmove): Use function pointers for insn generation.
20700         Don't force values into registers unnecessarily.
20701         (output_isel): Assert that we're not given conditions we can't handle.
20702         Delete corresponding code.
20703         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
20704         scc_comparison_operator constraint.  Permit 0 for the consequent
20705         operand.  Permit any GPR for the alternative operand.
20706         (isel_unsigned_<mode>): Likewise.
20707
20708 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
20709
20710         PR target/44942
20711         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
20712         argument to const_tree.
20713         * config/i386/i386.c (function_arg_advance): If padding needs to be
20714         inserted before argument, increment cum->words by number of padding
20715         words as well.
20716         (contains_aligned_value_p): Change argument to const_tree.
20717         (ix86_function_arg_boundary): Change second argument to const_tree.
20718
20719 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
20720
20721         PR target/42235
20722         * function.c (record_hard_reg_sets): New static function.
20723         (assign_parm_setup_reg): If an optab for extending exists and the
20724         generated code clobbbers no hard regs, emit the insn directly and
20725         create a REG_EQUIV note.
20726
20727 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20728
20729         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
20730         TREE_CHAIN.
20731         * c-typeck.c (push_init_level): Likewise.
20732         (process_init_element): Likewise.
20733
20734 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
20735
20736         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
20737         (integer_three_node): Add.
20738         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
20739         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
20740         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
20741         of call build_int_cst.
20742         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
20743         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
20744         (find_interesting_uses_address): Ditto.
20745         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
20746         * tree-eh.c (lower_eh_constructs_2): Ditto.
20747         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
20748         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
20749         * expmed.c (expand_divmod): Ditto.
20750         * tree-mudflap.c (mx_register_decls): Ditto.
20751         * varasm.c (array_size_for_constructor): Ditto.
20752         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
20753         * c-parser.c (c_parser_postfix_expression): Ditto.
20754
20755 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
20756
20757         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
20758         New static variables.
20759         (reload_combine_recognize_pattern): New static function, broken out
20760         of reload_combine.
20761         (reload_combine): Use it.  Only initialize first_index_reg and
20762         last_index_reg once.
20763
20764 2010-07-15  Richard Henderson  <rth@redhat.com>
20765
20766         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
20767         when done.
20768
20769 2010-07-15  Jan Hubicka  <jh@suse.cz>
20770
20771         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
20772         comdats for broken gold.
20773         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
20774
20775 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20776
20777         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
20778
20779 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
20780
20781         * tree.h (DECL_CHAIN): Define.
20782         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
20783         * c-decl.c: Likewise.
20784         * c-parser.c: Likewise.
20785         * c-typeck.c: Likewise.
20786         * cfgexpand.c: Likewise.
20787         * cgraph.c: Likewise.
20788         * cgraphunit.c: Likewise.
20789         * combine.c: Likewise.
20790         * config/alpha/alpha.c: Likewise.
20791         * config/arm/arm.c: Likewise.
20792         * config/frv/frv.c: Likewise.
20793         * config/i386/i386.c: Likewise.
20794         * config/i386/winnt-cxx.c: Likewise.
20795         * config/ia64/ia64.c: Likewise.
20796         * config/iq2000/iq2000.c: Likewise.
20797         * config/mep/mep.c: Likewise.
20798         * config/mips/mips.c: Likewise.
20799         * config/pa/som.h: Likewise.
20800         * config/rs6000/rs6000.c: Likewise.
20801         * config/s390/s390.c: Likewise.
20802         * config/sh/sh.c: Likewise.
20803         * config/sh/symbian-cxx.c: Likewise.
20804         * config/sparc/sparc.c: Likewise.
20805         * config/spu/spu.c: Likewise.
20806         * config/stormy16/stormy16.c: Likewise.
20807         * config/vxworks.c: Likewise.
20808         * config/xtensa/xtensa.c: Likewise.
20809         * coverage.c: Likewise.
20810         * dbxout.c: Likewise.
20811         * dwarf2out.c: Likewise.
20812         * emit-rtl.c: Likewise.
20813         * expr.c: Likewise.
20814         * function.c: Likewise.
20815         * gimple-low.c: Likewise.
20816         * gimple-pretty-print.c: Likewise.
20817         * gimplify.c: Likewise.
20818         * integrate.c: Likewise.
20819         * ipa-inline.c: Likewise.
20820         * ipa-prop.c: Likewise.
20821         * ipa-split.c: Likewise.
20822         * ipa-struct-reorg.c: Likewise.
20823         * ipa-type-escape.c: Likewise.
20824         * langhooks.c: Likewise.
20825         * lto-cgraph.c: Likewise.
20826         * omp-low.c: Likewise.
20827         * stor-layout.c: Likewise.
20828         * tree-cfg.c: Likewise.
20829         * tree-complex.c: Likewise.
20830         * tree-dfa.c: Likewise.
20831         * tree-dump.c: Likewise.
20832         * tree-inline.c: Likewise.
20833         * tree-mudflap.c: Likewise.
20834         * tree-nested.c: Likewise.
20835         * tree-object-size.c: Likewise.
20836         * tree-pretty-print.c: Likewise.
20837         * tree-sra.c: Likewise.
20838         * tree-ssa-live.c: Likewise.
20839         * tree-ssa-loop-niter.c: Likewise.
20840         * tree-ssa-math-opts.c: Likewise.
20841         * tree-ssa-reassoc.c: Likewise.
20842         * tree-ssa-sccvn.c: Likewise.
20843         * tree-ssa-structalias.c: Likewise.
20844         * tree-tailcall.c: Likewise.
20845         * tree-vrp.c: Likewise.
20846         * tree.c: Likewise.
20847         * var-tracking.c: Likewise.
20848         * varasm.c: Likewise.
20849
20850 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20851
20852         PR target/44877
20853         * config/spu/spu.c (spu_expand_builtin_1): Allow references
20854         (as well as pointers) as argument to mask_for_load builtins.
20855
20856 2010-07-15  Richard Guenther  <rguenther@suse.de>
20857
20858         PR tree-optimization/44946
20859         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
20860         with accessing only padding properly.
20861
20862 2010-07-15  Jan Hubicka  <jh@suse.cz>
20863
20864         * ipa.c (function_and_variable_visibility): Variables marked as used
20865         should not be localized.
20866
20867 2010-07-15  Jan Hubicka  <jh@suse.cz>
20868
20869         * cgraph.c: Include lto-streamer.h
20870         (change_decl_assembler_name): Work when assembler name hash is at place.
20871         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
20872         be sure to rename it to avoid name clash.
20873         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
20874         Localize hidden symbols only when locally defined.
20875
20876 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
20877
20878         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
20879
20880 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
20881             Kevin F. Quinn  <kevquinn@gentoo.org>
20882
20883         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
20884         * common.opt: Add -Wtrampolines.
20885         * doc/invoke.texi: Add -Wtrampolines.
20886
20887 2010-07-15  Jie Zhang  <jie@codesourcery.com>
20888
20889         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
20890         cortex_a8_issue_ls.
20891
20892 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
20893
20894         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
20895         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
20896
20897 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20898
20899         * config/spu/spu.c (reg_names): Remove prototype.
20900         (call_used_regs): Likewise.
20901
20902 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
20903
20904         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
20905         "unused" with attribute "used".
20906         (__JCR_END__): Likewise.
20907         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
20908         "used" attribute.
20909         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
20910
20911 2010-07-14  Richard Guenther  <rguenther@suse.de>
20912
20913         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
20914         (maybe_fixup_decls): Likewise.
20915         (input_gimple_stmt): Do not fixup anything.
20916         * lto-streamer-out.c (output_gimple_stmt): Make sure all
20917         non-automatic variable uses are wrapped inside a MEM_REF.
20918
20919 2010-07-14  Richard Henderson  <rth@redhat.com>
20920
20921         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
20922         for functions.
20923         * varasm.c (assemble_variable): Remove early exit for functions;
20924         assert that we're given a variable.
20925
20926 2010-07-14  Jie Zhang  <jie@codesourcery.com>
20927
20928         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
20929         cortex_a8_default when neon_type is not none.
20930
20931 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20932
20933         * lower-subreg.c (subreg_context): New static bitmap.
20934         (decompose_multiword_subregs): Allocate and free it.
20935         (find_decomposable_subregs): Set a bit in it for a register that
20936         occurs in a subreg that changes mode but not size.
20937         (can_decompose_p): Test it instead of non_decomposable_context.
20938
20939 2010-07-14  Richard Guenther  <rguenther@suse.de>
20940
20941         PR tree-optimization/44824
20942         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
20943         is_gimple_mem_ref_addr.
20944         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
20945         non-decl_address_invariant_p addresses.
20946
20947 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20948
20949         * reload.c (find_reloads): Revert code to penalize small register
20950         classes that was brought in with the IRA merge.
20951
20952 2010-07-14  Richard Guenther  <rguenther@suse.de>
20953
20954         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
20955         as base of ARRAY_REFs.
20956
20957 2010-07-14  Richard Guenther  <rguenther@suse.de>
20958
20959         PR middle-end/44930
20960         * tree-pretty-print.c (do_niy): Do not print a newline.
20961
20962 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
20963
20964         * ira-int.h (struct ira_object): New.
20965         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
20966         (struct ira_allocno): Remove members min, max,
20967         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
20968         conflict_allocnos_num and conflict_vec_p.  Add new member object.
20969         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
20970         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
20971         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
20972         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
20973         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
20974         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
20975         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
20976         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
20977         an ira_object_t rather than ira_allocno_t.  All uses changed.
20978         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
20979         contains a vector of ira_object_t; all uses changed.
20980         (ira_objects_num): Declare variable.
20981         (ira_create_allocno_object): Declare function.
20982         (ira_conflict_vector_profitable_p): Adjust prototype.
20983         (ira_allocate_conflict_vec): Renamed from
20984         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
20985         (ira_allocate_object_conflicts): Renamed from
20986         ira_allocate_allocno_conflicts; first arg now ira_object_t.
20987         (struct ira_object_iterator): New.
20988         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
20989         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
20990         to conflict_vec_p.  All uses changed.
20991         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
20992         Changed to take into account that conflicts are now tracked for
20993         objects.
20994         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
20995         Args changed to accept ira_object_t.  All uses changed.
20996         (allocnos_conflict_p): New static function.
20997         (collected_conflict_objects): Renamed from collected_allocno_objects;
20998         now a vector of ira_object_t.  All uses changed.
20999         (build_conflict_bit_table): Changed to take into account that
21000         conflicts are now tracked for objects.
21001         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
21002         (print_allocno_conflicts, ira_build_conflicts): Likewise.
21003         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
21004         setup_allocno_left_conflicts_size, allocno_reload_assign,
21005         fast_allocation): Likewise.
21006         * ira-lives.c (make_hard_regno_born, make_allocno_born)
21007         process_single_reg_class_operands, process_bb_node_lives): Likewise.
21008         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
21009         Likewise.
21010         * ira-build.c (ira_objects_num): New variable.
21011         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
21012         contains a vector of ira_object_t; all uses changed.
21013         (ira_object_id_map_vec): Corresponding change.
21014         (object_pool): New static variable.
21015         (initiate_allocnos): Initialize it.
21016         (finish_allocnos): Free it.
21017         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
21018         New functions.
21019         (ira_create_allocno): Don't set members that were removed.
21020         (ira_set_allocno_cover_class): Don't change conflict hard regs.
21021         (merge_hard_reg_conflicts): Changed to take into account that
21022         conflicts are now tracked for objects.
21023         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
21024         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
21025         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
21026         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
21027         setup_min_max_conflict_allocno_ids, ):  Likewise.
21028         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
21029         to ira_object_t; all callers changed.
21030         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
21031         to ira_object_t, all callers changed.
21032         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
21033         to ira_object_t, all callers changed.
21034         (conflict_check, curr_conflict_check_tick): Renamed from
21035         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
21036         changed.
21037         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
21038         arg changed to ira_object_t, all callers changed.
21039         (create_cap_allocno): Call ira_create_allocno_object.
21040         (finish_allocno): Free the corresponding object.
21041         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
21042         callers changed.  Adjusted for dealing with objects.
21043         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
21044         dealing with objects.
21045         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
21046
21047         * ira-int.h (struct live_range): Rename allocno member to object
21048         and change type to ira_object_t.
21049         (struct ira_object): New member live_ranges.
21050         (struct ira_allocno): Remove member live_ranges.
21051         (ALLOCNO_LIVE_RANGES): Remove.
21052         (OBJECT_LIVE_RANGES): New macro.
21053         (ira_create_live_range, ira_copy_live_range_list,
21054         ira_merge_live_range_list, ira_live_ranges_intersect_p,
21055         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
21056         * ira-build.c (ira_create_object): Initialize live ranges here.
21057         (ira_create_allocno): Not here.
21058         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
21059         changed to ira_object_t, all callers changed.
21060         (copy_live_range): Rename from copy_allocno_live_range, all callers
21061         changed.
21062         (ira_copy_live_range_list): Rename from
21063         ira_copy_allocno_live_range_list, all callers changed.
21064         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
21065         all callers changed.
21066         (ira_live_ranges_intersect_p): Rename from
21067         ira_allocno_live_ranges_intersect_p, all callers changed.
21068         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
21069         callers changed.
21070         (ira_finish_live_range_list): Rename from
21071         ira_finish_allocno_live_range_list, all callers changed.
21072         (change_object_in_range_list): Rename from change_allocno_in_range_list,
21073         last arg changed to ira_object_t, all callers changed.
21074         (finish_allocno): Changed to expect live ranges in the allocno's object.
21075         (move_allocno_live_ranges, copy_allocno_live_ranges,
21076         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
21077         ira_flattening, ira_build): Likewise.
21078         * ira-color.c (allocnos_have_intersected_live_ranges_p,
21079         slot_coalesced_allocno_live_ranges_intersect,
21080         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
21081         * ira-conflicts.c (build_conflict_bit_table): Likewise.
21082         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
21083         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
21084         make_allocno_dead, create_start_finish_chains,
21085         remove_some_program_points_and_update_live_ranges,
21086         ira_debug_live_range_list): Likewise.
21087
21088         * ira-int.h (ira_object_conflict_iterator): Rename from
21089         ira_allocno_conflict_iterator.
21090         (ira_object_conflict_iter_init): Rename from
21091         ira_allocno_conflict_iter_init, second arg changed to
21092         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
21093         FOR_EACH_ALLOCNO_CONFLICT.
21094         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
21095         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
21096         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
21097         * ira-conflicts.c (print_allocno_conflicts): Likewise.
21098
21099 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
21100
21101         PR other/44874
21102         * tree-dump.c (dump_options): Add enumerate_locals entry.
21103         Add TDF_NOID exclusion to all entry.
21104         * tree-dump.h (dump_enumerated_decls): Declare.
21105         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
21106         Don't display type uid.
21107         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
21108         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
21109         * tree-ssa-live.c: Include gimple.h.
21110         (numbered_tree_d): New struct.
21111         (numbered_tree): New typedef.
21112         (DEF_VEC_O (numbered_tree): New.
21113         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
21114         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
21115         (dump_enumerated_decls): Likewise.
21116         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
21117         debug info and flag_dump_final_insns, call dump_enumerated_decls.
21118         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
21119         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
21120
21121 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
21122
21123         * expmed.h (MAX_BITS_PER_WORD): Move to...
21124         * defaults.h (MAX_BITS_PER_WORD): ...here.
21125
21126 2010-07-13  DJ Delorie  <dj@redhat.com>
21127
21128         * config/h8300/h8300.c (h8300_init_once): Default to
21129         -fstrict_volatile_bitfields.
21130
21131         * config/sh/sh.c (sh_override_options): Default to
21132         -fstrict_volatile_bitfields.
21133
21134         * config/rx/rx.c (rx_option_override): New.
21135
21136         * config/m32c/m32c.c (m32c_override_options): Default to
21137         -fstrict_volatile_bitfields.
21138
21139 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
21140
21141         * tree.h (build_function_call_expr): Delete.
21142         (build_call_expr_loc_array): New function.
21143         (build_call_expr_loc_vec): New function.
21144         * tree-flow.h (struct omp_region): Change type of ws_args field
21145         to a VEC.
21146         * builtins.c (build_function_call_expr): Delete.
21147         (build_call_expr_loc_array): New function.
21148         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
21149         (build_call_expr): Likewise.
21150         (build_call_expr_loc_vec): New function.
21151         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
21152         build_function_call_expr.
21153         * expr.c (emutls_var_address): Likewise.
21154         * varasm.c (emutls_common_1): Likewise.
21155         * omp-low.c (expand_omp_atomic_mutex): Likewise.
21156         (expand_omp_taskreg): Adjust for new type of region->ws_args.
21157         (get_ws_args_for): Return a VEC instead of a tree.
21158         (expand_parallel_call): Call build_call_expr_loc_vec instead of
21159         build_function_call_expr.
21160         * stor-layout.c (self_referential_size): Likewise.
21161
21162 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
21163
21164         PR testsuite/44701
21165         * recog.c (constrain_operands): Allow side-effects in memory
21166         operands if either < or > constraint is used, rather than if
21167         both < and > is used.
21168
21169 2010-07-13  Richard Guenther  <rguenther@suse.de>
21170
21171         PR middle-end/44911
21172         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
21173         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
21174         without name.
21175
21176 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
21177
21178         PR target/44761
21179         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
21180         to variable emited.
21181         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
21182         * config/sh/sh.md (symGOT_load): Likewise.
21183         (symDTPOFF2reg): Likewise.
21184         (symTPOFF2reg): Likewise.
21185
21186 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21187
21188         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
21189         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
21190
21191 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21192
21193         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
21194         explanation.
21195         Find ucontext_t * on Solaris 11.
21196         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
21197         Handle new Solaris 11 __sighndlr patterns.
21198
21199 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
21200
21201         PR debug/44901
21202         * vec.h (VEC_block_remove): Fix comment.
21203         * tree-ssa-live.c (remove_unused_locals): Don't use
21204         VEC_unordered_remove on local_decls, instead replace a single
21205         vector element in each iteration if at least one element had
21206         to be removed and VEC_truncate at the end.
21207         * omp-low.c (expand_omp_taskreg): Likewise.
21208
21209 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21210
21211         * c-decl.c (finish_function): Fix typo in comment.
21212
21213 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
21214
21215         PR bootstrap/44921
21216         * postreload.c (move2add_use_add3_insn): Silence gcc warning
21217         on min_regno.
21218
21219 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
21220
21221         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
21222         (simplify_stmt_using_ranges): Use it.
21223
21224 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21225
21226         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
21227         member.  Do not mark as GTY(()).
21228         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
21229         (spu_builtin_decls): New static variable.
21230         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
21231         (spu_init_builtins): Likewise.
21232         (spu_builtin_mul_widen_even): Likewise.
21233         (spu_builtin_mul_widen_odd): Likewise.
21234         (spu_builtin_mask_for_load): Likewise.
21235         (spu_builtin_vec_perm): Likewise.
21236         * config/spu/spu-c.c: Include "target.h".
21237         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
21238         of using spu_builtins[].fndecl.
21239
21240 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21241
21242         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
21243         imply -minterlink-mips16.
21244
21245 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21246
21247         * config/mips/mips.h (mips16_globals): Declare.
21248         (SWITCHABLE_TARGET): Define.
21249         * config/mips/mips.c: Include target-globals.h.
21250         (mips16_globals): New variable.
21251         (mips_set_mips16_mode): Use save_target_globals and
21252         restore_target_globals instead of target_reinit.
21253
21254 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21255
21256         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
21257         to say that the function can be called more than once.
21258         * target-globals.c (save_target_globals): Call init_reg_sets.
21259
21260 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21261
21262         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
21263         * bb-reorder.h: New file.
21264         * bb-reorder.c (default_target_bb_reorder): New variable.
21265         (this_target_bb_reorder): New conditional variable.
21266         (uncond_jump_length): Redefine as a macro.
21267         * target-globals.h (this_target_bb_reorder): Declare.
21268         (target_globals): Add a bb_reorder field.
21269         (restore_target_globals): Copy the bb_reorder field to
21270         this_target_bb-reorder.
21271         * target-globals.c: Include bb-reorder.h.
21272         (default_target_globals): Initialize the bb_reorder field.
21273         (save_target_globals): Likewise.
21274
21275 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21276
21277         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
21278         * gcse.h: New file.
21279         * gcse.c: Include gcse.h.
21280         (default_target_gcse): New variable.
21281         (this_target_gcse): New conditional variable.
21282         (can_copy): Redefine as a macro.
21283         (can_copy_init_p): New macro.
21284         (can_copy_p): Remove can_copy_init_p.
21285         * target-globals.h (this_target_gcse): Declare.
21286         (target_globals): Add a gcse field.
21287         (restore_target_globals): Copy the gcse field to this_target_gcse.
21288         * target-globals.c: Include gcse.h.
21289         (default_target_globals): Initialize the gcse field.
21290         (save_target_globals): Likewise.
21291
21292 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21293
21294         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
21295         and x_ira_prohibited_mode_move_regs_initialized_p.
21296         (ira_prohibited_mode_move_regs): Redefine as a macro.
21297         * ira.c (ira_prohibited_mode_move_regs): Delete.
21298         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
21299
21300 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21301
21302         * reload.h (target_reload): Add x_cached_reg_save_code and
21303         x_cached_reg_restore_code.
21304         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
21305         Redefine as macros.
21306
21307 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21308
21309         * Makefile.in (target-globals.o): Depend on builtins.h.
21310         * builtins.h: New file.
21311         * builtins.c: Include builtins.h.
21312         (default_target_builtins): New variable.
21313         (this_target_builtins): New conditional variable.
21314         (apply_args_mode, apply_result_mode): Redefine as macros.
21315         * target-globals.h (this_target_builtins): Declare.
21316         (target_globals): Add a builtins field.
21317         (restore_target_globals): Copy the builtins field to
21318         this_target_builtins.
21319         * target-globals.c: Include builtins.h.
21320         (default_target_globals): Initialize the builtins field.
21321         (save_target_globals): Likewise.
21322
21323 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21324
21325         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
21326         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
21327         from expmed.c.
21328         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
21329         (alg_hash, alg_hash_used_p): New macros.
21330         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
21331         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
21332         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
21333
21334 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21335
21336         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
21337         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
21338         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
21339         (this_op_costs, costs_classes): Redefine as macros.
21340         (record_reg_classes): Don't take op_costs as a parameter.
21341         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
21342         (scan_one_insn): Update call to record_operand_costs.
21343
21344 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21345
21346         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
21347         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
21348         (target_ira_int): New structure.
21349         (default_target_ira_int): Declare.
21350         (this_target_ira_int): Declare as a variable or define as a macro.
21351         (ira_reg_mode_hard_regset, ira_register_move_cost)
21352         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
21353         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
21354         (prohibited_class_mode_regs, ira_important_classes_num)
21355         (ira_important_classes, ira_reg_class_intersect)
21356         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
21357         (ira_reg_class_union): Redefine as macros.
21358         * ira.h (target_ira): New structure.
21359         (default_target_ira): Declare.
21360         (this_target_ira): Declare as a variable or define as a macro.
21361         (ira_available_class_regs, ira_hard_regno_cover_class)
21362         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
21363         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
21364         (ira_class_hard_regs_num): Redefine as macros.
21365         * ira.c (default_target_ira, default_target_ira_int): New variables.
21366         (this_target_ira, this_target_ira_int): New conditional variables.
21367         (ira_reg_mode_hard_regset, ira_memory_move_cost)
21368         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
21369         (ira_class_subset_p): Delete.
21370         (no_unit_alloc_regs): Redefine as a macro.
21371         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
21372         (ira_class_hard_regs_num, ira_class_hard_reg_index)
21373         (ira_available_class_regs): Delete.
21374         (alloc_reg_class_subclasses): Redefine as a macro.
21375         (ira_reg_class_cover_size, ira_reg_class_cover)
21376         (ira_important_classes_num, ira_important_classes)
21377         (ira_important_class_nums, ira_class_translate): Delete.
21378         (cover_class_order): Document the variable's lifetime.
21379         (reorder_important_classes): Don't set ira_important_class_nums.
21380         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
21381         (ira_reg_class_super_classes, ira_reg_class_union)
21382         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
21383         Delete.
21384         (setup_reg_class_nregs): Don't set ira_max_regs.
21385         (prohibited_class_mode_regs): Delete.
21386         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
21387         (target_globals): Add ira and ira_int fields.
21388         (restore_target_globals): Copy the ira field to this_target_ira
21389         and the ira_int field to this_target_ira_int.
21390         * target-globals.c: Include ira-int.h.
21391         (default_target_globals): Initialize the ira and ira_int fields.
21392         (save_target_globals): Likewise.
21393
21394 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21395
21396         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
21397         * cfgloop.h (target_cfgloop): New structure.
21398         (default_target_cfgloop): Declare.
21399         (this_target_cfgloop): Declare as a variable or define as a macro.
21400         (target_avail_regs, target_clobbered_regs, target_res_regs)
21401         (target_reg_cost, target_spill_cost): Redefine as macros.
21402         * cfgloopanal.c (default_target_cfgloop): New variable.
21403         (this_target_cfgloop): New conditional variable.
21404         (target_avail_regs, target_clobbered_regs, target_res_regs)
21405         (target_reg_cost, target_spill_cost): Delete.
21406         * target-globals.h (this_target_cfgloop): Declare.
21407         (target_globals): Add a cfgloop field.
21408         (restore_target_globals): Copy the cfgloop field to
21409         this_target_cfgloop.
21410         * target-globals.c: Include cfgloop.h.
21411         (default_target_globals): Initialize the cfgloop field.
21412         (save_target_globals): Likewise.
21413
21414 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21415
21416         * regs.h (target_regs): Add x_direct_load, x_direct_store and
21417         x_float_extend_from_mem.
21418         (direct_load, direct_store, float_extend_from_mem): New macros.
21419         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
21420
21421 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21422
21423         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
21424         (target-globals.o): Depend on $(LIBFUNCS_H).
21425         * libfuncs.h: Include hashtab.h.
21426         (libfunc_entry): Moved from optabs.c.
21427         (target_libfuncs): New structure.
21428         (default_target_libfuncs): Declare.
21429         (this_target_libfuncs): Declare as a variable or define as a macro.
21430         (libfunc_table): Redefine as a macro.
21431         * optabs.c (default_target_libfuncs): New variable.
21432         (this_target_libfuncs): New conditional variable.
21433         (libfunc_table): Delete.
21434         (libfunc_entry): Moved to optabs.h.
21435         (libfunc_hash): Redefine as a macro.
21436         (hash_libfunc, eq_libfunc): Fix comments.
21437         (init_optabs): Use libfunc_hash to detect cases where the function
21438         has already been called.  Clear the hash table instead of
21439         recreating it.
21440         * target-globals.h (this_target_libfuncs): Declare.
21441         (target_globals): Add a libfuncs field.
21442         (restore_target_globals): Copy the libfuncs field to
21443         this_target_libfuncs.
21444         * target-globals.c: Include libfuncs.h.
21445         (default_target_globals): Initialize the libfuncs field.
21446         (save_target_globals): Likewise.
21447
21448 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21449
21450         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
21451         in all dependency lists.
21452
21453 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21454
21455         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
21456         * optabs.h (target_optabs): New structure.
21457         (default_target_optabs): Declare.
21458         (this_target_optabs): Declare as a variable or define as a macro.
21459         (optab_table, convert_optab_table, direct_optab_table): Redefine
21460         as macros.
21461         * optabs.c (default_target_optabs): New variable.
21462         (this_target_optabs): New conditional variable.
21463         (optab_table, convert_optab_table, direct_optab_table): Delete.
21464         * target-globals.h (this_target_optabs): Declare.
21465         (target_globals): Add a optabs field.
21466         (restore_target_globals): Copy the optabs field to
21467         this_target_optabs.
21468         * target-globals.c: Include expr.h and optabs.h.
21469         (default_target_globals): Initialize the optabs field.
21470         (save_target_globals): Likewise.
21471
21472 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21473
21474         * flags.h (target_flagstate): Add x_flag_excess_precision.
21475         (flag_excess_precision): Redefine as a macro.
21476         * toplev.c (flag_excess_precision): Delete.
21477
21478 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21479
21480         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
21481         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
21482         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
21483         (no_caller_save_reg_set): Redefine as a macro.
21484         * reload.h (target_reload): Add x_caller_save_initialized_p and
21485         x_regno_save_mode.
21486         (caller_save_initialized_p): Redefine as a macro.
21487         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
21488         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
21489         (regno_save_mode): Redefine as a macro.
21490
21491 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21492
21493         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
21494         * expmed.h: New file.
21495         * expmed.c (default_target_costs): New variable.
21496         (this_target_costs): New conditional variable.
21497         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
21498         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
21499         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
21500         * target-globals.h (this_target_expmed): Declare.
21501         (target_globals): Add a expmed field.
21502         (restore_target_globals): Copy the expmed field to
21503         this_target_expmed.
21504         * target-globals.c: Include expmed.h.
21505         (default_target_globals): Initialize the expmed field.
21506         (save_target_globals): Likewise.
21507
21508 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21509
21510         * Makefile.in (target-globals.o): Depend on reload.h.
21511         * reload.h (target_reload): New structure.
21512         (default_target_reload): Declare.
21513         (this_target_reload): Declare as a variable or define as a macro.
21514         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
21515         * reload1.c (default_target_reload): New variable
21516         (this_target_reload): New conditional variable.
21517         (indirect_symref_ok, double_reg_address_ok): Delete.
21518         (spill_indirect_levels): Redefine as a macro.
21519         * target-globals.h (this_target_reload): Declare.
21520         (target_globals): Add a reload field.
21521         (restore_target_globals): Copy the reload field to
21522         this_target_reload.
21523         * target-globals.c: Include hard-reg-set.h.
21524         (default_target_globals): Initialize the reload field.
21525         (save_target_globals): Likewise.
21526
21527 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21528
21529         * rtl.h (target_rtl): Add x_static_reg_base_value.
21530         * alias.c (static_reg_base_value): Redefine as a macro.
21531
21532 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21533
21534         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
21535         (GTFILES): Remove reginfo.c.
21536         * rtl.h (target_rtl): Add x_top_of_stack.
21537         (top_of_stack): New macro.
21538         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
21539         (top_of_stack): Delete.
21540
21541 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21542
21543         * regs.h (target_regs): Add x_hard_regs_of_mode,
21544         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
21545         x_may_move_out_cost and x_last_mode_for_init_move_cost.
21546         (have_regs_of_mode, contains_reg_of_mode, move_cost)
21547         (may_move_in_cost, may_move_out_cost): Redefine as macros.
21548         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
21549         (may_move_in_cost, may_move_out_cost): Delete.
21550         (last_mode_for_init_move_cost): Redefine as a macro.
21551
21552 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21553
21554         * hard-reg-set.h (target_hard_regs): New structure.
21555         (default_target_hard_regs): Declare.
21556         (this_target_hard_regs): Declare as a variable or define as a macro.
21557         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
21558         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
21559         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
21560         (reg_class_size, reg_class_subclasses, reg_class_subunion)
21561         (reg_class_superunion, reg_names): Redefine as macros.
21562         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
21563         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
21564         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
21565         (reg_class_contents, reg_class_size, reg_class_subclasses)
21566         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
21567         (default_target_hard_regs): New variable
21568         (this_target_hard_regs, initial_call_really_used_regs)
21569         (initial_reg_alloc_order): New conditional variables.
21570         (initial_reg_names): New variable.
21571         (init_reg_sets): Assert that initial_call_really_used_regs,
21572         initial_reg_alloc_order and initial_reg_names
21573         are all the same size as their variable counterparts.  Use them to
21574         initialize those counterparts.
21575         * target-globals.h (this_target_hard_regs): Declare.
21576         (target_globals): Add a hard_regs field.
21577         (restore_target_globals): Copy the hard_regs field to
21578         this_target_hard_regs.
21579         * target-globals.c: Include hard-reg-set.h.
21580         (default_target_globals): Initialize the hard_regs field.
21581         (save_target_globals): Likewise.
21582
21583 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21584
21585         * Makefile.in (target-globals.o): Depend on $(RTL_H).
21586         * rtl.h (target_rtl): New structure.
21587         (default_target_rtl): Declare.
21588         (this_target_rtl): Declare as a variable or define as a macro.
21589         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
21590         Redefine as macros.
21591         * emit-rtl.c (default_target_rtl): New variable.
21592         (this_target_rtl): New conditional variable.
21593         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
21594         (return_address_pointer_rtx): Delete.
21595         (initial_regno_reg_rtx): New macro.
21596         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
21597         (init_emit_regs): Likewise.
21598         * target-globals.h (this_target_rtl): Declare.
21599         (target_globals): Add a rtl field.
21600         (restore_target_globals): Copy the rtl field to this_target_rtl.
21601         * target-globals.c: Include rtl.h.
21602         (default_target_globals): Initialize the rtl field.
21603         (save_target_globals): Likewise.
21604
21605 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21606
21607         * Makefile.in (target-globals.o): Depend on $(REGS_H).
21608         * regs.h (target_reg_modes): New structure.
21609         (default_target_reg_modes): Declare.
21610         (this_target_reg_modes): Declare as a variable or define as a macro.
21611         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
21612         * reginfo.c (default_target_reg_modes): New variable.
21613         (this_target_reg_modes): New conditional variable.
21614         (hard_regno_nregs, reg_raw_mode): Delete.
21615         * target-globals.h (this_target_regs): Declare.
21616         (target_globals): Add a regs field.
21617         (restore_target_globals): Copy the regs field to this_target_regs.
21618         * target-globals.c: Include regs.h.
21619         (default_target_globals): Initialize the regs field.
21620         (save_target_globals): Likewise.
21621
21622 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
21623
21624         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
21625         * doc/tm.texi: Regenerate.
21626         * Makefile.in (OBJS-common): Add target-globals.o.
21627         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
21628         and target-globals.h.
21629         (target-globals.o): New rule.
21630         (GTFILES): Include $(srcdir)/target-globals.h.
21631         * defaults.h (SWITCHABLE_TARGET): Define.
21632         * gengtype.c (open_base_files): Add target-globals.h to the
21633         list of includes.
21634         * target-globals.h: New file.
21635         * target-globals.c: Likewise.
21636
21637         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
21638         * flags.h (target_flag_state): New structure.
21639         (default_target_flag_state): Declare.
21640         (this_target_flag_state): Declare as a variable or define as a macro.
21641         (align_loops_log): Redefine as a macro.
21642         (align_loops_max_skip, align_jumps_log): Likewise.
21643         (align_jumps_max_skip, align_labels_log): Likewise.
21644         (align_labels_max_skip, align_functions_log): Likewise.
21645         * toplev.c (default_target_flag_state): New variable.
21646         (this_target_flag_state): New conditional variable.
21647         (align_loops_log): Delete.
21648         (align_loops_max_skip, align_jumps_log): Likewise.
21649         (align_jumps_max_skip, align_labels_log): Likewise.
21650         (align_labels_max_skip, align_functions_log): Likewise.
21651         * target-globals.h (this_target_flag_state): Declare.
21652         (target_globals): Add a flag_state field.
21653         (restore_target_globals): Copy the flag_state field to
21654         this_target_flag_state.
21655         * target-globals.c: Include flags.h.
21656         (default_target_globals): Initialize the flag_state field.
21657         (save_target_globals): Likewise.
21658
21659 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21660
21661         * postreload.c (reg_symbol_ref[]): New.
21662         (move2add_use_add2_insn): New.
21663         (move2add_use_add3_insn): New.
21664         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
21665         (move2add_note_store): Likewise.
21666
21667 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
21668
21669         PR rtl-optimization/44752
21670         * genautomata.c (main): Don't emit an empty file even if there
21671         is no automaton.
21672
21673 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21674
21675         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
21676         ix86_solaris_return_in_memory.
21677         * config/i386-protos.h: Reflect this.
21678         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21679         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
21680         Move ...
21681         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
21682
21683 2010-07-12  Jie Zhang  <jie@codesourcery.com>
21684
21685         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
21686         align the stack when it's going to be saved.
21687
21688 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21689
21690         PR pch/14940
21691         * config/host-solaris.c (mmap_fixed): New function.
21692         (sol_gt_pch_get_address): Use it.
21693         (sol_gt_pch_use_address): Likewise.
21694
21695 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21696
21697         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21698         pentiumpro on Solaris 8 and 9/x86.
21699         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
21700         Document SSE/SSE2 support.
21701         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
21702
21703 2010-07-12  Andi Kleen  <ak@linux.intel.com>
21704
21705         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
21706         instead of gcc_assert to print better error message for multiple
21707         prevailing defs.
21708
21709 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
21710
21711         * config/i386/i386.c (ix86_asm_output_function_label): Change format
21712         string placeholder from 0x%x to %#x.
21713         (ix86_code_end): Use putc to output '\n'.
21714         (ix86_print_operand) <case ';'>: Use putc to output ';'.
21715
21716 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
21717
21718         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
21719         in directive -export.
21720
21721 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
21722
21723         * reginfo.h (reg_classes_intersect_p): Change arguments type to
21724         reg_class_t.
21725         * rtl.h (reg_classes_intersect_p): Adjust prototype.
21726
21727         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21728         Remove macros.
21729         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
21730         rs6000_memory_move_cost): Remove
21731         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
21732         TARGET_MEMORY_MOVE_COST): Define.
21733         (rs6000_register_move_cost): Make static. Change arguments type from
21734         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
21735         (rs6000_memory_move_cost): Make static. Change arguments type from
21736         'enum reg_class' to reg_class_t.
21737
21738 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
21739
21740         PR middle-end/42505
21741         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
21742         lookup code into....
21743         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
21744         new functions.
21745         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
21746         * cfgloopanal.c (target_clobbered_regs): Define.
21747         (init_set_costs): Initialize target_clobbered_regs.
21748         (estimate_reg_pressure_cost): Add call_p argument.  When true,
21749         adjust the number of available registers to exclude the
21750         call-clobbered registers.
21751         * cfgloop.h (target_clobbered_regs): Declare.
21752         (estimate_reg_pressure_cost): Adjust declaration.
21753         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
21754         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
21755         (determine_set_costs): Dump target_clobbered_regs.
21756         (loop_body_includes_call): New function.
21757         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
21758         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
21759         call_p flag through.
21760         (best_gain_for_invariant): Likewise.
21761         (find_invariants_to_move): Likewise.
21762         (move_single_loop_invariants): Likewise, using already-computed
21763         has_call field.
21764
21765 2010-07-10  Richard Guenther  <rguenther@suse.de>
21766             Joern Rennecke  <joern.rennecke@embecosm.com>
21767
21768         PR debug/44832
21769         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
21770         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
21771         unless they have DECL_IGNORED_P set.
21772
21773 2010-07-10  Richard Guenther  <rguenther@suse.de>
21774
21775         PR lto/44889
21776         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
21777         helper function.
21778         (gimple_types_compatible_p): Similar to pointed-to
21779         types allow and merge a mix of complete and incomplete aggregate.
21780         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
21781         (iterative_hash_gimple_type): Adjust for that.
21782
21783 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
21784
21785         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
21786
21787 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
21788
21789         PR objc/44140
21790         * config/darwin.c (output_objc_section_asm_op): Save and restore
21791         section when outputting ObjC section list.
21792
21793 2010-07-09  Jan Hubicka  <jh@suse.cz>
21794
21795         * lto-streamer-out.c (produce_symtab): Do not write alias
21796         cgraph/varpool nodes.
21797
21798 2010-07-09  Jan Hubicka  <jh@suse.cz>
21799
21800         * tree-inline.c (declare_return_variable): Fix ICE while
21801         inlining DECL_BY_VALUE function not in SSA form
21802
21803 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
21804
21805         PR tree-optimization/44576
21806         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
21807         New.  Pull out from is_loop_prefetching_profitable to implement
21808         the trip count to ahead ratio heuristic.
21809         (mem_ref_count_reasonable_p): New.  Pull out from
21810         is_loop_prefetching_profitable to implement the instruction to
21811         memory reference ratio heuristic.  Also consider not reasonable if
21812         the memory reference count is above a threshold (to avoid
21813         explosive compilation time.
21814         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
21815         is_loop_prefetching_profitable to implement the instruction to
21816         prefetch ratio heuristic.
21817         (is_loop_prefetching_profitable): Removed.
21818         (loop_prefetch_arrays): Distribute the cost analysis across the
21819         function to allow early exit of the prefetch analysis.
21820         is_loop_prefetching_profitable is splitted into three functions,
21821         with each one called as early as possible.
21822         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
21823         number of memory references in a loop is considered too many.
21824
21825 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21826
21827         * reload.c (find_reloads): Don't clear badop if we have a winreg
21828         alternative, but not win, and the class only has fixed regs.
21829         * hard-reg-set.h (class_only_fixed_regs): Declare.
21830         * reginfo.c (class_only_fixed_regs): New array.
21831         (init_reg_sets_1): Initialize it.
21832         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
21833         discourage alternatives using the stack pointer.
21834
21835         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
21836
21837         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
21838
21839         * config/arm/arm.md (cbranchqi4): Fix array size.
21840         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
21841         calculating length.
21842
21843 2010-07-09  Richard Guenther  <rguenther@suse.de>
21844
21845         * gimple.c (struct type_fixup_s): New struct and VEC type.
21846         (gimple_register_type_fixups): New static global.
21847         (gimple_queue_type_fixup): New function.
21848         (gimple_types_compatible_p): Queue type fixups instead of
21849         applying them here.
21850         (gimple_register_type): Apply queued fixups for the
21851         canonical type.  Empty the type fixup queue.
21852
21853 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21854
21855         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
21856         * configure: Regenerate.
21857         * config.in: Ditto.
21858
21859 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21860             Denys Vlasenko  <dvlasenk@redhat.com>
21861             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
21862
21863         PR tree-optimization/28632
21864         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
21865         (extract_range_from_binary_expr): Further optimize
21866         BIT_AND_EXPR and BIT_IOR_EXPR.
21867
21868 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
21869
21870         * tree-if-conv.c (fold_or_predicates): New.
21871         (add_to_predicate_list): Call it.
21872
21873 2010-07-09  Richard Guenther  <rguenther@suse.de>
21874
21875         PR middle-end/44890
21876         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
21877         if base is a pointer.
21878         * tree-cfg.c (verify_expr): Update MEM_REF checking.
21879
21880 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21881
21882         PR target/44877
21883         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
21884         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
21885         builtin mask for load/store builtins.
21886
21887 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21888
21889         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
21890         for "lock addl".
21891         * configure: Regenerate.
21892         * config/i386/i386.c (ix86_print_operand) <case ';'>:
21893         Remove TARGET_MACHO.
21894
21895 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
21896
21897         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
21898         default ISA flags.
21899         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
21900
21901 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
21902
21903         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
21904
21905 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21906
21907         * config/picochip/picochip.md (commsTestPort): Emit more
21908         efficient sequence for tstport instruction.
21909
21910 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
21911
21912         * config/i386/i386.c (ix86_veclib_handler): Make static.
21913
21914 2010-07-09  Richard Guenther  <rguenther@suse.de>
21915
21916         PR tree-optimization/44852
21917         * tree-ssa-alias.c: Include toplev.h for exact_log2.
21918         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
21919         in MEM_REF.
21920         (indirect_refs_may_alias_p): Likewise.
21921         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
21922
21923 2010-07-09  Richard Guenther  <rguenther@suse.de>
21924
21925         PR tree-optimization/44882
21926         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
21927         sets do conflict.
21928         (vectorizable_load): Likewise.
21929
21930 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
21931
21932         PR target/40657
21933         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
21934         All callers changed.
21935         Handle the case when we're called for the epilogue.
21936         (thumb_unexpanded_epilogue): Use it.
21937         (thumb1_expand_epilogue): Likewise.
21938
21939 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
21940
21941         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
21942         both ranges are range_int_cst_p with non-negative minimum,
21943         try harder to derive smaller range.
21944
21945 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21946
21947         * genrecog.c: Include diagnostic-core.h before toplev.h.
21948         * genoutput.c: Likewise.
21949         * genextract.c: Likewise.
21950         * genautomata.c: Likewise.
21951         * genemit.c: Likewise.
21952         * genpeep.c: Likewise.
21953         * genattrtab.c: Likewise.
21954         * genconditions.c: Likewise.
21955         * genpreds.c: Likewise.
21956
21957 2010-07-08  Andi Kleen  <ak@linux.intel.com>
21958
21959         * lto-section-in.c (lto_section_name): Add missing comma.
21960
21961 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
21962
21963         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
21964         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
21965         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
21966         (ia64_override_options): Rename to...
21967         (ia64_option_override): ... this one. Make static.
21968
21969 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
21970
21971         PR middle-end/44843
21972         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
21973         pointed-to type of the offset in a MEM_REF to compute the alignment.
21974
21975 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
21976
21977         * final.c (final_scan_insn): Replace
21978         TARGET_UNWIND_INFO macro check by unwind_emit
21979         hook NULL check.
21980         * targhooks.c (default_unwind_emit): Removed.
21981         * targhooks.h (default_unwind_emit): Likewise.
21982         * target.def (unwind_emit): Set default value to NULL.
21983
21984         * config/i386/i386-protos.h (ix86_asm_output_function_label):
21985         New prototype.
21986         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
21987         for NULL fntype argument and allow 64-bit targets.
21988         (ix86_asm_output_function_label): New function.
21989         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
21990         (ix86_handle_fndecl_attribute): Likewise.
21991         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
21992         * doc/doc/tm.texi: Regenerated.
21993         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
21994         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
21995         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
21996         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
21997         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
21998         * config/elfos.h: Likewise.
21999         * config/i386/cygming.h: Likewise.
22000         * config/netbsd-aout.h: Likewise.
22001         * config/openbsd.h: Likewise.
22002         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
22003         by ix86_asm_output_function_label function call.
22004         * varasm.c (assemble_start_function): Use
22005         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
22006
22007 2010-07-08  Jan Hubicka  <jh@suse.cz>
22008
22009         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
22010         New function.
22011         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
22012         Declare.
22013         * ipa-cp.c (ipcp_estimate_growth): Use it.
22014         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
22015         Likewise.
22016
22017 2010-07-08  Jan Hubicka  <jh@suse.cz>
22018
22019         * tree-inline.c (declare_return_variable): Allocate annotation for new
22020         temporary.
22021
22022 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
22023
22024         PR tree-optimization/44710
22025         * tree-if-conv.c (parse_predicate): New.
22026         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
22027         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
22028
22029 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
22030
22031         * common.opt (ftree-loop-if-convert): New flag.
22032         * doc/invoke.texi (ftree-loop-if-convert): Documented.
22033         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
22034         when flag_tree_loop_if_convert is set.
22035
22036 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
22037
22038         * config/i386/i386.c: Use short syntax for function calls
22039         through function pointers.
22040         * config/i386/i386.md: Ditto.
22041
22042 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22043
22044         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
22045
22046 2010-07-08  Richard Guenther  <rguenther@suse.de>
22047
22048         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
22049         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
22050
22051 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
22052
22053         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
22054         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
22055         (loc_list_from_tree): Likewise.
22056         (output_loc_operands): Handle outputting DW_OP_const[48]u
22057         with loc->dtprel set.
22058         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
22059
22060 2010-07-08  Jan Hubicka  <jh@suse.cz>
22061
22062         * ipa.c: Include pointer-set.h
22063         (cgraph_externally_visible_p): New attribute ALIASED;
22064         when in LTO, hidden symbols are local unless they are aliased.
22065         (function_and_variable_visibility): Compute aliased nodes;
22066         handle LTO and hidden symbol on functions and vars.
22067         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
22068         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
22069
22070 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22071
22072         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
22073         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22074         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22075         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22076         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
22077         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
22078         (ix86_gen_probe_stack_range): Likewise.
22079         (override_options): Set them.
22080         (ix86_target_stack_probe): New function.
22081         (ix86_compute_frame_layout): Force use of push instructions to
22082         save registers if stack checking with probes is enabled.
22083         (get_scratch_register_on_entry): New function.
22084         (release_scratch_register_on_entry): Likewise.
22085         (ix86_adjust_stack_and_probe): Likewise.
22086         (output_adjust_stack_and_probe): Likewise.
22087         (ix86_emit_probe_stack_range): Likewise.
22088         (output_probe_stack_range): Likewise.
22089         (ix86_expand_prologue): Emit stack checking code if static built-in
22090         stack checking is enabled.
22091         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
22092         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
22093         (output_adjust_stack_and_probe): Likewise.
22094         (output_probe_stack_range): Likewise.
22095         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
22096         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
22097         TARGET_STACK_PROBE.
22098         (allocate_stack_worker_64): Likewise.
22099         (allocate_stack): Likewise.
22100         (adjust_stack_and_probe): New insn.
22101         (probe_stack_range): Likewise.
22102
22103 2010-07-08  Richard Guenther  <rguenther@suse.de>
22104
22105         PR tree-optimization/44831
22106         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
22107         a MEM_REF preserving TBAA info of the original dereference.
22108         Dereference the original pointer if the address is not invariant.
22109         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
22110         at least one invariant address that we are going to dereference.
22111
22112 2010-07-08  Richard Guenther  <rguenther@suse.de>
22113
22114         PR tree-optimization/44861
22115         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
22116         information when building MEM_REFs.
22117         (vectorizable_load): Likewise.
22118         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
22119
22120 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22121
22122         * config/sol2-c.c: Do not include diagnostic-core.h.
22123
22124 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22125
22126         PR bootstrap/44768
22127         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
22128         with respect to current_function_decl. Pass decl of the function.
22129         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
22130         * ipa-inline.c (compute_inline_parameters): Pass decl to
22131         estimated_stack_frame_size.
22132
22133 2010-07-08  Richard Guenther  <rguenther@suse.de>
22134
22135         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
22136         New function.
22137         (valueize_refs): Call it.
22138
22139 2010-07-08  Richard Guenther  <rguenther@suse.de>
22140
22141         PR rtl-optimization/44838
22142         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
22143         SSA form do not use pointer equivalence.
22144
22145 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
22146
22147         * dwarf2out.c (AT_linkage_name): Delete.
22148         (add_linkage_attr): New function.
22149         (add_linkage_name): Call it to emit the linkage attribute.
22150         (dwarf2out_finish): Likewise.
22151         (move_linkage_attr): Explicitly accept both attribute variants.
22152
22153 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22154
22155         * toplev.h: Do not include diagnostic-core.h.
22156         Include diagnostic-core.h in every file that includes toplev.h.
22157         * c-tree.h: Do not include toplev.h.
22158         * pretty-print.h: Update comment.
22159         * Makefile.in: Update dependencies.
22160         * alias.c: Include diagnostic-core.h in every file that includes
22161         toplev.h.
22162         * attribs.c: Likewise.
22163         * auto-inc-dec.c: Likewise.
22164         * bb-reorder.c: Likewise.
22165         * bt-load.c: Likewise.
22166         * caller-save.c: Likewise.
22167         * calls.c: Likewise.
22168         * cfg.c: Likewise.
22169         * cfganal.c: Likewise.
22170         * cfgbuild.c: Likewise.
22171         * cfgcleanup.c: Likewise.
22172         * cfghooks.c: Likewise.
22173         * cfgloop.c: Likewise.
22174         * combine.c: Likewise.
22175         * config/alpha/alpha.c: Likewise.
22176         * config/arc/arc.c: Likewise.
22177         * config/arm/arm.c: Likewise.
22178         * config/arm/pe.c: Likewise.
22179         * config/avr/avr.c: Likewise.
22180         * config/bfin/bfin.c: Likewise.
22181         * config/cris/cris.c: Likewise.
22182         * config/crx/crx.c: Likewise.
22183         * config/darwin-c.c: Likewise.
22184         * config/darwin.c: Likewise.
22185         * config/fr30/fr30.c: Likewise.
22186         * config/frv/frv.c: Likewise.
22187         * config/h8300/h8300.c: Likewise.
22188         * config/host-darwin.c: Likewise.
22189         * config/i386/i386.c: Likewise.
22190         * config/i386/netware.c: Likewise.
22191         * config/i386/nwld.c: Likewise.
22192         * config/i386/winnt-cxx.c: Likewise.
22193         * config/i386/winnt-stubs.c: Likewise.
22194         * config/i386/winnt.c: Likewise.
22195         * config/ia64/ia64-c.c: Likewise.
22196         * config/ia64/ia64.c: Likewise.
22197         * config/iq2000/iq2000.c: Likewise.
22198         * config/lm32/lm32.c: Likewise.
22199         * config/m32c/m32c-pragma.c: Likewise.
22200         * config/m32c/m32c.c: Likewise.
22201         * config/m32r/m32r.c: Likewise.
22202         * config/m68hc11/m68hc11.c: Likewise.
22203         * config/m68k/m68k.c: Likewise.
22204         * config/mcore/mcore.c: Likewise.
22205         * config/mep/mep-pragma.c: Likewise.
22206         * config/mep/mep.c: Likewise.
22207         * config/mmix/mmix.c: Likewise.
22208         * config/mn10300/mn10300.c: Likewise.
22209         * config/moxie/moxie.c: Likewise.
22210         * config/pa/pa.c: Likewise.
22211         * config/pdp11/pdp11.c: Likewise.
22212         * config/picochip/picochip.c: Likewise.
22213         * config/rs6000/rs6000-c.c: Likewise.
22214         * config/rs6000/rs6000.c: Likewise.
22215         * config/rx/rx.c: Likewise.
22216         * config/s390/s390.c: Likewise.
22217         * config/score/score.c: Likewise.
22218         * config/score/score3.c: Likewise.
22219         * config/score/score7.c: Likewise.
22220         * config/sh/sh.c: Likewise.
22221         * config/sh/symbian-base.c: Likewise.
22222         * config/sh/symbian-c.c: Likewise.
22223         * config/sh/symbian-cxx.c: Likewise.
22224         * config/sol2-c.c: Likewise.
22225         * config/sol2.c: Likewise.
22226         * config/sparc/sparc.c: Likewise.
22227         * config/spu/spu.c: Likewise.
22228         * config/stormy16/stormy16.c: Likewise.
22229         * config/v850/v850-c.c: Likewise.
22230         * config/v850/v850.c: Likewise.
22231         * config/vax/vax.c: Likewise.
22232         * config/vxworks.c: Likewise.
22233         * config/xtensa/xtensa.c: Likewise.
22234         * convert.c: Likewise.
22235         * cse.c: Likewise.
22236         * cselib.c: Likewise.
22237         * dbgcnt.c: Likewise.
22238         * dbxout.c: Likewise.
22239         * ddg.c: Likewise.
22240         * dominance.c: Likewise.
22241         * emit-rtl.c: Likewise.
22242         * explow.c: Likewise.
22243         * expmed.c: Likewise.
22244         * fixed-value.c: Likewise.
22245         * fold-const.c: Likewise.
22246         * fwprop.c: Likewise.
22247         * gcse.c: Likewise.
22248         * ggc-common.c: Likewise.
22249         * ggc-page.c: Likewise.
22250         * ggc-zone.c: Likewise.
22251         * gimple-low.c: Likewise.
22252         * gimplify.c: Likewise.
22253         * graph.c: Likewise.
22254         * haifa-sched.c: Likewise.
22255         * ifcvt.c: Likewise.
22256         * implicit-zee.c: Likewise.
22257         * integrate.c: Likewise.
22258         * ira-build.c: Likewise.
22259         * ira-color.c: Likewise.
22260         * ira-conflicts.c: Likewise.
22261         * ira-costs.c: Likewise.
22262         * ira-lives.c: Likewise.
22263         * ira.c: Likewise.
22264         * lists.c: Likewise.
22265         * loop-doloop.c: Likewise.
22266         * loop-iv.c: Likewise.
22267         * lto-opts.c: Likewise.
22268         * lto-symtab.c: Likewise.
22269         * main.c: Likewise.
22270         * modulo-sched.c: Likewise.
22271         * optabs.c: Likewise.
22272         * params.c: Likewise.
22273         * plugin.c: Likewise.
22274         * postreload-gcse.c: Likewise.
22275         * postreload.c: Likewise.
22276         * predict.c: Likewise.
22277         * profile.c: Likewise.
22278         * real.c: Likewise.
22279         * regcprop.c: Likewise.
22280         * reginfo.c: Likewise.
22281         * regmove.c: Likewise.
22282         * reorg.c: Likewise.
22283         * resource.c: Likewise.
22284         * rtl.c: Likewise.
22285         * rtlanal.c: Likewise.
22286         * sched-deps.c: Likewise.
22287         * sched-ebb.c: Likewise.
22288         * sched-rgn.c: Likewise.
22289         * sdbout.c: Likewise.
22290         * sel-sched-dump.c: Likewise.
22291         * sel-sched-ir.c: Likewise.
22292         * simplify-rtx.c: Likewise.
22293         * stmt.c: Likewise.
22294         * stor-layout.c: Likewise.
22295         * store-motion.c: Likewise.
22296         * targhooks.c: Likewise.
22297         * tree-cfg.c: Likewise.
22298         * tree-cfgcleanup.c: Likewise.
22299         * tree-dump.c: Likewise.
22300         * tree-eh.c: Likewise.
22301         * tree-inline.c: Likewise.
22302         * tree-nomudflap.c: Likewise.
22303         * tree-object-size.c: Likewise.
22304         * tree-optimize.c: Likewise.
22305         * tree-outof-ssa.c: Likewise.
22306         * tree-phinodes.c: Likewise.
22307         * tree-profile.c: Likewise.
22308         * tree-ssa-ccp.c: Likewise.
22309         * tree-ssa-coalesce.c: Likewise.
22310         * tree-ssa-live.c: Likewise.
22311         * tree-ssa-loop-niter.c: Likewise.
22312         * tree-ssa-loop-prefetch.c: Likewise.
22313         * tree-ssa-loop.c: Likewise.
22314         * tree-ssa-structalias.c: Likewise.
22315         * tree-ssa-uninit.c: Likewise.
22316         * tree-ssa.c: Likewise.
22317         * tree-vect-data-refs.c: Likewise.
22318         * tree-vect-loop-manip.c: Likewise.
22319         * tree-vect-loop.c: Likewise.
22320         * tree-vect-patterns.c: Likewise.
22321         * tree-vect-stmts.c: Likewise.
22322         * tree-vrp.c: Likewise.
22323         * varasm.c: Likewise.
22324         * vec.c: Likewise.
22325         * web.c: Likewise.
22326         * xcoffout.c: Likewise.
22327
22328 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
22329
22330         * gengtype.c (write_field_root): New function.
22331         (write_root): Use it.
22332
22333 2010-07-07  Wei Guozhi  <carrot@google.com>
22334
22335         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22336         of lowest bits to lshift/compare): Add a missing line.
22337
22338 2010-07-07  Wei Guozhi  <carrot@google.com>
22339
22340         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
22341         of lowest bits to lshift/compare): New.
22342
22343 2010-07-07  Tom Tromey  <tromey@redhat.com>
22344
22345         * doc/tm.texi: Update.
22346         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
22347         Add @hook.
22348         * target.def (want_debug_pub_sections): New hook.
22349         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
22350         * dwarf2out.c (add_pubname_string): Check
22351         targetm.want_debug_pub_sections.
22352         (add_pubname): Likewise.
22353         (add_pubtype): Likewise.
22354
22355 2010-07-07  Jie Zhang  <jie@codesourcery.com>
22356
22357         * genautomata.c (output_automata_list_min_issue_delay_code):
22358         Correctly decompress min_issue_delay.
22359
22360 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22361
22362         PR rtl-optimization/44404
22363         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
22364         possible, use reg_overlap_mentioned_p instead.
22365
22366 2010-07-07  Duncan Sands  <baldrick@free.fr>
22367
22368         PR middle-end/41355
22369         * tree.c (build_function_type_skip_args): Copy the original type using
22370         build_distinct_type_copy rather than copy_node.
22371
22372 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22373
22374         PR target/44850
22375         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
22376         revision 161876.
22377         (ix86_expand_prologue): Likewise.
22378         (ix86_handle_fndecl_attribute): Likewise.
22379         (ix86_asm_declare_function_name): Likewise.
22380         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22381         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
22382         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
22383         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
22384         * doc/extend.texi: Likewise.
22385
22386 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
22387
22388         PR target/44844
22389         * config/i386/i386.md (rdrand<mode>): Changed to expand to
22390         retry if the carry flag isn't valid.
22391         (rdrand<mode>_1): New.
22392
22393 2010-07-07  Richard Guenther  <rguenther@suse.de>
22394
22395         PR middle-end/44790
22396         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
22397         for expanding the constant offset for MEM_REFs.
22398
22399 2010-07-07  Richard Guenther  <rguenther@suse.de>
22400
22401         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
22402         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
22403         * gimple.h (is_gimple_operand): Remove.
22404         * gimple.c (is_gimple_operand): Likewise.
22405         (walk_gimple_op): Fix wi->val_only setting for calls.
22406         * tree-cfg.c (verify_gimple_call): Fix argument validation.
22407         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
22408         invalid gimple calls.
22409
22410 2010-07-06  Jan Hubicka  <jh@suse.cz>
22411
22412         * lto-cgraph.c (output_cgraph): Add missing declaration.
22413
22414 2010-07-06  Jan Hubicka  <jh@suse.cz>
22415
22416         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
22417         partition.
22418
22419 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
22420
22421         * doc/gimple.texi (GIMPLE_DEBUG): Document.
22422         * doc/rtl.texi (Debug Information): New node.
22423         (NOTE_INSN_VAR_LOCATION): Document.
22424         (debug_insn): Likewise.
22425         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
22426
22427 2010-07-07  Jan Hubicka  <jh@suse.cz>
22428
22429         With parts by Richard Guenther.
22430
22431         PR middle-end/44813
22432         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
22433         for functions passed by reference.
22434         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
22435         in memory when passed by reference.
22436         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
22437         beggining.
22438         * ipa-split.c (split_function): Cleanup way return value is passed;
22439         handle SSA DECL_BY_REFERENCE retvals.
22440         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
22441         DECL_BY_REFERENCE is set.
22442         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
22443         find_what_p_points_to): Handle RESULT_DECL.
22444         * tree-inline.c (declare_return_variable): Get new entry_block argument;
22445         when passing by reference ensure that RESULT_DECL is gimple_val.
22446         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
22447         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
22448
22449 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
22450
22451         PR rtl-optimization/44787
22452         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
22453         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
22454
22455 2010-07-06  Jan Hubicka  <jh@suse.cz>
22456
22457         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
22458         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
22459         with body can prevail.
22460         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
22461         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
22462         * cgraph.c (cgraph_get_node_or_alias): New function.
22463         * cgraph.h (cgraph_get_node_or_alias): Declare.
22464
22465 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
22466
22467         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
22468         support.
22469         (ix86_expand_prologue): Likewise.
22470         (ix86_handle_fndecl_attribute): Likewise.
22471         (ix86_asm_declare_function_name): New function for
22472         ASM_DECLARE_FUNCTION_NAME.
22473         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
22474         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
22475         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
22476         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
22477         * doc/extend.texi: Adjust documentation about ms_hook_prologue
22478         attribute.
22479
22480 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22481
22482         * config/i386/i386.md (immediate_operand): New mode attribute.
22483
22484         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
22485         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
22486         using P mode iterator.
22487         (pro_epilogue_adjust_stack_di_2): Rename from
22488         pro_epilogue_adjust_stack_rex64_2.
22489
22490         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
22491
22492 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22493
22494         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
22495         through gen_mov_insv_1 function pointer.
22496         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
22497         gen_truncxf<mode>2 through gen_truncxf function pointer.
22498         (remainder<mode>3): Ditto.
22499         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
22500         (allocate_stack): Call gen_allocate_stack_worker_64 or
22501         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
22502         function pointer.
22503         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
22504         function pointer.
22505
22506 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
22507
22508         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
22509         operand constraint instead of <r><i>m.
22510
22511 2010-07-06  Richard Guenther  <rguenther@suse.de>
22512
22513         PR middle-end/44828
22514         * convert.c (convert_to_integer): Watch out for overflowing
22515         MULT_EXPR as well.
22516
22517 2010-07-05  Jan Hubicka  <jh@suse.cz>
22518
22519         * lto-streamer.c (write_symbol_vec): Rename to ...
22520         (write_symbol) ... this one; write only symbol given and when
22521         present in cache. Sanity check that what is defined is present
22522         in cgraph/varpool with body/finalized decl.
22523         (write_symbols_of_kind): Remove.
22524         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
22525         pairs to produce symtab.
22526         (produce_asm_for_decls): Update call of produce_symtab; don't do so
22527         when doing WPA streaming.
22528
22529 2010-07-05  Jan Hubicka  <jh@suse.cz>
22530
22531         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
22532         function is still available to fold into.
22533
22534 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22535
22536         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
22537         * function.h (struct_function): Change type of local_decls field
22538         to a VEC.
22539         (add_local_decl): New function.
22540         (FOR_EACH_LOCAL_DECL): New macro.
22541         * cfgexpand.c (init_vars_expansion): Adjust for new type of
22542         cfun->local_decls.
22543         (estimated_stack_frame_size): Likewise.
22544         (expand_used_vars): Likewise.
22545         * cgraphbuild.c (build_cgraph_edges): Likewise.
22546         * function.c (instantiate_decls_1): Likewise.
22547         * ipa-struct-reorg.c (build_data_structure): Likewise.
22548         * ipa-type-escape.c (analyze_function): Likewise.
22549         * lto-streamer-in.c (input_function): Likewise.
22550         * lto-streamer-out.c (output_function): Likewise.
22551         * tree-ssa-live.c (remove_unused_locals): Likewise.
22552         * tree.c (free_lang_data_in_decl): Likewise.
22553         (find_decls_types_in_node): Likewise.
22554         * omp-low.c (remove_exit_barrier): Likewise.
22555         (expand_omp_taskreg): Likewise.
22556         (list2chain): Rename to...
22557         (vec2chain): ...this.  Adjust.
22558         * cgraphunit.c (assemble_thunk): Call add_local_decl.
22559         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
22560         * gimple-low.c (record_vars_into): Likewise.
22561         * tree-inline.c (remap_decls): Likewise.
22562         (declare_return_variable): Likewise.
22563         (declare_inline_vars): Likewise.
22564         (copy_forbidden): Adjust for new type of cfun->local_decls.
22565         (add_local_variables): New function.
22566         (expand_call_inline): Call it.
22567         (tree_function_versioning): Likewise.
22568
22569 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
22570
22571         AVX Programming Reference (June, 2010)
22572         * config/i386/cpuid.h (bit_F16C): New.
22573         (bit_RDRND): Likewise.
22574         (bit_FSGSBASE): Likewise.
22575
22576         * config/i386/i386-builtin-types.def: Add
22577         "DEF_FUNCTION_TYPE (UINT16)", function types for
22578         float16 <-> float conversions and
22579         "DEF_FUNCTION_TYPE (VOID, UINT64)".
22580
22581         * config/i386/i386-c.c (ix86_target_macros_internal): Support
22582         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
22583         OPTION_MASK_ISA_F16C.
22584
22585         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
22586         (OPTION_MASK_ISA_RDRND_SET): Likewise.
22587         (OPTION_MASK_ISA_F16C_SET): Likewise.
22588         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
22589         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
22590         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
22591         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
22592         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
22593         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
22594         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
22595         (override_options): Handle them.
22596         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
22597         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
22598         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
22599         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
22600         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
22601         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
22602         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
22603         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
22604         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
22605         (bdesc_args): Likewise.
22606         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
22607         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
22608         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
22609         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
22610         Handle non-memory store.
22611
22612         * config/i386/i386.h (TARGET_FSGSBASE): New.
22613         (TARGET_RDRND): Likewise.
22614         (TARGET_F12C): Likewise.
22615
22616         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
22617         (UNSPEC_VCVTPS2PH): Likewise.
22618         (UNSPECV_RDFSBASE): Likewise.
22619         (UNSPECV_RDGSBASE): Likewise.
22620         (UNSPECV_WRFSBASE): Likewise.
22621         (UNSPECV_WRGSBASE): Likewise.
22622         (UNSPECV_RDRAND): Likewise.
22623         (rdfsbase<mode>): Likewise.
22624         (rdgsbase<mode>): Likewise.
22625         (wrfsbase<mode>): Likewise.
22626         (wrgsbase<mode>): Likewise.
22627         (rdrand<mode>): Likewise.
22628
22629         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
22630
22631         * config/i386/immintrin.h (_rdrand_u16): New.
22632         (_rdrand_u32): Likewise.
22633         (_readfsbase_u32): Likewise.
22634         (_readfsbase_u64): Likewise.
22635         (_readgsbase_u32): Likewise.
22636         (_readgsbase_u64): Likewise.
22637         (_writefsbase_u32): Likewise.
22638         (_writefsbase_u64): Likewise.
22639         (_writegsbase_u32): Likewise.
22640         (_writegsbase_u64): Likewise.
22641         (_rdrand_u64): Likewise.
22642         (_cvtsh_ss): Likewise.
22643         (_mm_cvtph_ps): Likewise.
22644         (_mm256_cvtph_ps): Likewise.
22645         (_cvtss_sh): Likewise.
22646         (_mm_cvtps_ph): Likewise.
22647         (_mm256_cvtps_ph): Likewise.
22648
22649         * config/i386/sse.md (vcvtph2ps): New.
22650         (*vcvtph2ps_load): Likewise.
22651         (vcvtph2ps256): Likewise.
22652         (vcvtps2ph): Likewise.
22653         (*vcvtps2ph): Likewise.
22654         (*vcvtps2ph_store): Likewise.
22655         (vcvtps2ph256): Likewise.
22656
22657         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
22658
22659         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
22660
22661 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
22662
22663         PR bootstrap/44512
22664         * genenums.c (main): Output include of insn-constants.h
22665         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
22666
22667 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
22668
22669         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
22670         (override_options): Initialize it.
22671         (ix86_expand_prologue): Use it.
22672
22673 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22674
22675         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
22676
22677 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22678
22679         * double-int.h (fit_double_type): Remove declaration.
22680         * double-int.c (fit_double_type): Remove function.
22681         * tree.h (int_fits_type_p): Adjust prototype.
22682         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
22683         instead of fit_double_type.
22684         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
22685         instead of fit_double_type and build_int_cst_wide.
22686         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
22687         instead of fit_double_type and build_int_cst_wide.
22688         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
22689         of fit_double_type.
22690
22691 2010-07-05  Jan Hubicka  <jh@suse.cz>
22692
22693         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
22694         in_other_partition.
22695         * lto-cgraph.c (referenced_from_other_partition_p,
22696         reachable_from_other_partition_p): Use in_other_partition flags.
22697         (output_node, output_varpool_node): COMDAT nodes always have private
22698         copies and thus are never used from other partition.
22699
22700 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
22701
22702         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
22703         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
22704         * config/ia64/ia64.c Include reload.h.
22705         (ia64_memory_move_cost): New function.
22706         (TARGET_MEMORY_MOVE_COST): Define.
22707         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
22708         memory_move_cost.
22709
22710 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
22711
22712         PR middle-end/42505
22713         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
22714         comments about cost model.
22715         (try_add_cand_for):  Add second strategy for choosing initial set
22716         based on original IVs, controlled by ORIGINALP argument.
22717         (get_initial_solution): Add ORIGINALP argument.
22718         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
22719         (find_optimal_iv_set): Try two different strategies for choosing
22720         the IV set, and return the one with lower cost.
22721
22722 2010-07-05  Richard Guenther  <rguenther@suse.de>
22723
22724         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
22725
22726 2010-07-05  Richard Guenther  <rguenther@suse.de>
22727
22728         * tree.c (reference_alias_ptr_type): New function.
22729         * tree.h (reference_alias_ptr_type): Declare.
22730         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
22731         allow non-TARGET_MEM_REF new refs.
22732         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
22733         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
22734         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
22735         (create_mem_ref): Get alias pointer type.  Adjust calls to
22736         create_mem_ref_raw.
22737         (maybe_fold_tmr): Likewise.
22738         * tree-flow.h (create_mem_ref): Adjust prototype.
22739
22740 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
22741
22742         PR c++/44808
22743         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
22744         *from_p is VAR_DECL.
22745
22746 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22747
22748         * tree.h (build_call_list): Remove.
22749         * tree.c (build_call_list): Remove.
22750
22751 2010-07-05  Richard Guenther  <rguenther@suse.de>
22752
22753         * double-int.h (double_int_sub): Declare.
22754         * double-int.c (double_int_sub): New function.
22755         * dwarf2out.c (field_byte_offset): Use it.
22756         * fixed-value.c (do_fixed_add): Likewise.
22757         (do_fixed_multiply): Likewise.
22758         (do_fixed_divide): Likewise.
22759         * tree-predcom.c (add_ref_to_chain): Likewise.
22760         (determine_roots_comp): Likewise.
22761         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
22762
22763 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
22764
22765         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
22766         implementations.
22767
22768 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
22769
22770         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
22771         * arm-modes.def (CC_NOTB): Don't define.
22772         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
22773         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
22774         (LTUGEU): New code_iterator.
22775         (cnb, optab): New corresponding code_attrs.
22776         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
22777         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
22778         using LTUGEU.
22779         (addsi3_carryin_shift_<optab>): Likewise.
22780         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
22781         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
22782         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
22783         (subsi3_compare): Renamed from subsi3_compare0_c.
22784         Change CC_NOTB to CC.
22785         (arm_subsi3_insn): Allow constants for operand 0.
22786         (compare_scc peephole for eq case): New.
22787         (compare_scc splitters): Change CC_NOTB to CC.
22788
22789 2010-07-05  Richard Guenther  <rguenther@suse.de>
22790
22791         * tree-ssa-loop-im.c (for_each_index): Do not handle
22792         ALIGN_INDIRECT_REF.
22793         (gen_lsm_tmp_name): Likewise.
22794         * tree-dump.c (dequeue_and_dump): Likewise.
22795         * tree-pretty-print.c (dump_generic_node): Likewise.
22796         (op_code_prio): Likewise.
22797         (op_symbol_code): Likewise.
22798         * tree.c (staticp): Likewise.
22799         (build1_stat): Likewise.
22800         * tree.h (INDIRECT_REF_P): Likewise.
22801         * fold-const.c (maybe_lvalue_p): Likewise.
22802         (operand_equal_p): Likewise.
22803         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
22804         (ao_ref_init_from_vn_reference): Likewise.
22805         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
22806         (find_interesting_uses_address): Likewise.
22807         * dwarf2out.c (loc_list_from_tree): Likewise.
22808         * gimplify.c (gimplify_expr): Likewise.
22809         * tree-eh.c (tree_could_trap_p): Likewise.
22810         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22811         * cfgexpand.c (expand_debug_expr): Likewise.
22812         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
22813         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
22814         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
22815         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
22816         * tree-ssa-operands.c (get_expr_operands): Likewise.
22817         * expr.c (safe_from_p): Likewise.
22818         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
22819         * tree-vect-data-refs.c (vect_setup_realignment): Build
22820         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
22821         * tree-vect-stmts.c (vectorizable_load): Likewise.
22822         * tree.def (ALIGN_INDIRECT_REF): Remove.
22823
22824 2010-07-05  Richard Guenther  <rguenther@suse.de>
22825
22826         PR tree-optimization/44784
22827         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
22828         for inserted stmts.
22829         (find_or_generate_expression): Fix SCCVN insertion check.
22830
22831 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
22832
22833         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
22834         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
22835         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
22836         directives.
22837
22838 2010-07-05  Ira Rosen  <irar@il.ibm.com>
22839
22840         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
22841         statements that are not vectorized.
22842         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
22843         in INSIDE_COST.
22844
22845 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
22846
22847         PR bootstrap/44820
22848         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
22849
22850 2010-07-05  Richard Guenther  <rguenther@suse.de>
22851
22852         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
22853         RESULT_DECLs properly.
22854
22855 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
22856
22857         PR rtl-optimization/44695
22858         * config/i386/i386.md (extract_code): Removed.
22859         (<u>divmodqi4): Likewise.
22860         (divmodqi4): New.
22861         (udivmodqi4): Likewise.
22862         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
22863         (udivmodhiqi3): Likewise.
22864
22865 2010-07-04  Jan Hubicka  <jh@suse.cz>
22866
22867         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
22868
22869 2010-07-04  Jan Hubicka  <jh@suse.cz>
22870
22871         * cgraphunit.c (init_cgraph): Only initialize dump file if it
22872         is not already initialized.
22873
22874 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22875
22876         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
22877         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
22878         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
22879         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
22880         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
22881         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
22882         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
22883         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
22884         (sync_new_nand_optab): Redefine as macros.
22885         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
22886         Delete.
22887         (direct_optab_index): New enum.
22888         (direct_optab_d): New structure.
22889         (direct_optab): New typedef.
22890         (direct_optab_table): Declare.
22891         (direct_optab_handler, set_direct_optab_handler): New functions.
22892         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
22893         (sync_lock_release_optab): New macros.
22894         * optabs.c (direct_optab_table): New variable.
22895         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
22896         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
22897         cmpstr_optab and cmpstrn_optab.
22898         (emit_conditional_move): Likewise for movcc_optab.
22899         (can_conditionally_move_p): Likewise for movcc_gen_code.
22900         (init_insn_codes): Clear direct_optab_table.
22901         (init_optabs): Don't initialize the new "direct optabs" here.
22902         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
22903         vcond_gen_code.
22904         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
22905         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
22906         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
22907         (expand_sync_operation): Likewise other sync_*_optabs.
22908         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
22909         to sync_compare_and_swap_optab.
22910         (expand_sync_lock_test_and_set): Use direct_optab_handler for
22911         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
22912         to the names of both.
22913         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
22914         cmpstr_optab and cmpstrn_optab.
22915         (expand_builtin_lock_release): Likewise sync_lock_release.
22916         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
22917         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
22918         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
22919         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
22920         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
22921         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
22922         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
22923         (sync_lock_test_and_set, sync_lock_release): Delete.
22924         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
22925         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
22926         * genopinit.c (optabs): Use set_direct_optab_handler for the new
22927         macro optabs.
22928         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
22929         the "optab" local variable.  Use direct_optab_handler for optab and
22930         sync_compare_and_swap_optab.
22931         * reload1.c (reload_in_optab, reload_out_optab): Delete.
22932         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
22933         reload_in_optab and reload_out_optab.
22934         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
22935         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
22936         * config/pa/pa.c (pa_secondary_reload): Likewise.
22937         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
22938         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
22939         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
22940         (VMSupportsCS8_builtin): Likewise.
22941
22942 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22943
22944         * optabs.h (optab_handlers): Change type of insn_code to int.
22945         (optab_handler, set_optab_handler, convert_optab_handler)
22946         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
22947         CODE_FOR_nothing".
22948         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
22949         (init_insn_codes): Zero both the above arrays.
22950         (init_optabs): Never call init_insn_codes first time around.
22951
22952 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
22953
22954         * optabs.h (optab_handler, convert_optab_handler): Turn into
22955         inline functions that return an insn code.
22956         (set_optab_handler, set_convert_optab_handler): New functions.
22957         * builtins.c: Replace optab_handler(X)->insn_code with
22958         optab_handler or set_optab_handler thoughout.  Likewise
22959         convert_optab_handler(X)->insn_code with convert_optab_handler
22960         and set_convert_optab_handler.
22961         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
22962         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
22963         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
22964         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
22965         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
22966         config/spu/spu.c: Likewise.
22967
22968 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22969
22970         PR target/44531
22971         * config.gcc (sh*-*-*): Use regular expressions instead of
22972         the 'i' modifier for sed substitutions.
22973
22974 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
22975
22976         * gimple.c (gimple_body): Comments added.
22977
22978 2010-07-04  Richard Guenther  <rguenther@suse.de>
22979
22980         PR middle-end/44809
22981         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
22982         of an INDIRECT_REF.
22983
22984 2010-07-04  Richard Guenther  <rguenther@suse.de>
22985
22986         PR tree-optimization/44479
22987         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
22988         extra SSA name copy statements which preserves points-to
22989         information.
22990         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
22991         Copy points-to information for all pointers.  Properly handle
22992         MEM_REFs.
22993         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
22994         copy statements.
22995         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
22996         dependency.
22997
22998 2010-07-04  Richard Guenther  <rguenther@suse.de>
22999
23000         PR middle-end/44785
23001         * tree-inline.c (initialize_inlined_parameters): Do not
23002         re-use pointer-map slot over remap_type call.
23003
23004 2010-07-04  Richard Guenther  <rguenther@suse.de>
23005
23006         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
23007
23008 2010-07-04  Richard Guenther  <rguenther@suse.de>
23009
23010         PR tree-optimization/44656
23011         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
23012         again after value-replacing in the defintions lhs.
23013
23014 2010-07-04  Ira Rosen  <irar@il.ibm.com>
23015             Revital Eres  <eres@il.ibm.com>
23016
23017         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
23018         Document new arguments.
23019         * doc/tm.texi: Regenerate.
23020         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
23021         Handle unaligned store.
23022         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
23023         * target.def (builtin_vectorization_cost): Add new arguments.
23024         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
23025         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
23026         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
23027         (vect_vfa_segment_size): Fix indentation.
23028         * tree-vectorizer.h (struct _vect_peel_info): New.
23029         (struct _vect_peel_extended_info): New.
23030         (struct _loop_vec_info): Add new field for peeling hash table and a
23031         macro for its access.
23032         (VECT_MAX_COST): Define.
23033         (vect_get_load_cost): Declare.
23034         (vect_get_store_cost, vect_get_known_peeling_cost,
23035         vect_get_single_scalar_iteraion_cost): Likewise.
23036         (vect_supportable_dr_alignment): Add new argument.
23037         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
23038         field.
23039         (destroy_loop_vec_info): Free peeling hash table.
23040         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
23041         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
23042         vect_analyze_slp. Fix indentation.
23043         (vect_get_single_scalar_iteraion_cost): New function.
23044         (vect_get_known_peeling_cost): Likewise.
23045         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
23046         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
23047         statement. Move outside cost calculation inside unknown peeling case.
23048         Call vect_get_known_peeling_cost for known amount of peeling.
23049         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
23050         reference to the print message of forced alignment.
23051         (vect_verify_datarefs_alignment): Update call to
23052         vect_supportable_dr_alignment.
23053         (vect_get_data_access_cost): New function.
23054         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
23055         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
23056         vect_peeling_hash_choose_best_peeling): Likewise.
23057         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
23058         to store all the accesses in the loop and find best possible access to
23059         align using peeling for known alignment case. For unknown alignment
23060         check if stores are preferred or if peeling is worthy.
23061         (vect_find_same_alignment_drs): Analyze pairs of loads too.
23062         (vect_supportable_dr_alignment): Add new argument and check aligned
23063         accesses according to it.
23064         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
23065         (cost_for_stmt): Call vect_get_stmt_cost.
23066         (vect_model_simple_cost): Likewise.
23067         (vect_model_store_cost): Call vect_get_stmt_cost. Call
23068         vect_get_store_cost to calculate the cost of the statement.
23069         (vect_get_store_cost): New function.
23070         (vect_model_load_cost): Call vect_get_stmt_cost. Call
23071         vect_get_load_cost to calculate the cost of the statement.
23072         (vect_get_load_cost): New function.
23073         (vectorizable_store): Update call to vect_supportable_dr_alignment.
23074         (vectorizable_load): Likewise.
23075         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
23076         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
23077         arguments. Handle unaligned store.
23078         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
23079         (rs6000_builtin_support_vector_misalignment): Return true for word and
23080         double word alignments for VSX.
23081         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
23082         vect_supportable_dr_alignment and builtin_vectorization_cost.
23083
23084 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23085
23086         PR target/44597
23087         * config/pa/predicates.md (prefetch_cc_operand): Remove.
23088         (prefetch_nocc_operand): Likewise.
23089         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
23090         (prefetch_20): New insn.
23091         (prefetch_cc): Remove.
23092         (prefetch_nocc): Likewise.
23093
23094 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23095
23096         * expr.c (vector_mode_valid_p): Move to c-common.c.
23097         * expr.h (vector_mode_valid_p): Do not declare here.
23098         * system.h: Poison GCC_EXPR_H in front-ends.
23099         * Makefile.in: Update dependencies.
23100
23101 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23102
23103         PR target/44705
23104         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
23105
23106 2010-07-03  Jan Hubicka  <jh@suse.cz>
23107
23108         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
23109         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
23110         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
23111         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
23112         Likewise.
23113
23114         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
23115         Update timevars.V
23116         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
23117         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
23118         TV_IPA_LTO_DECL_OUT): New.
23119         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
23120
23121 2010-07-03  Jan Hubicka  <jh@suse.cz>
23122
23123         * ipa-inline.c (update_edge_key): Break out from ...
23124         update_callers_keys): ... here;
23125         (update_callee_keys): Update only the edges from caller to callee.
23126         (update_all_calle_keys): Do what update_calle_keys did.
23127         (decide_inlining_of_small_functions): Avoid recomputing of all
23128         callees when badness increase.
23129
23130 2010-07-03  Jie Zhang  <jie@codesourcery.com>
23131
23132         * config/arm/arm.c (arm_attr_length_move_neon): New.
23133         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
23134         * config/arm/neon.md (define_mode_attr V_slen): Remove.
23135         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
23136         to compute length attribute.
23137
23138 2010-07-03  Jie Zhang  <jie@codesourcery.com>
23139
23140         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
23141         as predicate for operand 1 and remove its constraint.
23142         * config/arm/predicates.md (vfp_register_operand): New.
23143         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
23144         (*push_fp_multi): Likewise.
23145
23146 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
23147
23148         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
23149
23150 2010-07-03  Jan Hubicka  <jh@suse.cz>
23151
23152         * config/i386/i386.c (override_options): Revert accidental commit.
23153
23154 2010-07-02  Le-Chun Wu  <lcwu@google.com>
23155
23156         PR c++/44128
23157         * doc/invoke.texi: Update documentation of -Wshadow.
23158
23159 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
23160             Julian Brown  <julian@codesourcery.com>
23161             Sandra Loosemore  <sandra@codesourcery.com>
23162
23163         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
23164         comparisons.  Adjust to take both operands.
23165         (arm_select_cc_mode): Handle DImode comparisons.
23166         (arm_gen_compare_reg): Generate a scratch register for DImode
23167         comparisons which require one.  Use xor for Thumb equality checks.
23168         (arm_const_double_by_immediates): New.
23169         (arm_print_operand): Allow 'Q' and 'R' for constants.
23170         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
23171         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
23172         arm_canonicalize_comparison.
23173         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
23174         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
23175         prototype.
23176         (arm_const_double_by_immediates): Declare.
23177         * config/arm/constraints.md (Di): New constraint.
23178         * config/arm/predicates.md (arm_immediate_di_operand)
23179         (arm_di_operand, cmpdi_operand): New.
23180         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
23181         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
23182         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
23183         (cstoredi4): Handle non-Cirrus also.
23184
23185 2010-07-02  Julian Brown  <julian@codesourcery.com>
23186             Sandra Loosemore  <sandra@codesourcery.com>
23187
23188         PR target/43703
23189         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
23190         (smax<mode>3): Disable for NEON float modes when
23191         flag_unsafe_math_optimizations is false.
23192         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
23193         (*mul<mode>3_neon)
23194         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
23195         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
23196         for NEON float modes when flag_unsafe_math_optimizations is false.
23197         (quad_halves_<code>v4sf): Only enable if
23198         flag_unsafe_math_optimizations is true.
23199         * doc/invoke.texi (ARM Options): Add note about floating point
23200         vectorization requiring -funsafe-math-optimizations.
23201
23202 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23203             Julian Brown  <julian@codesourcery.com>
23204
23205         * config/arm/neon.md (UNSPEC_VABA): Delete.
23206         (UNSPEC_VABAL): Delete.
23207         (UNSPEC_VABS): Delete.
23208         (UNSPEC_VMUL_N): Delete.
23209         (adddi3_neon): New.
23210         (subdi3_neon): New.
23211         (mul<mode>3add<mode>_neon): Make the pattern named.
23212         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
23213         (neon_vadd<mode>): Replace with define_expand, and move the remaining
23214         unspec parts...
23215         (neon_vadd<mode>_unspec): ...to this.
23216         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
23217         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
23218         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
23219         (neon_vaba<mode>): Rewrite in terms of vabd.
23220         (neon_vabal<mode>): Rewrite in terms of vabdl.
23221         (neon_vabs<mode>): Rewrite without unspec.
23222         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
23223         (*arm_subdi3): Likewise.
23224         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
23225         No_op attribute to disable assembly output checks.
23226         * config/arm/arm_neon.h: Regenerated.
23227         * doc/arm-neon-intrinsics.texi: Regenerated.
23228
23229 2010-07-02  Jan Hubicka  <jh@suse.cz>
23230
23231         * ipa-split.c (split_function): For aggregate values, set the return
23232         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
23233         *<retval> = fncall.part ().
23234         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
23235
23236 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23237
23238         * config/arm/neon.md (UNSPEC_VAND): Delete.
23239         (UNSPEC_VBIC): Delete.
23240         (UNSPEC_VCLZ): Delete.
23241         (UNSPEC_VCNT): Delete.
23242         (UNSPEC_VEOR): Delete.
23243         (UNSPEC_VORN): Delete.
23244         (UNSPEC_VORR): Delete.
23245         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
23246         core registers too.
23247         (anddi3_neon): Likewise.
23248         (orndi3_neon): Likewise.
23249         (bicdi3_neon): Likewise.
23250         (xordi3_neon): Likewise.
23251         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
23252         rid of unspec and handle unused operand.
23253         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
23254         * config/arm/predicates.md (imm_for_neon_logic_operand):
23255         Require TARGET_NEON.
23256         (imm_for_neon_inv_logic_operand): Likewise.
23257         * config/arm/arm.md (define_split for logical_binary_operator):
23258         Disable for NEON registers.
23259         (anddi3): Add new define_expand, and rename the insn.  Disable
23260         this insn for NEON, where anddi3_neon now applies.
23261         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
23262         (iordi3): As for anddi3.
23263         (xordi3): Likewise.
23264         * config/arm/neon.ml (Vand): Split DImode variants and mark them
23265         as No_op to disable testing for exact instruction match.
23266         (Vorr): Likewise.
23267         (Veor): Likewise.
23268         (Vbic): Likewise.
23269         (Vorn): Likewise.
23270         * config/arm/arm_neon.h: Regenerated.
23271         * doc/arm-neon-intrinsics.texi: Regenerated.
23272
23273 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23274
23275         * expr.h (emit_stack_probe): Declare.
23276         * explow.c (emit_stack_probe): Make global.
23277         (anti_adjust_stack_and_probe): Fix comments.
23278         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
23279         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23280         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
23281         * config/sparc/sparc.c: Include except.h.
23282         (sparc_emit_probe_stack_range): New function.
23283         (output_probe_stack_range): Likewise.
23284         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
23285         built-in stack checking is enabled.
23286         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
23287         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
23288         (probe_stack_range): New insn.
23289
23290 2010-07-02  Richard Guenther  <rguenther@suse.de>
23291
23292         PR target/43958
23293         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
23294         for argument alignment.
23295
23296 2010-07-02  Jan Hubicka  <jh@suse.cz>
23297
23298         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
23299         walk backwards from entry_bb to check only those basic block of header
23300         that might lead to execution of split part.
23301         (consider_split) ... here.
23302         (find_return_bb): Allow assignment in return BB.
23303         (find_retval): New.
23304         (split_function): Fix name of cloned function; take care of updating
23305         return value in return_bb containing move.
23306
23307 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
23308
23309         PR target/44771
23310         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
23311         used variable insn.
23312
23313 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
23314
23315         * implicit-zee.c (combine_reaching_defs): Fix long lines.
23316         (is_set_with_extension_DI): Delete.
23317         (struct zero_extend_info): New structure.
23318         (add_removable_zero_extend): New function.
23319         (find_removable_zero_extends): Use note_stores to find SETs.
23320         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
23321
23322 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23323
23324         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
23325         is_miss_rate_acceptable. Pull total_positions computation
23326         out of the loops.  Early return if miss_positions exceeds
23327         the acceptable threshold.
23328         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
23329         is_miss_rate_acceptable after renaming of compute_miss_rate.
23330
23331 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
23332
23333         PR middle-end/44576
23334         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
23335         of 1000) for miss rate if the address diference is greater than or
23336         equal to the cache line size (the two reference will never hit the
23337         same cache line).
23338
23339 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
23340
23341         PR target/42835
23342         * config/arm/arm-modes.def (CC_NOTB): New mode.
23343         * config/arm/arm.c (get_arm_condition_code): Handle it.
23344         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
23345         * config/arm/arm.md (subsi3_compare0_c): New pattern.
23346         (compare_scc): Now a define_and_split.  Add a number of extra
23347         splitters before it.
23348
23349         PR target/42172
23350         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
23351         and ZERO_EXTEND.
23352         (arm_rtx_costs_1): Likewise.
23353         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
23354         * config/arm/arm.md (is_arch6): New attribute.
23355         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
23356         extendqisi2): Tighten the code somewhat, avoiding invalid
23357         RTL to occur in the expander patterns.
23358         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
23359         (thumb1_zero_extendhisi2_v6): Delete.
23360         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
23361         (thumb1_extendhisi2_v6): Delete.
23362         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
23363         (thumb1_extendqisi2_v6): Delete.
23364         (zero_extendhisi2 for register input splitter): New.
23365         (zero_extendqisi2 for register input splitter): New.
23366         (thumb1_extendhisi2 for register input splitter): New.
23367         (extendhisi2 for register input splitter): New.
23368         (extendqisi2 for register input splitter): New.
23369         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
23370         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
23371         and add support for a register alternative requiring a split.
23372         (thumb1_zero_extendqisi2): Likewise.
23373         (arm_zero_extendqisi2): Likewise.
23374         (arm_extendhisi2): Likewise.
23375         (arm_extendqisi2): Likewise.
23376
23377 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23378
23379         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
23380         instead of an unspec.
23381         (neon_expand_vector_init): Likewise.
23382         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
23383         (UNSPEC_VDUP_LANE): Delete.
23384         (UNSPEC VDUP_N): Delete.
23385         (UNSPEC_VGET_HIGH): Delete.
23386         (UNSPEC_VGET_LANE): Delete.
23387         (UNSPEC_VGET_LOW): Delete.
23388         (UNSPEC_VMVN): Delete.
23389         (UNSPEC_VSET_LANE): Delete.
23390         (V_double_vector_mode): New.
23391         (vec_set<mode>_internal): Make code emitted match that for the
23392         corresponding intrinsics.
23393         (vec_setv2di_internal): Likewise.
23394         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
23395         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
23396         (neon_vset_lane<mode>): Combine double and quad patterns and
23397         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
23398         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
23399         (neon_vdup_n<mode>): Rewrite RTL without unspec.
23400         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
23401         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
23402         with neon_vdup_lanev2di, adjusting the pattern from the latter
23403         to be predicable for consistency.
23404         (neon_vdup_lane<mode>_internal): New.
23405         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
23406         to avoid using an unspec.
23407         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
23408         (neon_vdup_lanev2di): Turn into a define_expand.
23409         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
23410         (neon_vget_high<mode>): Replace with....
23411         (neon_vget_highv16qi): New pattern using canonical RTL.
23412         (neon_vget_highv8hi): Likewise.
23413         (neon_vget_highv4si): Likewise.
23414         (neon_vget_highv4sf): Likewise.
23415         (neon_vget_highv2di): Likewise.
23416         (neon_vget_low<mode>): Replace with....
23417         (neon_vget_lowv16qi): New pattern using canonical RTL.
23418         (neon_vget_lowv8hi): Likewise.
23419         (neon_vget_lowv4si): Likewise.
23420         (neon_vget_lowv4sf): Likewise.
23421         (neon_vget_lowv2di): Likewise.
23422
23423         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
23424         test for this emitting vmov.
23425         (Vset_lane): Likewise.
23426         (Vdup_n): Likewise.
23427         (Vmov_n): Likewise.
23428
23429         * doc/arm-neon-intrinsics.texi: Regenerated.
23430
23431 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
23432
23433         * config/arm/neon.md (vec_extractv2di): Correct error in register
23434         numbering to reconcile with neon_vget_lanev2di.
23435
23436 2010-07-02  Richard Guenther  <rguenther@suse.de>
23437
23438         * tree-ssa-structalias.c (pt_solution_set_var): New function.
23439         * tree-ssa-alias.h (pt_solution_set_var): Declare.
23440         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
23441         points-to information.
23442
23443 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
23444
23445         * config/s390/s390.c (override_options): Adopt prefetching
23446         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
23447
23448 2010-07-02  Jan Hubicka  <jh@suse.cz>
23449
23450         * df-problems.c (df_kill_notes): Do not collect dead  notes.
23451         (df_set_note): Just call add_reg_note.
23452         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
23453         df_create_unused_note): Do not deal with lists of old notes.
23454         (df_note_bb_compute): Likewise.
23455
23456 2010-07-02  Richard Guenther  <rguenther@suse.de>
23457
23458         * tree-ssa-structalias.c (find_func_aliases): Handle
23459         pointer alignment via BIT_AND_EXPR.
23460         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
23461
23462 2010-07-02  Richard Guenther  <rguenther@suse.de>
23463
23464         * tree-data-ref.c (initialize_data_dependence_relation): Handle
23465         mismatching number of dimensions properly.
23466
23467 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23468
23469         PR target/44707
23470         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
23471         (lo_sum (high ...) ...) patterns generated by earlier passes.
23472
23473 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23474
23475         * doc/install.texi (Prerequisites): Document Perl requirement on
23476         Solaris 2.
23477         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
23478
23479 2010-07-02  Richard Guenther  <rguenther@suse.de>
23480
23481         PR middle-end/44777
23482         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
23483
23484 2010-07-02  Jan Hubicka  <jh@suse.cz>
23485
23486         PR middle-end/44706
23487         * predict.c (predict_paths_for_bb): Handle case when control dependence
23488         BB has only abnormal edges.
23489
23490 2010-07-02  Richard Guenther  <rguenther@suse.de>
23491
23492         PR tree-optimization/44748
23493         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
23494         the embedded conversion in MEM_REFs.
23495
23496 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
23497
23498         * reload.c: Include toplev.h.
23499         * recog.c:  Likewise.
23500         * Makefile.in: Adjust dependencies.
23501
23502 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
23503
23504         PR debug/44694
23505         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
23506         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
23507
23508 2010-07-01  Richard Guenther  <rguenther@suse.de>
23509
23510         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
23511         types for offsets.
23512
23513 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
23514
23515         PR target/44732
23516         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
23517         Fix argument types.
23518
23519 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
23520
23521         PR target/44727
23522         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23523         Make sure operand 0 dies.
23524
23525 2010-07-01  Richard Guenther  <rguenther@suse.de>
23526
23527         PR middle-end/42834
23528         PR middle-end/44468
23529         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
23530         * doc/generic.texi (References to storage): Document MEM_REF.
23531         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
23532         (print_call_name): Likewise.
23533         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
23534         (build_simple_mem_ref_loc): New function.
23535         (mem_ref_offset): Likewise.
23536         * tree.h (build_simple_mem_ref_loc): Declare.
23537         (build_simple_mem_ref): Define.
23538         (mem_ref_offset): Declare.
23539         * fold-const.c: Include tree-flow.h.
23540         (operand_equal_p): Handle MEM_REF.
23541         (build_fold_addr_expr_with_type_loc): Likewise.
23542         (fold_comparison): Likewise.
23543         (fold_unary_loc): Fold
23544         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
23545         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
23546         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
23547         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
23548         (ptr_deref_may_alias_ref_p_1): Likewise.
23549         (ao_ref_base_alias_set): Properly differentiate base object for
23550         offset and TBAA.
23551         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
23552         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
23553         (indirect_refs_may_alias_p): Likewise.
23554         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
23555         chasing code.
23556         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
23557         (call_may_clobber_ref_p_1): Likewise.
23558         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
23559         * expr.c (expand_assignment): Handle MEM_REF.
23560         (store_expr): Handle MEM_REFs from STRING_CSTs.
23561         (store_field): If expanding a MEM_REF of a non-addressable
23562         decl use bitfield operations.
23563         (get_inner_reference): Handle MEM_REF.
23564         (expand_expr_addr_expr_1): Likewise.
23565         (expand_expr_real_1): Likewise.
23566         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
23567         * alias.c (ao_ref_from_mem): Handle MEM_REF.
23568         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
23569         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
23570         (dr_analyze_indices): Likewise.
23571         (dr_analyze_alias): Likewise.
23572         (object_address_invariant_in_loop_p): Likewise.
23573         * gimplify.c (mark_addressable): Handle MEM_REF.
23574         (gimplify_cond_expr): Build MEM_REFs.
23575         (gimplify_modify_expr_to_memcpy): Likewise.
23576         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
23577         (gimple_fold_indirect_ref): Adjust.
23578         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
23579         * tree.def (MEM_REF): New tree code.
23580         * tree-dfa.c: Include toplev.h.
23581         (get_ref_base_and_extent): Handle MEM_REF.
23582         (get_addr_base_and_unit_offset): New function.
23583         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
23584         * gimple-fold.c (may_propagate_address_into_dereference): Handle
23585         MEM_REF.
23586         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
23587         accesses if the array has just one dimension.  Remove always true
23588         parameter.  Do not require type compatibility here.
23589         (maybe_fold_offset_to_component_ref): Remove.
23590         (maybe_fold_stmt_indirect): Remove.
23591         (maybe_fold_reference): Remove INDIRECT_REF handling.
23592         Fold back to non-MEM_REF.
23593         (maybe_fold_offset_to_address): Simplify.  Deal with type
23594         mismatches here.
23595         (maybe_fold_reference): Likewise.
23596         (maybe_fold_stmt_addition): Likewise.  Also handle
23597         &ARRAY + I in addition to &ARRAY[0] + I.
23598         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
23599         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
23600         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
23601         * tree-ssa.c (useless_type_conversion_p): Make most pointer
23602         conversions useless.
23603         (warn_uninitialized_var): Handle MEM_REF.
23604         (maybe_rewrite_mem_ref_base): New function.
23605         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
23606         to SSA form.
23607         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
23608         INDIRECT_REF handling.
23609         (copy_tree_body_r): Handle MEM_REF.
23610         * gimple.c (is_gimple_addressable): Adjust.
23611         (is_gimple_address): Likewise.
23612         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
23613         invariant base are invariant.
23614         (is_gimple_min_lval): Adjust.
23615         (is_gimple_mem_ref_addr): New function.
23616         (get_base_address): Handle MEM_REF.
23617         (count_ptr_derefs): Likewise.
23618         (get_base_loadstore): Likewise.
23619         * gimple.h (is_gimple_mem_ref_addr): Declare.
23620         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
23621         * tree-cfg.c (verify_address): New function, split out from ...
23622         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
23623         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
23624         INDIRECT_REFs.
23625         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
23626         INDIRECT_REF.  Allow conversions.
23627         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
23628         a register does not change its size.
23629         (verify_types_in_gimple_reference): Verify MEM_REF.
23630         (verify_gimple_assign_single): Disallow INDIRECT_REF.
23631         Handle MEM_REF.
23632         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
23633         New.
23634         (mark_address_taken): Handle MEM_REF.
23635         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
23636         (get_asm_expr_operands): Pass opf_not_non_addressable.
23637         (get_expr_operands): Handle opf_[not_]non_addressable.
23638         Handle MEM_REF.  Remove INDIRECT_REF handling.
23639         * tree-vrp.c (check_array_ref): Handle MEM_REF.
23640         (search_for_addr_array): Likewise.
23641         (check_array_bounds): Likewise.
23642         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
23643         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
23644         (ref_always_accessed_p): Likewise.
23645         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
23646         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
23647         Handle MEM_REF.
23648         * cgraphbuild.c (mark_load): Properly check for NULL result
23649         from get_base_address.
23650         (mark_store): Likewise.
23651         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
23652         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
23653         handling for MEM_REF.
23654         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
23655         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
23656         * builtins.c (stabilize_va_list_loc): Use the function ABI
23657         valist type if we couldn't canonicalize the argument type.
23658         Always dereference with the canonical va-list type.
23659         (maybe_emit_free_warning): Handle MEM_REF.
23660         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
23661         memmove to memcpy.
23662         * builtins.c (fold_builtin_memory_op): Use ref-all types
23663         for all memcpy foldings.
23664         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
23665         (build_outer_var_ref): Likewise.
23666         (scan_omp_1_op): Likewise.
23667         (lower_rec_input_clauses): Likewise.
23668         (lower_lastprivate_clauses): Likewise.
23669         (lower_reduction_clauses): Likewise.
23670         (lower_copyprivate_clauses): Likewise.
23671         (expand_omp_atomic_pipeline): Likewise.
23672         (expand_omp_atomic_mutex): Likewise.
23673         (create_task_copyfn): Likewise.
23674         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
23675         Remove old union trick.  Initialize constant offsets.
23676         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
23677         INDIRECT_REF.  Init base_alias_set properly.
23678         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
23679         (vn_reference_fold_indirect): Adjust for MEM_REFs.
23680         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
23681         for ARRAY_REFs.
23682         (may_insert): Remove.
23683         (visit_reference_op_load): Do not test may_insert.
23684         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
23685         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
23686         a field to store the constant offset this op applies.
23687         (run_scc_vn): Adjust prototype.
23688         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
23689         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
23690         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
23691         bother about volatile qualifiers on pointers.
23692         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
23693         * tree-ssa-loop-ivopts.c
23694         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
23695         (strip_offset_1): Likewise.
23696         (find_interesting_uses_address): Replace INDIRECT_REF handling with
23697         MEM_REF handling.
23698         (get_computation_cost_at): Likewise.
23699         * ipa-pure-const.c (check_op): Handle MEM_REF.
23700         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
23701         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
23702         and constants.
23703         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
23704         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
23705         (eliminate_local_variables_1): Likewise.
23706         (create_call_for_reduction_1): Likewise.
23707         (create_loads_for_reductions): Likewise.
23708         (create_loads_and_stores_for_name): Likewise.
23709         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
23710         (ssa_accessed_in_tree): Handle MEM_REF.
23711         (ssa_accessed_in_assign_rhs): Likewise.
23712         (update_type_size): Likewise.
23713         (analyze_accesses_for_call_stmt): Likewise.
23714         (analyze_accesses_for_assign_stmt): Likewise.
23715         (transform_access_sites): Likewise.
23716         (transform_allocation_sites): Likewise.
23717         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
23718         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
23719         not handle INDIRECT_REF.
23720         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
23721         (cond_store_replacement): Likewise.
23722         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
23723         MEM_REF, no not handle INDIRECT_REFs.
23724         (insert_into_preds_of_block): Properly initialize avail.
23725         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
23726         for ARRAY_REFs.  Properly handle reference lookups that
23727         require a bit re-interpretation.
23728         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
23729         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
23730         (build_ref_for_offset_1): Remove.
23731         (build_ref_for_offset): Build MEM_REFs.
23732         (gate_intra_sra): Disable for now.
23733         (sra_ipa_modify_expr): Handle MEM_REF.
23734         (ipa_early_sra_gate): Disable for now.
23735         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
23736         MEM_REF handling.
23737         (disqualify_base_of_expr): Likewise.
23738         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
23739         MEM_REF handling.
23740         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
23741         Use mem_ref_offset.  Remove bogus folding.
23742         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
23743         (make_fancy_name_1): Add support for MEM_REF.
23744         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
23745         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
23746         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
23747         (compute_complex_ancestor_jump_func): Likewise.
23748         (ipa_analyze_virtual_call_uses): Likewise.
23749         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
23750         INDIRECT_REF folding with more generalized MEM_REF folding.
23751         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
23752         (forward_propagate_addr_into_variable_array_index): Also handle
23753         &ARRAY + I in addition to &ARRAY[0] + I.
23754         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
23755         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
23756         creates assignments with overlap.
23757         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
23758         (get_frame_field): Likewise.
23759         (get_nonlocal_debug_decl): Likewise.
23760         (convert_nonlocal_reference_op): Likewise.
23761         (struct nesting_info): Add mem_refs pointer-set.
23762         (create_nesting_tree): Allocate it.
23763         (convert_local_reference_op): Insert to be folded mem-refs.
23764         (fold_mem_refs): New function.
23765         (finalize_nesting_tree_1): Perform defered folding of mem-refs
23766         (free_nesting_tree): Free the pointer-set.
23767         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
23768         (vectorizable_load): Likewise.
23769         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
23770         (propagate_with_phi): Likewise.
23771         * tree-object-size.c (addr_object_size): Handle MEM_REFs
23772         instead of INDIRECT_REFs.
23773         (compute_object_offset): Handle MEM_REF.
23774         (plus_stmt_object_size): Handle MEM_REF.
23775         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
23776         for &MEM_REF.
23777         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
23778         (symbol_marked_for_renaming): Likewise.
23779         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
23780         (fold-const.o): Add $(TREE_FLOW_H).
23781         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
23782         (find_func_clobbers): Likewise.
23783         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
23784         (decompose_access): Likewise.
23785         (replace_field_acc): Likewise.
23786         (replace_field_access_stmt): Likewise.
23787         (insert_new_var_in_stmt): Likewise.
23788         (get_stmt_accesses): Likewise.
23789         (reorg_structs_drive): Disable.
23790         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
23791         (ix86_canonical_va_list_type): Likewise.
23792
23793 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23794
23795         PR other/44566
23796         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
23797         * target.def (struct gcc_target): Replace enum reg_class with
23798         reg_class_t in hook argument / return types.
23799         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
23800         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
23801         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
23802         * targhooks.h (default_branch_target_register_class): Likewise.
23803         (default_ira_cover_classes, default_secondary_reload): Likewise.
23804         (default_memory_move_cost, default_register_move_cost): Likewise.
23805         * targhooks.c (default_branch_target_register_class): Likewise.
23806         (default_ira_cover_classes, default_secondary_reload): Likewise.
23807         (default_memory_move_cost, default_register_move_cost): Likewise.
23808         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
23809         * bt-load.c (branch_target_load_optimize): Likewise.
23810         * ira.c (setup_cover_and_important_classes): Likewise.
23811         * ira-costs.c (copy_cost): Likewise.
23812         * reload1.c (emit_input_reload_insns): Likewise.
23813         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
23814         * config/frv/frv.c (frv_secondary_reload): Likewise.
23815         * config/s390/s390.c (s390_secondary_reload): Likewise.
23816         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
23817         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
23818         (ix86_register_move_cost): Likewise.
23819         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
23820         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
23821         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
23822         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
23823         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
23824         (rs6000_ira_cover_classes): Likewise.
23825         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
23826         * config/picochip/picochip-protos.h (picochip_secondary_reload):
23827         Likewise.
23828         * config/pa/pa.c (pa_secondary_reload): Likewise.
23829         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
23830         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
23831         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
23832         * doc/tm.texi: Regenerate.
23833
23834 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
23835
23836         PR bootstrrap/44726
23837         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
23838         use.
23839         (build_alias_set_optimal_p): Likewise.
23840         (build_base_obj_set_for_drs): Likewise.
23841
23842 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
23843
23844         * target.def: Remove comment about licensing problems of function
23845         declarations.
23846
23847         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
23848         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
23849         * doc/tm.texi: Regenerate.
23850
23851         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
23852         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
23853
23854         * target.def (enum_va_list_p): Use DEFHOOK.
23855         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
23856         Rename ptype to ptree.
23857         * doc/tm.texi: Regenerate.
23858
23859         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
23860         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
23861         * doc/tm.texi: Regenerate.
23862
23863         * target.def (memory_move_cost): Use DEFHOOK.
23864         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
23865         Rename regclass AKA class to rclass.
23866         * doc/tm.texi: Regenerate.
23867
23868         * target.def (pragma_parse): Use DEFHOOK.
23869         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
23870         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
23871         * doc/tm.texi: Regenerate.
23872
23873         * target.def (pass_by_reference): Use DEFHOOK.
23874         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
23875         * doc/tm.texi: Regenerate.
23876
23877         * target.def (resolve_overloaded_builtin): Rename params to arglist.
23878         Use DEFHOOK.
23879         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
23880         * doc/tm.texi: Regenerate.
23881
23882         * target.def (return_pops_args): Use DEFHOOK.
23883         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
23884         Rename stack-size to size.
23885         * doc/tm.texi: Regenerate.
23886
23887         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
23888         last-sched_cycle to last_clock, cur_cycle to clock.
23889         * doc/tm.texi.in: Use @hook.
23890         * doc/tm.texi: Regenerate.
23891
23892         * target.def (print_operand, print_operand_address): Update comment.
23893         (print_operand_punct_valid_p): Likewise.
23894
23895 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23896
23897         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
23898         to rtl.h.
23899         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
23900         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
23901         * rtl-error.h: New.
23902         * regrename.c: Do not include toplev.h. Include rtl-error.h.
23903         * rtl-error.c: Likewise.
23904         * reload.c: Likewise.
23905         * recog.c:  Likewise.
23906         * sel-sched.c: Likewise.
23907         * function.c: Likewise.
23908         * reg-stack.c: Likewise.
23909         * cfgrtl.c: Likewise.
23910         * reload1.c: Likewise.
23911         * final.c: Include rtl-error.
23912         * Makefile.in: Adjust dependencies.
23913
23914 2010-06-30  Jan Hubicka  <jh@suse.cz>
23915
23916         PR middle-end/PR44706
23917         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
23918         to return the value.
23919
23920 2010-06-30  Michael Matz  <matz@suse.de>
23921
23922         PR bootstrap/44699
23923         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
23924         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
23925         a gimple reg, attach the original VDEF to the last store in the
23926         sequence.
23927
23928 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
23929
23930         PR other/44034
23931         * config/darwin.c (darwin_override_options): Use renamed
23932         targetm.asm_out.emit_unwind_label.
23933
23934 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
23935
23936         PR tree-optimization/39799
23937         * tree-inline.c (remap_ssa_name): Initialize variable only if
23938         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
23939
23940 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
23941
23942         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
23943
23944 2010-06-30  Richard Guenther  <rguenther@suse.de>
23945
23946         PR target/44722
23947         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
23948         against oscillation with reverse peephole2.
23949
23950 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
23951
23952         PR target/44721
23953         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
23954         Fix last commit.
23955
23956 2010-06-30  Nick Clifton  <nickc@redhat.com>
23957
23958         * config/rx/rx-modes.def: New file.
23959         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
23960         (CC_REGNUM): Define.
23961         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
23962         register.
23963         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
23964         (SELECT_CC_MODE): Define.
23965         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
23966         (reg:CC CC_REG) instead of (cc0).
23967         (attr "cc"): Delete.
23968         (cbranchsi4): Do not split compare and branch here. Instead move
23969         it to...
23970         (cbranchsi4_<code>): ... here.  New patterns.
23971         (cmpsi): Call rx-compare_redundant to find out if it is necessary
23972         to emit the compare instruction.
23973         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
23974         cc_status flags.
23975         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
23976         FIRST_PSEUDO_REGNUM.
23977         (rx_expand_prologue, rx_expand_epilogue): Likewise.
23978         (rx_notice_update_cc): Delete.
23979         (rx_cc_modes_compatible): New function.
23980         (flags_needed_for_conditional): New function.
23981         (flags_from_mode): New function.
23982         (rx_compare_redundant): New function - scans backwards through
23983         insn list to find out if condition flags are already set correctly.
23984         (TARGET_CC_MODES_COMPATIBLE): Define.
23985         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
23986
23987         * config/rx/rx.h (BRANCH_COST): Define.
23988         (REGISTER_MOVE_COST): Define.
23989         * config/rx/predicates (rx_source_operand): Allow all constant types.
23990         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
23991         (tstsi4): New pattern.
23992         * config/rx/rx.c (rx_memory_move_cost): Define.
23993         (TARGET_MEMORY_MOVE_COST): Define.
23994
23995 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23996
23997         * tree.h (block_may_fallthru): Declare here.
23998         * tree-flow.h (block_may_fallthru): Do not declare here.
23999         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
24000         bitmap.h
24001         * Makefile.in (c-typeck.o): Update dependencies.
24002
24003 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
24004
24005         PR debug/44694
24006         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
24007         * cselib.c (cfa_base_preserved_regno): New static variable.
24008         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
24009         of REGNO (cfa_base_preserved_val->locs->loc).
24010         (cselib_preserve_cfa_base_value): Add regno argument, set
24011         cfa_base_preserved_regno to it.
24012         (cselib_invalidate_regno): Allow removal of registers other than
24013         cfa_base_preserved_regno from cfa_base_preserved_val.
24014         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
24015         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
24016         of MEM addresses, if not on LHS.
24017         (reverse_op): Don't add reverse ops for cfa_base_rtx.
24018         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
24019
24020 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
24021
24022         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
24023         static variables.
24024         (peep2_buf_position): New static function.
24025         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
24026         peephole2_optimize): Use it.
24027         (peep2_attempt, peep2_update_life): New static functions, broken out
24028         of peephole2_optimize.
24029         (peep2_fill_buffer): New static function.
24030         (peephole2_optimize): Change the main loop to try to fill the buffer
24031         with the maximum number of insns before matching them against
24032         peepholes.  Use a forward scan.  Remove special case for targets with
24033         conditional execution.
24034         * genrecog.c (change_state): Delete dead code.
24035         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
24036         Rewrite so as not to expect the second insn to have had a peephole
24037         applied yet.
24038
24039 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24040
24041         * genhooks.c (emit_findices): Cast field precision to int.
24042         (emit_documentation): Likewise.
24043
24044 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
24045
24046         PR tree-optimization/43801
24047         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
24048         if old_decl was DECL_ONE_ONLY.
24049
24050         PR debug/44668
24051         * dwarf2out.c (add_accessibility_attribute): New function.
24052         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
24053         instead of adding DW_AT_accessibility manually.
24054         (gen_enumeration_type_die, gen_struct_or_union_type_die,
24055         gen_typedef_die): Use it.
24056
24057 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
24058
24059         * vmsdbgout.c (full_name): Just output the file name if not native.
24060
24061 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
24062
24063         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
24064         (funcnam_table): New static table.
24065         (funcnum_table): New static table.
24066         (write_rtnbeg): Write value saved in funcnum_table.
24067         (write_rtnend): Write value saved in funcnum_table.
24068         (vmsdbgout_begin_function): Save current function info in
24069         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
24070         (vmsdbgout_finish): Iterate over funcnum_table.
24071
24072 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
24073
24074         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
24075         (vmsdbgout_type_decl): Declare
24076         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
24077         (FUNC_EPILOGUE_LABEL): New macro
24078         (vmsdbgout_begin_epilogue): New function.
24079         (vmsdbgout_type_decl): New function.
24080
24081 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
24082
24083         * vmsdbg.h: Update copyright.
24084
24085 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
24086
24087         * vmsdbg.h (DST_K_TBG): New DST constant.
24088         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
24089         (write_modbeg): Cast module_language to avoid warning.
24090         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
24091
24092 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
24093
24094         PR other/44034
24095         * target.def, doc/tm.texi.in, genhooks.c: New files.
24096         * target.h: Instead of defining individual hook members,
24097         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
24098         include target.def.
24099         * target-def.h: Instead of defining individual hook initializers,
24100         include target-hooks-def.h.
24101         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
24102         targetm.live_on_entry -> targetm.extra_live_on_entry
24103         targetm.sched.md_finish ->targetm.sched.finish
24104         targetm.sched.md_init -> targetm.sched.init
24105         targetm.sched.md_init_global -> targetm.sched.init_global
24106         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
24107         targetm.asm_out.except_table_label ->
24108           targetm.asm_out.emit_except_table_label
24109         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
24110         targetm.target_help -> targetm.help
24111         targetm.vectorize.builtin_support_vector_misalignment ->
24112           targetm.vectorize.support_vector_misalignment
24113         targetm.file_start_app_off -> targetm.asm_file_start_app_off
24114         targetm.file_start_file_directive ->
24115          targetm.asm_file_start_file_directive
24116         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
24117         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
24118         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
24119         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
24120           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
24121         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
24122           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
24123         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
24124         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
24125         * Makefile.in (TARGET_H): Depend on target.def.
24126         (TARGET_DEF_H): Depend on target-hooks-def.h.
24127         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
24128         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
24129         * doc/tm.texi: Regenerate.
24130
24131         * Makefile.in (s-tm-texi): Remove stray tab / rule.
24132
24133         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
24134         (targetm.sched.init): Likewise.
24135
24136 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24137
24138         PR bootstrap/44713
24139         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
24140         (function_arg_advance_32): Const-ify TYPE parameter.
24141         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
24142         (ix86_function_arg_advance): Change type of NAMED to bool.
24143         (function_arg_32): Const-ify CUM and TYPE parameters.
24144         (function_arg_64): Likewise.  Change type of NAMED to bool.
24145         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
24146         to bool.
24147         (ix86_function_arg): Change type of NAMED to bool.
24148         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
24149         last argument as a bool.
24150
24151 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
24152
24153         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
24154         (OVERRIDE_OPTIONS): Add note of obsolescence.
24155         Replace references with references to TARGET_OPTION_OVERRIDE.
24156         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
24157          the macro).
24158         * targhooks.c (default_target_option_override): New function.
24159         * targhooks.h (default_target_option_override): Declare.
24160         * target.h (struct gcc_target): Add override member to
24161         target_option member.
24162         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
24163         targetm.target_option.override call.
24164         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
24165         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
24166
24167 2010-06-29  Jan Hubicka  <jh@suse.cz>
24168
24169         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
24170
24171 2010-06-29  Jan Hubicka  <jh@suse.cz>
24172
24173         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
24174         unreachable.
24175         (rebuild_frequencies): New function.
24176         * predict.h (rebuild_frequencies): Declare.
24177         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
24178         entry block and edge reaching new_entry.
24179         (tree_function_versioning): When doing partial cloning, rebuild
24180         frequencies when done.
24181         * passes.c (execute_function_todo): Use rebild_frequencies.
24182
24183 2010-06-29  Richard Guenther  <rguenther@suse.de>
24184
24185         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
24186         * tree-flow.h (enum noalias_state): Remove.
24187         (struct var_ann_d): Remove noalias_state member.
24188
24189 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
24190
24191         PR target/43902
24192         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
24193         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
24194         (maddhidi4): Likewise.
24195
24196         Revert parts of the change for PR25130.
24197         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
24198         MEM_ALIAS_SET.
24199
24200 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24201
24202         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
24203         targetm.calls.function_incoming_arg, and
24204         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
24205         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
24206         * target.h (struct gcc_target): Add function_arg_advance,
24207         function_arg, and function_incoming_arg fields.
24208         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
24209         (TARGET_FUNCTION_INCOMING_ARG): Define.
24210         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
24211         and TARGET_FUNCTION_INCOMING_ARG.
24212         * targhooks.h (default_function_arg_advance): Declare.
24213         (default_function_arg, default_function_incoming_arg): Declare.
24214         * targhooks.c (default_function_arg_advance): New function.
24215         (default_function_arg, default_function_incoming_arg): New function.
24216         * config/i386/i386.c (function_arg_advance): Rename to...
24217         (ix86_function_arg_advance): ...this.  Make static.
24218         (function_arg): Rename to...
24219         (ix86_function_arg): ...this.  Make static.
24220         (TARGET_FUNCTION_ARG_ADVANCE): Define.
24221         (TARGET_FUNCTION_ARG): Define.
24222         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
24223         (FUNCTION_ARG): Delete.
24224         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
24225         (function_arg): Delete prototype.
24226
24227 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
24228
24229         * reginfo.c (init_reg_sets_1): Adjust comments.
24230         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
24231         * calls.c (prepare_call_address): Likewise.
24232         (emit_call_1): Use targetm.calls.return_pops_args.
24233         (expand_call): Likewise.
24234         * function.c (assign_parms): Likewise.
24235         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
24236         * target.h (struct gcc_target) [struct calls]: Add
24237         return_pops_args field.
24238         * targhooks.h (default_return_pops_args): Declare.
24239         * targhooks.c (default_return_pops_args): Define.
24240         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
24241         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
24242         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
24243         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
24244         documentation.
24245         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
24246         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
24247         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
24248         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
24249         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
24250         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
24251         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
24252         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
24253         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
24254         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
24255         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
24256         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
24257         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
24258         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
24259         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
24260         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
24261         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
24262         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
24263         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
24264         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
24265         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
24266         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
24267         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
24268         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
24269         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
24270         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
24271         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
24272         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
24273         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
24274         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
24275         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
24276         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
24277         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
24278         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
24279         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
24280         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
24281         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
24282         * config/i386/i386.c (ix86_return_pops_args): Make static.
24283         Constify arguments.
24284         (TARGET_RETURN_POPS_ARGS): Define.
24285         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
24286         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
24287         (TARGET_RETURN_POPS_ARGS): Define.
24288         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
24289         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
24290         (TARGET_RETURN_POPS_ARGS): Define.
24291
24292 2010-06-29  Richard Guenther  <rguenther@suse.de>
24293
24294         PR middle-end/44667
24295         * tree-inline.c (initialize_inlined_parameters): Make sure
24296         to remap the inlined parameter variable substitutions types.
24297
24298 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
24299
24300         PR rtl-optimization/44659
24301         * combine.c (make_compound_operation) <SUBREG>: Do not return the
24302         result of force_to_mode if it partially re-expanded the compound.
24303
24304 2010-06-28  Jan Hubicka  <jh@suse.cz>
24305
24306         PR middle-end/44671
24307         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
24308         RESULT_DECL.
24309
24310 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
24311
24312         * double-int.h (force_fit_type_double): Remove declaration.
24313         * double-int.c (force_fit_type_double): Move to tree.c.
24314         * tree.h (force_fit_type_double): Declare.
24315         * tree.h (force_fit_type_double): Moved from double-int.c. Use
24316         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
24317         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
24318         * convert.c (convert_to_pointer): Adjust call to
24319         force_fit_type_double.
24320         * tree-vrp.c (extract_range_from_assert,
24321         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
24322         * fold-const.c: Update comment.
24323         (int_const_binop, fold_convert_const_int_from_int,
24324         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
24325         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
24326         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
24327         round_up_loc): Adjust call to force_fit_type_double.
24328
24329 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24330
24331         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
24332
24333 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24334
24335         * tree-sra.c (convert_callers): New parameter, change fndecls of
24336         recursive calls.
24337         (modify_function): Pass the old decl to convert_callers.
24338
24339 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24340
24341         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
24342         ipa_check_create_node_params and ipa_initialize_node_params with
24343         checking asserts they are not necessary.
24344
24345 2010-06-28  Jan Hubicka  <jh@suse.cz>
24346
24347         PR tree-optimization/44687
24348         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
24349
24350 2010-06-28  Martin Jambor  <mjambor@suse.cz>
24351
24352         PR c++/44535
24353         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
24354         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
24355         instead of BINFO_BASE_BINFO.
24356
24357 2010-06-28  Michael Matz  <matz@suse.de>
24358
24359         PR middle-end/44592
24360         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
24361         proper VDEF chain for intermediate stores in the sequence.
24362
24363 2010-06-28  Jan Hubicka  <jh@suse.cz>
24364
24365         PR tree-optimization/44357
24366         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
24367         uninlinable functions.
24368
24369 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
24370
24371         * config.gcc (powerpc*-*-*): Handle titan.
24372         * config/rs6000/rs6000.c (titan_cost): New costs.
24373         (rs6000_override_options): Add "titan" to processor_target_table.
24374         Add Titan to branch alignment logic.
24375         Correctly set rs6000_cost for titan.
24376         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
24377         * config/rs6000/titan.md: New file.
24378         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
24379
24380 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24381
24382         * tree-browser.c (TB_history_stack): Convert to a VEC.
24383         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
24384         (TB_history_prev): Likewise.
24385
24386 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
24387
24388         * vec.h (vec_heap_free): Add parentheses around free.
24389
24390 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
24391
24392         * system.h: Poison GCC_EXCEPT_H for front-end files.
24393
24394         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
24395         langhook.
24396         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
24397         Define to NULL by default.
24398         * except.h: Define GCC_EXCEPT_H.
24399         (doing_eh): Remove prototype.
24400         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
24401         (lang_protect_cleanup_actions): Remove.
24402         * except.c (lang_protect_cleanup_actions): Remove.
24403         (doing_eh): Remove.
24404         (gen_eh_region): Don't check doing_eh here.
24405         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
24406         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
24407         instead of lang_protect_cleanup_actions.
24408         * omp-low.c (maybe_catch_exception): Likewise.
24409         * Makefile.in: Update dependencies.
24410
24411 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
24412
24413         * cgraph.h (struct varpool_node): new used_from_object_file flag.
24414         (struct cgraph_local_info): new used_from_object_file flag.
24415         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
24416         (cgraph_clone_node): initialize used_from_object_file.
24417         (cgraph_create_virtual_clone): initialize used_from_object_file.
24418         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
24419         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
24420         when compiling with -fwhole-program.
24421         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
24422         internal resolver.
24423         * ipa.c (function_and_variable_visibility): Set externally_visible
24424         flag of varpool_node if used_from_object_file flag is set.
24425         (cgraph_externally_visible_p): check used_from_object_file flag.
24426         * doc/invoke.texi (-fwhole-program option): Change description of
24427         externally_visible attribute accordingly.
24428         * doc/extend.texi (externally_visible): Ditto.
24429
24430 2010-06-27  Jan Hubicka  <jh@suse.cz>
24431
24432         * params.def (max-inline-insns-auto): Default to 40.
24433         * doc/invoke.texi (max-inline-insns-auto): Document the change.
24434
24435 2010-06-27  Jan Hubicka  <jh@suse.cz>
24436
24437         PR middle-end/44671
24438         PR middle-end/44686
24439         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
24440         signature change.
24441         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
24442         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
24443
24444 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
24445
24446         * target.h (struct gcc_target): Add register_move_cost field.
24447         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
24448         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
24449         * targhooks.c (default_register_move_cost): New function.
24450         * targhooks.h (default_register_move_cost): Declare function.
24451         * defaults.h (REGISTER_MOVE_COST): Delete.
24452         * ira-int.h (ira_register_move_cost): Update comment.
24453         * ira.c (ira_register_move_cost): Update comment.
24454         * reload.h (register_move_cost): Declare.
24455         * reginfo.c (register_move_cost): New function.
24456         (move_cost): Update comment.
24457         (init_move_cost, memory_move_secondary_cost): Replace
24458         REGISTER_MOVE_COST with register_move_cost.
24459         * postreload.c (reload_cse_simplify_set): (Ditto.).
24460         * reload.c (find_valid_class, find_reloads): (Ditto.).
24461         * reload1.c (choose_reload_regs): (Ditto.).
24462         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
24463         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
24464         * doc/md.texi (can_create_pseudo_p): Update documentation.
24465
24466         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
24467         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
24468         * config/i386/i386.h (ix86_memory_move_cost): Make static.
24469         (TARGET_MEMORY_MOVE_COST): Define.
24470
24471         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
24472         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
24473         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
24474         (TARGET_MEMORY_MOVE_COST): Define.
24475
24476 2010-06-27  Richard Guenther  <rguenther@suse.de>
24477
24478         PR tree-optimization/44683
24479         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
24480         false edge from the inverted condition.
24481
24482 2010-06-27  Richard Guenther  <rguenther@suse.de>
24483
24484         PR middle-end/44684
24485         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
24486         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
24487         for register LHS.  Or non-store assignments.
24488
24489 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
24490
24491         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
24492         (sparc_emit_set_const64): Likewise.  Remove disabled code.
24493         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
24494         (sparc_emit_set_const64): Likewise.
24495
24496 2010-06-26  Catherine Moore  <clm@codesourcery.com>
24497
24498         * config/mips/mips.md (alu_type): New attribute.
24499         (type): Infer type from alu_type.
24500         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
24501         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
24502         *subsi3_extended, negsi2, negdi2, *low<mode>,
24503         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
24504         xor<mode>3, *nor<mode>3,
24505         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
24506         *zero_extendhi_truncqi):  Set alu_type instead of type.
24507
24508 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
24509
24510         * config/alpha/alpha.c (alpha_need_linkage): Adjust
24511         splay_tree_new_ggc call.
24512         (alpha_use_linkage): Likewise.
24513
24514 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24515
24516         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
24517         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
24518         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
24519         (static_specs): Remove switches_need_spaces.
24520         (process_command, do_self_spec): Hardcode handling "-o" instead of
24521         checking switches_need_spaces.
24522         * system.h (SWITCHES_NEED_SPACES): Poison.
24523
24524 2010-06-26  Richard Guenther  <rguenther@suse.de>
24525
24526         PR tree-optimization/44393
24527         * tree-loop-distribution.c (generate_loops_for_partition): Fix
24528         stmt removal and VOP renaming.
24529         (generate_memset_zero): Remove redundant stmt updating.
24530         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
24531         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
24532
24533 2010-06-26  Jan Hubicka  <jh@suse.cz>
24534
24535         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
24536         edges comming from header are equivalent.
24537         (visit_bb): Handle PHIs correctly.
24538         * tree-inline.c (copy_phis_for_bb): Be able to copy
24539         PHI from entry edge.
24540         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
24541
24542 2010-06-26  Richard Guenther  <rguenther@suse.de>
24543
24544         PR middle-end/44674
24545         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
24546         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
24547
24548 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
24549
24550         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
24551         add_infile, alloc_switch): New.
24552         (process_command): Remove variable lang_n_infiles.  Process
24553         options in a single pass.  Use new functions for allocating
24554         infiles and switches arrays.  Properly skip operands of
24555         -Xpreprocessor and -Xassembler.
24556
24557 2010-06-26  Jan Hubicka  <jh@suse.cz>
24558
24559         PR middle-end/44671
24560         * cgraphunit.c (cgraph_function_versioning): Remove wrong
24561         cgraph_make_decl_local call; fix typo copying RTL data.
24562
24563 2010-06-25  DJ Delorie  <dj@redhat.com>
24564
24565         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
24566         (m32c_output_aligned_common): Likewise.
24567         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
24568         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
24569         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
24570         (m32c_register_pragmas): Register it.
24571         * config/m32c/m32c.c (m32c_get_pragma_address): New.
24572         (m32c_insert_attributes): Set #pragma address decls volatile.
24573         (pragma_entry_eq): New.
24574         (pragma_entry_hash): New.
24575         (m32c_note_pragma_address): New.
24576         (m32c_get_pragma_address): New.
24577         (m32c_output_aligned_common): New.
24578         * doc/extend.texi: Document the new pragma.
24579
24580         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
24581         also.
24582         * config/m32c/predicates.md (m32c_any_operand): Check the code
24583         instead of memory_operand so as to allow matching volatile MEMs.
24584         (m32c_nonimmediate_operand): Likewise.
24585         (mra_operand): Allow volatiles.
24586
24587 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
24588
24589         PR debug/44610
24590         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
24591         address if the offset is unknown.
24592
24593 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
24594
24595         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
24596         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
24597         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
24598         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
24599         to ia64_start_function. Invoke it.
24600         * config/ia64/ia64.c (ia64_start_function): Call new function
24601         dwarf2out_vms_debug_main_pointer.
24602
24603 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24604
24605         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
24606         statements computing the true predicate.
24607
24608 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24609
24610         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
24611         to boolean_true_node.
24612         (reset_bb_predicate): New.
24613         (predicate_bbs): Call reset_bb_predicate.
24614
24615 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24616
24617         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
24618         (tree_if_conversion): Returns true when something has been changed.
24619         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
24620         changed something.
24621
24622 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
24623
24624         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
24625         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
24626         * tree-if-conv.c: Include dbgcnt.h.
24627         (tree_if_conversion): Use if_conversion_tree to count the number of
24628         if-convertible loops.
24629
24630 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
24631
24632         * common.opt (fprefetch-loop-arrays): Re-define
24633         -fprefetch-loop-arrays as a tri-state option with the initial
24634         value of -1.
24635         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
24636         pass only when flag_prefetch_loop_arrays > 0.
24637         * toplev.c (process_options): Note that, with tri-states,
24638         flag_prefetch_loop_arrays>0 means prefetching is enabled.
24639         * config/i386/i386.c (override_options): Enable prefetching at -O3
24640         for a set of CPUs that sw prefetching is helpful.
24641         (software_prefetching_beneficial_p): New.  Return TRUE if software
24642         prefetching is beneficial for the given CPU.
24643
24644 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
24645
24646         PR rtl-optimization/44326
24647         * implicit-zee.c (find_removable_zero_extends): Replace
24648         INSN_P with NONDEBUG_INSN_P.
24649
24650 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24651
24652         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
24653         (struct ipa_node_params): Removed the modification_analysis_done flag.
24654         (ipa_is_param_modified): Removed.
24655         (ipa_analyze_node): Declare.
24656         (ipa_compute_jump_functions): Remove declaration.
24657         (ipa_count_arguments): Likewise.
24658         (ipa_detect_param_modifications): Likewise.
24659         (ipa_analyze_params_uses): Likewise.
24660         * ipa-prop.c (struct param_analysis_info): New type.
24661         (visit_store_addr_for_mod_analysis): Removed.
24662         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
24663         moved down in the file.
24664         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
24665         (ipa_count_arguments): Made static.
24666         (mark_modified): New function.
24667         (is_parm_modified_before_call): New function.
24668         (compute_pass_through_member_ptrs): New parameter parms_info, call
24669         is_parm_modified_before_call instead of ipa_is_param_modified.
24670         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
24671         it to compute_pass_through_member_ptrs.
24672         (ipa_compute_jump_functions): New parameter parms_info, pass it to
24673         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
24674         on the callee if it is analyzed.  Made static.
24675         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
24676         is_parm_modified_before_call instead of ipa_is_param_modified.
24677         (ipa_analyze_call_uses): New parameter parms_info, pass it to
24678         ipa_analyze_indirect_call_uses.
24679         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
24680         ipa_analyze_call_uses.
24681         (ipa_analyze_params_uses): New parameter parms_info, pass it to
24682         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
24683         (ipa_analyze_node): New function.
24684         (ipa_print_node_params): Do not dump the modified flag.
24685         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
24686         it.  Do not stream the modified parameter flag.
24687         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
24688         it.  Do not stream the modified parameter flag.
24689         * ipa-cp.c (ipcp_analyze_node): Removed.
24690         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
24691         with only a call to ipa_analyze_node.
24692         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
24693         node with only a call to ipa_analyze_node.
24694
24695 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24696
24697         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
24698
24699 2010-06-25  Jan Hubicka  <jh@suse.cz>
24700
24701         * tree-pass.h (pass_split_functions): Declare.
24702         * opts.c (decode_options): Enable function splitting at -O2
24703         * timevar.def (TV_IPA_FNSPLIT): New macro.
24704         * ipa-split.c: New file.
24705         * common.opt (-fpartial-inlining): New flag.
24706         * Makefile.in (ipa-split.o): New object file.
24707         * passes.c (init_optimization_passes): Add ipa-split.
24708         * params.def (partial-inlining-entry-probability): New parameters.
24709         * doc/invoke.texi (-fpartial-inlining): New.
24710
24711 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24712
24713         PR 44665
24714         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
24715         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
24716         (gimplify_expr): Likewise.
24717
24718 2010-06-25  Martin Jambor  <mjambor@suse.cz>
24719
24720         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
24721         statements instead of bailing out on them.
24722         (ipa_analyze_indirect_call_uses): Do not require that loads from the
24723         parameter are in the same BB as the condition.  Update comments.
24724
24725 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
24726
24727         PR middle-end/43866
24728         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
24729         true or always false, return NULL_TREE.
24730         (tree_unswitch_single_loop): Optimize conditions even when reaching
24731         max-unswitch-level parameter.  If num > 0, optimize first all conditions
24732         using entry checks, then do still reachable block discovery and consider
24733         only conditions in still reachable basic blocks in the loop.
24734
24735         PR tree-optimization/44539
24736         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
24737         the call doesn't have LHS, but has VDEF.
24738
24739 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24740
24741         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
24742         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
24743         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
24744         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
24745         * system.h (MODIFY_TARGET_NAME): Poison.
24746
24747 2010-06-25  Alan Modra  <amodra@gmail.com>
24748
24749         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
24750         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
24751         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
24752         CMODEL_LARGE as default.
24753         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
24754         (offsettable_ok_by_alignment): Delete.
24755         (rs6000_emit_move): Remove mcmodel=medium optimization.
24756
24757 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24758
24759         With large parts from Jim Wilson:
24760         PR target/43902
24761         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
24762         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24763         * optabs.c (optab_for_tree_code): Likewise.
24764         (expand_widen_pattern_expr): Likewise.
24765         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
24766         out of execute_optimize_widening_mul.
24767         (convert_plusminus_to_widen): New function.
24768         (execute_optimize_widening_mul): Use the two new functions.
24769         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
24770         Remove code to generate widening multiply-accumulate.  Add support
24771         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
24772         * gimple-pretty-print.c (dump_ternary_rhs): New function.
24773         (dump_gimple_assign): Call it when appropriate.
24774         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
24775         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
24776         (expand_gimple_stmt_1): Likewise.
24777         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
24778         WIDEN_MULT_MINUS_EXPR.
24779         * tree-ssa-operands.c (get_expr_operands): Likewise.
24780         * tree-inline.c (estimate_operator_cost): Likewise.
24781         * gimple.c (extract_ops_from_tree_1): Renamed from
24782         extract_ops_from_tree.  Add new arg for a third operand; fill it.
24783         (gimple_build_assign_stat): Support operations with three operands.
24784         (gimple_build_assign_with_ops_stat): Likewise.
24785         (gimple_assign_set_rhs_from_tree): Likewise.
24786         (gimple_assign_set_rhs_with_ops_1): Renamed from
24787         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
24788         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
24789         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
24790         WIDEN_MULT_MINUS_EXPR.
24791         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
24792         (extract_ops_from_tree_1): Adjust declaration.
24793         (gimple_assign_set_rhs_with_ops_1): Likewise.
24794         (gimple_build_assign_with_ops): Pass NULL for last operand.
24795         (gimple_build_assign_with_ops3): New macro.
24796         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
24797         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
24798         functions.
24799         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
24800         (verify_gimple_assign): Call it.
24801         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
24802         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
24803         functions for dealing with three-operand statements.
24804         * tree.c (commutative_ternary_tree_code): New function.
24805         * tree.h (commutative_ternary_tree_code): Declare it.
24806         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
24807         ternary statements.
24808         (gimple_assign_nonzero_warnv_p): Likewise.
24809         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
24810         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
24811         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
24812         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
24813         (struct hashtable_expr): New member ternary in the union.
24814         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
24815         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
24816         (iterative_hash_hashable_expr): Likewise.
24817         (print_expr_hash_elt): Handle EXPR_TERNARY.
24818         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
24819         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
24820         statements.  Handle GIMPLE_TERNARY_RHS.
24821
24822 2010-06-25  Jan Hubicka  <jh@suse.cz>
24823
24824         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
24825
24826 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
24827
24828         PR c/44517
24829         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
24830         parameters are not good.
24831         (c_parser_parameter_declaration): Error unknown type name if the type
24832         name can't start declaration specifiers.
24833
24834 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
24835
24836         * gcc.c (translate_options): Don't mention +e in comment.
24837         (process_command): Don't handle +e specially.
24838
24839 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
24840
24841         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
24842
24843         * ira-build.c (merge_hard_reg_conflicts): New function.
24844         (create_cap_allocno, copy_info_to_removed_store_destinations,
24845         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
24846         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
24847         (remove_unnecessary_allocnos, remove_low_level_allocnos)
24848         copy_nifo_to_removed_store_destination): Use them.
24849         * ira-lives.c (make_hard_regno_born): New function, split out of
24850         make_regno_born.
24851         (make_allocno_born): Likewise.
24852         (make_hard_regno_dead): New function, split out of make_regno_dead.
24853         (make_allocno_dead): Likewise.
24854         (inc_register_pressure): New function, split out of set_allocno_live.
24855         (dec_register_pressure): New function, split out of clear_allocno_live.
24856         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
24857         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
24858         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
24859         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
24860         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
24861         mark_pseudo_regno_live.
24862         (process_bb_node_lives): Use mark_pseudo_regno_live,
24863         make_hard_regno_born and make_allocno_dead.
24864         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
24865         set_allocno_live, clear_allocno_live): Delete functions.
24866
24867         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
24868         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
24869         functions.
24870         (ira_flattening): Use ira_parent_allocno.
24871         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
24872         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
24873
24874         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
24875         statement.
24876
24877         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
24878         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
24879         minmax_set_iter_cond, minmax_set_iter_next,
24880         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
24881         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
24882         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
24883         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
24884         uses changed.
24885
24886         * ira-int.h (struct live_range, live_range_t): Renamed from struct
24887         ira_allocno_live_range and allocno_live_range_t; all uses changed.
24888         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
24889         All uses changed.
24890
24891 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
24892
24893         * thumb2.md (thumb2_tlobits_cbranch): Delete.
24894         (peephole2 to convert zero_extract/compare of single bit to
24895          lshift/compare): New.
24896
24897 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
24898
24899         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
24900         recursive call and call to 'int_const_binop'.
24901         (build_range_check, fold_cond_expr_with_comparison, unextend,
24902         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
24903         multiple_of_p): Adjust call to const_binop.
24904
24905 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
24906
24907         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
24908         determine size of XFmode operand.
24909         (XFmode extended DFmode push splitter): Ditto.
24910         (XFmode extended SFmode push splitter): Ditto.
24911
24912 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
24913
24914         PR target/44588
24915         * config/i386/i386.md (extract_code): New.
24916         (<u>divmodqi4): Likewise.
24917         (divmodhiqi3): Likewise.
24918         (udivmodhiqi3): Likewise.
24919         (<u>divqi3): Remvoved.
24920
24921 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
24922
24923         PR middle-end/44492
24924         * recog.h (struct recog_data): Add is_asm field.
24925         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
24926         present in constraints of inline-asm operand and memory operand
24927         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
24928         (extract_insn): Initialize recog_data.is_asm.
24929         * doc/md.texi (Constraints): Document operand side-effect rules.
24930
24931 2010-06-24  Andi Kleen  <ak@linux.intel.com>
24932
24933         * c-parser.c (c_parser_conditional_expression): Call
24934         warn_for_omitted_condop.
24935         * doc/invoke.texi: Document omitted condop warning.
24936
24937 2010-06-24  Nick Clifton<nickc@redhat.com>
24938
24939         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
24940         insn in the sequence is a jump insn before setting its label.
24941
24942 2010-06-24  Alan Modra  <amodra@gmail.com>
24943
24944         * collect2.c (main): Match exactly --version and --help.
24945
24946 2010-06-24  DJ Delorie  <dj@redhat.com>
24947
24948         * config/m32c/m32c-pragma.c: Don't include rtl.h.
24949
24950 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
24951
24952         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
24953         using X87MODEF mode iterator.
24954         (pushsf splitter): Macroize splitter using P mode iterator.
24955         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
24956         mode iterator.
24957
24958         (*movxf_internal): Rename from *movxf_integer.
24959         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
24960         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
24961         (*movdf_internal): Rename from *movdf_integer.
24962         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
24963         (*movsf_internal): Rename from *movdf_1.
24964
24965 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
24966
24967         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
24968         (const_gimple_seq_node): Removed typedefs.
24969
24970         * gimple.h (gimple_seq_node_d, gimple_seq_node)
24971         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
24972
24973 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
24974
24975         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
24976         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
24977         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
24978         and CODE_FOR_vec_extract_lo_v4df.
24979
24980         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
24981         Changed to define_insn_and_split.
24982         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
24983         (vec_extract_lo_v16hi): Likewise.
24984         (vec_extract_lo_v32qi): Likewise.
24985         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
24986         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
24987
24988 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
24989
24990         PR target/44640
24991         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
24992         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
24993         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
24994         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
24995         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
24996
24997         PR target/44640
24998         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
24999
25000         PR other/44644
25001         * df-core.c (struct df): Rename to df_d.
25002         * df.h (struct df): Likewise.
25003         * dse.h (struct df): Remove forward declaration.
25004         * recog.h (struct insn_data): Rename to:
25005         (struct_insn_data_d).  Adjusted all users.
25006
25007 2010-06-23  Arnaud Charlet  <charlet@adacore.com
25008
25009         PR ada/22220
25010         * doc/install.texi: Update requirements to build GNAT.
25011
25012 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
25013
25014         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
25015         enum type.
25016         (m68k_sched_attr_opx_type): Remove unreachable return.
25017         (m68k_sched_attr_opy_type): Likewise.
25018         (m68k_sched_attr_size): Likewise.
25019         (sched_get_opxy_mem_type): Likewise.
25020         (m68k_sched_attr_op_mem): Likewise.
25021
25022 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
25023
25024         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
25025         new statement and adjust VDEF only if necessary.  Remove superfluous
25026         call to maybe_clean_or_replace_eh_stmt.
25027         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
25028         copy the flags.
25029         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
25030         * tree-inline.c (copy_bb): ...and not there.
25031
25032 2010-06-22  Cary Coutant  <ccoutant@google.com>
25033
25034         * dwarf2out.c (is_nested_in_subprogram): New function.
25035         (should_move_die_to_comdat): Use it.
25036         (copy_ancestor_tree): Don't mark DIEs here.
25037         (copy_decls_walk): Start walk from root of newly-added tree;
25038         mark DIEs here instead.
25039
25040 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
25041
25042         * config/i386/i386.md (unit): Also check sseishft1.
25043
25044 2010-06-22  Jan Hubicka  <jh@suse.cz>
25045
25046         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
25047         enabled.
25048
25049 2010-06-22  Jan Hubicka  <jh@suse.cz>
25050
25051         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
25052         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
25053         Return true if something changed.
25054         * df.h (df_confluence_function_n): Return bool.
25055         * df-core.c (df_worklist_propagate_forward,
25056         df_worklist_propagate_backward): Track changes and ages.
25057         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
25058         track ages.
25059         * dse.c (dse_confluence_n): Return always true.
25060
25061 2010-06-22  Jan Hubicka  <jh@suse.cz>
25062
25063         * bitmap.c (bitmap_clear_bit): Micro optimize.
25064
25065 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
25066
25067         * config/i386/i386.md (SWI1248x): New mode iterator.
25068         (SWI48x): Ditto.
25069         (SWI12): Ditto.
25070         (SWI24): Ditto.
25071
25072         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
25073         SWI1248x mode iterator.
25074         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
25075         using SWI124 mode iterator.
25076         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
25077         mode iterator.
25078         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
25079         *pushdi2_prologue_rex64 using P mode iterator.
25080         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
25081         using SWI48 mode iterator.
25082         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
25083         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
25084         using SWI1248x mode iterator.
25085         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
25086         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
25087         SWI48 mode iterator.
25088         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
25089         iterator.
25090         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
25091         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
25092         SWI12 mode iterator.
25093         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
25094         SWI12 mode iterator.
25095         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
25096         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
25097         SWI24 mode iterator.
25098         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
25099         SWI48 mode iterator.
25100         (mov<mode>_insn_1): New expander.
25101         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
25102         using SWI48x mode iterator.
25103
25104         (*movoi_internal_avx): Rename from *movoi_internal.
25105         (*movti_internal_rex64): Rename from *movti_rex64.
25106         (*movti_internal_sse): Rename from *movti_sse.
25107         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
25108         (*movdi_internal): Rename from *movdi_2.
25109         (*movsi_internal): Rename from *movsi_1.
25110         (*movhi_internal): Rename from *movhi_1.
25111         (*movqi_internal): Rename from *movqi_1.
25112
25113         (insv): Update the call to gen_movsi_insv_1 for rename.
25114         * config/i386/i386.c (promote_duplicated_reg): Ditto.
25115
25116 2010-06-22  Jan Hubicka  <jh@suse.cz>
25117
25118         * passes.c (execute_function_todo): Move call of statistics_fini_pass
25119         to ...
25120         (execute_todo) ... this one.
25121
25122 2010-06-22  Alan Modra  <amodra@gmail.com>
25123
25124         PR target/44364
25125         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
25126         * caller-save.c (insert_restore, insert_save): Use non-validate
25127         form of adjust_address.
25128
25129 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25130
25131         PR target/39690
25132         * config/pa/pa.c (override_options): Disable
25133         -freorder-blocks-and-partition.
25134
25135 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
25136
25137         PR target/44615
25138         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
25139
25140         * config/i386/i386.md (type): Add sseishft1
25141
25142         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
25143         (ppro_insn_load): Likewise.
25144         (ppro_insn_store): Likewise.
25145         (ppro_insn_both): Likewise.
25146
25147         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
25148         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
25149         for type.
25150         (*vec_extractv2di_1_avx): Likewise.
25151         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
25152         type.  Remove atom_unit.
25153         (*vec_extractv2di_1_sse2): Likewise.
25154
25155 2010-06-21  DJ Delorie  <dj@redhat.com>
25156
25157         * diagnostic.h (diagnostic_classification_change_t): New.
25158         (diagnostic_context): Add history and push/pop list.
25159         (diagnostic_push_diagnostics): Declare.
25160         (diagnostic_pop_diagnostics): Declare.
25161         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
25162         from pragmas in a history chain instead of the global table.
25163         (diagnostic_push_diagnostics): New.
25164         (diagnostic_pop_diagnostics): New.
25165         (diagnostic_report_diagnostic): Scan history chain to find state
25166         of diagnostics as of the diagnostic location.
25167         * opts.c (set_option): Pass UNKNOWN_LOCATION to
25168         diagnostic_classify_diagnostic.
25169         (enable_warning_as_error): Likewise.
25170         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
25171         use in the history chain.
25172         * doc/extend.texi: Document pragma GCC diagnostic changes.
25173
25174 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
25175
25176         * dwarf2out.c (add_linkage_name): New function.  Don't add
25177         anything to DW_TAG_member DIEs.
25178         (add_name_and_src_coords_attributes): Use it.
25179         (gen_variable_die): Call it for C++ static data members if
25180         specification is DW_TAG_member.
25181
25182         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
25183         C++ char16_t and char32_t.
25184
25185         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
25186         * genattrtab.c: Include vecprim.h.
25187         (cached_attrs, cached_attr_count, attrs_seen_once,
25188         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
25189         attrs_cached_after): New variables.
25190         (find_attrs_to_cache): New function.
25191         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
25192         (write_test_expr): Add attrs_cached argument, return it too,
25193         attempt to cache non-const attributes used more than once in
25194         a single case handling.
25195         (write_attr_get): Use find_attrs_to_cache, for caching candidates
25196         emit cached_* variables.  Adjust write_attr_set callers.
25197         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
25198         to find attributes that should be cached in this block.  Adjust
25199         write_test_expr callers.
25200         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
25201         callers.
25202         (make_automaton_attrs): Adjust write_test_expr caller.
25203
25204         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
25205         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
25206         (make_automaton_attrs): If find_tune_attr returns non-NULL,
25207         write separate internal_dfa_insn_code_* and insn_default_latency_*
25208         functions for each attribute's value and emit init_sched_attrs
25209         function and function pointers.
25210         * genattr.c (const_attrs, reservations): New variables.
25211         (gen_attr): Add const attributes to const_attrs vector.
25212         (check_tune_attr, find_tune_attr): New functions.
25213         (main): Add reservations to reservations vector.  If find_tune_attr
25214         returns true, add prototype for init_sched_attrs and make
25215         internal_dfa_insn_code and insn_default_latency function pointers,
25216         otherwise define init_sched_attrs as dummy macro.
25217         * cfgexpand.c: Include insn-attr.h.
25218         (gimple_expand_cfg): Call init_sched_attrs.
25219
25220         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
25221
25222         PR target/44575
25223         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
25224         va_arg from a set of register save slots into a temporary,
25225         if the container is bigger than type size, do the copying
25226         using smaller mode or using memcpy.
25227
25228         PR bootstrap/44426
25229         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
25230         prototype.
25231         (sel_print_to_dot): Remove macro.
25232         (sel_print): Likewise.  New prototype.
25233         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
25234         (sel_print): New function.
25235
25236 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25237
25238         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
25239         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
25240
25241 2010-06-21  Nick Clifton  <nickc@redhat.com>
25242
25243         * config/rx/rx.h (PTRDIFF_TYPE): Define.
25244         (SMALL_REGISTER_CLASS): Define (to zero).
25245         (PRINT_OPERAND): Delete.
25246         (PRINT_OPERAND_ADDRESS): Delete.
25247         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
25248         (rx_print_operand_address): Delete prototype.
25249         * config/rx/rx.c (rx_print_operand): Make static.
25250         Allow %H and %L to handle CONST_DOUBLEs.
25251         (rx_print_operand_address): Make static.
25252         (rx_gen_move_template): Rename local variable 'template' to
25253         out_template.
25254         (rx_function_arg): Do not pass unknown sized objects in registers.
25255         (TARGET_PRINT_OPERAND): Define.
25256         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25257
25258 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
25259
25260         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
25261
25262 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
25263
25264         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
25265         stack-alignment for simple leaf-functions.
25266
25267 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25268
25269         * doc/install.texi: Document bootstrap-lto.
25270
25271 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
25272
25273         PR debug/44248
25274         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
25275         (input_function): Drop them here, if VTA is disabled.
25276
25277 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
25278
25279         PR target/44546
25280         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
25281         New predicate.
25282         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
25283         ix86_swapped_fp_comparsion_operator instead of
25284         ix86_fp_comparison_operator.
25285
25286         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
25287         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
25288         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
25289         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
25290         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
25291         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
25292
25293 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
25294
25295         PR other/32998
25296         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
25297         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
25298         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
25299         (decode_cmdline_option): Update for this return value.  Set
25300         orig_option_with_args_text field.  Set arg field for unknown
25301         options.  Make static.
25302         (decode_cmdline_options_to_array): New.
25303         (prune_options): Update handling of find_opt return value.
25304         * opts.c (read_cmdline_option): Take decoded option.  Return void.
25305         (read_cmdline_options): Take decoded options.
25306         (decode_options): Add parameters for decoded options.  Use
25307         decode_cmdline_options_to_array.  Use decoded options for -O
25308         scan.  Use integral_argument for -O parameters.  Update call to
25309         read_cmdline_options.
25310         (enable_warning_as_error): Update handling of find_opt return value.
25311         * opts.h: Update comment on unknown options.
25312         (struct cl_decoded_option): Update comments on opt_index and arg.
25313         Add orig_option_with_args_text.
25314         (decode_cmdline_option): Remove.
25315         (decode_cmdline_options_to_array): Declare.
25316         (decode_options): Update prototype.
25317         * toplev.c (save_argv): Remove.
25318         (save_decoded_options, save_decoded_options_count): New.
25319         (read_integral_parameter): Remove.
25320         (print_switch_values): Use decoded options.
25321         (toplev_main): Don't set save_argv.  Update call to decode_options.
25322         * toplev.h (read_integral_parameter): Remove.
25323         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
25324
25325 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
25326
25327         PR target/44072
25328         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
25329         immediate.
25330         * constraints.md (Pw, Px): New constraints.
25331         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
25332
25333 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
25334
25335         * config/i386/sse.md (fma4modesuffixf4): Removed.
25336         (ssemodesuffixf2s): Likewise.
25337         (ssemodesuffixf4): Likewise.
25338         (ssemodesuffixf2c): Likewise.
25339         (ssescalarmodesuffix2s): Likewise.
25340         (avxmodesuffixf2c): Likewise.
25341         (ssemodesuffix): New.
25342         (ssescalarmodesuffix): Likewise.
25343         Update patterns with ssemodesuffix and ssescalarmodesuffix.
25344
25345 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
25346
25347         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
25348
25349 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
25350
25351         * stor-layout.c (debug_rli): Remove unused local variables.
25352
25353 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
25354
25355         PR rtl-optimization/40900
25356         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
25357         original expression for later reuse.
25358         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
25359         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
25360
25361 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
25362
25363         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
25364         double_int_fits_in_uhwi_p): Implement as static inline.
25365         (double_int_xor): New inline function.
25366         (double_int_lrotate, double_int_rrotate, double_int_max,
25367         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25368         double_int_smin): Declare.
25369         (lrotate_double, rrotate_double): Remove declaration.
25370         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
25371         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
25372         (double_int_lrotate, double_int_rrotate, double_int_max,
25373         double_int_umax, double_int_smax, double_int_min, double_int_umin,
25374         double_int_smin): New function.
25375         * fold-const.c (int_const_binop): Clean up, use double_int_*
25376         functions.
25377         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
25378         double_int_* and immed_double_int_const functions.
25379
25380 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25381
25382         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
25383         * function.c (types_used_by_cur_var_decl): Likewise.
25384         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
25385
25386 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
25387
25388         * tree.h (record_layout_info): Change type of pending_statics field
25389         to a VEC.
25390         * stor-layout.c (start_record_layout): Store NULL into
25391         pending_statics.
25392         (debug_rli): Call debug_vec_tree instead of debug_tree.
25393         (place_field): Likewise.
25394         (finish_record_layout): Likewise.
25395
25396 2010-06-18  Alan Modra  <amodra@gmail.com>
25397
25398         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
25399
25400 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25401
25402         PR target/43740
25403         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
25404         for SET source operand from SET destination operand.
25405
25406 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
25407
25408         PR rtl-optimization/39871
25409         * reload1.c (init_eliminable_invariants): For flag_pic, disable
25410         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
25411         (function_invariant_p): Rule out a plus of frame or arg pointer with
25412         a SYMBOL_REF.
25413         * ira.c (find_reg_equiv_invariant_const): Likewise.
25414
25415 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
25416
25417         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
25418         print_operand_address and puts to output the operand for CONST.
25419
25420 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
25421
25422         PR debug/44572
25423         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
25424         hook.
25425
25426 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25427
25428         * v850-protos.h (print_operand): Delete.
25429         (print_operand_address): Delete.
25430         * v850.h (PRINT_OPERAND): Delete.
25431         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25432         (PRINT_OPERAND_ADDRESS): Delete.
25433         * v850.c (print_operand_address): Rename to...
25434         (v850_print_operand_address): ...this.  Make static. Call
25435         v850_print_operand.
25436         (print_operand): Rename to...
25437         (v850_print_operand): ...this.  Make static.  Call
25438         v850_print_operand_address.
25439         (v850_print_operand_punct_valid_p): New function.
25440         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25441         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25442
25443 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25444
25445         * config/sh/sh-protos.h (print_operand): Delete.
25446         (print_operand_address): Delete.
25447         * config/sh/sh.h (PRINT_OPERAND): Delete.
25448         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25449         (PRINT_OPERAND_ADDRESS): Delete.
25450         * config/sh/sh.c (sh_print_operand_address): Make static.
25451         (sh_print_operand): Make static.  Call sh_print_operand_address
25452         and sh_print_operand.
25453         (sh_print_operand_punct_valid_p): New function.
25454         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25455         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25456
25457 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25458
25459         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
25460         (mcore_print_operand_address): Delete.
25461         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
25462         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25463         (PRINT_OPERAND_ADDRESS): Delete.
25464         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
25465         (mcore_print_operand): Make static.
25466         (mcore_print_operand_punct_valid_p): New function.
25467         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
25468         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
25469
25470 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25471
25472         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
25473         (print_operand_address): Delete.
25474         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
25475         (PRINT_OPERAND_ADDRESS): Delete.
25476         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
25477         static.
25478         (m68hc11_print_operand): Make static.
25479         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25480
25481 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25482
25483         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
25484         (m32r_print_operand_address): Delete.
25485         * config/m32r/m32r.h (m32r_punct_chars): Delete.
25486         (PRINT_OPERAND): Delete.
25487         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25488         (PRINT_OPERAND_ADDRESS): Delete.
25489         * config/m32r/m32r.c (m32r_punct_chars): Make static.
25490         (m32r_print_operand_address): Make static.
25491         (m32r_print_operand): Make static.
25492         (m32r_print_operand_punct_valid_p): New function.
25493         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25494         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25495
25496 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25497
25498         * config/iq2000/iq2000-protos.h (print_operand): Delete.
25499         (print_operand_address): Delete.
25500         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
25501         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25502         (PRINT_OPERAND_ADDRESS): Delete.
25503         (iq2000_print_operand_punct): Delete.
25504         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
25505         (iq2000_print_operand_address): Make static.
25506         (iq2000_print_operand): Make static.
25507         (iq2000_print_operand_punct_valid_p): New function.
25508         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25509         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25510
25511 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25512
25513         * config/frv/frv-protos.h (frv_print_operand): Delete.
25514         (frv_print_operand_address): Delete.
25515         * config/frv/frv.h (PRINT_OPERAND): Delete.
25516         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25517         (PRINT_OPERAND_ADDRESS): Delete.
25518         * config/frv/frv.c (frv_print_operand_address): Make static.
25519         (frv_print_operand): Make static.
25520         (frv_print_operand_punct_valid_p): New function.
25521         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25522         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25523
25524 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
25525
25526         * tree.h (vec_member): Declare.
25527         * tree.c (vec_member): Define.
25528
25529 2010-06-17  Richard Guenther  <rguenther@suse.de>
25530
25531         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
25532         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
25533
25534 2010-06-17  Richard Guenther  <rguenther@suse.de>
25535
25536         * tree-inline.c (declare_return_variable): Remove bogus code.
25537
25538 2010-06-17  Richard Guenther  <rguenther@suse.de>
25539
25540         * gimplify.c (gimplify_bind_expr): Always promote complex
25541         and vector variables to registers if possible.
25542
25543 2010-06-17  Richard Guenther  <rguenther@suse.de>
25544
25545         * expr.c (get_inner_reference): Use double_int for bit_offset
25546         calculation.
25547
25548 2010-06-16  DJ Delorie  <dj@redhat.com>
25549
25550         * common.opt (-fstrict-volatile-bitfields): new.
25551         * doc/invoke.texi: Document it.
25552         * fold-const.c (optimize_bit_field_compare): For volatile
25553         bitfields, use the field's type to determine the mode, not the
25554         field's size.
25555         * expr.c (expand_assignment): Likewise.
25556         (get_inner_reference): Likewise.
25557         (expand_expr_real_1): Likewise.
25558         * expmed.c (store_fixed_bit_field): Likewise.
25559         (extract_bit_field_1): Likewise.
25560         (extract_fixed_bit_field): Likewise.
25561
25562 2010-06-16  Richard Guenther  <rguenther@suse.de>
25563
25564         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
25565
25566 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
25567
25568         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
25569         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
25570         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
25571         * debug.c: Likewise.
25572         * sdbout.c: Likewise.
25573         * vmsdbgout.c: Likewise.
25574         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
25575         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
25576         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
25577         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
25578         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
25579         * dwarf2out.c (dw_fde_struct): New fields
25580         dw_fde_vms_{end,begin}_prologue.
25581         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
25582         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
25583         (dwarf2out_vms_end_prologue): New function.
25584         (dwarf2out_vms_begin_epilogue): New function.
25585         (dw_val_struct): New value dw_val_class_vms_delta.
25586         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
25587         begin_epilogue for VMS.
25588         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
25589         new static functions.
25590         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
25591         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
25592         static functions.
25593         (print_die): New case dw_val_class_vms_delta.
25594         (attr_checksum): Likewise.
25595         (same_dw_val_p: Likewise.
25596         (size_of_die): Likewise.
25597         (value_format): Likewise.
25598         (output_die): Likewise.
25599         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
25600         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
25601         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
25602         dwarf2out_cfi_begin_epilogue
25603         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
25604
25605 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25606
25607         * config/cris/cris-protos.h (cris_print_operand): Delete.
25608         (cris_print_operand_address): Delete.
25609         * config/cris/cris.h (PRINT_OPERAND): Delete.
25610         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25611         (PRINT_OPERAND_ADDRESS): Delete.
25612         * config/cris/cris.c (cris_print_operand_address): Make static.
25613         (cris_print_operand): Make static.
25614         (cris_print_operand_punct_valid_p): New function.
25615         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25616         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25617
25618 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
25619
25620         * config/arm/arm-protos.h (arm_print_operand): Delete.
25621         (arm_print_operand_address): Delete.
25622         * config/arm/arm.h (PRINT_OPERAND): Delete.
25623         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
25624         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
25625         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
25626         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
25627         (arm_print_operand): Make static.
25628         (arm_print_operand_punct_valid_p): New function.
25629         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
25630         (TARGET_PRINT_OPERAND_ADDRESS): Define.
25631
25632 2010-06-16  Nick Clifton  <nickc@redhat.com>
25633
25634         * config/rx/constraints.md (NEGint4): New constraint.
25635         * config/rx/rx.md (attr cc): Add set_zsc.
25636         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
25637         initialised.
25638         (cmpsf): Likewise.
25639         (call_internal): Clobber the cc0 register.
25640         (call_value_internal): Likewise.
25641         (cstoresi4): Likewise.
25642         (movsieq): Likewise.
25643         (movsine): Likewise.
25644         (addsi3): Add alternative to handle small negative constants.
25645         (sunsi3): Likewise.
25646         (addsi3): Do not set the O bit in the cc0 register.
25647         (adddi3): Likewise.
25648         (subsi3): Likewise.
25649         (subdi3): Likewise.
25650         (andsi3): Reorder alternatives to prefer shorter forms.
25651         (mulsi3): Likewise.
25652         (iorsi3): Likewise.
25653         (negsi2): Note that the cc0 flags are set.
25654         (rotlsi3): Note that only the Z and S bits are set in cc0.
25655         (lshrsi3): Likewise.
25656         (ashlsi3): Likewise.
25657         (subsf3): Use %Q for the MEM operand.
25658         (fix_truncsfsi2): Likewise.
25659         (floatsisf2): Likewise.
25660         (bitset): Remove early clobber from destination.
25661         (bitset_in_memory): Likewise.
25662         (lrintsf2): Clobber the cc0 register.
25663         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
25664         (rx_print_operand): Handle %N.
25665
25666 2010-06-16  Jan Hubicka  <jh@suse.cz>
25667
25668         * df-core.c (df_compact_blocks): Free problem_temps vector.
25669
25670 2010-06-16  Martin Jambor  <mjambor@suse.cz>
25671
25672         PR tree-optimization/43905
25673         * tree-sra.c: Include tree-inline.h.
25674         (create_abstract_origin): Removed.
25675         (modify_function): Version the call graph node instead of creating
25676         abstract origins and dealing with same_body aliases.
25677         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
25678         function is versionable.
25679         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
25680
25681 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
25682
25683         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
25684         (CHOOSE_DYNAMIC_LINKER): Update.
25685
25686 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
25687
25688         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
25689         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
25690         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
25691         *prefetch_3dnow_rex.
25692
25693 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
25694
25695         * target.h (struct asm_out):Add declare_constant_name field.
25696         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25697         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
25698         * output.h (default_asm_declare_constant_name): Declare.
25699         (assemble_label): Update prototype.
25700         * varasm.c (assemble_constant_contents): Use
25701         targetm.asm_out.declare_constant_name target hook.
25702         (assemble_label): Add 'file' argument.
25703         (default_asm_declare_constant_name): New function.
25704         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
25705         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
25706         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
25707
25708         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
25709         * config/darwin.c (darwin_asm_declare_constant_name): New function.
25710         (machopic_output_indirection): Update assemble_label argument list.
25711         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
25712         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
25713
25714 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
25715
25716         PR middle-end/44391
25717         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25718         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
25719
25720 2010-06-15  Richard Guenther  <rguenther@suse.de>
25721
25722         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
25723
25724 2010-06-15  Paul Brook  <paul@codesourcery.com>
25725
25726         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
25727         hard-float ABI.
25728
25729 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
25730
25731         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
25732         don't get a vector type for output.
25733
25734 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
25735
25736         PR fortran/44536
25737         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
25738         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
25739         (LANG_HOOKS_DECLS): Add it.
25740         * gimplify.c (omp_notice_variable): Call
25741         lang_hooks.decls.omp_report_decl.
25742
25743 2010-06-15  Martin Jambor  <mjambor@suse.cz>
25744
25745         PR lto/44464
25746         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
25747         on the newly dead SSA name.
25748
25749 2010-06-15  Alan Modra  <amodra@gmail.com>
25750
25751         * doc/invoke.texi: Add mcmodel to powerpc options.
25752         * configure.ac: Add HAVE_LD_LARGE_TOC test.
25753         * configure: Regenerate.
25754         * config.in: Regenerate.
25755         * config/rs6000/linux64.opt (mcmodel): New.
25756         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
25757         (TARGET_CMODEL, SET_CMODEL): Define.
25758         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
25759         select CMODEL_MEDIUM default.
25760         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
25761         (TARGET_CMODEL): Define default.
25762         * config/rs6000/rs6000.c (cmodel): New variable.
25763         (rs6000_explicit_options): Add cmodel field.
25764         (rs6000_handle_option): Handle -mcmodel.
25765         (create_TOC_reference): Add largetoc_reg param.  Generate high,
25766         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
25767         (rs6000_delegitimize_address): Recognise new toc reference rtl
25768         and minimal-toc rtl.
25769         (rs6000_legitimize_reload_address): Handle new toc references.
25770         (print_operand_address): Handle legitimate_constant_pool_address_p
25771         match before lo_sum.
25772         (rs6000_eliminate_indexed_memrefs): Tidy.
25773         (rs6000_emit_move): Tweak threshold for inlining constants.
25774         Keep rs6000_emit_allocate_stack large stack frame offsets
25775         loaded into r0 inline.
25776         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
25777         (tocrel_base, tocrel_offset): New variables.
25778         (toc_relative_expr_p): Set them here.
25779         (print_operand_address): Skip over any offset on constant pool address.
25780         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
25781         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
25782         (offsettable_ok_by_alignment): New function.
25783         (rs6000_emit_move): Address suitably aligned local symbol_refs
25784         relative to the toc pointer for -mcmodel=medium.
25785         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
25786         strict param.  Allow lo_sum version of addressing.  Verify reg
25787         used for -mminimal-toc and -mcmodel != small.  Update all callers.
25788         * config/rs6000/constraints.md: Update for above change.
25789         * config/rs6000/predicates.md: Likewise.
25790         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
25791         code.
25792         (tls_gd): Split for -mcmodel=medium/large.
25793         (tls_gd_high, tls_gd_low): New.
25794         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
25795         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
25796         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
25797         (largetoc_high, largetoc_low): New.
25798         (cmptf_internal2): Add clobber.
25799         * config/rs6000/rs6000-protos.h: Update.
25800
25801 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
25802
25803         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
25804         true if no prefetch is going to be generated for a given group.
25805         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
25806         estimate the prefetch_count.
25807         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
25808         prefetch count by considering the unroll_factor and prefetch_mod
25809         for is_loop_prefetching_profitable.
25810
25811 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
25812
25813         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
25814         anything if the argument is not a MEM.
25815
25816 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25817
25818         PR debug/43650
25819         PR debug/44181
25820         PR debug/44247
25821         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
25822         debug stmts.
25823         (canonicalize_loop_ivs): Likewise.
25824
25825 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
25826
25827         PR debug/43656
25828         * haifa-sched.c (setup_insn_reg_pressure_info,
25829         update_register_pressure): Reject debug insns.
25830         (ready_sort): Don't setup reg pressure for debug insns.
25831         (schedule_insn): Don't update reg pressure for debug insns.
25832
25833 2010-06-14  Richard Guenther  <rguenther@suse.de>
25834
25835         * lto-streamer.c (cached_bp): Remove.
25836         (bitpack_delete): Likewise.
25837         (bitpack_create): Likewise.
25838         (bp_get_next_word): Likewise.
25839         (bp_pack_value, bp_unpack_value): Move ...
25840         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
25841         Re-implement.
25842         (struct bitpack_d): Likewise.
25843         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
25844         New inline functions.
25845         * lto-streamer-out.c (lto_output_bitpack): Remove.
25846         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25847         (pack_value_fields): Adjust.
25848         (lto_write_tree): Likewise.
25849         (output_gimple_stmt): Likewise.
25850         (output_function): Likewise.
25851         * lto-streamer-in.c (input_gimple_stmt): Adjust.
25852         (input_function): Likewise.
25853         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
25854         (lto_input_bitpack): Remove.
25855         (lto_materialize_tree): Adjust.
25856         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
25857         * lto-cgraph.c (lto_output_edge): Adjust.
25858         (lto_output_node): Likewise.
25859         (lto_output_varpool_node): Likewise.
25860         (lto_output_ref): Likewise.
25861         (input_node): Likewise.
25862         (input_varpool_node): Likewise.
25863         (input_ref): Likewise.
25864         (input_edge): Likewise.
25865         (output_node_opt_summary): Likewise.
25866         (input_node_opt_summary): Likewise.
25867         * ipa-pure-const.c (pure_const_write_summary): Likewise.
25868         (pure_const_read_summary): Likewise.
25869         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
25870         (ipa_read_indirect_edge_info): Likewise.
25871         (ipa_write_node_info): Likewise.
25872         (ipa_read_node_info): Likewise.
25873
25874 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
25875
25876         PR target/44534
25877         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
25878         (vec_extract_lo_v16hi): Likewise.
25879         (vec_extract_lo_v32qi): Likewise.
25880
25881 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25882
25883         PR bootstrap/44426
25884         * tree.h (build_call_expr): Don't define as vararg macro, instead
25885         add a prototype.
25886         * builtins.c (build_call_nofold): Remove.
25887         (expand_builtin_int_roundingfn, expand_builtin_pow,
25888         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
25889         expand_builtin_memset_args, expand_builtin_strcmp,
25890         expand_builtin_strncmp, expand_builtin_memory_chk): Use
25891         build_call_nofold_loc instead of build_call_nofold.
25892         (build_call_expr): New function.
25893
25894         PR tree-optimization/44508
25895         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
25896         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
25897         don't eliminate trivially dead stmts.
25898         * tree-vrp.c (vrp_finalize): Pass false as last argument
25899         to substitute_and_fold.
25900         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
25901         to substitute_and_fold.
25902         * tree-ssa-ccp.c (ccp_finalize): Likewise.
25903
25904         PR bootstrap/44509
25905         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
25906
25907 2010-06-14  Ira Rosen  <irar@il.ibm.com>
25908
25909         PR tree-optimization/44507
25910         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25911         to build initial vector for BIT_AND_EXPR.
25912         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
25913
25914 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
25915
25916         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
25917         adjust z10prop set_attr.
25918
25919 2010-06-13  Jan Hubicka  <jh@suse.cz>
25920
25921         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
25922         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
25923         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
25924         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
25925         datastructure checks into checking asserts.
25926         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
25927         * tree-ssa-sccvn.c (VN_INFO): Likewise.
25928         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
25929         df_ref_create_structure): Likewise.
25930         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
25931         pool_free): Use gcc_checking_assert.
25932         * alias.c (get_alias_set): Likewise.
25933         * var-tracking.c (variable_htab_free, shared_hash_copy,
25934         canonicalize_values_mark, variable_merge_over_cur): Likewise.
25935         * lto-streamer.c (bp_unpack_value): Likewise.
25936
25937 2010-06-13  Richard Guenther  <rguenther@suse.de>
25938
25939         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
25940         Do not stream but initialize TYPE_CANONICAL to NULL.
25941         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
25942         * gimple.c (gimple_types_compatible_p): Disregard
25943         TYPE_STRUCTURAL_EQUALITY_P.
25944         (gimple_register_type): Use TYPE_CANONICAL as cache.
25945         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
25946         before registering common types.
25947         * config/i386/i386.c (ix86_function_arg_boundary): Do not
25948         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
25949         * tree.h (TYPE_CANONICAL): Clarify documentation.
25950
25951 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
25952
25953         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
25954         LIBCALL_VALUE): Remove macros.
25955         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
25956         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
25957         TARGET_FUNCTION_VALUE_REGNO_P): Define.
25958         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
25959         (ia64_function_value): Make static. Handle receiving the function
25960         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
25961
25962 2010-06-12  Jan Hubicka  <jh@suse.cz>
25963
25964         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
25965         at correct place.
25966
25967 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
25968
25969         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
25970
25971 2010-06-12  Jan Hubicka  <jh@suse.cz>
25972
25973         * df-core.c (df_clear_bb_info): New function.
25974         (df_set_blocks): bb_info is always allocated.
25975         (df_get_bb_info): Use block_info_elt_size.
25976         (df_set_bb_info): Likewise.
25977         (df_compact_blocks): Update for new block_info.
25978         (grow_bb_info): New function.
25979         * df-problems.c (df_grow_bb_info): Move to df-core.c
25980         (df_rd_set_bb_info): Remove.
25981         (df_rd_free_bb_info): Do not free block pool.
25982         (df_rd_alloc): Do not create pool, use check for
25983         obstack presence instead of NULL pointer for new blocks.
25984         (df_rd_free): DO not free alloc pool; clear block_info.
25985         (problem_RD): Add size of block info structure.
25986         (df_lr_set_bb_info): Remove.
25987         (df_lr_free_bb_info): Do not free block pool.
25988         (df_lr_alloc): Do not create pool, use check for
25989         obstack presence instead of NULL pointer for new blocks.
25990         (df_lr_free): DO not free alloc pool; clear block_info.
25991         (problem_LR): Add size of block info structure.
25992         (df_live_set_bb_info): Remove.
25993         (df_live_free_bb_info): Do not free block pool.
25994         (df_live_alloc): Do not create pool, use check for
25995         obstack presence instead of NULL pointer for new blocks.
25996         (df_live_free): DO not free alloc pool; clear block_info.
25997         (problem_LIVE): Add size of block info structure.
25998         (problem_CHAIN): Add size of block info structure.
25999         (df_byte_lr_set_bb_info): Remove.
26000         (df_byte_lr_free_bb_info): Do not free block pool.
26001         (df_byte_lr_alloc): Do not create pool, use check for
26002         obstack presence instead of NULL pointer for new blocks.
26003         (df_byte_lr_free): DO not free alloc pool; clear block_info.
26004         (problem_BYTE_LR): Add size of block info structure.
26005         (problem_NOTE): Add size of block info structure.
26006         (df_byte_MD_set_bb_info): Remove.
26007         (df_byte_MD_free_bb_info): Do not free block pool.
26008         (df_byte_MD_alloc): Do not create pool, use check for
26009         obstack presence instead of NULL pointer for new blocks.
26010         (df_byte_MD_free): DO not free alloc pool; clear block_info.
26011         (problem_BD): Add size of block info structure.
26012         * df-scan.c (df_scan_free_internal): Free block pool.
26013         (df_scan_set_bb_info): Remove.
26014         (df_scan_free_bb_info): Check for artificial_defs instead
26015         of bb_info being non-NULL.
26016         (df_scan_alloc): DO not create df_scan_block pool.
26017         (problem_SCAN): Set size of block info.
26018         (df_bb_refs_record): Do not allocate bb_info.
26019         * df.h (df_problem): Add block_info_elt_size.
26020         (struct dataflow): Change block_info to void *.
26021         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
26022         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
26023         in-line structures.
26024
26025 2010-06-12  Jan Hubicka  <jh@suse.cz>
26026
26027         PR tree-optimize/44485
26028         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
26029         containing use of return value of noreturn function.
26030
26031 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
26032
26033         * targhooks.c (default_function_value): Don't use
26034         FUNCTION_OUTGOING_VALUE.
26035         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
26036         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
26037
26038 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
26039
26040         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
26041         Add crtfastmath.o to extra_parts.
26042         * config/mips/crtfastmath.c: New.
26043         * config/mips/linux.h (ENDFILE_SPEC): New.
26044
26045 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
26046
26047         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
26048         old_type in parameter.
26049         (gcc_type_for_value): Update call to gcc_type_for_interval.
26050         (compute_type_for_level_1): Renamed compute_type_for_level.
26051         Update call to gcc_type_for_interval.
26052
26053 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
26054
26055         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
26056         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
26057
26058 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
26059
26060         * opts-common.c: Include options.h.
26061         (integral_argument): Move from opts.c.
26062         (decode_cmdline_option): New.  Based on read_cmdline_option.
26063         * opts.c (integral_argument): Move to opts-common.c.
26064         (read_cmdline_option): Move most contents to
26065         decode_cmdline_option.  Use %qs in diagnostics.
26066         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
26067         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
26068         decode_cmdline_option): New.
26069
26070 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
26071
26072         PR target/44481
26073         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
26074         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
26075         (partiysi2_cmp): Ditto.
26076         (*partiyhi2_cmp): Ditto.
26077         (*parityqi2_cmp): Remove.
26078
26079 2010-06-11  Jan Hubicka  <jh@suse.cz>
26080
26081         * bitmap.h (bmp_iter_next_bit): New.
26082         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
26083
26084 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
26085             Eric Botcazou  <ebotcazou@adacore.com>
26086
26087         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
26088         computed cost.
26089
26090 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
26091
26092         * config/i386/i386.md (unspec): New define_c_enum.
26093         (unspecv): Ditto.
26094
26095 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
26096
26097         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
26098
26099 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
26100
26101         PR middle-end/44483
26102         * tree-if-conv.c (bb_predicate_s): New struct.
26103         (bb_predicate_p): New.
26104         (bb_has_predicate): New.
26105         (bb_predicate): New.
26106         (set_bb_predicate): New.
26107         (bb_predicate_gimplified_stmts): New.
26108         (set_bb_predicate_gimplified_stmts): New.
26109         (add_bb_predicate_gimplified_stmts): New.
26110         (init_bb_predicate): New.
26111         (free_bb_predicate): New.
26112         (is_predicated): Use bb_predicate.
26113         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
26114         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
26115         before processing their successors.
26116         (clean_predicate_lists): Removed.
26117         (find_phi_replacement_condition): Use bb_predicate.
26118         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
26119         computations.
26120         (insert_gimplified_predicates): New.
26121         (combine_blocks): Call insert_gimplified_predicates.
26122         (tree_if_conversion): Call free_bb_predicate instead of
26123         clean_predicate_lists.
26124
26125 2010-10-11  Paul Brook  <paul@codesourcery.com>
26126
26127         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
26128         * config/arm/arm.c (all_architectures): Change v7e-m default to
26129         cortexm4.
26130         * config/arm/arm-cores.def: Add cortex-m4.
26131         * config/arm/arm-tune.md: Regenerate.
26132
26133 2010-06-11  Jan Hubicka  <jh@suse.cz>
26134
26135         * ipa-pure-const.c (special_builtlin_state): New function.
26136         (check_call): Use it instead of special casign BUILT_IN_RETURN.
26137         (propagate_pure_const): Use it.
26138
26139 2010-06-11  Jan Hubicka  <jh@suse.cz>
26140
26141         * df-problems.c (df_live_scratch): Convert to bitmap_head.
26142         (df_live_alloc): Initialize df_live_scratch when initializing
26143         problem_data.
26144         (df_live_transfer_function): Update uses of df_live_scratch.
26145         (df_live_free): Free problem_data; clear df_live_scratch before
26146         releasing the obstack.
26147         (df_md_free): Free problem data.
26148
26149 2010-06-11  Jan Hubicka  <jh@suse.cz>
26150
26151         * doc/invoke.texi (Wsuggest-attribute): Document.
26152         (Wmissing-noreturn): Remove.
26153         * ipa-pure-const.c (warn_function_noreturn): New function.
26154         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
26155         warn_missing_noreturn.
26156         * common.opt (Wsuggest-attribute=noreturn): New.
26157         * tree-flow.h (warn_function_noreturn): Declare.
26158         * tree-cfg.c (execute_warn_function_noreturn): Use
26159         warn_function_noreturn.
26160         (gate_warn_function_noreturn): New.
26161         (pass_warn_function_noreturn): Update.
26162
26163 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26164
26165         * c-typeck.c (handle_warn_cast_qual): Add loc
26166         parameter. Improve warning message.
26167         (build_c_cast): Pass location to handle_warn_cast_qual.
26168
26169 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
26170
26171         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
26172         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
26173         insn mnemonic.
26174         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
26175
26176 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
26177
26178         Fix bootstap on mips
26179         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
26180         be naming typedefs.
26181
26182 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
26183
26184         * system.h (helper_const_non_const_cast): New inline for
26185         gcc version <= 4.0.
26186         (CONST_CAST2): For gcc version <= 4.0 use
26187         new helper to do const/non-const casting.
26188
26189 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26190
26191         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
26192         * Makefile.in (OBJS-common): Include insn-enums.o.
26193         (insn-enums.o): New rule.
26194         (simple_generated_c): Add insn-enums.c.
26195         (build/genenums.o): New rule.
26196         (genprogmd): Add "enums".
26197         * genconstants.c (print_enum_type): Declare a C string array
26198         for each enum.
26199         * genenums.c: New file.
26200         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
26201         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
26202         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
26203
26204 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26205
26206         * doc/md.texi (define_enum_attr): Document.
26207         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
26208         * read-md.h (lookup_enum_type): Declare.
26209         * read-md.c (lookup_enum_type): New function.
26210         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
26211         * genattrtab.c (attr_desc): Add an enum_name field.
26212         (evaluate_eq_attr): Take the associated attribute as argument.
26213         Get the enum prefix from the enum_name field, if defined.
26214         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
26215         (simplify_test_exp): Pass attr to evaluate_eq_attr.
26216         (add_attr_value): New function, split out from...
26217         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
26218         (write_test_expr): Pass attr to evaluate_eq_attr.
26219         (write_attr_get): Use the enum_name as the enum tag, if defined.
26220         (write_attr_valueq): Use the enum_name as a prefix, if defined.
26221         (find_attr): Initialize enum_name.
26222         (main): Handle DEFINE_ENUM_ATTR.
26223         * gensupport.c (process_rtx): Likewise.
26224         * config/mips/mips.h (mips_tune_attr): Delete.
26225         * config/mips/mips.md (cpu): Use define_attr_enum.
26226
26227 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26228
26229         * doc/md.texi (define_c_enum, define_enum): Document.
26230         * read-md.h (md_constant): Add a parent_enum field.
26231         (enum_value, enum_type): New structures.
26232         (upcase_string, traverse_enum_types): Declare.
26233         * read-md.c (enum_types): New variable.
26234         (upcase_string, add_constant): New functions.
26235         (handle_constants): Don't create the hash table here.
26236         Use add_constant.
26237         (traverse_md_constants): Don't check for a null md_constants.
26238         (decimal_string, handle_enum, traverse_enum_types): New functions.
26239         (read_md_files): Initialize md_constants and md_enums.
26240         * genconstants.c (print_md_constant): Ignore info argument.
26241         Only print constants that belong to no enum.
26242         (print_enum_type): New function.
26243         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
26244         for each defined enum type.
26245         * config/mips/mips.md (processor): New define_enum.
26246         (unspec): New define_c_enum.
26247         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
26248         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
26249         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
26250         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
26251         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
26252         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
26253         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
26254         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
26255         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
26256         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
26257         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
26258         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
26259         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
26260         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
26261         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
26262         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
26263         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
26264         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
26265         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
26266         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
26267         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
26268         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
26269         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26270         (UNSPEC_RDDSP): Move to mips-dsp.md.
26271         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
26272         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
26273         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
26274         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
26275         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
26276         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
26277         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
26278         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
26279         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
26280         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
26281         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
26282         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
26283         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
26284         Moved to mips-dspr2.md.
26285         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
26286         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
26287         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
26288         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
26289         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
26290         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
26291         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26292         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26293         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26294         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26295         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26296         UNSPEC_LOONGSON_PSADBH)
26297         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26298         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26299         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
26300         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26301         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26302         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26303         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
26304         (cpu): Update comment.
26305         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
26306         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
26307         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
26308         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
26309         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
26310         UNSPEC_LOONGSON_PCMPEQ)
26311         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
26312         UNSPEC_LOONGSON_PINSR_0)
26313         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
26314         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
26315         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
26316         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
26317         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
26318         UNSPEC_LOONGSON_PSADBH)
26319         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
26320         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
26321         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
26322         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
26323         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
26324         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
26325         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
26326         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
26327         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
26328         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
26329         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
26330         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
26331         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
26332         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
26333         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
26334         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
26335         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
26336         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
26337         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
26338         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
26339         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
26340         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
26341         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
26342         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
26343         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
26344         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
26345         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
26346         (UNSPEC_RDDSP): Moved from mips.md.
26347         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
26348         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
26349         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
26350         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
26351         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
26352         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
26353         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
26354         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
26355         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
26356         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
26357         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
26358         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
26359         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
26360         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
26361         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
26362         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
26363         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
26364         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
26365         (UNSPEC_SCC): Moved from mips.md.
26366         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
26367         "processor_type" to "processor".
26368         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
26369         * config/mips/mips.h (processor_type): Delete.
26370         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
26371         "processor_type" to "processor".
26372
26373 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26374
26375         * configure.ac (tm_include_list): Add insn-constants.h.
26376         * configure: Regenerate.
26377         * Makefile.in (GTM_H): Move insn-constants.h here from...
26378         (TM_H): ...here.
26379         * mkconfig.sh: Remove special handling for insn-constants.h.
26380
26381 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26382
26383         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
26384         (BUILD_MD): ...this new variable.
26385         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
26386         that include the old contents of simple_generated_h and
26387         simple_generated_c.
26388         (simple_generated_h, simple_generated_c): Include them.  Add
26389         insn-constants.h.
26390         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
26391         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
26392         Remove these dependencies from the main rule and include
26393         insn-conditions.md in the command line only if it appears
26394         in the dependency list.
26395         (insn-constants.h, s-constants): Delete.
26396         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
26397         or gensupport.h.
26398         (build/genmddeps.o): Likewise.
26399         (genprogrtl): New variable that contains everything from genprogmd
26400         except mddeps and constants.
26401         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
26402         depend on $(BUILD_MD)
26403         (genprog): New variable.  Make these programs depend on
26404         $(BUILD_ERRORS).
26405         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
26406         (main): Use read_md_files instead of init_rtx_reader_args.
26407         * genconstants.c: As for genmddeps.c.
26408         * read-md.h (read_skip_construct): Declare.
26409         * read-md.c (read_skip_construct): New function.
26410         (handle_file): Allow a null handle_directive, skipping the
26411         construct if so.
26412         (parse_include): Update the comment accordingly.
26413
26414 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26415
26416         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
26417         * genmddeps.c: Include read-md.h.
26418         (main): Call init_rtx_reader_args instead of init_md_reader_args.
26419         * genattr.c (main): Likewise.
26420         * genattrtab.c (main): Likewise.
26421         * genautomata.c (main): Likewise.
26422         * gencodes.c (main): Likewise.
26423         * genconditions.c (main): Likewise.
26424         * genconfig.c (main): Likewise.
26425         * genconstants.c (main): Likewise.
26426         * genemit.c (main): Likewise.
26427         * genextract.c (main): Likewise.
26428         * genflags.c (main): Likewise.
26429         * genopinit.c (main): Likewise.
26430         * genoutput.c (main): Likewise.
26431         * genpeep.c (main): Likewise.
26432         * genrecog.c (main): Likewise.
26433         * genpreds.c (main): Likewise.
26434         * gensupport.h (in_fname): Move to read-md.h.
26435         (init_md_reader_args_cb): Rename to...
26436         (init_rtx_reader_args_cb): ...this and return a bool.
26437         (init_md_reader_args): Rename to...
26438         (init_rtx_reader_args): ...this and return a bool.
26439         (include_callback): Move to read-md.h.
26440         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
26441         (file_name_list, first_dir_md_include): Move to read-md.c
26442         (first_bracket_include): Delete unused variable.
26443         (last_dir_md_include): Move to read-md.c.
26444         (process_include): Delete, moving code to read-md.c:handle_include.
26445         (process_rtx): Don't handle INCLUDE.
26446         (save_string): Delete.
26447         (rtx_handle_directive): New function.
26448         (init_md_reader_args_cb): Rename to...
26449         (init_rtx_reader_args_cb): ...this and return a boolean success value.
26450         Use read_md_args.
26451         (init_md_reader_args): Rename to...
26452         (init_rtx_reader_args): ...this and return a boolean success value.
26453         * rtl.def (INCLUDE): Delete.
26454         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
26455         argument.
26456         * read-rtl.c (read_conditions): Don't gobble ')' here.
26457         (read_mapping): Likewise.
26458         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
26459         Handle top-level non-rtx constructs here rather than in read_rtx_1.
26460         Store the whole queue in *X.  Remove call to init_md_reader.
26461         (read_rtx_1): Rename to...
26462         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
26463         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
26464         here.
26465         (read_nested_rtx): New function.  Handle (nil) here rather than
26466         in read_rtx_code.
26467         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
26468         gobble ')' here.
26469         * read-md.h (directive_handler_t): New type.
26470         (in_fname, include_callback): Moved from read-md.h.
26471         (read_constants, init_md_reader): Delete.
26472         (read_md_files): Declare.
26473         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
26474         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
26475         from gensupport.c.
26476         (read_constants): Rename to...
26477         (handle_constants): ...this.  Don't gobble ')' here.
26478         (handle_include, handle_file, handle_toplevel_file)
26479         (parse_include): New functions, mostly taken from gensupport.c.
26480         (init_md_reader): Subsume into...
26481         (read_md_files): ...this new function.
26482
26483 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26484
26485         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
26486         (unread_char): Decrement read_md_lineno after putting back '\n'.
26487         * read-md.c (fatal_with_file_and_line): Push back any characters
26488         that we decide not to add to the context.
26489         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
26490         fatal_expected_char in cases where '/' ends a line (for example).
26491         (read_name): Don't increment read_md_lineno here.
26492         (read_escape): Likewise.
26493         (read_quoted_string): Likewise.
26494         (read_braced_string): Likewise.
26495
26496 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26497
26498         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
26499         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
26500         * genconstants.c: Include read-md.h.
26501         * read-rtl.c (md_constants): Move to read-md.c.
26502         (md_name): Move to read-md.h.
26503         (initialize_iterators): Use leading_string_hash instead of def_hash
26504         and leading_string_eq_p instead of def_name_eq_p.
26505         (read_name): Move to read-md.c.
26506         (def_hash, def_name_eq_p): Delete.
26507         (read_constants, traverse_md_constants): Move to read-md.c.
26508         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
26509         * read-md.h: Include hashtab.h.
26510         (md_name): Moved from read-rtl.c.
26511         (md_constant): Moved from read-md.h.
26512         (leading_string_hash, leading_string_eq_p, read_name)
26513         (read_constants, traverse_md_constants): Declare.
26514         * read-md.c (md_constants): Moved from read-rtl.c.
26515         (leading_string_hash, leading_string_eq_p): New functions.
26516         (read_name, read_constants, traverse_md_constants): Moved from
26517         read-rtl.c.
26518
26519 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26520
26521         * read-rtl.c (md_name): New structure.
26522         (read_name): Take an md_name instead of a buffer pointer.
26523         Use the "string" field instead of strcpy when expanding constants.
26524         (read_constants): Remove the tmp_char argument.  Update the calls
26525         to read_name, using two local name buffers instead of the tmp_char
26526         argument.  Merge the constant-creation code.
26527         (read_conditions): Remove the tmp_char argument.  Update the calls
26528         to read_name, using a local name buffer instead of the tmp_char
26529         argument.
26530         (read_mapping): Replace tmp_char variable with a local name buffer.
26531         Update the calls to read_name.
26532         (read_rtx_1): Likewise.  Update the calls to read_constants and
26533         read_conditions.
26534
26535 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26536
26537         * Makefile.in (build/read-md.o): Depend on errors.h.
26538         * read-md.h (error_with_line): Declare.
26539         * read-md.c: Include errors.h.
26540         (message_with_line_1): New function, extracted from...
26541         (message_with_line): ...here.
26542         (error_with_line): New function.
26543         * genattrtab.c: If a call to message_with_line is followed by
26544         "have_error = 1;", replace both statements with a call to
26545         error_with_line.
26546         * genoutput.c: Likewise.
26547         * genpreds.c: Likewise.
26548         * genrecog.c: If a call to message_with_line is followed by
26549         "error_count++;", replace both statements with a call to
26550         error_with_line.
26551         (errorcount): Delete.
26552         (main): Don't check it.
26553         * gensupport.c: If a call to message_with_line is followed by
26554         "errors = 1;", replace both statements with a call to error_with_line.
26555         (errors): Delete.
26556         (process_define_cond_exec): Check have_error instead of errors.
26557         (init_md_reader_args_cb): Likewise.  Don't set errors.
26558
26559 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26560
26561         * read-md.h (read_md_file): Declare.
26562         (read_char, unread_char): New functions.
26563         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26564         (read_quoted_string, read_string): Remove FILE * argument.
26565         * read-md.c (read_md_file): New variable.
26566         (read_md_filename, read_md_lineno): Update comments and remove
26567         unnecessary initialization.
26568         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
26569         (read_escape, read_quoted_string, read_braced_string, read_string):
26570         Remove FILE * argument.  Update calls accordingly, using read_char
26571         and unread_char instead of getc and ungetc.
26572         * rtl.h (read_rtx): Remove FILE * argument.
26573         * read-rtl.c (iterator_group): Remove FILE * argument from
26574         "find_builtin".
26575         (iterator_traverse_data): Remove "infile" field.
26576         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
26577         (add_mapping, read_name, read_constants, read_conditions)
26578         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
26579         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
26580         Remove file arguments from all calls, using read_char and unread_char
26581         instead of getc and ungetc.
26582         * gensupport.c (process_include): Preserve read_md_file around
26583         the include.  Set read_md_file to the handle of the included file.
26584         Update call to read_rtx.
26585         (init_md_reader_args_cb): Set read_md_file to the handle of the file
26586         and remove local FILE *.  Update calls to read_rtx.
26587
26588 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26589
26590         * read-md.h (read_rtx_lineno): Rename to...
26591         (read_md_lineno): ...this.
26592         (read_rtx_filename): Rename to...
26593         (read_md_filename): ...this.
26594         (copy_rtx_ptr_loc): Rename to...
26595         (copy_md_ptr_loc): ...this.
26596         (print_rtx_ptr_loc): Rename to...
26597         (print_md_ptr_loc): ...this.
26598         * read-md.c: Likewise.  Update references after renaming.
26599         (string_obstack): Replace RTL with MD in comment.
26600         (set_rtx_ptr_loc): Rename to...
26601         (set_md_ptr_loc): ...this.
26602         (get_rtx_ptr_loc): Rename to...
26603         (get_md_ptr_loc): ...this.
26604         * genconditions.c: Update references after renaming.
26605         * genemit.c: Likewise.
26606         * genoutput.c: Likewise.
26607         * genpreds.c: Likewise.
26608         * gensupport.c: Likewise.
26609         * read-rtl.c: Likewise.
26610
26611 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
26612
26613         * Makefile.in (READ_MD_H): New variable.
26614         (BUILD_RTL): Add build/read-md.o.
26615         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
26616         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
26617         (build/genattrtab.o, build/genconditions.o build/genemit.o)
26618         (build/genextract.o, build/genflags.o, build/genoutput.o)
26619         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
26620         (build/read-md.o): New rule.
26621         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
26622         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
26623         * coretypes.h: ...here.
26624         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
26625         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
26626         * genattr.c: Include read-md.h.
26627         * genattrtab.c: Likewise.
26628         * genconditions.c: Likewise.
26629         * genemit.c: Likewise.
26630         * genextract.c: Likewise.
26631         * genflags.c: Likewise.
26632         * genoutput.c: Likewise.
26633         * genpreds.c: Likewise.
26634         * genrecog.c: Likewise.
26635         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
26636         (join_c_conditions, print_c_condition, read_rtx_filename)
26637         (read_rtx_lineno): Move to read-md.h.
26638         * read-rtl.c: Include read-md.h.
26639         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
26640         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
26641         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
26642         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
26643         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
26644         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
26645         (read_braced_string, read_string): Move to read-md.c.
26646         (read_rtx): Move some initialization to init_md_reader and call
26647         init_md_reader here.
26648         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
26649         Move to read-md.h.
26650         * gensupport.c: Include read-md.h.
26651         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
26652         * read-md.h, read-md.c: New files.
26653
26654 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
26655
26656         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26657         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26658         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
26659         * config/moxie/moxie.c (moxie_function_value): Make static.
26660         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
26661         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
26662
26663 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26664
26665         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
26666         * dbgcnt.def (tree_sra): New counter.
26667         * tree-sra.c: Include dbgcnt.h.
26668         (gate_intra_sra): Check tree_sra debug counter.
26669
26670 2010-06-10  Martin Jambor  <mjambor@suse.cz>
26671
26672         PR tree-optimization/44258
26673         * tree-sra.c (build_access_subtree): Return false iff there is a
26674         partial overlap.
26675         (build_access_trees): Likewise.
26676         (analyze_all_variable_accesses): Disqualify candidates if
26677         build_access_trees returns true for them.
26678
26679 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
26680
26681         PR debug/41371
26682         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
26683         tail-recurse into canonical node.  Fast-forward over
26684         non-canonical VALUEs.
26685
26686 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
26687
26688         PR boostrap/44470
26689         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
26690         (*addsi_1_zext) <TYPE_LEA>: Likewise.
26691         (add lea splitter): Likewise.
26692         (add_zext lea splitter): Likewise.
26693
26694 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
26695
26696         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
26697
26698 2010-06-10  Jan Hubicka  <jh@suse.cz>
26699
26700         * df-problems.c (df_live_problem_data): Add live_bitmaps.
26701         (df_live_alloc): Initialize problem data and live_osbtacks.
26702         (df_live_finalize): Remove obstack, problem data; do not
26703         clear all bitmaps.
26704         (df_live_top_dump, df_live_bottom_dump): Do not dump old
26705         data when not allocated.
26706         (df_live_verify_solution_start): Do not allocate problem data.
26707         (df_live_verify_solution_end): Check if out is allocated.
26708         (struct df_md_problem_data): New structure.
26709         (df_md_alloc): Allocate problem data.
26710         (df_md_free): Free problem data; do not clear bitmaps.
26711
26712 2010-06-10  Jan Beulich  <jbeulich@novell.com>
26713
26714         PR bootstrap/37304
26715         * configure.ac: Replace $() with ${} when intending to expand
26716         variables rather than invoking commands.
26717         * configure: Re-generate.
26718
26719 2010-06-10  Jan Hubicka  <jh@suse.cz>
26720
26721         PR rtl-optimization/44460
26722         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
26723         TYPE_NEEDS_CONSTRUCTING sanity check.
26724
26725 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
26726
26727         * doc/include/fdl.texi: Move to GFDL version 1.3.
26728
26729         * doc/cpp.texi: Move to GFDL version 1.3.
26730         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
26731         * doc/gccint.texi: Move to GFDL version 1.3.
26732         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
26733         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
26734         * doc/invoke.texi: Move to GFDL version 1.3.
26735
26736 2010-06-09  Jan Hubicka  <jh@suse.cz>
26737
26738         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
26739         Break out from ...
26740         (propagate) ... here; swap the order.
26741
26742 2010-06-09  Jan Hubicka  <jh@suse.cz>
26743
26744         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
26745         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
26746         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
26747         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
26748
26749 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26750
26751         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
26752         Do not the gather memory reference in the outer loop if the step
26753         is not a constant.
26754
26755 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
26756
26757         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
26758         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
26759         8 to 4.  Minor change of the related comments.
26760
26761 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26762
26763         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
26764         the scev analysis when the variable is not used outside the loop
26765         in a close phi node: call compute_overall_effect_of_inner_loop.
26766
26767 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26768
26769         * graphite-sese-to-poly.c (single_pred_cond): Renamed
26770         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
26771         (build_sese_conditions_before): Renamed call to single_pred_cond.
26772         (build_sese_conditions_after): Same.
26773
26774 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
26775
26776         * graphite-poly.h: Fix comments and indentation.
26777         * graphite-sese-to-poly.c: Same.
26778         (build_sese_conditions_before): Compute stmt and gbb only when needed.
26779         * tree-chrec.c: Fix comments and indentation.
26780         (tree-ssa-loop-niter.c): Same.
26781
26782 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
26783
26784         PR rtl-optimization/42461
26785         * dce.c (deletable_insn_p): Return true for const or pure calls again.
26786         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
26787
26788 2010-06-09  Jan Hubicka  <jh@suse.cz>
26789
26790         * bitmap.c (bitmap_and): Walk array forward.
26791         (bitmap_and_compl_into): Likewise.
26792         (bitmap_xor): Likewise.
26793         (bitmap_xor_into):  Likewise.
26794         (bitmap_equal_p): Likewise.
26795         (bitmap_intersect_p): Likewise.
26796         (bitmap_intersect_compl_p): Likewise.
26797         (bitmap_ior_and_into): Likewise.
26798         (bitmap_elt_copy): Likewise.
26799         (bitmap_and_compl): Likewise.
26800         (bitmap_elt_ior): Likewise.
26801
26802 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
26803
26804         * opts-common.c (prune_options): Ensure replacement argv array
26805         is correctly terminated by a NULL entry.
26806
26807 2010-06-09  Jan Hubicka  <jh@suse.cz>
26808
26809         * cgraph.h (varpool_first_static_initializer,
26810         varpool_next_static_initializer): Make checking only when
26811         checking enabled.
26812         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
26813         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
26814         gcc_assert to gcc_checking_assert.
26815         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
26816         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
26817         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
26818         op_iter_init_phiuse, op_iter_init_phidef,
26819         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
26820         gcc_checking_assert.
26821         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
26822         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
26823         partition_is_global, live_on_entry, live_on_exit,
26824         live_merge_and_clear): Likewise.
26825         * system.h (gcc_checking_assert): New macro.
26826         * gimple.h (set_bb_seq): Use gcc_checking_assert.
26827
26828 2010-06-09  Jason Merrill  <jason@redhat.com>
26829
26830         * Makefile.in (TAGS): Collect tags info from c-family.
26831
26832 2010-06-09  Jan Hubicka  <jh@suse.cz>
26833
26834         * gimple.h (gcc_gimple_checking_assert): New macro.
26835         (gimple_set_def_ops, gimple_set_use_ops,
26836         gimple_set_vuse, gimple_set_vdef,
26837         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
26838         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
26839         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
26840         gimple_asm_output_op, gimple_asm_output_op_ptr,
26841         gimple_asm_set_output_op, gimple_asm_clobber_op,
26842         gimple_asm_set_clobber_op, gimple_asm_label_op,
26843         gimple_asm_set_label_op, gimple_try_set_kind,
26844         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
26845         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
26846         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
26847         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
26848         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
26849         gimple_omp_for_set_initial, gimple_omp_for_final,
26850         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
26851         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
26852         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
26853         conditional with ENABLE_GIMPLE_CHECKING.
26854         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
26855
26856 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
26857
26858         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
26859         (get_computation_cost_at): Use it.
26860         (determine_use_iv_cost_condition): Likewise.
26861         (determine_iv_cost): Likewise.
26862
26863 2010-06-09  Richard Guenther  <rguenther@suse.de>
26864
26865         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
26866         replace constants.
26867
26868 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
26869
26870         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
26871
26872 2010-06-09  Martin Jambor  <mjambor@suse.cz>
26873
26874         PR tree-optimization/44423
26875         * tree-sra.c (dump_access): Dump also grp_assignment_read.
26876         (analyze_access_subtree): Pass negative allow_replacements to children
26877         if the current type is scalar.
26878
26879 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26880
26881         PR testsuite/42843
26882         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
26883         * doc/plugins.texi (Plugin license check): Update information
26884         on type of plugin_is_GPL_compatible.
26885         * Makefile.in (PLUGINCC): Define as $(COMPILER).
26886         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
26887
26888 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
26889
26890         * config/arm/arm.c (thumb2_reorg): New function.
26891         (arm_reorg): Call it.
26892         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26893         arithmetic operations): Delete.
26894
26895 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
26896
26897         PR target/44067
26898         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
26899         e500v2 target.
26900
26901 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
26902
26903         PR plugins/44459
26904         * gcc-plugin.h: Encapsulate all declarations in extern "C".
26905
26906 2010-06-08  Jan Hubicka  <jh@suse.cz>
26907
26908         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
26909         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
26910
26911 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
26912
26913         PR tree-optimization/39874
26914         PR middle-end/28685
26915         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
26916         Declare.
26917         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
26918         same_bool_result_p): New.
26919         (and_var_with_comparison, and_var_with_comparison_1,
26920         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
26921         (or_var_with_comparison, or_var_with_comparison_1,
26922         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
26923         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
26924         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
26925         of combine_comparisons.
26926         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
26927
26928 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
26929
26930         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26931         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
26932         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
26933         pdp11_function_value_regno_p): New functions.
26934         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
26935         TARGET_FUNCTION_VALUE_REGNO_P): Define.
26936
26937 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
26938
26939         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
26940         Thumb-2 in the MINUS case.
26941
26942 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26943
26944         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
26945
26946         * doc/gty.texi (GTY Options): Document typed GC allocation and
26947         variable_size GTY option.
26948
26949         * ggc-internal.h: New.
26950
26951         * ggc.h: Update copyright year.
26952         (digit_string): Move to stringpool.c.
26953         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
26954         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
26955         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
26956         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
26957         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
26958         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
26959         (ggc_force_collect, ggc_get_size, ggc_statistics)
26960         (ggc_print_common_statistics): Move to ggc-internal.h.
26961         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
26962         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
26963         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
26964         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
26965         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
26966         (ggc_alloc_zone_pass_stat): Remove.
26967         (ggc_internal_alloc_stat, ggc_internal_alloc)
26968         (ggc_internal_cleared_alloc_stat): New.
26969         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
26970         (ggc_internal_vec_alloc_stat)
26971         (ggc_internal_cleared_vec_alloc_stat)
26972         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
26973         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
26974         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
26975         (ggc_cleared_alloc_ptr_array_two_args): New.
26976         (htab_create_ggc, splay_tree_new_ggc): Redefine.
26977         (ggc_splay_alloc): Change the type of the first argument to
26978         enum gt_types_enum.
26979         (ggc_alloc_string): Make macro.
26980         (ggc_alloc_string_stat): New.
26981         (ggc_strdup): Redefine.
26982         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
26983         (ggc_alloc_rtvec_sized): New.
26984         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
26985         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
26986         (ggc_internal_cleared_alloc_zone_stat)
26987         (ggc_internal_zone_alloc_stat)
26988         (ggc_internal_zone_cleared_alloc_stat)
26989         (ggc_internal_zone_vec_alloc_stat)
26990         (ggc_alloc_zone_rtx_def_stat)
26991         (ggc_alloc_zone_tree_node_stat)
26992         (ggc_alloc_zone_cleared_tree_node_stat)
26993         (ggc_alloc_cleared_gimple_statement_d_stat): New.
26994
26995         * ggc-common.c: Include ggc-internal.h.
26996         (ggc_internal_cleared_alloc_stat): Rename from
26997         ggc_alloc_cleared_stat.
26998         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
26999         (ggc_calloc): Remove.
27000         (ggc_cleared_alloc_htab_ignore_args): New.
27001         (ggc_cleared_alloc_ptr_array_two_args): New.
27002         (ggc_splay_alloc): Add obj_type parameter.
27003         (init_ggc_heuristics): Formatting fixes.
27004
27005         * ggc-none.c: Update copyright year.
27006         (ggc_alloc_stat): Rename to ggc_alloc_stat.
27007         (ggc_alloc_cleared_stat): Rename to
27008         ggc_internal_cleared_alloc_stat.
27009         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
27010
27011         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
27012         Remove references to ggc_alloc in comments.
27013         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
27014         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
27015         (new_ggc_zone, destroy_ggc_zone): Remove.
27016         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
27017
27018         * ggc-zone.c: Include ggc-internal.h.  Remove references to
27019         ggc_alloc in comments.
27020         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
27021         (ggc_internal_alloc_zone_pass_stat): New.
27022         (ggc_internal_cleared_alloc_zone_stat): New.
27023         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
27024         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
27025         (new_ggc_zone, destroy_ggc_zone): Remove.
27026
27027         * stringpool.c: Update copyright year.  Include ggc-internal.h
27028         (digit_vector): Make static.
27029         (digit_string): Moved from ggc.h.
27030         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
27031         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
27032
27033         * Makefile.in (GGC_INTERNAL_H): New.
27034         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
27035         $(GGC_INTERNAL_H) to dependencies.
27036
27037         * gengtype.c: Update copyright year.
27038         (walk_type): Accept variable_size GTY option.
27039         (USED_BY_TYPED_GC_P): New macro.
27040         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
27041         whitespace at the end of strings.
27042         (get_type_specifier, variable_size_p): New functions.
27043         (alloc_quantity, alloc_zone): New enums.
27044         (write_typed_alloc_def): New function.
27045         (write_typed_struct_alloc_def): Likewise.
27046         (write_typed_typed_typedef_alloc_def): Likewise.
27047         (write_typed_alloc_defns): Likewise.
27048         (output_typename, write_splay_tree_allocator_def): Likewise.
27049         (write_splay_tree_allocators): Likewise.
27050         (main): Call write_typed_alloc_defns and
27051         write_splay_tree_allocators.
27052
27053         * lto-streamer.h (lto_file_decl_data_ptr): New.
27054
27055         * passes.c (order): Define using cgraph_node_ptr.
27056
27057         * strinpool.c (struct string_pool_data): Declare nested_ptr using
27058         ht_identifier_ptr.
27059
27060         * gimple.h (union gimple_statement_d): Likewise.
27061
27062         * rtl.h (struct rtx_def): Likewise.
27063         (struct rtvec_def): Likewise.
27064
27065         * tree.h (union tree_node): Likewise.
27066
27067         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
27068
27069         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
27070
27071         * tree-scalar-evolution.c (scev_initialize): Likewise.
27072
27073         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
27074
27075         * dwarf2asm.c (dw2_force_const_mem): Likewise.
27076
27077         * omp-low.c (lower_omp_critical): Likewise.
27078
27079         * bitmap.h (struct bitmap_head_def): Update comment to not
27080         reference ggc_alloc.
27081
27082         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
27083
27084         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
27085
27086         * ipa-prop.c (duplicate_ggc_array): Rename to
27087         duplicate_ipa_jump_func_array.  Use typed GC allocation.
27088         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
27089
27090         * gimple.c (gimple_alloc_stat): Use
27091         ggc_alloc_cleared_gimple_statement_d_stat.
27092
27093         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
27094
27095         * tree.c (make_node_stat): Use
27096         ggc_alloc_zone_cleared_tree_node_stat.
27097         (make_tree_vec_stat): Likewise.
27098         (build_vl_exp_stat): Likewise.
27099         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
27100         (make_tree_binfo_stat): Likewise.
27101         (tree_cons_stat): Likewise.
27102
27103         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
27104         (shallow_copy_rtx_stat): Likewise.
27105         (make_node_stat): Likewise.
27106
27107         * lto-symtab.c: Fix comment.
27108
27109         * tree-cfg.c (create_bb): Update comment to not reference
27110         ggc_alloc_cleared.
27111         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
27112
27113         * varpool.c (varpool_node): Use typed GC allocation.
27114         (varpool_extra_name_alias): Likewise.
27115
27116         * varasm.c (emutls_decl): Likewise.
27117         (get_unnamed_section): Likewise.
27118         (get_noswitch_section): Likewise.
27119         (get_section): Likewise.
27120         (get_block_for_section): Likewise.
27121         (build_constant_desc): Likewise.
27122         (create_constant_pool): Likewise.
27123         (force_const_mem): Likewise.
27124
27125         * tree.c (build_vl_exp_stat): Likewise.
27126         (build_real): Likewise.
27127         (build_string): Likewise.
27128         (decl_debug_expr_insert): Likewise.
27129         (decl_value_expr_insert): Likewise.
27130         (type_hash_add): Likewise.
27131         (build_omp_clause): Likewise.
27132
27133         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
27134
27135         * tree-ssa.c (init_tree_ssa): Likewise.
27136
27137         * tree-ssa-structalias.c (heapvar_insert): Likewise.
27138
27139         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
27140
27141         * tree-ssa-loop-niter.c (record_estimate): Likewise.
27142
27143         * tree-ssa-alias.c (get_ptr_info): Likewise.
27144
27145         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
27146
27147         * tree-phinodes.c (allocate_phi_node): Likewise.
27148
27149         * tree-iterator.c (tsi_link_before): Likewise.
27150         (tsi_link_after): Likewise.
27151
27152         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
27153
27154         * tree-dfa.c (create_var_ann): Likewise.
27155
27156         * tree-cfg.c (create_bb): Likewise.
27157
27158         * toplev.c (alloc_for_identifier_to_locale): Likewise.
27159         (general_init): Likewise.
27160
27161         * stringpool.c (stringpool_ggc_alloc): Likewise.
27162         (gt_pch_save_stringpool): Likewise.
27163
27164         * sese.c (if_region_set_false_region): Likewise.
27165
27166         * passes.c (do_per_function_toporder): Likewise.
27167
27168         * optabs.c (set_optab_libfunc): Likewise.
27169         (set_conv_libfunc): Likewise.
27170
27171         * lto-symtab.c (lto_symtab_register_decl): Likewise.
27172
27173         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
27174         (input_eh_region): Likewise.
27175         (input_eh_lp): Likewise.
27176         (make_new_block): Likewise.
27177         (unpack_ts_real_cst_value_fields): Likewise.
27178
27179         * lto-section-in.c (lto_new_in_decl_state): Likewise.
27180
27181         * lto-cgraph.c (input_node_opt_summary): Likewise.
27182
27183         * loop-init.c (loop_optimizer_init): Likewise.
27184
27185         * lambda.h (lambda_vector_new): Likewise.
27186
27187         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
27188
27189         * ira.c (update_equiv_regs): Likewise.
27190
27191         * ipa.c (cgraph_node_set_new): Likewise.
27192         (cgraph_node_set_add): Likewise.
27193         (varpool_node_set_new): Likewise.
27194         (varpool_node_set_add): Likewise.
27195
27196         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
27197         (duplicate_ipa_jump_func_array): Likewise.
27198         (ipa_read_node_info): Likewise.
27199
27200         * ipa-cp.c (ipcp_create_replace_map): Likewise.
27201
27202         * integrate.c (get_hard_reg_initial_val): Likewise.
27203
27204         * gimple.c (gimple_alloc_stat): Likewise.
27205         (gimple_build_omp_for): Likewise.
27206         (gimple_seq_alloc): Likewise.
27207         (gimple_copy): Likewise.
27208
27209         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
27210         (gsi_insert_after_without_update): Likewise.
27211
27212         * function.c (add_frame_space): Likewise.
27213         (insert_temp_slot_address): Likewise.
27214         (assign_stack_temp_for_type): Likewise.
27215         (allocate_struct_function): Likewise.
27216         (types_used_by_var_decl_insert): Likewise.
27217
27218         * except.c (init_eh_for_function): Likewise.
27219         (gen_eh_region): Likewise.
27220         (gen_eh_region_catch): Likewise.
27221         (gen_eh_landing_pad): Likewise.
27222         (add_call_site): Likewise.
27223
27224         * emit-rtl.c (get_mem_attrs): Likewise.
27225         (get_reg_attrs): Likewise.
27226         (start_sequence): Likewise.
27227         (init_emit): Likewise.
27228
27229         * dwarf2out.c (new_cfi): Likewise.
27230         (queue_reg_save): Likewise.
27231         (dwarf2out_frame_init): Likewise.
27232         (new_loc_descr): Likewise.
27233         (find_AT_string): Likewise.
27234         (new_die): Likewise.
27235         (add_var_loc_to_decl): Likewise.
27236         (clone_die): Likewise.
27237         (clone_as_declaration): Likewise.
27238         (break_out_comdat_types): Likewise.
27239         (new_loc_list): Likewise.
27240         (loc_descriptor): Likewise.
27241         (add_loc_descr_to_each): Likewise.
27242         (add_const_value_attribute): Likewise.
27243         (tree_add_const_value_attribute): Likewise.
27244         (add_comp_dir_attribute): Likewise.
27245         (add_name_and_src_coords_attributes): Likewise.
27246         (lookup_filename): Likewise.
27247         (store_vcall_insn): Likewise.
27248         (dwarf2out_init): Likewise.
27249
27250         * dbxout.c (dbxout_init): Likewise.
27251
27252         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
27253
27254         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
27255
27256         * config/score/score7.c (score7_output_external): Likewise.
27257
27258         * config/score/score3.c (score3_output_external): Likewise.
27259
27260         * config/s390/s390.c (s390_init_machine_status): Likewise.
27261
27262         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
27263         (rs6000_init_machine_status): Likewise.
27264         (output_toc): Likewise.
27265
27266         * config/pa/pa.c (pa_init_machine_status): Likewise.
27267         (get_deferred_plabel): Likewise.
27268
27269         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
27270
27271         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
27272
27273         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
27274
27275         * config/mep/mep.c (mep_init_machine_status): Likewise.
27276         (mep_note_pragma_flag): Likewise.
27277
27278         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
27279
27280         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
27281
27282         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
27283
27284         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
27285         (i386_pe_maybe_record_exported_symbol): Likewise.
27286
27287         * config/i386/i386.c (get_dllimport_decl): Likewise.
27288         (ix86_init_machine_status): Likewise.
27289         (assign_386_stack_local): Likewise.
27290
27291         * config/frv/frv.c (frv_init_machine_status): Likewise.
27292
27293         * config/darwin.c (machopic_indirection_name): Likewise.
27294
27295         * config/cris/cris.c (cris_init_machine_status): Likewise.
27296
27297         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
27298
27299         * config/avr/avr.c (avr_init_machine_status): Likewise.
27300
27301         * config/arm/arm.c (arm_init_machine_status): Likewise.
27302
27303         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
27304         (alpha_need_linkage): Likewise.
27305         (alpha_use_linkage): Likewise.
27306
27307         * cgraph.c (cgraph_allocate_node): Likewise.
27308         (cgraph_create_edge_1): Likewise.
27309         (cgraph_create_indirect_edge): Likewise.
27310         (cgraph_add_asm_node): Likewise.
27311
27312         * cfgrtl.c (init_rtl_bb_info): Likewise.
27313
27314         * cfgloop.c (alloc_loop): Likewise.
27315         (rescan_loop_exit): Likewise.
27316
27317         * cfg.c (init_flow): Likewise.
27318         (alloc_block): Likewise.
27319         (unchecked_make_edge): Likewise.
27320
27321         * c-parser.c (c_parse_init): Likewise.
27322         (c_parse_file): Likewise.
27323
27324         * c-decl.c (bind): Likewise.
27325         (record_inline_static): Likewise.
27326         (push_scope): Likewise.
27327         (make_label): Likewise.
27328         (lookup_label_for_goto): Likewise.
27329         (finish_struct): Likewise.
27330         (finish_enum): Likewise.
27331         (c_push_function_context): Likewise.
27332
27333         * bitmap.c (bitmap_element_allocate): Likewise.
27334         (bitmap_gc_alloc_stat): Likewise.
27335
27336         * alias.c (record_alias_subset): Likewise.
27337         (init_alias_analysis): Likewise.
27338
27339 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
27340
27341         * fold-const.c (fold_comparison): Remove redundant parenthesis.
27342         * tree-inline.c (expand_call_inline): Pass translated return value of
27343         cgraph_inline_failed_string to diagnostic function.
27344
27345 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
27346             Shujing Zhao  <pearly.zhao@oracle.com>
27347
27348         PR c/37724
27349         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
27350         implicit bad conversions is initialization.
27351         (error_init): Use gmsgid instead of msgid for argument name and change
27352         the call for error.
27353         (pedwarn_init): Use gmsgid instead of msgid for argument name and
27354         change the call for pedwarn.
27355         (warning_init): Use gmsgid instead of msgid for argument name and
27356         change the call for warning.
27357
27358 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
27359
27360         * config/mips/mips-protos.h (mips_print_operand): Delete.
27361         (mips_print_operand_address): Delete.
27362         * config/mips/mips.h (mips_print_operand_punct): Delete.
27363         (PRINT_OPERAND): Delete.
27364         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27365         (PRINT_OPERAND_ADDRESS): Delete.
27366         * config/mips/mips.c (mips_print_operand_punct): Make static.
27367         (mips_print_operand_address): Make static.
27368         (mips_print_operand): Make static.  Call
27369         mips_print_operand_punct_valid_p.
27370         (mips_print_operand_punct_valid_p): New function.
27371         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
27372         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27373
27374 2010-06-07  Jan Hubicka  <jh@suse.cz>
27375
27376         PR middle-end/44454
27377         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
27378         are allocated.
27379
27380 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
27381
27382         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
27383         name of RECORD.
27384
27385 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27386
27387         * doc/sourcebuild.texi (Effective-Target Keywords, Other
27388         attributes): Document gas.
27389
27390 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
27391
27392         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
27393         <TYPE_LEA>: Split instruction.
27394         <default>: Remove alternative 2 handling.
27395         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
27396         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
27397         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
27398
27399         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
27400         (ashift_zext lea splitter): Use DImode for multiplication.
27401
27402         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
27403         to generate addition.
27404
27405 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
27406
27407         * common.opt (fira-verbose): Use Var.
27408         (fpcc-struct-return): Use Init instead of VarExists.
27409         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
27410         toplev.c.
27411         * flags.h (flag_signed_char, flag_short_enums,
27412         flag_pcc_struct_return, flag_ira_verbose,
27413         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
27414         * toplev.c (flag_detailed_statistics, flag_signed_char,
27415         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
27416         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
27417         * toplev.h (flag_crossjumping, flag_if_conversion,
27418         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
27419         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
27420         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
27421         flag_cprop_registers, time_report, flag_ira_loop_pressure,
27422         flag_ira_coalesce, flag_ira_move_spills,
27423         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
27424
27425 2010-06-07  Jan Hubicka  <jh@suse.cz>
27426
27427         * df-core.c (df_analyze_problem): Do verification after allocation.
27428
27429         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
27430         (df_lr_alloc): Initialize problem data; move bitmaps to
27431         lr_bitmaps obstack.
27432         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
27433         (df_lr_verify_solution_start): Do not initialize problem data;
27434         allocate bitmaps in lr_bitmaps.
27435         (df_lr_verify_solution_end): Do not free problem data.
27436
27437 2010-06-07  Jan Hubicka  <jh@suse.cz>
27438
27439         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
27440         if caller is noreturn.
27441         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
27442         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
27443         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
27444         * ipa-pure-const.c (check_decl): Add IPA parameter.
27445         (state_from_flags): New function.
27446         (better_state, worse_state): New functions.
27447         (check_call): When in IPA mode, do not care about callees.
27448         (check_load, check_store): Update.
27449         (check_ipa_load, check_ipa_store): New.
27450         (check_stmt): When in IPA mode, use IPA checkers.
27451         (analyze_function): Use state_from_flags.
27452         (propagate): Check indirect edges and references.
27453
27454 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
27455
27456         PR rtl-optimization/44404
27457         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
27458         of count_occurrences to see if it's safe to modify mem_insn.
27459
27460 2010-06-07  Richard Guenther  <rguenther@suse.de>
27461
27462         * gimplify.c (gimplify_cleanup_point_expr): For empty body
27463         and EH-only cleanup drop the cleanup instead of inserting it
27464         unconditionally.
27465
27466 2010-06-07  Ira Rosen  <irar@il.ibm.com>
27467
27468         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
27469         documentation.
27470         * targhooks.c (default_builtin_vectorization_cost): New function.
27471         * targhooks.h (default_builtin_vectorization_cost): Declare.
27472         * target.h (enum vect_cost_for_stmt): Define.
27473         (builtin_vectorization_cost): Change argument and comment.
27474         * tree-vectorizer.h: Remove cost model macros.
27475         * tree-vect-loop.c: Include target.h.
27476         (vect_get_cost): New function.
27477         (vect_estimate_min_profitable_iters): Replace cost model macros with
27478         calls to vect_get_cost.
27479         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
27480         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
27481         default implementation.
27482         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
27483         calls to target hook builtin_vectorization_cost.
27484         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
27485         Likewise.
27486         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
27487         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
27488         implementation to return costs.
27489         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
27490         * config/spu/spu.h: Remove vectorizer cost model macros.
27491         * config/i386/i386.h: Likewise.
27492         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
27493         a call to target hook builtin_vectorization_cost.
27494
27495 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
27496
27497         PR target/44319
27498         * config/i386/i386.c (override_options): Turn zee pass on for level 2
27499         and above and defer till target is known.
27500         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
27501         turn off otherwise.
27502
27503 2010-05-25  Jan Hubicka  <jh@suse.cz>
27504
27505         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
27506         (df_compact_blocks): Likewise.
27507         * df.h (struct df): Turn hardware_regs_used,
27508         regular_block_artificial_uses, eh_block_artificial_uses,
27509         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
27510         bitmap_head.
27511         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
27512         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
27513         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
27514         df_scan_blocks, df_insn_delete, df_insn_rescan,
27515         df_insn_rescan_debug_internal, df_insn_rescan_all,
27516         df_process_deferred_rescans, df_process_deferred_rescans,
27517         df_notes_rescan, df_get_call_refs, df_get_call_refs,
27518         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
27519         df_record_entry_block_defs, df_record_exit_block_uses,
27520         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
27521         df_scan_verify): Update.
27522
27523 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
27524
27525         PR c++/44188
27526         * c-common.c (is_typedef_decl): Move this definition ...
27527         * tree.c (is_typedef_decl): ... here.
27528         (typdef_variant_p): Move definition here from cp/tree.c.
27529         * c-common.h (is_typedef_decl): Move this declaration ...
27530         * tree.h (is_typedef_decl): ... here.
27531         (typedef_variant_p): Move declaration here from cp/cp-tree.h
27532         * dwarf2out.c (is_naming_typedef_decl): New function.
27533         (gen_tagged_type_die): Split out of ...
27534         (gen_type_die_with_usage): ... this function. When an anonymous
27535         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
27536         is emitted for the typedef.
27537         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
27538         anonymous tagged types.
27539
27540 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27541
27542         PR c/20000
27543         * c-decl.c (grokdeclarator): Delete warning.
27544
27545 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
27546
27547         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
27548         newly built CALL_EXPR.
27549         * tree-profile.c (tree_profiling): Don't profile functions produced
27550         for built-in stuff.
27551
27552 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
27553
27554         PR bootstrap/44427
27555         PR bootstrap/44428
27556         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
27557         endianness-independent.
27558
27559 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
27560
27561         * c-common.c: Move to c-family/.
27562         * c-common.def: Likewise.
27563         * c-common.h: Likewise.
27564         * c-cppbuiltin.c: Likewise.
27565         * c-dump.c: Likewise.
27566         * c-format.c: Likewise.
27567         * c-format.h : Likewise.
27568         * c-gimplify.c: Likewise.
27569         * c-lex.c: Likewise.
27570         * c-omp.c: Likewise.
27571         * c.opt: Likewise.
27572         * c-opts.c: Likewise.
27573         * c-pch.c: Likewise.
27574         * c-ppoutput.c: Likewise.
27575         * c-pragma.c: Likewise.
27576         * c-pragma.h: Likewise.
27577         * c-pretty-print.c: Likewise.
27578         * c-pretty-print.h: Likewise.
27579         * c-semantics.c: Likewise.
27580         * stub-objc.c: Likewise.
27581
27582         * gengtype.c (get_file_langdir): Special-case files in c-family/.
27583         (get_output_file_with_visibility): Fix name for c-common.h.
27584         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
27585
27586         * c-tree.h: Update include path for moved files.
27587         * c-lang.c: Likewise.
27588         * c-lang.h: Likewise.
27589         * c-parser.c: Likewise.
27590         * c-convert.c: Likewise.
27591         * c-decl.c: Likewise.
27592         * c-objc-common.c: Likewise.
27593         * configure.ac: Make sure c-family/ exists in the build directory.
27594         * configure: Regenerate.
27595         * Makefile.in: Update paths for moved files.  Regroup files per
27596         location and update dependencies.  Move generated_files down after
27597         ALL_GTFILES_H.
27598
27599         * config/spu/spu-c.c: Update paths for moved files.
27600         * config/mep/mep-pragma.c: Likewise.
27601         * config/darwin-c.c: Likewise.
27602         * config/i386/msformat-c.c: Likewise.
27603         * config/i386/i386-c.c: Likewise.
27604         * config/avr/avr-c.c: Likewise.
27605         * config/sol2-c.c: Likewise.
27606         * config/ia64/ia64-c.c: Likewise.
27607         * config/rs6000/rs6000-c.c: Likewise.
27608         * config/arm/arm.c: Likewise.
27609         * config/arm/arm-c.c: Likewise.
27610         * config/h8300/h8300.c: Likewise.
27611         * config/v850/v850-c.c: Likewise.
27612
27613         * config/t-darwin: Fix dependencies for moved files.
27614         * config/t-sol2: Fix dependencies for moved files.
27615         * config/mep/t-mep: Fix dependencies for moved files.
27616         * config/ia64/t-ia64: Fix dependencies for moved files.
27617         * config/rs6000/t-rs6000: Fix dependencies for moved files.
27618         * config/v850/t-v850: Fix dependencies for moved files.
27619         * config/v850/t-v850e: Fix dependencies for moved files.
27620
27621         * config/m32c/m32c-pragma.c
27622
27623         * po/exgettext: Look in c-family/ also.
27624
27625 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
27626
27627         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
27628         (mark_control_dependent_edges_necessary): Call it instead of marking
27629         the last statement manually.
27630         (propagate_necessity): Likewise.
27631
27632 2010-06-05  Jan Hubicka  <jh@suse.cz>
27633
27634         * basic-block.h (compute_dominance_frontiers): Updated.
27635         (compute_idf): Likewise.
27636
27637         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
27638         for dominance frontiers.
27639         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
27640         (insert_updated_phi_nodes_for): Likewise.
27641         (update_ssa): Likewise.
27642         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27643         (compute_dominance_frontiers): Likewise.
27644         (compute_idf): Likewise.
27645         * df-problems.c (df_md_local_compute): Likewise.
27646
27647 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
27648
27649         * target.h (struct gcc_target): Add memory_move_cost field.
27650         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
27651         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
27652         * targhooks.c (default_memory_move_cost): New function.
27653         * targhooks.h (default_memory_move_cost): Declare function.
27654         * reload.h (memory_move_cost): Declare.
27655         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27656         * reginfo.c (memory_move_cost): New function.
27657         (memory_move_secondary_cost): Change type of 'in' argument to bool.
27658         * ira.h (ira_memory_move_cost): Update comment.
27659         * ira.c (ira_memory_move_cost): Update comment.
27660         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
27661         with memory_move_cost.
27662         * postreload.c (reload_cse_simplify_set): (Ditto.).
27663         * reload1.c (choose_reload_regs): (Ditto.).
27664         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
27665         (MEMORY_MOVE_COST):  Revise documentation.
27666
27667         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
27668         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
27669         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
27670         type of 'in' argument to bool.
27671         (TARGET_MEMORY_MOVE_COST): Define.
27672
27673 2010-06-05  Jan Hubicka  <jh@suse.cz>
27674
27675         * ipa-pure-const.c (propagate): Fix typo in handling of functions
27676         that cannot return.  Be more careful when merging the results with
27677         previously known ones.
27678
27679 2010-06-05  Matthias Klose  <doko@ubuntu.com>
27680
27681         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
27682         function to add the -iplugindir option.
27683         (find_plugindir_spec_function): Add new declaration and function.
27684         (static_spec_func): Use it for "find-plugindir".
27685
27686 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
27687
27688         PR c++/44361
27689         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
27690         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
27691         statement expression.
27692
27693 2010-06-05  Jan Hubicka  <jh@suse.cz>
27694
27695         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
27696         (df_rd_problem_data): Convert sparse_invalidated_by_call,
27697         dense_invalidated_by_call to bitmap head.
27698         (df_rd_alloc, df_rd_bb_local_compute_process_def,
27699         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
27700         df_rd_start_dump, df_lr_verify_transfer_functions,
27701         df_live_verify_transfer_functions, df_chain_create_bb,
27702         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
27703         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
27704         df_simulate_one_insn_forwards, df_md_alloc,
27705         df_md_bb_local_compute_process_def,
27706         df_md_bb_local_compute_process_def, df_md_local_compute,
27707         df_md_transfer_function df_md_free): Update.
27708
27709 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
27710
27711         PR c/44322
27712         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
27713         target type for ADDR_EXPR; require no changes to qualifiers except
27714         for function types.
27715         * c-tree.h (c_build_type_variant): Remove.
27716
27717 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27718
27719         * genautomata.c (get_excl_set): Do work per element, not per char.
27720         (check_presence_pattern_sets): Similar.
27721         (check_absence_pattern_sets): Similar.
27722
27723 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
27724
27725         * genautomata.c (curr_state_pass_num): Delete.
27726         (min_issue_delay_pass_states): Delete.
27727         (min_issue_delay): Delete.
27728         (initiate_min_issue_delay_pass_states): Delete.
27729         (output_min_issue_delay_table): Compute min_issue_delay_vect
27730         using a breadth-first search variant.
27731         (output_tables): Don't call initiate_min_issue_delay_pass_states.
27732
27733 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
27734
27735         PR boostrap/44421
27736         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
27737         (df_byte_lr_bb_local_compute): Likewise.
27738
27739 2010-06-03  Jason Merrill  <jason@redhat.com>
27740
27741         Implement noexcept operator (5.3.7)
27742         * c-common.c (c_common_reswords): Add noexcept.
27743         * c-common.h (enum rid): Add RID_NOEXCEPT.
27744
27745 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
27746
27747         * config/darwin-driver.c (darwin_default_min_version): Use
27748         GCC-specific formats in diagnostics.
27749         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
27750         diagnostics.
27751         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
27752         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
27753         eval_spec_function, handle_braces, process_brace_body, main,
27754         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
27755         getenv_spec_function, compare_version_strings,
27756         version_compare_spec_function): Use GCC-specific formats in
27757         diagnostics.
27758
27759 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27760
27761         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
27762         that operand 0 and operand 1 are equal.
27763         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
27764         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
27765         and operand 1 are equal.
27766         <default>: Ditto.  Remove ??? comment.
27767         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
27768         and operand 1 are equal.
27769         <default>: Ditto.  Remove ??? comment.
27770         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
27771         are equal.
27772         (*add<mode>_4) <default>: Ditto.
27773         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
27774
27775 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
27776
27777         * config/i386/i386-protos.h (ix86_print_operand): Declare.
27778         * config/i386/i386.c (ix86_print_operand): Make non-static.
27779         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
27780         * output.h (output_operand): Declare.
27781         * final.c (output_operand): Make non-static.
27782
27783 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
27784
27785         PR rtl-optimization/44013
27786         * sched-deps.c (add_dependence_list_and_free): Don't free lists
27787         when processing debug insns.
27788
27789         PR debug/41371
27790         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
27791         recursing.  Check that recursion is bounded.  Rename inner var
27792         to avoid hiding incoming argument.
27793
27794 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27795
27796         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
27797         operands[2] == 255.
27798         (*addqi_3): Ditto.
27799         (*addqi_4): Ditto.
27800         (*addqi_5): Ditto.
27801         (*addqi_ext_1_rex64): Ditto.
27802         (*addqi_ext_1): Ditto.
27803
27804         (*addqi_4): Check for incdec_operand in QImode.
27805
27806         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
27807         using SWI mode iterator.
27808         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
27809         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
27810         mode iterator.
27811         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
27812         using SWI mode iterator.
27813
27814 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27815
27816         PR c/25880
27817         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
27818         * c-format.c (gcc_diag_flag_specs): Add hash.
27819         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
27820         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
27821         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
27822         pp_c_cv_qualifiers. Handle qualifiers spelling here.
27823         (pp_c_type_qualifier_list): Call the function above.
27824         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
27825         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
27826         (WARN_FOR_QUALIFIERS): New macro.
27827         (convert_for_assignment): Use it.
27828
27829 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
27830
27831         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
27832
27833 2010-06-04  Jan Hubicka  <jh@suse.cz>
27834
27835         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
27836         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
27837         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
27838         DF_BYTE_LR_OUT): Update for embedded bitmaps.
27839         * fwprop.c (single_def_use_enter_block): Likewise.
27840         * ddg.c (create_ddg_dep_from_intra_loop_link,
27841         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
27842         * loop-iv.c (latch_dominating_def): Likewise.
27843         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
27844         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
27845         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
27846         df_rd_transfer_function, df_rd_top_dump,
27847         df_rd_bottom_dump): Update.
27848         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
27849         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
27850         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
27851         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
27852         df_lr_verify_solution_start, df_lr_verify_solution_end,
27853         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
27854         df_live_free_bb_info, df_live_alloc, df_live_reset,
27855         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
27856         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
27857         df_live_verify_solution_start, df_live_verify_solution_end,
27858         df_live_verify_transfer_functions, df_chain_create_bb,
27859         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
27860         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27861         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
27862         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
27863         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
27864         df_byte_lr_transfer_function, df_byte_lr_top_dump,
27865         df_byte_lr_bottom_dump, df_create_unused_note,
27866         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
27867         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
27868         df_md_transfer_function, df_md_init, df_md_confluence_0,
27869         df_md_confluence_n,
27870         df_md_top_dump, df_md_bottom_dump): Update.
27871         (struct df_lr_problem_data): Embedd bitmap headers.
27872
27873 2010-06-04  Jan Hubicka  <jh@suse.cz>
27874
27875         * dce.c (dce_process_block): Do not re-scan already marked
27876         instructions.
27877
27878 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
27879
27880         PR rtl-optimization/39871
27881         PR rtl-optimization/40615
27882         PR rtl-optimization/42500
27883         PR rtl-optimization/42502
27884         * ira.c (init_reg_equiv_memory_loc: New function.
27885         (ira): Call it twice.
27886         * reload.h (calculate_elim_costs_all_insns): Declare.
27887         * ira-costs.c: Include "reload.h".
27888         (regno_equiv_gains): New static variable.
27889         (init_costs): Allocate it.
27890         (finish_costs): Free it.
27891         (ira_costs): Call calculate_elim_costs_all_insns.
27892         (find_costs_and_classes): Take estimated elimination costs
27893         into account.
27894         (ira_adjust_equiv_reg_cost): New function.
27895         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
27896         * reload1.c (init_eliminable_invariants, free_reg_equiv,
27897         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
27898         (elim_bb): New static variable.
27899         (reload): Move code out of here into init_eliminable_invariants and
27900         free_reg_equiv.  Call them.
27901         (calculate_elim_costs_all_insns): New function.
27902         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
27903         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
27904         but call note_reg_elim_costly if we turned a valid memory address
27905         into an invalid one.
27906         * Makefile.in (ira-costs.o): Depend on reload.h.
27907
27908 2010-06-04  Julian Brown  <julian@codesourcery.com>
27909
27910         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
27911         for pool ranges.
27912
27913 2010-06-04  Richard Guenther  <rguenther@suse.de>
27914
27915         PR lto/41584
27916         * cgraph.h (struct varpool_node): Add lto_file_data field.
27917         * lto-cgraph.c (input_varpool_node): Initialize it.
27918
27919 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
27920
27921         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
27922         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
27923         predicate in "type" attribute calculation.
27924         (*addsi_1_zext): Ditto.
27925         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
27926         (*addsi_2_zext): Ditto.
27927         (*add<mode>_3): Ditto.
27928         (*addsi_3_zext): Ditto.
27929         (*add<mode>_5): Ditto.
27930
27931 2010-06-03  Jan Hubicka  <jh@suse.cz>
27932
27933         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
27934         of bitmap_bit_p.
27935         * cfganal.c (compute_dominance_frontiers_1): Likewise.
27936
27937 2010-06-03  Jan Hubicka  <jh@suse.cz>
27938
27939         * df-problems.c (df_create_unused_note, df_note_bb_compute):
27940         micro-optimize the checks when to add new note.
27941
27942 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
27943
27944         * final.c (output_asm_insn): Call
27945         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
27946         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
27947         (output_address): Call targetm.asm_out.print_operand_address.
27948         Update comments.
27949         * target.h (struct gcc_target): Add print_operand,
27950         print_operand_address, and print_operand_punct_valid_p fields.
27951         * targhooks.h (default_print_operand): Declare.
27952         (default_print_operand_address): Declare.
27953         (default_print_operand_punct_valid_p): Declare.
27954         * targhooks.c (default_print_operand): Define.
27955         (default_print_operand_address): Define.
27956         (default_print_operand_punct_valid_p): Define.
27957         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
27958         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
27959         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
27960         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
27961         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
27962         * vmsdbgout.c (addr_const_to_string): Update comment.
27963         * config/i386/i386.c (print_operand): Rename to...
27964         (ix86_print_operand): ...this.  Make static.
27965         (print_operand_address): Rename to...
27966         (ix86_print_operand_address): ...this.  Make static.  Call
27967         ix86_print_operand instead of PRINT_OPERAND.
27968         (ix86_print_operand_punct_valid_p): New function.
27969         (TARGET_PRINT_OPERAND): Define.
27970         (TARGET_PRINT_OPERAND_ADDRESS): Define.
27971         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
27972         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
27973         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
27974         (PRINT_OPERAND): Delete.
27975         (PRINT_OPERAND_ADDRESS): Delete.
27976         * config/i386/i386-protos.h (print_operand): Delete prototype.
27977         (print_operand_address): Delete prototype.
27978
27979 2010-06-03  Richard Guenther  <rguenther@suse.de>
27980
27981         PR tree-optimization/44403
27982         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
27983         Preserve pointer qualifiers.
27984         (vect_create_data_ref_ptr): Likewise.
27985
27986 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
27987
27988         PR c++/44294
27989         * defaults.h (MAX_FIXED_MODE_SIZE): New.
27990
27991         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
27992
27993 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
27994
27995         PR debug/44375
27996         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
27997         return false if merging the bbs would lead to goto_locus
27998         location being lost from the IL.
27999
28000 2010-06-03  Jan Hubicka  <jh@suse.cz>
28001             Jakub Jelinek  <jakub@redhat.com>
28002
28003         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
28004         set->regs[i] is NULL or has just one entry.
28005
28006 2010-06-03  Jan Hubicka  <jh@suse.cz>
28007
28008         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
28009         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
28010
28011 2010-06-03  Paul Brook  <paul@codesourcery.com>
28012
28013         * config/arm/arm.c (FL_TUNE): Define.
28014         (arm_default_cpu, arm_cpu_select): Remove.
28015         (all_cores): Populate core field.
28016         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
28017         (arm_find_cpu): New function.
28018         (arm_handle_option): Lookup cpu/architecture names.
28019         (arm_override_options): Cleanup mcpu/march/mtune handling.
28020         (arm_file_start): Ditto.
28021
28022 2010-06-03  Alan Modra  <amodra@gmail.com>
28023
28024         PR target/44169
28025         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
28026         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
28027         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
28028         (rs6000_emit_load_toc_table): Likewise.
28029
28030 2010-06-02  Jan Hubicka  <jh@suse.cz>
28031
28032         * passes.c (init_optimization_passes): Put ipa reference
28033         after ipa pure-const.
28034
28035 2010-06-02  Jan Hubicka  <jh@suse.cz>
28036
28037         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
28038         calls_read_all and calls_write_all.
28039         (get_reference_optimization_summary): Fix formatting.
28040         (is_proper_for_analysis): Check that decl is not readonly.
28041         (propagate_bits): Check CONST/PURE/noreturn flags.
28042         (ipa_init): Move all_module_statics to optimization_summary_obstack.
28043         (analyze_function): Ignore indirect edges.
28044         (copy_global_bitmap): For all module statics, do nothing.
28045         (generate_summary): Do not print calls_read_all/calls_write_all.
28046         (read_write_all_from_decl): Take node as argument; check
28047         cgraph_node_cannot_return.
28048         (propagate): Reorganize read_all/write_all computation;
28049         check indirect edges; check ecf flags; use all_module_statics
28050         in the results; do not free all_module_statics.
28051         (stream_out_bitmap): Handle all_module_statics.
28052         (ipa_reference_write_optimization_summary): Likewise; use
28053         varpool/cgraph encoders to get boundaries.
28054         (ipa_reference_read_optimization_summary): Read in all_module_statics;
28055         use it when possible.
28056
28057 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28058
28059         PR target/44218
28060         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
28061         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
28062
28063         * doc/extend.texi (powerpc builtins): Document vec_recip,
28064         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
28065
28066         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
28067         (rs6000_emit_swrsqrt): Ditto.
28068         (rs6000_emit_swdivsf): Delete.
28069         (rs6000_emit_swdivdf): Ditto.
28070         (rs6000_emit_swrsqrtsf): Ditto.
28071
28072         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
28073         describe the reciprocal estimate support for each type.
28074         (recip_options): Map -mrecip=<opt> into option bits.
28075         (gen_2arg_fn_t): New typedef for binary rtx gen function.
28076         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
28077         reciprocal estimate instructions.
28078         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
28079         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
28080         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
28081         cost information if -mdebug=cost or -mdebug=reg.
28082         (rs6000_override_options): Set -mrecip-precision for power6, and
28083         power7 machines.  If -mvsx or -mdfp, enable various options that
28084         came in previous instruction set ISAs, unless the option was
28085         explicitly disabled by the command line option.  Parse
28086         -mrecip=<opt> options.
28087         (rs6000_builtin_vectorized_function): Add support for vectorizing
28088         the reciprocal estimate builtins and expansions.
28089         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
28090         (bdesc_2arg): Add reciprocal estimate builtins.
28091         (bdesc_1arg): Add reciprocal square root estimate builtins.
28092         (rs6000_expand_builtin): Rewrite to use a switch statement,
28093         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
28094         (rs6000_init_builtins): Create declarations for reciprocal
28095         estimate builtins.
28096         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
28097         sized, prefer traditional floating point registers, if integer
28098         vector types, prefer altivec registers.  Don't actually look at
28099         the memory address any more.
28100         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
28101         builtins.
28102         (rs6000_load_constant_and_splat): New helper function to load up
28103         the constant for reciprocal estimate instructions.
28104         (rs6000_emit_madd): New helper function for generating
28105         multiply/add type instructions, based on the current switches.
28106         (rs6000_emit_msub): Ditto.
28107         (rs6000_emit_mnsub): Ditto.
28108         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
28109         replace a divide with a reciprocal estimate and fixup, adding
28110         support for machines with high precision and vectors.
28111         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
28112         low precision machines.
28113         (rs6000_emit_swdiv): New common function to be called to replace a
28114         division with reciprocal estimate and fixup.
28115         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
28116         for double and vector types.  Add support for high precision machines.
28117
28118         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
28119         the reciprocal estimate instructions can be generated.
28120         (TARGET_FRE): Ditto.
28121         (TARGET_FRSQRTES): Ditto.
28122         (TARGET_FRSQRTE): Ditto.
28123         (RS6000_RECIP_*): New macros for reciprocal estimate support.
28124
28125         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
28126         square root estimate on vectors.
28127         (re<mode>2): New insn for reciprocal division estimate on vectors.
28128
28129         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
28130         New builtin.
28131         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
28132         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
28133         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
28134         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
28135         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
28136         (RS6000_BUILTIN_RSQRT): Ditto.
28137         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
28138         floating point builtin.
28139
28140         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
28141         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
28142         __RECIP_PRECISION__ based on the command line switches.
28143         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
28144
28145         * config/rs6000/rs6000.opt (-mrecip): Document add support for
28146         replacing division instructions with reciprocal estimate and fixup.
28147         (-mrecip=<opt>): New option.
28148         (-mrecip-precision): Ditto.
28149
28150         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
28151         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
28152         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
28153         precision scalar.
28154
28155         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
28156         (UNSPEC_VREFP): Ditto.
28157         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
28158         conterparts with regard to support of -mno-fused-madd and -ffast-math.
28159         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
28160         reciprocal estimate instructions to be generated.
28161         (altivec_vrefp): Ditto.
28162
28163         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
28164         estimate support.
28165         (rreg): New mode attribute for reciprocal estimate support.
28166         (recip<mode>3): New insn for division using reciprocal estimate
28167         and fixup builtins.
28168         (divide define_split): New define_split to convert floating point
28169         division to use reciprocal estimate if the user used the
28170         appropriate options and the split is run when we can add new
28171         pseudo registers for the fixup.
28172         (rsqrt<mode>2): New insn for reciprocal square root support.
28173         (recipsf3): Move into recip<mode>3.
28174         (recipdf3): Ditto.
28175         (fres): Use TARGET_FRES.
28176         (rsqrtsf2): Move into rsqrt<mode>2.
28177         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
28178         (copysignsf3): Add support for VSX.
28179         (fred): Use TARGET_FRE.
28180         (fred_fpr): Ditto.
28181         (rsqrtdf_internal1): New function for frsqrte instruciton.
28182
28183         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
28184         (vec_rsqrt): Ditto.
28185
28186 2010-06-03  Richard Guenther  <rguenther@suse.de>
28187
28188         PR middle-end/44291
28189         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
28190         (set_user_assembler_libfunc): Likewise.
28191
28192 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28193
28194         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
28195         defaults.h.
28196         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
28197         to defaults.h
28198         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
28199         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
28200         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
28201         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
28202         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
28203         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
28204         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
28205         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
28206         * defaults.h: Updated for above mentioned changes.
28207
28208 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
28209
28210         * c-common.c: Remove header include of tm_p.h.
28211         * Makefile.in (c-common.o): Remove TM_P_H dependency.
28212
28213 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
28214
28215         * tree.h (struct tree_decl_map): New type.
28216         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
28217         (tree_decl_map_hash): New prototype.
28218         (debug_expr_for_decl, value_expr_for_decl): Change into
28219         tree_decl_map hashtab from tree_map.
28220         (init_ttree): Adjust initialization.
28221         (tree_decl_map_hash): New function.
28222         (decl_debug_expr_lookup, decl_debug_expr_insert,
28223         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
28224
28225 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28226
28227         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
28228         linker emulations.
28229         * configure: Regenerate.
28230         * config.in: Regenerate.
28231
28232         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
28233         (X86_64_EMULATION): Define.
28234         (TARGET_LD_EMULATION): Use them.
28235
28236         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
28237         (SPARC64_EMULATION): Define.
28238         (LINK_ARCH_SPEC): Use them.
28239
28240 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28241
28242         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
28243         smallest_mode_for_size for computing the precision types of new
28244         graphite IVs.  Do not call lang_hooks.types.type_for_size.
28245
28246 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28247
28248         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
28249         information.
28250         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
28251
28252 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
28253
28254         PR middle-end/44363
28255         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
28256         return false instead.
28257
28258 2010-06-02  Jan Hubicka  <jh@suse.cz>
28259
28260         PR middle-end/44295
28261         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
28262         create new cgraph node to check callee.
28263
28264 2010-06-02  Richard Guenther  <rguenther@suse.de>
28265
28266         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
28267
28268 2010-06-02  Richard Guenther  <rguenther@suse.de>
28269
28270         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
28271         (lto_wrapper_cleanup): ... this.  Do not exit.
28272         (fatal): Adjust.  Exit here.
28273         (fatal_perror): Likewise.
28274         (fatal_signal): New function.
28275         (main): Set up signal handlers to cleanup temporary files.
28276         * Makefile.in (lto-wrapper.o): Adjust dependencies.
28277
28278 2010-06-02  Richard Guenther  <rguenther@suse.de>
28279
28280         PR tree-optimization/44377
28281         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
28282
28283 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28284
28285         * config/s390/2097.md (z10_fhex): Remove insn reservation.
28286         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
28287         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
28288         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
28289         instruction.
28290         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
28291
28292 2010-06-02  Jan Hubicka  <jh@suse.cz>
28293
28294         * bitmap.c (bitmap_descriptor): Add search_iter.
28295         (bitmap_find_bit): Increment it.
28296         (print_statistics): Print it.
28297
28298 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
28299
28300         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
28301         instead of gimple_build_call_vec.  Delete unnecessary local variable.
28302
28303 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28304
28305         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
28306         change from yesterday.
28307
28308 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
28309
28310         * c-ada-spec.c: Clean up redundant includes.
28311
28312 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
28313
28314         * gimplify.c: Do not include except.h and optabs.h.
28315         (gimplify_body): Do not initialize RTL profiling.
28316         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
28317         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
28318         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
28319         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
28320         langhooks.h.
28321
28322         * tree-pretty-print.h: Include pretty-print.h.
28323         * gimple-pretty-print.h: Include pretty-print.h.
28324
28325         * tree-pretty-print.c: Do not include diagnostic.h.
28326         * tree-vrp.c: Likewise.
28327         * tree-tailcall.c: Likewise
28328         * tree-scalar-evolution.c: Likewise
28329         * tree-ssa-dse.c: Likewise
28330         * tree-chrec.c: Likewise
28331         * tree-ssa-sccvn.c: Likewise
28332         * tree-ssa-copyrename.c: Likewise
28333         * tree-nomudflap.c: Likewise
28334         * tree-call-cdce.c: Likewise
28335         * tree-stdarg.c: Likewise
28336         * tree-ssa-math-opts.c: Likewise
28337         * tree-nrv.c: Likewise
28338         * tree-ssa-sink.c: Likewise
28339         * tree-browser.c: Likewise
28340         * tree-ssa-loop-ivcanon.c: Likewise
28341         * tree-ssa-loop.c: Likewise
28342         * tree-parloops.c: Likewise
28343         * tree-ssa-address.c: Likewise
28344         * tree-ssa-ifcombine.c: Likewise
28345         * tree-if-conv.c: Likewise
28346         * tree-data-ref.c: Likewise
28347         * tree-affine.c: Likewise
28348         * tree-ssa-phiopt.c: Likewise
28349         * tree-ssa-coalesce.c: Likewise
28350         * tree-ssa-pre.c: Likewise
28351         * tree-ssa-live.c: Likewise
28352         * tree-predcom.c: Likewise
28353         * tree-ssa-forwprop.c: Likewise
28354         * tree-ssa-dce.c: Likewise
28355         * tree-ssa-ter.c: Likewise
28356         * tree-ssa-loop-prefetch.c: Likewise
28357         * tree-optimize.c: Likewise
28358         * tree-ssa-phiprop.c: Likewise
28359         * tree-object-size.c: Likewise
28360         * tree-outof-ssa.c: Likewise
28361         * tree-ssa-structalias.c: Likewise
28362         * tree-switch-conversion.c: Likewise
28363         * tree-ssa-reassoc.c: Likewise
28364         * tree-ssa-operands.c: Likewise
28365         * tree-vectorizer.c: Likewise
28366         * tree-vect-data-refs.c: Likewise
28367         * tree-vect-generic.c: Likewise
28368         * tree-vect-stmts.c: Likewise
28369         * tree-vect-patterns.c: Likewise
28370         * tree-vect-slp.c: Likewise
28371         * tree-vect-loop.c: Likewise
28372         * tree-ssa-loop-ivopts.c: Likewise
28373         * tree-ssa-loop-im.c: Likewise
28374         * tree-ssa-loop-niter.c: Likewise
28375         * tree-ssa-loop-unswitch.c: Likewise
28376         * tree-ssa-loop-manip.c: Likewise
28377         * tree-ssa-loop-ch.c: Likewise
28378         * tree-dump.c: Likewise
28379         * tree-complex.c: Likewise
28380
28381         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
28382         * tree-ssa-uninit.c: Likewise
28383         * tree-ssa-threadupdate.c: Likewise
28384         * tree-ssa-uncprop.c: Likewise
28385         * tree-ssa-ccp.c: Likewise
28386         * tree-ssa-dom.c: Likewise
28387         * tree-ssa-propagate.c: Likewise
28388         * tree-ssa-alias.c: Likewise
28389         * tree-dfa.c: Likewise
28390         * tree-cfgcleanup.c: Likewise
28391         * tree-sra.c: Likewise
28392         * tree-ssa-copy.c: Likewise
28393         * tree-ssa.c: Likewise
28394         * tree-profile.c: Likewise
28395         * tree-cfg.c: Likewise
28396         * tree-ssa-threadedge.c: Likewise
28397         * tree-vect-loop-manip.c: Likewise
28398
28399         * tree-inline.c: Do not include diagnostic.h and expr.h.
28400         Include rtl.h.
28401         (copy_decl_for_dup_finish): Do not use NULL_RTX.
28402
28403         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
28404         * tree-loop-distribution.c: Likewise.
28405
28406 2010-06-01  Jan Hubicka  <jh@suse.cz>
28407
28408         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
28409
28410 2010-06-01  Jan Hubicka  <jh@suse.cz>
28411
28412         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
28413         remove return value.
28414         (split_bbs_on_noreturn_calls) .... here.
28415         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
28416         * tree-flow.h (fixup_noreturn_call): New.
28417
28418 2010-06-01  Jan Hubicka  <jh@suse.cz>
28419
28420         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
28421
28422 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
28423
28424         * tree.h (build_nt_call_list): Delete.
28425         * tree.c (build_nt_call_list): Delete.
28426
28427 2010-06-01  Jan Hubicka  <jh@suse.cz>
28428
28429         * fwprop.c: Make emit-rtl.h include last.
28430         * rtlanal.c: Include emit-rtl.h.
28431         * genautomata.c: Output emit-rtl include into insn-automata.c
28432         * df-scan.c: Include emit-rtl.h.
28433         * haifa-sched.c: Indlude emit-rtl.h.
28434         * mode-switching.c: Indlude emit-rtl.h.
28435         * graph.c: Indlude emit-rtl.h.
28436         * sel-sched.c: Include emit-rtl.h.
28437         * sel-sched-ir.c: Include emit-rtl.h.
28438         * ira-build.c: Include emit-rtl.h.
28439         * emit-rtl.c (first_insn, last_insn): Remove defines.
28440         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
28441         Move to emit-rtl.h.
28442         (set_new_first_and_last_insn, get_last_insn_anywhere,
28443         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
28444         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
28445         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
28446         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
28447         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
28448         Use accessor functions.
28449         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28450          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28451         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28452         mem_expr_equal_p): Move here from rtl.h.
28453         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
28454         Move here from emit-rtl.c; make inline.
28455         * cfglayout.h: Include emit-rtl.h.
28456         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
28457          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
28458         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
28459         mem_expr_equal_p, get_insns, set_first-insn,
28460         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
28461         * reg-stack.c: Include emit-rtl.h.
28462         * dce.c: Likewise.
28463
28464 2010-06-01  Jan Hubicka  <jh@suse.cz>
28465
28466         * cgraph.h (tree_function_versioning): Update prototype.
28467         (cgraph_function_versioning): Update prototype.
28468         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
28469         bitmap.
28470         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
28471         (cgraph_materialize_clone, save_inline_function_body): Update use of
28472         tree_function_versioning.
28473         * tree-inline.c (copy_bb): Look for previous copied block to link
28474         after; fix debug output.
28475         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
28476         (copy_body): Likewise.
28477         (expand_call_inline): Update use of copy_body.
28478         (tree_function_versioning): Update use of copy body; accept
28479         blocks_to_copy and new_entry.
28480
28481 2010-06-01  Jan Hubicka  <jh@suse.cz>
28482
28483         * gegenrtl.c: Remove unnecesary prototypes.
28484         (gendecl): Remove.
28485         (gendef): Produce static inline.
28486         (gencode): Remove.
28487         (main): Do not decode parameters; generate header only.
28488         * Makefile.in (genrtl.c): Remove.
28489
28490 2010-06-01  Jan Hubicka  <jh@suse.cz>
28491
28492         * tree-switch-conversion.c (build_one_array): Make it readonly.
28493
28494 2010-06-01  Richard Guenther  <rguenther@suse.de>
28495
28496         * optabs.c (init_optabs): Guard all accesses to reinit.
28497         * ipa-pure-const.c (propagate): Fix another typo.
28498         * opts.c (common_handle_option): Split assignment to bool.
28499         * c-opts.c (c_common_handle_option): Likewise.
28500
28501 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
28502             Matthew Gingell  <gingell@adacore.com>
28503
28504         * doc/invoke.texi: Mention -fdump-ada-spec.
28505         * tree-dump.c (dump_files): Add ada-spec.
28506         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
28507         * tree-pass.h (tree_dump_index): Add TDI_ada.
28508         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
28509         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
28510         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
28511         * c-decl.c: Include c-ada-spec.h.
28512         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
28513         functions.
28514         (c_write_global_declarations): Add handling of -fdump-ada-spec.
28515         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
28516         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
28517         * c-ada-spec.h, c-ada-spec.c: New files.
28518
28519 2010-06-01  Richard Guenther  <rguenther@suse.de>
28520
28521         PR lto/43853
28522         * ipa-pure-const.c (get_function_state): Hand back varying state
28523         if we do not have one.
28524         (has_function_state): New function.
28525         (duplicate_node_data): Adjust.
28526         (remove_node_data): Likewise.
28527         (pure_const_write_summary): Likewise.
28528         (propagate): Likewise.  Fix typo.
28529
28530 2010-06-01  Jan Hubicka  <jh@suse.cz>
28531
28532         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
28533         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
28534         (execute_all_ipa_transforms): Do not play with the states.
28535
28536 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
28537
28538         * config/arm/t-linux-androideabi: New.
28539         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
28540
28541 2010-06-01  Jan Hubicka  <jh@suse.cz>
28542
28543         * tree-inline.c (estimate_num_insns): For stdarg functions look
28544         into call statement to count cost of argument passing.
28545
28546 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
28547
28548         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
28549         argument for fprintf.
28550         (ix86_output_addr_diff_elt): Likewise.
28551         (x86_function_profiler): Likewise.
28552         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
28553         (LPREFIX): Likewise.
28554         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
28555
28556 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28557
28558         PR target/44338
28559         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
28560         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
28561         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
28562         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
28563         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
28564         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
28565         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
28566         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
28567         TARGET_FUSED_MADD.
28568
28569 2010-05-31  Jan Hubicka  <jh@suse.cz>
28570
28571         * tree.h (tree_range_check_failed): Declare noreturn.
28572
28573 2010-05-31  Jan Hubicka  <jh@suse.cz>
28574
28575         * gimple.c (gimple_call_builtin_p): New function.
28576         * gimple.h (gimple_call_builtin_p): Declare.
28577         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
28578         to exit.
28579         (execute_warn_function_return): BUILT_IN_RETURN is return.
28580         (split_critical_edges): Return edges are not critical.
28581         (is_ctrl_altering_stmt): Builtin_in_return is altering.
28582         (gimple_verify_flow_info): Handle built_in_return.
28583         (execute_warn_function_return): Handle built_in_return.
28584         * ipa-pure-const.c (check_call): Ignore builtin_return.
28585
28586 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
28587
28588         PR middle-end/44337
28589         * expr.c (expand_assignment): Don't store anything for out-of-bounds
28590         array accesses with non-MEM.
28591
28592         PR tree-optimization/44182
28593         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
28594         newly needs to end a bb is followed by debug stmts, instead return
28595         true from the function at the end.
28596         (maybe_move_debug_stmts_to_successors): New function.
28597         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
28598
28599 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
28600
28601         PR target/44161
28602         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
28603
28604 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
28605
28606         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
28607         for nested functions in non-optimized compilation.
28608
28609 2010-05-31  Richard Guenther  <rguenther@suse.de>
28610
28611         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
28612
28613 2010-05-30  Jan Hubicka  <jh@suse.cz>
28614
28615         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
28616
28617 2010-05-30  Richard Guenther  <rguenther@suse.de>
28618
28619         PR lto/42975
28620         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
28621         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
28622         no longer needed.
28623
28624 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
28625
28626         * config/darwin.c (output_objc_section_asm_op): Add comment.
28627         (name_needs_quotes): Add '_' to list of valid comment chars.
28628         (machopic_output_function_base_name): Remove unneeded quotes.
28629         (darwin_encode_section_info): Adjust asm whitespace.
28630         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
28631         (ASM_OUTPUT_LOCAL): Ditto.
28632         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
28633         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
28634         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
28635
28636 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
28637
28638         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
28639         RS6000_OUTPUT_BASENAME unconditionally.
28640         (rs6000_output_function_epilogue): Likewise.
28641
28642 2010-05-30  Jan Hubicka  <jh@suse.cz>
28643
28644         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
28645         nodes.
28646
28647 2010-05-30  Richard Guenther  <rguenther@suse.de>
28648
28649         * tree-cfg.c (verify_gimple_assign_single): Implement
28650         verification for COND_EXPR rhs.
28651
28652 2010-05-30  Jan Hubicka  <jh@suse.cz>
28653
28654         * cgraph.h (cgraph_dump_file): Declare.
28655         * cgraphunit.c (cgraph_dump_file): Export.
28656         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
28657
28658 2010-05-30  Jan Hubicka  <jh@suse.cz>
28659
28660         * dwarf2out.c (reference_to_unused,
28661         premark_types_used_by_global_vars_helper): Avoid creation of new
28662         varpool nodes.
28663
28664 2010-05-30  Jan Hubicka  <jh@suse.cz>
28665
28666         * cgraph.h (cgraph_node_cannot_return,
28667         cgraph_edge_cannot_lead_to_return): New functions.
28668         * cgraph.c (cgraph_node_cannot_return,
28669         cgraph_edge_cannot_lead_to_return): Use them.
28670         * ipa-pure-const.c (pure_const_names): New static var.
28671         (check_call): Handle calls not leading to return.
28672         (pure_const_read_summary): Dump info read.
28673         (propagate): Dump info about propagation process; ignore side effects
28674         of functions not leading to exit; fix handling of pure functions.
28675
28676 2010-05-30  Jan Hubicka  <jh@suse.cz>
28677
28678         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
28679         for tail call epilogues.
28680
28681 2010-05-30  Jan Hubicka  <jh@suse.cz>
28682
28683         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
28684         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
28685         dump files.
28686
28687 2010-05-29  Jan Hubicka  <jh@suse.cz>
28688
28689         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
28690         node; remove references in node we no longer keep in cgrpah but need
28691         body of.
28692
28693 2010-05-29  Jan Hubicka  <jh@suse.cz>
28694
28695         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
28696
28697 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28698
28699         PR target/44165
28700         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
28701
28702 2010-05-29  Jan Hubicka  <jh@suse.cz>
28703
28704         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
28705         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
28706         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
28707         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
28708         debug_names_replaced_by, debug_update_ssa): Likewise.
28709         * sbitmap.c (debug_sbitmap): Likewise.
28710         * genrecog.c (debug_decision, debug_decision_list): Likewise.
28711         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
28712         debug_tree_chain): Likewise.
28713         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
28714         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
28715         * optabs.c (debug_optab_libfuncs): Likewise.
28716         (verify_loop_closed_ssa): Likewise.
28717         * value-prof.c (verify_histograms): Likewise.
28718         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
28719         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
28720         * cfghooks.c (verify_flow_info): Likewise.
28721         * fold-const.c (debug_fold_checksum): Likewise.
28722         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
28723         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
28724         Likewise.
28725         * omega.c (debug_omega_problem): Likewise.
28726         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
28727         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
28728         * dominance.c (verify_dominators, debug_dominance_info,
28729         debug_dominance_tree): Likewise.
28730         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
28731         * df_regno_debug, df_ref_debug,
28732         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
28733         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
28734         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
28735         * sel-sched.c (debug_state): Likewise.
28736         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
28737         Likewise.
28738         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
28739         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
28740         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
28741         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
28742         Likewise.
28743         * c-pretty-print.c (debug_c_tree): Likewise.
28744         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
28745         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
28746         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
28747         * ebitmap.c (debug_ebitmap): Likewise.
28748         * function.c (debug_find_var_in_block_tree): Likewise.
28749         * print-rtl.c (debug_rtx): Likewise.
28750         (debug_rtx_count): Likewise.
28751         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
28752         * stor-layout.c (debug_rli): Likewise.
28753         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
28754         * tree-data-ref.c (debug_data_references,
28755         debug_data_dependence_relations, debug_data_reference,
28756         debug_data_dependence_relation, debug_rdg_vertex,
28757         debug_rdg_component, debug_rdg): Likewise.
28758         * tree-affine.c (debug_aff): Likewise.
28759         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
28760         Likewise.
28761         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
28762         * emit-rtl.c (verify_rtl_sharing): Likewise.
28763         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
28764         debug_value_expressions): Likewise.
28765         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
28766         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
28767         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
28768         * cfglayout.c (verify_insn_chain): Likewise.
28769         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
28770         debug_clast_stmt, debug_generated_program): Likewise.
28771         * ggc-page.c (debug_print_page_list): Likewise.
28772         * tree-ssa-ter.c (debug_ter): Likewise.
28773         * graphite-dependences.c (debug_pddr): Likewise.
28774         * sched-deps.c (debug_ds): Likewise.
28775         * tree-ssa.c (verify_ssa): Likewise.
28776         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
28777         debug_scattering_functions, debug_iteration_domains, debug_pdr,
28778         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
28779         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
28780         * tree-inline.c (debug_find_tree): Likewise.
28781         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
28782         debug_ppl_powerset_matrix): Likewise.
28783         * var-tracking.c (debug_dv): Likewise.
28784         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
28785         * cfgloop.c (verify_loop_structure): Likewise.
28786         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
28787         * c-common.c (verify_sequence_points): Likewise.
28788         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
28789         debug_candidates, debug_rgn_dependencies): Likewise.
28790         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
28791         * debug_constraint_graph, debug_solution_for_var,
28792         debug_sa_points_to_info): Likewise.
28793         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
28794         Likewie.
28795         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
28796         debug_loops, debug_loop, debug_loop_num): Likewise.
28797         * passes.c (debug_pass): Likewise.
28798         (dump_properties): Likewise; add cfglayout property.
28799         (debug_properties): Likewise.
28800         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
28801         * varpool.c (debug_varpool): Likewise.
28802         * regcprop.c (debug_value_data): Likewise.
28803         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
28804         debug_immediate_uses_for): Likewise.
28805
28806 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28807
28808         PR bootstrap/44315
28809         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
28810         Filter out insn-flags.h.
28811
28812 2010-05-29  Jan Hubicka  <jh@suse.cz>
28813
28814         * cgraph.h (struct varpool_node_set_def,
28815         struct cgraph_node_set_def): Remove unused AUX pointer.
28816         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
28817         VEC_empty macro.
28818
28819 2010-05-29  Jan Hubicka  <jh@suse.cz>
28820
28821         PR middle-end/44324
28822         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
28823
28824 2010-05-29  Richard Guenther  <rguenther@suse.de>
28825
28826         * lto-streamer.c (cached_bp): New global variable.
28827         (bitpack_create): Return the cached bitpack, if available.
28828         (bitpack_delete): Clear and cache the bitpack, if appropriate.
28829         (bp_pack_value): Remove redundant asserts.
28830
28831 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28832
28833         PR middle-end/44306
28834         * tree-if-conv.c (is_true_predicate): New.
28835         (is_predicated): Use is_true_predicate.
28836         (add_to_predicate_list): Same.  Do not use unshare_expr.
28837         (add_to_dst_predicate_list): Same.
28838
28839 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
28840
28841         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
28842         field on edges.
28843         (predicate_bbs): Same.
28844         (clean_predicate_lists): Same.
28845         (find_phi_replacement_condition): Do not AND the predicate from
28846         edge->aux.
28847
28848 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
28849
28850         PR bootstrap/44315
28851         * Makefile.in (build/gencondmd.o): Add a missing `\'.
28852
28853 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
28854
28855         PR target/44261
28856         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
28857         (negdf2): Adjust expander pattern and use negdf2_slow.
28858         (negsf2): Likewise.
28859
28860 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
28861
28862         * basic-block.h (struct control_flow_graph): Move last_label_uid field
28863         up.
28864         * df.h (struct df_base_ref): Move regno field up.
28865         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
28866         * expr.h (struct separate_ops): Move location field up.
28867         * optabs.h (struct optab_d): Move libcall_basename field down.
28868         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
28869         * config/i386/i386.h (struct machine_function): Convert call_abi field
28870         into a bitfield.  Move cfa field to the end of the structure.
28871
28872 2010-05-29  Jan Hubicka  <jh@suse.cz>
28873
28874         * varpool.c (varpool_get_node): Fix lookup.
28875
28876 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28877
28878         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
28879         RTL specific prototypes with #ifdef RTX_CODE.
28880         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
28881         * config/spu/t-spu-elf: Fix dependencies.
28882
28883         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
28884
28885 2010-05-29  Mike Stump  <mikestump@comcast.net>
28886
28887         PR bootstrap/44315
28888         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
28889         TM_H when building to avoid dependency loops.
28890
28891 2010-05-29  Jan Hubicka  <jh@suse.cz>
28892
28893         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
28894         refs and body; not the whole node for masters of materialized clones.
28895
28896 2010-05-29  Mike Stump  <mikestump@comcast.net>
28897
28898         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
28899
28900 2010-05-29  Jan Hubicka  <jh@suse.cz>
28901
28902         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
28903         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
28904         use of clone_function_name.
28905         * cgraph.h (cgraph_create_virtual_clone,
28906         cgraph_function_versioning): update prototypes.
28907         (clone_function_name): Declare.
28908         * ipa-cp.c (ipcp_insert_stage): Update call of
28909         cgraph_create_virtual_clone.
28910         * omp-low.c (create_omp_child_function_name): Use
28911         cgraph_create_virtual_clone.
28912         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
28913         (cgraph_function_versioning): Take SUFFIX argument; produce new name
28914         and make decl local.
28915
28916 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28917
28918         * vec.h: Include statistics.h
28919         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
28920         with VEC_H.
28921
28922 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28923
28924         * c-lex.c: Do not include c-tree.h.
28925         * c-pretty-print.c: Likewise.
28926         * c-opts.c: Likewise.
28927         * c-gimplify.c: Likewise.
28928         * c-common.c: Likewise.
28929         * c-dump.c: Likewise.  Include c-common.h.
28930
28931 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28932
28933         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
28934         before including diagnostic-core.h.
28935         (c_cpp_error): New prototype moved from c-tree.h.
28936         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
28937         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
28938         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
28939         (c_cpp_error): Prototype moved to c-common.h.
28940         * Makefile.in: Update dependency for C_COMMON_H.
28941
28942 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
28943
28944         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
28945         * c-common.c (c_register_addr_space): Remove here.
28946         * c-decl.c (c_register_addr_space): Re-add here.
28947
28948 2010-05-28  Mike Stump  <mikestump@comcast.net>
28949
28950         * config/darwin-c.c: Remove c-tree.h include.
28951
28952 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
28953
28954         * gcc.c: Include diagnostic.h.
28955         (error_count): Remove.  All users changed to use errorcount.
28956         (programname): Remove.  All users changed to use progname.
28957         (fancy_abort, internal_error, fatal_error, error, warning, inform,
28958         fnotice): Remove.
28959         (execute): Don't include "Internal error" and bug reporting
28960         information in argument of internal_error call.
28961         (process_command): Don't increment error_count after calling
28962         perror_with_name.
28963         (input_filename): Rename to gcc_input_filename.  All users
28964         changed.
28965         (main): Call diagnostic_initialize.  Register delete_temp_files
28966         with atexit.  Use seen_error to test for errors.
28967         * gcc.h: Include diagnostic-core.h.
28968         (fatal_error, error, warning): Remove.
28969         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
28970         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
28971         (gcc.o): Update dependencies.
28972
28973 2010-05-28  Jeff Law  <law@redhat.com>
28974
28975         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
28976         functions.
28977         * ira.h (ira_bad_reload_regno): Declare
28978         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
28979
28980         * ira-color.c (update_curr_costs): Free updated hard reg costs.
28981         (ira_reassign_conflict_allocnos): Remove bogus asserts.
28982         (allocno_reload_assign): Likewise.
28983
28984 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
28985
28986         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
28987         build1_stat.
28988
28989 2010-05-28  Richard Guenther  <rguenther@suse.de>
28990
28991         PR lto/44312
28992         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
28993         Stream fixed-point constants mode.
28994         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
28995         and TYPE_PRECISION.
28996         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
28997         Stream fixed-point constants mode.
28998         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
28999         and TYPE_PRECISION.
29000
29001 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
29002
29003         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
29004         only place it was called from.
29005         (number_of_latch_executions): Do not return chrec_dont_know when the
29006         may_be_zero is a runtime condition: instead, return a COND_EXPR
29007         including the may_be_zero condition.
29008         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
29009         of nb_iterations.
29010         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
29011         COND_EXPRs.
29012
29013 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
29014
29015         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
29016         generate COND_EXPRs for degenerate_phi_result.
29017
29018 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
29019
29020         PR middle-end/44293
29021         * tree-if-conv.c (if_convertible_loop_p): Check the
29022         if-convertibility of phi nodes in non predicated BBs.
29023
29024 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
29025
29026         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
29027
29028 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
29029
29030         PR driver/15303
29031         * gcc.c (inform, warning, inform): New functions.
29032         (fatal_ice): Rename to internal_error; change cmsgid parameter to
29033         gmsgid.  All callers changed.
29034         (notice): Rename to fnotice; add parameter fp.  All callers changed.
29035         (fatal_error): Rename to fatal_signal.  All users changed.
29036         (fatal): Rename to fatal_error; change cmsgid parameter to
29037         gmsgid.  All callers changed.
29038         (process_command): Use warning instead of error for warnings.
29039         (end_going_arg): Don't use _() around argument of error.
29040         (do_spec_1): Use inform for message from %n specs.  Use warning
29041         instead of error for warnings.
29042         (main): Use inform for comparison messages.  Use warning for
29043         message about unused linker input.
29044         (error): Increment error_count.  Print "error: ".
29045         * gcc.h (fatal): Change to fatal_error.
29046         (warning): Declare.
29047         * config/darwin-driver.c (darwin_default_min_version): Use warning
29048         instead of fprintf for warnings.
29049         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
29050
29051 2010-05-28  Julian Brown  <julian@codesourcery.com>
29052
29053         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
29054         (*thumb2_addsi3_compare0_scratch): New.
29055         * config/arm/constraints.md (Pv): New.
29056         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
29057         for ARM mode only.
29058         (*addsi3_compare0_scratch): Likewise.
29059
29060 2010-05-28  Jan Hubicka  <jh@suse.cz>
29061
29062         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
29063         check.
29064         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
29065         only on local statics.
29066
29067 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
29068
29069         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
29070
29071 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
29072
29073         PR bootstrap/44314
29074         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
29075         (OPTION_GLIBC): Define.
29076
29077 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
29078
29079         PR debug/41048
29080         * dwarf2out.c (double_int_type_size_in_bits): New function.
29081         (round_up_to_align): Change first argument and return value to
29082         double_int.
29083         (field_byte_offset): Work internally on double_ints.
29084
29085         PR target/43636
29086         * builtins.c (expand_movstr): Use a temporary pseudo instead
29087         of target even when target is not NULL and not const0_rtx, but
29088         fails movstr predicate.
29089         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
29090
29091 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
29092
29093         * final.c (rest_of_clean_state): Use %m in errors instead of
29094         strerror (errno).
29095         * gengtype.c (read_input_list, close_output_files): Use xstrerror
29096         instead of strerror.
29097         * toplev.c (process_options): Use %m in errors instead of strerror
29098         (errno).
29099         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
29100         (errno).
29101
29102 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
29103
29104         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
29105         (ix86_canonical_va_list_type): Make static.  Add declaration.
29106         (ix86_enum_va_list): Make static.  Reindent.
29107         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
29108         (ix86_canonical_va_list_type): Ditto.
29109         (ix86_enum_va_list): Ditto.
29110
29111 2010-05-28  Richard Guenther  <rguenther@suse.de>
29112
29113         * lto-wrapper.c (run_gcc): With -save-temps generate a
29114         user-visible ltrans filename.  Fixup ltrans unit numbering.
29115
29116 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
29117
29118         * c-common.c (c_common_nodes_and_builtins): Replace use
29119         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
29120         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
29121         to ix86_enum_va_list.
29122         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
29123         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
29124         (TARGET_ENUM_VA_LIST_P): Add hook description.
29125         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
29126         * target.h (gcc_target): Add enum_va_list hook.
29127
29128         PR bootstrap/44299
29129         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
29130         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
29131         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
29132
29133 2010-05-28  Alan Modra  <amodra@gmail.com>
29134
29135         PR target/44266
29136         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
29137         emit_library_call machinery to set up __tls_get_addr calls.
29138
29139 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29140
29141         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
29142
29143 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
29144
29145         Revert fix for PR c++/44188
29146         * c-common.c (is_typedef_decl): Revert the moving of  this
29147         definition ...
29148         * tree.c (is_typedef_decl): ... here.
29149         (typdef_variant_p): Revert the moving of this  definition
29150         here from cp/tree.c.
29151         * c-common.h (is_typedef_decl): Revert the moving of this
29152         declaration ...
29153         * tree.h (is_typedef_decl): ... here.
29154         (typedef_variant_p): Revert the moving of this  declaration here
29155         from cp/cp-tree.h
29156         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
29157         (gen_tagged_type_die): Revert the splitting out of ...
29158         (gen_type_die_with_usage): ... this function. Revert the anonymous
29159         tagged type handling.
29160         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
29161         typedefs naming anonymous tagged types.
29162
29163 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
29164
29165         * config/rs6000/rs6000-modes.def (PSImode): Delete.
29166
29167 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
29168
29169         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
29170         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
29171         throughout.
29172         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
29173         "xer" to "ca".
29174         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
29175         XER_REGS to CA_REGS throughout.
29176         * config/rs6000/rs6000.h: Same.
29177         (ADDITIONAL_REGISTER_NAMES): Add "xer".
29178         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
29179         that mode_iterator "P" is the size for arithmetic carries as well.
29180         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
29181
29182 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
29183
29184         PR bootstrap/44255
29185         * combine.c (struct rtx_subst_pair): Define unconditionally.
29186         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
29187         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
29188         Call make_compound_operation on pair->to.
29189         (propagate_for_debug): Don't call make_compound_operation here.
29190         Always use simplify_replace_fn_rtx.
29191
29192 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
29193
29194         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
29195         * config/xtensa/xtensa.c (override_options): Check
29196           TARGET_FORCE_NO_PIC and set flag_pic.
29197         * config/xtensa/xtensa.opt: Document -mforce-no-pic
29198
29199 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29200
29201         PR bootstrap/44299
29202         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
29203         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
29204
29205 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29206
29207         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
29208         toplev.h.
29209         * diagnostic.c: Don't include toplev.h.
29210         (progname): Define.  Moved from toplev.c.
29211         (seen_error): New function.
29212         * diagnostic.h: Include diagnostic-core.h.
29213         (diagnostic_t, emit_diagnostic): Don't declare here.
29214         * toplev.c (progname): Move to toplev.c.
29215         (emit_debug_global_declarations, compile_file, finalize,
29216         do_compile, toplev_main): Use seen_error.
29217         * toplev.h: Include diagnostic-core.h.
29218         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
29219         internal_error, warning, warning_at, error, error_n, error_at,
29220         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
29221         verbatim, fnotice, progname): Move to diagnostic-core.h.
29222         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
29223         (expand_builtin_expect): Use seen_error.
29224         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
29225         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
29226         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
29227         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
29228         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
29229         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
29230         errorcount for errors.
29231         * c-opts.c (c_common_finish): Use seen_error.
29232         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29233         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
29234         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
29235         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
29236         (get_coverage_counts): Use seen_error.
29237         * dwarf2out.c (dwarf2out_finish): Use seen_error.
29238         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
29239         gimplify_body): Use seen_error.
29240         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
29241         * ipa-pure-const.c (gate_pure_const): Use seen_error.
29242         * ipa-reference.c (gate_reference): Use seen_error.
29243         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
29244         * lambda-code.c: Include diagnostic-core.h instead of
29245         diagnostic.h.
29246         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
29247         * lto-compress.c: Include diagnostic-core.h instead of
29248         diagnostic.h.
29249         * lto-section-in.c: Include diagnostic-core.h instead of
29250         diagnostic.h.
29251         * lto-streamer-out.c: Include diagnostic-core.h instead of
29252         diagnostic.h.
29253         * lto-streamer.c: Include diagnostic-core.h instead of
29254         diagnostic.h.
29255         (gate_lto_out): Use seen_error.
29256         * matrix-reorg.c: Include diagnostic-core.h instead of
29257         diagnostic.h.
29258         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
29259         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
29260         (gate_expand_omp, lower_omp_1): Use seen_error.
29261         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
29262         (rest_of_decl_compilation, rest_of_type_compilation,
29263         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
29264         * tree-cfg.c (label_to_block_fn): Use seen_error.
29265         * tree-inline.c (optimize_inline_calls): Use seen_error.
29266         * tree-mudflap.c (mudflap_finish_file): Use
29267         seen_error.
29268         * tree-optimize.c (gate_all_optimizations,
29269         gate_all_early_local_passes, gate_all_early_optimizations): Use
29270         seen_error.
29271         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
29272         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
29273         (varpool_remove_unreferenced_decls,
29274         varpool_assemble_pending_decls): Use seen_error.
29275         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
29276         (TOPLEV_H, DIAGNOSTIC_H): Update.
29277         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
29278         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
29279         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
29280         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
29281         coverage.o, lambda-code.o): Update dependencies.
29282
29283 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
29284
29285         PR c++/44188
29286         * c-common.c (is_typedef_decl): Move this definition ...
29287         * tree.c (is_typedef_decl): ... here.
29288         (typdef_variant_p): Move definition here from cp/tree.c.
29289         * c-common.h (is_typedef_decl): Move this declaration ...
29290         * tree.h (is_typedef_decl): ... here.
29291         (typedef_variant_p): Move declaration here from cp/cp-tree.h
29292         * dwarf2out.c (is_naming_typedef_decl): New function.
29293         (gen_tagged_type_die): Split out of ...
29294         (gen_type_die_with_usage): ... this function. When an anonymous
29295         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
29296         is emitted for the typedef.
29297         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
29298         anonymous tagged types.
29299
29300 2010-05-27  Jason Merrill  <jason@redhat.com>
29301
29302         * print-tree.c (debug_vec_tree): New fn.
29303         (print_vec_tree): New fn.
29304         * tree.h: Declare them.
29305         * gdbinit.in (pvt): New command.
29306
29307         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
29308
29309         * gdbinit.in (pdd): New command.
29310
29311 2010-05-27  Jan Hubicka  <jh@suse.cz>
29312
29313         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
29314         (update_caller_keys): Return early if there are no callers;
29315         only update fibheap when decresing the key.
29316         (update_callee_keys): Avoid recursion.
29317         (decide_inlining_of_small_functions): When badness does not match;
29318         re-insert into fibheap.
29319
29320 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
29321
29322         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
29323         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
29324         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
29325         (ALL_HOST_OBJS): Now a union of the above two.
29326         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
29327         all files in ALL_HOST_FRONTEND_OBJS.
29328         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
29329
29330         * c-common.c: Pretend to be a backend file by undefining
29331         IN_GCC_FRONTEND (still need rtl.h here).
29332
29333 2010-05-27  Jan Hubicka  <jh@suse.cz>
29334
29335         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
29336         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
29337
29338 2010-05-27  Jan Hubicka  <jh@suse.cz>
29339
29340         * sched-ebb.c: Rename struct deps to struct deps_desc.
29341         * ddg.c: Likewise.
29342         * sel-sched-ir.c: Likewise.
29343         * sched-deps.c: Likewise.
29344         * sched-int.h: Likewise.
29345         * sched-rgn.c: Likewise.
29346
29347 2010-05-27  Jon Beniston  <jon@beniston.com>
29348
29349         PR 43726
29350         * config/lm32/lm32.h: Remove definition of
29351         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
29352
29353 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
29354
29355         PR lto/44230
29356         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
29357
29358 2010-05-27  Richard Guenther  <rguenther@suse.de>
29359
29360         PR tree-optimization/44284
29361         * tree-vect-stmts.c (vectorizable_assignment): Handle
29362         sign-changing conversions as simple copy.
29363
29364 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29365
29366         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
29367         Bionic C library.
29368         (__gthread_active_p): Check for pthread_create if compiling against
29369         Bionic C library.
29370
29371 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29372
29373         Support compilation for Android platform.  Reimplement -mandroid.
29374
29375         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
29376         (*android*): Set ANDROID_DEFAULT.
29377         (arm*-*-linux*): Include linux-android.h.
29378         (arm*-*-eabi*): Don't include previous -mandroid implementation.
29379         * config/arm/eabi.h: Remove, move Android-specific parts ...
29380         * config/linux-android.h: ... here.  New file.
29381         * config/arm/eabi.opt: Rename to ...
29382         * config/linux-android.opt: ... this.
29383         (mandroid): Allow -mno-android option.  Initialize based on
29384         ANDROID_DEFAULT.
29385         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
29386         Move logic to corresponding LINUX_TARGET_* macros.
29387         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
29388         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
29389         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
29390         Android definitions.
29391         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
29392         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
29393         Document.
29394
29395 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
29396
29397         Add support for Bionic C library
29398
29399         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
29400         macro.
29401         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
29402         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
29403
29404         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
29405         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
29406         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
29407         to support multiple C libraries.  Handle Bionic.
29408         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
29409         (BIONIC_DYNAMIC_LINKER64): Define.
29410         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
29411         Update.
29412         (TARGET_HAS_SINCOS): Enable for Bionic.
29413
29414         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
29415         the last option specified on command line take effect.
29416         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
29417         (mbionic): New.
29418         (mglibc, muclibc): Update.
29419
29420         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
29421         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
29422         DEFAULT_LIBC.
29423
29424         * doc/invoke.texi (-mglibc, -muclibc): Update.
29425         (-mbionic): Document.
29426
29427 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29428
29429         * c-common.h (c_register_addr_space): Add prototype.
29430         (ADDR_SPACE_KEYWORD): Remove.
29431         * c-common.c (c_register_addr_space): New function.
29432         (c_addr_space_name): Reimplement.
29433         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
29434
29435         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
29436         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
29437
29438         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
29439         Remove TARGET_ADDR_SPACE_KEYWORDS.
29440
29441 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
29442
29443         * input.c: New file.
29444         * input.h (main_input_filename): Move declaration to toplev.h.
29445         * toplev.c (input_location, line_table): Move to input.c
29446         * toplev.h (main_input_filename): Move declaration from input.h.
29447         * tree.c (expand_location): Move to input.c.
29448         * Makefile.in (OBJS-common): Add input.o.
29449         (input.o): Add dependencies.
29450
29451 2010-05-27  Richard Guenther  <rguenther@suse.de>
29452
29453         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
29454         for non-existant files.
29455         (fork_execute): Mark args_name file as deleted.
29456
29457 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
29458
29459         PR bootstrp/44287
29460         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
29461         (narrow_signed_type): Likewise.
29462
29463 2010-05-26  Jan Hubicka  <jh@suse.cz>
29464
29465         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
29466         edge only when checking is enabled; check using former_clone_of;
29467         check inline clones too.
29468         (cgraph_materialize_clone): Record former_clone_of pointer.
29469         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
29470         combining redirections; dump args_to_skip bitmap
29471         (cgraph_materialize_all_clones): Do no redirection here.
29472         * ipa-inline.c (inline_transform): Do redirection here.
29473         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
29474         cheking only).
29475
29476 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29477
29478         * config/avr/avr-c.c: Do not include regs.h.
29479         Include cpplib.h for cpp_define and tree.h for c-common.h.
29480         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
29481         * config/avr/t-avr: Fix dependencies for avr-c.o.
29482
29483 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29484
29485         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
29486         string instead of SYMBOL_REF rtx.
29487         * rtl.h (set_stack_check_libfunc): Move prototype from here...
29488         * libfuncs.h: ...to here.  Adjust for explow.c change.
29489
29490 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29491
29492         * pretty-print.c: Don't include ggc.h.
29493         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
29494         (identifier_to_locale): Use them for allocation.
29495         * pretty-print.h (identifier_to_locale_alloc,
29496         identifier_to_locale_free): Declare.
29497         * toplev.c (alloc_for_identifier_to_locale): New.
29498         (general_init): Set identifier_to_locale_alloc and
29499         identifier_to_locale_free.
29500         * Makefile.in (pretty-print.o): Update dependencies.
29501
29502 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29503
29504         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
29505         pointer types if they have different alignment or mode.
29506
29507 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
29508
29509         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
29510         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
29511         * config/sparc/sparc-protos.h (function_value): Remove declaration.
29512         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
29513         sparc_function_value_regno_p): New functions.
29514         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
29515         TARGET_FUNCTION_VALUE_REGNO_P): Define.
29516         (function_value): Rename to...
29517         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
29518         argument to 'outgoing'.
29519         (function_arg_record_value, function_arg_union_value,
29520         function_arg_vector_value): Update comment.
29521
29522 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
29523
29524         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
29525         (fde_needed_for_eh_p): New predicate.
29526         (output_call_frame_info): Use it throughout to decide whether FDEs
29527         are needed for EH purpose.
29528         (dwarf2out_begin_prologue): Reorder assignments.
29529
29530 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29531
29532         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
29533         special case loop->header.
29534         (is_predicated): New.
29535         (if_convertible_loop_p): Call it.
29536
29537 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29538
29539         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
29540         iterator in parameter.  Do not generate code during the analysis.
29541         (tree_if_convert_cond_stmt): Removed.
29542         (tree_if_convert_stmt): Removed.
29543         (predicate_bbs): New.
29544         (if_convertible_loop_p): Call predicate_bbs.
29545         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
29546         now contains all the analysis part.
29547
29548 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29549
29550         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
29551         statements in the analysis part.
29552         (tree_if_convert_stmt): Update comment.
29553         (remove_conditions_and_labels): New.
29554         (combine_blocks): Call remove_conditions_and_labels.
29555         (tree_if_conversion): Update comment.
29556
29557 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29558
29559         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
29560         than 2 predecessors or more than 2 successors.
29561
29562 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29563
29564         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
29565         of loops in which the data dependence analysis fails.
29566
29567 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29568
29569         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
29570         CDI_POST_DOMINATORS.
29571         (tree_if_conversion): Same.
29572
29573 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29574
29575         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
29576
29577 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
29578
29579         * tree-if-conv.c: Update copyright years.  Fix comments.
29580         Fix indentation.
29581
29582 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
29583
29584         * builtin-types.def (BT_INT128): New primitive type.
29585         (BT_UINT128): Likewise.
29586         * c-common.c (c_common_r): Add __int128 keyword.
29587         (c_common_type_for_size): Handle __int128.
29588         (c_common_type_for_mode): Likewise.
29589         (c_common_signed_or_unsigned_type): Likewise.
29590         (c_common_nodes_and_builtins): Add builtin type
29591         if target supports 128-bit integer scalar.
29592         * c-common.h (enum rid): Add RID_INT128.
29593         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
29594         if target supports 128-bit integer scalar.
29595         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
29596         (finish_declspecs): Likewise.
29597         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
29598         (c_token_starts_declspecs): Likewise.
29599         (c_parser_declspecs): Likewise.
29600         (c_parser_attributes): Likewise.
29601         (c_parser_objc_selector): Likewise.
29602         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
29603         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
29604         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
29605         * tree.c (make_or_reuse_type): Likewise.
29606         (make_unsigned_type): Likewise.
29607         (build_common_tree_nodes_2): Likewise.
29608         * tree.h (enum integer_type_kind): Add itk_int128 and
29609         itk_unsigned_int128.
29610         (int128_integer_type_node): New define.
29611         (int128_unsigned_type_node): New define.
29612         * doc/extend.texi: Add documentation about __int128 type.
29613
29614 2010-05-26  Richard Guenther  <rguenther@suse.de>
29615
29616         * tree-ssa-sccvn.c (copy_nary): Adjust.
29617         (copy_phis): Rename to ...
29618         (copy_phi): ... this.  Adjust.
29619         (copy_references): Rename to ...
29620         (copy_reference): ... this.  Adjust.
29621         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
29622         result into the valid table.
29623
29624 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29625
29626         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
29627         insn-config.h, insn-codes.h, recog.h, and optabs.h.
29628
29629 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29630
29631         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
29632
29633 2010-05-26  Richard Guenther  <rguenther@suse.de>
29634
29635         * opts.c (common_handle_option): Handle OPT_Ofast.
29636
29637 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
29638
29639         * diagnostic.c: Don't include opts.h.
29640         (permissive_error_option): Define.
29641         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
29642         for classify_diagnostic.  Don't use memset for
29643         classify_diagnostic.  Initialize new and recently added fields.
29644         (diagnostic_classify_diagnostic): Use context->n_opts instead of
29645         N_OPTS.
29646         (diagnostic_report_diagnostic): Pass context parameter to
29647         diagnostic_report_warnings_p.  Use option_enabled and option_name
29648         hooks from context.
29649         (emit_diagnostic): Use permissive_error_option.
29650         (permerror): Likewise.
29651         * diagnostic.h: Don't include options.h.
29652         (struct diagnostic_context): Add n_opts, opt_permissive,
29653         inhibit_warnings, warn_system_headers, option_enabled and
29654         option_name fields.  Change classify_diagnostic to a pointer.
29655         * opts-diagnostic.h: New file.
29656         * opts.c: Include opts-diagnostic.h.
29657         (common_handle_option): Set global_dc fields for -Wfatal-errors,
29658         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
29659         (option_name): New function.
29660         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
29661         (c_common_handle_option): Set global_dc->permissive for
29662         -fpermissive.
29663         * c-common.c (c_cpp_error): Save and restore
29664         global_dc->warn_system_headers, not variable warn_system_headers.
29665         * toplev.c: Include opts-diagnostic.h.
29666         (general_init): Update call to diagnostic_initialize.  Set
29667         global_dc->show_column, global_dc->option_enabled and
29668         global_dc->option_name.
29669         (process_options): Don't set global_dc fields here.
29670         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
29671         (diagnostic.o, opts.o, toplev.o): Update dependencies.
29672
29673 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
29674
29675         * config/picochip/picochip.md (movsi): Split a movsi from a
29676         const after reload.
29677
29678 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29679
29680         * ggc-zone.c: Update copyright year.
29681         (poison_region): Mark memory for Valgrind as undefined before
29682         memset () call and inaccessible afterwards.
29683         (ggc_pch_total_size): Change type of i to int.
29684
29685 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29686
29687         * ggc-common.c (ggc_free_overhead): Allow empty slot.
29688
29689 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
29690
29691         * ggc-common.c: Update copyright year.
29692         (ggc_rlimit_bound): Remove prototype.  Compile only if
29693         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
29694         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
29695         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
29696         (ggc_min_heapsize_heuristic): Likewise.
29697
29698 2010-05-26  Richard Guenther  <rguenther@suse.de>
29699
29700         PR rtl-optimization/44164
29701         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
29702         no-common access-path disambiguation.
29703         (indirect_ref_may_alias_decl_p): Adjust.
29704         (indirect_refs_may_alias_p): Likewise.
29705         (refs_may_alias_p_1): Likewise.
29706
29707 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29708
29709         * c-typeck.c: Do not include expr.h.
29710
29711 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
29712
29713         * rtl.h (decl_default_tls_model): Move prototype from here...
29714         * output.h: ...to here.
29715         * c-decl.c: Do not include rtl.h.
29716         * c-pragma.c: Likewise.
29717         * c-parser.c: Likewise.
29718         * c-gimplify.c: Likewise.  And also not hard-reg-set.
29719         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
29720         FIXME note for it.  Add a FIXME note for expr.h.
29721         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
29722         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
29723         defined.
29724
29725 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
29726
29727         PR target/44199
29728         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
29729         or total_size is larger than red zone size for non-V4 ABI, emit a
29730         stack_tie resp. frame_tie insn before stack pointer restore.
29731         * config/rs6000/rs6000.md (frame_tie): New insn.
29732
29733 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
29734
29735         * function.h (struct function): Add can_throw_non_call_exceptions bit.
29736         * lto-streamer-in.c (input_function): Stream it in.
29737         * lto-streamer-out.c (output_function): Stream it out.
29738         * function.c (allocate_struct_function): Set it.
29739         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
29740         for flag_non_call_exceptions.
29741         * cfgbuild.c (control_flow_insn_p): Likewise.
29742         (make_edges): Likewise.
29743         * cfgexpand.c (expand_stack_alignment): Likewise.
29744         * combine.c (distribute_notes): Likewise.
29745         * cse.c (cse_extended_basic_block): Likewise.
29746         * except.c (insn_could_throw_p): Likewise.
29747         * gcse.c (simple_mem): Likewise.
29748         * ipa-pure-const.c (check_call): Likewise.
29749         (check_stmt ): Likewise.
29750         * lower-subreg.c (lower-subreg.c): Likewise.
29751         * optabs.c (emit_libcall_block): Likewise.
29752         (prepare_cmp_insn): Likewise.
29753         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
29754         * postreload.c (rest_of_handle_postreload): Likewise.
29755         * reload1.c (reload_as_needed): Likewise.
29756         (emit_input_reload_insns): Likewise.
29757         (emit_output_reload_insns): Likewise.
29758         (fixup_abnormal_edges): Likewise.
29759         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
29760         * store-motion.c (find_moveable_store): Likewise.
29761         * tree-eh.c (stmt_could_throw_p): Likewise.
29762         (tree_could_throw_p): Likewise.
29763         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
29764         * config/arm/arm.c (arm_expand_prologue): Likewise.
29765         (thumb1_expand_prologue): Likewise.
29766         * config/rx/rx.md (cbranchsf4): Likewise.
29767         (cmpsf): Likewise.
29768         * config/s390/s390.c (s390_emit_prologue): Likewise.
29769         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
29770         (inline_forbidden_into_p): New predicate.
29771         (expand_call_inline): Use it to forbid inlining.
29772         (tree_can_inline_p): Likewise.
29773
29774 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29775
29776         * config/i386/i386-c.c: Do not include rtl.h.
29777         * config/i386/t-i386: Update dependencies.
29778
29779 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29780
29781         * attribs.c: Do not include rtl.h.
29782         * Makefile.in: Update dependencies.
29783
29784 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
29785
29786         * double-int.h (double_int_and): New.
29787         * combine.c (try_combine): Clean up, use double_int_* and
29788         immed_double_int_const functions.
29789
29790 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29791
29792         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
29793         stderr to /dev/null instead of grep -q.
29794         * configure: Regenerate.
29795
29796 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
29797
29798         * Makefile.in (EXCEPT_H): Fix typo.
29799
29800 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
29801
29802         * ira-build.c (update_conflict_hard_reg_costs): New.
29803         (ira_build): Call update_conflict_hard_reg_costs.
29804
29805 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29806
29807         PR debug/41371
29808         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
29809         ENABLE_CHECKING.
29810         (intersect_loc_chains): Walk the s2var's loc_chain together
29811         with s1node chain as long as the locations are equal, don't
29812         call find_loc_in_1pdv in that case.
29813
29814         PR debug/42801
29815         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
29816         (copy_bind_expr): ... instead of here.
29817         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
29818         if the block hasn't been remapped.
29819         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
29820         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
29821
29822 2010-05-25  Richard Guenther  <rguenther@suse.de>
29823
29824         PR middle-end/44069
29825         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
29826         out-of-bounds array accesses.
29827
29828 2010-05-25  Richard Guenther  <rguenther@suse.de>
29829
29830         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
29831         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
29832         (run_gcc): Re-organize to make cleanup easier.
29833
29834 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
29835
29836         * config/s390/s390.c (optimization_options): Fix and move the
29837         flag_prefetch_loop_arrays override ...
29838         (override_options): ... here.
29839
29840 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
29841
29842         * diagnostic.c: Don't include plugin.h.
29843         (diagnostic_report_diagnostic): Don't handle plugins specially
29844         here.  Pass context to internal_error callback.
29845         * diagnostic.h (struct diagnostic_context): Add context parameter
29846         to internal_error callback.
29847         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
29848         * plugin.h (struct diagnostic_context): Declare.
29849         (warn_if_plugins, plugins_internal_error_function): Declare.
29850         * toplev.c (general_init): Set global_dc->internal_error.
29851         * Makefile.in (diagnostic.o): Update dependencies.
29852
29853 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
29854
29855         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
29856         * config/rs6000/t-darwin64: New.
29857         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
29858         build crt2.
29859
29860 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
29861
29862         PR 44203
29863         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
29864         match the original (and intended) behaviour before r159557.  This
29865         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
29866         in two ways.
29867
29868 2010-05-25  Richard Guenther  <rguenther@suse.de>
29869
29870         * doc/invoke.texi: Document -Ofast.
29871         * target.h (struct gcc_target): Add handle_ofast.
29872         * target-def.h (TARGET_HANDLE_OFAST): Add.
29873         (TARGET_INITIALIZER): Adjust.
29874         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
29875         * common.opt (Ofast): Add.
29876
29877 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29878
29879         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
29880         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
29881
29882 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
29883
29884         PR target/43610
29885         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
29886         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
29887         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
29888         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
29889
29890 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
29891
29892         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
29893         DW_OP_minus with negated offset instead of DW_OP_plus.
29894         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
29895
29896 2010-05-25  Wei Guozhi  <carrot@google.com>
29897
29898         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
29899         tst instruction and a new alternative.
29900         * config/arm/constraints.md (Pu): New constraint.
29901
29902 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
29903
29904         * function.c (assign_stack_local_1): Initialize variable
29905         to avoid warning when bootstrapping at -O3.
29906
29907 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
29908
29909         * configure.ac (all_lang_makefiles): Remove everything related to it.
29910         * configure: Regenerate.
29911         * Makefile.in: Fix reference to ada Make-lang.in.
29912         Remove support for LANG_MAKEFILES.
29913
29914 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
29915             Sandra Loosemore  <sandra@codesourcery.com>
29916
29917         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
29918         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
29919         description.  Add arm_neon_fp16_ok.
29920         (Add Options): Add arm_neon and arm_neon_fp16.
29921
29922 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
29923
29924         * diagnostic.c: Don't include flags.h.
29925         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
29926         context parameters.  Check flags in the context passed as a parameter.
29927         (diagnostic_build_prefix): Add context parameter.  Check
29928         show_column flag in context.
29929         (diagnostic_action_after_output): Check fatal_errors flag in context.
29930         (diagnostic_report_current_module): Check show_column flag in context.
29931         (default_diagnostic_starter): Update call to
29932         diagnostic_build_prefix.
29933         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
29934         (emit_diagnostic): Pass context to permissive_error_kind.
29935         (permerror): Pass context to permissive_error_kind.
29936         * diagnostic.h (struct diagnostic_context): Add show_column,
29937         pedantic_errors, permissive and fatal_errors fields.
29938         (diagnostic_build_prefix): Update prototype.
29939         * langhooks.c
29940         * toplev.c (process_options): Set flags in global_dc from
29941         flag_show_column, flag_pedantic_errors, flag_permissive,
29942         flag_fatal_errors.
29943         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
29944         to diagnostic_build_prefix.
29945         * Makefile.in (diagnostic.o): Update dependencies.
29946
29947 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
29948
29949         * config/i386/ia32intrin.h (__crc32q): Define only if
29950         __SSE4_2__ is defined.
29951
29952 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
29953
29954         PR target/44132
29955         PR middle-end/43602
29956         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
29957         DECL_VISIBILITY_SPECIFIED.
29958         (emutls_decl): Set DECL_PRESERVE_P and copy
29959         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
29960         (emutls_finalize_control_var): New callback.
29961         (emutls_finish): Finalize emutls control variables.
29962         * toplev.c (compile_file): Move the call to emutls_finish ()
29963         before varpool_assemble_pending_decls ().
29964
29965 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
29966
29967         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
29968         added to the preprocessor condition.
29969
29970 2010-05-24  Paul Brook  <paul@codesourcery.com>
29971
29972         * gengtype-lex.l: Add HARD_REG_SET.
29973         * expr.c (expand_expr_real_1): Record writes to hard registers.
29974         * function.c (rtl_data): Add asm_clobbers.
29975         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
29976         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
29977         Use crtl->asm_clobbers.
29978
29979 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29980
29981         * doc/makefile.texi (Makefile): Mention stages 'profile'
29982         and 'feedback' for profiledbootstrap.
29983
29984 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
29985
29986         PR target/44245
29987         * config/i386/i386.c (def_builtin): Properly check
29988         OPTION_MASK_ISA_64BIT.
29989
29990 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
29991
29992         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
29993         typedefs with different but compatible types.  Allow duplicate
29994         typedefs with the same type except for pedantic non-C1X, but give
29995         warning for variably modified types.
29996         * c-typeck.c (tagged_types_tu_compatible_p,
29997         function_types_compatible_p, type_lists_compatible_p,
29998         comptypes_internal): Add parameter different_types_p; set
29999         *different_types_p for different but compatible types.  All
30000         callers changed.
30001         (comptypes_check_different_types): New.
30002         * c-tree.h (comptypes_check_different_types): Declare.
30003
30004 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
30005
30006         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
30007         * jump.c: Include basic-block.h.
30008         * profile.c: Likewise.
30009         * tree-profile.c: Likewise.
30010         * coverage.c: Likewise.
30011         * basic-block.h (optimize_function_for_size_p): Move to function.h.
30012         (optimize_function_for_speed_p): Likewise.
30013         * function.h (optimize_function_for_size_p,
30014         optimize_function_for_speed_p): Moved here from basic-block.h.
30015         * Makefile.in: Update dependencies.
30016
30017 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30018
30019         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
30020         before calling make; allow override through $MAKE.
30021         * doc/invoke.texi (Optimize Options): Document override.
30022
30023 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
30024
30025         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
30026         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30027         (rs6000_mode_dependent_address_ptr): Make static.
30028         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30029         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
30030         Remove.
30031
30032 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
30033
30034         PR target/43869
30035         * config/i386/i386.c: Make sure that the correct regparm is passed.
30036
30037 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
30038
30039         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
30040         * sbitmap.c: ...to here to internalize sbitmap element access.
30041         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
30042         Explain why basic-block.h is included.
30043         * function.h: Include tm.h for CUMULATIVE_ARGS.
30044         * Makefile.in: Update dependencies.
30045
30046 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
30047
30048         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
30049         New core types.
30050         * sbitmap.h (struct sbitmap_def): Do not typedef here.
30051         * sbitmap.c: Include sbitmap.h.
30052         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
30053         hard-reg-set.h.  Split everything related to regsets out from here...
30054         * regset.h: ...to here.  New file.
30055         * df.h: Include regset.h and sbitmap.h.
30056         * tree-flow.h: Likewise.
30057         * cfgloop.h: Likewise.
30058         * except.h: Do not include sbitmap.h.  Include hashtab.h.
30059         * cgraph.h: Include vec.h and function.h.
30060         * reload.h (struct insn_chain): Change types of live_throughout
30061         and dead_or_set from regset_head to bitmap_head.
30062         (compute_use_by_pseudos): Be defined also if regset.h is not included.
30063         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
30064         spilled_regs from regset_head to bitmap_head to avoid dependency
30065         in regset.h.
30066         * sel-sched-ir.h: Include regset.h.
30067         * reload.c: Include df.h before reload.h.
30068         * caller-save.c: Likewise.
30069         * reload1.c: Likewise.
30070         * ira.c: Likewise.
30071         (mark_elimination): Update type of r to bitmap, consistent with
30072         DF_LR_IN.
30073         * dominance.c: Include bitmap.h.
30074         * modulo-sched.c: Include df.h.
30075         * cfganal.c: Include bitmap.h and sbitmap.h.
30076         * cfgbuild.c: Include sbitmap.h.
30077         * lcm.c: Include sbitmap.h.
30078         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
30079         * domwalk.c: Include sbitmap.h, exclude ggc.h.
30080         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
30081         * cselib.c: Include bitmap.h.
30082         * tree-optimize.c: Include regset.h.
30083         * stmt.c: Include bitmap.h.
30084         * Makefile.in: Update dependencies.
30085
30086 2010-05-22  Jan Hubicka  <jh@suse.cz>
30087
30088         * cgraph.h (struct varpool_node): Add same_comdat_group.
30089         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
30090         pointer.
30091         (output_varpool): Update call of lto_output_varpool_node.
30092         (input_varpool): Read same_comdat_group pointer.
30093         (input_varpool_1): Fixup same_comdat_group pointer.
30094         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
30095         group is needed, all are.
30096         * varpool.c (varpool_remove_node): Remove node from same comdat group
30097         linklist too.
30098         (varpool_analyze_pending_decls): Walk same comdat groups.
30099
30100 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
30101
30102         * rtl.h (union rtunion_def): Remove rt_bit member.
30103         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
30104         * print-rtl (print_rtx): Do not print the member.
30105         * gengtype.c (adjust_field_rtx_def): Do not handle it.
30106         * gengenrtl.c (type_from_format): Likewise.
30107         (accessor_from_format): Likewise.
30108
30109 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
30110
30111         * dbgcnt.c: Include toplev.h instead of errors.h.
30112         * ira-emit.c: Don't include errors.h.
30113         * ira.c: Include toplev.h instead of errors.h.
30114         * lto-compress.c: Include toplev.h instead of errors.h.
30115         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
30116         ira.o, dbgcnt.o): Update dependencies.
30117
30118 2010-05-22  Richard Guenther  <rguenther@suse.de>
30119
30120         * gimple.c (gimple_types_compatible_p): Check type qualifications
30121         before merging pointer to complete and pointer to incomplete type.
30122         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
30123         we use our own resolution algorithm.  The gold linker plugin
30124         doesn't do the job we want it to do here.
30125
30126 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
30127
30128         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
30129         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30130         (sparc_mode_dependent_address_p): New function.
30131
30132 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30133
30134         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
30135
30136         * timevar.c: Do not include any core headers.
30137         (timevar_print): De-i18n-ize.
30138         (print_time): Likewise.
30139         * timevar.h (timevar_push, timevar_pop): Make inline functions.
30140
30141 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
30142
30143         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
30144         langhooks-def.h.
30145         (diagnostic_initialize): Initialize x_data not last_function.
30146         (diagnostic_report_current_function): Move to tree-diagnostic.c.
30147         (default_diagnostic_starter): Call
30148         diagnostic_report_current_module not
30149         diagnostic_report_current_function.
30150         (diagnostic_report_diagnostic): Initialize x_data not
30151         abstract_origin.
30152         (verbatim): Likewise.
30153         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
30154         x_data.
30155         (struct diagnostic_context): Change last_function to x_data.
30156         (diagnostic_auxiliary_data): Replace with
30157         diagnostic_context_auxiliary_data and
30158         diagnostic_info_auxiliary_data.
30159         (diagnostic_last_function_changed, diagnostic_set_last_function,
30160         diagnostic_report_current_function): Move to tree-diagnostic.h.
30161         (print_declaration, dump_generic_node, print_generic_stmt,
30162         print_generic_stmt_indented, print_generic_expr,
30163         print_generic_decl, debug_c_tree, dump_omp_clauses,
30164         print_call_name, debug_generic_expr, debug_generic_stmt,
30165         debug_tree_chain, default_tree_printer): Move to
30166         tree-pretty-print.h.
30167         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
30168         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
30169         gimple-pretty-print.h.
30170         * pretty-print.c: Don't include tree.h
30171         (pp_base_format): Don't handle %K here.
30172         (pp_base_tree_identifier): Move to tree-pretty-print.c.
30173         * pretty-print.h (text_info): Change abstract_origin to x_data.
30174         (pp_tree_identifier, pp_unsupported_tree,
30175         pp_base_tree_identifier): Move to tree-pretty-print.h.
30176         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
30177         tree-pretty-print.h: New files.
30178         * tree-pretty-print.c: Include tree-pretty-print.h.
30179         (percent_K_format): New.  Moved from pretty-print.c.
30180         (pp_base_tree_identifier): Move from pretty-print.c.
30181         * c-objc-common.c: Include tree-pretty-print.h.
30182         (c_tree_printer): Handle %K here.
30183         * langhooks.c: Include tree-diagnostic.h.
30184         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
30185         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
30186         (default_tree_printer): Handle %K using percent_K_format.
30187         (general_init): Use default_tree_diagnostic_starter.
30188         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
30189         (free_lang_data): Use default_tree_diagnostic_starter.
30190         * c-pretty-print.c: Include tree-pretty-print.h.
30191         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30192         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30193         * dwarf2out.c: Include tree-pretty-print.h.
30194         * except.c: Include tree-pretty-print.h.
30195         * gimple-pretty-print.c: Include tree-pretty-print.h and
30196         gimple-pretty-print.h.
30197         * gimplify.c: Include tree-pretty-print.h.
30198         * graphite-poly.c: Include tree-pretty-print.h and
30199         gimple-pretty-print.h.
30200         * ipa-cp.c: Include tree-pretty-print.h.
30201         * ipa-inline.c: Include gimple-pretty-print.h.
30202         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30203         * ipa-pure-const.c: Include gimple-pretty-print.h.
30204         * ipa-struct-reorg.c: Include tree-pretty-print.h and
30205         gimple-pretty-print.h.
30206         * ipa-type-escape.c: Include tree-pretty-print.h.
30207         * print-rtl.c: Include tree-pretty-print.h.
30208         * print-tree.c: Include gimple-pretty-print.h.
30209         * sese.c: Include tree-pretty-print.h.
30210         * tree-affine.c: Include tree-pretty-print.h.
30211         * tree-browser.c: Include tree-pretty-print.h.
30212         * tree-call-cdce.c: Include gimple-pretty-print.h.
30213         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
30214         * tree-chrec.c: Include tree-pretty-print.h.
30215         * tree-data-ref.c: Include tree-pretty-print.h and
30216         gimple-pretty-print.h.
30217         * tree-dfa.c: Include tree-pretty-print.h.
30218         * tree-if-conv.c: Include tree-pretty-print.h and
30219         gimple-pretty-print.h.
30220         * tree-inline.c: Include tree-pretty-print.h.
30221         * tree-into-ssa.c: Include tree-pretty-print.h and
30222         gimple-pretty-print.h.
30223         * tree-nrv.c: Include tree-pretty-print.h.
30224         * tree-object-size.c: Include tree-pretty-print.h and
30225         gimple-pretty-print.h.
30226         * tree-outof-ssa.c: Include tree-pretty-print.h and
30227         gimple-pretty-print.h.
30228         * tree-parloops.c: Include tree-pretty-print.h and
30229         gimple-pretty-print.h.
30230         * tree-predcom.c: Include tree-pretty-print.h and
30231         gimple-pretty-print.h.
30232         * tree-scalar-evolution.c: Include tree-pretty-print.h and
30233         gimple-pretty-print.h.
30234         * tree-sra.c: Include tree-pretty-print.h.
30235         * tree-ssa-address.c: Include tree-pretty-print.h.
30236         * tree-ssa-alias.c: Include tree-pretty-print.h.
30237         * tree-ssa-ccp.c: Include tree-pretty-print.h and
30238         gimple-pretty-print.h.
30239         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
30240         * tree-ssa-copy.c: Include tree-pretty-print.h and
30241         gimple-pretty-print.h.
30242         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
30243         * tree-ssa-dce.c: Include tree-pretty-print.h and
30244         gimple-pretty-print.h.
30245         * tree-ssa-dom.c: Include tree-pretty-print.h and
30246         gimple-pretty-print.h.
30247         * tree-ssa-dse.c: Include gimple-pretty-print.h.
30248         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
30249         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
30250         * tree-ssa-live.c: Include tree-pretty-print.h and
30251         gimple-pretty-print.h.
30252         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
30253         gimple-pretty-print.h.
30254         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
30255         gimple-pretty-print.h.
30256         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
30257         gimple-pretty-print.h.
30258         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
30259         gimple-pretty-print.h.
30260         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
30261         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
30262         * tree-ssa-operands.c: Include tree-pretty-print.h and
30263         gimple-pretty-print.h.
30264         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
30265         gimple-pretty-print.h.
30266         * tree-ssa-pre.c: Include tree-pretty-print.h and
30267         gimple-pretty-print.h.
30268         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
30269         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
30270         gimple-pretty-print.h.
30271         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
30272         gimple-pretty-print.h.
30273         * tree-ssa-sink.c: Include gimple-pretty-print.h.
30274         * tree-ssa-ter.c: Include tree-pretty-print.h and
30275         gimple-pretty-print.h.
30276         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
30277         * tree-ssa.c: Include tree-pretty-print.h and
30278         gimple-pretty-print.h.
30279         * tree-stdarg.c: Include gimple-pretty-print.h.
30280         * tree-switch-conversion.c: Include gimple-pretty-print.h.
30281         * tree-tailcall.c: Include tree-pretty-print.h and
30282         gimple-pretty-print.h.
30283         * tree-vect-data-refs.c: Include tree-pretty-print.h and
30284         gimple-pretty-print.h.
30285         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
30286         gimple-pretty-print.h.
30287         * tree-vect-loop.c: Include tree-pretty-print.h and
30288         gimple-pretty-print.h.
30289         * tree-vect-patterns.c: Include gimple-pretty-print.h.
30290         * tree-vect-slp.c: Include tree-pretty-print.h and
30291         gimple-pretty-print.h.
30292         * tree-vect-stmts.c: Include tree-pretty-print.h and
30293         gimple-pretty-print.h.
30294         * tree-vectorizer.c: Include tree-pretty-print.h.
30295         * tree-vrp.c: Include tree-pretty-print.h and
30296         gimple-pretty-print.h.
30297         * value-prof.c: Include tree-pretty-print.h and
30298         gimple-pretty-print.h.
30299         * var-tracking.c: Include tree-pretty-print.h.
30300         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
30301         (tree-diagnostic.o): New dependencies.
30302         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
30303         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
30304         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
30305         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
30306         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
30307         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
30308         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
30309         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
30310         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
30311         tree-ssa-address.o, tree-ssa-loop-niter.o,
30312         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
30313         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
30314         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
30315         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
30316         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
30317         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
30318         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
30319         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
30320         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
30321         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
30322         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
30323         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
30324         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
30325         tree-switch-conversion.o, var-tracking.o, value-prof.o,
30326         cfgexpand.o, pretty-print.o): Update dependencies.
30327
30328 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
30329
30330         * tree-ssa-structalias.c: Remove tm_p.h from include.
30331
30332 2010-05-21  Jeff Law  <law@redhat.com>
30333
30334         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
30335
30336 2010-05-21  Jason Merrill  <jason@redhat.com>
30337
30338         * tree-eh.c (cleanup_is_dead_in): New.
30339         (lower_try_finally): Don't generate a dead cleanup region.
30340         (lower_cleanup): Likewise.
30341
30342 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30343
30344         PR debug/44223
30345         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
30346         unchain each use from the cyclic next_regno_use chain first.
30347
30348 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30349
30350         * real: Do not include gmp.h, mpfr.h, and mpc.h.
30351         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
30352         (real_value_negate, real_value_abs): New prototypes.
30353         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
30354         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
30355         new include file for interface between MPFR and REAL_VALUE_TYPE.
30356         * real.c: Include realmpfr.h.
30357         (real_arithmetic2): Remove legacy function.
30358         (real_value_negate): New.
30359         (real_value_abs): New.
30360         (mfpr_from_real, real_from_mpfr): Move from here...
30361         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
30362         * builtins.c: Include realmpfr.h.
30363         * fold-const.c: Include realmpfr.h.
30364         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
30365         (fold_negate_const): Likewise.
30366         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
30367         * toplev.c: Include realmpfr.h.
30368         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
30369         and real_value_negate.
30370         * fixed-value.c (check_real_for_fixed_mode): Likewise.
30371         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
30372         (vfp3_const_double_index): Likewise.
30373         (arm_print_operand): Likewise.
30374         * Makefile.in: Update dependencies.
30375
30376 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30377
30378         * config/s390/s390.c (override_options): Increase the default
30379         of max-completely-peel-times.
30380
30381 2010-05-21  Julian Brown  <julian@codesourcery.com>
30382             Mark Mitchell  <mark@codesourcery.com>
30383
30384         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
30385         sibling calls for Thumb-1.
30386         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
30387         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
30388         Thumb-2.
30389         (*call_insn, *call_value_insn): Don't use for Thumb-2.
30390         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
30391         for Thumb-2.
30392         (return): New expander.
30393         (*arm_return): New name for ARM return insn.
30394         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
30395
30396 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
30397
30398         * config.gcc (sparc64-*-rtems*): New target.
30399
30400 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30401
30402         * tree.c (build_function_decl_skip_args): Fix grammar.
30403         (build_function_type_list_1): Fix typos, adjust formatting.
30404
30405 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
30406
30407         * tree.h: Include real.h and fixed-value.h as basic datatypes.
30408         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
30409         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
30410         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
30411         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
30412         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
30413         tree-pretty-print.c, tree-loop-distribution.c,
30414         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
30415         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
30416         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
30417         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
30418         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
30419         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
30420         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
30421         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
30422         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
30423         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
30424         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
30425         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
30426         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
30427         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
30428         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
30429         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
30430         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
30431         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
30432         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
30433         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
30434         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
30435         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
30436         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
30437         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
30438         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
30439         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
30440         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
30441         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
30442         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
30443         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
30444         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
30445         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
30446         config/score/score7.c, config/score/score.c, config/arm/arm.c,
30447         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
30448         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
30449         config/bfin/bfin.c: Clean up redundant includes.
30450         * Makefile.in: Update accordingly.
30451
30452 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
30453
30454         PR middle-end/44204
30455         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
30456         statement has no arguments.
30457
30458 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
30459
30460         PR/44139
30461         * varasm.c (emutls_decl): Merge attributes to new decl.
30462
30463 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
30464
30465         PR middle-end/44101
30466         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
30467         around the uniquized constructor if its type requires a conversion.
30468
30469 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
30470
30471         PR debug/44205
30472         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
30473         at -O0 goto_locus of any of the incoming edges differs from
30474         goto_locus of outgoing edge, or gimple_location of any of the
30475         labels differs.
30476
30477 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
30478
30479         * ira.c (ira_non_ordered_class_hard_regs): Define.
30480         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
30481         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
30482         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
30483         cost of unaligned hard regs when allocating multi-reg pseudos.
30484
30485 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
30486
30487         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
30488         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
30489         for TARGET_NO_FLOAT.
30490         * config/mips/mips.c (mips_file_start): Expand conditional expression
30491         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
30492         (mips_override_options): Move -mno-float override -msoft-float and
30493         -mhard-float.
30494         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
30495         Condition(TARGET_SUPPORTS_NO_FLOAT).
30496         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
30497         __mips_no_float here.
30498         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
30499         (TARGET_SUPPORTS_NO_FLOAT): Define.
30500         * config/mips/sdemtk.opt: Delete.
30501
30502 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
30503
30504         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
30505
30506 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
30507
30508         PR target/43733
30509         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
30510         * configure: Regenerate.
30511         * config.in: Regenerate.
30512         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
30513         instead of sahf only for 64bit targets.
30514
30515 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30516
30517         PR debug/44178
30518         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
30519         setup_ref_regs for DEBUG_INSNs.
30520
30521 2010-05-20  Jan Hubicka  <jh@suse.cz>
30522
30523         PR middle-end/44197
30524         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
30525
30526 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
30527
30528         PR bootstrap/43870
30529         * df-scan.c (df_ref_compare): Stabilize sort.
30530
30531 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
30532
30533         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
30534         argument.  Don't use DW_OP_piece if offset is non-zero,
30535         put offset into second DW_OP_bit_piece argument.
30536         (dw_sra_loc_expr): Adjust callers.  For memory expressions
30537         compute offset.
30538
30539 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
30540
30541         PR target/44202
30542         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
30543         settings for 16-bit-constant "addo" alternative.
30544
30545 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
30546
30547         * config/mips/mips-dsp.md (add<DSPV:mode>3,
30548         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
30549
30550         PR target/43764
30551         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
30552         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
30553         Use it.
30554
30555 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
30556
30557         * diagnostic.c (FLOAT, FFS): Don't undefine.
30558         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
30559         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
30560         include ordering.
30561
30562 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
30563
30564         * combine.c (propagate_for_debug): Call make_compound_operation
30565         on the source value.
30566         (try_combine): When implementing a split chosen by find_split_point,
30567         either copy i2src or set it to null.  Assert that i2src is not null
30568         before substituting into CALL_INSN_FUNCTION_USAGE.
30569
30570 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
30571
30572         * double-int.h (double_int_ior): New function.
30573         * tree.h (build_int_cst_wide_type): Remove.
30574         * tree.c (build_int_cst_wide_type): Remove.
30575         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
30576         of build_int_cst_wide_type.
30577         * stor-layout.c (set_sizetype): (Ditto.).
30578         * dojump.c (do_jump): Use build_int_cstu instead of
30579         build_int_cst_wide_type.
30580
30581 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30582
30583         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
30584         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
30585         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
30586         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
30587         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
30588         propagate the 'data' argument to copy_tree_r.
30589         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
30590         Propagate 'data' argument to walk_tree.
30591         (copy_if_shared): New function.
30592         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
30593         (unmark_visited): New function.
30594         (unshare_body): Call copy_if_shared instead of doing it manually.
30595         (unvisit_body): Call unmark_visited instead of doing it manually.
30596
30597 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
30598
30599         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
30600         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
30601         * hooks.c: Likewise.
30602         * target-def.h (TARGET_FOLD_BUILTIN): Define to
30603         hook_tree_tree_int_treep_bool_null.
30604         * target.h (struct gcc_target): Update signature of fold_builtin
30605         field.
30606         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
30607         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
30608         instead of the call expression.
30609         (fold_builtin_call_array): Pass n and argarray directly.
30610         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
30611         consing a list.
30612         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
30613         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
30614         `i' and use it in place of `arity'.
30615         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
30616         Dereference `args' directly.
30617         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
30618
30619 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30620
30621         * doc/sourcebuild.texi (Effective-Target Keywords): Document
30622         3dnow, sse3, sse2.
30623         (Directives): Document optional dg-require-effective-target
30624         selector.
30625
30626 2010-05-19  Richard Guenther  <rguenther@suse.de>
30627
30628         PR lto/44196
30629         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
30630
30631 2010-05-19  Richard Guenther  <rguenther@suse.de>
30632
30633         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
30634         * common.opt (fwhopr=): New.
30635         * opts.c (common_handle_option): Handle OPT_fwhopr.
30636         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
30637         * collect2.c (main): Match -fwhopr*.
30638         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
30639         Execute ltrans stage in parallel when jobs is bigger than 1.
30640
30641 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30642
30643         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
30644         pentiumpro on Solaris 8/x86 with Sun as.
30645         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
30646         hidden alias bug.
30647         (gcc_cv_as_ix86_quad): Check for .quad directive.
30648         * configure: Regenerate.
30649         * config.in: Regenerate.
30650         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
30651
30652 2010-05-19  Martin Jambor  <mjambor@suse.cz>
30653
30654         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
30655         also for indirect edges.  Actual printing moved...
30656         (ipa_print_node_jump_functions_for_edge): ...here.
30657         (ipa_compute_jump_functions): Renamed to
30658         ipa_compute_jump_functions_for_edge and made static.
30659         (ipa_compute_jump_functions): New function.
30660         (make_edge_direct_to_target): Check if the number of arguments on
30661         the newly direct edge is the same as the number of parametrs of
30662         the callee.
30663         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
30664         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
30665         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
30666         analysis functions unconditionally, call the new
30667         ipa_analyze_params_uses on the node instead of every edge.
30668
30669 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
30670
30671         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
30672         to tree.
30673         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
30674         also checks for a constant int vs.  non-constant but
30675         loop-invariant steps.
30676         (find_or_create_group): Change the sort algorithm to only consider
30677         steps that are constant ints.
30678         (idx_analyze_ref): Adopt code to handle a tree instead of a
30679         HOST_WIDE_INT for step.
30680         (gather_memory_references_ref): Handle tree instead of int and be
30681         prepared to see a NULL_TREE.
30682         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
30683         prefetches if the step cannot be calculated at compile time.
30684         (issue_prefetch_ref): Issue prefetches for non-constant but
30685         loop-invariant steps.
30686
30687 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30688
30689         Revert:
30690         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30691
30692         * tree.h (build_call_list): Remove.
30693         * tree.c (build_call_list): Remove.
30694
30695 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
30696
30697         * tree.h (build_call_list): Remove.
30698         * tree.c (build_call_list): Remove.
30699
30700 2010-05-18  Jan Hubicka  <jh@suse.cz>
30701
30702         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
30703
30704 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
30705
30706         PR rtl-optimization/43332
30707         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
30708
30709 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
30710
30711         * tree.h (build_int_cstu): Implement as static inline.
30712         * tree.c (build_int_cstu): Remove function.
30713         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
30714         sign extended.
30715
30716 2010-05-18  Richard Guenther  <rguenther@suse.de>
30717
30718         PR lto/44143
30719         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
30720         (debug): Initialize from -save-temps.
30721         (collect_execute): Print command-line when verbose.
30722         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
30723         for ltrans invocation.  Produce -dumpbase flag again.
30724         (process_args): Remove.
30725         (main): Simplify.
30726         * collect2.c (maybe_run_lto_and_relink): Only pass object
30727         files to lto-wrapper.
30728         * gcc.c (LINK_COMMAND_SPEC): Likewise.
30729
30730 2010-05-18  Jan Hubicka  <jh@suse.cz>
30731
30732         * opts.c (decode_options): Do not disable whopr at ipa_cp.
30733         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
30734
30735 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30736
30737         PR lto/44184
30738         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
30739         in a GIMPLE_ASM.
30740         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
30741         in a GIMPLE_ASM.
30742
30743 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
30744
30745         PR debug/41371
30746         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
30747         rtx_equal_p inline.
30748
30749 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
30750
30751         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
30752         lto-macho as lto_binary_reader.
30753
30754         * darwin.c (darwin_asm_named_section): Do not add assembler comment
30755         after .section directive; just print it before the directive instead.
30756
30757 2010-05-17  Jan Hubicka  <jh@suse.cz>
30758
30759         * cgraph.c (cgraph_create_virtual_clone): Only check
30760         versionable_function_p when not in wpa and checking is enabled.
30761         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
30762         there are no more functions to materialize.
30763
30764 2010-05-17  Jan Hubicka  <jh@suse.cz>
30765
30766         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
30767         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
30768         New functions.
30769         (output_cgraph): Call output_cgraph_opt_summary.
30770         (input_cgrpah): Call input_cgraph_opt_summary.
30771         (output_cgraph_opt_summary_p, output_node_opt_summary,
30772         input_node_opt_summary, input_cgraph_opt_section): New functions.
30773         * lto-section-in.c (lto_section_name): Add cgraphopt.
30774         * tree-inline.c (tree_function_versioning): Handle parm_num.
30775         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
30776         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
30777
30778 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30779
30780         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
30781         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
30782         the insn to prefetch ratio heuristic to loops with known trip count.
30783
30784 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
30785
30786         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
30787         (schedule_prefetches): Do not generate a prefetch if the unroll factor
30788         is far from what is required by the prefetch.
30789
30790 2010-05-17  Jan Hubicka  <jh@suse.cz>
30791
30792         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
30793         (ipcp_estimate_growth): Likewise.
30794         (ipcp_const_param_count): Likewise.
30795         (ipcp_insert_stage): Likewise.
30796         * ipa-prop.c (visit_load_for_mod_analysis): New function.
30797         (visit_store_addr_for_mod_analysis): Set used flag.
30798         (ipa_detect_param_modifications): Set used flag for SSE params;
30799         update use of walk_stmt_load_store_addr_ops.
30800         (ipa_print_node_params): Print used flag.
30801         (ipa_write_node_info): Stream used flag.
30802         (ipa_read_node_info): Likewise.
30803         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
30804         (ipa_is_param_used): New function.
30805         (lto_ipa_fixup_call_notes): Remove unused declaration.
30806
30807 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30808
30809         PR target/44074
30810         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
30811         * configure: Regenerate.
30812         * config.in: Regenerate.
30813         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
30814         !HAVE_AS_IX86_REP_LOCK_PREFIX.
30815         Don't emit whitespace.
30816         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
30817         (*rep_movsi): Likewise.
30818         (*rep_movsi_rex64): Likewise.
30819         (*rep_movqi): Likewise.
30820         (*rep_movqi_rex64): Likewise.
30821         (*rep_stosdi_rex64): Likewise.
30822         (*rep_stossi): Likewise.
30823         (*rep_stossi_rex64): Likewise.
30824         (*rep_stosqi): Likewise.
30825         (*rep_stosqi_rex64): Likewise.
30826         (*cmpstrnqi_nz_1): Use {%;} after repz.
30827         (*cmpstrnqi_nz_rex_1): Likewise.
30828         (*cmpstrnqi_1): Likewise.
30829         (*cmpstrnqi_rex_1): Likewise.
30830         (*strlenqi_1): Use {%;} after repnz.
30831         (*strlenqi_rex_1): Likewise.
30832         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
30833         (*sync_compare_and_swap<mode>): Likewise.
30834         (sync_double_compare_and_swap<mode>): Likewise.
30835         (*sync_double_compare_and_swapdi_pic): Likewise.
30836         (sync_old_add<mode>): Likewise.
30837         (sync_add<mode>): Likewise.
30838         (sync_sub<mode>): Likewise.
30839         (sync_<code><mode>): Likewise.
30840
30841 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30842
30843         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
30844         otr_token and polymorphic.
30845         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
30846         (cgraph_clone_edge): Copy the above fields.
30847         * tree.c (get_binfo_at_offset): New function.
30848         * tree.h (get_binfo_at_offset): Declare.
30849         * ipa-prop.h (enum jump_func_type): Added known_type jump function
30850         type, reordered items, updated comments.
30851         (union jump_func_value): Added base_type field, reordered fields.
30852         (enum ipa_lattice_type): Moved down in the file.
30853         (struct ipa_param_descriptor): New field polymorphic.
30854         (ipa_is_param_polymorphic): New function.
30855         * ipa-prop.c: Include gimple.h and gimple-fold.h.
30856         (ipa_print_node_jump_functions): Print known type jump functions.
30857         (compute_complex_pass_through): Renamed to...
30858         (compute_complex_assign_jump_func): this.
30859         (compute_complex_ancestor_jump_func): New function.
30860         (compute_known_type_jump_func): Likewise.
30861         (compute_scalar_jump_functions): Create known type and complex ancestor
30862         jump functions.
30863         (ipa_note_param_call): New parameter polymorphic, set the corresponding
30864         flag in the call note accordingly.
30865         (ipa_analyze_call_uses): Renamed to...
30866         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
30867         variable var only in the block where it is used.
30868         (ipa_analyze_virtual_call_uses): New function.
30869         (ipa_analyze_call_uses): Likewise.
30870         (combine_known_type_and_ancestor_jfs): Likewise.
30871         (update_jump_functions_after_inlining): Implemented handling of a
30872         number of new jump function types combination.
30873         (print_edge_addition_message): Removed.
30874         (make_edge_direct_to_target): New function.
30875         (try_make_edge_direct_simple_call): Likewise.
30876         (try_make_edge_direct_virtual_call): Likewise.
30877         (update_call_notes_after_inlining): Renamed to...
30878         (update_indirect_edges_after_inlining): this.  Moved edge creation for
30879         indirect calls to try_make_edge_direct_simple_call, also calls
30880         try_make_edge_direct_virtual_call for virtual calls.
30881         (ipa_print_node_params): Changed the header message.
30882         (ipa_write_jump_function): Stream also known type jump functions.
30883         (ipa_read_jump_function): Likewise.
30884         (ipa_write_indirect_edge_info): Stream new fields in
30885         cgraph_indirect_call_info.
30886         (ipa_read_indirect_edge_info): Likewise.
30887         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
30888         GIMPLE_FOLD_H.
30889
30890 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30891
30892         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
30893
30894 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30895
30896         * tree.h (CALL_EXPR_ARGS): Delete.
30897         (call_expr_arglist): Delete.
30898         * tree.c (call_expr_arglist): Delete.
30899         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
30900         targetm.fold_builtin.
30901         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
30902         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
30903         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
30904         arglist parameter.  Use CALL_EXPR_ARG.
30905         (picochip_expand_builtin_3op): Likewise.
30906         (picochip_expand_builtin_2opvoid): Likewise.
30907         (picochip_expand_array_get): Likewise.
30908         (picochip_expand_array_put): Likewise.
30909         (picochip_expand_array_testport): Likewise.
30910         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
30911         rather than arglist.
30912         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
30913         CALL_EXPR_ARGS.
30914         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
30915         than TREE_VALUE and TREE_CHAIN.
30916         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
30917         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
30918         the arglist.
30919
30920 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30921
30922         PR bootstrap/42347
30923         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
30924         to have no fallthru edge.
30925
30926         PR middle-end/44102
30927         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
30928         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
30929         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
30930         add BARRIER after previous bb if needed.
30931
30932 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
30933
30934         * tree.c (build_function_type_list_1): Remove bogus assert condition.
30935
30936 2010-05-17  Alan Modra  <amodra@gmail.com>
30937
30938         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
30939         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
30940         with copy_reg rtx param.
30941         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
30942         Correct cases where code for ABI_V4 did not initialise the reg
30943         used to access frame.  Also leave frame_reg_rtx as sp for large
30944         frames that save no regs.
30945
30946 2010-05-17  Martin Jambor  <mjambor@suse.cz>
30947
30948         PR middle-end/44133
30949         * tree-sra.c (create_access_replacement): New parameter rename, mark
30950         the replaement for renaming only when it is true.
30951         (get_access_replacement): Pass true in the rename parameter of
30952         create_access_replacement.
30953         (get_unrenamed_access_replacement): New function.
30954         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
30955         replacement declaration from it.
30956
30957 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
30958
30959         * function.c (try_fit_stack_local, add_frame_space): New static
30960         functions.
30961         (assign_stack_local_1): Use them.  Look for opportunities to use
30962         space previously wasted on alignment.
30963         * function.h (struct frame_space): New.
30964         (struct rtl_data): Add FRAME_SPACE_LIST member.
30965         * reload1.c (something_was_spilled): New static variable.
30966         (alter_reg): Set it.
30967         (reload): Test it in addition to testing if the frame size changed.
30968
30969 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
30970
30971         * config/s390/s390.c: Define sane prefetch settings and activate
30972         flag_prefetch_loop_arrays on -O3.
30973         * config/s390/s390.h: Declare that read can use write prefetch.
30974
30975 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
30976
30977         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
30978         build.
30979
30980 2010-05-16  Jan Hubicka  <jh@suse.cz>
30981
30982         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
30983         function body; do not check stdarg field of struct function.
30984
30985 2010-05-16  Jan Hubicka  <jh@suse.cz>
30986
30987         * cgraph.c (dump_cgraph_node): Dump versionable flag.
30988         * cgraph.h (cgraph_local_info): Add versionable flag.
30989         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
30990         (ipcp_versionable_function_p): Use it.
30991         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
30992         versionable flag.
30993
30994 2010-05-16  Jan Hubicka  <jh@suse.cz>
30995
30996         * cgraph.c (cgraph_clone_node): Take decl argument and insert
30997         clone into hash when it is different from orig.
30998         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
30999         * cgraph.h (cgraph_clone_node): Update prototype.
31000         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
31001         (lto_cgraph_encoder_delete): Delete body map.
31002         (lto_cgraph_encoder_size): Move to header.
31003         (lto_cgraph_encoder_encode_body_p,
31004         lto_set_cgraph_encoder_encode_body): New.
31005         (lto_output_node): Do not take written_decls argument; output clone_of
31006         pointer.
31007         (add_node_to): Add include_body_argument; call
31008         lto_set_cgraph_encoder_encode_body on master of the clone.
31009         (add_references): Update use of add_node_to.
31010         (compute_ltrans_boundary): Likewise.
31011         (output_cgraph): Do not create written_decls bitmap.
31012         (input_node): Take nodes argument; stream in clone_of correctly.
31013         (input_cgraph_1): Update use of input_node.
31014         * lto-streamer-out.c (lto_output): Use encoder info to decide
31015         what bodies to output.
31016         * ipa-inline.c (cgraph_clone_inlined_nodes,
31017         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
31018         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
31019         (lto_cgraph_encoder_size): Define here.
31020         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
31021         Declare.
31022
31023 2010-05-16  Richard Guenther  <rguenther@suse.de>
31024
31025         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
31026         -fipa-type-escape.
31027         * ipa-type-escape.c (gate_type_escape_vars): Run when
31028         -fipa-struct-reorg runs.
31029         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
31030         * common.opt (fipa-type-escape): Remove.
31031
31032 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
31033
31034         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
31035         (decode_options): Likewise.
31036         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
31037
31038 2010-05-16  Jan Hubicka  <jh@suse.cz>
31039
31040         * ipa.c (function_and_variable_visibility): Also bring local all
31041         aliases.
31042
31043 2010-05-16  Richard Guenther  <rguenther@suse.de>
31044
31045         * alias.c (nonoverlapping_memrefs_p): Remove use of
31046         IPA type-escape information.
31047
31048 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
31049
31050         * c-common.c (c_common_reswords): Add _Static_assert for C.
31051         * c-parser.c (c_token_starts_declaration,
31052         c_parser_next_token_starts_declaration,
31053         c_parser_static_assert_declaration_no_semi,
31054         c_parser_static_assert_declaration): New.
31055         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
31056         Handle static assertions if static_assert_ok.
31057         (c_parser_external_declaration, c_parser_declaration_or_fndef,
31058         c_parser_compound_statement_nostart, c_parser_label,
31059         c_parser_for_statement, c_parser_objc_methodprotolist,
31060         c_parser_omp_for_loop): All callers of
31061         c_parser_declaration_or_fndef changed.
31062         (c_parser_struct_declaration): Handle static assertions.
31063         (c_parser_compound_statement_nostart): Use
31064         c_parser_next_token_starts_declaration and
31065         c_token_starts_declaration to detect start of declarations.
31066         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
31067         Likewise.
31068
31069 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
31070
31071         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
31072         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
31073         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
31074         TARGET_FUNCTION_VALUE_REGNO_P): Define.
31075         (mmix_function_outgoing_value): Rename to...
31076         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
31077         (mmix_function_value_regno_p): Make static.
31078         (mmix_libcall_value): New function.
31079         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
31080         mmix_function_value_regno_p): Remove declaration.
31081
31082 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
31083
31084         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
31085         BUILT_IN_ALLOCA if stack checking is enabled.
31086
31087 2010-05-16  Richard Guenther  <rguenther@suse.de>
31088
31089         * var-tracking.c (vars_copy_1): Inline ...
31090         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
31091         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
31092         (variable_merge_over_cur): Adjust.  Merge asserts.
31093         (variable_merge_over_src): Likewise.
31094         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
31095         (variable_post_merge_new_vals): Merge asserts.
31096         (variable_post_merge_perm_vals): Likewise.
31097         (find_mem_expr_in_1pdv): Likewise.
31098         (dataflow_set_different_value): Remove.
31099         (onepart_variable_different_p): Merge asserts.
31100         (variable_different_p): Likewise.
31101         (dataflow_set_different_1): Inline ...
31102         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
31103         (emit_notes_for_differences_1): Merge asserts.
31104
31105 2010-05-16  Richard Guenther  <rguenther@suse.de>
31106
31107         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
31108         * optabs.c (libfunc_decl_hash): Likewise.
31109         * varasm.c (emutls_decl): Likewise.
31110
31111 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
31112
31113         * c-decl.c: Don't include gimple.h.
31114         (merge_decls): Do not copy gimple_body.
31115
31116 2010-05-15  Jason Merrill  <jason@redhat.com>
31117
31118         * c.opt: Add -fnothrow-opt.
31119
31120 2010-05-15  Jan Hubicka  <jh@suse.cz>
31121
31122         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
31123         analyzed.
31124         * passes.c (ipa_write_summaries): Write all analyzed nodes.
31125
31126 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
31127
31128         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
31129         * Makefile.in: Add it.
31130         Fix all other Makefile dependencies for changes below.
31131         * tree.h: Include it instead of defining VEC primitives here.
31132         * gimple.h: Likewise.
31133         * rtl.h: Likewise.
31134         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
31135         * except.h: Include vecir.h, break dependence on tree.h.
31136
31137         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
31138         Move from here...
31139         * tree-iterator.c: ...to here.
31140         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
31141
31142         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
31143         tm_p.h.
31144         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
31145         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
31146         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
31147         tree-mudflap.h, and target.h.
31148         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
31149         predict.h, tree-inline.h, gimple.h, and langhooks.h.
31150         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
31151         Add FIXME for why gimple.h is still included (should be unnecessary
31152         since GCC 4.5 gimplification unit-at-a-time).
31153         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
31154         * c-pragma.c: Add FIXME for why function.h needs to be included just
31155         for cfun, at front-end level.
31156         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
31157         Do not include ggc.h, but include vecprim.h for VEC(char).
31158         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
31159         Explain why target.h is included.
31160         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
31161         Explain why gimple.h is included.
31162         * c-ppoutput.c: Do not include tm.h.
31163         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
31164         * c-parses.c: Explain why rtl.h is included, and that this (and only
31165         this) is also why tm.h must be included.
31166         Do not include except.h.
31167         * c-lang.c: Do not include ggc.h.
31168
31169 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
31170
31171         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
31172
31173 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
31174
31175         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
31176         unions by default if those structs and unions have no tags.  Do
31177         not condition anonymous struct and unions handling on flag_iso.
31178         Allow anonymous structs and unions for C1X.
31179         (finish_struct): Do not diagnose lack of named fields when
31180         anonymous structs and unions present for C1X.  Accept flexible
31181         array members in structure with anonymous structs or unions but no
31182         directly named fields.
31183         * doc/extend.texi (Unnamed Fields): Update.
31184
31185 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
31186
31187         * gimple.h (compare_field_offset): Rename into...
31188         (gimple_compare_field_offset): ...this.
31189         * gimple.c (compare_field_offset): Rename into...
31190         (gimple_compare_field_offset): ...this.  Compare the full access if
31191         the offset is self-referential.
31192         (gimple_types_compatible_p): Adjust for above renaming.
31193         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
31194         DECL_NONADDRESSABLE_P flag of fields before merging them.
31195
31196 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
31197
31198         * tree.h (ctor_to_list): Delete.
31199         * tree.c (ctor_to_list): Delete.
31200
31201 2010-05-15  Jan Hubicka  <jh@suse.cz>
31202
31203         * ipa-reference.c: Include toplev.h
31204         (is_proper_for_analysis): Only add to all_module_statics
31205         if it is allocated.
31206         (write_node_summary_p, stream_out_bitmap,
31207         ipa_reference_write_optimization_summary,
31208         ipa_reference_read_optimization_summary): New.
31209         (struct ipa_opt_pass_d pass_ipa_reference): Add
31210         optimization summary streaming.
31211         * lto-cgraph.c (referenced_from_this_partition_p,
31212         reachable_from_this_partition_p): New functions.
31213         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
31214         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
31215         * opts.c (decode_options): Enable ipa_reference.
31216         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
31217         * lto-streamer.h (referenced_from_this_partition_p,
31218         reachable_from_this_partition_p): Declare.
31219
31220 2010-05-15  Richard Guenther  <rguenther@suse.de>
31221
31222         PR tree-optimization/44038
31223         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
31224         taking the address of a V_C_E of a constant.
31225
31226 2010-05-14  Jan Hubicka  <jh@suse.cz>
31227
31228         * tree.h (memory_identifier_string): Remove.
31229         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
31230         (ipa_reference_global_vars_info_d): Remove statics_not_read and
31231         statics_not_written.
31232         (ipa_reference_optimization_summary_d): New structure.
31233         (ipa_reference_optimization_summary_t): New type and vector.
31234         (ipa_reference_vars_info_d): Embedd structures instead of using
31235         pointers.
31236         (reference_vars_to_consider): Remove out of GGC space.
31237         (module_statics_escape): Remove.
31238         (global_info_obstack): Rename to ...
31239         (optimization_summary_obstack): ... this one.
31240         (initialization_status_t): Remove.
31241         (memory_identifier_string): Remove.
31242         (get_reference_vars_info): Fix indenting.
31243         (set_reference_vars_info): Likewise.
31244         (get_reference_optimization_summary): New.
31245         (set_reference_optimization_summary): New.
31246         (get_global_reference_vars_info): Remove.
31247         (ipa_reference_get_read_global): Remove.
31248         (ipa_reference_get_written_global): Remove.
31249         (ipa_reference_get_not_read_global): Update.
31250         (ipa_reference_get_not_written_global): Update.
31251         (is_proper_for_analysis): Outlaw addressable.
31252         (propagate_bits): Update for new datastructures.
31253         (analyze_variable): Remove.
31254         (init_function_info): Update for new datastructures.
31255         (clean_function_local_data): Remove.
31256         (clean_function): Remove.
31257         (copy_global_bitmap): Use optimizations_summary_obstack.
31258         (duplicate_node_data): Duplicate optimization summary only.
31259         (remove_node_data): Remove optimization summary only.
31260         (generate_summary): Do not analyze variables; do not compute
31261         module_statics_escape; do not prune solutions by it.
31262         (read_write_all_from_decl): Fix typos in comments.
31263         (propagate): Doscover readonly and nonaddressable first;
31264         update for new datastructures; share global bitmaps.
31265         * ipa-reference.h (ipa_reference_get_read_global,
31266         ipa_reference_get_written_global): Remove.
31267         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
31268         * Makefile.in: Remove ipa-refereference from GT files.
31269
31270 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31271
31272         PR debug/44112
31273         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
31274         for all SYMBOL_REF_DECLs.
31275
31276 2010-05-14  Jan Hubicka  <jh@suse.cz>
31277
31278         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
31279         (varpool_all_refs_explicit_p): New inline function.
31280         * ipa-reference.c: Update comment.
31281         (module_statics_written): Remove.
31282         (get_static_decl): Remove.
31283         (ipa_init): Do not initialize module_statics_written.
31284         (analyze_function): Likewise.
31285         (generate_summary): Likewise; do not compute module_statics_readonly
31286         and do not update variable flags.
31287         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
31288         * ipa.c: Inlucde flags.h
31289         (cgraph_local_node_p): New.
31290         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
31291         promote functions to local.
31292         (ipa_discover_readonly_nonaddressable_vars): New function.
31293         (function_and_variable_visibility): Use cgraph_local_node_p.
31294         * varpool.c (varpool_finalize_decl): Set force_output for
31295         DECL_PRESERVE_P vars.
31296
31297 2010-05-14  Jan Hubicka  <jh@suse.cz>
31298
31299         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
31300
31301 2010-05-14  Richard Guenther  <rguenther@suse.de>
31302
31303         PR tree-optimization/44119
31304         * tree-ssa-pre.c (eliminate): Properly mark replacement of
31305         a PHI node necessary.
31306
31307 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
31308
31309         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
31310
31311 2010-05-14  Jason Merrill  <jason@redhat.com>
31312
31313         PR c++/44127
31314         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
31315         (gimple_call_set_nothrow): New.
31316         * gimple.c (gimple_build_call_from_tree): Call it.
31317         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
31318
31319         PR c++/44127
31320         * gimplify.c (gimplify_seq_add_stmt): No longer static.
31321         * gimple.h: Declare it.
31322         * gimple.c (gimple_build_eh_filter): No ops.
31323
31324 2010-05-14  Jan Hubicka  <jh@suse.cz>
31325
31326         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
31327         nodes already in queue.
31328         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
31329         re-enqueueing node.
31330
31331 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
31332
31333         PR debug/44136
31334         * cfgexpand.c (expand_debug_expr): If non-memory op0
31335         has BLKmode, return NULL.
31336
31337 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
31338
31339         * config.gcc: Add support for --with-cpu option for bdver1.
31340         * config/i386/i386.h (TARGET_BDVER1): New macro.
31341         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
31342         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31343         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
31344         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
31345         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
31346         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
31347         (processor_type): Add PROCESSOR_BDVER1.
31348         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
31349         processor_type in config/i386/i386.h.
31350         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
31351         movaps <reg, reg> instead of movapd <reg, reg> when replacing
31352         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
31353         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
31354         to emit packed xor instead of packed double/packed integer
31355         xor for SSE and AVX when moving a zero value.
31356         * config/i386/sse.md: Add check for
31357         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
31358         movapd/movdqa for SSE and AVX.
31359         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
31360         single logical operations i.e and, or and xor instead of packed double
31361         logical operations for SSE and AVX.
31362         * config/i386/i386-c.c (ix86_target_macros_internal):
31363         Add PROCESSOR_BDVER1.
31364         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
31365         (has_fma4, has_xop): New.
31366         * config/i386/i386.c (bdver1_cost): New variable.
31367         (m_BDVER1): New macro.
31368         (m_AMD_MULTIPLE): Add m_BDVER1.
31369         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
31370         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
31371         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
31372         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
31373         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
31374         x86_tune_sse_partial_reg_dependency,
31375         x86_tune_sse_unaligned_load_optimal,
31376         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
31377         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
31378         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
31379         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
31380         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
31381         Enable/disable for bdver1.
31382         (processor_target_table): Add bdver1_cost.
31383         (cpu_names): Add bdver1.
31384         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
31385          processor_alias_table.
31386         (ix86_expand_vector_move_misalign): Change.
31387         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
31388         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
31389         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
31390         of movupd/movdqu for SSE and AVX.
31391         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
31392         (ix86_tune_adjust_cost): Add code for bdver1.
31393         (standard_sse_constant_opcode): Add check for
31394         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
31395         of packed double xor for SSE and AVX.
31396
31397 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
31398
31399         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
31400         result to unsigned.
31401
31402 2010-05-14  Tristan Gingold  <gingold@adacore.com>
31403
31404         * toplev.c (default_debug_hooks): Remove this variable.
31405         (process_options): Remove assignments to default_debug_hooks.
31406
31407 2010-05-14  Martin Jambor  <mjambor@suse.cz>
31408
31409         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
31410         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
31411         * langhooks.h (struct lang_hooks_for_decls): Removed field
31412         fold_obj_type_ref.
31413         * tree.c (free_lang_data): Remove assignment to
31414         lang_hooks.fold_obj_type_ref.
31415         * tree.def (OBJ_TYPE_REF): Update comment.
31416
31417 2010-05-14  Richard Guenther  <rguenther@suse.de>
31418
31419         PR tree-optimization/44124
31420         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
31421
31422 2010-05-14  Alan Modra  <amodra@gmail.com>
31423
31424         PR target/44075
31425         * config/rs6000/rs6000.c (struct machine_function): Reorder
31426         fields for better packing.  Add lr_save_state.
31427         (rs6000_ra_ever_killed): Return lr_save_state if set.
31428         (rs6000_emit_eh_reg_restore): Set lr_save_state.
31429
31430 2010-05-13  Jan Hubicka  <jh@suse.cz>
31431
31432         * varpool.c (decide_is_variable_needed): Drop code checking
31433         TREE_SYMBOL_REFERENCED.
31434
31435 2010-05-13  Jan Hubicka  <jh@suse.cz>
31436
31437         * final.c (output_addr_const): Do not call mark_decl_referenced.
31438         * cgraphunit.c (process_function_and_variable_attributes): Use
31439         mark_needed_node dirrectly.
31440         (assemble_thunk): Do not call mark_decl_referenced.
31441
31442 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
31443
31444         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
31445
31446 2010-05-13  Jeff Law  <law@redhat.com>
31447
31448         * ira-conflicts.c (print_allocno_conflicts): New function broken out
31449         from...
31450         (print_conflicts): Call print_allocno_conflicts.
31451
31452 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31453
31454         PR debug/44104
31455         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
31456         if it is NULL.
31457
31458 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
31459
31460         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
31461         t-mingw-w64 or t-mingw-w32 for multilib configuration.
31462         * config/i386/t-mingw-w32: New.
31463         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
31464
31465 2010-05-13  Martin Jambor  <mjambor@suse.cz>
31466
31467         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
31468         gimple-fold.c).
31469         * gimple-fold.c (get_base_binfo_for_type): New function.
31470         (gimple_get_relevant_ref_binfo): Likewise.
31471         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31472         (gimple_fold_obj_type_ref): Likewise.
31473         (fold_gimple_call): Simplify condition for folding virtual calls
31474         and call gimple_fold_obj_type_ref.
31475         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
31476         (gimple_fold_obj_type_ref_known_binfo): Likewise.
31477
31478 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
31479
31480         * config/rs6000/rs6000-protos.h
31481         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
31482         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
31483         (rs6000_debug_mode_dependent_address)
31484         (rs6000_mode_dependent_address_ptr): Likewise.
31485
31486 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
31487
31488         PR debug/43983
31489         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
31490         by SRA.
31491         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
31492         * tree-sra.c (create_access_replacement): Call unshare_expr before
31493         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
31494         * dwarf2out.c: Include tree-flow.h.
31495         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
31496         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
31497         Handle DW_OP_bit_piece.
31498         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
31499         construct_piece_list, adjust_piece_list): New functions.
31500         (add_var_loc_to_decl): Handle SRA optimized variables.
31501         Adjust for var_loc_note to loc field renaming.
31502         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
31503         in VAR_LOCATION note.
31504         (new_loc_descr_op_bit_piece): New function.
31505         (dw_sra_loc_expr): New function.
31506         (dw_loc_list): Use it.  Don't handle the last range after the
31507         loop, handle it inside of the loop.  Adjust for var_loc_note
31508         to loc field renaming.
31509         (add_location_or_const_value_attribute): Only special case
31510         single entry loc lists if loc is NOTE_P.  Adjust for
31511         var_loc_note to loc field renaming.
31512         (dwarf2out_var_location): Don't set newloc->var_loc_note
31513         and newloc->next here.
31514
31515 2010-05-12  Jan Hubicka  <jh@suse.cz>
31516
31517         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
31518         flag.
31519         * cgraph.h (cgraph_only_called_directly_p,
31520         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
31521         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
31522         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
31523         (assemble
31524         * ipa.c (cgraph_remove_unreachable_nodes): Use
31525         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
31526         flags.
31527         * tree-inline.c (copy_bb): Check address_taken flag.
31528         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
31529         externally_visible flag.
31530
31531 2010-05-12  Jason Merrill  <jason@redhat.com>
31532
31533         PR bootstrap/44048
31534         PR target/44099
31535         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
31536         * sdbout.c (plain_type_1): Likewise.
31537         * dwarf2out.c (is_base_type): Likewise.
31538         (gen_type_die_with_usage): Likewise.  Generate
31539         DW_TAG_unspecified_type for any LANG_TYPE.
31540
31541 2010-05-12  Jan Hubicka  <jh@suse.cz>
31542
31543         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
31544         indrect edges too.
31545         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
31546         (cgraph_clone_edge): Update.
31547         (cgraph_node_remove_callees): Remove indirect calls too.
31548         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
31549         (cgraph_create_indirect_edge): Update prototype.
31550         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
31551         is_proper_for_analysis.
31552         (add_new_function, visited_nodes, function_insertion_hook_holder,
31553         get_local_reference_vars_info, mark_address_taken, mark_address,
31554         mark_load, mark_store, check_asm_memory_clobber, check_call,
31555         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
31556         (ipa_init): Do not initialize visited_nodes;
31557         function_insertion_hook_holder.
31558         (analyze_variable): Rewrite.
31559         (analyze_function): Rewrite.
31560         (copy_local_bitmap): Remove.
31561         (duplicate_node_dat): Do not duplicate local info.
31562         (generate_summary): Simplify to only walk cgraph.
31563         (write_node_summary_p, ipa_reference_write_summary,
31564         ipa_reference_read_summary): Remove.
31565         (propagate): Do not remove function insertion;
31566         generate summary.
31567         (pass_ipa_reference): NULLify summary handling fields.
31568         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
31569         (input_edge): Input ecf_flags.
31570         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
31571         (update_indirect_edges_after_inlining): Ignore edges with unknown
31572         param.
31573
31574 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
31575
31576         * implicit-zee.c: New file.
31577         * tree-pass.h (pass_implicit_zee): Declare.
31578         * passes.c (init_optimization_passes): Add zee pass.
31579         * common.opt (fzee): New flag.
31580         * timevar.def (TV_ZEE): Define.
31581         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
31582         and beyond.
31583         * Makefile.in (implicit-zee.o): Add new build file.
31584
31585 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31586             Nathan Froyd  <froydnj@codesourcery.com>
31587
31588         * c-common.c (sync_resolve_params): Remove write-only variable.
31589
31590 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
31591
31592         * target.h (struct gcc_target): Add mode_dependent_address_p field.
31593         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31594         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
31595         * targhooks.c (default_mode_dependent_address_p): New function.
31596         * targhooks.h (default_mode_dependent_address_p): Declare function.
31597         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
31598         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
31599         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
31600         target hook. Change return type to bool.
31601         * recog.h (mode_dependent_address_p): Change return type to bool.
31602
31603 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31604             Nathan Froyd  <froydnj@codesourcery.com>
31605
31606         * tree-mudflap.c (build_function_type_0, build_function_type_1,
31607         build_function_type_2, build_function_type_3): Remove.
31608         (mudflap_init): Use build_function_type_list.
31609
31610 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
31611             Nathan Froyd  <froydnj@codesourcery.com>
31612
31613         * coverage.c (build_fn_info_value): Call build_constructor instead of
31614         build_constructor_from_list.
31615         (build_ctr_info_value): Likewise.
31616         (build_gcov_info): Likewise.
31617
31618 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
31619
31620         * tree.c (build_constructor): Compute TREE_CONSTANT for the
31621         resultant constructor.
31622         (build_constructor_single): Don't set TREE_CONSTANT.
31623         (build_constructor_from_list): Don't compute TREE_CONSTANT.
31624
31625 2010-05-12  Jan Hubicka  <jh@suse.cz>
31626
31627         * cgraph.h (struct varpool_node): Add aux.
31628         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
31629         * varpool.c (varpool_remove_node): Do not remove initializer.
31630         (varpool_reset_queue): Export.
31631         (varpool_finalize_decl): Volatile vars are forced to be output.
31632         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
31633         replaced decl.
31634         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
31635         process_references, varpool_can_remove_if_no_refs): New functions.
31636         (cgraph_remove_unreachable_nodes): Handle variables too.
31637
31638 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
31639
31640         PR target/44088
31641         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
31642
31643 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
31644
31645         PR middle-end/44085
31646         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
31647         change value of ORT_TASK.
31648         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
31649         (omp_notice_threadprivate_variable): New function.
31650         (omp_notice_variable): Call it for threadprivate variables.
31651         If enclosing ctx is a task, print enclosing task rather than
31652         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
31653         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
31654         if task has untied clause.
31655
31656         PR debug/42278
31657         * dwarf2out.c (base_type_die): Don't add name attribute here.
31658         (modified_type_die): Instead of sizetype use
31659         its underlying original type.  If a DW_TAG_base_type doesn't
31660         have name added, add __unknown__.
31661         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
31662         always call force_type_die instead.
31663
31664 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
31665
31666         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
31667         for __stack_chk_guard.
31668
31669 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31670
31671         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
31672         don't call start_source_file debug hook here...
31673         (finish_options): ... but here, after outputting predefined and
31674         command line defines and undefs.
31675
31676         PR middle-end/44071
31677         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
31678         no fallthru edge.
31679         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
31680         optimizing away empty bb with no successors, move over its
31681         footer chain to fallthru predecessor.
31682         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
31683         (rtl_split_edge): For asm goto call patch_jump_insn even if
31684         splitting fallthru edge.
31685
31686         PR c++/44059
31687         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
31688         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
31689         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
31690         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
31691         on DW.ref.* decls.
31692
31693         PR c++/44062
31694         * c-parser.c (c_parser_expression): Mark LHS of a comma
31695         expression as read if it is a decl, handled component or
31696         COMPOUND_EXPR with that on the RHS.
31697         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
31698         if it is a decl or handled component.
31699
31700 2010-05-11  Jan Hubicka  <jh@suse.cz>
31701
31702         * lto-symtab.c (lto_symtab_free): New function.
31703         * lto-streamer.h (lto_symtab_free): Declare.
31704
31705 2010-05-11  Jan Hubicka  <jh@suse.cz>
31706
31707         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
31708         that if function is needed it is reachable.
31709         (lto_output_node): See if it the function is reachable or referenced.
31710         (output_cgraph): Update call of lto_output_node.
31711         * lto-streamer.h (reachable_from_other_partition_p): Declare.
31712
31713 2010-05-11  Jan Hubicka  <jh@suse.cz>
31714
31715         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
31716         Mark as used.
31717
31718 2010-05-11  Jan Hubicka  <jh@suse.cz>
31719
31720         PR tree-optimize/44063
31721         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
31722         queue.
31723         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
31724         limits.
31725         (estimate_function_body_sizes): Compute sizes even when disregarding.
31726
31727 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
31728
31729         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
31730
31731 2010-05-11  Jan Hubicka  <jh@suse.cz>
31732
31733         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
31734         into every boundary.
31735
31736 2010-05-11  Jan Hubicka  <jh@suse.cz>
31737
31738         * matrix-reorg.c (matrix_reorg): Rebuild edges.
31739
31740 2010-05-11  Jan Hubicka  <jh@suse.cz>
31741
31742         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
31743         lto_streamer_cache_delete): Put nodes into heap.
31744         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
31745         heap.
31746
31747 2010-05-11  Jan Hubicka  <jh@suse.cz>
31748
31749         * cgraphbuild.c (cgraph_rebuild_references): New.
31750         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
31751         out extern inlines.
31752         * cgraph.h (cgraph_rebuild_references): Declare.
31753         * tree-inline.c (tree_function_versioning): Use it.
31754         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
31755
31756 2010-05-11  Jan Hubicka  <jh@suse.cz>
31757
31758         * cgraph.c: Include ipa-utils.h
31759         (cgraph_create_virtual_clone): Update references.
31760         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
31761
31762 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31763
31764         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
31765         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
31766         cache size.
31767
31768 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
31769
31770         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
31771
31772 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
31773
31774         * gcc.c (execute): For -### don't quote arguments that
31775         contain just alphanumerics and _/-. characters.
31776         * doc/invoke.texi: Document that change for -###.
31777
31778         PR debug/44023
31779         * df-problems.c (struct dead_debug): Add to_rescan field.
31780         (dead_debug_init): Clear to_rescan field.
31781         (dead_debug_finish): Rescan all debug insns in to_rescan
31782         bitmap and free the bitmap.
31783         (dead_debug_insert_before): Instead of rescanning debug insns
31784         immediately queue their rescanning until dead_debug_finish.
31785         (df_note_bb_compute): After dead_debug_add do continue instead
31786         of break.
31787
31788 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
31789
31790         PR debug/44028
31791         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
31792         clear also INSN_REG_USE_LIST.
31793
31794 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31795
31796         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
31797
31798 2010-05-10  Jan Hubicka  <jh@suse.cz>
31799
31800         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
31801         commited change.
31802
31803 2010-05-10  Jan Hubicka  <jh@suse.cz>
31804
31805         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
31806         Allocate encoders.
31807         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
31808         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
31809         (lto_streamer_cache_create): Init alloc pool.
31810         (lto_streamer_cache_delete): Free alloc pool.
31811         * lto-streamer.h: Include alloc pool.
31812         (lto_streamer_cache_d): Use alloc pool.
31813         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
31814
31815 2010-05-10  Jan Hubicka  <jh@suse.cz>
31816
31817         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
31818         * cgraphbuild.c: Include except.h
31819         (record_type_list, record_eh_tables): New function.
31820         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
31821
31822 2010-05-10  Jan Hubicka  <jh@suse.cz>
31823
31824         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
31825         __frame_dummy_init_array_entry, force_to_data): Attribute as used
31826         rather than unused.
31827
31828 2010-05-10  Michael Matz  <matz@suse.de>
31829
31830         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
31831         (can_reassociate_p): Use FLOAT_TYPE_P.
31832         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
31833         (vect_force_simple_reduction): ... this.
31834         * tree-parloops.c (gather_scalar_reductions): Use
31835         vect_force_simple_reduction.
31836         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
31837         vect_is_simple_reduction, add modify argument, if true rewrite
31838         "a-b" into "a+(-b)".
31839         (vect_is_simple_reduction, vect_force_simple_reduction): New
31840         functions.
31841         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
31842
31843 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
31844             Vladimir Makarov  <vmakarov@redhat.com>
31845
31846         PR rtl-optimization/44012
31847         * ira-build.c (remove_unnecessary_allocnos): Nullify
31848         regno_allocno_map of the removed allocno.
31849
31850 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31851
31852         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
31853         to /dev/null.
31854         * configure: Regenerate.
31855
31856 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31857
31858         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
31859         unused.
31860         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
31861         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
31862         support in Sun ld.
31863         * configure: Regenerate.
31864
31865 2010-05-10  Richard Guenther  <rguenther@suse.de>
31866
31867         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
31868         marked if the entry identifier is marked.
31869
31870 2010-05-10  Richard Guenther  <rguenther@suse.de>
31871
31872         * c-common.c (struct c_common_attributes): Add fnspec attribute.
31873         (handle_fnspec_attribute): New function.
31874         * gimple.h (gimple_call_return_flags): Declare.
31875         (gimple_call_arg_flags): Likewise.
31876         * gimple.c (gimple_call_arg_flags): New function.
31877         (gimple_call_return_flags): Likewise.
31878         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
31879         New argument flags.
31880         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
31881         return value flags.
31882         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
31883         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
31884         main work to ...
31885         (make_heapvar_for): ... this new function.
31886         (handle_rhs_call): Handle fnspec attribute argument specifiers.
31887         (handle_lhs_call): Likewise.
31888         (find_func_aliases): Adjust.
31889
31890 2010-05-10  Richard Guenther  <rguenther@suse.de>
31891
31892         PR tree-optimization/44050
31893         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
31894
31895 2010-05-10  Wei Guozhi  <carrot@google.com>
31896
31897         PR target/42879
31898         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
31899
31900 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31901
31902         PR c/10676
31903         * c-typeck.c (lookup_field): Take a type directly.  Update
31904         recursive calls.
31905         (build_component_ref): Update call to lookup_field.
31906         (set_init_label): Use lookup_field to find initialized field.
31907         Handle returned list of fields like a sequence of designators.
31908
31909 2010-05-09  Richard Guenther  <rguenther@suse.de>
31910
31911         PR middle-end/44024
31912         * fold-const.c (tree_single_nonzero_warnv_p): Properly
31913         handle &FUNCTION_DECL.
31914
31915 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
31916
31917         PR c/4784
31918         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
31919         structures and unions recursively.
31920         (detect_field_duplicates): Move duplicate detection with a hash to
31921         detect_field_duplicates_hash.  Always use a hash if anonymous
31922         structures or unions are present.
31923         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
31924         give errors.
31925
31926 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
31927
31928         PR target/44046
31929         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
31930         detect Atom, Core 2 and Core i7.
31931
31932 2010-05-09  Richard Guenther  <rguenther@suse.de>
31933
31934         * gcc.c (store_arg): Handle temporary file deletion for
31935         joined arguments.
31936
31937 2010-05-09  Richard Guenther  <rguenther@suse.de>
31938
31939         PR middle-end/44043
31940         * ipa-inline.c (estimate_function_body_sizes): Return after
31941         disregarding inline limits.
31942
31943 2010-05-09  Richard Guenther  <rguenther@suse.de>
31944
31945         * gcc.c (store_arg): Revert last change.
31946
31947 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
31948
31949         PR middle-end/28685
31950         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
31951         (optimize_ops_list): Call it.
31952
31953 2010-05-08  Richard Guenther  <rguenther@suse.de>
31954
31955         PR tree-optimization/44030
31956         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
31957         NECESSARY flag if we propagate from a inserted expression.
31958
31959 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
31960
31961         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
31962         domain types as equal if they are both PLACEHOLDER_EXPRs.
31963
31964 2010-05-08  Richard Guenther  <rguenther@suse.de>
31965
31966         * lto-wrapper.c (run_gcc): Remove linker output from
31967         command line for LTRANS invocation.
31968
31969 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
31970
31971         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
31972         lto-macho as lto_binary_reader.
31973         * target.h (struct gcc_target): New hooks lto_start and lto_end.
31974         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
31975         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
31976         in lto_start and lto_end calls.
31977         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
31978         magic numbers.
31979         (scan_prog_file): Update is_elf_or_coff call.
31980         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
31981
31982         * collect2.c (main): Fix enum comparison.
31983
31984         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
31985         Add prototypes.
31986         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
31987         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
31988         and TARGET_ASM_LTO_END.
31989         * darwin.c: Include obstack.h and lto-streamer.h.
31990         (lto_section_names_offset, lto_section_names_obstack,
31991         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
31992         global variables.
31993         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
31994         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
31995         to a temporary file.
31996         (darwin_asm_lto_end): New function.  Restore asm_out_file.
31997         (darwin_asm_named_section): For LTO sections, replace the name with
31998         the offset of the section name in a string table, and build this
31999         table.
32000         (darwin_file_start): Initialize global vars for LTO support.
32001         (darwin_file_end): If output to asm_out_file was redirected, append it
32002         to the proper asm_out_file here.  Add the section names section.
32003
32004 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
32005
32006         * c-pragma.c (pending_weak_d, pending_weak): New.
32007         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
32008         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
32009         handle_pragma_weak): Update the uses of pending_weaks.
32010
32011 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
32012
32013         PR documentation/44016
32014         * doc/standards.texi (Standards): Link to unversioned
32015         cxx0x_status.html page.
32016
32017 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
32018
32019         PR target/43708
32020         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
32021         in addition to TREE_USED, to avoid "set but unused" warnings.
32022
32023 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
32024
32025         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
32026         (is_loop_prefetching_profitable): Do not insert prefetches
32027         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
32028         times the prefetch ahead distance.
32029
32030 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
32031
32032         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
32033         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
32034         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
32035         the unroll_factor.
32036
32037 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
32038
32039         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
32040         a diagnostic info when the insn-to-mem ratio is too small.
32041
32042 2010-05-07  Richard Guenther  <rguenther@suse.de>
32043
32044         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
32045         the linker plugin.
32046         (store_arg): Queue temp_filename for deletion instead of
32047         the whole argument.
32048
32049 2010-05-07  Richard Guenther  <rguenther@suse.de>
32050
32051         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
32052         (run_gcc): Handle LTRANS phase invocation.
32053         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
32054
32055 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
32056
32057         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
32058         this is also meaningful on PARM_DECLs and RESULT_DECLs.
32059
32060 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32061
32062         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
32063
32064 2010-05-07  Richard Guenther  <rguenther@suse.de>
32065
32066         PR tree-optimization/44020
32067         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
32068         code when PRE is not yet initialized.
32069
32070 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32071
32072         * config/mips/dbxmdebug.h: Remove.
32073         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
32074
32075 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
32076
32077         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
32078         with null pointer and also warn about ordered comparison of zero with
32079         pointer if -Wextra.
32080
32081 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
32082
32083         * graphite-blocking.c
32084         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
32085         * graphite-clast-to-gimple.c
32086         (clast_to_gcc_expression): Same.
32087         (precision_for_value): Same.
32088         (precision_for_interval): Same.
32089         (gcc_type_for_interval): Same.
32090         (graphite_create_new_guard): Same.
32091         (compute_bounds_for_level): Same.
32092         (graphite_create_new_loop_guard): Same.
32093         * graphite-interchange.c
32094         (build_linearized_memory_access): Same.
32095         (pdr_stride_in_loop): Same.
32096         (memory_strides_in_loop_1): Same.
32097         (memory_strides_in_loop): Same.
32098         (extend_scattering): Same.
32099         (psct_scattering_dim_for_loop_depth): Same.
32100         (pbb_number_of_iterations): Same.
32101         * graphite-poly.h
32102         (debug_iteration_domains): Same.
32103         * graphite-ppl.c
32104         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
32105         (ppl_set_inhomogeneous_gmp): Same.
32106         (ppl_strip_loop): Same.
32107         (ppl_lexico_compare_linear_expressions): Same.
32108         (ppl_read_polyhedron_matrix): Same.
32109         (ppl_max_for_le_pointset): Same.
32110         * graphite-ppl.h
32111         (ppl_read_polyhedron_matrix): Same.
32112         (tree_int_to_gmp): Same.
32113         (gmp_cst_to_tree): Same.
32114         (ppl_set_inhomogeneous): Same.
32115         (ppl_set_inhomogeneous_tree): Same.
32116         (ppl_set_coef): Same.
32117         (ppl_set_coef_tree): Same.
32118         * graphite-sese-to-poly.c
32119         (build_pbb_scattering_polyhedrons): Same.
32120         (build_scop_scattering): Same.
32121         (scan_tree_for_params_right_scev): Same.
32122         (scan_tree_for_params): Same.
32123         (find_params_in_bb): Same.
32124         (find_scop_parameters): Same.
32125         (add_upper_bounds_from_estimated_nit): Same.
32126         (build_loop_iteration_domains): Same.
32127         (add_condition_to_domain): Same.
32128         (pdr_add_memory_accesses): Same.
32129
32130 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
32131
32132         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
32133         CLooG's value_* macros to their respective mpz_* counterparts.
32134         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
32135         (graphite_create_new_loop_guard): Same.
32136         * graphite-interchange.c (build_linearized_memory_access): Same.
32137         (pdr_stride_in_loop): Same.
32138         (memory_strides_in_loop_1): Same.
32139         (1st_interchange_profitable_p): Same.
32140         * graphite-poly.c (extend_scattering): Same.
32141         (psct_scattering_dim_for_loop_depth): Same.
32142         (pbb_number_of_iterations): Same.
32143         (pbb_number_of_iterations_at_time): Same.
32144         * graphite-poly.h (new_1st_loop): Same.
32145         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
32146         (oppose_constraint): Same.
32147         (insert_constraint_into_matrix): Same.
32148         (ppl_set_inhomogeneous_gmp): Same.
32149         (ppl_set_coef_gmp): Same.
32150         (ppl_strip_loop): Same.
32151         (ppl_lexico_compare_linear_expressions): Same.
32152         (ppl_max_for_le_pointset): Same.
32153         (ppl_min_for_le_pointset): Same.
32154         (ppl_build_realtion): Same.
32155         * graphite-ppl.h (gmp_cst_to_tree): Same.
32156         (ppl_set_inhomogeneous): Same.
32157         (ppl_set_inhomogeneous_tree): Same.
32158         (ppl_set_coef): Same.
32159         (ppl_set_coef_tree): Same.
32160         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
32161         (build_scop_scattering): Same.
32162         (add_value_to_dim): Same.
32163         (scan_tree_for_params_right_scev): Same.
32164         (scan_tree_for_params_int): Same.
32165         (scan_tree_for_params): Same.
32166         (find_params_in_bb): Same.
32167         (find_scop_parameters): Same.
32168         (add_upper_bounds_from_estimated_nit): Same.
32169         (build_loop_iteration_domains): Same.
32170         (create_linear_expr_from_tree): Same.
32171         (add_condition_to_domain): Same.
32172         (pdr_add_memory_accesses): Same.
32173
32174 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
32175             Jason Merrill  <jason@redhat.com>
32176
32177         * c-common.c (c_common_reswords): Add nullptr.
32178         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
32179         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
32180         (gen_type_die_with_usage): Likewise.
32181         * dbxout.c (dbxout_type): Likewise.
32182         * sdbout.c (plain_type_1): Likewise.
32183
32184 2010-05-06  Jason Merrill  <jason@redhat.com>
32185
32186         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
32187         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
32188         ret appropriately.
32189         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
32190
32191         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
32192         stripping WITH_SIZE_EXPR.
32193         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
32194         change.
32195
32196 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32197
32198         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
32199         list of obsolete configurations.
32200         Disabled check for obsolete configurations.
32201         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
32202         Removed support for previous versions.
32203         * config/mips/iris.h: Removed.
32204         * config/mips/iris5.h: Removed.
32205         * config/mips/iris6.h: Merged old iris.h contents.
32206         (TARGET_IRIX): Removed.
32207         (DRIVER_SELF_SPECS): Removed mabi=32.
32208         (IDENT_ASM_OP): Removed undef.
32209         (STARTFILE_SPEC): Removed mabi=32.
32210         (ENDFILE_SPEC): Likewise.
32211         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
32212         (MACHINE_TYPE): Update for IRIX 6.5.
32213         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
32214         TARGET_IRIX by TARGET_IRIX6.
32215         (mips_file_start): Likewise.
32216         (mips_output_external): Remove IRIX 5/6 O32 support.
32217         (mips_output_function_prologue): Likewise.
32218         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
32219         TARGET_IRIX6.
32220         (TARGET_CPU_CPP_BUILTINS): Likewise.
32221         (TARGET_IRIX): Removed.
32222         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
32223         (MULTILIB_DIRNAMES): Removed 32.
32224         (MULTILIB_OSDIRNAMES): Removed ../lib.
32225         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
32226         (Specific, mips-sgi-irix5): Document removal.
32227         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
32228         Remove references to older IRIX 6 releases and the O32 ABI.
32229
32230 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
32231
32232         PR bootstrap/43994
32233         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
32234         instead of DF_REF_REAL_REG.
32235
32236 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
32237
32238         PR target/43888
32239         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
32240         handling to still return true for x64 targets.
32241
32242 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32243
32244         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
32245
32246 2010-05-06  Jan Hubicka  <jh@suse.cz>
32247
32248         PR tree-optimization/43791
32249         * ipa-inline.c (update_caller_keys): Remove bogus
32250         disregard_inline_limits check.
32251
32252 2010-05-06  Michael Matz  <matz@suse.de>
32253
32254         PR tree-optimization/43984
32255         * tree-ssa-pre.c (inserted_phi_names): Remove.
32256         (inserted_exprs): Change to bitmap.
32257         (create_expression_by_pieces): Set bits, don't append to vector.
32258         (insert_into_preds_of_block): Don't handle inserted_phi_names.
32259         (eliminate): Don't look at inserted_phi_names, remove deleted
32260         insns from inserted_exprs.
32261         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
32262         (init_pre, fini_pre): Allocate and free bitmaps.
32263         (execute_pre): Insert insns on edges before elimination.
32264
32265 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
32266
32267         * tree.c (initializer_zerop): Handle STRING_CST.
32268
32269 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
32270
32271         PR 40989
32272         * doc/invoke.texi (Wimplicit): Document as C only.
32273         * opts.c (common_handle_option): Add argument kind.
32274         (handle_option): Rename as read_cmdline_option. Factor out code to...
32275         (handle_option): ... here. New.
32276         (handle_options): Rename as read_cmdline_options.
32277         (decode_options): Update call.
32278         (set_option): Use option index instead of option pointer. Classify
32279         diagnostics correctly.
32280         (enable_warning_as_error): Call handle_option.
32281         * opts.h (set_option): Update declaration.
32282         (handle_option): Declare.
32283         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
32284         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
32285         * c-opts.c (set_Wimplicit): Delete.
32286         (c_family_lang_mask): New static constant.
32287         (c_common_handle_option): Add argument kind. Use handle_option
32288         instead of set_Wimplicit.
32289         (c_common_post_options): warn_implicit and warn_implicit_int
32290         are disabled by default.
32291         * c-common.c (warn_implicit): Do not define here.
32292         * c-common.h (warn_implicit): Do not declare here.
32293         (c_common_handle_option): Update declaration.
32294         * lto-opts.c (lto_reissue_options): Update call to set_option.
32295
32296 2010-05-06  Richard Guenther  <rguenther@suse.de>
32297
32298         PR tree-optimization/43571
32299         * domwalk.c (walk_dominator_tree): Walk the dominator
32300         sons in more optimal order.
32301
32302 2010-05-06  Richard Guenther  <rguenther@suse.de>
32303
32304         PR tree-optimization/43934
32305         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
32306         (stmt_cost): Likewise.
32307         (extract_true_false_args_from_phi): New helper.
32308         (determine_max_movement): For PHI nodes verify we can hoist them
32309         and compute their cost.
32310         (determine_invariantness_stmt): Handle PHI nodes.
32311         (move_computations_stmt): Likewise.  Hoist PHI nodes in
32312         if-converted form using COND_EXPRs.
32313         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
32314         (tree_ssa_lim): Likewise.
32315         * tree-flow.h (tree_ssa_lim): Adjust prototype.
32316         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
32317
32318 2010-05-06  Richard Guenther  <rguenther@suse.de>
32319
32320         PR tree-optimization/43987
32321         * tree-ssa-structalias.c (could_have_pointers): For possibly
32322         address-taken variables force pointers to be recorded.
32323         (create_variable_info_for_1): Likewise.
32324         (push_fields_onto_fieldstack): Pass in wheter all fields
32325         must have pointers.
32326         (find_func_aliases): Query types instead of vars whether
32327         they contain pointers where appropriate.
32328
32329 2010-05-06  Jan Hubicka  <jh@suse.cz>
32330
32331         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
32332         (record_reference, mark_address, mark_load, mark_store): Record
32333         references.
32334         (record_references_in_initializer): Update call of record_references.
32335         (rebuild_cgraph_edges): Remove all references before rebuiding.
32336         * cgraph.c (cgraph_create_node): Clear ref list.
32337         (cgraph_remove_node): Remove references.
32338         (dump_cgraph_node): Dump references.
32339         (cgraph_clone_node): Clone references.
32340         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
32341         (struct cgraph_node, varpool_node): Add ref_lst.
32342         * ipa-ref.c: New file.
32343         * ipa-ref.h: New file.
32344         * ipa-ref-inline.h: New file.
32345         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
32346         (referenced_from_other_partition_p): New function.
32347         (lto_output_varpool_node): Take set arugment; call
32348         referenced_from_other_partition.
32349         (lto_output_ref): New.
32350         (add_references): New.
32351         (output_refs): New.
32352         (output_cgraph): Compute boundary based on references; output refs.
32353         (output_varpool): Accept cgraph_node_set argument.
32354         (input_ref): New.
32355         (input_refs): New.
32356         (input_cgraph): Call input_refs.
32357         * lto-section-in.c (lto_section_name): Add refs.
32358         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
32359         (ipa-ref.o): New file.
32360         * varpool.c (varpool_node): Clear ipa ref list.
32361         (varpool_remove_node): Remove references.
32362         (dump_varpool_node): Dump references.
32363         (varpool_assemble_decl): Only compile finalized ones.
32364         (varpool_extra_name_alias): Initialize ref list.
32365         * lto-streamer.c (lto-get_section_name): Add .refs section.
32366         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
32367         (referenced_from_other_partition_p): Declared.
32368
32369 2010-05-06  Ira Rosen  <irar@il.ibm.com>
32370
32371         PR tree-optimization/43901
32372         * tree-vect-stmts.c (vectorizable_call): Assert that vector
32373         type is not NULL if it's transformation phase, and return
32374         FALSE if it's analysis.
32375         (vectorizable_conversion, vectorizable_operation,
32376         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
32377
32378 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
32379
32380         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32381         Delete.
32382         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
32383         New define.
32384         * config/mips/mips-protos.h
32385         (mips_small_register_classes_for_mode_p): Delete prototype.
32386
32387 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
32388
32389         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
32390         * config/arm/arm.c (multiple_operation_profitable_p,
32391         compute_offset_order): New static functions.
32392         (load_multiple_sequence, store_multiple_sequence): Use them.
32393         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
32394         memory offsets, not register numbers.
32395         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
32396
32397 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
32398
32399         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
32400         (get_pending_sizes, put_pending_size, put_pending_sizes):
32401         Update the uses of pending_sizes.
32402         * c-decl.c (store_parm_decls): Likewise.
32403         * c-tree.h (struct c_arg_info): Likewise.
32404         * tree.h: Update the prototype for get_pending_sizes and
32405         put_pending_sizes.
32406
32407 2010-05-05  Jason Merrill  <jason@redhat.com>
32408
32409         PR debug/43370
32410         * c-common.c (handle_aligned_attribute): Respect
32411         ATTR_FLAG_TYPE_IN_PLACE.
32412
32413         PR testsuite/43758
32414         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
32415         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32416         (TARGET_INITIALIZER): Use it.
32417         * c-common.c (attribute_takes_identifier_p): Call it.
32418         * c-common.h: Update prototype.
32419         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
32420         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
32421
32422 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32423
32424         PR debug/43950
32425         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
32426         DW_ID_down_case for Fortran compilation units.
32427
32428 2010-05-05  Jan Hubicka  <jh@suse.cz>
32429
32430         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
32431         handle aliases.
32432
32433 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
32434
32435         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
32436         a variable-sized RESULT_DECL.
32437
32438 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
32439
32440         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
32441
32442 2010-05-05  Jason Merrill  <jason@redhat.com>
32443
32444         PR c++/43787
32445         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
32446         returns GS_OK.
32447         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
32448
32449 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
32450             Jakub Jelinek  <jakub@redhat.com>
32451
32452         PR debug/43478
32453         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
32454         (dead_debug_init, dead_debug_finish): New functions.
32455         (dead_debug_add, dead_debug_insert_before): Likewise.
32456         (df_note_bb_compute): Initialize a dead_debug object, add dead
32457         debug uses to it, insert debug bind insns before death insns,
32458         reset debug insns that refer to pending uses at the end.
32459         * rtl.h (make_debug_expr_from_rtl): New prototype.
32460         * varasm.c (make_debug_expr_from_rtl): New function.
32461
32462 2010-05-05  Jan Hubicka  <jh@suse.cz>
32463
32464         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
32465         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
32466         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
32467         lto_varpool_encoder_deref, lto_varpool_encoder_size,
32468         lto_varpool_encoder_encode_initializer_p,
32469         lto_set_varpool_encoder_encode_initializer): New functions.
32470         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
32471         call output_varpool.
32472         (input_varpool_node): Do not always set analyzed.
32473         (input_cgraph_1): Return vector of cgraph nodes.
32474         (input_varpool_1): Return vector of varpools.
32475         (input_cgraph): Free the vectors.
32476         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
32477         output only initializers needed.
32478         (lto_output): Only call output_cgraph.
32479         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
32480         * lto-section-out.c (lto_new_out_decl_state): Initialize
32481         state->varpool_node_encoder.
32482         * lto-streamer.h (lto_varpool_encoder_d): New.
32483         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
32484         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
32485         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
32486         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
32487         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
32488         Declare.
32489         (output_varpool, input_varpool): Remove declarations.
32490
32491 2010-05-05  Jan Hubicka  <jh@suse.cz>
32492
32493         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
32494         with body can prevail.
32495
32496 2010-05-05  Jan Hubicka  <jh@suse.cz>
32497
32498         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
32499         size.
32500
32501 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
32502
32503         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
32504
32505         * gengtype.h (erro_at_line): Constify pos argument.
32506
32507         * gengtype.c: Include hashtab.h.
32508         (enum gc_used): Document GC_MAYBE_POINTED_TO.
32509         (error_at_line): Constify pos argument.
32510         (do_typedef): Initialize p->opt field.
32511         (get_file_gtfilename): Fix comment typo.
32512         (struct walk_type_data): Constify line field.
32513         (get_output_file_for_structure): New function.
32514         (write_local_func_for_structure): Constify orig_s argument.
32515         Use get_output_file_for_structure.
32516         (write_func_for_structure): Use get_output_file_for_structure.
32517         (INDENT): New define.
32518         (dump_pair, dump_type, dump_type_list, dump_typekind)
32519         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
32520         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
32521         functions.
32522         (seen_types): New variable.
32523         (main): New variable do_dump.  Process "-d" command line option.
32524         Call dump_everything if dump requested.
32525
32526 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
32527
32528         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
32529         in a temporary instead of invoking the macro multiple times.
32530         (track_expr_p): Likewise.
32531
32532 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
32533
32534         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
32535         per new semantics.
32536         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
32537         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
32538         conditions for printing notes.
32539         * common.opt (-Wcoverage-mismatch): Allow negative, default to
32540         true, update documentation.
32541         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
32542
32543 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
32544
32545         PR c/43981
32546         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
32547         on dimen.
32548
32549 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32550
32551         PR target/43799
32552         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
32553         (*sse_prologue_save_insn1): Likewise.
32554         (SSE prologue save splitter): Likewise.
32555
32556 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
32557
32558         * tree.c (free_lang_data_in_one_sizepos): New inline function.
32559         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
32560         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
32561         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
32562         all decls.  Call it on DECL_FIELD_OFFSET of fields.
32563         (find_decls_types_r): Follow DECL_VALUE_EXPR.
32564         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
32565
32566 2010-05-04  Martin Jambor  <mjambor@suse.cz>
32567
32568         * tree-sra.c (build_access_from_expr_1): The first parameter type
32569         changed to simple tree.
32570         (build_access_from_expr): Likewise, gsi parameter was eliminated.
32571         (scan_assign_result): Renamed to assignment_mod_result, enum elements
32572         renamed as well.
32573         (build_accesses_from_assign): Removed all parameters except for a
32574         simple gimple statement.  Now returns a simple bool.
32575         (scan_function): All non-analysis parts moved to separate functions
32576         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
32577         parameters and updated both callers.
32578         (sra_modify_expr): Removed parameter data.
32579         (sra_modify_function_body): New function.
32580         (perform_intra_sra): Call sra_modify_function_body to modify the
32581         function body.
32582         (replace_removed_params_ssa_names): Parameter data changed into
32583         adjustments vector.
32584         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
32585         changed the parameter dont_convert to convert with the opposite
32586         meaning.
32587         (sra_ipa_modify_assign): Parameter data changed into adjustments
32588         vector, return value changed to bool.
32589         (ipa_sra_modify_function_body): New function.
32590         (sra_ipa_reset_debug_stmts): Updated a comment.
32591         (modify_function): Use ipa_sra_modify_function_body to modify function
32592         body.
32593
32594 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
32595
32596         PR middle-end/43671
32597         * alias.c (true_dependence): Handle the same VALUE in x and mem.
32598         (canon_true_dependence): Likewise.
32599         (write_dependence_p): Likewise.
32600
32601 2010-05-04  Jan Hubicka  <jh@suse.cz>
32602
32603         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
32604         * cgraphbuild.c: Include ipa-utils.h
32605         (record_reference_ctx): New struct.
32606         (record_reference): Simplify to work on initializers; not statements.
32607         (mark_address, mark_load, mark_store): New.
32608         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32609         walk PHI nodes too.
32610         (record_references_in_initializer): Update use of record_reference.
32611         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
32612         walk PHI nodes too.
32613
32614 2010-05-04  Jan Hubicka  <jh@suse.cz>
32615
32616         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
32617         node will be removed anyway.
32618         (lto_varpool_replace_node): Allow also unanalyzed nodes;
32619         relink aliases of node into prevailing node.
32620         * varpool.c (varpool_remove_node): Remove aliases properly;
32621         when removing node, remove all its aliases too; remove DECL_INITIAL
32622         of removed node; ggc_free the varpool node.
32623
32624 2010-05-04  Richard Guenther  <rguenther@suse.de>
32625
32626         PR tree-optimization/43879
32627         * tree-ssa-structalias.c (alias_get_name): Use
32628         DECL_ASSEMBLER_NAME if available.
32629         (create_function_info_for): Return the varinfo node.
32630         (ipa_pta_execute): Associate same-body aliases and extra names
32631         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
32632
32633 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
32634
32635         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
32636
32637 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
32638
32639         PR bootstrap/43964
32640         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
32641         only if HONOR_REG_ALLOC_ORDER is not defined.
32642
32643 2010-05-04  Richard Guenther  <rguenther@suse.de>
32644
32645         PR tree-optimization/43949
32646         * tree-vrp.c (extract_range_from_binary_expr): Only handle
32647         TRUNC_MOD_EXPR.
32648
32649 2010-04-26  Jason Merrill  <jason@redhat.com>
32650
32651         * c.opt (-fstrict-enums): New.
32652         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
32653
32654 2010-05-03  David Ung  <davidu@mips.com>
32655             James E. Wilson  <wilson@codesourcery.com>
32656
32657         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
32658         emit the trap instruction before the divide for TUNE_74K.
32659
32660 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
32661
32662         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
32663         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
32664         based on the above, for new target hook.
32665
32666         * hooks.c (hook_bool_mode_true): New generic hook.
32667         * hooks.h (hook_bool_mode_true): Add prototype.
32668
32669         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
32670         target hook.
32671         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
32672         target hook, set to hook_bool_mode_false.
32673         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
32674         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
32675         with targetm.small_register_classes_for_mode_p.
32676         (find_reusable_reload): Likewise.
32677         (combine_reloads): Likewise.
32678         * reload1.c (reload_as_needed): Likewise.
32679         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
32680         * ifcvt.c (noce_process_if_block, check_cond_move_block,
32681         dead_or_predicable): Likewise.
32682         * regmove.c (optimize_reg_copy_1): Likewise.
32683         * calls.c (prepare_call_address): Likewise.
32684         (precompute_register_parameters): Likewise.
32685
32686         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
32687         hook definition.
32688         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
32689         implementation of the hook that considers all register classes
32690         small except for SH64.
32691         (sh_override_options): Use the new hook.
32692         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
32693         Add prototype.
32694
32695         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
32696         hook definition.
32697         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
32698         implementation of the hook that considers all register classes
32699         small for THUMB1.
32700         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
32701         Add prototype.
32702
32703         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
32704         hook definition.
32705         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
32706         implementation of the hook that considers all register classes
32707         small for MIPS16.
32708         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
32709         Add prototype.
32710
32711         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
32712         hook definition.
32713         * config/m32c/m32c.h: Likewise.
32714         * config/pdp11/pdp11.h: Likewise.
32715         * config/avr/avr.h: Likewise.
32716         * config/xtensa/xtensa.h: Likewise.
32717         * config/m68hc11/m68hc11.h: Likewise.
32718         * config/mn10300/mn10300.h: Likewise.
32719         * config/mcore/mcore.h: Likewise.
32720         * config/h8300/h8300.h: Likewise.
32721         * config/bfin/bfin.h: Likewise.
32722
32723         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
32724         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
32725
32726 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
32727
32728         * double-int.h (tree_to_double_int): Remove macro.
32729         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
32730         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32731         (tree_to_double_int): New function.
32732         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
32733         Move ...
32734         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
32735
32736 2010-05-03  Richard Guenther  <rguenther@suse.de>
32737
32738         PR tree-optimization/43971
32739         * tree-ssa-structalias.c (get_constraint_for_1): Fix
32740         constraints in the !flag_delete_null_pointer_checks case.
32741
32742 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
32743
32744         PR debug/43972
32745         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
32746         result mode matches original rtl mode.
32747
32748 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
32749
32750         PR target/43888
32751         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
32752
32753 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32754
32755         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
32756         when processing flag options.
32757
32758 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32759
32760         * gcov-iov.c (main): Change format string placeholder
32761         from %#08x to 0x%08x.
32762         * genchecksum.c (dosum): Change format string placeholder
32763         from %#02x to 0x%02x.
32764
32765 2010-05-02  Richard Guenther  <rguenther@suse.de>
32766
32767         PR tree-optimization/43879
32768         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
32769
32770 2010-05-02  Bruno Haible  <bruno@clisp.org>
32771
32772         * doc/extend.texi (Function Attributes): Fix a typo.
32773
32774 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32775
32776         Revert:
32777         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
32778         placeholder from 0x%x to %#x.
32779         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32780         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
32781         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
32782         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
32783         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
32784         * config/i386/i386.c (ix86_target_string): Ditto.
32785         * config/i386/i386.c (output_pic_addr_const): Ditto.
32786         (print_operand): Ditto.
32787
32788 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
32789
32790         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
32791         placeholder from 0x%x to %#x.
32792         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
32793         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
32794         (ASM_OUTPUT_DEBUG_DATA): Ditto.
32795         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
32796         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
32797         * optc-gen.awk: Ditto.
32798         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
32799         (HOST_WIDE_INT_PRINT_HEX): Ditto.
32800         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
32801         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
32802
32803 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32804
32805         * target.h (struct calls): Add function_value_regno_p field.
32806         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
32807         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
32808         * targhooks.c (default_function_value_regno_p): New function.
32809         * targhooks.h (default_function_value_regno_p): Declare function.
32810         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
32811         * builtins.c. (apply_result_size): (Ditto.).
32812         * combine.c. (likely_spilled_retval_p): (Ditto.).
32813         * mode-switching.c. Include 'target.h'.
32814         (create_pre_exit): Use function_value_regno_p hook.
32815         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
32816         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
32817         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
32818
32819         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
32820         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
32821         (ix86_function_value_regno_p): Declare as static, change argument
32822         type to const unsigned int.
32823         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
32824
32825 2010-05-01  Richard Guenther  <rguenther@suse.de>
32826
32827         PR tree-optimization/43949
32828         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
32829         types.
32830         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
32831
32832 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
32833
32834         * rtl.h (CONST_DOUBLE_P): Define.
32835         (rtx_to_double_int): Declare.
32836         * emit-rtl.c (rtx_to_double_int): New function.
32837         * dwarf2out.c (insert_double): New function.
32838         (loc_descriptor, add_const_value_attribute): Clean up, use
32839         rtx_to_double_int and insert_double functions.
32840
32841 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
32842
32843         * doc/extend.texi (Inline): Add missing return keyword to examples.
32844         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
32845         "command-line".
32846
32847 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
32848
32849         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
32850         the variable part of the offset as well.  Use highest_pow2_factor for
32851         all alignment checks.
32852
32853 2010-04-30  Richard Guenther  <rguenther@suse.de>
32854
32855         PR tree-optimization/43879
32856         * tree-ssa-structalias.c (type_could_have_pointers): Functions
32857         can have pointers.
32858
32859 2010-04-30  Jan Hubicka  <jh@suse.cz>
32860
32861         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
32862         varpool.
32863         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
32864
32865 2010-04-30  Jan Hubicka  <jh@suse.cz>
32866
32867         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
32868         New.
32869         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
32870         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
32871         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
32872         cgraph_node_set_needs_ltrans_p): Remove.
32873
32874 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32875
32876         * sdbout.c: Include vec.h, do not include varray.h.
32877         (deferred_global_decls, sdbout_global_decl,
32878         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
32879         * toplev.c: Do not include varray.h.
32880         (dump_memory_report): Do not dump VARRAY statistics.
32881         * gengtype.c (open_base_file): Ignore varray.h.
32882         * Makefile.in: Update for abovementioned changes.
32883         Remove all traces of varray.c and varray.h.
32884         * varray.c: Remove file.
32885         * varray.h: Remove file.
32886
32887 2010-04-30  Jan Hubicka  <jh@suse.cz>
32888
32889         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
32890         references.
32891
32892 2010-04-30  Jan Hubicka  <jh@suse.cz>
32893
32894         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
32895         needed.
32896
32897 2010-04-30  Richard Guenther  <rguenther@suse.de>
32898
32899         * tree-ssa-structalias.c (get_constraint_for_1): Generate
32900         constraints for CONSTRUCTOR.
32901
32902 2010-04-30  Richard Guenther  <rguenther@suse.de>
32903
32904         PR lto/43946
32905         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
32906         first after all lowering passes.
32907
32908 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
32909
32910         * toplev.c: Include varray.h for statistics dumping.
32911         * tree.h: Do not declare varray_head_tag.
32912         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
32913         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
32914         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
32915         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
32916         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
32917         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
32918         c-common.c, c-common.h, reg-stack.c, basic-block.h,
32919         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
32920         include varray.h.
32921         * Makefile.in: Update for abovementioned changes.
32922
32923 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
32924
32925         PR debug/43942
32926         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
32927
32928 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32929
32930         * config/picochip/picochip.c (picochip_legitimize_address): Define.
32931         Use this function to do machine-specific conversion.
32932         (picochip_legitimize_reload_address): Likewise.
32933         (picochip_legitimate_address_p): Check valid base register only if
32934         strict.
32935         (picochip_check_conditional_copy): Check for modw only if opnd is
32936         register.
32937         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
32938         to call the function in c.
32939         * config/picochip/picochip-protos.h
32940         (picochip_legitimize_reload_address): Define.
32941         * config/picochip/picochip.md (supported_compare1): Define.
32942
32943 2010-04-30  Jan Hubicka  <jh@suse.cz>
32944
32945         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
32946         (cgraph_global_info): Remove inlined.
32947         (LTO_cgraph_tag_names): Remove.
32948         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
32949         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
32950         simplify cgraph tags and document.
32951         (lto_output_node): Use only LTO_cgraph_unavail_node and
32952         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
32953         for_functions_valid, global info, process and output flags.
32954         (input_overwrite_node): Initialize estimated stack size and
32955         estimated growth.  Do not read flags we no longer store.
32956         (input_node): Likewise do not read info no longer stored.
32957         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
32958         flag.
32959
32960 2010-04-30  Richard Guenther  <rguenther@suse.de>
32961
32962         PR tree-optimization/43879
32963         * tree-ssa-structalias.c (get_constraint_for_1): Properly
32964         handle non-zero initializers.
32965
32966 2010-04-30  Richard Guenther  <rguenther@suse.de>
32967
32968         * builtins.c (fold_builtin_1): Delete free (0).
32969
32970 2010-04-29  Jan Hubicka  <jh@suse.cz>
32971
32972         * gengtype.c (open_base_files): Add lto-streamer.h
32973         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
32974         (pass_ipa_cp): GGC collect.
32975         * toplev. (compile_file): Do not output symbols.
32976         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
32977         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
32978         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
32979         * lto-section-in.c: Include ggc.h
32980         (lto_new_in_decl_state): Alloc in GGC.
32981         (lto_delete_in_decl_state): Likewise.
32982         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
32983         Collect.
32984
32985 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
32986
32987         PR target/42895
32988         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
32989         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
32990         (HONOR_REG_ALLOC_ORDER): Describe new macro.
32991         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
32992         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
32993         account only if HONOR_REG_ALLOC_ORDER is not defined.
32994         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
32995         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
32996
32997 2010-04-29  Jon Grant  <04@jguk.org>
32998
32999         * collect2.c (vflag): Change type from int to bool.
33000         (debug): Likewise.
33001         (helpflag): New global bool.
33002         (main): Set vflag and debug with boolean, not integer truth values.
33003         Accept new "--help" option and output usage text if found.
33004         * collect2.h (vflag): Update prototype.
33005         (debug): Likewise.
33006
33007 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
33008
33009         PR bootstrap/43936
33010         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
33011
33012 2010-04-29  Richard Guenther  <rguenther@suse.de>
33013
33014         PR bootstrap/43935
33015         * plugin.h (invoke_plugin_callbacks): Annotate arguments
33016         with ATTRIBUTE_UNUSED.
33017
33018 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
33019
33020         PR target/43921
33021         * config/i386/i386.c (get_some_local_dynamic_name): Replace
33022         INSN_P with NONDEBUG_INSN_P.
33023         (distance_non_agu_define): Likewise.
33024         (distance_agu_use): Likewise.
33025
33026 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
33027
33028         From Dominique d'Humieres  <dominiq@lps.ens.fr>
33029         PR bootstrap/43858
33030         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
33031         test_set.
33032
33033 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
33034
33035         * plugin.h (invoke_plugin_callbacks): New inline function.
33036         * plugin.c (flag_plugin_added): New global flag.
33037         (add_new_plugin): Initialize above flag.
33038         (invoke_plugin_callbacks): Rename to ...
33039         (invoke_plugin_callbacks_full): ... this.
33040
33041 2010-04-28  Jan Hubicka  <jh@suse.cz>
33042
33043         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
33044         (lto_varpool_replace_node): New.
33045         (lto_symtab_resolve_symbols): Resolve varpool nodes.
33046         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
33047         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
33048         * cgraph.h (varpool_node_ptr): New type.
33049         (varpool_node_ptr): New vector.
33050         (varpool_node_set_def): New structure.
33051         (varpool_node_set): New type.
33052         (varpool_node_set): New vector.
33053         (varpool_node_set_element_def): New structure.
33054         (varpool_node_set_element, const_varpool_node_set_element): New types.
33055         (varpool_node_set_iterator): New type.
33056         (varpool_node): Add prev pointers, add used_from_other_partition,
33057         in_other_partition.
33058         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
33059         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
33060         varpool_get_node, varpool_remove_node): Declare.
33061         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
33062         varpool_node_set_size): New inlines.
33063         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
33064         * tree-pass.h (varpool_node_set_def): Forward declare.
33065         (ipa_opt_pass_d): Summary writting takes vnode sets too.
33066         (ipa_write_optimization_summaries): Update prototype.
33067         * ipa-cp.c (ipcp_write_summary): Update.
33068         * ipa-reference.c (ipa_reference_write_summary): Update.
33069         * lto-cgraph.c (lto_output_varpool_node): New static function.
33070         (output_varpool): New function.
33071         (input_varpool_node): New static function.
33072         (input_varpool_1): New function.
33073         (input_cgraph): Input varpool.
33074         * ipa-pure-const.c (pure_const_write_summary): Update.
33075         * lto-streamer-out.c (lto_output): Update, output varpool too.
33076         (write_global_stream): Kill WPA hack.
33077         (produce_asm_for_decls): Update.
33078         (output_alias_pair_p): Handle variables.
33079         (output_unreferenced_globals): Output only needed partition of varpool.
33080         * ipa-inline.c (inline_write_summary): Update.
33081         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
33082         cgraph.
33083         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
33084         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
33085         varpool_node_set_new, varpool_node_set_add,
33086         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
33087         debug_varpool_node_set): New functions.
33088         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
33089         (execute_one_pass): Process new decls too.
33090         (ipa_write_summaries_2): Pass around vsets.
33091         (ipa_write_summaries_1): Likewise.
33092         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
33093         to add.
33094         (ipa_write_optimization_summaries_1): Pass around vsets.
33095         (ipa_write_optimization_summaries): Likewise.
33096         * varpool.c (varpool_get_node): New.
33097         (varpool_node): Update doubly linked lists.
33098         (varpool_remove_node): New.
33099         (dump_varpool_node): More dumping.
33100         (varpool_enqueue_needed_node): Update doubly linked lists.
33101         (decide_is_variable_needed): Kill ltrans hack.
33102         (varpool_finalize_decl): Kill lto hack.
33103         (varpool_assemble_decl): Skip decls in other partitions.
33104         (varpool_assemble_pending_decls): Update doubly linkes lists.
33105         (varpool_empty_needed_queue): Likewise.
33106         (varpool_extra_name_alias): Likewise.
33107         * lto-streamer.c (lto_get_section_name): Add vars section.
33108         * lto-streamer.h (lto_section_type): Update.
33109         (output_varpool, input_varpool): Declare.
33110
33111 2010-04-28  Mike Stump  <mikestump@comcast.net>
33112
33113         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
33114
33115 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33116
33117         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
33118         record or union type with RECORD_OR_UNION_TYPE_P predicate.
33119         (lto_input_ts_type_tree_pointers): Likewise.
33120         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
33121         (lto_output_ts_type_tree_pointers): Likewise.
33122
33123 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33124
33125         Uniquization of constants at the Tree level
33126         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
33127         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
33128         bit to the end.
33129         (tree_output_constant_def): Declare.
33130         * gimplify.c (gimplify_init_constructor): When using block copy, first
33131         uniquize the constant constructor on the RHS.
33132         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
33133         DECL_IN_CONSTANT_POOL flag.
33134         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
33135         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
33136         constant pool.
33137         (assemble_variable): Deal with symbols belonging to the tree constant
33138         pool.
33139         (get_constant_section): Add ALIGN parameter and simplify.
33140         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
33141         (assemble_constant_contents): Use the expression of the VAR_DECL.
33142         (output_constant_def_contents): Use the alignment of the VAR_DECL.
33143         (tree_output_constant_def): New global function.
33144         (mark_constant): Use the expression of the VAR_DECL.
33145         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
33146         its expression.
33147         (output_object_block): Likewise and assemble the expression.
33148
33149 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
33150
33151         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
33152         hash_tree, eq_tree): New tree hash table.
33153         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
33154         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
33155         lto_orig_address_remove): Reimplement.
33156
33157 2010-04-28  Xinliang David Li  <davidxl@google.com>
33158
33159         PR c/42643
33160         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
33161         (compute_uninit_opnds_pos): New function.
33162         (is_non_loop_exit_postdominating): New function.
33163         (compute_control_dep_chain): New function.
33164         (find_pdom): New function.
33165         (convert_control_dep_chain_into_preds): New function.
33166         (find_predicates): New function.
33167         (find_control_equiv_block): New function.
33168         (collect_phi_def_edges): New function.
33169         (find_def_preds): New function.
33170         (find_dom): New function.
33171         (dump_predicates): New function.
33172         (get_cmp_code): New function.
33173         (is_value_included_in): New function.
33174         (find_matching_predicate_in_rest_chains): New function.
33175         (use_pred_not_overlap_with_undef_path_pred): New function.
33176         (is_use_properly_guarded): New function.
33177         (normalize_cond_1): New function.
33178         (is_and_or_or): New function.
33179         (normalize_cond): New function.
33180         (is_gcond_subset_of): New function.
33181         (is_subset_of_any): New function.
33182         (is_or_set_subset_of): New function.
33183         (is_and_set_subset_of): New function.
33184         (is_norm_cond_subset_of): New function.
33185         (is_pred_expr_subset_of): New function.
33186         (is_pred_chain_subset_of): New function.
33187         (is_included_in): New function.
33188         (is_superset_of): New function.
33189         (find_uninit_use): New function.
33190         (warn_uninitialized_phi): New function.
33191         (compute_possibly_undefined_names): New function.
33192         (ssa_undefined_value_p): New function.
33193         (execute_late_warn_uninitialized): New function.
33194         * tree-ssa.c (ssa_undefined_value_p): Removed.
33195         (warn_uninit): Changed to extern.
33196         (warn_uninitialized_phi): Removed.
33197         (warn_uninitialized_vars): Changed to extern.
33198         (execute_late_warn_uninitialized): Removed
33199         * tree-flow.h: Add new prototypes.
33200         * timevar.def: Add new time variable.
33201         * Makefile.in: Add new build file.
33202
33203 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
33204
33205         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
33206         type if available.
33207
33208 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33209
33210         PR target/22224
33211         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
33212
33213 2010-04-28  Martin Jambor  <mjambor@suse.cz>
33214
33215         * cgraph.h (struct cgraph_node): New field indirect_calls.
33216         (struct cgraph_indirect_call_info): New type.
33217         (struct cgraph_edge): Removed field indirect_call. New fields
33218         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
33219         (cgraph_create_indirect_edge): Declare.
33220         (cgraph_make_edge_direct): Likewise.
33221         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
33222         * ipa-prop.h (struct ipa_param_call_note): Removed.
33223         (struct ipa_node_params): Removed field param_calls.
33224         (ipa_create_all_structures_for_iinln): Declare.
33225         * cgraph.c: Described indirect edges and uids in initial comment.
33226         (cgraph_add_edge_to_call_site_hash): New function.
33227         (cgraph_edge): Search also among the indirect edges, use
33228         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
33229         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
33230         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
33231         site hash.
33232         (initialize_inline_failed): Assign a reason to indirect edges.
33233         (cgraph_create_edge_1): New function.
33234         (cgraph_create_edge): Moved some functionality to
33235         cgraph_create_edge_1.
33236         (cgraph_create_indirect_edge): New function.
33237         (cgraph_edge_remove_callee): Add an assert checking for
33238         non-indirectness.
33239         (cgraph_edge_remove_caller): Special-case indirect edges.
33240         (cgraph_remove_edge): Likewise.
33241         (cgraph_set_edge_callee): New function.
33242         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
33243         (cgraph_make_edge_direct): New function.
33244         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
33245         the declaration of the call statement matches.
33246         (cgraph_node_remove_callees): Special-case indirect edges.
33247         (cgraph_clone_edge): Likewise.
33248         (cgraph_clone_node): Clone also the indirect edges.
33249         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
33250         indirect_call, dump count of indirect_calls edges.
33251         * ipa-prop.c (iinlining_processed_edges): New variable.
33252         (ipa_note_param_call): Create indirect edges instead of
33253         creating notes.  New parameter node.
33254         (ipa_analyze_call_uses): New parameter node, pass it on to
33255         ipa_note_param_call.
33256         (ipa_analyze_stmt_uses): Likewise.
33257         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
33258         (print_edge_addition_message): Work on edges rather than on notes.
33259         (update_call_notes_after_inlining): Likewise, renamed to
33260         update_indirect_edges_after_inlining.
33261         (ipa_create_all_structures_for_iinln): New function.
33262         (ipa_free_node_params_substructures): Do not free notes.
33263         (ipa_edge_duplication_hook): Propagate bits within
33264         iinlining_processed_edges bitmap.
33265         (ipa_node_duplication_hook): Do not duplicate notes.
33266         (free_all_ipa_structures_after_ipa_cp): Renamed to
33267         ipa_free_all_structures_after_ipa_cp.
33268         (free_all_ipa_structures_after_iinln): Renamed to
33269         ipa_free_all_structures_after_iinln.
33270         (ipa_write_param_call_note): Removed.
33271         (ipa_read_param_call_note): Removed.
33272         (ipa_write_indirect_edge_info): New function.
33273         (ipa_read_indirect_edge_info): Likewise.
33274         (ipa_write_node_info): Do not stream notes, do stream information
33275         in indirect edges.
33276         (ipa_read_node_info): Likewise.
33277         (lto_ipa_fixup_call_notes): Removed.
33278         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
33279         * ipa-inline.c (pass_ipa_inline): Likewise.
33280         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
33281         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
33282         * tree-inline.c (copy_bb): Removed an unnecessary double check for
33283         is_gimple_call.
33284         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
33285         edges.
33286         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
33287         (output_cgraph): Stream also indirect edges.
33288         (lto_output_edge): Added capability to stream indirect edges.
33289         (input_edge): Likewise.
33290         (input_cgraph_1): Likewise.
33291         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
33292         of indirect edges.
33293
33294 2010-04-28  Richard Guenther  <rguenther@suse.de>
33295
33296         PR tree-optimization/43879
33297         PR tree-optimization/43909
33298         * tree-ssa-structalias.c (struct variable_info): Add
33299         only_restrict_pointers flag.
33300         (new_var_info): Initialize it.  Increment stats.total_vars here.
33301         (create_function_info_for): Do not increment stats.total_vars here.
33302         (get_function_part_constraint): Fix build with C++.
33303         (insert_into_field_list): Remove.
33304         (push_fields_onto_fieldstack): Properly merge fields.
33305         (create_variable_info_for): Split and simplify.
33306         (create_variable_info_for_1): New piece.
33307         (intra_create_variable_infos): Properly make restrict constraints
33308         from parameters.
33309
33310 2010-04-28  Richard Guenther  <rguenther@suse.de>
33311
33312         PR c++/43880
33313         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
33314
33315 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33316             Jan Hubicka  <hubicka@ucw.cz>
33317
33318         * doc/invoke.texi (-Wsuggest-attribute=const,
33319         -Wsuggest-attribute=pure): Document.
33320         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
33321         (function_always_visible_to_compiler_p,
33322         suggest_attribute, warn_function_pure, warn_function_const):
33323         New functions.
33324         (check_call): Improve debug info.
33325         (analyze_function): Do not check availability.
33326         (add_new_function): Check availability.
33327         (propagate): Output warnings.
33328         (skip_function_for_local_pure_const): New function.
33329         (local_pure_const): Use it; output warnings.
33330         * common.opt (Wsuggest-attribute=const,
33331         Wsuggest-attribute=pure): New.
33332
33333 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33334
33335         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
33336         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
33337         or DW_CFA_def_cfa_offset{,_sf}.
33338
33339 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33340
33341         * tree.h: Fix truncated long macros.
33342
33343 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
33344
33345         * collect2.c (TARGET_64BIT): Redefine to target's default.
33346         * tlink.c: Likewise.
33347         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
33348         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
33349         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
33350         for underscoring __USER_LABEL_PREFIX__.
33351         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
33352         (SUB_LINK_ENTRY32): New.
33353         (SUB_LINK_ENTRY64): New.
33354         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
33355         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
33356         (SUB_LINK_ENTRY64): New.
33357         (SUB_LINK_ENTRY): New.
33358         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
33359         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
33360         x64 target is choosen.
33361         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
33362         * configure: Regenerated.
33363         * configure.ac (leading-mingw64-underscores): Option added.
33364
33365 2010-04-27  Jan Hubicka  <jh@suse.cz>
33366
33367         * doc/invoke.texi (-fipa-profile): Document.
33368         * opts.c (decode_options): Enable ipa-profile at -O1.
33369         * timevar.def (TV_IPA_PROFILE): Define.
33370         * common.opt (fipa-profile): Add.
33371         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
33372         flag for clones.
33373         (cgraph_propagate_frequency): Handle only local ones.
33374         * tree-pass.h (pass_ipa_profile): Declare.
33375         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
33376         (pass_ipa_profile): Use TV_IPA_PROFILE.
33377         * ipa.c (ipa_profile): New function.
33378         (gate_ipa_profile): Likewise.
33379         (pass_ipa_profile): New global variable.
33380         * passes.c (pass_ipa_profile): New.
33381
33382 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
33383
33384         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
33385
33386 2010-04-27  Martin Jambor  <mjambor@suse.cz>
33387
33388         PR middle-end/43812
33389         * ipa.c (dissolve_same_comdat_group_list): New function.
33390         (function_and_variable_visibility): Call
33391         dissolve_same_comdat_group_list when comdat group contains external or
33392         newly local nodes.
33393         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
33394         lists are circular and that they contain only DECL_ONE_ONLY nodes.
33395
33396 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
33397
33398         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
33399         (const_hash_1) <VECTOR_CST>: New case.
33400         (compare_constant) <VECTOR_CST>: Likewise.
33401         <ADDR_EXPR>: Deal with LABEL_REFs.
33402         (copy_constant) <VECTOR_CST>: New case.
33403
33404 2010-04-27  Jan Hubicka  <jh@suse.cz>
33405
33406         * cgraph.c (cgraph_propagate_frequency): New function.
33407         * cgraph.h (cgraph_propagate_frequency): Declare.
33408         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
33409         cgraph_propagate_frequency.
33410
33411 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
33412
33413         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
33414
33415 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
33416
33417         PR target/40657
33418         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
33419         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
33420         here to determine which regs to push and how much stack to reserve.
33421
33422 2010-04-27  Jie Zhang  <jie@codesourcery.com>
33423
33424         * doc/gimple.texi (gimple_statement_with_ops): Remove
33425         addresses_taken field.
33426         (gimple_statement_with_memory_ops): Likewise.
33427
33428 2010-04-27  Jan Hubicka  <jh@suse.cz>
33429
33430         * tree-inline.c (eni_inlining_weights): Remove.
33431         (estimate_num_insns): Special case more builtins.
33432
33433 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
33434
33435         PR c/32207
33436         * c-typeck.c (build_binary_op): Move forward check for comparison
33437         pointer with null pointer constant and adjust the diagnostic message.
33438
33439 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
33440
33441         PR lto/42776
33442         * configure.ac (gcc_cv_as_section_has_align): Set if installed
33443         binutils supports extended .section directive needed by LTO, or
33444         warn if older binutils found.
33445         (LTO_BINARY_READER): New AC_SUBST'd variable.
33446         (LTO_USE_LIBELF): Likewise.
33447         * config.gcc (lto_binary_reader): New target-specific configure
33448         variable.
33449         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
33450         (LTO_USE_LIBELF): Likewise.
33451         * configure: Regenerate.
33452
33453         * collect2.c (is_elf): Rename from this ...
33454         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
33455          object files in addition to ELF-formatted ones.
33456         (scan_prog_file): Caller updated.  Also allow for LTO info marker
33457         symbol to be prefixed or not by an extra underscore.
33458
33459         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
33460         * config/i386/winnt.c: Also #include lto-streamer.h
33461         (i386_pe_asm_named_section): Specify 1-byte section alignment for
33462         LTO named sections.
33463         (i386_pe_asm_output_aligned_decl_common): Add comment.
33464         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
33465
33466 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
33467
33468         PR target/43889
33469         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
33470         Add missing earlyclobber for second alternative.
33471
33472 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
33473
33474         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
33475         bits for artificial defs at the top of the block.
33476         * fwprop.c (single_def_use_enter_block): Don't call it.
33477
33478 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
33479
33480         PR 43715
33481         * configure.ac: Use "$gcc_cv_nm -g" on darwin
33482         instead of "$gcc_cv_objdump -T".
33483         Use "-undefined dynamic_lookup" on darwin.
33484         * configure: Regenerate.
33485
33486 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
33487
33488         PR c/43893
33489         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
33490
33491 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33492
33493         * c-parser.c (struct c_token): Move location field up.
33494         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
33495         (struct c_declspecs): Convert typespec_word, storage_class, and
33496         default_int_p into bitfields.
33497         (struct c_declarator): Move loc field up.
33498
33499 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
33500
33501         * cfgloop.h (struct loop): Move can_be_parallel field up.
33502         * ipa-prop.h (struct ip_node_params): Move bitfields up.
33503         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33504         down.
33505         (struct iv_cand): Convert pos field into a bitfield.
33506         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
33507         field up.
33508         (struct _stmt_vec_info): Shuffle fields for better packing.
33509
33510 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33511
33512         * varasm.c (IN_NAMED_SECTION): Remove guard.
33513         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
33514         (IN_NAMED_SECTION_P): ...this.
33515         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
33516         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
33517
33518 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
33519
33520         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
33521         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
33522         of shadowing it.  Fix comments.
33523
33524 2010-04-26  Jan Hubicka  <jh@suse.cz>
33525
33526         * cgraph.c (cgraph_create_node): Set node frequency to normal.
33527         (cgraph_clone_node): Copy function frequency.
33528         * cgraph.h (node_frequency): New enum
33529         (struct cgraph_node): Add.
33530         * final.c (rest_of_clean_state): Update.
33531         * lto-cgraph.c (lto_output_node): Output node frequency.
33532         (input_overwrite_node): Input node frequency.
33533         * tre-ssa-loop-ivopts (computation_cost): Update.
33534         * lto-streamer-out.c (output_function): Do not output function
33535         frequency.
33536         * predict.c (maybe_hot_frequency_p): Update and handle functions
33537         executed once.
33538         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
33539         attribute lookup.
33540         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
33541         (compute_function_frequency): Set noreturn functions to be executed
33542         once.
33543         (choose_function_section): Update.
33544         * lto-streamer-in.c (input_function): Do not input function frequency.
33545         * function.c (allocate_struct_function): Do not initialize function
33546         frequency.
33547         * function.h (function_frequency): Remove.
33548         (struct function): Remove function frequency.
33549         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
33550         (try_update): Update.
33551         * tree-inline.c (initialize_cfun): Do not update function frequency.
33552         * passes.c (pass_init_dump_file): Update.
33553         * i386.c (ix86_compute_frame_layout): Update.
33554         (ix86_pad_returns): Update.
33555
33556 2010-04-26  Jie Zhang  <jie@codesourcery.com>
33557
33558         PR tree-optimization/43833
33559         * tree-vrp.c (range_int_cst_p): New.
33560         (range_int_cst_singleton_p): New.
33561         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
33562         when both operands are constants.  Use range_int_cst_p in
33563         BIT_IOR_EXPR case.
33564
33565 2010-04-26  Jan Hubicka  <jh@suse.cz>
33566
33567         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
33568
33569 2010-04-26  Richard Guenther  <rguenther@suse.de>
33570
33571         PR lto/43080
33572         * gimple.c (gimple_decl_printable_name): Deal gracefully
33573         with a NULL DECL_NAME.
33574
33575 2010-04-26  Richard Guenther  <rguenther@suse.de>
33576
33577         PR lto/42425
33578         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
33579         if emitting debug information and it is either a function
33580         or a namespace decl.
33581
33582 2010-04-26  Ira Rosen  <irar@il.ibm.com>
33583
33584         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
33585         determine if the statement is vectorizable, and a macro to access it.
33586         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
33587         Skip statements that can't be vectorized. If the analysis fails,
33588         mark the statement as unvectorizable if vectorizing basic block.
33589         (vect_compute_data_refs_alignment): Likewise.
33590         (vect_verify_datarefs_alignment): Skip statements marked as
33591         unvectorizable. Add print.
33592         (vect_analyze_group_access): Skip statements that can't be
33593         vectorized. If the analysis fails, mark the statement as
33594         unvectorizable if vectorizing basic block.
33595         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
33596         * tree-vect-stmts.c (vectorizable_store): Fix the number of
33597         generated stmts for SLP.
33598         (new_stmt_vec_info): Initialize the new field.
33599         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
33600         statements marked as unvectorizable.
33601
33602 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
33603
33604         * c-common.c (flag_isoc1x): New.
33605         (flag_isoc99): Update comment.
33606         * c-common.h (flag_isoc1x): New.
33607         (flag_isoc99): Update comment.
33608         * c-cppbuiltin.c (builtin_define_float_constants): Also define
33609         __<type>_DECIMAL_DIG__.
33610         * c-opts.c (set_std_c1x): New.
33611         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
33612         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
33613         * c.opt (-std=c1x, -std=gnu1x): New options.
33614         * doc/cpp.texi: Mention -std=c1x.
33615         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
33616         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
33617         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
33618         * doc/standards.texi: Mention C1X.
33619         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
33620         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
33621         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
33622         Define for C1X.
33623
33624 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
33625
33626         * config/i386/gmon-sol2.c (_mcleanup): Change format string
33627         placeholder from 0x%x to %#x.
33628         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
33629         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
33630         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
33631         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
33632         * config/i386/i386.c (ix86_target_string): Ditto.
33633         (output_pic_addr_const): Ditto.
33634         (print_operand): Ditto.
33635
33636 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
33637
33638         * combine.c (find_split_point): Add third argument.  Use it
33639         to find nested multiply-accumulate instructions.  Adjust calls.
33640         (try_combine): Adjust call to find_split_point.
33641
33642 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
33643
33644         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
33645
33646 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
33647
33648         PR tree-optimization/41442
33649         * fold-const.c (merge_truthop_with_opposite_arm): New function.
33650         (fold_binary_loc): Call it.
33651
33652 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
33653
33654         * toplev.c (general_init): Set default for fdiagnostics-show-option.
33655         * opts.c (common_handle_option): Allow disabling it.
33656         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
33657
33658 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
33659
33660         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
33661         between modes if both types are integral.
33662
33663 2010-04-23  Richard Guenther  <rguenther@suse.de>
33664
33665         PR tree-optimization/43572
33666         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
33667
33668 2010-04-23  Richard Guenther  <rguenther@suse.de>
33669
33670         PR lto/43455
33671         * tree-inline.c (tree_can_inline_p): Also check compatibility
33672         of return types.
33673
33674 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33675
33676         PR tree-optimization/43846
33677         * tree-sra.c (struct access): New flag grp_assignment_read.
33678         (build_accesses_from_assign): Set grp_assignment_read.
33679         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
33680         (enum mark_read_status): New type.
33681         (analyze_access_subtree): Propagate grp_assignment_read, create
33682         accesses also if both direct_read and root->grp_assignment_read.
33683
33684 2010-04-23  Martin Jambor  <mjambor@suse.cz>
33685
33686         PR middle-end/43835
33687         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
33688         function does not have type attributes.
33689
33690 2010-04-23  Richard Guenther  <rguenther@suse.de>
33691
33692         PR lto/42653
33693         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
33694         of FUNCTION_DECLs.
33695
33696 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33697
33698         * sese.h (create_if_region_on_edge): Remove.
33699
33700         * sese.c (create_if_region_on_edge): Make static.
33701
33702         * tree-inline.c: Do not include ggc.h.
33703
33704         * expr.c: Do not include ggc.h.
33705
33706         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
33707         dependencies.
33708
33709 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
33710
33711         PR target/43744
33712         * config/sh/sh.c (find_barrier): Don't emit a constant pool
33713         in the middle of insns for casesi_worker_2.
33714
33715 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
33716
33717         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
33718
33719 2010-04-22  Ira Rosen  <irar@il.ibm.com>
33720
33721         PR tree-optimization/43842
33722         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
33723         loop unrolling in update of exit phis. Fix comment.
33724         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
33725         least two reduction statements in the loop before starting SLP
33726         analysis.
33727
33728 2010-04-22  Nick Clifton  <nickc@redhat.com>
33729
33730         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
33731
33732 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
33733
33734         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
33735         to simplify a + ~a.
33736
33737 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33738
33739         * tree-parloops.c (loop_parallel_p): New argument
33740         parloop_obstack.  Pass it down.
33741         (parallelize_loops): New variable parloop_obstack.  Initialize it,
33742         pass it down, free it.
33743
33744         * tree-loop-linear.c (linear_transform_loops): Pass down
33745         lambda_obstack.
33746
33747         * tree-data-ref.h (lambda_compute_access_matrices): New argument
33748         of type struct obstack *.
33749
33750         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
33751         scratch_obstack.  Initialize it, pass down, free it.
33752
33753         * lambda.h (lambda_loop_new): Remove.
33754         (lambda_matrix_new, lambda_matrix_inverse)
33755         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
33756         argument of type struct obstack *.
33757
33758         * lambda-trans.c (lambda_trans_matrix_new): New argument
33759         lambda_obstack.  Pass it down, use obstack allocation for ret.
33760         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
33761         it down.
33762
33763         * lambda-mat.c (lambda_matrix_get_column)
33764         (lambda_matrix_project_to_null): Remove.
33765         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
33766         allocation for mat.
33767         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
33768         lambda_obstack.
33769
33770         * lambda-code.c (lambda_loop_new): New function.
33771         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
33772         (lambda_compute_auxillary_space, lambda_compute_target_space)
33773         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
33774         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
33775         (build_access_matrix): New argument lambda_obstack.  Use obstack
33776         allocation for am.
33777         (lambda_compute_step_signs, lambda_compute_access_matrices): New
33778         argument lambda_obstack.  Pass it down.
33779
33780 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33781
33782         * optabs.h (expand_widening_mult): Declare.
33783
33784 2010-04-22  Richard Guenther  <rguenther@suse.de>
33785
33786         PR tree-optimization/43845
33787         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
33788         lookup the CALL_EXPR function and arguments.
33789
33790 2010-04-22  Nick Clifton  <nickc@redhat.com>
33791
33792         * config/stormy16/stormy16.c
33793         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
33794         * config/stormy16/stormy16.h: Tidy up formatting.
33795         (DONT_USE_BUILTIN_SETJMP): Remove definition.
33796         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
33797         (ineqbranchsi): Delete pattern.
33798         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
33799         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
33800         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
33801         stormy16-lib2-ucmpsi2.c.
33802
33803 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33804
33805         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
33806         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
33807         extra set merge_set_noclobber, and use it to relax the final test
33808         slightly.
33809         * df.h (df_simulate_find_noclobber_defs): Declare.
33810         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
33811         conditional defs.
33812         (df_simulate_find_noclobber_defs): New function.
33813
33814 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
33815
33816         * config/i386/i386.md: Use {} around multi-line preparation statements.
33817
33818 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
33819
33820         * c-tree.h (push_init_level, pop_init_level, set_init_index)
33821         (process_init_element): New argument of type struct obstack *.
33822
33823         * c-typeck.c (push_init_level, pop_init_level, set_designator)
33824         (set_init_index, set_init_label, set_nonincremental_init)
33825         (set_nonincremental_init_from_string, find_init_member)
33826         (output_init_element, output_pending_init_elements)
33827         (process_init_element): New argument braced_init_obstack.  Pass it
33828         down.
33829         (push_range_stack, add_pending_init): New argument
33830         braced_init_obstack.  Use obstack allocation.
33831
33832         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
33833         braced_init_obstack.  Pass it down.
33834         (c_parser_braced_init): New variables ret, braced_init_obstack.
33835         Initialize obstack, pass it down and finally free it.
33836
33837 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
33838
33839         PR middle-end/29274
33840         * tree-pass.h (pass_optimize_widening_mul): Declare.
33841         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
33842         gate_optimize_widening_mul): New static functions.
33843         (pass_optimize_widening_mul): New.
33844         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
33845         <case MULT_EXPR>: Remove support for widening multiplies.
33846         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
33847         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
33848         simplify_gen_unary rather than directly building extensions.
33849         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
33850         WIDEN_MULT_EXPR.
33851         * expmed.c (expand_widening_mult): New function.
33852         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
33853
33854 2010-04-21  Jan Hubicka  <jh@suse.cz>
33855
33856         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
33857         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
33858         * lto-wpa-fixup.c: Remove.
33859         * Makefile.in (lto-wpa-fixup.o): Remove.
33860         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
33861         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
33862         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
33863
33864 2010-04-21  Jan Hubicka  <jh@suse.cz>
33865
33866         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
33867         add write_optimization_summary, read_optimization_summary.
33868         (ipa_write_summaries_of_cgraph_node_set): Remove.
33869         (ipa_write_optimization_summaries): Declare.
33870         (ipa_read_optimization_summaries): Declare.
33871         * ipa-cp.c (pass_ipa_cp): Update.
33872         * ipa-reference.c (pass_ipa_reference): Update.
33873         * ipa-pure-const.c (pass_ipa_pure_const): Update.
33874         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
33875         Update.
33876         * ipa-inline.c (pass_ipa_inline): Update.
33877         * ipa.c (pass_ipa_whole_program): Update.
33878         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
33879         * passes.c (ipa_write_summaries_1): Do not test wpa.
33880         (ipa_write_optimization_summaries_1): New.
33881         (ipa_write_optimization_summaries): New.
33882         (ipa_read_summaries): Do not test ltrans.
33883         (ipa_read_optimization_summaries_1): New.
33884         (ipa_read_optimization_summaries): New.
33885
33886 2010-04-21  Jan Hubicka  <jh@suse.cz>
33887
33888         * lto-cgraph.c (lto_output_node): Do not output comdat groups
33889         for boundary nodes.
33890         (output_cgraph): Do not arrange comdat groups for boundary nodes.
33891
33892 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33893
33894         PR debug/40040
33895         * dwarf2out.c (add_name_and_src_coords_attributes): Add
33896         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
33897
33898 2010-04-21  Jan Hubicka  <jh@suse.cz>
33899
33900         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
33901
33902 2010-04-21  Jan Hubicka  <jh@suse.cz>
33903
33904         * varpool.c (decide_is_variable_needed): Variable is always needed
33905         during ltrans.
33906
33907 2010-04-21  Jan Hubicka  <jh@suse.cz>
33908
33909         * opts.c (decode_options): Enable pure-const pass for whopr.
33910
33911 2010-04-21  Jan Hubicka  <jh@suse.cz>
33912
33913         * cgraph.c (dump_cgraph_node): Dump also assembler name.
33914         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
33915         at WPA dumping.
33916         (cgraph_decide_inlining): Do not expect callee to be removed in all
33917         cases.
33918
33919 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
33920
33921         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
33922
33923 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33924
33925         * config/i386/i386.md (x86_shrd): Add athlon_decode and
33926         amdfam10_decode attributes.
33927
33928 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33929
33930         PR middle-end/43570
33931         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
33932         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
33933         (lower_copyprivate_clauses): Use private var in outer
33934         context instead of original var.  Make sure the types
33935         are correct for VLAs.
33936
33937 2010-04-21  Richard Guenther  <rguenther@suse.de>
33938
33939         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
33940         to non-pointer objects.
33941
33942 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
33943
33944         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
33945         last chain entry if it starts with the still current label.
33946         (add_location_or_const_value_attribute): Check that
33947         loc_list->first->next is NULL instead of comparing ->first with ->last.
33948         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
33949         to add_var_loc_to_decl.
33950
33951         * dwarf2out.c (output_call_frame_info): For dw_cie_version
33952         >= 4 add also address size and segment size fields into CIE header.
33953
33954         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
33955         long as address size is the same as sizeof (void *) and
33956         segment size is 0.
33957         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
33958         address size or segment size is unexpected, return DW_EH_PE_omit.
33959         (classify_object_over_fdes): If get_cie_encoding returned
33960         DW_EH_PE_omit, return -1.
33961         (init_object): If classify_object_over_fdes returned -1,
33962         pretend there were no FDEs at all.
33963
33964 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
33965
33966         * config/i386/i386.md (bswap<mode>2): Macroize expander from
33967         bswap{si,di}2 using SWI48 mode iterator.
33968         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
33969         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
33970         set modrm attribute of bswap insn to 0 and remove length attribute.
33971         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
33972         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
33973         set mode attribute to <MODE> and remove length attribute.
33974
33975 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
33976
33977         PR rtl-optimization/43520
33978         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
33979         zero available registers.
33980
33981 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33982
33983         * builtins.c (fold_builtin_cproj): Fold more cases.
33984
33985 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
33986
33987         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
33988         (fold_builtin_1): Fold builtin cproj.
33989         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
33990         Use ATTR_CONST_NOTHROW_LIST.
33991
33992 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
33993
33994         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
33995         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
33996         ffsi2_no_cmove for !TARGET_CMOVE.
33997         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
33998         (ffssi2): Remove expander.
33999         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
34000         mode iterator.
34001         (ctz<mode>2): Ditto from ctz{si,di}2.
34002         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
34003         mode iterator.
34004         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
34005         mode iterator.
34006
34007 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
34008
34009         * dwarf2out.c (AT_linkage_name): Define.
34010         (clone_as_declaration): Handle DW_AT_linkage_name.
34011         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
34012         of DW_AT_MIPS_linkage_name.
34013         (move_linkage_attr): Likewise.
34014         (dwarf2out_finish): Likewise.
34015
34016 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
34017
34018         PR middle-end/41952
34019         * fold-const.c (fold_comparison): New folding rule.
34020
34021 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
34022
34023         * double-int.h (double_int_setbit): Declare.
34024         * double-int.c (double_int_setbit): New function.
34025         * rtl.h (immed_double_int_const): Declare.
34026         * emit-rtl.c (immed_double_int_const): New function.
34027         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
34028         and immed_double_int_const functions.
34029         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
34030         expand_copysign_bit): (Ditto.).
34031         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
34032         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
34033         * dojump.c (prefer_and_bit_test): (Ditto.).
34034         * expr.c (convert_modes, reduce_to_bit_field_precision,
34035         const_vector_from_tree): (Ditto.).
34036         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34037
34038 2010-04-20  Jan Hubicka  <jh@suse.cz>
34039
34040         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
34041         (dump_cgraph_node): Dump new flags.
34042         * cgraph.h (struct cgraph_node): Add flags
34043         reachable_from_other_partition and in_other_partition.
34044         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
34045         other partition can not be removed.
34046         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
34047         the other partition must be output; silence sanity checking on
34048         leaking functions bodies from other paritition.
34049         * lto-cgraph.c (reachable_from_other_partition_p): New function.
34050         (lto_output_node): Output new flags; do not sanity check that inline
34051         clones are output; drop lto_forced_extern_inline_p code; do not mock
34052         visibility flags at partition boundaries.
34053         (add_node_to): New function.
34054         (output_cgraph): Use it to sort functions so masters appear before
34055         clones.
34056         (input_overwrite_node): Input new flags.
34057         * passes.c (ipa_write_summaries): Do not call
34058         lto_new_extern_inline_states.
34059         * lto-section-out.c (forced_extern_inline,
34060         lto_new_extern_inline_states lto_delete_extern_inline_states,
34061         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
34062         * lto-streamer.h (lto_new_extern_inline_states,
34063         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
34064         lto_forced_extern_inline_p): Kill.
34065
34066 2010-04-20  Richard Guenther  <rguenther@suse.de>
34067
34068         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
34069         from vars that can have pointers.
34070         (process_constraint): Dump useless constraints.
34071
34072 2010-04-20  Richard Guenther  <rguenther@suse.de>
34073
34074         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
34075         (dump_sa_points_to_info): Remove asserts.
34076         (init_base_vars): nothing_id isn't an escape point nor does it
34077         have pointers.
34078
34079 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
34080
34081         * tree.h (TYPE_REF_IS_RVALUE): Define.
34082         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
34083         should_move_die_to_comdat, prune_unused_types_walk): Handle
34084         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
34085         (modified_type_die, gen_reference_type_die): Emit
34086         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
34087         if TYPE_REF_IS_RVALUE and -gdwarf-4.
34088
34089 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34090
34091         PR target/43635
34092         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
34093         calls for -fpic -m31 if they have been sibcall optimized.
34094
34095 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
34096
34097         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
34098         ar.lc fixed and call-used.
34099
34100         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
34101
34102 2010-04-19  Jan Hubicka  <jh@suse.cz>
34103
34104         * opts.c (decode_options): Disable whpr incompatible passes.
34105         * lto/lto.c (lto_1_to_1_map): Skip clones.
34106         (read_cgraph_and_symbols): Do not mark everything as needed.
34107         (do_whole_program_analysis): Do map only after optimizing;
34108         set proper cgraph_state; use passmanager.
34109
34110 2010-04-19  DJ Delorie  <dj@redhat.com>
34111
34112         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
34113         POINTER_PLUS_EXPR and fix them.
34114
34115 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
34116
34117         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
34118         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
34119         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
34120         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
34121         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
34122         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
34123         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
34124         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
34125         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
34126         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
34127         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
34128
34129 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
34130
34131         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
34132         (check_cond_move_block): Likewise.
34133         (cond_move_process_if_block): Likewise.
34134         (noce_find_if_block): Improve formatting.
34135         (find_if_header): Pass 0 to memset and tweak conditions.
34136         (cond_exec_find_if_block): Fix long lines and tweak conditions.
34137
34138 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34139
34140         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
34141         for -gdwarf-4.
34142
34143         PR middle-end/43337
34144         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
34145         with non-local decl doesn't need chain.
34146
34147 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
34148
34149         * ira-color.c (allocno_reload_assign): Avoid accumulating
34150         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
34151
34152 2010-04-19  Martin Jambor  <mjambor@suse.cz>
34153
34154         * gimple.h (create_tmp_reg): Declare.
34155         * gimplify.c (create_tmp_reg): New function.
34156         (gimplify_return_expr): Use create_tmp_reg.
34157         (gimplify_omp_atomic): Likewise.
34158         (gimple_regimplify_operands): Likewise.
34159         * tree-dfa.c (make_rename_temp): Likewise.
34160         * tree-predcom.c (predcom_tmp_var): Likewise.
34161         (reassociate_to_the_same_stmt): Likewise.
34162         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
34163         (get_replaced_param_substitute): Likewise.
34164         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
34165         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
34166         * tree-ssa-pre.c (get_representative_for): Likewise.
34167         (create_expression_by_pieces): Likewise.
34168         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
34169         (create_tailcall_accumulator): Likewise.
34170
34171 2010-04-19  Martin Jambor  <mjambor@suse.cz>
34172
34173         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
34174         new_stmt.
34175         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
34176
34177 2010-04-19  Richard Guenther  <rguenther@suse.de>
34178
34179         PR tree-optimization/43796
34180         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
34181         from SCEV in the lattice.
34182         (vrp_visit_phi_node): Dump change.
34183
34184 2010-04-19  Richard Guenther  <rguenther@suse.de>
34185
34186         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
34187         * configure: Re-generated.
34188
34189 2010-04-19  Richard Guenther  <rguenther@suse.de>
34190
34191         PR tree-optimization/43783
34192         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
34193         constant ARRAY_REF operands two and three if possible.
34194
34195 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
34196
34197         PR target/43766
34198         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
34199
34200 2010-04-19  Jie Zhang  <jie@codesourcery.com>
34201
34202         PR target/43662
34203         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
34204
34205 2010-04-19  Ira Rosen  <irar@il.ibm.com>
34206
34207         PR tree-optimization/37027
34208         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
34209         and macro to access it.
34210         (vectorizable_reduction): Add argument.
34211         (vect_get_slp_defs): Likewise.
34212         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
34213         statements for possible use in SLP.
34214         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
34215         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
34216         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
34217         add new argument.
34218         (vectorizable_reduction): Likewise.
34219         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
34220         vect_get_slp_defs.
34221         (vectorizable_type_demotion, vectorizable_type_promotion,
34222         vectorizable_store): Likewise.
34223         (vect_analyze_stmt): Update call to vectorizable_reduction.
34224         (vect_transform_stmt): Likewise.
34225         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
34226         (vect_build_slp_tree): Fix indentation. Check that there are no loads
34227         from different interleaving chains in same node.
34228         (vect_slp_rearrange_stmts): New function.
34229         (vect_supported_load_permutation_p): Allow load permutations for
34230         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
34231         inside SLP nodes if necessary.
34232         (vect_analyze_slp_instance): Handle reductions.
34233         (vect_analyze_slp): Try to build SLP instances originating from groups
34234         of reductions.
34235         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
34236         (vect_get_constant_vectors): Create initial vectors for reductions
34237         according to reduction code. Add new argument.
34238         (vect_get_slp_defs): Add new argument, pass it to
34239         vect_get_constant_vectors.
34240         (vect_schedule_slp_instance): Remove SLP tree root statements.
34241
34242 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
34243
34244         * tree.h (ENUM_IS_SCOPED): Define.
34245         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
34246         for ENUM_IS_SCOPED enums.
34247
34248 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
34249
34250         * fold-const.c (fold_comparison): Use ssizetype.
34251         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
34252         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
34253         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
34254         * tree-object-size.c (compute_object_sizes): Use size_type_node.
34255
34256         * tree.h (initialize_sizetypes): Remove parameter.
34257         (build_common_tree_nodes): Remove second parameter.
34258         * stor-layout.c (initialize_sizetypes): Remove parameter.
34259         Always create an unsigned type.
34260         (set_sizetype): Assert that the passed type is unsigned and simplify.
34261         * tree.c (build_common_tree_nodes): Remove second parameter.
34262         Adjust call to initialize_sizetypes.
34263         * c-decl.c (c_init_decl_processing): Remove second argument in call to
34264         build_common_tree_nodes.
34265
34266 2010-04-18  Matthias Klose  <doko@ubuntu.com>
34267
34268         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
34269
34270 2010-04-18  Ira Rosen  <irar@il.ibm.com>
34271
34272         PR tree-optimization/43771
34273         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
34274         load permutation doesn't have gaps.
34275
34276 2010-04-18  Jan Hubicka  <jh@suse.cz>
34277
34278         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
34279         (sse_prologue_save_insn expander): Use new pattern.
34280         (sse_prologue_save_insn1): New pattern and splitter.
34281         (sse_prologue_save_insn): Update to deal also with 64bit aligned
34282         blocks.
34283         * i386.c (setup_incoming_varargs_64): Do not compute jump
34284         destination here.
34285         (ix86_gimplify_va_arg): Update alignment needed.
34286         (ix86_local_alignment): Do not align all local arrays to 128bit.
34287
34288 2010-04-17  Jan Hubicka  <jh@suse.cz>
34289
34290         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
34291
34292 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34293
34294         * arm.md (negdi2): Remove redundant code to force values into a
34295         register.
34296
34297 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34298
34299         * arm/bpabi.S: Add EABI alignment attributes to objects.
34300         * arm/bpabi-v6m.S: Likewise.
34301         * arm/crti.asm: Likewise.
34302         * arm/crtn.asm: Likewise.
34303         * arm/lib1funcs.asm: Likewise.
34304         * arm/libunwind.S: Likewise.
34305
34306 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
34307
34308         * arm-protos.h (tune_params): New structure.
34309         * arm.c (current_tune): New variable.
34310         (arm_constant_limit): Delete.
34311         (struct processors): Add pointer to the tune parameters.
34312         (arm_slowmul_tune): New tuning option.
34313         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
34314         (all_cores): Adjust to pick up the tuning model.
34315         (arm_constant_limit): New function.
34316         (arm_override_options): Select the appropriate tuning model.  Delete
34317         initialization of arm_const_limit.
34318         (arm_split_constant): Use the new constant-limit model.
34319         (arm_rtx_costs): Pick up the current tuning model.
34320         * arm.md (is_strongarm, is_xscale): Delete.
34321         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
34322         for Xscale variant architectures.
34323         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
34324
34325 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34326
34327         * config/arm/arm.c (arm_gen_constant): Remove unused variable
34328         can_shift.
34329         (arm_rtx_costs_1): Remove unused variable extra_cost.
34330         (arm_unwind_emit_set): Use variable offset.
34331         (thumb1_output_casesi): Remove unused variable flags.
34332
34333 2010-04-16  Jeff Law  <law@redhat.com>
34334
34335         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
34336         needing assignment rather than doing a two-phase assignment.  Remove
34337         unused variable 'm'.
34338
34339 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34340
34341         PR bootstrap/43767
34342         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
34343
34344 2010-04-16  Doug Kwan  <dougkwan@google.com>
34345
34346         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
34347         (next_operand_entry_id): New static variable.
34348         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
34349         (add_to_ops_vec): Assigned unique ID to operand entry.
34350         (struct oecount_s): New field ID.
34351         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
34352         (undistribute_ops_list): Assign unique IDs to oecounts.
34353         (init_reassoc): reset next_operand_entry_id.
34354
34355 2010-04-16  Doug Kwan  <dougkwan@google.com>
34356
34357         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
34358         missing left parenthesis.
34359
34360 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
34361
34362         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
34363         *btdi_rex64 using SWI48 mode iterator.
34364         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
34365         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
34366         *jcc_btdi_mask_rex64.
34367
34368 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
34369
34370         * double-int.h (tree_to_double_int): Convert to macro.
34371         * double-int.c (tree_to_double_int): Remove.
34372
34373 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34374
34375         PR debug/43762
34376         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
34377         with want_address 2 and in case a single element list might be
34378         possible, call it again with want_address 0.
34379
34380 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
34381
34382         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
34383         case 'W' print operands for HI mode.
34384         * config/h8300/h8300.h (Y0, Y2) : New constraints.
34385         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
34386         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
34387         * config/h8300/predicate.md (bit_register_indirect_operand): New.
34388
34389         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
34390
34391         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
34392         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
34393         #xx:3 and #xx:4 mode.
34394
34395         * config/h8300/h8300.md (inverted load with HImode dest): Add
34396         support for H8300SX.
34397
34398         * config/h8300/predicate.md (bit_operand): Allow immediate values that
34399         satisfy 'U' constraint.
34400
34401 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34402
34403         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
34404         * configure: Regenerate.
34405         * config.in: Regenerate.
34406         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
34407         works.
34408
34409 2010-04-16  Richard Guenther  <rguenther@suse.de>
34410
34411         * tree.h (struct tree_decl_minimal): Move pt_uid ...
34412         (struct tree_decl_common): ... here.
34413         (DECL_PT_UID): Adjust.
34414         (SET_DECL_PT_UID): Likewise.
34415         (DECL_PT_UID_SET_P): Likewise.
34416
34417 2010-04-16  Richard Guenther  <rguenther@suse.de>
34418
34419         PR tree-optimization/43572
34420         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
34421         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
34422         * tree-flow.h (is_call_clobbered): Remove.
34423         * tree-flow-inline.h (is_call_clobbered): Likewise.
34424         * tree-dfa.c (dump_variable): Do not dump call clobber state.
34425         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
34426         (execute_return_slot_opt): Adjust.
34427         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
34428         check for call clobbered vars here.
34429         (find_tail_calls): Move tailcall verification to the
34430         proper place.
34431
34432 2010-04-16  Diego Novillo  <dnovillo@google.com>
34433
34434         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
34435
34436 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34437
34438         PR target/40603
34439         * config/arm/arm.md (cbranchqi4): New pattern.
34440         * config/arm/predicates.md (const0_operand,
34441         cbranchqi4_comparison_operator): New predicates.
34442
34443 2010-04-16  Richard Guenther  <rguenther@suse.de>
34444
34445         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
34446         (dump_gimple_stmt): Likewise.
34447
34448 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
34449
34450         * recog.h (struct recog_data): New field is_operator.
34451         (struct insn_operand_data): New field is_operator.
34452         * recog.c (extract_insn): Set recog_data.is_operator.
34453         * genoutput.c (output_operand_data): Emit code to set the
34454         is_operator field.
34455         * reload.c (find_reloads): Use it rather than testing for an
34456         empty constraint string.
34457
34458         PR target/41514
34459         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
34460         If the previous insn is a cbranchsi4_insn with the same arguments,
34461         omit the compare instruction.
34462
34463         * config/arm/arm.md (addsi3_cbranch): If destination is a high
34464         register, inputs must be low registers and we need a low register
34465         scratch.  Handle alternative 2 like alternative 3.
34466
34467 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
34468
34469         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
34470         don't call get_addr on both.  If one expression is a VALUE and
34471         the other a REG, check VALUE's locs if the REG isn't among them.
34472
34473 2010-04-16  Christian Bruel  <christian.bruel@st.com>
34474
34475         * config/sh/sh.h (sh_frame_pointer_required): New function.
34476         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
34477         (flag_omit_frame_pointer) Set.
34478         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
34479         (rounded_frame_size): Adjust size with outgoing_args_size.
34480         (sh_set_return_address): Must return from stack pointer.
34481         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
34482         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
34483         (ACCUMULATE_OUTGOING_ARGS): Define.
34484         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
34485         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
34486
34487 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34488
34489         PR target/43471
34490         * config/sh/sh.c (sh_legitimize_reload_address): Use
34491         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
34492         Remove a unneeded check for offset_base.
34493
34494 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
34495
34496         * configure: Regenerated.
34497
34498 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34499
34500         * config/s390/s390.c (s390_call_save_register_used): Switch back
34501         to HARD_REGNO_NREGS.
34502
34503 2010-04-15  Richard Guenther  <rguenther@suse.de>
34504
34505         * alias.c (alias_set_subset_of): Handle alias-set zero
34506         child properly.
34507
34508 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
34509             Julian Brown  <julian@codesourcery.com>
34510
34511         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
34512         alternatives according to use of high and low regs.
34513         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
34514         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
34515         optimizing for size on Thumb-2.
34516
34517 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
34518
34519         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
34520
34521 2010-04-15  Richard Guenther  <rguenther@suse.de>
34522
34523         * tree-ssa-structalias.c (struct variable_info): Add
34524         is_fn_info flag.
34525         (new_var_info): Initialize it.
34526         (dump_constraints): Support printing last added constraints.
34527         (debug_constraints): Adjust.
34528         (dump_constraint_graph): Likewise.
34529         (make_heapvar_for): Check for NULL cfun.
34530         (get_function_part_constraint): New function.
34531         (get_fi_for_callee): Likewise.
34532         (find_func_aliases): Properly implement IPA PTA constraints.
34533         (process_ipa_clobber): New function.
34534         (find_func_clobbers): Likewise.
34535         (insert_into_field_list_sorted): Remove.
34536         (create_function_info_for): Properly allocate vars for IPA mode.
34537         Do not use insert_into_field_list_sorted.
34538         (create_variable_info_for): Properly generate constraints for
34539         global vars in IPA mode.
34540         (dump_solution_for_var): Always dump the solution.
34541         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
34542         (find_what_var_points_to): Adjust.
34543         (pt_solution_set): Change.
34544         (pt_solution_ior_into): New function.
34545         (pt_solution_empty_p): Export.
34546         (pt_solution_includes_global): Adjust.
34547         (pt_solution_includes_1): Likewise.
34548         (pt_solutions_intersect_1): Likewise.
34549         (dump_sa_points_to_info): Check some invariants.
34550         (solve_constraints): Move constraint dumping ...
34551         (compute_points_to_sets): ... here.
34552         (ipa_pta_execute): ... and here.
34553         (compute_may_aliases): Do not re-compute points-to info
34554         locally if IPA info is available.
34555         (ipa_escaped_pt): New global var.
34556         (ipa_pta_execute): Properly implement IPA PTA.
34557         * tree-into-ssa.c (dump_decl_set): Support dumping
34558         decls not in referenced-vars.
34559         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
34560         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
34561         (dump_points_to_solution): Likewise.
34562         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
34563         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
34564         (remap_gimple_stmt): Reset call clobber/use information if necessary.
34565         (copy_decl_to_var): Copy DECL_PT_UID.
34566         (copy_result_decl_to_var): Likewise.
34567         * tree.c (make_node_stat): Initialize DECL_PT_UID.
34568         (copy_node_stat): Copy it.
34569         * tree.h (DECL_PT_UID): New macro.
34570         (SET_DECL_PT_UID): Likewise.
34571         (DECL_PT_UID_SET_P): Likewise.
34572         (struct tree_decl_minimal): Add pt_uid member.
34573         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
34574         (pt_solution_empty_p): Declare.
34575         (pt_solution_set): Adjust.
34576         (ipa_escaped_pt): Declare.
34577         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
34578         * gimple-pretty-print.c (pp_points_to_solution): New function.
34579         (dump_gimple_call): Dump call clobber/use information.
34580         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
34581         * tree-pass.h (TDF_ALIAS): New dump option.
34582         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
34583         * doc/invoke.texi (-fipa-pta): Update documentation.
34584
34585 2010-04-15  Richard Guenther  <rguenther@suse.de>
34586
34587         * Makefile.in (OBJS-common): Add gimple-fold.o.
34588         (gimple-fold.o): New rule.
34589         * tree.h (maybe_fold_offset_to_reference,
34590         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
34591         prototypes ...
34592         * gimple.h: ... here.
34593         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
34594         may_propagate_address_into_dereference): Move prototypes ...
34595         * gimple.h: ... here.
34596         * tree-ssa-ccp.c (get_symbol_constant_value,
34597         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
34598         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
34599         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
34600         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
34601         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
34602         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
34603         gimplify_and_update_call_from_tree): Move ...
34604         * gimple-fold.c: ... here.  New file.
34605         (ccp_fold_builtin): Rename to ...
34606         (gimple_fold_builtin): ... this.
34607         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
34608
34609 2010-04-15  Richard Guenther  <rguenther@suse.de>
34610
34611         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
34612         fit_double_type, force_fit_type_double, add_double_with_sign,
34613         neg_double, mul_double_with_sign, lshift_double, rshift_double,
34614         lrotate_double, rrotate_double, div_and_round_double): Move ...
34615         * double-int.c: ... here.
34616         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
34617         add_double, neg_double, mul_double_with_sign, mul_double,
34618         lshift_double, rshift_double, lrotate_double, rrotate_double,
34619         div_and_round_double): Move prototypes ...
34620         * double-int.h: ... here.
34621
34622 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
34623
34624         PR target/43742
34625         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
34626         matching constraints to ensure inputs match the output.
34627
34628 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
34629
34630         PR target/43742
34631         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
34632         in an input-only operand.
34633
34634 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
34635
34636         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
34637         (double_int_not, double_int_lshift, double_int_rshift): Declare.
34638         (double_int_negative_p): Convert to static inline function.
34639         * double-int.c (double_int_lshift, double_int_lshift): New functions.
34640         (double_int_negative_p): Remove.
34641         * tree.h (lshift_double, rshift_double):
34642         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
34643         * fold-const.c (fold_convert_const_int_from_real,
34644         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
34645         (lshift_double): Change type of arith argument to bool.
34646         (rshift_double): Change type of arith argument to bool. Correct
34647         comment.
34648         * expmed.c (mask_rtx, lshift_value): (Ditto.).
34649
34650 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
34651
34652         PR target/21803
34653         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
34654         at the start and end of the then/else blocks, and omit them from the
34655         conversion.
34656         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
34657         argument; all callers changed.  Pass zero to old_insns_match_p instead.
34658         (flow_find_head_matching_sequence): New function.
34659         (old_insns_match_p): Check REG_EH_REGION notes for calls.
34660         * basic-block.h (flow_find_cross_jump,
34661         flow_find_head_matching_sequence): Declare functions.
34662
34663 2010-04-14  Jason Merrill  <jason@redhat.com>
34664
34665         PR c++/36625
34666         * c-common.c (attribute_takes_identifier_p): New fn.
34667         * c-common.h: Declare it.
34668
34669 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34670
34671         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
34672         splitter condition.
34673         (*udivmod<mode>4): Ditto.
34674
34675 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34676
34677         * config/i386/i386.md (maxmin_int): Rename code attribute from
34678         maxminiprefix and update all users.
34679         (maxmin_float): Ditto from maxminfprefix.
34680         (logic): Ditto from logicprefix.
34681         (absneg_mnemonic): Ditto from absnegprefix.
34682         * config/i386/mmx.md: Update all users of maxminiprefix,
34683         maxminfprefix and logicprefix for rename.
34684         * config/i386/sse.md: Ditto.
34685         * config/i386/sync.md (sync_<code><mode>): Update for
34686         logicprefix rename.
34687
34688 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34689
34690         PR 42966
34691         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
34692         warnings converted to errors.
34693
34694 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34695
34696         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
34697         used insn_type variable.
34698         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
34699         to avoid set-but-not-used warning.
34700
34701 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34702
34703         * df-core.c (df_ref_debug): Change format string placeholder
34704         from 0x%x to %#x.
34705         * dwarf2asm.c (dw2_asm_output_data_raw,
34706         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
34707         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
34708         * dwarf2out.c (output_cfi, output_cfi_directive,
34709         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
34710         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
34711         Ditto.
34712         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
34713         * print-rtl.c (print_rtx): Ditto.
34714
34715 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
34716
34717         PR middle-end/42694
34718         * builtins.c (expand_builtin_pow_root): New function to expand pow
34719         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
34720         series of sqrt and cbrt calls under -ffast-math.
34721         (expand_builtin_pow): Call it.
34722
34723 2010-04-14  Michael Matz  <matz@suse.de>
34724
34725         PR tree-optimization/42963
34726         * tree-cfg.c (touched_switch_bbs): New static variable.
34727         (group_case_labels_stmt): New function broken out from ...
34728         (group_case_labels): ... here, use the above.
34729         (start_recording_case_labels): Allocate touched_switch_bbs.
34730         (end_recording_case_labels): Deallocate it, call
34731         group_case_labels_stmt.
34732         (gimple_redirect_edge_and_branch): Remember index of affected BB.
34733
34734 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34735
34736         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
34737         from insn template.
34738
34739 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
34740
34741         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
34742
34743 2010-04-13  Jan Hubicka  <jh@suse.cz>
34744
34745         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
34746         of optimized out static functions.
34747         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
34748         cost computation.  Also sanity check for overflows.
34749         (update_caller_keys): Update cgraph_edge_badness call; properly
34750         update fibheap and sanity check that it is up to date.
34751         (add_new_edges_to_heap): Update cgraph_edge_badness.
34752         (cgraph_decide_inlining_of_small_function): Likewise;
34753         add sanity checking that badness in heap is up to date;
34754         improve dumping of reason; Update badness of calls to the
34755         offline copy of function currently inlined; dump badness
34756         of functions not inlined because of unit growth limits.
34757
34758 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34759
34760         PR middle-end/32628
34761         * c-common.c (pointer_int_sum): Disregard overflow that occured only
34762         because of sign-extension change when converting to sizetype here...
34763         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
34764
34765         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
34766         the folding to constants.  Remove redundant final conversion.
34767         (fold_binary) <associate>: Do not associate if the re-association of
34768         constants alone overflows.
34769         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
34770         to the end of the list.
34771         (multiple_of_p) <COND_EXPR>: New case.
34772
34773 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
34774
34775         * opt-functions.awk (opt_sanitized_name): New.
34776         (opt_enum): New.
34777         * optc-gen.awk: Use it
34778         * opth-gen.awk: Use it.
34779
34780 2010-04-13  Martin Jambor  <mjambor@suse.cz>
34781
34782         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
34783         (sra_modify_assign): Delete stmts loading dead data even if racc has no
34784         children.  Call replace_uses_with_default_def_ssa_name to handle
34785         SSA_NAES on lhs.
34786
34787 2010-04-13  Michael Matz  <matz@suse.de>
34788
34789         PR middle-end/43730
34790         * builtins.c (expand_builtin_interclass_mathfn): Also create
34791         a register if the predicate doesn't match.
34792
34793 2010-04-13  Diego Novillo  <dnovillo@google.com>
34794
34795         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
34796         * c-pch.c: Include timevar.h.
34797         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
34798         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
34799         * ggc-common.c: Include timevar.h.
34800         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
34801         * timevar.def (TV_PCH_SAVE): Define.
34802         (TV_PCH_CPP_SAVE): Define.
34803         (TV_PCH_PTR_REALLOC): Define.
34804         (TV_PCH_PTR_SORT): Define.
34805         (TV_PCH_RESTORE): Define.
34806         (TV_PCH_CPP_RESTORE): Define.
34807
34808 2010-04-13  Michael Matz  <matz@suse.de>
34809
34810         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
34811         into MINUS_EXPRs.
34812         (can_reassociate_p): New function.
34813         (break_up_subtract_bb, reassociate_bb): Use it.
34814
34815 2010-04-13  Richard Guenther  <rguenther@suse.de>
34816
34817         PR bootstrap/43737
34818         * builtins.c (c_readstr): Fix assert.
34819
34820 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
34821
34822         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
34823         when generating cltd insn.
34824
34825         (*ashl<mode>3_1): Remove special handling for register operand 2.
34826         (*ashlsi3_1_zext): Ditto.
34827         (*ashlhi3_1): Ditto.
34828         (*ashlhi3_1_lea): Ditto.
34829         (*ashlqi3_1): Ditto.
34830         (*ashlqi3_1_lea): Ditto.
34831         (*<shiftrt_insn><mode>3_1): Ditto.
34832         (*<shiftrt_insn>si3_1_zext): Ditto.
34833         (*<shiftrt_insn>qi3_1_slp): Ditto.
34834         (*<rotate_insn><mode>3_1): Ditto.
34835         (*<rotate_insn>si3_1_zext): Ditto.
34836         (*<rotate_insn>qi3_1_slp): Ditto.
34837
34838 2010-04-13  Richard Guenther  <rguenther@suse.de>
34839
34840         * tree-ssa-structalias.c (callused_id): Remove.
34841         (call_stmt_vars): New.
34842         (get_call_vi): Likewise.
34843         (lookup_call_use_vi): Likewise.
34844         (lookup_call_clobber_vi): Likewise.
34845         (get_call_use_vi): Likewise.
34846         (get_call_clobber_vi): Likewise.
34847         (make_transitive_closure_constraints): Likewise.
34848         (handle_const_call): Adjust to do per-call call-used handling.
34849         (handle_pure_call): Likewise.
34850         (find_what_var_points_to): Remove general callused handling.
34851         (init_base_vars): Likewise.
34852         (init_alias_vars): Initialize call_stmt_vars.
34853         (compute_points_to_sets): Process call-used and call-clobbered
34854         vars for call statements.
34855         (delete_points_to_sets): Free call_stmt_vars.
34856
34857 2010-04-13  Richard Guenther  <rguenther@suse.de>
34858
34859         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
34860         Only add RW dependence for dependence distance zero.
34861         Adjust maximal vectorization factor according to dependences.
34862         Move alignment handling ...
34863         (vect_find_same_alignment_drs): ... here.  New function.
34864         (vect_analyze_data_ref_dependences): Adjust.
34865         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
34866         (vect_analyze_data_refs): Adjust minimal vectorization factor
34867         according to data references.
34868         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
34869         dependences before determining the vectorization factor.
34870         Analyze alignment after determining the vectorization factor.
34871         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
34872         dependences before alignment.
34873         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
34874         Adjust prototype.
34875         (vect_analyze_data_refs): Likewise.
34876         (MAX_VECTORIZATION_FACTOR): New define.
34877
34878 2010-04-13  Duncan Sands  <baldrick@free.fr>
34879
34880         * except.h (lang_eh_type_covers): Remove.
34881         * except.c (lang_eh_type_covers): Likewise.
34882
34883 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34884             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
34885
34886         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
34887         * config/s390/s390.c: Replace UNTIS_PER_WORD with
34888         UNITS_PER_LONG where it is ABI relevant.
34889         (s390_return_addr_rtx): Likewise.
34890         (s390_back_chain_rtx): Likewise.
34891         (s390_frame_area): Likewise.
34892         (s390_frame_info): Likewise.
34893         (s390_initial_elimination_offset): Likewise.
34894         (save_gprs): Likewise.
34895         (s390_emit_prologue): Likewise.
34896         (s390_emit_epilogue): Likewise.
34897         (s390_function_arg_advance): Likewise.
34898         (s390_function_arg): Likewise.
34899         (s390_va_start): Likewise.
34900         (s390_gimplify_va_arg): Likewise.
34901         (s390_function_profiler): Likewise.
34902         (s390_optimize_prologue): Likewise.
34903         (s390_rtx_costs): Likewise.
34904         (s390_secondary_reload): Likewise.
34905         (s390_promote_function_mode): Likewise.
34906         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
34907         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
34908         registers available.
34909         (s390_unwind_word_mode): New function.
34910         (s390_function_value): Split 64 bit values into register pair if
34911         used as return value.
34912         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
34913         function call parameters.  Handle parallels.
34914         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
34915         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
34916         (DWARF_CIE_DATA_ALIGNMENT): New macro.
34917         (s390_expand_setmem): Remove unused variable src_addr.
34918         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
34919         deal with 64 bit registers.
34920         * config/s390/s390.h: Define __zarch__ predefined macro.
34921         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
34922         (UNITS_PER_LONG): New macro.
34923         * libjava/include/s390-signal.h: Define extended ucontext
34924         structure containing the upper halfs of the 64 bit registers.
34925
34926 2010-04-13  Simon Baldwin  <simonb@google.com>
34927
34928         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
34929
34930 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
34931
34932         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
34933         rvalue on the RHS if the LHS is of a non-renamable type.
34934         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
34935
34936 2010-04-13  Matthias Klose  <doko@ubuntu.com>
34937
34938         * gcc.c (cc1_options): Handle -iplugindir before processing
34939         the cc1 spec. Only add -iplugindir once.
34940         (cpp_unique_options): Add -iplugindir option if -fplugin* options
34941         found.
34942         * common.opt (iplugindir): Remove `Separate' property, initialize.
34943         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
34944         option.
34945         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
34946         (distclean): Remove plugin dir.
34947         * doc/invoke.texi: Document -iplugindir.
34948
34949 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
34950
34951         * doc/plugins.texi (Loading Plugins): Document short
34952         -fplugin=foo option.
34953         (Plugin API): Mention default_plugin_dir_name function.
34954
34955         * gcc.c (find_file_spec_function): Add new declaration.
34956         (static_spec_func): Use it for "find-file".
34957         (find_file_spec_function): Add new function.
34958         (cc1_options): Add -iplugindir option if -fplugin* options found.
34959
34960         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
34961
34962         * plugin.c (add_new_plugin): Updated comment, and handle short
34963         plugin name.
34964         (default_plugin_dir_name): Added new function.
34965
34966         * common.opt (iplugindir): New option to set the plugin directory.
34967
34968 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
34969
34970         * config/i386/i386.md (any_rotate): New code iterator.
34971         (rotate_insn): New code attribute.
34972         (rotate): Ditto.
34973         (SWIM124): New mode iterator.
34974         (<rotate_insn>ti3): New expander.
34975         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
34976         any_rotate code iterator.
34977         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
34978         using any_rotate code iterator and SWIM124 mode iterator.
34979         (ix86_rotlti3): New insn_and_split pattern.
34980         (ix86_rotrti3): Ditto.
34981         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
34982         ix86_rotl{di,ti}3 patterns.
34983         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
34984         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
34985         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
34986         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
34987         code iterator and SWI mode iterator.
34988         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
34989         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
34990         code iterator.
34991         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
34992         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
34993         (bswap rotatert splitter): Add splitter.
34994         (bswap splitter): Macroize splitter using any_rotate code iterator.
34995         Add insn predicate to split only for TARGET_USE_XCHGB or when
34996         optimizing function for size.
34997
34998 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
34999
35000         * config/pa/pa.c (emit_move_sequence): Remove use of
35001         deleted variable flag_argument_noalias.
35002
35003 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35004
35005         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
35006         configurations.
35007         Add to unsupported targets list.
35008         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
35009         sparc*-sun-solaris2.[567]* from target lists.
35010         * configure: Regenerate.
35011         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
35012         removal.
35013         Remove Solaris 7 patch references.
35014         (Specific, sparc-sun-solaris2.7): Removed.
35015         (sparc-sun-solaris2*): Update Solaris 7 example.
35016         (sparc64-*-solaris2*): Likewise.
35017
35018 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35019
35020         * config.build (alpha*-dec-osf4*): Remove.
35021         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
35022         of obsolete configurations.
35023         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
35024         support.
35025         * config/alpha/t-osf4: Renamed to ...
35026         * config/alpha/t-osf5: ... this.
35027         * config/alpha/osf.h: Renamed to ...
35028         * config/alpha/osf5.h: ... this.
35029         Merged old osf5.h contents.
35030         Update comments.
35031         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
35032         (EXTRA_SPECS): Removed.
35033         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
35034         reflect removal of Tru64 UNIX V4.0/V5.0 support.
35035         Document that.
35036
35037 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35038
35039         * doc/contrib.texi (Contributors, Rainer Orth): Update.
35040
35041 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
35042
35043         PR/43702
35044         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
35045         __thiscall convention.
35046
35047 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
35048
35049         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
35050         orig_base.
35051         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
35052
35053 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
35054
35055         * function.c (assign_parms_initialize_all): Add unused attribute
35056         to fntype.
35057
35058 2010-04-12  Richard Guenther  <rguenther@suse.de>
35059
35060         * gsstruct.def (GSS_CALL): New.
35061         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
35062         * gimple.h: Include tree-ssa-alias.h.
35063         (struct gimple_statement_call): New.
35064         (union gimple_statement_struct_d): Add gimple_call member.
35065         (gimple_call_reset_alias_info): Declare.
35066         (gimple_call_use_set): New function.
35067         (gimple_call_clobber_set): Likewise.
35068         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
35069         * gimple.c (gimple_call_reset_alias_info): New function.
35070         (gimple_build_call_1): Call it.
35071         * lto-streamer-in.c (input_gimple_stmt): Likewise.
35072         * tree-inline.c (remap_gimple_stmt): Likewise.
35073         (expand_call_inline): Remove callused handling.
35074         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
35075         * tree-dfa.c (dump_variable): Likewise.
35076         * tree-parloops.c (parallelize_loops): Likewise.
35077         * tree-ssa.c (init_tree_ssa): Likewise.
35078         (delete_tree_ssa): Likewise.
35079         * tree-flow-inline.h (is_call_used): Remove.
35080         * tree-flow.h (struct gimple_df): Remove callused member.
35081         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
35082         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
35083         (ref_maybe_used_by_call_p_1): Simplify.
35084         (call_may_clobber_ref_p_1): Likewise.
35085         * tree-ssa-structalias.c (compute_points_to_sets): Set
35086         the call stmt used and clobbered sets.
35087         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
35088         (find_tail_calls): Verify the tail call.
35089
35090 2010-04-12  Richard Guenther  <rguenther@suse.de>
35091
35092         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
35093         single-iteration always-inline inlining.
35094         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
35095         (cgraph_decide_inlining): Do not handle always-inline specially.
35096         (try_inline): Remove always-inline cycle detection special case.
35097         Do not recurse on always-inlines.
35098         (cgraph_early_inlining): Do not iterate if not optimizing.
35099         (cgraph_gate_early_inlining): remove.
35100         (pass_early_inline): Run unconditionally.
35101         (gate_cgraph_decide_inlining): New function.
35102         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
35103         not inlining or optimizing.
35104         (cgraph_decide_inlining_of_small_functions): Also consider
35105         always-inline functions.
35106         (cgraph_default_inline_p): Return true for nodes which should
35107         disregard inline limits.
35108         (estimate_function_body_sizes): Assume zero size and time for
35109         nodes which are marked as disregarding inline limits.
35110         (cgraph_decide_recursive_inlining): Do not perform recursive
35111         inlining on always-inline nodes.
35112
35113 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
35114
35115         PR bootstrap/43699
35116         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
35117         for exprs satisfying handled_component_p.
35118
35119 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
35120
35121         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
35122         non-constant aggregate elements.
35123
35124         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
35125         is a real initialization.
35126
35127 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
35128
35129         PR c/36774
35130         * c-decl.c (start_function): Move forward check for nested function.
35131
35132 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
35133
35134         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
35135         * config/sh/sh.c: Include reload.h.
35136         (sh_legitimize_reload_address): New.
35137         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
35138         sh_legitimize_reload_address.
35139
35140 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
35141
35142         * config/sh/sh.md (*movqi_pop): New insn pattern.
35143         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
35144
35145 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35146
35147         * config/i386/i386.md (any_shiftrt): New code iterator.
35148         (shiftrt_insn): New code attribute.
35149         (shiftrt): Ditto.
35150         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
35151         using any_shiftrt code iterator.
35152         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
35153         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
35154         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
35155         pattern from corresponding peephole2 patterns.
35156         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
35157         using any_shiftrt code iterator.
35158         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
35159         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
35160         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
35161         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
35162         *{ashr,lshr}<mode>3_cmp_zext.
35163         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
35164
35165 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35166
35167         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
35168         scratch register.
35169         (*lshr<mode>3_cconly): Ditto.
35170
35171 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
35172
35173         * config/i386/i386.md (lshr<mode>3): Macroize expander from
35174         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
35175         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35176         pattern from *lshr{di,ti}3_1 and corresponding splitters using
35177         DWI mode iterator.
35178         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
35179         from corresponding peephole2 patterns.
35180         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
35181         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
35182         and *lshrdi3_1_rex64 using SWI mode iterator.
35183         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
35184         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
35185         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
35186         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
35187         and *lshrdi3_cmp_rex64 using SWI mode iterator.
35188         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
35189         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
35190         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
35191         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
35192         SWI mode iterator.
35193
35194 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
35195
35196         * config/i386/i386.md (ashr<mode>3): Macroize expander from
35197         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
35198         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35199         pattern from *ashr{di,ti}3_1 and corresponding splitters using
35200         DWI mode iterator.
35201         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
35202         from corresponding peephole2 patterns.
35203         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
35204         (ashrsi3_cvt): Rename from ashrsi3_31.
35205         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
35206         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
35207         and x86_64_shift_adj_3 using SWI48 mode iterator.
35208         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
35209         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
35210         and *ashrdi3_1_rex64 using SWI mode iterator.
35211         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
35212         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
35213         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
35214         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
35215         and *ashrdi3_cmp_rex64 using SWI mode iterator.
35216         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
35217         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
35218         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
35219         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
35220         SWI mode iterator.
35221         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
35222         * config/i386/i386.c (ix86_split_ashr): Update for renamed
35223         x86_shift<mode>_adj_3 expanders.
35224
35225 2010-04-10  Wei Guozhi  <carrot@google.com>
35226
35227         PR target/42601
35228         * config/arm/arm.c (arm_pic_static_addr): New function.
35229         (legitimize_pic_address): Call arm_pic_static_addr when it detects
35230         a static symbol.
35231         (arm_output_addr_const_extra): Output expression for new pattern.
35232         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
35233
35234 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
35235
35236         * ira-costs.c (record_reg_classes): Ignore alternatives that are
35237         not enabled.
35238
35239         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
35240         * web.c: Include "insn-config.h" and "recog.h".
35241         (union_match_dups): New function.
35242         (web_main): Call it.
35243         (union_defs): Don't try to recognize match_dups.
35244
35245         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
35246         if doing so would replace the entire pattern.
35247
35248 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35249
35250         PR target/43707
35251         PR target/43709
35252         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
35253         and splitter pattern.  Change splitter operand 1 predicate to
35254         nonmemory_operand.
35255
35256 2010-04-09  Martin Jambor  <mjambor@suse.cz>
35257
35258         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
35259         lattices are addresses of CONST_DECLs with the same initial value.
35260         (ipcp_print_all_lattices): Print values of CONST_DECLs.
35261         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
35262
35263 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
35264             Bernd Schmidt  <bernds@codesourcery.com>
35265
35266         * loop-invariant.c (replace_uses): New static function.
35267         (move_invariant_reg): Use it to ensure we can replace the uses.
35268
35269 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
35270
35271         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
35272         function template.
35273         (picochip_override_options): Enable section anchors only above -O1.
35274         (picochip_reorg): Fixed a couple of build warnings.
35275
35276 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35277
35278         * configure.ac (plugin -rdynamic test): Log result.
35279         * configure: Regenerate.
35280         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
35281         (RDYNAMIC_SPEC): Define.
35282         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
35283
35284 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35285
35286         * configure.ac: Determine Sun ld version numbers.
35287         (comdat_group): Restrict GNU ld version checks to gld.
35288         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
35289         (enable_comdat): Support --enable-comdat.
35290         * configure: Regenerate.
35291         * doc/install.texi (Configuration): Document --enable-comdat.
35292
35293 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35294
35295         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
35296         * config/sol2-gld.h: ... here.
35297         * config.gcc (sparc*-*-solaris2*): Reflect this.
35298         (i[34567]86-*-solaris2*): Use it.
35299
35300 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
35301
35302         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
35303         setup_clocks_p.
35304         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
35305
35306 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35307
35308         PR 42965
35309         * diagnostic.c (diagnostic_initialize): Initialize
35310         some_warnings_are_errors.
35311         (diagnostic_finish): New.
35312         (diagnostic_action_after_output): Call it before exiting.
35313         (diagnostic_report_diagnostic): Do not print message here. Set
35314         some_warnings_are_errors.
35315         * diagnostic.h (diagnostic_context): Delete
35316         issue_warnings_are_errors_message. Add some_warnings_are_errors.
35317         (diagnostic_finish): Declare.
35318         * toplev.c (toplev_main): Call it before exit.
35319
35320 2010-04-09  Jason Merrill  <jason@redhat.com>
35321
35322         PR c++/42623
35323         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
35324         for incomplete type.
35325
35326         PR c++/41788
35327         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
35328         based on a warning flag.
35329
35330 2010-04-09  Richard Guenther  <rguenther@suse.de>
35331
35332         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
35333
35334 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
35335
35336         PR bootstrap/43684
35337         * varasm.c (default_assemble_visibility): Wrap vars that are
35338         set, but unused, by targets without GAS.
35339         * config/rs6000/rs6000.c (paired_emit_vector_compare):
35340         Remove set, but unused, vars.
35341         (rs6000_legitimize_tls_address): Likewise.
35342         (altivec_expand_dst_builtin): Likewise.
35343         * config/darwin.c (machopic_classify_symbol): Likewise.
35344         (machopic_indirection_name): Likewise.
35345
35346 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
35347
35348         * config/i386/i386.md (DWI): New mode iterator.
35349         (S): New mode attribute.
35350         (shift_operand): Ditto.
35351         (shift_immediate_operand): Ditto.
35352         (ashl_input_operand): Ditto.
35353         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
35354         using SDWIM mode iterator.
35355         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
35356         pattern from *ashl{di,ti}3_1 and corresponding splitters using
35357         DWI mode iterator.
35358         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
35359         from corresponding peephole2 patterns.
35360         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
35361         and x86_64_shift_adj_1 using SWI48 mode iterator.
35362         (x86_shift<mode>_adj_2): Ditto.
35363         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
35364         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
35365         using SWI48 mode iterator.
35366         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
35367         *ashldi3_cmp_rex64 using SWI mode iterator.
35368         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
35369         *ashldi3_cconly_rex64 using SWI mode iterator.
35370         * config/i386/i386.c (ix86_split_ashl): Update for renamed
35371         x86_shift<mode>_adj_{1,2}.
35372         (ix86_split_ashr): Ditto.
35373         (ix86_split_lshr): Ditto.
35374
35375 2010-04-09  Richard Guenther  <rguenther@suse.de>
35376
35377         * target.h (builtin_conversion): Pass in input and output types.
35378         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
35379         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
35380         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
35381         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
35382
35383         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
35384         Handle AVX modes.
35385         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
35386
35387 2010-04-09  Richard Guenther  <rguenther@suse.de>
35388
35389         PR target/43152
35390         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
35391
35392 2010-04-09  Richard Guenther  <rguenther@suse.de>
35393
35394         * tree-vectorizer.h (struct _stmt_vec_info): Document
35395         that vectype is the type of the LHS.
35396         (supportable_widening_operation, supportable_narrowing_operation):
35397         Get both input and output vector types as arguments.
35398         (vect_is_simple_use_1): Declare.
35399         (get_same_sized_vectype): Likewise.
35400         * tree-vect-loop.c (vect_determine_vectorization_factor):
35401         Set STMT_VINFO_VECTYPE to the vector type of the def.
35402         (vectorizable_reduction): Adjust.
35403         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
35404         Adjust.  Specify the output vector type.
35405         (vect_pattern_recog_1): Adjust.
35406         * tree-vect-stmts.c (get_same_sized_vectype): New function.
35407         (vectorizable_call): Adjust.
35408         (vectorizable_conversion): Likewise.
35409         (vectorizable_operation): Likewise.
35410         (vectorizable_type_demotion): Likewise.
35411         (vectorizable_type_promotion): Likewise.
35412         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
35413         the def.
35414         (vect_is_simple_use_1): New function.
35415         (supportable_widening_operation): Get both input and output
35416         vector types.
35417         (supportable_narrowing_operation): Likewise.
35418         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
35419
35420 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
35421
35422         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
35423         __thiscall and _thiscall as predefined macros.
35424         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
35425         thiscall attribute handling.
35426         (ix86_comp_type_attributes): Likewise.
35427         (ix86_function_regparm): Likewise.
35428         (ix86_return_pops_args): Likewise.
35429         (init_cumulative_args): Likewise.
35430         (find_drap_reg): Likewise.
35431         (ix86_static_chain): Likewise.
35432         (x86_this_parameter): Likewise.
35433         (x86_output_mi_thunk): Likewise.
35434         (ix86_attribute_table): Add description for thiscall attribute.
35435         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
35436         * doc/extend.texi: Add documentation for thiscall.
35437
35438 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35439
35440         PR c++/28584
35441         * c.opt (Wint-to-pointer-cast): Available in C++.
35442         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
35443
35444 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
35445
35446         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
35447         * calls.c (expand_call): Pass the function type to aggregate_value_p.
35448         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
35449         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
35450         function type instead.  Reorder and simplify checks.
35451
35452         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
35453
35454 2010-04-08  Jing Yu  <jingyu@google.com>
35455             Zdenek Dvorak  <ook@ucw.cz>
35456
35457         PR tree-optimization/42720
35458         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
35459         loop unswitch conditions here from ...
35460         (tree_unswitch_single_loop): ... here.
35461
35462 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35463
35464         * tree-if-conv.c: Fix comments and simplify logic.
35465
35466 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
35467
35468         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
35469         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
35470         (main_tree_if_conversion): Update call to tree_if_conversion.
35471
35472 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
35473
35474         PR 42485
35475         * doc/invoke.texi (-b,-V): Delete.
35476         * doc/tm.texi: Do not mention -b.
35477         * gcc.c (display_help): Delete -b and -V.
35478         (process_command): Delete -b and -V.
35479         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
35480
35481 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
35482             Wolfgang Gellerich  <gellerich@de.ibm.com>
35483
35484         Implement target hook for loop unrolling
35485         * target.h (loop_unroll_adjust): Add a new target hook function.
35486         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
35487         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
35488         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
35489         (s390_loop_unroll_adjust): Implement the new target hook for s390.
35490         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
35491         target hook.
35492         (decide_unroll_stupid): Likewise.
35493
35494 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35495
35496         PR target/43643
35497         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
35498
35499 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35500
35501         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
35502         (Specific, *-*-solaris2*): Likewise.
35503         Don't prefer Sun as over GNU as.
35504
35505 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
35506
35507         * config/s390/s390.c (override_options): Adjust the z10 defaults
35508         for max-unroll-times, max-completely-peeled-insns
35509         and max-completely-peel-times.
35510
35511 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
35512
35513         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
35514         instructions for z10.
35515         (s390_expand_setmem): Likewise.
35516         (s390_expand_cmpmem): Likewise.
35517
35518 2010-04-08  Richard Guenther  <rguenther@suse.de>
35519
35520         PR tree-optimization/43679
35521         * tree-ssa-pre.c (eliminate): Only propagate copies.
35522
35523 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35524
35525         PR bootstrap/43681
35526         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
35527         set but not used variable warning.
35528
35529 2010-04-08  Wei Guozhi  <carrot@google.com>
35530
35531         PR target/41653
35532         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
35533         (arm_size_rtx_costs): Call the new function when optimized for size.
35534
35535 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
35536
35537         PR debug/43670
35538         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
35539         op0 is not a MEM, just return NULL instead of assertion
35540         failure.
35541         (discover_nonconstant_array_refs): Don't walk debug stmts.
35542
35543 2010-04-08  Doug Kwan  <dougkwan@google.com>
35544
35545         * configure.ac: Recognize gold and do not use its version number
35546         to test ld features.
35547         * configure: Regenerate.
35548
35549 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
35550
35551         PR middle-end/40815
35552         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
35553         (negate_value): Move code to push elements to broken_up_substracts ...
35554         (eliminate_plus_minus_pair): ... here.  Push operands that have no
35555         negative pair to plus_negates.
35556         (repropagate_negates, init_reassoc, fini_reassoc): Update.
35557
35558 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35559
35560         * doc/install.texi (Configuration): Move description of
35561         --enable-lto, --with-libelf*, --enable-gold from Java section to
35562         general section.
35563
35564         * doc/generic.texi (Working with declarations)
35565         (Function Properties, C and C++ Trees): Fix typos.
35566         * doc/sourcebuild.texi (Top Level): Likewise.
35567
35568 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35569
35570         PR c/18624
35571         * tree.h (DECL_READ_P): Define.
35572         (struct tree_decl_common): Add decl_read_flag.
35573         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
35574         a set but not used warning.
35575         (merge_decls): Merge DECL_READ_P flag.
35576         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
35577         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
35578         * c-common.c (handle_used_attribute, handle_unused_attribute):
35579         Likewise.
35580         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
35581         New prototypes.
35582         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
35583         New functions.
35584         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
35585         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
35586         c_parser_binary_expression, c_parser_cast_expression,
35587         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
35588         Call default_function_array_read_conversion instead of
35589         default_function_array_conversion where needed.
35590         (c_parser_unary_expression, c_parser_conditional_expression,
35591         c_parser_postfix_expression_after_primary, c_parser_initelt):
35592         Likewise.  Call mark_exp_read where needed.
35593         (c_parser_statement_after_labels, c_parser_asm_operands,
35594         c_parser_typeof_specifier, c_parser_sizeof_expression,
35595         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
35596         where needed.
35597         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
35598         New.
35599         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
35600         (warn_unused_but_set_parameter): Default to warn_unused
35601         && extra_warnings.
35602         * doc/invoke.texi: Document -Wunused-but-set-variable and
35603         -Wunused-but-set-parameter.
35604
35605         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
35606         used count variable.
35607         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
35608         when operandN variables aren't used in the body of the expander
35609         or splitter.
35610         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
35611         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
35612         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
35613         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
35614         FOR_EACH_IMM_USE_ON_STMT): Likewise.
35615         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
35616         * tree.c (PROCESS_ARG): Likewise.
35617
35618 2010-04-07  Simon Baldwin  <simonb@google.com>
35619
35620         * diagnostic.h (diagnostic_override_option_index): New macro to
35621         set a diagnostic's option_index.
35622         * c-tree.h (c_cpp_error): Add warning reason argument.
35623         * opts.c (_warning_as_error_callback): New.
35624         (register_warning_as_error_callback): Store callback for
35625         warnings enabled via enable_warning_as_error.
35626         (enable_warning_as_error): Call callback, minor code tidy.
35627         * opts.h (register_warning_as_error_callback): Declare.
35628         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
35629         response to -Werror=.
35630         (c_common_init_options): Register warning_as_error_callback in opts.c.
35631         * common.opt: Add -Wno-cpp option.
35632         * c-common.c (struct reason_option_codes_t): Map cpp warning
35633         reason codes to gcc option indexes.
35634         * (c_option_controlling_cpp_error): New function, lookup the gcc
35635         option index for a cpp warning reason code.
35636         * (c_cpp_error): Add warning reason argument, call
35637         c_option_controlling_cpp_error for diagnostic_override_option_index.
35638         * doc/invoke.texi: Document -Wno-cpp.
35639
35640 2010-04-07  Richard Guenther  <rguenther@suse.de>
35641
35642         * ipa-reference.c (mark_load): Use get_base_address.
35643         (mark_store): Likewise.
35644
35645         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
35646         inserting GIMPLE_NOPs into the IL.
35647         * tree-ssa-structalias.c (get_constraint_for_component_ref):
35648         Explicitly strip handled components and indirect references.
35649
35650         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
35651         folding address expressions.
35652         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
35653         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
35654         operand_equal_p to compare decls.
35655         (ptr_deref_may_alias_decl_p): Likewise.
35656         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
35657         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
35658         Handle reversed comparison ops.
35659         * tree-sra.c (asm_visit_addr): Use get_base_address.
35660         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
35661         * ipa-reference.c (mark_address): Use get_base_address.
35662
35663 2010-04-07  Richard Guenther  <rguenther@suse.de>
35664
35665         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
35666         Propagate constants everywhere.
35667
35668 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
35669
35670         PR debug/43516
35671         * tree.c (MAX_INT_CACHED_PREC): Define.
35672         (nonstandard_integer_type_cache): New array.
35673         (build_nonstandard_integer_type): Cache results for precision
35674         <= MAX_INT_CACHED_PREC.
35675
35676 2010-04-07  Richard Guenther  <rguenther@suse.de>
35677
35678         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
35679         -fargument-noalias-global, -fargument-noalias-anything): Remove.
35680         * common.opt: Likewise.
35681         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
35682         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
35683         (nonoverlapping_memrefs_p): Likewise.
35684         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
35685         * opts.c (common_handle_option): Handle OPT_fargument_alias,
35686         OPT_fargument_noalias, OPT_fargument_noalias_anything and
35687         OPT_fargument_noalias_global for backward compatibility.
35688
35689 2010-04-07  Richard Guenther  <rguenther@suse.de>
35690
35691         PR tree-optimization/43270
35692         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
35693         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
35694         * tree-ssa-pre.c (phi_translate_1): Adjust.
35695         (fully_constant_expression): Split out vn_reference handling to ...
35696         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
35697         Fold reads from constant strings.
35698         (vn_reference_lookup): Handle fully constant references.
35699         (vn_reference_lookup_pieces): Likewise.
35700         * Makefile.in (expmed.o-warn): Add -Wno-error.
35701
35702 2010-04-07  Martin Jambor  <mjambor@suse.cz>
35703
35704         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
35705
35706 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
35707
35708         PR driver/41594
35709         * gcc.c: Add -static-libstdc++ to list of recognized options.
35710
35711 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35712
35713         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
35714
35715 2010-04-07  Richard Guenther  <rguenther@suse.de>
35716
35717         PR middle-end/42617
35718         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
35719         bases build simple mem attributes to retain points-to information.
35720
35721 2010-04-07  Richard Guenther  <rguenther@suse.de>
35722
35723         PR middle-end/42617
35724         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
35725         preserve points-to related information.
35726
35727 2010-04-07  Richard Guenther  <rguenther@suse.de>
35728
35729         PR middle-end/42617
35730         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
35731         discard plain indirect references.
35732         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
35733         * tree.c (tree_nop_conversion): Likewise.
35734
35735 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
35736
35737         PR debug/43628
35738         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
35739
35740 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
35741
35742         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
35743         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
35744
35745 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35746
35747         * tree-if-conv.c: Fix indentation and comments.
35748
35749 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35750
35751         * tree-if-conv.c: Sort static functions in topological order.
35752
35753 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
35754
35755         * tree-if-conv.c: Fix indentation and comments.
35756
35757 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35758
35759         PR middle-end/43519
35760         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
35761         lang_hooks.types.type_for_size instead of
35762         build_nonstandard_integer_type.
35763         When converting an unsigned type to signed, double its precision.
35764         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
35765         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
35766         (graphite_create_new_loop_guard): When ub + 1 wraps around,
35767         use lb <= ub.
35768
35769 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35770
35771         PR middle-end/43519
35772         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
35773         POINTER_PLUS_EXPR for pointer types.
35774
35775 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35776
35777         PR middle-end/43519
35778         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
35779         * graphite-clast-to-gimple.c: Include langhooks.h.
35780         (max_signed_precision_type): New.
35781         (max_precision_type): Takes two types as arguments.
35782         (precision_for_value): New.
35783         (precision_for_interval): New.
35784         (gcc_type_for_interval): New.
35785         (gcc_type_for_value): New.
35786         (gcc_type_for_clast_term): New.
35787         (gcc_type_for_clast_red): New.
35788         (gcc_type_for_clast_bin): New.
35789         (gcc_type_for_clast_expr): Split up into several functions.
35790         (gcc_type_for_clast_eq): Rewritten.
35791         (compute_bounds_for_level): New.
35792         (compute_type_for_level_1): New.
35793         (compute_type_for_level): New.
35794         (gcc_type_for_cloog_iv): Removed.
35795         (gcc_type_for_iv_of_clast_loop): Rewritten.
35796         (graphite_create_new_loop): Compute the lower and upper bound types
35797         with gcc_type_for_clast_expr.
35798         (graphite_create_new_loop_guard): Same.
35799         (find_cloog_iv_in_expr): Removed.
35800         (compute_cloog_iv_types_1): Removed.
35801         (compute_cloog_iv_types): Removed.
35802         (gloog): Do not call compute_cloog_iv_types.
35803         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
35804         GBB_CLOOG_IV_TYPES.
35805         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
35806         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
35807         (GBB_CLOOG_IV_TYPES): Removed.
35808
35809 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35810
35811         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
35812         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
35813         (detect_commutative_reduction): Same.
35814
35815 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35816
35817         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
35818         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
35819         argument.
35820         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
35821         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
35822         (rewrite_commutative_reductions_out_of_ssa): Same.
35823         * passes.c (execute_function_todo): Call verify_ssa for every pass
35824         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
35825         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
35826         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
35827         with an extra argument.
35828         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
35829         verify_ssa only when the extra argument is true.
35830         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
35831         with an extra argument.
35832         (tree_transform_and_unroll_loop): Same.
35833
35834 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
35835
35836         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
35837         for all the passes of the LNO having LOOP_CLOSED_SSA.
35838         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
35839         * tree-loop-distribution.c (pass_loop_distribution): Same.
35840         * tree-pass.h (TODO_verify_loops): Removed.
35841         * tree-ssa-loop.c (pass_tree_loop_init): Same.
35842         (pass_lim): Same.
35843         (pass_tree_unswitch): Same.
35844         (pass_predcom): Same.
35845         (pass_vectorize): Same.
35846         (pass_linear_transform): Same.
35847         (pass_graphite_transforms): Same.
35848         (pass_iv_canon): Same.
35849         (pass_complete_unroll): Same.
35850         (pass_complete_unrolli): Same.
35851         (pass_parallelize_loops): Same.
35852         (pass_loop_prefetch): Same.
35853         (pass_iv_optimize): Same.
35854
35855 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
35856
35857         PR middle-end/32824
35858         * passes.c (init_optimization_passes): Move pass_lim before
35859         pass_copy_prop and pass_dce_loop.
35860
35861 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35862
35863         PR target/43667
35864         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
35865         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
35866         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
35867         MULTI_* defines for 4 argument vpermil2p* builtins.
35868
35869 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35870
35871         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
35872         * config/i386/i386.c (x86_maybe_negate_const_int): New.
35873         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
35874         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
35875         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
35876         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
35877         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
35878         Use x86_maybe_negate_const_int to output insn mnemonic.
35879         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
35880         check from instruction predicate.  Update comments.
35881         * config/i386/sync.md (sync_add<mode>): Use
35882         x86_maybe_negate_const_int to output insn mnemonic.
35883
35884 2010-04-06  Jan Hubicka  <jh@suse.cz>
35885
35886         PR tree-optimization/42906
35887         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
35888         IGNORE_SELF argument.  Set visited_control_parents for fully
35889         processed BBs.
35890         (find_obviously_necessary_stmts): Update call of
35891         mark_control_dependent_edges_necessary.
35892         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
35893
35894 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
35895
35896         * config/i386/i386.md: Remove comment about 'e' and 'E'
35897         operand modifier.
35898
35899 2010-04-06  Richard Guenther  <rguenther@suse.de>
35900
35901         PR tree-optimization/43627
35902         * tree-vrp.c (extract_range_from_unary_expr): Widenings
35903         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
35904         not varying.
35905
35906 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
35907
35908         * BASE-VER: Change to 4.6.0.
35909
35910         PR target/43638
35911         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
35912         handling.
35913
35914 2010-04-06  Richard Guenther  <rguenther@suse.de>
35915
35916         PR middle-end/43661
35917         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
35918
35919 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35920
35921         * doc/invoke.texi (Optimize Options): Document that LTO
35922         won't remove object access purely due to incompatible
35923         declarations.
35924
35925 2010-04-04  Matthias Klose  <doko@ubuntu.com>
35926
35927         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
35928         Initialize variable.
35929
35930 2010-04-03  Richard Guenther  <rguenther@suse.de>
35931
35932         PR middle-end/42509
35933         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
35934         require a non-NULL MEM_OFFSET.
35935
35936 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
35937
35938         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
35939         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
35940         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
35941         config/alpha/predicates.md, config/arm/arm.md,
35942         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
35943         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
35944         config/darwin9.h, config/darwin.c, config/darwin.h,
35945         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
35946         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
35947         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
35948         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
35949         config/mips/mips.md, config/mn10300/mn10300.c,
35950         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
35951         config/rs6000/aix.h, config/rs6000/dfp.md,
35952         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
35953         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
35954         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
35955         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
35956         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
35957         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
35958         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
35959         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
35960         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
35961         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
35962         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
35963         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
35964         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
35965         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
35966         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
35967         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
35968         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
35969         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
35970         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
35971         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
35972         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
35973         opt-functions.awk, opth-gen.awk, params.def, passes.c,
35974         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
35975         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
35976         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
35977         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
35978         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
35979         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
35980         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
35981         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
35982         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
35983         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
35984         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
35985         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
35986         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
35987         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
35988
35989 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
35990
35991         PR other/43620
35992         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
35993         * aclocal.m4: Regenerate.
35994
35995 2010-04-02  Richard Guenther  <rguenther@suse.de>
35996
35997         PR tree-optimization/43629
35998         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
35999         if we have seen a constant value.
36000
36001 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
36002
36003         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
36004
36005 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
36006
36007         PR target/43469
36008         * arm.c (legitimize_tls_address): Adjust call to
36009         gen_tls_load_dot_plus_four.
36010         (arm_note_pic_base): New function.
36011         (arm_cannot_copy_insn_p): Use it.
36012         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
36013         constraint.
36014
36015 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36016
36017         PR bootstrap/43531
36018
36019         Revert:
36020         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36021
36022         * Makefile.in ($(out_object_file)): Depend on
36023         gt-$(basename $(notdir $(out_file))).h.
36024
36025 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
36026
36027         * config.gcc (lm32-*-rtems*): Add t-lm32.
36028
36029 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
36030
36031         * config.gcc: Add lm32-*-rtems*.
36032         * config/lm32/rtems.h: New file.
36033
36034 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
36035
36036         PR target/42609
36037         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
36038
36039 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
36040
36041         * dwarf2out.c (output_compilation_unit_header): For
36042         -gdwarf-4 use version 4 instead of version 3.
36043         (output_line_info): For version 4 and above emit additional
36044         maximum ops per insn header field.
36045         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
36046
36047         * dwarf2out.c (is_c_family, is_java): Remove.
36048         (lower_bound_default): New function.
36049         (add_bound_info, gen_descr_array_type_die): Use it.
36050
36051 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
36052
36053         PR debug/43325
36054         * dwarf2out.c (gen_variable_die): Allow debug info for variable
36055         re-declaration when it happens in a function.
36056
36057 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
36058
36059         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
36060         (cgraph_remove_function_insertion_hook): Same.
36061         (cgraph_call_function_insertion_hooks): Same.
36062
36063 2010-04-01  Richard Guenther  <rguenther@suse.de>
36064
36065         PR middle-end/43614
36066         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
36067         and TREE_THIS_VOLATILE.
36068         (copy_ref_info): Likewise.
36069         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
36070         * tree.c (build6_stat): Ignore side-effects of all but arg5
36071         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
36072         TARGET_MEM_REF.
36073
36074 2010-04-01  Richard Guenther  <rguenther@suse.de>
36075
36076         PR tree-optimization/43607
36077         * ipa-type-escape.c (check_call): Do not access non-existing
36078         arguments.
36079
36080 2010-04-01  Richard Guenther  <rguenther@suse.de>
36081
36082         PR middle-end/43602
36083         Revert
36084         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
36085                     Jack Howarth  <howarth@bromo.med.uc.edu>
36086
36087         * tree-profile.c (tree_init_ic_make_global_vars): Make static
36088         variables TLS.
36089
36090 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36091
36092         * doc/install.texi (Prerequisites): Document libelf usability on
36093         IRIX 5/6 and Solaris 2.
36094         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
36095         Update GNU as, GNU ld requirements.
36096         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
36097         Document Sun Studio compiler download.
36098         Update and simplify as, ld recommendations.
36099         (Specific, *-*-solaris2.7): Note obsoletion, removal.
36100
36101 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36102
36103         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
36104         with_tune_32 to pentium4.
36105
36106 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
36107
36108         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
36109
36110 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36111
36112         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
36113         obsoletion, removal.
36114         Update IDO URL.
36115         Document GNU as requirement.
36116         Update configure requirements.
36117         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
36118         Recomment IRIX 6.5.18+.
36119         Document IDF/IDL requirement.
36120         Document GNU as requirement.
36121         Document GNU ld bootstrap failure.
36122         Remove freeware.sgi.com reference.
36123
36124 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36125
36126         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
36127         UNIX V4.0, V5.0 obsoletion, removal.
36128         Remove --with-gc=simple reference.
36129         Update VM requirements during bootstrap.
36130         Remove -oldas bootstrap description.
36131         Update binutils reference.
36132         Remove comparison failure note.
36133
36134 2010-03-31  Richard Guenther  <rguenther@suse.de>
36135             Zdenek Dvorak  <ook@ucw.cz>
36136             Sebastian Pop  <sebastian.pop@amd.com>
36137
36138         PR middle-end/43464
36139         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
36140         with multiple arguments.
36141         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
36142
36143 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36144
36145         * graphite-dependences.c (print_pddr): Call print_pdr with an
36146         extra argument.
36147         * graphite-poly.c (debug_pdr): Add an extra argument for the
36148         verbosity level.
36149         (print_pdr): Same.
36150         (print_pbb_domain): Same.
36151         (print_pbb): Same.
36152         (print_scop_context): Same.
36153         (print_scop): Same.
36154         (print_cloog): Same.
36155         (debug_pbb_domain): Same.
36156         (debug_pbb): Same.
36157         (print_pdrs): Same.
36158         (debug_pdrs): Same.
36159         (debug_scop_context): Same.
36160         (debug_scop): Same.
36161         (debug_cloog): Same.
36162         (print_scop_params): Same.
36163         (debug_scop_params): Same.
36164         (print_iteration_domain): Same.
36165         (print_iteration_domains): Same.
36166         (debug_iteration_domain): Same.
36167         (debug_iteration_domains): Same.
36168         (print_scattering_function): Same.
36169         (print_scattering_functions): Same.
36170         (debug_scattering_function): Same.
36171         (debug_scattering_functions): Same.
36172         * graphite-poly.h (debug_pdr): Update declaration.
36173         (print_pdr): Same.
36174         (print_pbb_domain): Same.
36175         (print_pbb): Same.
36176         (print_scop_context): Same.
36177         (print_scop): Same.
36178         (print_cloog): Same.
36179         (debug_pbb_domain): Same.
36180         (debug_pbb): Same.
36181         (print_pdrs): Same.
36182         (debug_pdrs): Same.
36183         (debug_scop_context): Same.
36184         (debug_scop): Same.
36185         (debug_cloog): Same.
36186         (print_scop_params): Same.
36187         (debug_scop_params): Same.
36188         (print_iteration_domain): Same.
36189         (print_iteration_domains): Same.
36190         (debug_iteration_domain): Same.
36191         (debug_iteration_domains): Same.
36192         (print_scattering_function): Same.
36193         (print_scattering_functions): Same.
36194         (debug_scattering_function): Same.
36195         (debug_scattering_functions): Same.
36196
36197 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36198
36199         * graphite-poly.c (print_scattering_function_1): New.
36200         (print_scattering_function): Call it.
36201         (print_scop_params): Remove spaces at the end of lines.
36202         (print_cloog): New.
36203         (debug_cloog): New.
36204         * graphite-poly.h (print_cloog): Declared.
36205         (debug_cloog): Declared.
36206
36207 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36208
36209         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
36210         in loop->header.
36211         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
36212         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
36213         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
36214         to switch between adding the IV bump in loop->latch or in loop->header.
36215
36216 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
36217
36218         * graphite-poly.c (print_scattering_function): Pretty print following
36219         the scoplib format.
36220         (print_pdr): Same.
36221         (print_pbb_domain): Same.
36222         (dump_gbb_cases): Same.
36223         (dump_gbb_conditions): Same.
36224         (print_pdrs): Same.
36225         (print_pbb): Same.
36226         (print_scop_params): Same.
36227         (print_scop_context): Same.
36228         (print_scop): Same.
36229         (print_pbb_body): New.
36230         (lst_indent_to): New.
36231         (print_lst): Start new lines with a #.
36232         * graphite-poly.h (pbb_bb): New.
36233         (pbb_index): Use pbb_bb.
36234         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
36235         disjuncts.
36236         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
36237
36238 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36239
36240         * dwarf2out.c (size_of_die): For -gdwarf-4 use
36241         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
36242         and 0 instead of 1 for dw_val_class_flag.
36243         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
36244         dw_val_class_range_list, dw_val_class_loc_list,
36245         dw_val_class_lineptr and dw_val_class_macptr, use
36246         DW_FORM_flag_present for dw_val_class_flag and
36247         DW_FORM_exprloc for dw_val_class_loc.
36248         (output_die): For -gdwarf-4 print dw_val_class_loc
36249         size as uleb128 instead of 1 or 2 bytes and don't print
36250         anything for dw_val_class_flag.
36251
36252         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
36253         instead of cselib_lookup following by tweaking locs->setting_insn.
36254
36255         PR bootstrap/43596
36256         * cselib.c (cselib_process_insn): Clear cselib_current_insn
36257         even before returning from label, setjmp call or volatile asm
36258         handling.
36259
36260 2010-03-31  Richard Guenther  <rguenther@suse.de>
36261
36262         PR middle-end/43600
36263         * cgraphunit.c (cgraph_output_in_order): Do not allocate
36264         temporary data on stack.
36265
36266 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36267
36268         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
36269         (PUSHSECTION_ASM_OP): Remove.
36270         (POPSECTION_ASM_OP): Remove.
36271         (PUSHSECTION_FORMAT): Remove.
36272         * config/sol2.h (PUSHSECTION_FORMAT): Define.
36273         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
36274         * config/sol2.c (solaris_output_init_fini): Use it.
36275
36276 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36277
36278         PR 43574
36279         * opt-functions.awk (var_type_struct): Use signed char type
36280         for simple variables.
36281
36282 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36283
36284         * config/sol2.c: Include output.h.
36285         (solaris_assemble_visibility): New function.
36286         * config/t-sol2 (sol2.o): Add output.h dependency.
36287         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
36288         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
36289         Redefine.
36290
36291 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
36292
36293         PR target/43580
36294         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
36295         V2SImode or XFmode on PRE_DEC.
36296
36297         PR debug/43557
36298         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
36299         BLKmode.
36300
36301 2010-03-31  Jie Zhang  <jie@codesourcery.com>
36302
36303         PR 43562
36304         * reload.h (caller_save_initialized_p): Declare.
36305         * toplev.c (backend_init_target): Don't call
36306         init_caller_save but set caller_save_initialized_p to false.
36307         * caller-save.c (caller_save_initialized_p): Define.
36308         (init_caller_save): Check caller_save_initialized_p.
36309         * ira.c (ira): Call init_caller_save if flag_caller_saves.
36310
36311 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36312
36313         PR target/39048
36314         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
36315         and soft-fp/t-softfp to tmake_file.
36316         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
36317         (LIBGCC2_TF_CEXT): Define.
36318         (TF_SIZE): Define.
36319
36320 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
36321
36322         PR debug/42977
36323         * cselib.c (n_useless_values): Document handling of debug locs.
36324         (n_useless_debug_values, n_debug_values): New variables.
36325         (new_elt_loc_list): Don't add to debug values, keep count.
36326         (promote_debug_loc): New.
36327         (cselib_reset_table): Zero new variables.
36328         (entry_and_rtx_equal_p): Promote debug locs.
36329         (discard_useless_locs): Increment n_useless_debug_values for
36330         debug values.
36331         (remove_useless_values): Adjust n_useless_values and n_debug_values
36332         with n_useless_debug_values.
36333         (add_mem_for_addr): Promote debug locs.
36334         (cselib_lookup_mem): Likewise.
36335         (cselib_lookup_addr): Renamed to...
36336         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
36337         (cselib_log_lookup): ... this.  Turn into...
36338         (cselib_lookup_addr): ... new wrapper.
36339         (cselib_lookup_from_insn): New.
36340         (cselib_invalidate_regno): Increment n_useless_debug_values for
36341         debug values.
36342         (cselib_invalidate_mem): Likewise.
36343         (cselib_process_insn): Take n_deleted and n_debug_values into
36344         account to guard remove_useless_value call.
36345         (cselib_finish): Zero n_useless_debug_values.
36346         * cselib.h (cselib_lookup_from_insn): Declare.
36347         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
36348         (sched_analyze_2): Likewise.
36349
36350 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
36351
36352         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
36353         functions.
36354         (adjust_mems): Replace narrowing SUBREG of expression containing
36355         just PLUS, MINUS, MULT and ASHIFT of registers and constants
36356         with operations in the narrower mode.
36357
36358         PR debug/43593
36359         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
36360         regs_invalidated_by_call instead all call_used_reg_set registers.
36361
36362 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
36363
36364         PR middle-end/43430
36365         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
36366         pointer comparisons with types_compatible_p.
36367         * tree-vect-stmts.c (vectorizable_call): Same.
36368         (vectorizable_condition): Same.
36369
36370 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
36371
36372         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
36373         stack check if the mask would be zero.
36374
36375 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
36376             Jack Howarth  <howarth@bromo.med.uc.edu>
36377
36378         * tree-profile.c (tree_init_ic_make_global_vars): Make static
36379         variables TLS.
36380
36381 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
36382
36383         PR other/25232
36384         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
36385         and __unordtf2.
36386         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
36387         Include ___unordxf2 and ___unordtf2.
36388         * config/i386/libgcc-glibc.ver: Do not define inheritance from
36389         GCC_4.4.0 here.
36390
36391 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
36392
36393         * config/lm32/t-lm32: New file.
36394         * config.gcc: Use the above file when targetting lm32.
36395
36396 2010-03-28  Duncan Sands  <baldrick@free.fr>
36397
36398         * Makefile.in (PLUGIN_HEADERS): Add except.h.
36399
36400 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36401
36402         PR middle-end/43431
36403         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
36404         Improve vectorization cost model diagnostic.
36405
36406 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
36407
36408         PR middle-end/43436
36409         * tree-vect-data-refs.c (vect_analyze_data_refs): When
36410         compute_data_dependences_for_loop returns false, early exit
36411         and output an extra diagnostic for the failed data reference
36412         analysis.
36413
36414 2010-03-29  Richard Guenther  <rguenther@suse.de>
36415
36416         PR tree-optimization/43560
36417         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
36418         (can_sm_ref_p): Treat stores to readonly locations as trapping.
36419
36420 2010-03-29  Jie Zhang  <jie@codesourcery.com>
36421
36422         PR 43564
36423         * toplev.c (process_options): Set optimization_default_node
36424         and optimization_current_node.
36425         * opts.c (decode_options): Don't set optimization_default_node
36426         and optimization_current_node.
36427
36428 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
36429
36430         * config/rtems.h: Abandon -qrtems_debug.
36431
36432 2010-03-28  Jan Hubicka  <jh@suse.cz>
36433
36434         PR tree-optimization/43505
36435         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
36436         map should not be copied.
36437
36438 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36439
36440         PR middle-end/41674
36441         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
36442         cdtors, set DECL_PRESERVE_P.
36443         * ipa.c (cgraph_externally_visible_p): Return true if declaration
36444         should be preseved.
36445
36446 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
36447
36448         PR tree-optimization/43528
36449         * stor-layout.c (place_field): Check that constant fits into
36450         unsigned HWI when skipping calculation of MS bitfield layout.
36451
36452 2010-03-27  Jan Hubicka  <jh@suse.cz>
36453
36454         PR middle-end/43391
36455         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
36456         notice_global_symbol work.
36457
36458 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
36459
36460         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
36461         instead of dwarf2out_decl.
36462         (struct var_loc_node): Remove section_label field.
36463         (dwarf2out_function_decl): New function.
36464         (dwarf2out_var_location): Don't set section_label field.
36465         (dwarf2out_begin_function): Don't empty decl_loc_table here.
36466
36467 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
36468
36469         PR tree-optimization/43544
36470         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
36471         First argument for builtin vectorized function hook is now a
36472         tree to be able to distinguish between machine specific and
36473         standard builtins.
36474         * targhooks.c (default_builtin_vectorized_function): Ditto.
36475         * targhooks.h (default_builtin_vectorized_function): Ditto.
36476         * target.h (struct gcc_target): Ditto.
36477         * tree-vect-stmts.c (vectorizable_function): Ditto.
36478         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
36479         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
36480         Ditto.
36481
36482 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
36483
36484         PR c/43381
36485         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
36486         nested binding iff it is a FUNCTION_DECL.
36487         (store_parm_decls_newstyle): Pass nested=true to bind for
36488         FUNCTION_DECLs amongst parameters.
36489
36490 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36491
36492         * var-tracking.c (vt_expand_loc_callback): Don't run
36493         cselib_expand_value_rtx_cb in dummy mode if
36494         cselib_dummy_expand_value_rtx_cb returned false.
36495
36496         * var-tracking.c (emit_note_insn_var_location): For one part
36497         notes with offset 0, don't add EXPR_LIST around the location.
36498         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
36499         add_location_or_const_value_attribute): Adjust for that change.
36500
36501         PR debug/43540
36502         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
36503         into first operand and location into second.
36504         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
36505         dw_cfi_oprnd_loc for DW_CFA_expression.
36506         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
36507         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
36508         assume first argument is regnum and second argument is location.
36509
36510 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36511
36512         PR target/42113
36513         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
36514         of scratch register to DImode.  Split to DImode comparison operator.
36515         Use SImode subreg of scratch register in the multiplication.
36516         (*cmp_sadd_sidi): Ditto.
36517         (*cmp_ssub_si): Ditto.
36518         (*cmp_ssub_sidi): Ditto.
36519
36520 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
36521
36522         PR target/43524
36523         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
36524         Remove invalid assert and wrong comment.
36525
36526 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
36527
36528         PR debug/43516
36529         * flags.h (final_insns_dump_p): New extern.
36530         * final.c (final_insns_dump_p): New variable.
36531         (rest_of_clean_state): Set it before -fdump-final-insns=
36532         dumping, clear afterwards.
36533         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
36534         MEM_ALIAS_SET on MEMs.
36535
36536 2010-03-26  David S. Miller  <davem@davemloft.net>
36537
36538         * configure.ac: Fix sparc GOTDATA_OP bug check.
36539         * configure: Rebuild.
36540
36541 2010-03-26  Alan Modra  <amodra@gmail.com>
36542
36543         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
36544
36545 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36546
36547         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
36548         TLS_SECTION_ASM_FLAG.
36549
36550 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
36551
36552         PR bootstrap/43511
36553         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
36554         Clear first_function_block_is_cold.
36555
36556         PR c/43385
36557         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
36558         argument if the argument is truth_value_p.
36559
36560 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
36561
36562         * config/rs6000/constraints.md: Update copyright year for my changes.
36563
36564         PR target/43484
36565         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
36566         used in reg+reg addressing, swap registers.
36567
36568 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36569
36570         PR debug/43293
36571         * target.h (struct gcc_target): Add code_end hook.
36572         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
36573         if not yet defined.
36574         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
36575         * toplev.c (compile_file): Call targetm.asm_out.code_end
36576         hook before unwind info/debug info output.
36577         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
36578         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
36579         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36580         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
36581         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
36582         * config/i386/i386.c (ix86_file_end): Renamed to...
36583         (ix86_code_end): ... this.  Make static.  Don't call
36584         file_end_indicate_exec_stack.  Emit unwind info using
36585         final_start_function/final_end_function.
36586         (darwin_x86_file_end): Remove.
36587         (TARGET_ASM_CODE_END): Define.
36588         * config/i386/i386.h (TARGET_ASM_FILE_END,
36589         NEED_INDICATE_EXEC_STACK): Don't define.
36590         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
36591         (TARGET_ASM_FILE_END): Define to darwin_file_end.
36592         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
36593         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
36594
36595         PR target/43498
36596         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
36597         at the beginning and final_end_function at the end.
36598         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
36599
36600 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36601
36602         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
36603         and Sun as TLS syntax.
36604         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
36605         * configure: Regenerate.
36606         * config.in: Regenerate.
36607         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
36608         (default_elf_asm_named_section): Use it.
36609         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
36610         (i386_output_dwarf_dtprel): Likewise.
36611         (output_addr_const_extra): Likewise.
36612         (output_pic_addr_const): Lowercase @GOTTPOFF.
36613         (output_addr_const_extra): Likewise.
36614         (output_pic_addr_const): Lowercase @GOTNTPOFF.
36615         (output_addr_const_extra): Likewise.
36616         (output_pic_addr_const): Lowercase @INDNTPOFF.
36617         (output_addr_const_extra): Likewise.
36618         (output_pic_addr_const): Lowercase @NTPOFF.
36619         (output_addr_const_extra): Likewise.
36620         (output_pic_addr_const): Lowercase @TPOFF.
36621         (output_addr_const_extra): Likewise.
36622         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
36623         (*tls_global_dynamic_64): Likewise.
36624         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
36625         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
36626
36627         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
36628         (ASM_OUTPUT_TLS_COMMON): Use it.
36629         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
36630
36631         PR target/38118
36632         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
36633         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
36634         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
36635         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
36636         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36637         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
36638
36639 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36640
36641         * config/i386/i386.c (override_options): Don't accept
36642         -mtls-dialect=sun any longer.
36643         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
36644         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
36645         (*tls_local_dynamic_base_32_sun): Likewise.
36646         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
36647
36648 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
36649
36650         PR debug/43508
36651         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
36652         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
36653
36654         PR debug/43479
36655         * ira.c (adjust_cleared_regs): New function.
36656         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
36657
36658         PR debug/19192
36659         PR debug/43479
36660         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
36661         from gimple_block.
36662         * expr.c (expand_expr_real): Restore previous
36663         curr_insn_source_location and curr_insn_block after
36664         expand_expr_real_1 call.
36665         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
36666         instead of expand_expr_real_1.
36667
36668 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
36669
36670         PR rtl-optimization/43413
36671         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
36672         hard regs too.
36673
36674 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
36675
36676         PR target/43348
36677         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
36678         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
36679
36680 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
36681
36682         * config/i386/i386.c (ix86_target_string): Add -mfma.
36683         Fix a typo in comment.
36684
36685 2010-03-22  Mike Stump  <mikestump@comcast.net>
36686
36687         PR target/23071
36688         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
36689         Don't overly align based upon packed packed fields.
36690
36691 2010-03-22  Jason Merrill  <jason@redhat.com>
36692
36693         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
36694         Use () rather than [], and move before the element type.
36695
36696 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36697
36698         * doc/configfiles.texi (Configuration Files): Removed
36699         fixinc/Makefile*, intl/Makefile.*.
36700         * doc/makefile.texi: Fixed markup. Abstract from version
36701         control system used.
36702         (Makefile): Removed obsolete java/parse.y example.
36703         * doc/sourcebuild.texi: Likewise.
36704         (Top Level): Added config, gnattools, libdecnumber, libgcc,
36705         libgomp, libssp.  Removed fastjar.
36706         (Miscellaneous Docs): Clarify location.
36707         Added COPYING3, COPYING3.LIB.
36708         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
36709
36710 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36711
36712         PR target/38085
36713         * config/i386/i386.c (x86_function_profiler)
36714         [!NO_PROFILE_COUNTERS]: Fix typo.
36715         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
36716         instead of callq.
36717
36718 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
36719             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
36720
36721         * doc/sourcebuild.texi (Test Directives): Split into six
36722         subsections, with most of the current text in new subsections
36723         Directives, Selectors, and Final Actions.
36724         (Directives): Split list of test directives into multiple
36725         subsubsections.
36726         (Selectors): Describe use and syntax of selectors.
36727         (Effective-Target Keywords): Describe all existing keywords.
36728         (Add Options): Describe features for dg-add-options.
36729         (Require Support): Describe variants of dg-require-support.
36730         (Final Actions): Describe commands to use in dg-final.
36731
36732 2010-03-22  Michael Matz  <matz@suse.de>
36733
36734         PR middle-end/43475
36735         * recog.c (validate_replace_rtx_group): Replace also in
36736         REG_EQUAL and REG_EQUIV notes.
36737
36738 2010-03-22  Richard Guenther  <rguenther@suse.de>
36739
36740         PR tree-optimization/43390
36741         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
36742         sure vector extracts are type correct.
36743
36744 2010-03-22  Richard Guenther  <rguenther@suse.de>
36745
36746         PR middle-end/40106
36747         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
36748         x * sqrt (x) even when optimizing for size if the target
36749         has native support for sqrt.
36750
36751 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
36752
36753         * varasm.c (make_decl_rtl_for_debug): Also clear
36754         flag_mudflap for the duration of make_decl_rtl call.
36755
36756         PR debug/43443
36757         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
36758         locs from preserved VALUEs.
36759
36760 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
36761
36762         PR middle-end/42718
36763         * pa.md (movmemsi): Set align to one if zero.
36764         (movmemdi): Likewise.
36765
36766 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
36767
36768         PR target/42321
36769         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
36770         with their corresponding prologue pushes.
36771
36772 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
36773
36774         PR target/43156
36775         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
36776         at the begining or end.
36777         (spu_expand_epilogue): Likewise.
36778
36779 2010-03-20  Richard Guenther  <rguenther@suse.de>
36780
36781         PR rtl-optimization/43438
36782         * combine.c (make_extraction): Properly zero-/sign-extend an
36783         extraction of the low part of a CONST_INT.  Also handle
36784         CONST_DOUBLE.
36785
36786 2010-03-19  Mike Stump  <mikestump@comcast.net>
36787
36788         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
36789         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
36790         (override_options): Use SUBTARGET32_DEFAULT_CPU.
36791
36792 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
36793
36794         PR c/43211
36795         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
36796         an error.
36797
36798 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
36799
36800         PR rtl-optimization/42258
36801         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
36802         use that may match DEF.
36803
36804         PR target/40697
36805         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
36806         the cost of loading the constant rather than assuming
36807         COSTS_N_INSNS (1).
36808         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
36809         outer code is AND, do the same tests as the andsi3 expander and
36810         return COSTS_N_INSNS (1) if and is cheap.
36811
36812         * optabs.c (avoid_expensive_constant): Fix formatting.
36813
36814 2010-03-19  Michael Matz  <matz@suse.de>
36815
36816         PR c++/43116
36817         * attribs.c (decl_attributes): When rebuilding a function pointer
36818         type use the same qualifiers as the original pointer type.
36819
36820 2010-03-19  Martin Jambor  <mjambor@suse.cz>
36821
36822         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
36823         and is_gimple_ip_invariant_address.
36824
36825 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36826
36827         Revert
36828         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36829
36830         * config/arm/arm.c (arm_override_options): Turn off
36831         flag_dwarf2_cfi_asm for AAPCS variants.
36832
36833 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
36834
36835         PR target/43399
36836         * config/arm/arm.c (emit_multi_reg_push): Update comments.
36837         Use PRE_MODIFY instead of PRE_DEC.
36838         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
36839         (vfp_emit_fstmd): Likewise.
36840
36841 2010-03-19  Michael Matz  <matz@suse.de>
36842
36843         PR target/43305
36844         * builtins.c (expand_builtin_interclass_mathfn,
36845         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
36846         if that fails.
36847
36848 2010-03-19  Richard Guenther  <rguenther@suse.de>
36849
36850         PR tree-optimization/43415
36851         * tree-ssa-pre.c (phi_translate): Split out worker to ...
36852         (phi_translate_1): ... this.
36853         (phi_translate): Move all caching here.  Cache all NARY
36854         and REFERENCE translations.
36855
36856 2010-03-19  David S. Miller  <davem@davemloft.net>
36857
36858         With help from Eric Botcazou.
36859         * config/sparc/sparc.c: Include dwarf2out.h.
36860         (emit_pic_helper): Delete.
36861         (pic_helper_symbol_name): Delete.
36862         (pic_helper_emitted_p): Delete.
36863         (pic_helper_needed): New.
36864         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
36865         (get_pc_thunk_name): New.
36866         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
36867         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
36868         Set pic_helper_needed to true.  Don't call emit_pic_helper.
36869         (sparc_expand_prologue): Update load_pic_register call.
36870         (sparc_output_mi_thunk): Likewise.
36871         (sparc_file_end): Emit a hidden comdat symbol for the PIC
36872         thunk if possible.  Output CFI information as needed.
36873
36874 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36875             Jack Howarth  <howarth@bromo.med.uc.edu>
36876
36877         PR target/36399
36878         * config/i386/i386.h: Fix ABI on darwin x86-32.
36879
36880 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
36881
36882         * tree.h: Declare make_decl_rtl_for_debug.
36883         * varasm.c (make_decl_rtl_for_debug): New.
36884         * dwarf2out.c (rtl_for_decl_location): Call it.
36885         * cfgexpand.c (expand_debug_expr): Call it.
36886
36887 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36888
36889         PR bootstrap/43399
36890         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
36891         mem_mode.
36892
36893         PR bootstrap/43403
36894         * var-tracking.c (vt_init_cfa_base): Do nothing if
36895         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
36896
36897 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
36898
36899         PR debug/42873
36900         * var-tracking.c (canonicalize_vars_star): New.
36901         (dataflow_post_merge_adjust): Use it.
36902
36903 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
36904
36905         PR debug/43058
36906         * var-tracking.c (non_suitable_const): New function.
36907         (add_uses): For DEBUG_INSNs with constants, don't record any
36908         value, instead just the constant value itself.
36909         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
36910         is not VAR_LOC_UNKNOWN_P, set var to the constant.
36911         (emit_notes_in_bb): Likewise.
36912         (emit_note_insn_var_location): For onepart variables if
36913         cur_loc is a VOIDmode constant, use DECL_MODE.
36914
36915 2010-03-18  Martin Jambor  <mjambor@suse.cz>
36916
36917         PR middle-end/42450
36918         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
36919         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
36920         all non-clones.  Moved call redirection...
36921         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
36922         (cgraph_materialize_all_clones): Dispose of all
36923         combined_args_to_skip bitmaps.
36924         (verify_cgraph_node): Do not check for edges pointing to wrong
36925         nodes in inline clones.
36926         * tree-inline.c (copy_bb): Call
36927         cgraph_redirect_edge_call_stmt_to_callee.
36928         * ipa.c (cgraph_remove_unreachable_nodes): Call
36929         cgraph_node_remove_callees even when there are used clones.
36930
36931 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36932
36933         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
36934
36935 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
36936
36937         PR target/43383
36938         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
36939         for 32bit.
36940
36941 2010-03-18  Michael Matz  <matz@suse.de>
36942
36943         PR middle-end/43419
36944         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
36945         into sqrt(x) if we need to preserve signed zeros.
36946
36947 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
36948             Eric Botcazou  <ebotcazou@adacore.com>
36949
36950         PR rtl-optimization/43360
36951         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
36952         note if we don't know its invariant status.
36953
36954 2010-03-18  Michael Matz  <matz@suse.de>
36955
36956         PR tree-optimization/43402
36957         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
36958         PHI chains of ssa names registered for update.
36959
36960 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
36961
36962         PR target/42427
36963         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
36964         non-offsettable and pre_modify update addressing.
36965         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
36966         and "2" alternatives "#".
36967         (*movdd_softfloat32): Make all alternatives "#";
36968         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
36969         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
36970         (*movdf_softfloat32): Make all alternatives "#";
36971         (movdi): Use the new DIFD mode iterator to create a common splitter
36972         for movdi, movdf and movdd patterns.
36973
36974 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
36975
36976         * common.opt (dumpdir): Remove redundant tab.
36977
36978 2010-03-17  Martin Jambor  <mjambor@suse.cz>
36979
36980         PR tree-optimization/43347
36981         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
36982         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
36983
36984 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
36985
36986         PR rtl-optimization/42216
36987         * regrename.c (create_new_chain): New function, broken out from...
36988         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
36989         appending a use to an empty chain.
36990         (build_def_use): Remove previous changes that convert OP_INOUT to
36991         OP_OUT operands; instead detect the case where an OP_INOUT operand
36992         uses a previously untracked register and create an empty chain for it.
36993
36994 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
36995
36996         * doc/extend.texi (Function Attributes): Rewrite unfinished
36997         sentence in ms_abi documentation.
36998
36999 2010-03-17  Alan Modra  <amodra@gmail.com>
37000
37001         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
37002         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
37003         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
37004         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
37005
37006 2010-03-16  Richard Henderson  <rth@redhat.com>
37007
37008         PR middle-end/43365
37009         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
37010         (lower_try_finally): Save and restore eh_seq around the expansion
37011         of the try-finally.
37012
37013 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
37014
37015         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
37016         statements before splitting block.
37017
37018 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37019
37020         * doc/sourcebuild.texi (Testsuites): Fix markup.
37021         Use pathnames relative to gcc/testsuite.
37022         (Test Directives): Move description of how timeout is determined.
37023         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
37024         (C Tests): Correct gcc.misc-tests directory.
37025         Framework tests now live in gcc.test-framework.
37026
37027 2010-03-16  Richard Guenther  <rguenther@suse.de>
37028
37029         PR middle-end/43379
37030         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
37031         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
37032
37033 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
37034             Alexandre Oliva  <aoliva@redhat.com>
37035
37036         PR tree-optimization/42917
37037         * lambda-code.c (remove_iv): Skip debug statements.
37038         (lambda_loopnest_to_gcc_loopnest): Likewise.
37039         (not_interesting_stmt): Debug statements are not interesting.
37040
37041 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
37042
37043         PR debug/43051
37044         PR debug/43092
37045         * cselib.c (cselib_preserve_constants,
37046         cfa_base_preserved_val): New static variables.
37047         (preserve_only_constants): New function.
37048         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
37049         clear its REG_VALUES.  If cselib_preserve_constants, don't
37050         empty the whole hash table, but preserve there VALUEs with constants,
37051         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
37052         (cselib_preserve_cfa_base_value): New function.
37053         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
37054         (cselib_init): Change argument to int bitfield.  Set
37055         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
37056         is in it.
37057         (cselib_finish): Clear cselib_preserve_constants and
37058         cfa_base_preserved_val.
37059         * cselib.h (enum cselib_record_what): New enum.
37060         (cselib_init): Change argument to int.
37061         (cselib_preserve_cfa_base_value): New prototype.
37062         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
37063         * dse.c (dse_step1): Likewise.
37064         * cfgcleanup.c (thread_jump): Likewise.
37065         * sched-deps.c (sched_analyze): Likewise.
37066         * gcse.c (local_cprop_pass): Likewise.
37067         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
37068         If FN is non-NULL, call the callback always and whenever it returns
37069         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
37070         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
37071         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
37072         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
37073         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
37074         * var-tracking.c: Include recog.h.
37075         (bb_stack_adjust_offset): Remove.
37076         (vt_stack_adjustments): Don't call it, instead just gather the
37077         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
37078         (adjust_stack_reference): Remove.
37079         (compute_cfa_pointer): New function.
37080         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
37081         (struct adjust_mem_data): New type.
37082         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
37083         functions.
37084         (get_address_mode): New function.
37085         (replace_expr_with_values): Use it.
37086         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
37087         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
37088         (adjust_sets): Remove.
37089         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
37090         Use get_address_mode.
37091         (get_adjusted_src): Remove.
37092         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
37093         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
37094         (add_with_sets): Don't call adjust_sets.
37095         (fp_setter, vt_init_cfa_base): New functions.
37096         (vt_initialize): Change return type to bool.  Move most of pool etc.
37097         initialization to the beginning of the function from end.  Pass
37098         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
37099         If !frame_pointer_needed, call vt_stack_adjustment before mos
37100         vector is filled, call vt_init_cfa_base if argp/framep has been
37101         eliminated to sp.  If frame_pointer_needed and argp/framep has
37102         been eliminated to hard frame pointer, set
37103         hard_frame_pointer_adjustment and call vt_init_cfa_base after
37104         encountering fp setter in the prologue.  For MO_ADJUST, call
37105         log_op_type before pusing the op into mos vector, not afterwards.
37106         Call adjust_insn before cselib_process_insn/add_with_sets,
37107         call cancel_changes (0) afterwards.
37108         (variable_tracking_main_1): Adjust for vt_initialize calling
37109         vt_stack_adjustments and returning whether it succeeded or not.
37110
37111 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
37112
37113         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
37114         debug statements.
37115
37116 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
37117
37118         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
37119         has been set.
37120         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
37121         drap_reg has not been set.
37122
37123 2010-03-15  Michael Matz  <matz@suse.de>
37124
37125         PR middle-end/43300
37126         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
37127         use it to expand block copies.
37128         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
37129         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
37130         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
37131
37132 2010-03-15  Richard Guenther  <rguenther@suse.de>
37133
37134         PR tree-optimization/43367
37135         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
37136         elimination check.
37137
37138 2010-03-15  Richard Guenther  <rguenther@suse.de>
37139
37140         PR tree-optimization/43317
37141         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
37142
37143 2010-03-15  Martin Jambor  <mjambor@suse.cz>
37144
37145         PR tree-optimization/43141
37146         * tree-sra.c (create_abstract_origin): New function.
37147         (modify_function): Call create_abstract_origin.
37148
37149 2010-03-15  Chris Demetriou  <cgd@google.com>
37150
37151         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
37152         wasn't copied.
37153
37154 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37155
37156         PR middle-end/43354
37157         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
37158         call insert_out_of_ssa_copy for default definitions.
37159
37160 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37161
37162         * graphite-clast-to-gimple.c (my_long_long): Defined.
37163         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
37164         * graphite-sese-to-poly.c (my_long_long): Defined.
37165         (scop_ivs_can_be_represented): Use it.
37166
37167 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37168
37169         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
37170         graphite-max-bbs-per-function, and loop-block-tile-size.
37171         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
37172         with "maximum".
37173         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
37174
37175 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37176
37177         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
37178         forward declaration.
37179         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
37180         (add_upper_bounds_from_estimated_nit): New.
37181         (build_loop_iteration_domains): Use it.
37182
37183 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37184
37185         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
37186
37187 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37188
37189         PR middle-end/43306
37190         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
37191         should be an INTEGER_CST.  Also handle CASE_CONVERT.
37192
37193 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37194
37195         * graphite.c (graphite_initialize): To bound the number of bbs per
37196         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
37197         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
37198         * doc/invoke.texi: Document it.
37199
37200 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37201
37202         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
37203         * graphite-sese-to-poly.h (build_poly_scop): Same.
37204
37205 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
37206
37207         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
37208         the number of parameters in the scop.  Use as an upper bound
37209         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
37210         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
37211         * doc/invoke.texi: Document it.
37212
37213 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
37214
37215         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
37216         * doc/c-tree.texi: Remove.
37217         * doc/generic.texi: Merge c-tree.texi here.
37218         * doc/gccint.texi (Trees): Remove menu entry.
37219         (c-tree.texi): Remove @include.
37220         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
37221         * doc/languages.texi (Reading RTL): Ditto.
37222
37223 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
37224
37225         PR target/42869
37226         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
37227
37228 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
37229
37230         PR middle-end/42431
37231         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
37232         code added to work around reload clobbering CONST insns.
37233
37234 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
37235
37236         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
37237         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
37238         (cselib_preserve_only_values): Remove retain argument, don't
37239         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
37240         * cselib.h (cselib_preserve_only_values): Remove retain argument.
37241         * var-tracking.c (micro_operation): Move insn field before union.
37242         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
37243         (struct variable_tracking_info_def): Remove n_mos field, change
37244         mos into a vector of micro_operations.
37245         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
37246         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
37247         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
37248         changing into a vector.
37249         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
37250         come before all other uops generated by add_stores.
37251         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
37252         argument removal.
37253         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
37254         a vector.  Run just one pass over the bbs instead of separate counting
37255         and computation phase.
37256         (vt_finalize): Free VTI (bb)->mos vector instead of array.
37257
37258         PR debug/43329
37259         * tree-inline.c (remap_decls): Put old_var rather than origin_var
37260         into *nonlocalized_list vector.
37261         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
37262         even if origin is non-NULL.
37263         (gen_variable_die): Likewise.
37264         (process_scope_var): Don't change origin.
37265         (gen_decl_die): Likewise.
37266         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
37267         before adding new edges instead of after it, fix moving over
37268         debug stmts.
37269
37270 2010-03-11  David S. Miller  <davem@davemloft.net>
37271
37272         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
37273         of four.
37274         * configure: Rebuild.
37275
37276 2010-03-11  Martin Jambor  <mjambor@suse.cz>
37277
37278         PR tree-optimization/43257
37279         * tree.c (assign_assembler_name_if_neeeded): New function.
37280         (free_lang_data_in_cgraph): Assembler name assignment moved to the
37281         above new function.
37282         * tree.h (assign_assembler_name_if_neeeded): Declare.
37283         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
37284         the function if needed.
37285
37286 2010-03-11  Chris Demetriou  <cgd@google.com>
37287
37288         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
37289         include/stdint-gcc.h, and include/stdint.h world-readable.
37290
37291 2010-03-11  Richard Guenther  <rguenther@suse.de>
37292
37293         PR tree-optimization/43255
37294         * tree-vrp.c (process_assert_insertions_for): Do not insert
37295         asserts for trivial conditions.
37296
37297 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37298
37299         PR tree-optimization/43280
37300         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
37301         generation.  Move calculation of size out of the if branch.
37302         (find_bswap): Modify compare number generation.
37303
37304 2010-03-11  Richard Guenther  <rguenther@suse.de>
37305
37306         PR lto/43200
37307         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
37308         (input_gimple_stmt): Fixup handled component types during
37309         operand read.  Also fix up decls in ADDR_EXPRs.
37310
37311 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
37312
37313         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
37314         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
37315
37316 2010-03-10  Jan Hubicka  <jh@suse.cz>
37317
37318         PR c/43288
37319         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
37320         * varasm.c (get_variable_section): Don't do that here...
37321         (make_decl_rtl): ... and here.
37322         (do_assemble_alias): Produce decl RTL.
37323         (assemble_alias): Likewise.
37324
37325 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37326
37327         PR debug/43290
37328         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
37329         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
37330         of fde->vdrap_reg.
37331         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
37332         (based_loc_descr): Only express drap or vdrap regno based expressions
37333         using DW_OP_fbreg when not optimizing.
37334         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
37335         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
37336         REG_CFA_SET_VDRAP note.
37337
37338 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
37339
37340         PR tree-optimization/43236
37341         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
37342         error in calculation of base address in reverse iteration case.
37343         (generate_builtin): Take number of latch executions if the statement
37344         is in the latch.
37345
37346 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
37347
37348         PR middle-end/42859
37349         * tree-eh.c: Include pointer-set.h.
37350         (lower_eh_dispatch): Filter out duplicate case labels and
37351         remove the unneeded edge when the label is unused.  Return
37352         true when some edges are removed.
37353         (execute_lower_eh_dispatch): When any lowering resulted in
37354         removing an edge, also delete unreachable blocks.
37355
37356 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
37357
37358         PR bootstrap/43287
37359         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
37360         UNSPEC_MACHOPIC_OFFSET.
37361
37362 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
37363
37364         PR target/43294
37365         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
37366         (m68k_delegitimize_address): New function.
37367
37368 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
37369
37370         PR debug/43299
37371         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
37372
37373         PR debug/43299
37374         * var-tracking.c (adjust_sets): New function.
37375         (count_with_sets, add_with_sets): Use it.
37376         (get_adjusted_src): New inline function.
37377         (add_stores): Use it.
37378
37379         PR debug/43304
37380         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
37381         call cselib_dummy_expand_value_rtx_cb instead of
37382         cselib_expand_value_rtx_cb.
37383
37384         PR debug/43293
37385         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
37386         * config/i386/i386.c: Include debug.h and dwarf2out.h.
37387         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
37388         and .cfi_endproc around the pic thunks.
37389         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
37390         all queued unwind info register saves are saved before the call.
37391         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
37392         considered as sp-=4 for unwind info and the pop as sp+=4 which
37393         also clobbers dest, but doesn't actually restore it.
37394
37395         PR debug/43290
37396         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
37397         RTX_FRAME_RELATED_P.
37398
37399 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37400
37401         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
37402         whitespaces in output template.
37403
37404 2010-03-09  Jie Zhang  <jie@codesourcery.com>
37405
37406         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
37407         out array boundary.
37408
37409 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37410
37411         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
37412         builtins.exp in a separate job.
37413
37414 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37415
37416         * graphite-sese-to-poly.c (add_param_constraints): Use
37417         lower_bound_in_type and upper_bound_in_type.
37418
37419 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37420
37421         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
37422         instead of unsigned_type_node.
37423
37424 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37425             Reza Yazdani  <reza.yazdani@amd.com>
37426
37427         PR middle-end/43065
37428         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
37429         on pointer type parameters.
37430
37431 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37432
37433         PR middle-end/42644
37434         PR middle-end/42130
37435         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
37436         handle conversions from pointer to integers.
37437         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
37438         induction variable, to be able to work with code generated by CLooG.
37439         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
37440         (build_poly_scop): Bail out if we cannot codegen a loop.
37441
37442 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
37443
37444         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
37445         code generation with gloog_error.
37446
37447 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37448
37449         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
37450         Call fold_convert on all the returned values.
37451         (expand_scalar_variables_expr): Pass to
37452         expand_scalar_variables_ssa_name the type of the resulting expression.
37453
37454 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37455
37456         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
37457         ppl_min_for_le_pointset.
37458         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
37459         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
37460
37461 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37462
37463         * graphite-dependences.c (map_into_dep_poly): Removed.
37464         (dependence_polyhedron_1): Use combine_context_id_scat.
37465
37466 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37467
37468         * graphite-poly.h (struct poly_scattering): Add layout documentation.
37469         (struct poly_bb): Same.
37470         (combine_context_id_scat): New.
37471
37472 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37473
37474         PR middle-end/42326
37475         * sese.c (name_defined_in_loop_p): Return false for default
37476         definitions.
37477
37478 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37479
37480         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
37481         and clean up the logic.
37482
37483 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
37484
37485         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
37486         early return.
37487
37488 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
37489
37490         * var-tracking.c (remove_cselib_value_chains): Define only for
37491         ENABLE_CHECKING.
37492         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
37493         delete_slot_part, emit_notes_for_differences_1): Don't call
37494         remove_cselib_value_chains here.
37495         (set_slot_part, emit_notes_for_differences_2): Don't call
37496         add_cselib_value_chains here.
37497         (preserved_values): New vector.
37498         (preserve_value): New function.
37499         (add_uses, add_stores, vt_add_function_parameters): Use it
37500         instead of cselib_preserve_value.
37501         (changed_values_stack): New vector.
37502         (check_changed_vars_0): New function.
37503         (check_changed_vars_1, check_changed_vars_2): Use it.
37504         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
37505         changed_values_stack VALUEs.
37506         (vt_emit_notes): For all preserved_values call
37507         add_cselib_value_chains.  If ENABLE_CHECKING call
37508         remove_cselib_value_chains before verifying value_chains is empty.
37509         Initialize and free changed_values_stack.
37510         (vt_initialize): Initialize preserved_values.
37511         (vt_finalize): Free preserved_values.
37512
37513 2010-03-08  Richard Guenther  <rguenther@suse.de>
37514
37515         PR tree-optimization/43269
37516         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
37517         region detection.
37518
37519 2010-03-08  Martin Jambor  <mjambor@suse.cz>
37520
37521         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
37522         (ipa_is_param_called): Removed.
37523         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
37524         (ipa_print_node_params): Do not print the called flag.
37525         (ipa_write_node_info): Do not stream the called flag.
37526         (ipa_read_node_info): Likewise.
37527
37528 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
37529
37530         PR debug/43176
37531         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
37532         * cselib.c (struct expand_value_data): Add dummy field.
37533         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
37534         dummy to false.
37535         (cselib_dummy_expand_value_rtx_cb): New function.
37536         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
37537         any rtl.
37538         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
37539         * var-tracking.c: Include pointer-set.h.
37540         (variable): Change n_var_parts to char from int.  Add
37541         cur_loc_changed and in_changed_variables fields.
37542         (variable_canonicalize): Remove.
37543         (shared_var_p): New inline function.
37544         (unshare_variable): Maintain cur_loc_changed and
37545         in_changed_variables fields.  If var was in changed_variables,
37546         replace it there with new_var.  Just copy cur_loc instead of
37547         resetting it to something else.
37548         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
37549         (dataflow_set_union): Don't call variable_canonicalize.
37550         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
37551         of their DEBUG_EXPR_TREE_DECLs.
37552         (canonicalize_loc_order_check): Verify that cur_loc is NULL
37553         and in_changed_variables and cur_loc_changed is false.
37554         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
37555         and cur_loc_changed.  Don't update cur_loc here.
37556         (variable_merge_over_src): Don't call variable_canonicalize.
37557         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
37558         removing loc that is equal to cur_loc, clear cur_loc,
37559         set cur_loc_changed and ensure variable_was_changed is called.
37560         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
37561         compare pointers in cur_loc check, if it is equal to loc,
37562         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
37563         (variable_different_p): Remove compare_current_location argument,
37564         don't compare cur_loc.
37565         (dataflow_set_different_1): Adjust variable_different_p caller.
37566         (variable_was_changed): If dv had some var in changed_variables
37567         already, reset in_changed_variables flag for it and propagate
37568         cur_loc_changed over to the new variable.  On empty var
37569         always set cur_loc_changed.  Set in_changed_variables on whatever
37570         var is added to changed_variables.
37571         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
37572         Use shared_var_p.  When removing loc that is equal to cur_loc,
37573         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
37574         end, don't set it to something else, just call variable_was_changed.
37575         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
37576         loc being removed, clear cur_loc and set cur_loc_changed.
37577         Set cur_loc_changed if all locations have been removed.
37578         (struct expand_loc_callback_data): New type.
37579         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
37580         allocated.  Always create SUBREGs if simplify_subreg failed.
37581         Prefer to use cur_loc, when that fails and still in
37582         changed_variables (and seen first time) recompute it.  Set
37583         cur_loc_changed of variables which had to change cur_loc and
37584         compute elcd->cur_loc_changed if any of the subexpressions used
37585         had to change cur_loc.
37586         (vt_expand_loc): Adjust to pass arguments in
37587         expand_loc_callback_data structure.
37588         (vt_expand_loc_dummy): New function.
37589         (emitted_notes): New variable.
37590         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
37591         that weren't used for any other decl in current
37592         emit_notes_for_changes call call vt_expand_loc_dummy to update
37593         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
37594         first loc_chain location if NULL before.  Always use just
37595         cur_loc instead of first loc_chain location.  When cur_loc_changed
37596         is false, when not --enable-checking=rtl just don't emit any note.
37597         When rtl checking, compute the note and assert it is the same
37598         as previous note.  Clear cur_loc_changed and in_changed_variables
37599         at the end before removing from changed_variables.
37600         (check_changed_vars_3): New function.
37601         (emit_notes_for_changes): Traverse changed_vars to call
37602         check_changed_vars_3 on each changed var.
37603         (emit_notes_for_differences_1): Clear cur_loc_changed and
37604         in_changed_variables.  Recompute cur_loc of new_var.
37605         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
37606         (vt_emit_notes): Initialize and destroy emitted_notes.
37607
37608 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
37609
37610         PR rtl-optimization/42220
37611         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
37612         Use verify_reg_tracked to determine if we should use OP_OUT rather
37613         than OP_INOUT.
37614         (build_def_use): If we see an in-out operand for a register that we
37615         know nothing about, treat is an output if possible, fail the block if
37616         not.
37617
37618 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37619
37620         PR debug/42897
37621         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
37622         permanently.
37623
37624 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37625
37626         PR debug/42897
37627         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
37628         uses of relevant DEFs that are dead outside the loop too.
37629
37630 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
37631
37632         * var-tracking.c (dataflow_set_merge): Swap src and src2.
37633         Reverted:
37634         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
37635         PR debug/41371
37636         * var-tracking.c (values_to_unmark): New variable.
37637         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
37638         values_to_unmark vector.  Moved body to...
37639         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
37640         instead queue it into values_to_unmark vector.
37641         (vt_find_locations): Free values_to_unmark vector.
37642
37643 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
37644
37645         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
37646         (site.exp): Export them when plugins are enabled.
37647
37648 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
37649
37650         PR middle-end/42326
37651         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
37652         that contain scevs.
37653         (chrec_fold_multiply): Same.
37654
37655 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
37656
37657         PR c/43248
37658         * c-decl.c (build_compound_literal): Return early if init is
37659         an error_mark_node.
37660
37661 2010-03-04  Martin Jambor  <mjambor@suse.cz>
37662
37663         PR tree-optimization/43164
37664         PR tree-optimization/43191
37665         * tree-sra.c (type_consists_of_records_p): Reject records with
37666         zero-size bit-fields at the end.
37667
37668 2010-03-04  Mike Stump  <mikestump@comcast.net>
37669
37670         * Makefile.in (TAGS): Remove *.y.
37671
37672 2010-03-04  Richard Guenther  <rguenther@suse.de>
37673
37674         PR tree-optimization/40761
37675         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
37676         in reverse order.
37677         (my_rev_post_order_compute): New function.
37678         (init_pre): Call it.
37679
37680 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
37681
37682         PR middle-end/43209
37683         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
37684         decrease the cost of an IV candidate when the cost is infinite.
37685
37686 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37687
37688         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
37689         Use '3DNow!' for the extension of that name, ensure normal space
37690         after the string.
37691         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
37692
37693 2010-03-03  Jeff Law  <law@redhat.com>
37694
37695         * PR middle-end/32693
37696         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
37697         than gen_rtx_SUBREG.
37698         (extract_bit_field_1): Likewise.
37699
37700 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
37701
37702         * doc/sourcebuild.texi (Test directives): Document that arguments
37703         include-opts and exclude-opts are now optional for dg-skip-if,
37704         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
37705
37706 2010-03-03  Jason Merrill  <jason@redhat.com>
37707
37708         PR c++/12909
37709         * cgraph.h (varpool_node): Add extra_name field.
37710         * varpool.c (varpool_extra_name_alias): New.
37711         (varpool_assemble_decl): Emit extra name aliases.
37712         (varpool_mark_needed_node): Look past an extra name alias.
37713         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
37714         * lto-streamer-in.c (lto_input_tree): Read it.
37715         * lto-streamer-out.c (output_unreferenced_globals): Write it.
37716
37717 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
37718
37719         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
37720         (sparc*-*-solaris2*): ...this.
37721
37722 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
37723
37724         PR debug/43229
37725         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
37726         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
37727         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
37728         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
37729
37730         PR debug/43237
37731         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
37732         fallthrough to default handling, just with want_address 0 instead of 2.
37733         For single element lists, add_AT_loc directly, otherwise create an
37734         artificial variable DIE and stick location list to it.
37735
37736         PR debug/43177
37737         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
37738         (VAL_EXPR_HAS_REVERSE): Define.
37739         (reverse_op): New function.
37740         (add_stores): For reversible operations add an extra MO_VAL_USE.
37741
37742 2010-03-02  Jason Merrill  <jason@redhat.com>
37743
37744         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
37745
37746 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
37747
37748         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
37749         (sparc64-*-linux*): Likewise.
37750         (sparc64-*-solaris2*): Include assembler files before linker ones.
37751         (sparc-*-solaris2*): Simplify and reorder to match previous case.
37752         * config/sparc/gas.h: Delete.
37753         * config/sparc/sol2-64.h: Add copyright notice.
37754         * config/sparc/sol2-gas-bi.h: Likewise.
37755         * config/sparc/sol2-gld.h: Likewise.
37756         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
37757         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
37758         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
37759         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
37760         (sparc_elf_asm_named_section): Rename into...
37761         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
37762
37763 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
37764
37765         * config/alpha/alpha.c (override_options): Fix -mtune error message.
37766
37767 2010-03-02  Jeff Law  <law@redhat.com>
37768
37769         PR middle-end/42431
37770         * reload1.c (rtx_p, substitute_stack): Declare.
37771         (substitute): Record addresses of changed rtxs.
37772         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
37773         Restore the original rtx when complete.
37774         (reload): Free subsitute_stack when complete.
37775
37776 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
37777
37778         * doc/gccint.texi (menu): Add Testsuites as a chapter.
37779         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
37780         new chapter.
37781         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
37782         LTO Testing, gcov Testing, profopt Testing, compat Testing,
37783         Torture Tests): Change from subsection to section.
37784
37785 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
37786             Steven Bosscher  <steven@gcc.gnu.org>
37787
37788         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
37789         instead of bb.
37790
37791 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
37792
37793         PR middle-end/42640
37794         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
37795         the assignment from the new induction variable to the assignment
37796         of the value from the original loop PHI function.
37797
37798 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
37799             Daniel Jacobowitz  <dan@codesourcery.com>
37800
37801         * doc/sourcebuild.texi (Test directives): Clarify options to
37802         dg-skip-if.
37803
37804 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37805
37806         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
37807         Disable cfi directives unless GCC and gas agree on using read-only
37808         .eh_frame sections for 64-bit.
37809         * configure: Regenerate.
37810
37811 2010-03-01  Richard Guenther  <rguenther@suse.de>
37812
37813         PR tree-optimization/43220
37814         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
37815         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
37816
37817 2010-03-01  Richard Guenther  <rguenther@suse.de>
37818             Martin Jambor  <mjambor@suse.cz>
37819
37820         PR middle-end/41250
37821         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
37822         gimplified parameters.
37823
37824 2010-03-01  Christian Bruel  <christian.bruel@st.com>
37825
37826         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
37827
37828 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
37829
37830         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
37831
37832 2010-03-01  Richard Guenther  <rguenther@suse.de>
37833
37834         PR middle-end/43213
37835         * expr.c (expand_assignment): Use the alias-oracle to tell
37836         if the rhs aliases the result decl.
37837
37838 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37839
37840         PR pch/14940
37841         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
37842         to sol_gt_pch_get_address.
37843         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
37844         64-bit, SPARC and x86.
37845         (sol_gt_pch_get_address): New function.
37846
37847 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
37848
37849         * toplev.h (inform_n, error_n): Declare.
37850         * diagnostic.c (inform_n, error_n): New function.
37851
37852 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
37853
37854         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
37855         has no rtl yet when processing local_decls, queue it and recheck
37856         if deferred stack allocation hasn't assigned it rtl.
37857
37858 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
37859
37860         * config/sh/sh.c (unspec_bbr_uid): New.
37861         (gen_block_redirect): Use it instead of INSN_UID.
37862         (gen_far_branch): Likewise.
37863
37864 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
37865
37866         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
37867         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
37868
37869 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
37870
37871         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
37872         (Warning Options): -Wno-conversion-null is valid for
37873         Objective-C++ as well.
37874         * doc/tm.texi (Named Address Spaces): Likewise.
37875         * doc/plugins.texi (Plugins): Replace TABs with spaces.
37876         * doc/tree-ssa.texi (Tree SSA): Likewise.
37877
37878 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37879
37880         PR bootstrap/43202
37881         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
37882         by default.  Don't set the default arch for
37883         i[34567]86-*-darwin*|x86_64-*-darwin*.
37884
37885 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37886
37887         PR bootstrap/43202
37888         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
37889         default.  Set the default 32bit/64bit archs with $with_arch
37890         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
37891
37892 2010-02-27  Richard Guenther  <rguenther@suse.de>
37893
37894         PR tree-optimization/43186
37895         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
37896         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
37897         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
37898         unroller iterations.
37899
37900 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
37901
37902         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
37903         required and i[34567]86-*-* targets don't support 64bit ISA.
37904
37905 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
37906
37907         PR ada/43096
37908         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
37909         the same alias set.
37910
37911 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37912
37913         * config.gcc: Set the default arch at least to Prescott for
37914         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
37915         if SSE math is enabled.
37916
37917 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37918
37919         * diagnostic.c (diagnostic_initialize): Update.
37920         (diagnostic_report_diagnostic): Test inhibit_notes_p for
37921         informative notes.
37922         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
37923         (diagnostic_inhibit_notes): New.
37924         * toplev.c (process_options): inhibit notes with -fcompare-debug.
37925
37926 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37927
37928         PR c/20631
37929         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
37930         * doc/standards.texi: Likewise.
37931         * doc/extend.texi: Likewise.
37932         * doc/trouble.texi: Likewise.
37933         * doc/cppopts.texi: Likewise.
37934         * doc/install.texi: Likewise.
37935         * c.opt (std=c90,std=gnu90): New options.
37936         * c-opts.c (c_common_handle_option): Handle them.
37937
37938 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
37939
37940         PR c/24577
37941         * c-decl.c (undeclared_variable): Use an informative note.
37942
37943 2010-02-26  Richard Guenther  <rguenther@suse.de>
37944
37945         PR tree-optimization/43186
37946         * gimple.h (gimple_fold): Remove.
37947         * gimple.c (gimple_fold): Remove.  Inline into single user ...
37948         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
37949         Try harder for conditions.
37950
37951 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37952
37953         PR debug/43190
37954         * function.c (used_types_insert): Don't skip through named pointer
37955         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
37956         and it is different from the main variant's type.
37957
37958 2010-02-26  Nick Clifton  <nickc@redhat.com>
37959
37960         * config/rx/rx.md (sminsi3): Remove bogus alternative.
37961
37962 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
37963
37964         * config.gcc: Support --with-fpmath=sse for x86.
37965
37966         * config/i386/ssemath.h: New.
37967
37968         * doc/install.texi (--with-fpmath=sse): Documented.
37969
37970 2010-02-26  Richard Guenther  <rguenther@suse.de>
37971
37972         PR tree-optimization/43188
37973         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
37974         vector types of over-aligned element type.
37975
37976 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
37977
37978         PR target/43175
37979         * config/i386/i386.c (expand_vec_perm_blend): Use correct
37980         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
37981
37982 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
37983
37984         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
37985
37986 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
37987
37988         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
37989         * var-tracking.c: Include diagnostic.h.
37990         (debug_dv): New function.
37991         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
37992
37993         PR debug/43160
37994         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
37995         (add_value_chain, add_value_chains, remove_value_chain,
37996         remove_value_chains): Handle DEBUG_EXPRs.
37997         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
37998
37999         PR debug/43161
38000         * regcprop.c (struct queued_debug_insn_change): New type.
38001         (struct value_data_entry): Add debug_insn_changes field.
38002         (struct value_data): Add n_debug_insn_changes field.
38003         (debug_insn_changes_pool): New variable.
38004         (free_debug_insn_changes, apply_debug_insn_changes,
38005         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
38006         (kill_value_one_regno): Call free_debug_insn_changes if needed.
38007         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
38008         fields.
38009         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
38010         changes for them.
38011         (copyprop_hardreg_forward_1): Don't call apply_change_group for
38012         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
38013         changes, call cprop_find_used_regs via note_stores.
38014         (copyprop_hardreg_forward): When copying vd from predecessor
38015         which has any queued DEBUG_INSN changes, make sure the pointers are
38016         cleared.  At the end call df_analyze and then if there are any
38017         DEBUG_INSN changes queued at the end of some basic block for still
38018         live registers, apply them.
38019         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
38020
38021 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
38022
38023         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
38024         (arm*-*-*): Ditto.
38025
38026 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
38027
38028         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
38029         targets.  Set the default with_cpu/with_arch from arch/cpu.
38030         Allow x86-64 and native for with_cpu/with_arch.
38031
38032 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
38033
38034         * ebitmap.c: Change calls to verify_popcount with calls to
38035         sbitmap_verify_popcount.
38036         (ebitmap_clear_bit): Fixed map->cacheindex test and
38037         map>cache update when bit clearing results in an empty
38038         element.
38039
38040 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
38041
38042         PR target/43154
38043         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
38044         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
38045         and support both V2DF and V2DI modes.
38046         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
38047         support both V2DF and V2DI modes.
38048         (general): Delete trailing whitespace from a few patterns.
38049
38050         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
38051         V2DF/V2DI interleave high/low builtins.
38052
38053         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
38054         new VSX builtins.
38055
38056         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
38057         interleave high/low functions.
38058
38059 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
38060
38061         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
38062         #pragma extern_prefix.
38063
38064 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
38065
38066         PR debug/43166
38067         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
38068         BLKmode, assert op0 is a MEM and just adjust its mode.
38069
38070         PR debug/43165
38071         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
38072         if bitpos isn't multiple of mode's bitsize.
38073
38074 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38075
38076         * c.opt (-ftemplate-depth=): New.
38077         (-ftemplate-depth-): Deprecate.
38078         * optc-gen.awk: Handle -ftemplate-depth=.
38079         * opth-gen.awk: Likewise.
38080         * c-opts.c (c_common_handle_option): Likewise.
38081         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
38082
38083 2010-02-24  Jason Merrill  <jason@redhat.com>
38084
38085         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
38086
38087 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38088
38089         * cfg.c (alloc_aux_for_block): Remove inline.
38090         (alloc_aux_for_edge): Likewise.
38091
38092 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38093
38094         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
38095
38096 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38097
38098         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
38099         * config/i386/sol2-gas.h: New file.
38100         * config.gcc (i[34567]86-*-solaris2*): Use it.
38101
38102 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38103
38104         PR c/43128
38105         * c-typeck.c (ep_convert_and_check): New.
38106         (build_conditional_expr): Use it.
38107         (build_binary_op): Likewise.
38108
38109 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
38110
38111         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
38112
38113         PR debug/43150
38114         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
38115         bounds even for -O+.
38116         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
38117         expr needs to have DECL_NAME set.
38118
38119 2010-02-24  Nick Clifton  <nickc@redhat.com>
38120
38121         * config/mep/mep.c: Include gimple.h.
38122         (mep_function_uses_sp): Delete unused function.
38123         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
38124         parameters.  Use unsigned integers to count args.  Return a
38125         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
38126
38127 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
38128
38129         PR target/43107
38130         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
38131         greater or equal to nelt instead of 2 * nelt.
38132         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
38133         with nelt - 1.
38134
38135 2010-02-23  Jason Merrill  <jason@redhat.com>
38136
38137         PR debug/42800
38138         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
38139         in cfun->local_decls even if they have register types.
38140
38141         PR c++/42837
38142         * stor-layout.c (place_field): Don't warn about unnecessary
38143         DECL_PACKED if the type is packed.
38144
38145 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
38146
38147         PR target/43139
38148         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
38149         GOTOFF relocs, even when the base reg isn't pic pointer.
38150
38151 2010-02-23  Michael Matz  <matz@suse.de>
38152
38153         PR debug/43077
38154         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
38155         (expand_gimple_basic_block): Generate and use debug temps if there
38156         are debug uses left after the last real use of TERed ssa names.
38157         Unlink debug immediate uses when they are expanded.
38158
38159 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38160
38161         PR 43123
38162         * config/i386/i386.c (override_options): Reorganise to provide
38163         better error messages.
38164
38165 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38166
38167         PR middle-end/43083
38168         * graphite-scop-detection.c (create_single_exit_edge): Move
38169         the call to find_single_exit_edge to....
38170         (create_sese_edges): ...here.  Don't handle multiple edges
38171         exiting the function.
38172         (build_graphite_scops): Don't handle multiple edges
38173         exiting the function.
38174
38175 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38176
38177         PR middle-end/43097
38178         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
38179         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
38180
38181 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
38182
38183         PR middle-end/43026
38184         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
38185
38186 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38187
38188         PR c++/43126
38189         * c-typeck.c (convert_arguments): Print declaration location.
38190         * c-common.c (validate_nargs): Rename as
38191         builtin_function_validate_nargs.
38192         (check_builtin_function_arguments): Update.
38193
38194 2010-02-22  Richard Guenther  <rguenther@suse.de>
38195
38196         PR lto/43045
38197         * tree-inline.c (declare_return_variable): Use the type of
38198         the call stmt lhs if available.
38199
38200 2010-02-22  Duncan Sands  <baldrick@free.fr>
38201
38202         * passes.c (register_pass): Always consider all pass lists when
38203         ref_pass_instance_number is zero.
38204
38205 2010-02-22  Richard Guenther  <rguenther@suse.de>
38206
38207         PR tree-optimization/42749
38208         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
38209         parameter.  Do arithmetic in the original type.
38210         (update_accumulator_with_ops): Likewise.
38211         (adjust_accumulator_values): Adjust.
38212
38213 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38214
38215         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
38216         (QI to BLKmode splitter): New splitter.
38217
38218 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
38219
38220         * config/i386/i386.c (initial_ix86_tune_features): Turn on
38221         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
38222
38223 2010-02-22  Richard Guenther  <rguenther@suse.de>
38224
38225         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
38226
38227 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
38228
38229         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
38230         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
38231         ($(T)crti.o, $(T)crtn.o): Remove rules.
38232
38233 2010-02-21  Tobias Burnus  <burnus@net-b.de>
38234
38235         PR fortran/35259
38236         * doc/invoke.texi (-fassociative-math): Document that this
38237         option is automatically enabled for Fortran.
38238
38239 2010-02-20  David S. Miller  <davem@davemloft.net>
38240
38241         * configure.ac: Test if linker and assembler properly support
38242         GOTDATA_OP relocations.
38243         * configure: Rebuild.
38244         * config.in: Likewise.
38245         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
38246         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
38247         (movsi_high_pic): Likewise.
38248         (movdi_lo_sum_pic): Likewise.
38249         (movdi_high_pic): Likewise.
38250         (movsi_pic_gotdata_op): New pattern.
38251         (movdi_pic_gotdata_op): Likewise.
38252         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
38253         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
38254
38255 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
38256
38257         PR target/43067
38258         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
38259         attribute to ssemul.
38260         (xop_mulv2div2di3_high): Ditto.
38261
38262 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38263
38264         PR c++/35669
38265         * c.opt (Wconversion-null): New option.
38266         * doc/invoke.texi (Wconversion-null): Document.
38267
38268 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38269
38270         * common.opt (Wlarger-than-): Add Undocumented.
38271
38272 2010-02-19  Mike Stump  <mikestump@comcast.net>
38273
38274         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
38275
38276 2010-02-19  Jason Merrill  <jason@redhat.com>
38277
38278         PR target/40332
38279         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
38280         * configure: Likewise.
38281
38282 2010-02-20  Alan Modra  <amodra@gmail.com>
38283
38284         PR middle-end/42344
38285         * cgraph.h (cgraph_make_decl_local): Declare.
38286         * cgraph.c (cgraph_make_decl_local): New function.
38287         (cgraph_make_node_local): Use it.
38288         * cgraphunit.c (cgraph_function_versioning): Likewise.
38289         * ipa.c (function_and_variable_visibility): Likewise.
38290
38291 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38292
38293         PR bootstrap/43121
38294         * except.c (sjlj_emit_function_enter): Don't call
38295         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
38296         directly.
38297         * rtl.h (add_reg_br_prob_note): Remove prototype.
38298
38299 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38300
38301         PR 41779
38302         * c-common.c (conversion_warning): Remove widening conversions
38303         before checking the conversion of integers to reals.
38304
38305 2010-02-19  Mike Stump  <mikestump@comcast.net>
38306
38307         PR middle-end/43125
38308         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
38309
38310         PR objc/43061
38311         * cgraphunit.c (process_function_and_variable_attributes): Check
38312         DECL_PRESERVE_P instead of looking up attribute "used".
38313         * ipa-pure-const.c (check_decl): Likewise.
38314         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
38315         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
38316         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
38317         instead of attribute "used".
38318         * config/sol2-c.c (solaris_pragma_init): Likewise.
38319         (solaris_pragma_fini): Likewise.
38320
38321 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38322
38323         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
38324         Use XCNEW instead of xcalloc.
38325         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
38326         XNEW instead of xmalloc.
38327         (get_fields): Use XNEWVEC instead of xmalloc.
38328
38329         PR debug/43084
38330         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
38331         populate vars array.
38332         (create_new_general_access): For debug stmts just reset value.
38333         (get_stmt_accesses): For accesses within debug stmts just record them
38334         using add_access_to_acc_sites instead of preventing the peeling or
38335         counting them as accesses.
38336
38337         PR middle-end/42233
38338         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
38339
38340 2010-02-19  Richard Guenther  <rguenther@suse.de>
38341
38342         PR tree-optimization/42916
38343         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
38344         instructions.
38345
38346 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
38347
38348         * configure.ac: Replace all uses of changequote in macro arguments
38349         with proper quoting.
38350
38351 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38352
38353         PR middle-end/42233
38354         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
38355
38356 2010-02-19  Richard Guenther  <rguenther@suse.de>
38357
38358         PR tree-optimization/42944
38359         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
38360         test for aliasing with errno.
38361
38362 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
38363
38364         PR middle-end/42233
38365         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
38366         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
38367         * dojump.c: Include output.h.
38368         (inv): New inline function.
38369         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
38370         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
38371         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
38372         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
38373         argument, pass it down to other calls.
38374         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
38375         add REG_BR_PROB note to the conditional jump.
38376         * cfgexpand.c (add_reg_br_prob_note): Removed.
38377         (expand_gimple_cond): Don't call it, add the probability
38378         as last argument to jumpif_1/jumpifnot_1.
38379         * Makefile.in (dojump.o): Depend on output.h.
38380         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
38381         callers.
38382         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
38383         * stmt.c (do_jump_if_equal): Likewise.
38384         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
38385         * loop-unswitch.c (compare_and_jump_seq): Likewise.
38386         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
38387         Likewise.
38388         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
38389         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
38390         jumpifnot_1 callers.
38391         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
38392         callers.
38393         (store_expr): Adjust jumpifnot caller.
38394         (store_constructor): Adjust jumpif caller.
38395
38396         PR middle-end/42233
38397         * gimplify.c (gimple_boolify): For __builtin_expect call
38398         gimple_boolify also on its first argument.
38399
38400 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
38401
38402         * configure.ac (gnu-unique-object): Wrap regexps using [] in
38403         changequote block.
38404         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
38405         * configure: Regenerated.
38406
38407 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
38408
38409         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
38410         lang_hooks.types_compatible_p instead of comptypes.
38411
38412 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
38413
38414         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
38415         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
38416         if __prefer_thumb__ is defined.
38417
38418 2010-02-18  Martin Jambor  <mjambor@suse.cz>
38419
38420         PR tree-optimization/43066
38421         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
38422         array with zero-sized element type.
38423
38424 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
38425
38426         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
38427         rtx, allocate struct var_loc_node here and return it to the
38428         caller, and only if it is actually needed.
38429         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
38430         move it earlier and return immediately if it returns NULL.
38431
38432 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
38433
38434         * config/sparc/gas.h: New file.  Restore
38435         TARGET_ASM_NAMED_SECTION to its ELF default.
38436         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
38437         check !HAVE_GNU_AS.
38438         * config/sparc/sparc.c (sparc_elf_asm_named_section):
38439         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
38440         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
38441         after sparc/sysv4.h.
38442
38443 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
38444
38445         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
38446
38447 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
38448
38449         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
38450         patterns from predicated pattern.
38451
38452 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
38453
38454         PR target/43103
38455         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
38456         for insn mnemonic suffix.
38457
38458 2010-02-17  Richard Guenther  <rguenther@suse.de>
38459
38460         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
38461         to loop PHI nodes.
38462
38463 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
38464
38465         PR debug/42918
38466         * caller-save.c (save_call_clobbered_regs): If BB ends with
38467         a DEBUG_INSN, move any notes in between last real insn and the last
38468         DEBUG_INSN after the last DEBUG_INSN.
38469
38470 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
38471
38472         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
38473         Fix return type.  Fix argument type.  Explain meaning of return value.
38474
38475 2010-02-16  Richard Guenther  <rguenther@suse.de>
38476
38477         PR tree-optimization/41043
38478         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
38479         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
38480         statements ...
38481         (vrp_visit_phi_node): ... but only for loop PHI nodes.
38482
38483 2010-02-16  Ira Rosen  <irar@il.ibm.com>
38484
38485         PR tree-optimization/43074
38486         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
38487         * tree-vect-loop.c (vect_analyze_loop_operations): Add
38488         vectorizable cycles in hybrid SLP check.
38489         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
38490
38491 2010-02-16  Richard Guenther  <rguenther@suse.de>
38492
38493         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
38494         (true_dependence): If memrefs_conflict_p computes must-alias
38495         trust it.  Move TBAA check after offset-based disambiguation.
38496         (canon_true_dependence): Likewise.
38497
38498 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
38499
38500         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
38501         * doc/invoke.texi: Document it.
38502         * var-tracking.c: Include toplev.h and params.h.
38503         (vt_find_locations): Return bool indicating success.  Compute
38504         hash sizes unconditionally.  Check new parameter, report.
38505         (variable_tracking_main_1): Check vt_find_locations results and
38506         retry.  Renamed from...
38507         (variable_tracking_main): ... this.  New wrapper to preserve
38508         flag_var_tracking_assignments.
38509         * Makefile.in (var-tracking.o): Adjust dependencies.
38510
38511 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
38512             Jakub Jelinek  <jakub@redhat.com>
38513
38514         PR target/42854
38515         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
38516         if weak_import attribute is present.
38517         * config/darwin.c (machopic_select_section): Likewise.
38518
38519 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
38520
38521         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
38522         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
38523         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
38524         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
38525
38526         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
38527         types.
38528
38529         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
38530         Fix argument types.
38531
38532         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
38533         Rewrite text to refer to the names.
38534
38535 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
38536
38537         * config/i386/i386-builtin-types.def
38538         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
38539         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
38540         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
38541         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
38542         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
38543         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
38544         IX86_BUILTIN_VPERMIL2PS256.
38545         (MULTI_ARG_4_DF2_DI_I): Defined.
38546         (MULTI_ARG_4_DF2_DI_I1): Defined.
38547         (MULTI_ARG_4_SF2_SI_I): Defined.
38548         (MULTI_ARG_4_SF2_SI_I1): Defined.
38549         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
38550         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
38551         __builtin_ia32_vpermil2ps256.
38552         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38553         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38554         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
38555         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
38556         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
38557         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
38558         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
38559         CODE_FOR_xop_vpermil2v8sf3.
38560         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
38561         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
38562         * config/i386/xopintrin.h (_mm_permute2_pd): New.
38563         (_mm256_permute2_pd): New.
38564         (_mm_permute2_ps): New.
38565         (_mm256_permute2_ps): New.
38566
38567 2010-02-15  Nick Clifton  <nickc@redhat.com>
38568
38569         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
38570         boolean parameters.  Use emit_jump_insn when emitting a pop
38571         instruction containing a return insn.
38572         (push): Use 'true' rather than '1' as second parameter to F.
38573         (h8300_expand_prologue): Likewise.
38574         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
38575         (h8300_expand_epilogue): Likewise.
38576
38577 2010-02-15  Richard Guenther  <rguenther@suse.de>
38578
38579         PR middle-end/43068
38580         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
38581         if that is zero.
38582
38583 2010-02-15  Nick Clifton  <nickc@redhat.com>
38584
38585         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
38586         delta.
38587
38588 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
38589
38590         * intl.c (fake_ngettext): New function.
38591         * intl.h (fake_ngettext): Declare.
38592         (ngettext): Define macro.
38593         * collect2.c (notice_translated): New function.
38594         (main): Use notice_translated and ngettext.
38595         * collect2.h (notice_translated): Declare.
38596
38597 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
38598
38599         * reorg.c (delete_computation): Comment fixes.
38600         * caller-save.c (setup_save_areas): Idem.
38601         * sel-sched-dump.c (dump_lv_set): Idem.
38602         * rtl.def: Idem.
38603
38604 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
38605
38606         * config/s390/s390.c (s390_sched_init): New function.
38607         (TARGET_SCHED_INIT): Target hook defined.
38608
38609 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
38610             Jack Howarth  <howarth@bromo.med.uc.edu>
38611             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
38612
38613         PR target/42982
38614         Partial revert of unintended change in fix for PR41605.
38615         * config/darwin.h: Fix typo.
38616         * config/darwin9.h: Same.
38617
38618 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38619
38620         * c-pch.c (pch_init): Clear v.
38621
38622 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38623
38624         PR middle-end/42930
38625         * graphite-scop-detection.c (graphite_can_represent_scev): Call
38626         graphite_can_represent_init for MULT_EXPR.
38627
38628 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38629
38630         PR middle-end/42914
38631         PR middle-end/42530
38632         * graphite-sese-to-poly.c (remove_phi): New.
38633         (translate_scalar_reduction_to_array): Call remove_phi.
38634
38635 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38636
38637         PR middle-end/42771
38638         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
38639         * graphite-clast-to-gimple.h (gloog): Update declaration.
38640         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
38641         * graphite-poly.h (struct poly_bb): Add missing comments.
38642         (struct scop): Add poly_scop_p field.
38643         (POLY_SCOP_P): New.
38644         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
38645         * graphite.c (graphite_transform_loops): Build the polyhedral
38646         representation for each scop before code generation.
38647         * sese.c (rename_variables_in_operand): Removed.
38648         (rename_variables_in_expr): Return the renamed expression.
38649         (rename_sese_parameters): New.
38650         * sese.h (rename_sese_parameters): Declared.
38651
38652 2010-02-11  Richard Guenther  <rguenther@suse.de>
38653
38654         PR tree-optimization/42998
38655         * tree-ssa-pre.c (create_expression_by_pieces): Treat
38656         POINTER_PLUS_EXPR properly.
38657
38658 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
38659             Changpeng Fang  <changpeng.fang@amd.com>
38660
38661         PR middle-end/40886
38662         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
38663         the cost of an IV candidate when the IV is used in a test against zero.
38664
38665         * gcc.dg/tree-ssa/ivopts-3.c: New.
38666
38667 2010-02-11  Richard Guenther  <rguenther@suse.de>
38668
38669         PR lto/41664
38670         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
38671         pointer-vs-decl case by swapping refs.  Handle some cases
38672         of pointer-vs-decl disambiguations more conservatively.
38673         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
38674         to false after expanding.
38675
38676 2010-02-11  Richard Guenther  <rguenther@suse.de>
38677
38678         PR driver/43021
38679         * gcc.c (process_command): Handle LTO file@offset case more
38680         appropriately.
38681
38682 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
38683
38684         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
38685         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
38686         of DEBUG_INSNs.
38687         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
38688
38689         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
38690         if MEM's mode size isn't DWARF2_ADDR_SIZE.
38691         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
38692         Optimize eq/ne comparisons when both arguments are known to be
38693         zero-extended.
38694         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
38695         Don't mask operands unnecessarily if they are known to be already
38696         zero-extended.
38697
38698 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
38699
38700         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
38701         instead of loop.
38702
38703 2010-02-10  Richard Guenther  <rguenther@suse.de>
38704
38705         PR tree-optimization/43017
38706         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
38707         for wrapping signed arithmetic.
38708
38709 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38710
38711         PR debug/43010
38712         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
38713         if no debug info should be emitted for it.
38714
38715 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
38716
38717         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
38718         note when flag_exceptions is set.
38719
38720 2010-02-10  Duncan Sands  <baldrick@free.fr>
38721
38722         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
38723
38724 2010-02-10  Richard Guenther  <rguenther@suse.de>
38725
38726         PR c/43007
38727         * tree.c (get_unwidened): Handle constants.
38728         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
38729
38730 2010-02-10  Martin Jambor  <mjambor@suse.cz>
38731
38732         PR lto/42985
38733         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
38734         check for variable argument counts independently.
38735
38736 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38737
38738         PR target/42841
38739         * config/sh/sh.c (find_barrier): Increase length for non delayed
38740         conditional branches.
38741
38742 2010-02-10  Christian Bruel  <christian.bruel@st.com>
38743
38744         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
38745
38746 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
38747
38748         * builtins.c (set_builtin_user_assembler_name): Also handle
38749         ffs if int is smaller than word.
38750
38751 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
38752
38753         PR middle-end/42973
38754         * ira-conflicts.c (get_dup): Remove.
38755         (process_reg_shuffles): Add new parameter.  Use it as an
38756         additional guard for copy generation.
38757         (add_insn_allocno_copies): Rewrite.
38758
38759 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
38760
38761         * common.opt (fsched2-use-traces): Preserved for backward
38762         compatibility.
38763         * doc/invoke.texi: Remove the documentation about option
38764         -fsched2-use-traces.
38765         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
38766         flag_sched2_use_traces.
38767         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
38768         the backward compatibility flag section.
38769
38770 2010-02-09  Richard Guenther  <rguenther@suse.de>
38771
38772         PR tree-optimization/43008
38773         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
38774         make HEAP variables initialized from global memory if they
38775         are not known builtin functions.
38776         (find_func_aliases): Adjust.
38777
38778 2010-02-09  Richard Guenther  <rguenther@suse.de>
38779
38780         PR tree-optimization/43000
38781         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
38782         arithmetic manually.
38783
38784 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
38785
38786         PR tree-optimization/42931
38787         * tree-loop-linear.c (try_interchange_loops): Don't call
38788         double_int_mul if estimated_loop_iterations failed.
38789
38790 2010-02-08  Martin Jambor  <mjambor@suse.cz>
38791
38792         PR middle-end/42898
38793         * tree-sra.c (build_accesses_from_assign): Do not mark in
38794         should_scalarize_away_bitmap if stmt has volatile ops.
38795         (sra_modify_assign): Do not process assigns piecemeal if if stmt
38796         has volatile ops.
38797
38798 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
38799
38800         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
38801
38802 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
38803
38804         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
38805         before the pattern.
38806
38807 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
38808
38809         PR middle-end/42946
38810         * df-core.c (df_finish_pass): Change type of saved_flags to int.
38811
38812 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38813
38814         PR middle-end/42988
38815         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
38816         to unknown_dependence.
38817         (graphite_legal_transform_dr): Handle the unknown_dependence.
38818         (graphite_carried_dependence_level_k): Same.
38819
38820 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
38821
38822         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
38823
38824 2010-02-07  Richard Guenther  <rguenther@suse.de>
38825
38826         PR middle-end/42991
38827         * expr.c (get_inner_reference): Always initialize *pbitsize.
38828
38829 2010-02-07  Richard Guenther  <rguenther@suse.de>
38830
38831         PR middle-end/42956
38832         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
38833         new ARRAY_REFs on variable size element or minimal index arrays.
38834         Complete.
38835         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
38836         gimple_fold_indirect_ref.
38837
38838 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
38839
38840         PR target/42957
38841         * arm.c (arm_override_options): Just return if the user has specified
38842         an invalid fpu name.
38843
38844 2010-02-03  Jason Merrill  <jason@redhat.com>
38845
38846         PR c++/42870
38847         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
38848         i386_pe_maybe_record_exported_symbol.
38849
38850 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
38851
38852         PR target/42924
38853         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
38854         (pa_delegitimize_address): New function.
38855
38856 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
38857
38858         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
38859         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
38860
38861 2010-02-05  Richard Guenther  <rguenther@suse.de>
38862
38863         PR lto/42762
38864         * lto-streamer-in.c (get_resolution): Deal with references
38865         to undefined functions.
38866
38867 2010-02-05  Richard Guenther  <rguenther@suse.de>
38868
38869         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
38870         (fold_const_aggregate_ref): Likewise.
38871         (ccp_fold_stmt): Substitute loads.
38872         (maybe_fold_reference): Verify types before substituting.
38873         Unshare properly.
38874         (fold_gimple_assign): Unshare properly.
38875         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
38876
38877 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
38878
38879         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
38880         for rs6000_gen_cell_microcode.
38881
38882 2010-02-04  Richard Guenther  <rguenther@suse.de>
38883
38884         PR rtl-optimization/42952
38885         * dse.c (const_or_frame_p): Remove MEM handling.
38886
38887 2010-02-04  Nick Clifton  <nickc@redhat.com>
38888
38889         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
38890         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
38891         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
38892         (mn10300_asm_output_mi_thunk): New function.
38893         (mn10300_can_output_mu_thunk): New function.
38894         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
38895         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
38896         (FUNCTION_ARG): Delete incorrect comment.
38897
38898 2010-02-03  Jason Merrill  <jason@redhat.com>
38899
38900         PR c++/40138
38901         * fold-const.c (operand_equal_p): Handle erroneous types.
38902
38903 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
38904
38905         * config/h8300/h8300.md (can_delay): Fix attibute condition.
38906
38907 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
38908
38909         PR rtl-optimization/42941
38910         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
38911         of xmalloc.
38912
38913 2010-02-03  Jason Merrill  <jason@redhat.com>
38914
38915         PR c++/35652
38916         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
38917
38918 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
38919
38920         PR debug/42896
38921         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
38922         (cselib_reset_table): Renamed from...
38923         (cselib_reset_table_with_next_value): ... this.
38924         (cselib_get_next_uid): Renamed from...
38925         (cselib_get_next_unknown_value): ... this.
38926         * cselib.c (next_uid): Renamed from...
38927         (next_unknown_value): ... this.
38928         (cselib_clear_table): Adjust.
38929         (cselib_reset_table): Adjust.  Renamed from...
38930         (cselib_reset_table_with_next_value): ... this.
38931         (cselib_get_next_uid): Adjust.  Renamed from...
38932         (cselib_get_next_unknown_value): ... this.
38933         (get_value_hash): Use hash.
38934         (cselib_hash_rtx): Likewise.
38935         (new_cselib_val): Adjust.  Set and dump uid.
38936         (cselib_lookup_mem): Pass next_uid as hash.
38937         (cselib_subst_to_values): Likewise.
38938         (cselib_log_lookup): Dump uid.
38939         (cselib_lookup): Pass next_uid as hash.  Adjust.
38940         (cselib_process_insn): Adjust.
38941         (cselib_init): Initialize next_uid.
38942         (cselib_finish): Adjust.
38943         (dump_cselib_table): Likewise.
38944         * dse.c (canon_address): Dump value uid.
38945         * print-rtl.c (print_rtx): Print value uid.
38946         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
38947         (dvuid): New type.
38948         (dv_uid): New function, sort of renamed from...
38949         (dv_htab_hash): ... this, reimplemented in terms of it and...
38950         (dv_uid2hash): ... this.  New.
38951         (variable_htab_eq): Drop excess assertions.
38952         (tie_break_pointers): Removed.
38953         (canon_value_cmp): Compare uids.
38954         (variable_post_merge_New_vals): Print uids.
38955         (vt_add_function_parameters): Adjust.
38956         (vt_initialize): Reset table.  Adjust.
38957
38958 2010-02-03  Richard Guenther  <rguenther@suse.de>
38959
38960         PR tree-optimization/42944
38961         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
38962         (call_may_clobber_ref_p_1): Likewise.  Properly handle
38963         malloc and calloc clobbering errno.
38964
38965 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
38966
38967         * doc/invoke.texi: Fix name of sched1 dump.
38968
38969         * opts.c (decode_options): Set flag_tree_switch_conversion
38970         only conditionally on optimize >= 2.
38971
38972         * gcse.c: Assorted comment fixes in pass description.
38973
38974 2010-02-03  Anthony Green  <green@moxielogic.com>
38975
38976         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
38977         nop padding in order to maintain alignment of storage location of
38978         target function address.
38979         (moxie_trampoline_init): Store target function address at newly
38980         aligned location.
38981         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
38982         to 32.
38983         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
38984
38985 2010-02-03  Richard Guenther  <rguenther@suse.de>
38986
38987         PR middle-end/42927
38988         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
38989
38990 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38991
38992         * config.gcc: Reenable check for obsolete targets.
38993         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
38994         mips-sgi-irix6.[0-4]*.
38995
38996 2010-02-02  Nick Clifton  <nickc@redhat.com>
38997
38998         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
38999         constant size of 4 as being the same as 0.
39000         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
39001         can take values in the range 0..4.
39002
39003 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
39004
39005         PR java/41991
39006         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
39007         as _darwin10_Unwind_FindEnclosingFunction().
39008         * libgcc-libsystem.ver: New.
39009
39010 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
39011
39012         PR target/41399
39013         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
39014         implicitly set registers.
39015
39016 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
39017
39018         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
39019         (arm_override_options): Allow automatic selection of the thread
39020         pointer register if thumb2.
39021         (legitimize_pic_address): Improve code sequences for Thumb2.
39022         (arm_call_tls_get_addr): Likewise.
39023         (legitimize_tls_address): Likewise.
39024         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
39025         (pic_load_addr_32bit): ... this.  New named pattern.
39026         * thumb2.md (pic_load_addr_thumb2): Delete.
39027         (pic_load_dot_plus_four): Delete.
39028         (tls_load_dot_plus_four): New named pattern.
39029
39030 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39031
39032         PR libgomp/29986
39033         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
39034         Document fix for TLS bug.
39035
39036 2010-01-31  Richard Guenther  <rguenther@suse.de>
39037
39038         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
39039         conservatively correct.
39040
39041 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39042
39043         PR target/42850
39044         Revert:
39045         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
39046
39047         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
39048
39049 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
39050
39051         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
39052
39053 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
39054
39055         * config.gcc: Adjust order of makefile fragments for mingw targets.
39056
39057 2010-01-31  Richard Guenther  <rguenther@suse.de>
39058
39059         PR middle-end/42898
39060         * gimplify.c (gimplify_init_constructor): For volatile LHS
39061         initialize a temporary.
39062
39063 2010-01-31  Matthias Klose  <doko@ubuntu.com>
39064
39065         * configure.ac: Fix __stack_chk_fail check for cross builds configured
39066         --with-headers
39067         * configure: Regenerate.
39068
39069 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
39070
39071         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
39072         the same alias set and their sizes different constantness.
39073         (aliasing_component_refs_p): Revert 2009-10-24 change.
39074
39075 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39076
39077         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
39078         unused.
39079
39080 2010-01-29  Richard Guenther  <rguenther@suse.de>
39081
39082         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
39083         Assert we successfully updated the call.
39084
39085 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
39086
39087         PR rtl-optimization/42889
39088         * df.h (df_set_bb_dirty_nonlr): New prototype.
39089         * df-core.c (df_set_bb_dirty_nonlr): New function.
39090         * df-scan.c (df_insn_rescan): Call it instead of
39091         df_set_bb_dirty for DEBUG_INSNs.
39092
39093 2010-01-29  Richard Guenther  <rguenther@suse.de>
39094
39095         PR middle-end/37448
39096         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
39097         quadratic behavior in most cases.
39098
39099 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
39100
39101         PR target/42891
39102         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
39103         in the call to gen_x86_movsicc_0_m1.
39104
39105 2010-01-28  Richard Guenther  <rguenther@suse.de>
39106
39107         PR tree-optimization/42871
39108         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
39109
39110 2010-01-28  Richard Guenther  <rguenther@suse.de>
39111
39112         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
39113         into call arguments.
39114
39115 2010-01-28  Richard Guenther  <rguenther@suse.de>
39116
39117         PR middle-end/42883
39118         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
39119         the forwarder if the destination is an EH landing pad.
39120
39121 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
39122
39123         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
39124         block list passed to gimple_duplicate_sese_tail.
39125         (parallelize_loops): Avoid parallelization when the function
39126         has_nonlocal_label.
39127         Avoid parallelization when the preheader is IRREDUCIBLE.
39128         Try to optimize when estimated_loop_iterations_int is unresolved.
39129         Add the loop's location to the dump file.
39130         * tree-cfg.c (add_phi_args_after_redirect): Remove.
39131         (gimple_duplicate_sese_tail): Remove the check for the latch.
39132         Redirect nexits to the exit block.
39133         Remove handling of the incoming edges to the latch.
39134         Redirect the backedge from the copied latch to the exit bb.
39135
39136 2010-01-28  Michael Matz  <matz@suse.de>
39137
39138         PR target/42881
39139         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
39140         Wrap force_reg into a sequence, emit it before user.
39141
39142 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
39143
39144         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
39145         (arm_rev): New.
39146         (arm_legacy_rev): Likewise.
39147         (thumb_legacy_rev): Likewise.
39148
39149 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
39150
39151         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
39152         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
39153         on MEM's address failed, try avoid_constant_pool_reference and
39154         recurse if it returned something different.
39155         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
39156         address, try avoid_constant_pool_reference and recurse if it
39157         returned something different.
39158         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
39159         address and avoid_constant_pool_reference returned something
39160         different, don't set have_address.
39161
39162 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
39163
39164         PR debug/42861
39165         * var-tracking.c (val_store): Add modified argument, obey it.
39166         Adjust callers.
39167         (count_uses): Move down logging of main.
39168         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
39169         don't need resolution.
39170         (emit_notes_in_bb): Likewise.
39171
39172 2010-01-27  Richard Guenther  <rguenther@suse.de>
39173
39174         PR middle-end/42878
39175         * tree-inline.c (remap_decl): Delay remapping of SSA name
39176         default definitions until we need them.
39177
39178 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
39179
39180         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
39181         (rs6000_delegitimize_address): New function.
39182
39183         * config/s390/s390.c (s390_delegitimize_address): Call
39184         delegitimize_mem_from_attrs.
39185
39186         PR middle-end/42874
39187         * tree-inline.c (cannot_copy_type_1): Removed.
39188         (copy_forbidden): Don't forbid copying of functions containing
39189         records/unions with variable length fields.
39190
39191 2010-01-27  Christian Bruel  <christian.bruel@st.com>
39192
39193         Revert:
39194         PR target/42841
39195         * config/sh/sh.c (find_barrier): Increase length for non delayed
39196         conditional branches.
39197
39198 2010-01-27  Matthias Klose  <doko@ubuntu.com>
39199
39200         * configure.ac (gnu-unique-object): Fix ldd version check.
39201         * configure: Regenerate.
39202
39203 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39204
39205         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
39206         HAVE_GNU_AS value.
39207         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
39208         Test for HAVE_GNU_AS value.
39209
39210 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39211
39212         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
39213         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
39214         INT64_TYPE): Define.
39215         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
39216         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
39217         INT_LEAST64_TYPE): Define.
39218         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
39219         UINT_LEAST64_TYPE): Define.
39220         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
39221         INT_FAST64_TYPE): Define.
39222         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
39223         UINT_FAST64_TYPE): Define.
39224         (INTMAX_TYPE, UINTMAX_TYPE): Define.
39225         (INTPTR_TYPE, UINTPTR_TYPE): Define.
39226         (SIG_ATOMIC_TYPE): Define.
39227
39228 2010-01-26  Richard Guenther  <rguenther@suse.de>
39229
39230         * df-scan.c (df_scan_set_bb_info): Remove assert.
39231         (df_insn_rescan_debug_internal): Merge asserts.
39232         (df_install_ref): Likewise.
39233         (df_mark_reg): Use bitmap_set_range.
39234         (df_hard_reg_used_p): Remove assert.
39235         (df_hard_reg_used_count): Likewise.
39236
39237 2010-01-26  Richard Guenther  <rguenther@suse.de>
39238
39239         PR rtl-optimization/42685
39240         * web.c (web_main): Ignore DEBUG_INSNs.
39241
39242 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
39243
39244         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
39245
39246         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
39247         Fix types of fndecl and arglist parameters.
39248
39249 2010-01-26  Richard Guenther  <rguenther@suse.de>
39250
39251         PR middle-end/42806
39252         * tree-eh.c (unsplit_eh): Skip debug insns.
39253
39254 2010-01-26  Richard Guenther  <rguenther@suse.de>
39255
39256         PR tree-optimization/42250
39257         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
39258
39259 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
39260
39261         PR fortran/42866
39262         * omp-low.c (expand_omp_sections): Only use single_pred if
39263         l2_bb is single_pred_p.
39264
39265 2010-01-25  Christian Bruel  <christian.bruel@st.com>
39266
39267         PR target/42841
39268         * config/sh/sh.c (find_barrier): Increase length for non delayed
39269         conditional branches.
39270         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
39271
39272 2010-01-24  David S. Miller  <davem@davemloft.net>
39273
39274         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
39275         define if not using GAS.
39276         * config/sparc/sparc.c (sparc_elf_asm_named_section):
39277         Likewise.  Delete SECTION_MERGE code, which is only applicable
39278         when using GAS.
39279
39280 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
39281
39282         PR c++/42748
39283         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
39284         mangling of va_list in system headers.
39285
39286 2010-01-23  Toon Moene  <toon@moene.org>
39287
39288         * tree-predcom.c (combine_chains): Return NULL, not false.
39289
39290 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
39291
39292         * tree-loop-distribution.c (distribute_loop): Fix declaration and
39293         initialization of variable res to agree with return type.
39294
39295 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
39296
39297         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
39298         * tree-sra.c: Add include of expr.h.
39299
39300 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
39301
39302         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
39303         insert the debug stmt on the single non-EH edge from the stmt.
39304
39305 2010-01-22  Richard Henderson  <rth@redhat.com>
39306
39307         PR tree-opt/42833
39308         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
39309         the RHS until after generate_subtree_copies has insertted its
39310         code before the current statement.
39311
39312 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
39313
39314         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
39315
39316         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
39317
39318 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39319
39320         PR tree-optimization/42585
39321         * tree-sra.c (struct access): New field grp_total_scalarization.
39322         (dump_access): Dump the new field.
39323         (should_scalarize_away_bitmap): New variable.
39324         (cannot_scalarize_away_bitmap): Likewise.
39325         (sra_initialize): Allocate new bitmaps.
39326         (sra_deinitialize): Free new bitmaps.
39327         (create_access_1): New function.
39328         (create_access): Parts moved to create_access_1.
39329         (type_consists_of_records_p): New function.
39330         (completely_scalarize_record): Likewise.
39331         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
39332         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
39333         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
39334         access.
39335         (analyze_all_variable_accesses): Completely scalarize small eligible
39336         records.
39337
39338 2010-01-21  Martin Jambor  <mjambor@suse.cz>
39339
39340         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
39341
39342 2010-01-21  Andrew Haley  <aph@redhat.com>
39343
39344         * gcc.c (process_command): Move lang_specific_driver before
39345         setting cc_libexec_prefix.
39346
39347 2010-01-21  Richard Guenther  <rguenther@suse.de>
39348
39349         PR middle-end/19988
39350         * fold-const.c (negate_expr_p): Pretend only negative
39351         real constants are easily negatable.
39352
39353 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
39354             Jason Merrill  <jason@redhat.com>
39355
39356         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
39357         (TYPE_TRANSPARENT_AGGR): this, for union and record.
39358         * calls.c (initialize argument_information): Handle it.
39359         * c-common.c (handle_transparent_union_attribute): Use new name.
39360         * c-decl.c (finish_struct): Ditto.
39361         * c-typeck.c (type_lists_compatible_p): Ditto.
39362         (convert_for_assignment): Use new name and also handle record.
39363         * function.c (aggregate_value_p): Handle it.
39364         (pass_by_reference): Ditto.
39365         (assign_parm_data_types): Ditto.
39366         * print-tree.c (print_node): Ditto.
39367         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
39368         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
39369         * tree.c (first_field): New fn.
39370
39371 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
39372
39373         PR target/42818
39374         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
39375         even when linking statically, for now.
39376
39377 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39378
39379         PR debug/42715
39380         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
39381         without a cselib val.
39382         (count_uses): Accept MO_VAL_SET with no val on stores.
39383         (add_stores): Likewise.
39384
39385 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39386
39387         * var-tracking.c (check_value_val): Add a compile time assertion.
39388         (dv_is_decl_p): Simplify.
39389         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
39390         gcc_assert if ENABLE_CHECKING.
39391
39392 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
39393
39394         PR debug/42782
39395         * var-tracking.c: Include tree-flow.h.
39396         (mem_dies_at_call): New.
39397         (dataflow_set_preserve_mem_locs): Use it.
39398         (dataflow_set_remove_mem_locs): Likewise.
39399         (dump_var): Renamed from dump_variable.  Adjust all callers.
39400         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
39401         * Makefile.in (var-tracking.o): Adjust deps.
39402
39403 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
39404
39405         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
39406
39407 2010-01-20  Richard Guenther  <rguenther@suse.de>
39408
39409         PR tree-optimization/42717
39410         * tree-ssa-dce.c (get_live_post_dom): Remove.
39411         (forward_edge_to_pdom): Take an arbitrary edge to copy
39412         degenerate PHI args from.
39413         (remove_dead_stmt): Use the first post-dominator even if it
39414         does not contain live statements as redirection destination.
39415
39416 2010-01-20  Richard Guenther  <rguenther@suse.de>
39417
39418         * tree-inline.c (estimate_num_insns): Handle EH builtins.
39419
39420 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39421
39422         * sel-sched.c (create_speculation_check): Remove set but not used
39423         variable twin.
39424         (try_transformation_cache): Remove set but not used variable ds.
39425         (calculate_privileged_insns): Remove set but not used variables
39426         cur_insn and min_spec_insn.
39427         (find_best_expr): Remove set but not used variable avail_n.
39428         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
39429         variable e.
39430         * cgraphunit.c (assemble_thunk): Remove set but not used variable
39431         false_label.
39432         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
39433         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
39434         new_scop_exit_edge.
39435
39436 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
39437
39438         PR bootstrap/42786
39439         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
39440         cpu types.  Add support for *-sse3 cpu types.
39441         (x86_64-*-*): Ditto.
39442
39443 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39444
39445         PR middle-end/42803
39446         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
39447         argument, call initializer_constant_valid_p_1 instead of
39448         initializer_constant_valid_p, pass CACHE to it, return NULL
39449         immediately if first call returns NULL.
39450         (initializer_constant_valid_p_1): New function.
39451         (initializer_constant_valid_p): Use it.
39452
39453 2010-01-20  Thomas Quinot  <quinot@adacore.com>
39454
39455         * tree.def (PLACEHOLDER_EXPR): Fix comment.
39456
39457 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
39458
39459         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
39460         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
39461         (loc_list_from_tree): Don't handle unsigned division.  Handle
39462         signed modulo using DW_OP_{over,over,div,mul,minus}.
39463         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
39464         modulo instead of signed.
39465
39466 2010-01-20  DJ Delorie  <dj@redhat.com>
39467
39468         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
39469         (Fpa): Pass it
39470         (h8300_emit_stack_adjustment): Propogate it.
39471         (push): Pass it.
39472         (h8300_expand_prologue): Likewise.
39473         (h8300_expand_epilogue): Likewise.
39474
39475 2010-01-19  Michael Matz  <matz@suse.de>
39476
39477         PR tree-optimization/41783
39478         * tree-data-ref.c (toplevel): Include flags.h.
39479         (dump_data_dependence_relation):  Also dump the inputs if the
39480         result will be unknown.
39481         (split_constant_offset_1): Look through some conversions.
39482         * tree-predcom.c (determine_roots_comp): Restart a new chain if
39483         the offset from last element is too large.
39484         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
39485         (reassociate_to_the_same_stmt): Handle vector registers.
39486         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
39487         (e.g. conversions).
39488         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
39489         wide_prolog_niters argument, emit widening instructions.
39490         (vect_do_peeling_for_alignment): Adjust caller, use widened
39491         variant of the iteration cound.
39492         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
39493
39494 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
39495
39496         PR target/38697
39497         * config/arm/neon-testgen.m (emit_automatics): New parameter
39498         features. Adjust for Fixed_return_reg feature.
39499         (test_intrinsic): Call emit_automatics with new feature.
39500         * config/arm/neon.ml: Update copyright years.
39501         (features): New Fixed_return_reg feature.
39502         (ops): Update feature for Vget_low.
39503
39504 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
39505
39506         PR tree-optimization/42719
39507         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
39508         stmt uses.
39509
39510         PR debug/42728
39511         * fwprop.c (all_uses_available_at): Return false if def_set dest
39512         is a REG that is used in def_insn.
39513
39514 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
39515
39516         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
39517
39518         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
39519         Add argument names.
39520
39521         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
39522
39523         * target.h (struct gcc_target) <secondary_reload>: Change type
39524         of last argument to secondary_reload_info *.
39525
39526 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
39527
39528         PR target/42774
39529         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
39530         memory references with unaligned offsets.  Remove CQImode handling.
39531         (unaligned_memory_operand): Return 1 for memory references with
39532         unaligned offsets.  Remove CQImode handling.
39533
39534 2010-01-18  Richard Guenther  <rguenther@suse.de>
39535
39536         PR middle-end/39954
39537         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
39538         builtin calls.
39539
39540 2010-01-18  Richard Guenther  <rguenther@suse.de>
39541
39542         PR tree-optimization/42781
39543         * tree-ssa-structalias.c (find_what_var_points_to): Skip
39544         restrict processing only if the original variable was artificial.
39545
39546 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
39547
39548         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
39549         find number of popped argument bytes.
39550
39551         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
39552         Fix the text that describes the return value for invalid insns.
39553
39554         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
39555
39556         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
39557         Clarify what 'cost of the -dependence' is.  Fix quoting.
39558
39559         * toplev.c (default_get_pch_validity): Rename argument to "sz".
39560         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
39561
39562 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
39563
39564         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
39565         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
39566
39567 2010-01-17  Richard Guenther  <rguenther@suse.de>
39568
39569         PR middle-end/42248
39570         * function.c (split_complex_args): Take a VEC to modify.
39571         (assign_parms_augmented_arg_list): Build a VEC instead of
39572         a chain of PARM_DECLs.
39573         (assign_parms_unsplit_complex): Take a VEC of arguments.
39574         Do not fixup unmodified parms.
39575         (assign_parms): Deal with the VEC.
39576         (gimplify_parameters): Likewise.
39577
39578 2010-01-17  Richard Guenther  <rguenther@suse.de>
39579
39580         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
39581         node existence check.
39582         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
39583         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
39584         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
39585         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
39586         (gimple_execute_on_growing_pred): Likewise.
39587
39588 2010-01-17  Richard Guenther  <rguenther@suse.de>
39589
39590         PR tree-optimization/42773
39591         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
39592         (compute_antic_aux): Likewise.
39593         (compute_partial_antic_aux): Likewise.
39594
39595 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
39596
39597         PR debug/42767
39598         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
39599         and US_TRUNCATE.
39600
39601 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
39602
39603         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
39604         appearance.
39605
39606         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
39607         Fix markup for strict argument.
39608
39609         (TARGET_SCHED_REORDER2): Fix argument types.
39610
39611         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
39612         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
39613
39614         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
39615         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
39616
39617         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
39618         Add argument name.
39619
39620         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
39621         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
39622         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
39623         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
39624         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
39625
39626         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
39627
39628         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
39629
39630         (TARGET_ASM_RELOC_RW_MASK): Add return type.
39631         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
39632
39633         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
39634
39635         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
39636         Use prototype.
39637
39638         (TARGET_ASM_NAMED_SECTION): Fix argument list.
39639
39640         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
39641         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
39642
39643         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
39644
39645         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
39646
39647         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
39648         referring to it.  Fix language.
39649
39650         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
39651
39652         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
39653
39654         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
39655
39656         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
39657
39658         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
39659         '@var{stream}.  Remove stray 'and'.
39660
39661         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
39662
39663         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
39664
39665         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
39666
39667         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
39668         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
39669
39670         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
39671         Fix description of return value.
39672         Rename argument "sz" to "len."
39673
39674         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
39675         Clarify meaning of 'true' return value.
39676
39677         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
39678
39679         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
39680         rep_mode versus mode_rep.
39681
39682         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
39683
39684         (TARGET_BUILTIN_DECL): Fix name.
39685
39686         (TARGET_COMMUTATIVE_P): Fix type of first argument.
39687
39688         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
39689
39690         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
39691
39692         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
39693
39694         (TARGET_RELAXED_ORDERING): Use @deftypevr.
39695
39696         (TARGET_GET_DRAP_RTX): Note that this is a hook.
39697         Clarify language.
39698
39699         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
39700         Rename argument tm_fn to md_fn.
39701
39702         (TARGET_OPTION_PRINT): Fix argument list.
39703
39704 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
39705
39706         PR target/42664
39707         * config/i386/i386.c (ix86_fixup_binary_operands):
39708         Revert FMA4 fixup of operands.
39709
39710 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
39711
39712         PR other/42525
39713         * Makefile.in (write_entries_to_file, install-plugin):
39714         Use \012 instead of \n with tr.
39715
39716 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
39717
39718         * configure.ac (HAVE_AS_REF): New C macro.
39719         * configure: Regenerate.
39720         * config.in: Likewise.
39721         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
39722         if HAVE_AS_REF.
39723         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
39724         if HAVE_AS_REF.
39725
39726 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
39727
39728         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
39729
39730         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
39731
39732         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
39733
39734         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
39735
39736         (TARGET_IN_SMALL_DATA_P): Fix argument type.
39737
39738         (TARGET_BINDS_LOCAL_P): Fix argument type.
39739
39740         (TARGET_ASM_FILE_END): Use prototype.
39741
39742         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
39743
39744         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
39745
39746         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
39747
39748         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
39749
39750         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
39751         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
39752
39753         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
39754         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
39755
39756         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
39757         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
39758         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
39759         (TARGET_ADDR_SPACE_CONVERT): Likewise.
39760
39761         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
39762
39763         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
39764
39765         (TARGET_INIT_BUILTINS): Use prototype.
39766
39767         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
39768         Put 'const char *' in braces.  Fix parameter types.
39769         (TARGET_INVALID_CONVERSION): Fix parameter types.
39770         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
39771         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
39772
39773         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
39774         Fix argument type.
39775
39776         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
39777
39778         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
39779
39780 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
39781
39782         * doc/tm.texi (TARGET_HELP): Fix return type.
39783
39784         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
39785         in braces.  Fix argument types.
39786
39787         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
39788
39789         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
39790
39791         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
39792
39793         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
39794         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
39795
39796         (TARGET_MANGLE_TYPE): Fix argument types.
39797
39798         (TARGET_IRA_COVER_CLASSES): Use prototype.
39799
39800         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
39801
39802         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
39803
39804         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
39805
39806         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
39807
39808         (TARGET_CALLEE_COPIES): Fix argument types.
39809
39810         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
39811
39812         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
39813
39814         (TARGET_FUNCTION_VALUE): Fix argument types.
39815
39816         (TARGET_RETURN_IN_MSB): Fix argument type.
39817
39818         (TARGET_RETURN_IN_MEMORY): Fix argument types.
39819
39820         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
39821
39822         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
39823
39824         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
39825         agree with return type.
39826
39827         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
39828
39829 2010-01-15  Jing Yu  <jingyu@google.com>
39830
39831         PR rtl-optimization/42691
39832         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
39833         a pseudo to a constant and are merged, and adjust comments.
39834
39835 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39836
39837         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
39838
39839 2010-01-15  Richard Guenther  <rguenther@suse.de>
39840
39841         PR middle-end/42739
39842         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
39843         labels of computed or non-local gotos to the destination.
39844         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
39845         landing pad label is the first label.
39846
39847 2010-01-15  Richard Guenther  <rguenther@suse.de>
39848
39849         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
39850
39851 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
39852
39853         PR target/42747
39854         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
39855         to allow generation of the xssqrtdp instruction on power7.
39856         (sqrtdf2_fpr): Ditto.
39857
39858 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39859
39860         PR middle-end/42674
39861         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
39862         functions with noreturn attribute.
39863
39864         PR c++/42608
39865         * varasm.c (declare_weak): Add weak attribute to decl if it
39866         doesn't have one already.
39867         (assemble_external): Only add decls to weak_decls if they also
39868         have weak attribute.
39869
39870 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
39871
39872         * var-tracking.c (var_reg_delete): Don't delete the association
39873         between REGs and values or one-part variables if the register
39874         isn't clobbered.
39875
39876 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
39877
39878         PR debug/42657
39879         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
39880         because its first operand is a non-localized variable.
39881
39882 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39883
39884         PR tree-optimization/42706
39885         * tree-sra.c (encountered_recursive_call): New variable.
39886         (encountered_unchangable_recursive_call): Likewise.
39887         (sra_initialize): Initialize both new variables.
39888         (callsite_has_enough_arguments_p): New function.
39889         (scan_function): Call decl and flags check only for IPA-SRA, check
39890         whether there is a recursive call and whether it has enough arguments.
39891         (all_callers_have_enough_arguments_p): New function.
39892         (convert_callers): Look for recursive calls only when
39893         encountered_recursive_call is set.
39894         (ipa_early_sra): Bail out either if
39895         !all_callers_have_enough_arguments_p or
39896         encountered_unchangable_recursive_call.
39897
39898 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39899
39900         * sel-sched.c: Add 2010 to copyright years.
39901         * sel-sched-ir.c: Likewise.
39902         * sel-sched-ir.h: Likewise.
39903
39904 2010-01-14  Martin Jambor  <mjambor@suse.cz>
39905
39906         PR tree-optimization/42714
39907         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
39908         constructors specially.
39909
39910 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39911
39912         * config/i386/drivers-i386.c (detect_caches_intel):
39913         Add l2sizekb parameter and fill in.
39914         (host_detect_local_cpu): Add l2sizekb, fill in.
39915         Add Atom small cache heuristic.
39916
39917 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39918
39919         * config/i386/drivers-i386.c (detect_caches_cpuid4):
39920         Add level3 parameter and fill in.
39921         (detect_caches_intel): Handle level3 cache.
39922
39923 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39924
39925         * config/i386/drivers-i386.c (host_detect_local_cpu):
39926         Fix core duo detection.
39927
39928 2010-01-14  Andi Kleen  <ak@linux.intel.com>
39929
39930         * config/i386/drivers-i386.c (host_detect_local_cpu):
39931         Fix Atom detection.
39932
39933 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39934
39935         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
39936         (rs6000_variable_issue_1): this.  Use...
39937         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
39938
39939 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39940
39941         * sel-sched-ir.c (sel_restore_other_notes): Rename to
39942         sel_restore_notes.  Update all callers.  Call reemit_notes
39943         for all insns.
39944
39945 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39946
39947         PR rtl-optimization/42246
39948         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
39949         loops.
39950
39951 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39952
39953         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
39954         all successors is the same as number of successors in current region.
39955
39956 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39957
39958         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
39959         to rename is not separable.  Otherwise check that its LHS is not NULL.
39960
39961 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39962
39963         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
39964
39965 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
39966
39967         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
39968         available registers when failed to discover LHS register class.
39969         Fix indentation.  Update comment.
39970
39971 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39972             Alexander Monakov  <amonakov@ispras.ru>
39973
39974         PR rtl-optimization/42389
39975         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
39976         to can_issue_more.
39977         (advance_state_on_fence): Likewise.
39978         (sel_target_adjust_priority): Print debug output only when
39979         sched_verbose >= 4, not 2.
39980         (get_expr_cost): Do not issue all unique insns on the next cycle.
39981         (fill_insns): Initialize can_issue_more from the value saved
39982         with the fence.
39983         * sel-sched-ir.c (flist_add): New parameter issue_more.
39984         Init FENCE_ISSUE_MORE with it.
39985         (merge_fences): Likewise.
39986         (init_fences): Update call to flist_add.
39987         (add_to_fences, add_clean_fence_to_fences)
39988         (add_dirty_fence_to_fences): Likewise.
39989         (move_fence_to_fences): Update call to merge_fences.
39990         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
39991         sched groups.
39992         * sel-sched-ir.h (struct _fence): New field issue_more.
39993         (FENCE_ISSUE_MORE): New accessor macro.
39994
39995 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
39996
39997         PR rtl-optimization/42388
39998         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
39999         that have no predecessors nor successors.  Do not call move_bb_info
40000         for empty blocks outside of current region.
40001
40002 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
40003
40004         PR rtl-optimization/42294
40005         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
40006         * sel-sched.c (move_exprs_to_boundary): Transitively add all
40007         originators' originators.
40008
40009 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
40010
40011         PR rtl-optimization/39453
40012         PR rtl-optimization/42246
40013         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
40014         for pipelining_p.
40015         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
40016
40017 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
40018             Alexander Monakov  <amonakov@ispras.ru>
40019
40020         PR middle-end/42245
40021         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
40022         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
40023         argument.  Update all callers.
40024         (tidy_control_flow): ... and here.  Recompute topological order
40025         of basic blocks in region if necessary.
40026         (sel_redirect_edge_and_branch): Change return type.  Return true
40027         if topological order might have been invalidated.
40028         (purge_empty_blocks): Export and move from...
40029         * sel-sched.c (purge_empty_blocks): ... here.
40030         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
40031         (maybe_tidy_empty_bb): Delete prototype.
40032         (purge_empty_blocks): Declare.
40033
40034 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
40035
40036         PR rtl-optimization/42249
40037         * sel-sched.c (try_replace_dest_reg): When chosen register
40038         and original register is the same, do not bail out early, but
40039         still check all original insns for validity of replacing destination
40040         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
40041         in this case.
40042
40043 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
40044
40045         PR c/42721
40046         Port from no-undefined-overflow branch:
40047         2009-03-09  Richard Guenther  <rguenther@suse.de>
40048
40049         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
40050
40051 2010-01-14  Richard Guenther  <rguenther@suse.de>
40052
40053         PR lto/42665
40054         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
40055
40056 2010-01-14  Ira Rosen  <irar@il.ibm.com>
40057
40058         PR tree-optimization/42709
40059         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
40060         as scalar type in creation of constant vector operand.
40061
40062 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
40063
40064         PR testsuite/42414
40065         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
40066         (check-parallel-%): Match `testsuite' directory component only
40067         at the end.
40068
40069 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
40070
40071         PR translation/39521
40072         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
40073         strings with _().
40074
40075 2010-01-13  Richard Guenther  <rguenther@suse.de>
40076
40077         PR tree-optimization/42730
40078         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
40079         offset zero.
40080
40081 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
40082
40083         PR target/pr42542
40084         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
40085         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
40086         them signed.
40087
40088 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
40089
40090         * config/bfin/libgcc-bfin.ver: Regenerate based on current
40091         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
40092         ___umulsi3_highpart.
40093
40094         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
40095         rather than schedule_insns if the pass is enabled.
40096
40097 2010-01-13  Martin Jambor  <mjambor@suse.cz>
40098
40099         PR tree-optimization/42704
40100         * tree-sra.c (sra_modify_assign): Do not delete assignments to
40101         SSA_NAMEs.
40102
40103 2010-01-13  Martin Jambor  <mjambor@suse.cz>
40104
40105         PR tree-optimization/42703
40106         * tree-sra.c (analyze_access_subtree): Check that we can build a
40107         reference to the original data within the aggregate.
40108
40109 2010-01-13  Richard Guenther  <rguenther@suse.de>
40110
40111         PR tree-optimization/42705
40112         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
40113
40114 2010-01-13  Richard Guenther  <rguenther@suse.de>
40115
40116         PR middle-end/42716
40117         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
40118
40119 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
40120
40121         PR debug/41371
40122         * var-tracking.c (values_to_unmark): New variable.
40123         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
40124         values_to_unmark vector.  Moved body to...
40125         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
40126         instead queue it into values_to_unmark vector.
40127         (vt_find_locations): Free values_to_unmark vector.
40128
40129 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
40130
40131         * config/s390/s390.c (override_options): Set
40132         default of max-pending-list-length to 256
40133
40134 2010-01-13  Richard Guenther  <rguenther@suse.de>
40135
40136         PR lto/42678
40137         * tree-pass.h (PROP_gimple_lcx): New.
40138         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
40139         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
40140         before the final cleanup_eh.
40141         (dump_properties): Dump PROP_gimple_lcx.
40142         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
40143         (tree_lower_complex_O0): Remove.
40144         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
40145         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
40146         tree_lower_complex, schedule TODO_update_ssa.
40147         * lto-streamer-out.c (output_function): Stream the functions
40148         properties.
40149         * lto-streamer-in.c (input_function): Likewise.
40150         (lto_read_body): Do not override them here.
40151
40152 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
40153
40154         PR c/42708
40155         * c-typeck.c (build_c_cast): Fold value cast to union type before
40156         wrapping it in a CONSTRUCTOR.
40157
40158 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
40159
40160         PR rtl-optimization/42699
40161         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
40162         involved.
40163
40164 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40165
40166         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
40167         SUBTARGET_WARN_UNUSED_SPEC): Move ...
40168         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
40169         SUBTARGET_WARN_UNUSED_SPEC): ... here
40170         * config/mips/iris5.h (LIBGCC_SPEC): Define.
40171
40172 2010-01-12  Julian Brown  <julian@codesourcery.com>
40173
40174         * config/arm/neon-schedgen.ml (Utils): Don't try to
40175         open missing module.
40176         (find_with_result): New.
40177
40178 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
40179
40180         PR debug/42662
40181         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
40182         sharing when canonicalizing ({lt,ge}u (plus a b) b).
40183
40184         PR tree-optimization/42645
40185         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
40186         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
40187         decl_map, set processing_debug_stmt to -1 and return name without
40188         any remapping.
40189
40190 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
40191
40192         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
40193         binutils version, and reword target configuration description.
40194
40195 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40196
40197         * config/avr/avr.h (LINKER_NAME): Remove.
40198
40199 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
40200
40201         PR target/42416
40202         * config/rs6000/rs6000.c (rs6000_override_options): On targets
40203         that support VSX, warn for -mno-altivec if vsx is not disabled,
40204         and disable vsx.
40205
40206 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
40207             Shujing Zhao  <pearly.zhao@oracle.com>
40208
40209         PR translation/42469
40210         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
40211         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
40212         character between option name and help text.
40213         * c.opt (imultilib): Likewise.
40214
40215 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
40216
40217         * lto-streamer-out.c (output_unreferenced_globals): Output static
40218         variables.
40219
40220 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
40221
40222         PR rtl-optimization/42621
40223         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
40224         optimizing for size.
40225         (duplicate_computed_gotos): Remove now-redundant check.
40226
40227 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
40228
40229         PR target/37454
40230         * configure.ac: Save and restore LDFLAGS and LIBS
40231         * configure: Regenerate.
40232
40233 2010-01-10  Richard Guenther  <rguenther@suse.de>
40234
40235         PR middle-end/42667
40236         * builtins.c (fold_builtin_strlen): Add type argument and
40237         convert the resulting length to it.
40238         (fold_builtin_1): Adjust.
40239
40240 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40241
40242         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
40243         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
40244         1 insn.
40245         (num_insns_constant_wide): Adjust for that change.
40246
40247 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40248
40249         PR debug/42631
40250         * web.c (union_defs): Add used argument, to combine uses of
40251         uninitialized regs.
40252         (entry_register): Adjust type and tests of used argument.
40253         (web_main): Widen used for new use.  Pass it to union_defs.
40254         * df.h (union_defs): Adjust prototype.
40255
40256 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40257
40258         PR debug/42630
40259         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
40260         uses in new incoming argument.  Free body.
40261         (reset_debug_uses_in_loop): New.
40262         (analyze_insn_to_expand_var): Call the latter if the former found
40263         anything.  Fix whitespace.  Reject invalid dest overlaps before
40264         going through all insns in the loop.
40265
40266 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40267
40268         PR debug/42629
40269         * haifa-sched.c (dying_use_p): Debug insns don't count.
40270
40271 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40272
40273         PR middle-end/42363
40274         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
40275         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
40276         (verify_gimple_call): Reject LHS in noreturn calls.
40277
40278 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40279
40280         PR debug/42604
40281         PR debug/42395
40282         * tree-vect-loop-manip.c (adjust_info): New type.
40283         (adjust_vec): New pointer to vector.
40284         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
40285         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
40286         (slpeel_update_phis_for_duplicate_loop): Use them.
40287         (slpeel_update_phi_nodes_for_guard1): Likewise.
40288         (slpeel_update_phi_nodes_for_guard2): Likewise.
40289         (slpeel_tree_peel_loop_to_edge): Likewise.
40290         (vect_update_ivs_after_vectorizer): Likewise.
40291
40292 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40293
40294         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
40295         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
40296
40297 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
40298
40299         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
40300         bogus uninitialized warning.
40301
40302 2010-01-09  Richard Guenther  <rguenther@suse.de>
40303
40304         PR middle-end/42512
40305         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
40306         the evolution is compatible with the initial condition.
40307
40308 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
40309
40310         * gcc.c (process_command): Update copyright notice dates.
40311         * gcov.c (print_version): Likewise.
40312         * gcov-dump.c (print_version): Likewise.
40313         * mips-tfile.c (main): Likewise.
40314         * mips-tdump.c (main): Likewise.
40315
40316 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
40317
40318         PR target/41885
40319         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
40320         (rotlhi3): Delete.
40321         (rotlhi3_8): Delete.
40322         (rotlsi3): Delete.
40323         (rotlsi3_8): Delete.
40324         (rotlsi3_16): Delete.
40325         (rotlsi3_24): Delete.
40326         (rotl<mode>3): New.
40327         (*rotw<mode>3): New.
40328         (*rotb<mode>3): New.
40329         * config/avr/avr.c (avr_rotate_bytes): New function.
40330         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
40331
40332 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
40333
40334         PR target/37454
40335         * configure.ac: Modify -rdynamic check.
40336         * configure: Regenerate.
40337
40338 2010-01-08  DJ Delorie  <dj@redhat.com>
40339
40340         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
40341         register popping order.
40342
40343 2010-01-08  Richard Guenther  <rguenther@suse.de>
40344
40345         PR lto/42528
40346         * c.opt (fsigned-char): Also let LTO handle this option.
40347         (funsigned-char): Likewise.
40348
40349 2010-01-07  Richard Guenther  <rguenther@suse.de>
40350
40351         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
40352         (gimple_op): Likewise.
40353         (gimple_op_ptr): Likewise.
40354         (gimple_assign_set_lhs): Remove gcc_assert.
40355         (gimple_assign_set_rhs1): Likewise.
40356         (gimple_assign_set_rhs2): Likewise.
40357         (gimple_call_set_lhs): Likewise.
40358         (gimple_call_set_fn): Likewise.
40359         (gimple_call_set_fndecl): Likewise.
40360         (gimple_call_fndecl): Likewise.
40361         (gimple_call_return_type): Likewise.
40362         (gimple_call_set_chain): Likewise.
40363         (gimple_call_num_args): Likewise.
40364         (gimple_call_set_arg): Likewise.
40365         (gimple_cond_set_code): Likewise.
40366         (gimple_cond_set_lhs): Likewise.
40367         (gimple_cond_set_rhs): Likewise.
40368         (gimple_cond_set_true_label): Likewise.
40369         (gimple_cond_set_false_label): Likewise.
40370         (gimple_label_set_label): Likewise.
40371         (gimple_goto_set_dest): Likewise.
40372         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
40373         (gimple_debug_bind_get_value): Likewise.
40374         (gimple_debug_bind_get_value_ptr): Likewise.
40375         (gimple_debug_bind_set_var): Likewise.
40376         (gimple_debug_bind_set_value): Likewise.
40377         (gimple_debug_bind_reset_value): Likewise.
40378         (gimple_debug_bind_has_value_p): Likewise.
40379         (gimple_return_retval_ptr): Remove gcc_assert.
40380         (gimple_return_retval): Likewise.
40381         (gimple_return_set_retval): Likewise.
40382         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
40383         (safe_referenced_var_iterator): Remove.
40384         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
40385         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
40386         (fill_referenced_var_vec): Remove.
40387         (first_readonly_imm_use): Remove redundant gcc_assert.
40388         (phi_arg_index_from_use): Combine gcc_asserts.
40389         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
40390         (first_imm_use_stmt): Remove redundant gcc_assert.
40391         * tree-cfg.c (verify_gimple_call): Verify function and chain
40392         operands.  Verify arguments.
40393         (verify_types_in_gimple_stmt): Verify condition code and labels.
40394
40395 2010-01-07  Richard Guenther  <rguenther@suse.de>
40396
40397         PR tree-optimization/42641
40398         * sese.c (rename_map_elt_info): Use the SSA name version, do
40399         not hash pointers.
40400
40401 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
40402
40403         PR tree-optimization/42625
40404         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
40405         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
40406
40407 2010-01-07  Duncan Sands  <baldrick@free.fr>
40408
40409         * Makefile.in (PLUGIN_HEADERS): Add version.h.
40410
40411 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
40412
40413         PR target/42511
40414         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
40415         note itself is not function_invariant_p.
40416
40417 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
40418
40419         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
40420         Do not add the DF_NOTE problem.
40421         * store-motion.c (execute_rtl_store_motion): Likewise.
40422
40423 2010-01-07  Martin Jambor  <mjambor@suse.cz>
40424
40425         PR tree-optimization/42157
40426         * tree-sra.c (compare_access_positions): Stabilize sort if both
40427         accesses have integer types, return zero immediately if they are the
40428         same.
40429
40430 2010-01-06  Richard Henderson  <rth@redhat.com>
40431
40432         PR middle-end/41883
40433         * haifa-sched.c (add_to_note_list): Merge into ...
40434         (concat_note_lists): ... here, and ...
40435         (unlink_other_notes, rm_other_notes): Merge into...
40436         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
40437         NOTE_INSN_EPILOGUE_BEG.
40438
40439 2010-01-06  Richard Guenther  <rguenther@suse.de>
40440
40441         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
40442         not inline regular functions into always-inline functions.
40443
40444 2010-01-06  Nick Clifton  <nickc@redhat.com>
40445
40446         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
40447         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
40448         used together.
40449         (OVERRIDE_OPTIONS): Delete.
40450         (OPTIMIZATION_OPTIONS): Define.
40451         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
40452         * config/rx/rx.c (rx_handle_option): Issue an error message if
40453         -mcpu=rx200 and -fpu are used together.
40454         (rx_set_optimization_options): New function.  Issue an error
40455         message if an optimization attribute attempts to reset the FPU/
40456         math optimization pairing.
40457         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
40458         * config/rx/rx.opt: Set the default to 32-bit doubles.
40459         * config/rx/t-rx: Add multilibs for -nofpu option.
40460         * doc/invoke.texi: Update documentation of RX options.
40461
40462 2010-01-06  Richard Guenther  <rguenther@suse.de>
40463
40464         * tree-ssa-pre.c (name_to_id): New global.
40465         (alloc_expression_id): Simplify SSA name handling.
40466         (lookup_expression_id): Likewise.
40467         (init_pre): Zero name_to_id.
40468         (fini_pre): Free it.
40469
40470 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
40471
40472         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
40473
40474 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
40475
40476         PR target/42542
40477         * config/i386/sse.md (smaxv2di3): New.
40478         (umaxv2di3): Likewise.
40479         (sminv2di3): Likewise.
40480         (uminv2di3): Likewise.
40481
40482 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40483
40484         PR target/42564
40485         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
40486         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
40487         (legitimize_tls_address): Likewise.
40488         (sparc_tls_referenced_p): Likewise.
40489         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
40490         and adjust calls to legitimize_pic_address.
40491         (legitimate_constant_p) Use sparc_tls_referenced_p.
40492         (legitimate_pic_operand_p): Likewise.
40493         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
40494         (sparc_tls_symbol_ref_1): Delete.
40495         (sparc_tls_referenced_p): Make static, recognize specific patterns.
40496         (legitimize_tls_address): Make static, handle CONST patterns.
40497         (legitimize_pic_address): Make static, remove unused parameter and
40498         adjust recursive calls.
40499         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
40500         and adjust call to legitimize_pic_address.
40501         (sparc_output_mi_thunk): Likewise.
40502
40503 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
40504             H.J. Lu  <hongjiu.lu@intel.com>
40505
40506         PR target/42542
40507         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
40508         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
40509         operands to make them signed.
40510
40511         Revert:
40512         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40513
40514         PR target/42542
40515         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40516         GTU to GT for V4SI and V2DI.
40517
40518         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40519         (umin<mode>3): Removed.
40520         (uminv8hi3): New.
40521         (uminv4si3): Likewise.
40522
40523 2010-01-05  Martin Jambor  <mjambor@suse.cz>
40524
40525         PR tree-optimization/42462
40526         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
40527         current_function_decl to helper functions and macros.
40528
40529 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40530
40531         PR bootstrap/41771
40532         * flags.h: Don't include real.h.
40533         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
40534         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
40535         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
40536         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
40537         * dominance.c: Update copyright.
40538         * gimple.c (walk_gimple_op): Remove inline.
40539         * tree-ssa-reassoc.c: Include real.h.
40540         * Makefile.in (FLAGS_H): Remove $(REAL_H).
40541         (tree-ssa-reassoc.o): Depend on $(REAL_H).
40542
40543 2010-01-05  Nick Clifton  <nickc@redhat.com>
40544
40545         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
40546         register to push into the stack frame when the accumulator has to
40547         be saved during interrupts.
40548
40549 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
40550
40551         * doc/invoke.texi: Remove the documentation about option
40552         -Wunreachable-code.
40553         * common.opt (Wunreachable-code):  Preserved for backward
40554         compatibility.
40555         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
40556         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
40557         the backward compatibility flag section.
40558
40559 2010-01-05  Richard Guenther  <rguenther@suse.de>
40560
40561         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
40562
40563 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
40564
40565         PR other/42611
40566         * cfgexpand.c (expand_one_var): Diagnose too large variables.
40567
40568         PR tree-optimization/42508
40569         * tree-sra.c (convert_callers): Check for recursive call
40570         by comparing cgraph nodes instead of decls.
40571         (modify_function): Call ipa_modify_formal_parameters also
40572         on all same_body aliases.
40573
40574         * cgraphunit.c (cgraph_materialize_all_clones): Compare
40575         cgraph nodes when checking for same_body aliases.
40576
40577 2010-01-05  Richard Guenther  <rguenther@suse.de>
40578
40579         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
40580         allocation and lookup.
40581         (get_or_alloc_expr_for_constant): Likewise.
40582         (phi_translate): Sink allocation.
40583
40584 2010-01-04  Richard Guenther  <rguenther@suse.de>
40585
40586         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
40587         a new entry only if needed.
40588         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
40589         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
40590         hashtable lookup.
40591         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
40592         the result array.
40593         (phi_translate): Handle CONSTANTs early.
40594
40595 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40596
40597         PR tree-optimization/42398
40598         * tree-sra.c (struct access): Removed flag grp_different_types.
40599         (dump_access): Do not dump the removed flag.
40600         (sort_and_splice_var_accesses): Do not set the removed flag.
40601         (sra_modify_expr): Check for type compatibility directly.
40602
40603 2010-01-04  Martin Jambor  <mjambor@suse.cz>
40604
40605         PR tree-optimization/42366
40606         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
40607         edges with variable number of parameters.
40608         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
40609         flag instead of asserting it.
40610         (ipa_read_node_info): Read uses_analysis_done flag.
40611
40612 2010-01-04  Richard Guenther  <rguenther@suse.de>
40613
40614         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
40615         iterative_hash_* as intended.
40616         (vn_reference_compute_hash): Likewise.  Simplify hashing
40617         SSA names.
40618         (vn_reference_lookup_2): Likewise.
40619         (vn_nary_op_compute_hash): Likewise.
40620         (vn_phi_compute_hash): Likewise.
40621         (expressions_equal_p): Remove strange code.
40622         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
40623         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
40624         (bitmap_insert_into_set_1): Take value-id as parameter.
40625         (add_to_value): Pass it.
40626         (bitmap_insert_into_set): Likewise.
40627         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
40628
40629 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
40630
40631         PR driver/42442
40632         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
40633         (do_self_spec): For switches with SWITCH_IGNORE set set also
40634         SWITCH_IGNORE_PERMANENTLY.
40635         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
40636         of SWITCH_IGNORE.
40637
40638 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
40639
40640         * lto-streamer-out.c (output_unreferenced_globals): Output the full
40641         tree of an unreferenced global var.
40642
40643 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40644
40645         PR target/42542
40646         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
40647         GTU to GT for V4SI and V2DI.
40648
40649         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
40650         (umin<mode>3): Removed.
40651         (uminv8hi3): New.
40652         (uminv4si3): Likewise.
40653
40654 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
40655
40656         PR lto/42581
40657         * collect2.c (main): Turn on trace in collect2 if -v is passed
40658         to gcc with LTO.
40659
40660 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
40661
40662         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
40663         description of expression operand.
40664
40665 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
40666
40667         * configure.ac: Add install-html to target_list for Make-hooks.
40668         * configure: Regenerate.
40669         * fortran/Make-lang.in (F95_HTMLFILES): New.
40670         (fortran.html): Use it.
40671         (fortran.install-html): New.
40672         * Makefile.in (install-html): Add lang.install-html.
40673         * java/Make-lang.in (JAVA_HTMLFILES): New.
40674         (java.html): Use it.
40675         (java.install-html): New.
40676         * objc/Make-lang.in (objc.install-html): New.
40677         * objcp/Make-lang.in (obj-c++.install-html): New.
40678         * cp/Make-lang.in (c++.install-html): New.
40679         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
40680         * lto/Make-lang.in (lto.install-html): New.
40681
40682 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40683
40684         PR lto/42520
40685         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
40686
40687 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40688
40689         PR rtl-optimization/41862
40690         * store-motion.c (store_killed_in_insn, compute_store_table,
40691         remove_reachable_equiv_notes, replace_store_insn,
40692         build_store_vectors): Ignore all DEBUG_INSNs.
40693
40694 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
40695
40696         PR lto/41564
40697         * common.opt: Add dumpdir.
40698
40699         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
40700         isn't specified.
40701         (option_map): Add --dumpdir.
40702
40703         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
40704
40705         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
40706
40707         * opts.c (decode_options): Try dump_dir_name first if
40708         dump_base_name isn't an absolute path.
40709         (common_handle_option): Handle OPT_dumpdir.
40710
40711         * toplev.c (dump_dir_name): New.
40712         (print_switch_values): Also ignore -dumpdir.
40713
40714         * toplev.h (dump_dir_name): New.
40715
40716 2010-01-03  Richard Guenther  <rguenther@suse.de>
40717
40718         PR tree-optimization/42589
40719         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
40720         double-word expansion of bswap32.
40721
40722 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
40723
40724         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
40725         with BLOCK_FOR_INSN.
40726         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
40727         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
40728         noce_process_if_block): Likewise.
40729         * gcse.c (compute_local_properties, insert_expr_in_table,
40730         insert_set_in_table, canon_list_insert, find_avail_set,
40731         pre_insert_copy_insn): Likewise.
40732
40733         * basic-block.h (BLOCK_NUM): Move from here...
40734         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
40735
40736 2010-01-03  Richard Guenther  <rguenther@suse.de>
40737
40738         PR tree-optimization/42438
40739         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
40740         contains_may_not_return_call flag.
40741         (BB_MAY_NOTRETURN): New.
40742         (valid_in_sets): Trapping nary operations are not valid
40743         in blocks that may not return.
40744         (insert_into_preds_of_block): Remove check for trapping expressions.
40745         (compute_avail): Compute also BB_MAY_NOTRETURN.
40746
40747 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
40748
40749         * doc/invoke.texi: Add 2010 to copyright years.
40750
40751 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
40752
40753         * config/sparc/sparc.c: Fix formatting nits.
40754
40755 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
40756             Alexander Monakov  <amonakov@ispras.ru>
40757
40758         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
40759
40760 2010-01-02  Richard Guenther  <rguenther@suse.de>
40761
40762         PR middle-end/42577
40763         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
40764         (simplify_switch_using_ranges): Mark to be removed edges
40765         as non-executable.
40766
40767 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40768
40769         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
40770
40771         * collect2.c (scan_libraries): Add missing argument in call to
40772         scan_prog_file.
40773
40774 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
40775
40776         PR target/42448
40777         * config/alpha/predicates.md (aligned_memory_operand): Return false
40778         for CQImode.
40779         (unaligned_memory_operand): Return true for CQImode.
40780         * config/alpha/alpha.c (get_aligned_mem): Assert that location
40781         doesn not cross aligned SImode word boundary.
40782
40783 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
40784
40785         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
40786         Remove.
40787         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
40788         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
40789
40790 2010-01-02  Richard Guenther  <rguenther@suse.de>
40791
40792         PR lto/41597
40793         * toplev.c (compile_file): Emit LTO marker properly.  Change
40794         it to __gnu_lto_v1.
40795         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
40796
40797 2010-01-01  Richard Guenther  <rguenther@suse.de>
40798
40799         PR debug/42455
40800         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
40801
40802 2010-01-01  Richard Guenther  <rguenther@suse.de>
40803
40804         PR c/42570
40805         * c-decl.c (grokdeclarator): For zero-size arrays force
40806         structural equality checks as layout_type does.
40807
40808 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40809
40810         * builtins.c: Update copyright to 2010.
40811
40812 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
40813
40814         PR lto/42531
40815         * lto-streamer-out.c (produce_asm): Revert the last change.
40816         (copy_function): Likewise.
40817
40818         * lto-streamer.c (lto_get_section_name): Skip any leading
40819         asterisk in name.
40820
40821 2010-01-01  Richard Guenther  <rguenther@suse.de>
40822
40823         PR middle-end/42559
40824         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
40825         for LABEL_DECLs.
40826
40827 \f
40828 Copyright (C) 2010 Free Software Foundation, Inc.
40829
40830 Copying and distribution of this file, with or without modification,
40831 are permitted in any medium without royalty provided the copyright
40832 notice and this notice are preserved.