OSDN Git Service

* df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
2
3         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4         bits for artificial defs at the top of the block.
5         * fwprop.c (single_def_use_enter_block): Don't call it.
6
7 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
8
9         PR 43715
10         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
11         instead of "$gcc_cv_objdump -T".
12         Use "-undefined dynamic_lookup" on darwin.
13         * gcc/configure: Regenerate.
14
15 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
16
17         PR c/43893
18         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
19
20 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
21
22         * c-parser.c (struct c_token): Move location field up.
23         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
24         (struct c_declspecs): Convert typespec_word, storage_class, and
25         default_int_p into bitfields.
26         (struct c_declarator): Move loc field up.
27
28 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
29
30         * cfgloop.h (struct loop): Move can_be_parallel field up.
31         * ipa-prop.h (struct ip_node_params): Move bitfields up.
32         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
33         down.
34         (struct iv_cand): Convert pos field into a bitfield.
35         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
36         field up.
37         (struct _stmt_vec_info): Shuffle fields for better packing.
38
39 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
40
41         * varasm.c (IN_NAMED_SECTION): Remove guard.
42         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
43         (IN_NAMED_SECTION_P): ...this.
44         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
45         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
46
47 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
48
49         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
50         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
51         of shadowing it.  Fix comments.
52
53 2010-04-26  Jan Hubicka  <jh@suse.cz>
54
55         * cgraph.c (cgraph_create_node): Set node frequency to normal.
56         (cgraph_clone_node): Copy function frequency.
57         * cgraph.h (node_frequency): New enum
58         (struct cgraph_node): Add.
59         * final.c (rest_of_clean_state): Update.
60         * lto-cgraph.c (lto_output_node): Output node frequency.
61         (input_overwrite_node): Input node frequency.
62         * tre-ssa-loop-ivopts (computation_cost): Update.
63         * lto-streamer-out.c (output_function): Do not output function
64         frequency.
65         * predict.c (maybe_hot_frequency_p): Update and handle functions
66         executed once.
67         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
68         attribute lookup.
69         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
70         (compute_function_frequency): Set noreturn functions to be executed
71         once.
72         (choose_function_section): Update.
73         * lto-streamer-in.c (input_function): Do not input function frequency.
74         * function.c (allocate_struct_function): Do not initialize function
75         frequency.
76         * function.h (function_frequency): Remove.
77         (struct function): Remove function frequency.
78         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
79         (try_update): Update.
80         * tree-inline.c (initialize_cfun): Do not update function frequency.
81         * passes.c (pass_init_dump_file): Update.
82         * i386.c (ix86_compute_frame_layout): Update.
83         (ix86_pad_returns): Update.
84
85 2010-04-26  Jie Zhang  <jie@codesourcery.com>
86
87         PR tree-optimization/43833
88         * tree-vrp.c (range_int_cst_p): New.
89         (range_int_cst_singleton_p): New.
90         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
91         when both operands are constants.  Use range_int_cst_p in
92         BIT_IOR_EXPR case.
93
94 2010-04-26  Jan Hubicka  <jh@suse.cz>
95
96         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
97
98 2010-04-26  Richard Guenther  <rguenther@suse.de>
99
100         PR lto/43080
101         * gimple.c (gimple_decl_printable_name): Deal gracefully
102         with a NULL DECL_NAME.
103
104 2010-04-26  Richard Guenther  <rguenther@suse.de>
105
106         PR lto/42425
107         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
108         if emitting debug information and it is either a function
109         or a namespace decl.
110
111 2010-04-26  Ira Rosen  <irar@il.ibm.com>
112
113         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to 
114         determine if the statement is vectorizable, and a macro to 
115         access it.
116         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 
117         Skip statements that can't be vectorized. If the analysis 
118         fails, mark the statement as unvectorizable if vectorizing 
119         basic block.
120         (vect_compute_data_refs_alignment): Likewise.
121         (vect_verify_datarefs_alignment): Skip statements marked as 
122         unvectorizable. Add print.
123         (vect_analyze_group_access): Skip statements that can't be 
124         vectorized. If the analysis fails, mark the statement as 
125         unvectorizable if vectorizing basic block.
126         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): 
127         Likewise.
128         * tree-vect-stmts.c (vectorizable_store): Fix the number of 
129         generated stmts for SLP.
130         (new_stmt_vec_info): Initialize the new field.
131         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize 
132         statements marked as unvectorizable.
133
134 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
135
136         * c-common.c (flag_isoc1x): New.
137         (flag_isoc99): Update comment.
138         * c-common.h (flag_isoc1x): New.
139         (flag_isoc99): Update comment.
140         * c-cppbuiltin.c (builtin_define_float_constants): Also define
141         __<type>_DECIMAL_DIG__.
142         * c-opts.c (set_std_c1x): New.
143         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
144         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
145         * c.opt (-std=c1x, -std=gnu1x): New options.
146         * doc/cpp.texi: Mention -std=c1x.
147         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
148         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
149         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
150         * doc/standards.texi: Mention C1X.
151         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
152         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
153         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
154         Define for C1X.
155
156 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
157
158         * config/i386/gmon-sol2.c (_mcleanup): Change format string
159         placeholder from 0x%x to %#x.
160         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
161         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
162         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
163         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
164         * config/i386/i386.c (ix86_target_string): Ditto.
165         (output_pic_addr_const): Ditto.
166         (print_operand): Ditto.
167
168 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
169
170         * combine.c (find_split_point): Add third argument.  Use it
171         to find nested multiply-accumulate instructions.  Adjust calls.
172         (try_combine): Adjust call to find_split_point.
173
174 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
175
176         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
177
178 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
179
180         PR tree-optimization/41442
181         * fold-const.c (merge_truthop_with_opposite_arm): New function.
182         (fold_binary_loc): Call it.
183
184 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
185
186         * toplev.c (general_init): Set default for fdiagnostics-show-option.
187         * opts.c (common_handle_option): Allow disabling it.
188         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
189
190 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
191
192         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
193         between modes if both types are integral.
194
195 2010-04-23  Richard Guenther  <rguenther@suse.de>
196
197         PR tree-optimization/43572
198         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
199
200 2010-04-23  Richard Guenther  <rguenther@suse.de>
201
202         PR lto/43455
203         * tree-inline.c (tree_can_inline_p): Also check compatibility
204         of return types.
205
206 2010-04-23  Martin Jambor  <mjambor@suse.cz>
207
208         PR tree-optimization/43846
209         * tree-sra.c (struct access): New flag grp_assignment_read.
210         (build_accesses_from_assign): Set grp_assignment_read.
211         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
212         (enum mark_read_status): New type.
213         (analyze_access_subtree): Propagate grp_assignment_read, create
214         accesses also if both direct_read and root->grp_assignment_read.
215
216 2010-04-23  Martin Jambor  <mjambor@suse.cz>
217
218         PR middle-end/43835
219         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
220         function does not have type attributes.
221
222 2010-04-23  Richard Guenther  <rguenther@suse.de>
223
224         PR lto/42653
225         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
226         of FUNCTION_DECLs.
227
228 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
229
230         * sese.h (create_if_region_on_edge): Remove.
231
232         * sese.c (create_if_region_on_edge): Make static.
233
234         * tree-inline.c: Do not include ggc.h.
235
236         * expr.c: Do not include ggc.h.
237
238         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
239         dependencies.
240
241 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
242
243         PR target/43744
244         * config/sh/sh.c (find_barrier): Don't emit a constant pool
245         in the middle of insns for casesi_worker_2.
246
247 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
248
249         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
250
251 2010-04-22  Ira Rosen  <irar@il.ibm.com>
252
253         PR tree-optimization/43842
254         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
255         loop unrolling in update of exit phis. Fix comment.
256         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
257         least two reduction statements in the loop before starting SLP
258         analysis.
259
260 2010-04-22  Nick Clifton  <nickc@redhat.com>
261
262         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
263
264 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
265
266         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
267         to simplify a + ~a.
268
269 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
270
271         * tree-parloops.c (loop_parallel_p): New argument
272         parloop_obstack.  Pass it down.
273         (parallelize_loops): New variable parloop_obstack.  Initialize it,
274         pass it down, free it.
275
276         * tree-loop-linear.c (linear_transform_loops): Pass down
277         lambda_obstack.
278
279         * tree-data-ref.h (lambda_compute_access_matrices): New argument
280         of type struct obstack *.
281
282         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
283         scratch_obstack.  Initialize it, pass down, free it.
284
285         * lambda.h (lambda_loop_new): Remove.
286         (lambda_matrix_new, lambda_matrix_inverse)
287         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
288         argument of type struct obstack *.
289
290         * lambda-trans.c (lambda_trans_matrix_new): New argument
291         lambda_obstack.  Pass it down, use obstack allocation for ret.
292         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
293         it down.
294
295         * lambda-mat.c (lambda_matrix_get_column)
296         (lambda_matrix_project_to_null): Remove.
297         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
298         allocation for mat.
299         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
300         lambda_obstack.
301
302         * lambda-code.c (lambda_loop_new): New function.
303         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
304         (lambda_compute_auxillary_space, lambda_compute_target_space)
305         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
306         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
307         (build_access_matrix): New argument lambda_obstack.  Use obstack
308         allocation for am.
309         (lambda_compute_step_signs, lambda_compute_access_matrices): New
310         argument lambda_obstack.  Pass it down.
311
312 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
313
314         * optabs.h (expand_widening_mult): Declare.
315
316 2010-04-22  Richard Guenther  <rguenther@suse.de>
317
318         PR tree-optimization/43845
319         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
320         lookup the CALL_EXPR function and arguments.
321
322 2010-04-22  Nick Clifton  <nickc@redhat.com>
323
324         * config/stormy16/stormy16.c
325         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
326         * config/stormy16/stormy16.h: Tidy up formatting.
327         (DONT_USE_BUILTIN_SETJMP): Remove definition.
328         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
329         (ineqbranchsi): Delete pattern.
330         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
331         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
332         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
333         stormy16-lib2-ucmpsi2.c.
334
335 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
336
337         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
338         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
339         extra set merge_set_noclobber, and use it to relax the final test
340         slightly.
341         * df.h (df_simulate_find_noclobber_defs): Declare.
342         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
343         conditional defs.
344         (df_simulate_find_noclobber_defs): New function.
345
346 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
347
348         * config/i386/i386.md: Use {} around multi-line preparation statements.
349
350 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
351
352         * c-tree.h (push_init_level, pop_init_level, set_init_index)
353         (process_init_element): New argument of type struct obstack *.
354
355         * c-typeck.c (push_init_level, pop_init_level, set_designator)
356         (set_init_index, set_init_label, set_nonincremental_init)
357         (set_nonincremental_init_from_string, find_init_member)
358         (output_init_element, output_pending_init_elements)
359         (process_init_element): New argument braced_init_obstack.  Pass it
360         down.
361         (push_range_stack, add_pending_init): New argument
362         braced_init_obstack.  Use obstack allocation.
363
364         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
365         braced_init_obstack.  Pass it down.
366         (c_parser_braced_init): New variables ret, braced_init_obstack.
367         Initialize obstack, pass it down and finally free it.
368
369 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
370
371         PR middle-end/29274
372         * tree-pass.h (pass_optimize_widening_mul): Declare.
373         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
374         gate_optimize_widening_mul): New static functions.
375         (pass_optimize_widening_mul): New.
376         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
377         <case MULT_EXPR>: Remove support for widening multiplies.
378         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
379         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
380         simplify_gen_unary rather than directly building extensions.
381         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
382         WIDEN_MULT_EXPR.
383         * expmed.c (expand_widening_mult): New function.
384         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
385
386 2010-04-21  Jan Hubicka  <jh@suse.cz>
387
388         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
389         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
390         * lto-wpa-fixup.c: Remove.
391         * Makefile.in (lto-wpa-fixup.o): Remove.
392         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
393         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
394         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
395
396 2010-04-21  Jan Hubicka  <jh@suse.cz>
397
398         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
399         add write_optimization_summary, read_optimization_summary.
400         (ipa_write_summaries_of_cgraph_node_set): Remove.
401         (ipa_write_optimization_summaries): Declare.
402         (ipa_read_optimization_summaries): Declare.
403         * ipa-cp.c (pass_ipa_cp): Update.
404         * ipa-reference.c (pass_ipa_reference): Update.
405         * ipa-pure-const.c (pass_ipa_pure_const): Update.
406         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
407         Update.
408         * ipa-inline.c (pass_ipa_inline): Update.
409         * ipa.c (pass_ipa_whole_program): Update.
410         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
411         * passes.c (ipa_write_summaries_1): Do not test wpa.
412         (ipa_write_optimization_summaries_1): New.
413         (ipa_write_optimization_summaries): New.
414         (ipa_read_summaries): Do not test ltrans.
415         (ipa_read_optimization_summaries_1): New.
416         (ipa_read_optimization_summaries): New.
417
418 2010-04-21  Jan Hubicka  <jh@suse.cz>
419
420         * lto-cgraph.c (lto_output_node): Do not output comdat groups
421         for boundary nodes.
422         (output_cgraph): Do not arrange comdat groups for boundary nodes.
423
424 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
425
426         PR debug/40040
427         * dwarf2out.c (add_name_and_src_coords_attributes): Add
428         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
429
430 2010-04-21  Jan Hubicka  <jh@suse.cz>
431
432         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
433
434 2010-04-21  Jan Hubicka  <jh@suse.cz>
435
436         * varpool.c (decide_is_variable_needed): Variable is always needed
437         during ltrans.
438
439 2010-04-21  Jan Hubicka  <jh@suse.cz>
440
441         * opts.c (decode_options): Enable pure-const pass for whopr.
442
443 2010-04-21  Jan Hubicka  <jh@suse.cz>
444
445         * cgraph.c (dump_cgraph_node): Dump also assembler name.
446         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
447         at WPA dumping.
448         (cgraph_decide_inlining): Do not expect callee to be removed in all
449         cases.
450
451 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
452
453         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
454
455 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
456
457         * config/i386/i386.md (x86_shrd): Add athlon_decode and
458         amdfam10_decode attributes.
459
460 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
461
462         PR middle-end/43570
463         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
464         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
465         (lower_copyprivate_clauses): Use private var in outer
466         context instead of original var.  Make sure the types
467         are correct for VLAs.
468
469 2010-04-21  Richard Guenther  <rguenther@suse.de>
470
471         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
472         to non-pointer objects.
473
474 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
475
476         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
477         last chain entry if it starts with the still current label.
478         (add_location_or_const_value_attribute): Check that
479         loc_list->first->next is NULL instead of comparing ->first with ->last.
480         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
481         to add_var_loc_to_decl.
482
483         * dwarf2out.c (output_call_frame_info): For dw_cie_version
484         >= 4 add also address size and segment size fields into CIE header.
485
486         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
487         long as address size is the same as sizeof (void *) and
488         segment size is 0.
489         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
490         address size or segment size is unexpected, return DW_EH_PE_omit.
491         (classify_object_over_fdes): If get_cie_encoding returned
492         DW_EH_PE_omit, return -1.
493         (init_object): If classify_object_over_fdes returned -1,
494         pretend there were no FDEs at all.
495
496 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
497
498         * config/i386/i386.md (bswap<mode>2): Macroize expander from
499         bswap{si,di}2 using SWI48 mode iterator.
500         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
501         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
502         set modrm attribute of bswap insn to 0 and remove length attribute.
503         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
504         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
505         set mode attribute to <MODE> and remove length attribute.
506
507 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
508
509         PR rtl-optimization/43520
510         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
511         zero available registers.
512
513 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
514
515         * builtins.c (fold_builtin_cproj): Fold more cases.
516
517 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
518
519         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
520         (fold_builtin_1): Fold builtin cproj.
521         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
522         Use ATTR_CONST_NOTHROW_LIST.
523
524 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
525
526         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
527         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
528         ffsi2_no_cmove for !TARGET_CMOVE.
529         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
530         (ffssi2): Remove expander.
531         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
532         mode iterator.
533         (ctz<mode>2): Ditto from ctz{si,di}2.
534         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
535         mode iterator.
536         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
537         mode iterator.
538
539 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
540
541         * dwarf2out.c (AT_linkage_name): Define.
542         (clone_as_declaration): Handle DW_AT_linkage_name.
543         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
544         of DW_AT_MIPS_linkage_name.
545         (move_linkage_attr): Likewise.
546         (dwarf2out_finish): Likewise.
547
548 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
549
550         PR middle-end/41952
551         * fold-const.c (fold_comparison): New folding rule.
552
553 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
554
555         * double-int.h (double_int_setbit): Declare.
556         * double-int.c (double_int_setbit): New function.
557         * rtl.h (immed_double_int_const): Declare.
558         * emit-rtl.c (immed_double_int_const): New function.
559         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
560         and immed_double_int_const functions.
561         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
562         expand_copysign_bit):  (Ditto.).
563         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
564         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
565         * dojump.c (prefer_and_bit_test): (Ditto.).
566         * expr.c (convert_modes, reduce_to_bit_field_precision,
567         const_vector_from_tree): (Ditto.).
568         * expmed.c (mask_rtx, lshift_value): (Ditto.).
569
570 2010-04-20  Jan Hubicka  <jh@suse.cz>
571
572         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
573         (dump_cgraph_node): Dump new flags.
574         * cgraph.h (struct cgraph_node): Add flags
575         reachable_from_other_partition and in_other_partition.
576         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
577         other partition can not be removed.
578         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
579         the other partition must be output; silence sanity checking on
580         leaking functions bodies from other paritition.
581         * lto-cgraph.c (reachable_from_other_partition_p): New function.
582         (lto_output_node): Output new flags; do not sanity check that inline
583         clones are output; drop lto_forced_extern_inline_p code; do not mock
584         visibility flags at partition boundaries.
585         (add_node_to): New function.
586         (output_cgraph): Use it to sort functions so masters appear before
587         clones.
588         (input_overwrite_node): Input new flags.
589         * passes.c (ipa_write_summaries): Do not call
590         lto_new_extern_inline_states.
591         * lto-section-out.c (forced_extern_inline, lto_new_extern_inline_states,
592         lto_delete_extern_inline_states, lto_force_functions_extern_inline,
593         lto_forced_extern_inline_p): Kill.
594         * lto-streamer.h (lto_new_extern_inline_states,
595         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
596         lto_forced_extern_inline_p): Kill.
597
598 2010-04-20  Richard Guenther  <rguenther@suse.de>
599
600         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
601         from vars that can have pointers.
602         (process_constraint): Dump useless constraints.
603
604 2010-04-20  Richard Guenther  <rguenther@suse.de>
605
606         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
607         (dump_sa_points_to_info): Remove asserts.
608         (init_base_vars): nothing_id isn't an escape point nor does it
609         have pointers.
610
611 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
612
613         * tree.h (TYPE_REF_IS_RVALUE): Define.
614         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
615         should_move_die_to_comdat, prune_unused_types_walk): Handle
616         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
617         (modified_type_die, gen_reference_type_die): Emit
618         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
619         if TYPE_REF_IS_RVALUE and -gdwarf-4.
620
621 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
622
623         PR target/43635
624         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
625         calls for -fpic -m31 if they have been sibcall optimized.
626
627 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
628
629         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
630         ar.lc fixed and call-used.
631
632         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
633
634 2010-04-19  Jan Hubicka  <jh@suse.cz>
635
636         * opts.c (decode_options): Disable whpr incompatible passes.
637         * lto/lto.c (lto_1_to_1_map): Skip clones.
638         (read_cgraph_and_symbols): Do not mark everything as needed.
639         (do_whole_program_analysis): Do map only after optimizing;
640         set proper cgraph_state; use passmanager.
641
642 2010-04-19  DJ Delorie  <dj@redhat.com>
643
644         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
645         POINTER_PLUS_EXPR and fix them.
646
647 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
648
649         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
650         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
651         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
652         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
653         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
654         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
655         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
656         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
657         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
658         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
659         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
660
661 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
662
663         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
664         (check_cond_move_block): Likewise.
665         (cond_move_process_if_block): Likewise.
666         (noce_find_if_block): Improve formatting.
667         (find_if_header): Pass 0 to memset and tweak conditions.
668         (cond_exec_find_if_block): Fix long lines and tweak conditions.
669
670 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
671
672         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
673         for -gdwarf-4.
674
675         PR middle-end/43337
676         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
677         with non-local decl doesn't need chain.
678
679 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
680
681         * ira-color.c (allocno_reload_assign): Avoid accumulating
682         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
683
684 2010-04-19  Martin Jambor  <mjambor@suse.cz>
685
686         * gimple.h (create_tmp_reg): Declare.
687         * gimplify.c (create_tmp_reg): New function.
688         (gimplify_return_expr): Use create_tmp_reg.
689         (gimplify_omp_atomic): Likewise.
690         (gimple_regimplify_operands): Likewise.
691         * tree-dfa.c (make_rename_temp): Likewise.
692         * tree-predcom.c (predcom_tmp_var): Likewise.
693         (reassociate_to_the_same_stmt): Likewise.
694         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
695         (get_replaced_param_substitute): Likewise.
696         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
697         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
698         * tree-ssa-pre.c (get_representative_for): Likewise.
699         (create_expression_by_pieces): Likewise.
700         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
701         (create_tailcall_accumulator): Likewise.
702
703 2010-04-19  Martin Jambor  <mjambor@suse.cz>
704
705         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
706         new_stmt.
707         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
708
709 2010-04-19  Richard Guenther  <rguenther@suse.de>
710
711         PR tree-optimization/43796
712         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
713         from SCEV in the lattice.
714         (vrp_visit_phi_node): Dump change.
715
716 2010-04-19  Richard Guenther  <rguenther@suse.de>
717
718         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
719         * configure: Re-generated.
720
721 2010-04-19  Richard Guenther  <rguenther@suse.de>
722
723         PR tree-optimization/43783
724         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
725         constant ARRAY_REF operands two and three if possible.
726
727 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
728
729         PR target/43766
730         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
731
732 2010-04-19  Jie Zhang  <jie@codesourcery.com>
733
734         PR target/43662
735         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
736
737 2010-04-19  Ira Rosen  <irar@il.ibm.com>
738
739         PR tree-optimization/37027
740         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
741         and macro to access it.
742         (vectorizable_reduction): Add argument.
743         (vect_get_slp_defs): Likewise.
744         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
745         statements for possible use in SLP.
746         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
747         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
748         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
749         add new argument.
750         (vectorizable_reduction): Likewise.
751         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
752         vect_get_slp_defs.
753         (vectorizable_type_demotion, vectorizable_type_promotion,
754         vectorizable_store): Likewise.
755         (vect_analyze_stmt): Update call to vectorizable_reduction.
756         (vect_transform_stmt): Likewise.
757         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
758         (vect_build_slp_tree): Fix indentation. Check that there are no loads
759         from different interleaving chains in same node.
760         (vect_slp_rearrange_stmts): New function.
761         (vect_supported_load_permutation_p): Allow load permutations for
762         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
763         inside SLP nodes if necessary.
764         (vect_analyze_slp_instance): Handle reductions.
765         (vect_analyze_slp): Try to build SLP instances originating from groups
766         of reductions.
767         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
768         (vect_get_constant_vectors): Create initial vectors for reductions
769         according to reduction code. Add new argument.
770         (vect_get_slp_defs): Add new argument, pass it to
771         vect_get_constant_vectors.
772         (vect_schedule_slp_instance): Remove SLP tree root statements.
773
774 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
775
776         * tree.h (ENUM_IS_SCOPED): Define.
777         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
778         for ENUM_IS_SCOPED enums.
779
780 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
781
782         * fold-const.c (fold_comparison): Use ssizetype.
783         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
784         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
785         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
786         * tree-object-size.c (compute_object_sizes): Use size_type_node.
787
788         * tree.h (initialize_sizetypes): Remove parameter.
789         (build_common_tree_nodes): Remove second parameter.
790         * stor-layout.c (initialize_sizetypes): Remove parameter.
791         Always create an unsigned type.
792         (set_sizetype): Assert that the passed type is unsigned and simplify.
793         * tree.c (build_common_tree_nodes): Remove second parameter.
794         Adjust call to initialize_sizetypes.
795         * c-decl.c (c_init_decl_processing): Remove second argument in call to
796         build_common_tree_nodes.
797
798 2010-04-18  Matthias Klose  <doko@ubuntu.com>
799
800         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
801
802 2010-04-18  Ira Rosen  <irar@il.ibm.com>
803
804         PR tree-optimization/43771
805         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
806         load permutation doesn't have gaps.
807
808 2010-04-18  Jan Hubicka  <jh@suse.cz>
809
810         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
811         (sse_prologue_save_insn expander): Use new pattern.
812         (sse_prologue_save_insn1): New pattern and splitter.
813         (sse_prologue_save_insn): Update to deal also with 64bit aligned
814         blocks.
815         * i386.c (setup_incoming_varargs_64): Do not compute jump
816         destination here.
817         (ix86_gimplify_va_arg): Update alignment needed.
818         (ix86_local_alignment): Do not align all local arrays to 128bit.
819
820 2010-04-17  Jan Hubicka  <jh@suse.cz>
821
822         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
823
824 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
825
826         * arm.md (negdi2): Remove redundant code to force values into a
827         register.
828
829 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
830
831         * arm/bpabi.S: Add EABI alignment attributes to objects.
832         * arm/bpabi-v6m.S: Likewise.
833         * arm/crti.asm: Likewise.
834         * arm/crtn.asm: Likewise.
835         * arm/lib1funcs.asm: Likewise.
836         * arm/libunwind.S: Likewise.
837
838 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
839
840         * arm-protos.h (tune_params): New structure.
841         * arm.c (current_tune): New variable.
842         (arm_constant_limit): Delete.
843         (struct processors): Add pointer to the tune parameters.
844         (arm_slowmul_tune): New tuning option.
845         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
846         (all_cores): Adjust to pick up the tuning model.
847         (arm_constant_limit): New function.
848         (arm_override_options): Select the appropriate tuning model.  Delete
849         initialization of arm_const_limit.
850         (arm_split_constant): Use the new constant-limit model.
851         (arm_rtx_costs): Pick up the current tuning model.
852         * arm.md (is_strongarm, is_xscale): Delete.
853         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
854         for Xscale variant architectures.
855         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
856
857 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
858
859         * config/arm/arm.c (arm_gen_constant): Remove unused variable
860         can_shift.
861         (arm_rtx_costs_1): Remove unused variable extra_cost.
862         (arm_unwind_emit_set): Use variable offset.
863         (thumb1_output_casesi): Remove unused variable flags.
864
865 2010-04-16  Jeff Law  <law@redhat.com>
866
867         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
868         needing assignment rather than doing a two-phase assignment.  Remove
869         unused variable 'm'.
870
871 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
872
873         PR bootstrap/43767
874         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
875
876 2010-04-16  Doug Kwan  <dougkwan@google.com>
877
878         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
879         (next_operand_entry_id): New static variable.
880         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
881         (add_to_ops_vec): Assigned unique ID to operand entry.
882         (struct oecount_s): New field ID.
883         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
884         (undistribute_ops_list): Assign unique IDs to oecounts.
885         (init_reassoc): reset next_operand_entry_id.
886
887 2010-04-16  Doug Kwan  <dougkwan@google.com>
888
889         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
890         missing left parenthesis.
891
892 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
893
894         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
895         *btdi_rex64 using SWI48 mode iterator.
896         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
897         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
898         *jcc_btdi_mask_rex64.
899
900 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
901
902         * double-int.h (tree_to_double_int): Convert to macro.
903         * double-int.c (tree_to_double_int): Remove.
904
905 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
906
907         PR debug/43762
908         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
909         with want_address 2 and in case a single element list might be
910         possible, call it again with want_address 0.
911
912 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
913
914         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
915         case 'W' print operands for HI mode.
916         * config/h8300/h8300.h (Y0, Y2) : New constraints.
917         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
918         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
919         * config/h8300/predicate.md (bit_register_indirect_operand): New.
920
921         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
922
923         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
924         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
925         #xx:3 and #xx:4 mode.
926
927         * config/h8300/h8300.md (inverted load with HImode dest): Add
928         support for H8300SX.
929
930         * config/h8300/predicate.md (bit_operand): Allow immediate values that
931         satisfy 'U' constraint.
932
933 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
934
935         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
936         * configure: Regenerate.
937         * config.in: Regenerate.
938         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
939         works.
940
941 2010-04-16  Richard Guenther  <rguenther@suse.de>
942
943         * tree.h (struct tree_decl_minimal): Move pt_uid ...
944         (struct tree_decl_common): ... here.
945         (DECL_PT_UID): Adjust.
946         (SET_DECL_PT_UID): Likewise.
947         (DECL_PT_UID_SET_P): Likewise.
948
949 2010-04-16  Richard Guenther  <rguenther@suse.de>
950
951         PR tree-optimization/43572
952         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
953         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
954         * tree-flow.h (is_call_clobbered): Remove.
955         * tree-flow-inline.h (is_call_clobbered): Likewise.
956         * tree-dfa.c (dump_variable): Do not dump call clobber state.
957         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
958         (execute_return_slot_opt): Adjust.
959         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
960         check for call clobbered vars here.
961         (find_tail_calls): Move tailcall verification to the
962         proper place.
963
964 2010-04-16  Diego Novillo  <dnovillo@google.com>
965
966         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
967
968 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
969
970         PR target/40603
971         * config/arm/arm.md (cbranchqi4): New pattern.
972         * config/arm/predicates.md (const0_operand,
973         cbranchqi4_comparison_operator): New predicates.
974
975 2010-04-16  Richard Guenther  <rguenther@suse.de>
976
977         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
978         (dump_gimple_stmt): Likewise.
979
980 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
981
982         * recog.h (struct recog_data): New field is_operator.
983         (struct insn_operand_data): New field is_operator.
984         * recog.c (extract_insn): Set recog_data.is_operator.
985         * genoutput.c (output_operand_data): Emit code to set the
986         is_operator field.
987         * reload.c (find_reloads): Use it rather than testing for an
988         empty constraint string.
989
990         PR target/41514
991         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
992         If the previous insn is a cbranchsi4_insn with the same arguments,
993         omit the compare instruction.
994
995         * config/arm/arm.md (addsi3_cbranch): If destination is a high
996         register, inputs must be low registers and we need a low register
997         scratch.  Handle alternative 2 like alternative 3.
998
999 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1000
1001         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1002         don't call get_addr on both.  If one expression is a VALUE and
1003         the other a REG, check VALUE's locs if the REG isn't among them.
1004
1005 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1006
1007         * config/sh/sh.h (sh_frame_pointer_required): New function.
1008         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1009         (flag_omit_frame_pointer) Set.
1010         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1011         (rounded_frame_size): Adjust size with outgoing_args_size.
1012         (sh_set_return_address): Must return from stack pointer.
1013         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1014         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1015         (ACCUMULATE_OUTGOING_ARGS): Define.
1016         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1017         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1018
1019 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1020
1021         PR target/43471
1022         * config/sh/sh.c (sh_legitimize_reload_address): Use
1023         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1024         Remove a unneeded check for offset_base.
1025
1026 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1027
1028         * configure: Regenerated.
1029
1030 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1031
1032         * config/s390/s390.c (s390_call_save_register_used): Switch back
1033         to HARD_REGNO_NREGS.
1034
1035 2010-04-15  Richard Guenther  <rguenther@suse.de>
1036
1037         * alias.c (alias_set_subset_of): Handle alias-set zero
1038         child properly.
1039
1040 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1041             Julian Brown  <julian@codesourcery.com>
1042
1043         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1044         alternatives according to use of high and low regs.
1045         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1046         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1047         optimizing for size on Thumb-2.
1048
1049 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1050
1051         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1052
1053 2010-04-15  Richard Guenther  <rguenther@suse.de>
1054
1055         * tree-ssa-structalias.c (struct variable_info): Add
1056         is_fn_info flag.
1057         (new_var_info): Initialize it.
1058         (dump_constraints): Support printing last added constraints.
1059         (debug_constraints): Adjust.
1060         (dump_constraint_graph): Likewise.
1061         (make_heapvar_for): Check for NULL cfun.
1062         (get_function_part_constraint): New function.
1063         (get_fi_for_callee): Likewise.
1064         (find_func_aliases): Properly implement IPA PTA constraints.
1065         (process_ipa_clobber): New function.
1066         (find_func_clobbers): Likewise.
1067         (insert_into_field_list_sorted): Remove.
1068         (create_function_info_for): Properly allocate vars for IPA mode.
1069         Do not use insert_into_field_list_sorted.
1070         (create_variable_info_for): Properly generate constraints for
1071         global vars in IPA mode.
1072         (dump_solution_for_var): Always dump the solution.
1073         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1074         (find_what_var_points_to): Adjust.
1075         (pt_solution_set): Change.
1076         (pt_solution_ior_into): New function.
1077         (pt_solution_empty_p): Export.
1078         (pt_solution_includes_global): Adjust.
1079         (pt_solution_includes_1): Likewise.
1080         (pt_solutions_intersect_1): Likewise.
1081         (dump_sa_points_to_info): Check some invariants.
1082         (solve_constraints): Move constraint dumping ...
1083         (compute_points_to_sets): ... here.
1084         (ipa_pta_execute): ... and here.
1085         (compute_may_aliases): Do not re-compute points-to info
1086         locally if IPA info is available.
1087         (ipa_escaped_pt): New global var.
1088         (ipa_pta_execute): Properly implement IPA PTA.
1089         * tree-into-ssa.c (dump_decl_set): Support dumping
1090         decls not in referenced-vars.
1091         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1092         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1093         (dump_points_to_solution): Likewise.
1094         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1095         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1096         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1097         (copy_decl_to_var): Copy DECL_PT_UID.
1098         (copy_result_decl_to_var): Likewise.
1099         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1100         (copy_node_stat): Copy it.
1101         * tree.h (DECL_PT_UID): New macro.
1102         (SET_DECL_PT_UID): Likewise.
1103         (DECL_PT_UID_SET_P): Likewise.
1104         (struct tree_decl_minimal): Add pt_uid member.
1105         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1106         (pt_solution_empty_p): Declare.
1107         (pt_solution_set): Adjust.
1108         (ipa_escaped_pt): Declare.
1109         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1110         * gimple-pretty-print.c (pp_points_to_solution): New function.
1111         (dump_gimple_call): Dump call clobber/use information.
1112         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1113         * tree-pass.h (TDF_ALIAS): New dump option.
1114         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1115         * doc/invoke.texi (-fipa-pta): Update documentation.
1116
1117 2010-04-15  Richard Guenther  <rguenther@suse.de>
1118
1119         * Makefile.in (OBJS-common): Add gimple-fold.o.
1120         (gimple-fold.o): New rule.
1121         * tree.h (maybe_fold_offset_to_reference,
1122         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1123         prototypes ...
1124         * gimple.h: ... here.
1125         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1126         may_propagate_address_into_dereference): Move prototypes ...
1127         * gimple.h: ... here.
1128         * tree-ssa-ccp.c (get_symbol_constant_value,
1129         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1130         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1131         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1132         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1133         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1134         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1135         gimplify_and_update_call_from_tree): Move ...
1136         * gimple-fold.c: ... here.  New file.
1137         (ccp_fold_builtin): Rename to ...
1138         (gimple_fold_builtin): ... this.
1139         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1140
1141 2010-04-15  Richard Guenther  <rguenther@suse.de>
1142
1143         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1144         fit_double_type, force_fit_type_double, add_double_with_sign,
1145         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1146         lrotate_double, rrotate_double, div_and_round_double): Move ...
1147         * double-int.c: ... here.
1148         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1149         add_double, neg_double, mul_double_with_sign, mul_double,
1150         lshift_double, rshift_double, lrotate_double, rrotate_double,
1151         div_and_round_double): Move prototypes ...
1152         * double-int.h: ... here.
1153
1154 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1155
1156         PR target/43742
1157         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1158         matching constraints to ensure inputs match the output.
1159
1160 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1161
1162         PR target/43742
1163         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1164         in an input-only operand.
1165
1166 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1167
1168         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1169         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1170         (double_int_negative_p): Convert to static inline function.
1171         * double-int.c (double_int_lshift, double_int_lshift): Add new function.
1172         (double_int_negative_p): Remove.
1173         * tree.h (lshift_double, rshift_double):
1174         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1175         * fold-const.c (fold_convert_const_int_from_real,
1176         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1177         (lshift_double): Change type of arith argument to bool.
1178         (rshift_double): Change type of arith argument to bool. Correct
1179         comment.
1180         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1181
1182 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
1183
1184         PR target/21803
1185         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
1186         at the start and end of the then/else blocks, and omit them from the
1187         conversion.
1188         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
1189         argument; all callers changed.  Pass zero to old_insns_match_p instead.
1190         (flow_find_head_matching_sequence): New function.
1191         (old_insns_match_p): Check REG_EH_REGION notes for calls.
1192         * basic-block.h (flow_find_cross_jump,
1193         flow_find_head_matching_sequence): Declare functions.
1194
1195 2010-04-14  Jason Merrill  <jason@redhat.com>
1196
1197         PR c++/36625
1198         * c-common.c (attribute_takes_identifier_p): New fn.
1199         * c-common.h: Declare it.
1200
1201 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1202
1203         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
1204         splitter condition.
1205         (*udivmod<mode>4): Ditto.
1206
1207 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1208
1209         * config/i386/i386.md (maxmin_int): Rename code attribute from
1210         maxminiprefix and update all users.
1211         (maxmin_float): Ditto from maxminfprefix.
1212         (logic): Ditto from logicprefix.
1213         (absneg_mnemonic): Ditto from absnegprefix.
1214         * config/i386/mmx.md: Update all users of maxminiprefix,
1215         maxminfprefix and logicprefix for rename.
1216         * config/i386/sse.md: Ditto.
1217         * config/i386/sync.md (sync_<code><mode>): Update for
1218         logicprefix rename.
1219
1220 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1221
1222         PR 42966
1223         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
1224         warnings converted to errors.
1225
1226 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1227
1228         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
1229         used insn_type variable.
1230         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
1231         to avoid set-but-not-used warning.
1232
1233 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1234
1235         * df-core.c (df_ref_debug): Change format string placeholder
1236         from 0x%x to %#x.
1237         * dwarf2asm.c (dw2_asm_output_data_raw,
1238         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
1239         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
1240         * dwarf2out.c (output_cfi, output_cfi_directive,
1241         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
1242         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
1243         Ditto.
1244         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
1245         * print-rtl.c (print_rtx): Ditto.
1246
1247 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1248
1249         PR middle-end/42694
1250         * builtins.c (expand_builtin_pow_root): New function to expand pow
1251         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
1252         series of sqrt and cbrt calls under -ffast-math.
1253         (expand_builtin_pow): Call it.
1254
1255 2010-04-14  Michael Matz  <matz@suse.de>
1256
1257         PR tree-optimization/42963
1258         * tree-cfg.c (touched_switch_bbs): New static variable.
1259         (group_case_labels_stmt): New function broken out from ...
1260         (group_case_labels): ... here, use the above.
1261         (start_recording_case_labels): Allocate touched_switch_bbs.
1262         (end_recording_case_labels): Deallocate it, call
1263         group_case_labels_stmt.
1264         (gimple_redirect_edge_and_branch): Remember index of affected BB.
1265
1266 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1267
1268         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
1269         from insn template.
1270
1271 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1272
1273         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
1274
1275 2010-04-13  Jan Hubicka  <jh@suse.cz>
1276
1277         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
1278         of optimized out static functions.
1279         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
1280         cost computation.  Also sanity check for overflows.
1281         (update_caller_keys): Update cgraph_edge_badness call; properly
1282         update fibheap and sanity check that it is up to date.
1283         (add_new_edges_to_heap): Update cgraph_edge_badness.
1284         (cgraph_decide_inlining_of_small_function): Likewise;
1285         add sanity checking that badness in heap is up to date;
1286         improve dumping of reason; Update badness of calls to the
1287         offline copy of function currently inlined; dump badness
1288         of functions not inlined because of unit growth limits.
1289
1290 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1291
1292         PR middle-end/32628
1293         * c-common.c (pointer_int_sum): Disregard overflow that occured only
1294         because of sign-extension change when converting to sizetype here...
1295         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
1296
1297         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
1298         the folding to constants.  Remove redundant final conversion.
1299         (fold_binary) <associate>: Do not associate if the re-association of
1300         constants alone overflows.
1301         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
1302         to the end of the list.
1303         (multiple_of_p) <COND_EXPR>: New case.
1304
1305 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1306
1307         * opt-functions.awk (opt_sanitized_name): New.
1308         (opt_enum): New.
1309         * optc-gen.awk: Use it
1310         * opth-gen.awk: Use it.
1311
1312 2010-04-13  Martin Jambor  <mjambor@suse.cz>
1313
1314         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
1315         (sra_modify_assign): Delete stmts loading dead data even if racc has no
1316         children.  Call replace_uses_with_default_def_ssa_name to handle
1317         SSA_NAES on lhs.
1318
1319 2010-04-13  Michael Matz  <matz@suse.de>
1320
1321         PR middle-end/43730
1322         * builtins.c (expand_builtin_interclass_mathfn): Also create
1323         a register if the predicate doesn't match.
1324
1325 2010-04-13  Diego Novillo  <dnovillo@google.com>
1326
1327         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
1328         * c-pch.c: Include timevar.h.
1329         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
1330         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
1331         * ggc-common.c: Include timevar.h.
1332         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
1333         * timevar.def (TV_PCH_SAVE): Define.
1334         (TV_PCH_CPP_SAVE): Define.
1335         (TV_PCH_PTR_REALLOC): Define.
1336         (TV_PCH_PTR_SORT): Define.
1337         (TV_PCH_RESTORE): Define.
1338         (TV_PCH_CPP_RESTORE): Define.
1339
1340 2010-04-13  Michael Matz  <matz@suse.de>
1341
1342         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
1343         into MINUS_EXPRs.
1344         (can_reassociate_p): New function.
1345         (break_up_subtract_bb, reassociate_bb): Use it.
1346
1347 2010-04-13  Richard Guenther  <rguenther@suse.de>
1348
1349         PR bootstrap/43737
1350         * builtins.c (c_readstr): Fix assert.
1351
1352 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
1353
1354         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
1355         when generating cltd insn.
1356
1357         (*ashl<mode>3_1): Remove special handling for register operand 2.
1358         (*ashlsi3_1_zext): Ditto.
1359         (*ashlhi3_1): Ditto.
1360         (*ashlhi3_1_lea): Ditto.
1361         (*ashlqi3_1): Ditto.
1362         (*ashlqi3_1_lea): Ditto.
1363         (*<shiftrt_insn><mode>3_1): Ditto.
1364         (*<shiftrt_insn>si3_1_zext): Ditto.
1365         (*<shiftrt_insn>qi3_1_slp): Ditto.
1366         (*<rotate_insn><mode>3_1): Ditto.
1367         (*<rotate_insn>si3_1_zext): Ditto.
1368         (*<rotate_insn>qi3_1_slp): Ditto.
1369
1370 2010-04-13  Richard Guenther  <rguenther@suse.de>
1371
1372         * tree-ssa-structalias.c (callused_id): Remove.
1373         (call_stmt_vars): New.
1374         (get_call_vi): Likewise.
1375         (lookup_call_use_vi): Likewise.
1376         (lookup_call_clobber_vi): Likewise.
1377         (get_call_use_vi): Likewise.
1378         (get_call_clobber_vi): Likewise.
1379         (make_transitive_closure_constraints): Likewise.
1380         (handle_const_call): Adjust to do per-call call-used handling.
1381         (handle_pure_call): Likewise.
1382         (find_what_var_points_to): Remove general callused handling.
1383         (init_base_vars): Likewise.
1384         (init_alias_vars): Initialize call_stmt_vars.
1385         (compute_points_to_sets): Process call-used and call-clobbered
1386         vars for call statements.
1387         (delete_points_to_sets): Free call_stmt_vars.
1388
1389 2010-04-13  Richard Guenther  <rguenther@suse.de>
1390
1391         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1392         Only add RW dependence for dependence distance zero.
1393         Adjust maximal vectorization factor according to dependences.
1394         Move alignment handling ...
1395         (vect_find_same_alignment_drs): ... here.  New function.
1396         (vect_analyze_data_ref_dependences): Adjust.
1397         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
1398         (vect_analyze_data_refs): Adjust minimal vectorization factor
1399         according to data references.
1400         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
1401         dependences before determining the vectorization factor.
1402         Analyze alignment after determining the vectorization factor.
1403         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
1404         dependences before alignment.
1405         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
1406         Adjust prototype.
1407         (vect_analyze_data_refs): Likewise.
1408         (MAX_VECTORIZATION_FACTOR): New define.
1409
1410 2010-04-13  Duncan Sands  <baldrick@free.fr>
1411
1412         * except.h (lang_eh_type_covers): Remove.
1413         * except.c (lang_eh_type_covers): Likewise.
1414
1415 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1416             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1417
1418         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
1419         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
1420         UNITS_PER_LONG where it is ABI relevant.
1421         (s390_return_addr_rtx): Likewise.
1422         (s390_back_chain_rtx): Likewise.
1423         (s390_frame_area): Likewise.
1424         (s390_frame_info): Likewise.
1425         (s390_initial_elimination_offset): Likewise.
1426         (save_gprs): Likewise.
1427         (s390_emit_prologue): Likewise.
1428         (s390_emit_epilogue): Likewise.
1429         (s390_function_arg_advance): Likewise.
1430         (s390_function_arg): Likewise.
1431         (s390_va_start): Likewise.
1432         (s390_gimplify_va_arg): Likewise.
1433         (s390_function_profiler): Likewise.
1434         (s390_optimize_prologue): Likewise.
1435         (s390_rtx_costs): Likewise.
1436         (s390_secondary_reload): Likewise.
1437         (s390_promote_function_mode): Likewise.
1438         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
1439         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
1440         registers available.
1441         (s390_unwind_word_mode): New function.
1442         (s390_function_value): Split 64 bit values into register pair if
1443         used as return value.
1444         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
1445         function call parameters.  Handle parallels.
1446         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
1447         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
1448         (DWARF_CIE_DATA_ALIGNMENT): New macro.
1449         (s390_expand_setmem): Remove unused variable src_addr.
1450         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
1451         deal with 64 bit registers.
1452         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
1453         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
1454         (UNITS_PER_LONG): New macro.
1455         * libjava/include/s390-signal.h: Define extended ucontext
1456         structure containing the upper halfs of the 64 bit registers.
1457
1458 2010-04-13  Simon Baldwin  <simonb@google.com>
1459
1460         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
1461
1462 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1463
1464         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
1465         rvalue on the RHS if the LHS is of a non-renamable type.
1466         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
1467
1468 2010-04-13  Matthias Klose  <doko@ubuntu.com>
1469
1470         * gcc.c (cc1_options): Handle -iplugindir before processing
1471         the cc1 spec. Only add -iplugindir once.
1472         (cpp_unique_options): Add -iplugindir option if -fplugin* options
1473         found.
1474         * common.opt (iplugindir): Remove `Separate' property, initialize.
1475         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
1476         option.
1477         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
1478         (distclean): Remove plugin dir.
1479         * doc/invoke.texi: Document -iplugindir.
1480
1481 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
1482
1483         * doc/plugins.texi (Loading Plugins): Document short
1484         -fplugin=foo option.
1485         (Plugin API): Mention default_plugin_dir_name function.
1486
1487         * gcc.c (find_file_spec_function): Add new declaration.
1488         (static_spec_func): Use it for "find-file".
1489         (find_file_spec_function): Add new function.
1490         (cc1_options): Add -iplugindir option if -fplugin* options found.
1491
1492         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
1493
1494         * plugin.c (add_new_plugin): Updated comment, and handle short
1495         plugin name.
1496         (default_plugin_dir_name): Added new function.
1497
1498         * common.opt (iplugindir): New option to set the plugin directory.
1499
1500 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
1501
1502         * config/i386/i386.md (any_rotate): New code iterator.
1503         (rotate_insn): New code attribute.
1504         (rotate): Ditto.
1505         (SWIM124): New mode iterator.
1506         (<rotate_insn>ti3): New expander.
1507         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
1508         any_rotate code iterator.
1509         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
1510         using any_rotate code iterator and SWIM124 mode iterator.
1511         (ix86_rotlti3): New insn_and_split pattern.
1512         (ix86_rotrti3): Ditto.
1513         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
1514         ix86_rotl{di,ti}3 patterns.
1515         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
1516         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
1517         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
1518         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
1519         code iterator and SWI mode iterator.
1520         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
1521         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
1522         code iterator.
1523         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
1524         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
1525         (bswap rotatert splitter): Add splitter.
1526         (bswap splitter): Macroize splitter using any_rotate code iterator.
1527         Add insn predicate to split only for TARGET_USE_XCHGB or when
1528         optimizing function for size.
1529
1530 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1531
1532         * config/pa/pa.c (emit_move_sequence): Remove use of
1533         deleted variable flag_argument_noalias.
1534
1535 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1536
1537         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
1538         configurations.
1539         Add to unsupported targets list.
1540         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
1541         sparc*-sun-solaris2.[567]* from target lists.
1542         * configure: Regenerate.
1543         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
1544         removal.
1545         Remove Solaris 7 patch references.
1546         (Specific, sparc-sun-solaris2.7): Removed.
1547         (sparc-sun-solaris2*): Update Solaris 7 example.
1548         (sparc64-*-solaris2*): Likewise.
1549
1550 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1551
1552         * config.build (alpha*-dec-osf4*): Remove.
1553         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
1554         of obsolete configurations.
1555         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
1556         support.
1557         * config/alpha/t-osf4: Renamed to ...
1558         * config/alpha/t-osf5: ... this.
1559         * config/alpha/osf.h: Renamed to ...
1560         * config/alpha/osf5.h: ... this.
1561         Merged old osf5.h contents.
1562         Update comments.
1563         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
1564         (EXTRA_SPECS): Removed.
1565         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
1566         reflect removal of Tru64 UNIX V4.0/V5.0 support.
1567         Document that.
1568
1569 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1570
1571         * doc/contrib.texi (Contributors, Rainer Orth): Update.
1572
1573 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
1574
1575         PR/43702
1576         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
1577         __thiscall convention.
1578
1579 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1580
1581         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
1582         orig_base.
1583         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
1584
1585 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1586
1587         * function.c (assign_parms_initialize_all): Add unused attribute
1588         to fntype.
1589
1590 2010-04-12  Richard Guenther  <rguenther@suse.de>
1591
1592         * gsstruct.def (GSS_CALL): New.
1593         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
1594         * gimple.h: Include tree-ssa-alias.h.
1595         (struct gimple_statement_call): New.
1596         (union gimple_statement_struct_d): Add gimple_call member.
1597         (gimple_call_reset_alias_info): Declare.
1598         (gimple_call_use_set): New function.
1599         (gimple_call_clobber_set): Likewise.
1600         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
1601         * gimple.c (gimple_call_reset_alias_info): New function.
1602         (gimple_build_call_1): Call it.
1603         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1604         * tree-inline.c (remap_gimple_stmt): Likewise.
1605         (expand_call_inline): Remove callused handling.
1606         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
1607         * tree-dfa.c (dump_variable): Likewise.
1608         * tree-parloops.c (parallelize_loops): Likewise.
1609         * tree-ssa.c (init_tree_ssa): Likewise.
1610         (delete_tree_ssa): Likewise.
1611         * tree-flow-inline.h (is_call_used): Remove.
1612         * tree-flow.h (struct gimple_df): Remove callused member.
1613         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
1614         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
1615         (ref_maybe_used_by_call_p_1): Simplify.
1616         (call_may_clobber_ref_p_1): Likewise.
1617         * tree-ssa-structalias.c (compute_points_to_sets): Set
1618         the call stmt used and clobbered sets.
1619         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
1620         (find_tail_calls): Verify the tail call.
1621
1622 2010-04-12  Richard Guenther  <rguenther@suse.de>
1623
1624         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
1625         single-iteration always-inline inlining.
1626         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
1627         (cgraph_decide_inlining): Do not handle always-inline specially.
1628         (try_inline): Remove always-inline cycle detection special case.
1629         Do not recurse on always-inlines.
1630         (cgraph_early_inlining): Do not iterate if not optimizing.
1631         (cgraph_gate_early_inlining): remove.
1632         (pass_early_inline): Run unconditionally.
1633         (gate_cgraph_decide_inlining): New function.
1634         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
1635         not inlining or optimizing.
1636         (cgraph_decide_inlining_of_small_functions): Also consider
1637         always-inline functions.
1638         (cgraph_default_inline_p): Return true for nodes which should
1639         disregard inline limits.
1640         (estimate_function_body_sizes): Assume zero size and time for
1641         nodes which are marked as disregarding inline limits.
1642         (cgraph_decide_recursive_inlining): Do not perform recursive
1643         inlining on always-inline nodes.
1644
1645 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
1646
1647         PR bootstrap/43699
1648         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
1649         for exprs satisfying handled_component_p.
1650
1651 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
1652
1653         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
1654         non-constant aggregate elements.
1655
1656         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
1657         is a real initialization.
1658
1659 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
1660
1661         PR c/36774
1662         * c-decl.c (start_function): Move forward check for nested function.
1663
1664 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1665
1666         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
1667         * config/sh/sh.c: Include reload.h.
1668         (sh_legitimize_reload_address): New.
1669         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
1670         sh_legitimize_reload_address.
1671
1672 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1673
1674         * config/sh/sh.md (*movqi_pop): New insn pattern.
1675         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
1676
1677 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
1678
1679         * config/i386/i386.md (any_shiftrt): New code iterator.
1680         (shiftrt_insn): New code attribute.
1681         (shiftrt): Ditto.
1682         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
1683         using any_shiftrt code iterator.
1684         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
1685         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
1686         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
1687         pattern from corresponding peephole2 patterns.
1688         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
1689         using any_shiftrt code iterator.
1690         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
1691         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
1692         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
1693         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
1694         *{ashr,lshr}<mode>3_cmp_zext.
1695         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
1696
1697 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
1698
1699         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
1700         scratch register.
1701         (*lshr<mode>3_cconly): Ditto.
1702
1703 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
1704
1705         * config/i386/i386.md (lshr<mode>3): Macroize expander from
1706         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
1707         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
1708         pattern from *lshr{di,ti}3_1 and corresponding splitters using
1709         DWI mode iterator.
1710         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
1711         from corresponding peephole2 patterns.
1712         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
1713         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
1714         and *lshrdi3_1_rex64 using SWI mode iterator.
1715         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
1716         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
1717         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
1718         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
1719         and *lshrdi3_cmp_rex64 using SWI mode iterator.
1720         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
1721         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
1722         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
1723         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
1724         SWI mode iterator.
1725
1726 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
1727
1728         * config/i386/i386.md (ashr<mode>3): Macroize expander from
1729         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
1730         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
1731         pattern from *ashr{di,ti}3_1 and corresponding splitters using
1732         DWI mode iterator.
1733         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
1734         from corresponding peephole2 patterns.
1735         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
1736         (ashrsi3_cvt): Rename from ashrsi3_31.
1737         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
1738         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
1739         and x86_64_shift_adj_3 using SWI48 mode iterator.
1740         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
1741         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
1742         and *ashrdi3_1_rex64 using SWI mode iterator.
1743         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
1744         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
1745         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
1746         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
1747         and *ashrdi3_cmp_rex64 using SWI mode iterator.
1748         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
1749         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
1750         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
1751         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
1752         SWI mode iterator.
1753         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
1754         * config/i386/i386.c (ix86_split_ashr): Update for renamed
1755         x86_shift<mode>_adj_3 expanders.
1756
1757 2010-04-10  Wei Guozhi  <carrot@google.com>
1758
1759         PR target/42601
1760         * config/arm/arm.c (arm_pic_static_addr): New function.
1761         (legitimize_pic_address): Call arm_pic_static_addr when it detects
1762         a static symbol.
1763         (arm_output_addr_const_extra): Output expression for new pattern.
1764         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
1765
1766 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
1767
1768         * ira-costs.c (record_reg_classes): Ignore alternatives that are
1769         not enabled.
1770
1771         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
1772         * web.c: Include "insn-config.h" and "recog.h".
1773         (union_match_dups): New function.
1774         (web_main): Call it.
1775         (union_defs): Don't try to recognize match_dups.
1776
1777         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
1778         if doing so would replace the entire pattern.
1779
1780 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
1781
1782         PR target/43707
1783         PR target/43709
1784         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
1785         and splitter pattern.  Change splitter operand 1 predicate to
1786         nonmemory_operand.
1787
1788 2010-04-09  Martin Jambor  <mjambor@suse.cz>
1789
1790         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
1791         lattices are addresses of CONST_DECLs with the same initial value.
1792         (ipcp_print_all_lattices): Print values of CONST_DECLs.
1793         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
1794
1795 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
1796             Bernd Schmidt  <bernds@codesourcery.com>
1797
1798         * loop-invariant.c (replace_uses): New static function.
1799         (move_invariant_reg): Use it to ensure we can replace the uses.
1800
1801 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
1802
1803         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
1804         function template.
1805         (picochip_override_options): Enable section anchors only above -O1.
1806         (picochip_reorg): Fixed a couple of build warnings.
1807
1808 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1809
1810         * configure.ac (plugin -rdynamic test): Log result.
1811         * configure: Regenerate.
1812         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
1813         (RDYNAMIC_SPEC): Define.
1814         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
1815
1816 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1817
1818         * configure.ac: Determine Sun ld version numbers.
1819         (comdat_group): Restrict GNU ld version checks to gld.
1820         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
1821         (enable_comdat): Support --enable-comdat.
1822         * configure: Regenerate.
1823         * doc/install.texi (Configuration): Document --enable-comdat.
1824
1825 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1826
1827         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
1828         * config/sol2-gld.h: ... here.
1829         * config.gcc (sparc*-*-solaris2*): Reflect this.
1830         (i[34567]86-*-solaris2*): Use it.
1831
1832 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
1833
1834         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
1835         setup_clocks_p.
1836         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
1837
1838 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1839
1840         PR 42965
1841         * diagnostic.c (diagnostic_initialize): Initialize
1842         some_warnings_are_errors.
1843         (diagnostic_finish): New.
1844         (diagnostic_action_after_output): Call it before exiting.
1845         (diagnostic_report_diagnostic): Do not print message here. Set
1846         some_warnings_are_errors.
1847         * diagnostic.h (diagnostic_context): Delete
1848         issue_warnings_are_errors_message. Add some_warnings_are_errors.
1849         (diagnostic_finish): Declare.
1850         * toplev.c (toplev_main): Call it before exit.
1851
1852 2010-04-09  Jason Merrill  <jason@redhat.com>
1853
1854         PR c++/42623
1855         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
1856         for incomplete type.
1857
1858         PR c++/41788
1859         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
1860         based on a warning flag.
1861
1862 2010-04-09  Richard Guenther  <rguenther@suse.de>
1863
1864         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
1865
1866 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
1867
1868         PR bootstrap/43684
1869         * varasm.c (default_assemble_visibility): Wrap vars that are
1870         set, but unused, by targets without GAS.
1871         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
1872         Remove set, but unused, vars.
1873         (rs6000_legitimize_tls_address): Likewise.
1874         (altivec_expand_dst_builtin): Likewise.
1875         * config/darwin.c (machopic_classify_symbol): Likewise.
1876         (machopic_indirection_name): Likewise.
1877
1878 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
1879
1880         * config/i386/i386.md (DWI): New mode iterator.
1881         (S): New mode attribute.
1882         (shift_operand): Ditto.
1883         (shift_immediate_operand): Ditto.
1884         (ashl_input_operand): Ditto.
1885         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
1886         using SDWIM mode iterator.
1887         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
1888         pattern from *ashl{di,ti}3_1 and corresponding splitters using
1889         DWI mode iterator.
1890         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
1891         from corresponding peephole2 patterns.
1892         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
1893         and x86_64_shift_adj_1 using SWI48 mode iterator.
1894         (x86_shift<mode>_adj_2): Ditto.
1895         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
1896         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
1897         using SWI48 mode iterator.
1898         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
1899         *ashldi3_cmp_rex64 using SWI mode iterator.
1900         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
1901         *ashldi3_cconly_rex64 using SWI mode iterator.
1902         * config/i386/i386.c (ix86_split_ashl): Update for renamed
1903         x86_shift<mode>_adj_{1,2}.
1904         (ix86_split_ashr): Ditto.
1905         (ix86_split_lshr): Ditto.
1906
1907 2010-04-09  Richard Guenther  <rguenther@suse.de>
1908
1909         * target.h (builtin_conversion): Pass in input and output types.
1910         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
1911         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
1912         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
1913         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
1914
1915         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
1916         Handle AVX modes.
1917         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
1918
1919 2010-04-09  Richard Guenther  <rguenther@suse.de>
1920
1921         PR target/43152
1922         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
1923
1924 2010-04-09  Richard Guenther  <rguenther@suse.de>
1925
1926         * tree-vectorizer.h (struct _stmt_vec_info): Document
1927         that vectype is the type of the LHS.
1928         (supportable_widening_operation, supportable_narrowing_operation):
1929         Get both input and output vector types as arguments.
1930         (vect_is_simple_use_1): Declare.
1931         (get_same_sized_vectype): Likewise.
1932         * tree-vect-loop.c (vect_determine_vectorization_factor):
1933         Set STMT_VINFO_VECTYPE to the vector type of the def.
1934         (vectorizable_reduction): Adjust.
1935         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
1936         Adjust.  Specify the output vector type.
1937         (vect_pattern_recog_1): Adjust.
1938         * tree-vect-stmts.c (get_same_sized_vectype): New function.
1939         (vectorizable_call): Adjust.
1940         (vectorizable_conversion): Likewise.
1941         (vectorizable_operation): Likewise.
1942         (vectorizable_type_demotion): Likewise.
1943         (vectorizable_type_promotion): Likewise.
1944         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
1945         the def.
1946         (vect_is_simple_use_1): New function.
1947         (supportable_widening_operation): Get both input and output
1948         vector types.
1949         (supportable_narrowing_operation): Likewise.
1950         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
1951
1952 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
1953
1954         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
1955         __thiscall and _thiscall as predefined macros.
1956         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
1957         thiscall attribute handling.
1958         (ix86_comp_type_attributes): Likewise.
1959         (ix86_function_regparm): Likewise.
1960         (ix86_return_pops_args): Likewise.
1961         (init_cumulative_args): Likewise.
1962         (find_drap_reg): Likewise.
1963         (ix86_static_chain): Likewise.
1964         (x86_this_parameter): Likewise.
1965         (x86_output_mi_thunk): Likewise.
1966         (ix86_attribute_table): Add description for thiscall attribute.
1967         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
1968         * doc/extend.texi: Add documentation for thiscall.
1969
1970 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1971
1972         PR c++/28584
1973         * c.opt (Wint-to-pointer-cast): Available in C++.
1974         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
1975
1976 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
1977
1978         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
1979         * calls.c (expand_call): Pass the function type to aggregate_value_p.
1980         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
1981         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
1982         function type instead.  Reorder and simplify checks.
1983
1984         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
1985
1986 2010-04-08  Jing Yu  <jingyu@google.com>
1987             Zdenek Dvorak  <ook@ucw.cz>
1988
1989         PR tree-optimization/42720
1990         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
1991         loop unswitch conditions here from ...
1992         (tree_unswitch_single_loop): ... here.
1993
1994 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
1995
1996         * tree-if-conv.c: Fix comments and simplify logic.
1997
1998 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
1999
2000         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2001         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2002         (main_tree_if_conversion): Update call to tree_if_conversion.
2003
2004 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2005
2006         PR 42485
2007         * doc/invoke.texi (-b,-V): Delete.
2008         * doc/tm.texi: Do not mention -b.
2009         * gcc.c (display_help): Delete -b and -V.
2010         (process_command): Delete -b and -V.
2011         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2012
2013 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2014             Wolfgang Gellerich  <gellerich@de.ibm.com>
2015
2016         Implement target hook for loop unrolling
2017         * target.h (loop_unroll_adjust): Add a new target hook function.
2018         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2019         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2020         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2021         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2022         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2023         target hook.
2024         (decide_unroll_stupid): Likewise.
2025
2026 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2027
2028         PR target/43643
2029         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2030
2031 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2032
2033         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2034         (Specific, *-*-solaris2*): Likewise.
2035         Don't prefer Sun as over GNU as.
2036
2037 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2038
2039         * config/s390/s390.c (override_options): Adjust the z10
2040           defaults for max-unroll-times, max-completely-peeled-insns
2041           and max-completely-peel-times.
2042
2043 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2044
2045         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2046         instructions for z10.
2047         (s390_expand_setmem): Likewise.
2048         (s390_expand_cmpmem): Likewise.
2049
2050 2010-04-08  Richard Guenther  <rguenther@suse.de>
2051
2052         PR tree-optimization/43679
2053         * tree-ssa-pre.c (eliminate): Only propagate copies.
2054
2055 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2056
2057         PR bootstrap/43681
2058         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2059         set but not used variable warning.
2060
2061 2010-04-08  Wei Guozhi  <carrot@google.com>
2062
2063         PR target/41653
2064         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2065         (arm_size_rtx_costs): Call the new function when optimized for size.
2066
2067 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2068
2069         PR debug/43670
2070         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2071         op0 is not a MEM, just return NULL instead of assertion
2072         failure.
2073         (discover_nonconstant_array_refs): Don't walk debug stmts.
2074
2075 2010-04-08  Doug Kwan  <dougkwan@google.com>
2076
2077         * configure.ac: Recognize gold and do not use its version number
2078         to test ld features.
2079         * configure: Regenerate.
2080
2081 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2082
2083         PR middle-end/40815
2084         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2085         (negate_value): Move code to push elements to broken_up_substracts ...
2086         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2087         negative pair to plus_negates.
2088         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2089
2090 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2091
2092         * doc/install.texi (Configuration): Move description of
2093         --enable-lto, --with-libelf*, --enable-gold from Java section to
2094         general section.
2095
2096         * doc/generic.texi (Working with declarations)
2097         (Function Properties, C and C++ Trees): Fix typos.
2098         * doc/sourcebuild.texi (Top Level): Likewise.
2099
2100 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2101
2102         PR c/18624
2103         * tree.h (DECL_READ_P): Define.
2104         (struct tree_decl_common): Add decl_read_flag.
2105         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2106         a set but not used warning.
2107         (merge_decls): Merge DECL_READ_P flag.
2108         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2109         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2110         * c-common.c (handle_used_attribute, handle_unused_attribute):
2111         Likewise.
2112         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2113         New prototypes.
2114         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2115         New functions.
2116         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2117         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2118         c_parser_binary_expression, c_parser_cast_expression,
2119         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2120         Call default_function_array_read_conversion instead of
2121         default_function_array_conversion where needed.
2122         (c_parser_unary_expression, c_parser_conditional_expression,
2123         c_parser_postfix_expression_after_primary, c_parser_initelt):
2124         Likewise.  Call mark_exp_read where needed.
2125         (c_parser_statement_after_labels, c_parser_asm_operands,
2126         c_parser_typeof_specifier, c_parser_sizeof_expression,
2127         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2128         where needed.
2129         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2130         New.
2131         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2132         (warn_unused_but_set_parameter): Default to warn_unused
2133         && extra_warnings.
2134         * doc/invoke.texi: Document -Wunused-but-set-variable and
2135         -Wunused-but-set-parameter.
2136
2137         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2138         used count variable.
2139         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2140         when operandN variables aren't used in the body of the expander
2141         or splitter.
2142         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2143         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2144         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2145         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2146         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2147         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2148         * tree.c (PROCESS_ARG): Likewise.
2149
2150 2010-04-07  Simon Baldwin  <simonb@google.com>
2151
2152         * diagnostic.h (diagnostic_override_option_index): New macro to
2153         set a diagnostic's option_index.
2154         * c-tree.h (c_cpp_error): Add warning reason argument.
2155         * opts.c (_warning_as_error_callback): New.
2156         (register_warning_as_error_callback): Store callback for
2157         warnings enabled via enable_warning_as_error.
2158         (enable_warning_as_error): Call callback, minor code tidy.
2159         * opts.h (register_warning_as_error_callback): Declare.
2160         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2161         response to -Werror=.
2162         (c_common_init_options): Register warning_as_error_callback in opts.c.
2163         * common.opt: Add -Wno-cpp option.
2164         * c-common.c (struct reason_option_codes_t): Map cpp warning
2165         reason codes to gcc option indexes.
2166         * (c_option_controlling_cpp_error): New function, lookup the gcc
2167         option index for a cpp warning reason code.
2168         * (c_cpp_error): Add warning reason argument, call
2169         c_option_controlling_cpp_error for diagnostic_override_option_index.
2170         * doc/invoke.texi: Document -Wno-cpp.
2171
2172 2010-04-07  Richard Guenther  <rguenther@suse.de>
2173
2174         * ipa-reference.c (mark_load): Use get_base_address.
2175         (mark_store): Likewise.
2176
2177         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2178         inserting GIMPLE_NOPs into the IL.
2179         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2180         Explicitly strip handled components and indirect references.
2181
2182         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
2183         folding address expressions.
2184         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
2185         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
2186         operand_equal_p to compare decls.
2187         (ptr_deref_may_alias_decl_p): Likewise.
2188         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
2189         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
2190         Handle reversed comparison ops.
2191         * tree-sra.c (asm_visit_addr): Use get_base_address.
2192         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2193         * ipa-reference.c (mark_address): Use get_base_address.
2194
2195 2010-04-07  Richard Guenther  <rguenther@suse.de>
2196
2197         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
2198         Propagate constants everywhere.
2199
2200 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2201
2202         PR debug/43516
2203         * tree.c (MAX_INT_CACHED_PREC): Define.
2204         (nonstandard_integer_type_cache): New array.
2205         (build_nonstandard_integer_type): Cache results for precision
2206         <= MAX_INT_CACHED_PREC.
2207
2208 2010-04-07  Richard Guenther  <rguenther@suse.de>
2209
2210         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
2211         -fargument-noalias-global, -fargument-noalias-anything): Remove.
2212         * common.opt: Likewise.
2213         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
2214         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
2215         (nonoverlapping_memrefs_p): Likewise.
2216         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2217         * opts.c (common_handle_option): Handle OPT_fargument_alias,
2218         OPT_fargument_noalias, OPT_fargument_noalias_anything and
2219         OPT_fargument_noalias_global for backward compatibility.
2220
2221 2010-04-07  Richard Guenther  <rguenther@suse.de>
2222
2223         PR tree-optimization/43270
2224         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
2225         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
2226         * tree-ssa-pre.c (phi_translate_1): Adjust.
2227         (fully_constant_expression): Split out vn_reference handling to ...
2228         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
2229         Fold reads from constant strings.
2230         (vn_reference_lookup): Handle fully constant references.
2231         (vn_reference_lookup_pieces): Likewise.
2232         * Makefile.in (expmed.o-warn): Add -Wno-error.
2233
2234 2010-04-07  Martin Jambor  <mjambor@suse.cz>
2235
2236         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
2237
2238 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2239
2240         PR driver/41594
2241         * gcc.c: Add -static-libstdc++ to list of recognized options.
2242
2243 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2244
2245         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
2246
2247 2010-04-07  Richard Guenther  <rguenther@suse.de>
2248
2249         PR middle-end/42617
2250         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
2251         bases build simple mem attributes to retain points-to information.
2252
2253 2010-04-07  Richard Guenther  <rguenther@suse.de>
2254
2255         PR middle-end/42617
2256         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
2257         preserve points-to related information.
2258
2259 2010-04-07  Richard Guenther  <rguenther@suse.de>
2260
2261         PR middle-end/42617
2262         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
2263         discard plain indirect references.
2264         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
2265         * tree.c (tree_nop_conversion): Likewise.
2266
2267 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
2268
2269         PR debug/43628
2270         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
2271
2272 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
2273
2274         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
2275         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2276
2277 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2278
2279         * tree-if-conv.c: Fix indentation and comments.
2280
2281 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2282
2283         * tree-if-conv.c: Sort static functions in topological order.
2284
2285 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2286
2287         * tree-if-conv.c: Fix indentation and comments.
2288
2289 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2290
2291         PR middle-end/43519
2292         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
2293         lang_hooks.types.type_for_size instead of
2294         build_nonstandard_integer_type.
2295         When converting an unsigned type to signed, double its precision.
2296         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
2297         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
2298         (graphite_create_new_loop_guard): When ub + 1 wraps around,
2299         use lb <= ub.
2300
2301 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2302
2303         PR middle-end/43519
2304         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2305         POINTER_PLUS_EXPR for pointer types.
2306
2307 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2308
2309         PR middle-end/43519
2310         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
2311         * graphite-clast-to-gimple.c: Include langhooks.h.
2312         (max_signed_precision_type): New.
2313         (max_precision_type): Takes two types as arguments.
2314         (precision_for_value): New.
2315         (precision_for_interval): New.
2316         (gcc_type_for_interval): New.
2317         (gcc_type_for_value): New.
2318         (gcc_type_for_clast_term): New.
2319         (gcc_type_for_clast_red): New.
2320         (gcc_type_for_clast_bin): New.
2321         (gcc_type_for_clast_expr): Split up into several functions.
2322         (gcc_type_for_clast_eq): Rewritten.
2323         (compute_bounds_for_level): New.
2324         (compute_type_for_level_1): New.
2325         (compute_type_for_level): New.
2326         (gcc_type_for_cloog_iv): Removed.
2327         (gcc_type_for_iv_of_clast_loop): Rewritten.
2328         (graphite_create_new_loop): Compute the lower and upper bound types
2329         with gcc_type_for_clast_expr.
2330         (graphite_create_new_loop_guard): Same.
2331         (find_cloog_iv_in_expr): Removed.
2332         (compute_cloog_iv_types_1): Removed.
2333         (compute_cloog_iv_types): Removed.
2334         (gloog): Do not call compute_cloog_iv_types.
2335         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
2336         GBB_CLOOG_IV_TYPES.
2337         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
2338         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
2339         (GBB_CLOOG_IV_TYPES): Removed.
2340
2341 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2342
2343         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
2344         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
2345         (detect_commutative_reduction): Same.
2346
2347 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2348
2349         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
2350         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
2351         argument.
2352         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
2353         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
2354         (rewrite_commutative_reductions_out_of_ssa): Same.
2355         * passes.c (execute_function_todo): Call verify_ssa for every pass
2356         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
2357         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
2358         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
2359         with an extra argument.
2360         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
2361         verify_ssa only when the extra argument is true.
2362         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
2363         with an extra argument.
2364         (tree_transform_and_unroll_loop): Same.
2365
2366 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2367
2368         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
2369         for all the passes of the LNO having LOOP_CLOSED_SSA.
2370         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
2371         * tree-loop-distribution.c (pass_loop_distribution): Same.
2372         * tree-pass.h (TODO_verify_loops): Removed.
2373         * tree-ssa-loop.c (pass_tree_loop_init): Same.
2374         (pass_lim): Same.
2375         (pass_tree_unswitch): Same.
2376         (pass_predcom): Same.
2377         (pass_vectorize): Same.
2378         (pass_linear_transform): Same.
2379         (pass_graphite_transforms): Same.
2380         (pass_iv_canon): Same.
2381         (pass_complete_unroll): Same.
2382         (pass_complete_unrolli): Same.
2383         (pass_parallelize_loops): Same.
2384         (pass_loop_prefetch): Same.
2385         (pass_iv_optimize): Same.
2386
2387 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
2388
2389         PR middle-end/32824
2390         * passes.c (init_optimization_passes): Move pass_lim before
2391         pass_copy_prop and pass_dce_loop.
2392
2393 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2394
2395         PR target/43667
2396         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
2397         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
2398         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
2399         MULTI_* defines for 4 argument vpermil2p* builtins.
2400
2401 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2402
2403         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
2404         * config/i386/i386.c (x86_maybe_negate_const_int): New.
2405         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
2406         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
2407         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
2408         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
2409         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
2410         Use x86_maybe_negate_const_int to output insn mnemonic.
2411         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
2412         check from instruction predicate.  Update comments.
2413         * config/i386/sync.md (sync_add<mode>): Use
2414         x86_maybe_negate_const_int to output insn mnemonic.
2415
2416 2010-04-06  Jan Hubicka  <jh@suse.cz>
2417
2418         PR tree-optimization/42906
2419         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
2420         IGNORE_SELF argument.  Set visited_control_parents for fully
2421         processed BBs.
2422         (find_obviously_necessary_stmts): Update call of
2423         mark_control_dependent_edges_necessary.
2424         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
2425
2426 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2427
2428         * config/i386/i386.md: Remove comment about 'e' and 'E'
2429         operand modifier.
2430
2431 2010-04-06  Richard Guenther  <rguenther@suse.de>
2432
2433         PR tree-optimization/43627
2434         * tree-vrp.c (extract_range_from_unary_expr): Widenings
2435         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
2436         not varying.
2437
2438 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2439
2440         * BASE-VER: Change to 4.6.0.
2441
2442         PR target/43638
2443         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
2444         handling.
2445
2446 2010-04-06  Richard Guenther  <rguenther@suse.de>
2447
2448         PR middle-end/43661
2449         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
2450
2451 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2452
2453         * doc/invoke.texi (Optimize Options): Document that LTO
2454         won't remove object access purely due to incompatible
2455         declarations.
2456
2457 2010-04-04  Matthias Klose  <doko@ubuntu.com>
2458
2459         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
2460         Initialize variable.
2461
2462 2010-04-03  Richard Guenther  <rguenther@suse.de>
2463
2464         PR middle-end/42509
2465         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
2466         require a non-NULL MEM_OFFSET.
2467
2468 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
2469
2470         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
2471         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
2472         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
2473         config/alpha/predicates.md, config/arm/arm.md,
2474         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
2475         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
2476         config/darwin9.h, config/darwin.c, config/darwin.h,
2477         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
2478         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
2479         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
2480         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
2481         config/mips/mips.md, config/mn10300/mn10300.c,
2482         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
2483         config/rs6000/aix.h, config/rs6000/dfp.md,
2484         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
2485         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
2486         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
2487         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
2488         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
2489         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
2490         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
2491         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
2492         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
2493         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
2494         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
2495         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
2496         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
2497         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
2498         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
2499         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
2500         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
2501         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
2502         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
2503         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
2504         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
2505         opt-functions.awk, opth-gen.awk, params.def, passes.c,
2506         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
2507         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
2508         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
2509         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
2510         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
2511         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
2512         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
2513         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
2514         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
2515         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2516         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
2517         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
2518         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
2519         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
2520
2521 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2522
2523         PR other/43620
2524         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
2525         * aclocal.m4: Regenerate.
2526
2527 2010-04-02  Richard Guenther  <rguenther@suse.de>
2528
2529         PR tree-optimization/43629
2530         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
2531         if we have seen a constant value.
2532
2533 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
2534
2535         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
2536
2537 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
2538
2539         PR target/43469
2540         * arm.c (legitimize_tls_address): Adjust call to
2541         gen_tls_load_dot_plus_four.
2542         (arm_note_pic_base): New function.
2543         (arm_cannot_copy_insn_p): Use it.
2544         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
2545         constraint.
2546
2547 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2548
2549         PR bootstrap/43531
2550
2551         Revert:
2552         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2553
2554         * Makefile.in ($(out_object_file)): Depend on
2555         gt-$(basename $(notdir $(out_file))).h.
2556
2557 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
2558
2559         * config.gcc (lm32-*-rtems*): Add t-lm32.
2560
2561 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
2562
2563         * config.gcc: Add lm32-*-rtems*.
2564         * config/lm32/rtems.h: New file.
2565
2566 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
2567
2568         PR target/42609
2569         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
2570
2571 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
2572
2573         * dwarf2out.c (output_compilation_unit_header): For
2574         -gdwarf-4 use version 4 instead of version 3.
2575         (output_line_info): For version 4 and above emit additional
2576         maximum ops per insn header field.
2577         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
2578
2579         * dwarf2out.c (is_c_family, is_java): Remove.
2580         (lower_bound_default): New function.
2581         (add_bound_info, gen_descr_array_type_die): Use it.
2582
2583 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
2584
2585         PR debug/43325
2586         * dwarf2out.c (gen_variable_die): Allow debug info for variable
2587         re-declaration when it happens in a function.
2588
2589 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
2590
2591         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
2592         (cgraph_remove_function_insertion_hook): Same.
2593         (cgraph_call_function_insertion_hooks): Same.
2594
2595 2010-04-01  Richard Guenther  <rguenther@suse.de>
2596
2597         PR middle-end/43614
2598         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
2599         and TREE_THIS_VOLATILE.
2600         (copy_ref_info): Likewise.
2601         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
2602         * tree.c (build6_stat): Ignore side-effects of all but arg5
2603         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
2604         TARGET_MEM_REF.
2605
2606 2010-04-01  Richard Guenther  <rguenther@suse.de>
2607
2608         PR tree-optimization/43607
2609         * ipa-type-escape.c (check_call): Do not access non-existing
2610         arguments.
2611
2612 2010-04-01  Richard Guenther  <rguenther@suse.de>
2613
2614         PR middle-end/43602
2615         Revert
2616         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
2617                     Jack Howarth <howarth@bromo.med.uc.edu>
2618
2619         * tree-profile.c (tree_init_ic_make_global_vars): Make static
2620         variables TLS.
2621
2622 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2623
2624         * doc/install.texi (Prerequisites): Document libelf usability on
2625         IRIX 5/6 and Solaris 2.
2626         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
2627         Update GNU as, GNU ld requirements.
2628         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
2629         Document Sun Studio compiler download.
2630         Update and simplify as, ld recommendations.
2631         (Specific, *-*-solaris2.7): Note obsoletion, removal.
2632
2633 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2634
2635         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
2636         with_tune_32 to pentium4.
2637
2638 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
2639
2640         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
2641
2642 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2643
2644         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
2645         obsoletion, removal.
2646         Update IDO URL.
2647         Document GNU as requirement.
2648         Update configure requirements.
2649         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
2650         Recomment IRIX 6.5.18+.
2651         Document IDF/IDL requirement.
2652         Document GNU as requirement.
2653         Document GNU ld bootstrap failure.
2654         Remove freeware.sgi.com reference.
2655
2656 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2657
2658         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
2659         UNIX V4.0, V5.0 obsoletion, removal.
2660         Remove --with-gc=simple reference.
2661         Update VM requirements during bootstrap.
2662         Remove -oldas bootstrap description.
2663         Update binutils reference.
2664         Remove comparison failure note.
2665
2666 2010-03-31  Richard Guenther  <rguenther@suse.de>
2667             Zdenek Dvorak  <ook@ucw.cz>
2668             Sebastian Pop  <sebastian.pop@amd.com>
2669
2670         PR middle-end/43464
2671         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
2672         with multiple arguments.
2673         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
2674
2675 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
2676
2677         * graphite-dependences.c (print_pddr): Call print_pdr with an
2678         extra argument.
2679         * graphite-poly.c (debug_pdr): Add an extra argument for the
2680         verbosity level.
2681         (print_pdr): Same.
2682         (print_pbb_domain): Same.
2683         (print_pbb): Same.
2684         (print_scop_context): Same.
2685         (print_scop): Same.
2686         (print_cloog): Same.
2687         (debug_pbb_domain): Same.
2688         (debug_pbb): Same.
2689         (print_pdrs): Same.
2690         (debug_pdrs): Same.
2691         (debug_scop_context): Same.
2692         (debug_scop): Same.
2693         (debug_cloog): Same.
2694         (print_scop_params): Same.
2695         (debug_scop_params): Same.
2696         (print_iteration_domain): Same.
2697         (print_iteration_domains): Same.
2698         (debug_iteration_domain): Same.
2699         (debug_iteration_domains): Same.
2700         (print_scattering_function): Same.
2701         (print_scattering_functions): Same.
2702         (debug_scattering_function): Same.
2703         (debug_scattering_functions): Same.
2704         * graphite-poly.h (debug_pdr): Update declaration.
2705         (print_pdr): Same.
2706         (print_pbb_domain): Same.
2707         (print_pbb): Same.
2708         (print_scop_context): Same.
2709         (print_scop): Same.
2710         (print_cloog): Same.
2711         (debug_pbb_domain): Same.
2712         (debug_pbb): Same.
2713         (print_pdrs): Same.
2714         (debug_pdrs): Same.
2715         (debug_scop_context): Same.
2716         (debug_scop): Same.
2717         (debug_cloog): Same.
2718         (print_scop_params): Same.
2719         (debug_scop_params): Same.
2720         (print_iteration_domain): Same.
2721         (print_iteration_domains): Same.
2722         (debug_iteration_domain): Same.
2723         (debug_iteration_domains): Same.
2724         (print_scattering_function): Same.
2725         (print_scattering_functions): Same.
2726         (debug_scattering_function): Same.
2727         (debug_scattering_functions): Same.
2728
2729 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
2730
2731         * graphite-poly.c (print_scattering_function_1): New.
2732         (print_scattering_function): Call it.
2733         (print_scop_params): Remove spaces at the end of lines.
2734         (print_cloog): New.
2735         (debug_cloog): New.
2736         * graphite-poly.h (print_cloog): Declared.
2737         (debug_cloog): Declared.
2738
2739 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
2740
2741         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
2742         in loop->header.
2743         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
2744         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
2745         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
2746         to switch between adding the IV bump in loop->latch or in loop->header.
2747
2748 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
2749
2750         * graphite-poly.c (print_scattering_function): Pretty print following
2751         the scoplib format.
2752         (print_pdr): Same.
2753         (print_pbb_domain): Same.
2754         (dump_gbb_cases): Same.
2755         (dump_gbb_conditions): Same.
2756         (print_pdrs): Same.
2757         (print_pbb): Same.
2758         (print_scop_params): Same.
2759         (print_scop_context): Same.
2760         (print_scop): Same.
2761         (print_pbb_body): New.
2762         (lst_indent_to): New.
2763         (print_lst): Start new lines with a #.
2764         * graphite-poly.h (pbb_bb): New.
2765         (pbb_index): Use pbb_bb.
2766         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
2767         disjuncts.
2768         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
2769
2770 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
2771
2772         * dwarf2out.c (size_of_die): For -gdwarf-4 use
2773         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
2774         and 0 instead of 1 for dw_val_class_flag.
2775         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
2776         dw_val_class_range_list, dw_val_class_loc_list,
2777         dw_val_class_lineptr and dw_val_class_macptr, use
2778         DW_FORM_flag_present for dw_val_class_flag and
2779         DW_FORM_exprloc for dw_val_class_loc.
2780         (output_die): For -gdwarf-4 print dw_val_class_loc
2781         size as uleb128 instead of 1 or 2 bytes and don't print
2782         anything for dw_val_class_flag.
2783
2784         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
2785         instead of cselib_lookup following by tweaking locs->setting_insn.
2786
2787         PR bootstrap/43596
2788         * cselib.c (cselib_process_insn): Clear cselib_current_insn
2789         even before returning from label, setjmp call or volatile asm
2790         handling.
2791
2792 2010-03-31  Richard Guenther  <rguenther@suse.de>
2793
2794         PR middle-end/43600
2795         * cgraphunit.c (cgraph_output_in_order): Do not allocate
2796         temporary data on stack.
2797
2798 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2799
2800         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
2801         (PUSHSECTION_ASM_OP): Remove.
2802         (POPSECTION_ASM_OP): Remove.
2803         (PUSHSECTION_FORMAT): Remove.
2804         * config/sol2.h (PUSHSECTION_FORMAT): Define.
2805         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
2806         * config/sol2.c (solaris_output_init_fini): Use it.
2807
2808 2010-03-31  Jie Zhang  <jie@codesourcery.com>
2809
2810         PR 43574
2811         * opt-functions.awk (var_type_struct): Use signed char type
2812         for simple variables.
2813
2814 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2815
2816         * config/sol2.c: Include output.h.
2817         (solaris_assemble_visibility): New function.
2818         * config/t-sol2 (sol2.o): Add output.h dependency.
2819         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
2820         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
2821         Redefine.
2822
2823 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
2824
2825         PR target/43580
2826         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
2827         V2SImode or XFmode on PRE_DEC.
2828
2829         PR debug/43557
2830         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
2831         BLKmode.
2832
2833 2010-03-31  Jie Zhang  <jie@codesourcery.com>
2834
2835         PR 43562
2836         * reload.h (caller_save_initialized_p): Declare.
2837         * toplev.c (backend_init_target): Don't call
2838         init_caller_save but set caller_save_initialized_p to false.
2839         * caller-save.c (caller_save_initialized_p): Define.
2840         (init_caller_save): Check caller_save_initialized_p.
2841         * ira.c (ira): Call init_caller_save if flag_caller_saves.
2842
2843 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2844
2845         PR target/39048
2846         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
2847         and soft-fp/t-softfp to tmake_file.
2848         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
2849         (LIBGCC2_TF_CEXT): Define.
2850         (TF_SIZE): Define.
2851
2852 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
2853
2854         PR debug/42977
2855         * cselib.c (n_useless_values): Document handling of debug locs.
2856         (n_useless_debug_values, n_debug_values): New variables.
2857         (new_elt_loc_list): Don't add to debug values, keep count.
2858         (promote_debug_loc): New.
2859         (cselib_reset_table): Zero new variables.
2860         (entry_and_rtx_equal_p): Promote debug locs.
2861         (discard_useless_locs): Increment n_useless_debug_values for
2862         debug values.
2863         (remove_useless_values): Adjust n_useless_values and n_debug_values
2864         with n_useless_debug_values.
2865         (add_mem_for_addr): Promote debug locs.
2866         (cselib_lookup_mem): Likewise.
2867         (cselib_lookup_addr): Renamed to...
2868         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
2869         (cselib_log_lookup): ... this.  Turn into...
2870         (cselib_lookup_addr): ... new wrapper.
2871         (cselib_lookup_from_insn): New.
2872         (cselib_invalidate_regno): Increment n_useless_debug_values for
2873         debug values.
2874         (cselib_invalidate_mem): Likewise.
2875         (cselib_process_insn): Take n_deleted and n_debug_values into
2876         account to guard remove_useless_value call.
2877         (cselib_finish): Zero n_useless_debug_values.
2878         * cselib.h (cselib_lookup_from_insn): Declare.
2879         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
2880         (sched_analyze_2): Likewise.
2881
2882 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
2883
2884         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
2885         functions.
2886         (adjust_mems): Replace narrowing SUBREG of expression containing
2887         just PLUS, MINUS, MULT and ASHIFT of registers and constants
2888         with operations in the narrower mode.
2889
2890         PR debug/43593
2891         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
2892         regs_invalidated_by_call instead all call_used_reg_set registers.
2893
2894 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2895
2896         PR middle-end/43430
2897         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
2898         pointer comparisons with types_compatible_p.
2899         * tree-vect-stmts.c (vectorizable_call): Same.
2900         (vectorizable_condition): Same.
2901
2902 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2903
2904         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
2905         stack check if the mask would be zero.
2906
2907 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
2908             Jack Howarth <howarth@bromo.med.uc.edu>
2909
2910         * tree-profile.c (tree_init_ic_make_global_vars): Make static
2911         variables TLS.
2912
2913 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
2914
2915         PR other/25232
2916         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
2917         and __unordtf2.
2918         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
2919         Include ___unordxf2 and ___unordtf2.
2920         * config/i386/libgcc-glibc.ver: Do not define inheritance from
2921         GCC_4.4.0 here.
2922
2923 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
2924
2925         * config/lm32/t-lm32: New file.
2926         * config.gcc: Use the above file when targetting lm32.
2927
2928 2010-03-28  Duncan Sands  <baldrick@free.fr>
2929
2930         * Makefile.in (PLUGIN_HEADERS): Add except.h.
2931
2932 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
2933
2934         PR middle-end/43431
2935         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
2936         Improve vectorization cost model diagnostic.
2937
2938 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
2939
2940         PR middle-end/43436
2941         * tree-vect-data-refs.c (vect_analyze_data_refs): When
2942         compute_data_dependences_for_loop returns false, early exit
2943         and output an extra diagnostic for the failed data reference
2944         analysis.
2945
2946 2010-03-29  Richard Guenther  <rguenther@suse.de>
2947
2948         PR tree-optimization/43560
2949         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
2950         (can_sm_ref_p): Treat stores to readonly locations as trapping.
2951
2952 2010-03-29  Jie Zhang  <jie@codesourcery.com>
2953
2954         PR 43564
2955         * toplev.c (process_options): Set optimization_default_node
2956         and optimization_current_node.
2957         * opts.c (decode_options): Don't set optimization_default_node
2958         and optimization_current_node.
2959
2960 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
2961
2962         * config/rtems.h: Abandon -qrtems_debug.
2963
2964 2010-03-28  Jan Hubicka  <jh@suse.cz>
2965
2966         PR tree-optimization/43505
2967         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
2968         map should not be copied.
2969
2970 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2971
2972         PR middle-end/41674
2973         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
2974         cdtors, set DECL_PRESERVE_P.
2975         * ipa.c (cgraph_externally_visible_p): Return true if declaration
2976         should be preseved.
2977
2978 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
2979
2980         PR tree-optimization/43528
2981         * stor-layout.c (place_field): Check that constant fits into
2982         unsigned HWI when skipping calculation of MS bitfield layout.
2983
2984 2010-03-27  Jan Hubicka  <jh@suse.cz>
2985
2986         PR middle-end/43391
2987         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
2988         notice_global_symbol work.
2989
2990 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
2991
2992         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
2993         instead of dwarf2out_decl.
2994         (struct var_loc_node): Remove section_label field.
2995         (dwarf2out_function_decl): New function.
2996         (dwarf2out_var_location): Don't set section_label field.
2997         (dwarf2out_begin_function): Don't empty decl_loc_table here.
2998
2999 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3000
3001         PR tree-optimization/43544
3002         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3003         First argument for builtin vectorized function hook is now a
3004         tree to be able to distinguish between machine specific and
3005         standard builtins.
3006         * targhooks.c (default_builtin_vectorized_function): Ditto.
3007         * targhooks.h (default_builtin_vectorized_function): Ditto.
3008         * target.h (struct gcc_target): Ditto.
3009         * tree-vect-stmts.c (vectorizable_function): Ditto.
3010         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
3011         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3012         Ditto.
3013
3014 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
3015
3016         PR c/43381
3017         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
3018         nested binding iff it is a FUNCTION_DECL.
3019         (store_parm_decls_newstyle): Pass nested=true to bind for
3020         FUNCTION_DECLs amongst parameters.
3021
3022 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3023
3024         * var-tracking.c (vt_expand_loc_callback): Don't run
3025         cselib_expand_value_rtx_cb in dummy mode if
3026         cselib_dummy_expand_value_rtx_cb returned false.
3027
3028         * var-tracking.c (emit_note_insn_var_location): For one part
3029         notes with offset 0, don't add EXPR_LIST around the location.
3030         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
3031         add_location_or_const_value_attribute): Adjust for that change.
3032
3033         PR debug/43540
3034         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
3035         into first operand and location into second.
3036         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
3037         dw_cfi_oprnd_loc for DW_CFA_expression.
3038         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
3039         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
3040         assume first argument is regnum and second argument is location.
3041
3042 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3043
3044         PR target/42113
3045         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
3046         of scratch register to DImode.  Split to DImode comparison operator.
3047         Use SImode subreg of scratch register in the multiplication.
3048         (*cmp_sadd_sidi): Ditto.
3049         (*cmp_ssub_si): Ditto.
3050         (*cmp_ssub_sidi): Ditto.
3051
3052 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3053
3054         PR target/43524
3055         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
3056         Remove invalid assert and wrong comment.
3057
3058 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3059
3060         PR debug/43516
3061         * flags.h (final_insns_dump_p): New extern.
3062         * final.c (final_insns_dump_p): New variable.
3063         (rest_of_clean_state): Set it before -fdump-final-insns=
3064         dumping, clear afterwards.
3065         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
3066         MEM_ALIAS_SET on MEMs.
3067
3068 2010-03-26  David S. Miller  <davem@davemloft.net>
3069
3070         * configure.ac: Fix sparc GOTDATA_OP bug check.
3071         * configure: Rebuild.
3072
3073 2010-03-26  Alan Modra  <amodra@gmail.com>
3074
3075         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
3076
3077 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3078
3079         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
3080         TLS_SECTION_ASM_FLAG.
3081
3082 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
3083
3084         PR bootstrap/43511
3085         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
3086         Clear first_function_block_is_cold.
3087
3088         PR c/43385
3089         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
3090         argument if the argument is truth_value_p.
3091
3092 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3093
3094         * config/rs6000/constraints.md: Update copyright year for my changes.
3095
3096         PR target/43484
3097         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
3098         used in reg+reg addressing, swap registers.
3099
3100 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3101
3102         PR debug/43293
3103         * target.h (struct gcc_target): Add code_end hook.
3104         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
3105         if not yet defined.
3106         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
3107         * toplev.c (compile_file): Call targetm.asm_out.code_end
3108         hook before unwind info/debug info output.
3109         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
3110         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
3111         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3112         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
3113         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3114         * config/i386/i386.c (ix86_file_end): Renamed to...
3115         (ix86_code_end): ... this.  Make static.  Don't call
3116         file_end_indicate_exec_stack.  Emit unwind info using
3117         final_start_function/final_end_function.
3118         (darwin_x86_file_end): Remove.
3119         (TARGET_ASM_CODE_END): Define.
3120         * config/i386/i386.h (TARGET_ASM_FILE_END,
3121         NEED_INDICATE_EXEC_STACK): Don't define.
3122         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
3123         (TARGET_ASM_FILE_END): Define to darwin_file_end.
3124         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
3125         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
3126
3127         PR target/43498
3128         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
3129         at the beginning and final_end_function at the end.
3130         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3131
3132 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3133
3134         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
3135         and Sun as TLS syntax.
3136         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
3137         * configure: Regenerate.
3138         * config.in: Regenerate.
3139         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
3140         (default_elf_asm_named_section): Use it.
3141         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
3142         (i386_output_dwarf_dtprel): Likewise.
3143         (output_addr_const_extra): Likewise.
3144         (output_pic_addr_const): Lowercase @GOTTPOFF.
3145         (output_addr_const_extra): Likewise.
3146         (output_pic_addr_const): Lowercase @GOTNTPOFF.
3147         (output_addr_const_extra): Likewise.
3148         (output_pic_addr_const): Lowercase @INDNTPOFF.
3149         (output_addr_const_extra): Likewise.
3150         (output_pic_addr_const): Lowercase @NTPOFF.
3151         (output_addr_const_extra): Likewise.
3152         (output_pic_addr_const): Lowercase @TPOFF.
3153         (output_addr_const_extra): Likewise.
3154         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
3155         (*tls_global_dynamic_64): Likewise.
3156         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
3157         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
3158
3159         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
3160         (ASM_OUTPUT_TLS_COMMON): Use it.
3161         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
3162
3163         PR target/38118
3164         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
3165         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
3166         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
3167         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
3168         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3169         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
3170
3171 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3172
3173         * config/i386/i386.c (override_options): Don't accept
3174         -mtls-dialect=sun any longer.
3175         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
3176         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
3177         (*tls_local_dynamic_base_32_sun): Likewise.
3178         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3179
3180 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3181
3182         PR debug/43508
3183         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
3184         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
3185
3186         PR debug/43479
3187         * ira.c (adjust_cleared_regs): New function.
3188         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
3189
3190         PR debug/19192
3191         PR debug/43479
3192         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
3193         from gimple_block.
3194         * expr.c (expand_expr_real): Restore previous
3195         curr_insn_source_location and curr_insn_block after
3196         expand_expr_real_1 call.
3197         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
3198         instead of expand_expr_real_1.
3199
3200 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
3201
3202         PR rtl-optimization/43413
3203         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
3204         hard regs too.
3205
3206 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
3207
3208         PR target/43348
3209         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
3210         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
3211
3212 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
3213
3214         * config/i386/i386.c (ix86_target_string): Add -mfma.
3215         Fix a typo in comment.
3216
3217 2010-03-22  Mike Stump  <mikestump@comcast.net>
3218
3219         PR target/23071
3220         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
3221         Don't overly align based upon packed packed fields.
3222
3223 2010-03-22  Jason Merrill  <jason@redhat.com>
3224
3225         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
3226         Use () rather than [], and move before the element type.
3227
3228 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3229
3230         * doc/configfiles.texi (Configuration Files): Removed
3231         fixinc/Makefile*, intl/Makefile.*.
3232         * doc/makefile.texi: Fixed markup. Abstract from version
3233         control system used.
3234         (Makefile): Removed obsolete gcc/java/parse.y example.
3235         * doc/sourcebuild.texi: Likewise.
3236         (Top Level): Added config, gnattools, libdecnumber, libgcc,
3237         libgomp, libssp.  Removed fastjar.
3238         (Miscellaneous Docs): Clarify location.
3239         Added COPYING3, COPYING3.LIB.
3240         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3241
3242 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3243
3244         PR target/38085
3245         * config/i386/i386.c (x86_function_profiler)
3246         [!NO_PROFILE_COUNTERS]: Fix typo.
3247         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
3248         instead of callq.
3249
3250 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
3251             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3252
3253         * doc/sourcebuild.texi (Test Directives): Split into six
3254         subsections, with most of the current text in new subsections
3255         Directives, Selectors, and Final Actions.
3256         (Directives): Split list of test directives into multiple
3257         subsubsections.
3258         (Selectors): Describe use and syntax of selectors.
3259         (Effective-Target Keywords): Describe all existing keywords.
3260         (Add Options): Describe features for dg-add-options.
3261         (Require Support): Describe variants of dg-require-support.
3262         (Final Actions): Describe commands to use in dg-final.
3263
3264 2010-03-22  Michael Matz  <matz@suse.de>
3265
3266         PR middle-end/43475
3267         * recog.c (validate_replace_rtx_group): Replace also in
3268         REG_EQUAL and REG_EQUIV notes.
3269
3270 2010-03-22  Richard Guenther  <rguenther@suse.de>
3271
3272         PR tree-optimization/43390
3273         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
3274         sure vector extracts are type correct.
3275
3276 2010-03-22  Richard Guenther  <rguenther@suse.de>
3277
3278         PR middle-end/40106
3279         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
3280         x * sqrt (x) even when optimizing for size if the target
3281         has native support for sqrt.
3282
3283 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3284
3285         * varasm.c (make_decl_rtl_for_debug): Also clear
3286         flag_mudflap for the duration of make_decl_rtl call.
3287
3288         PR debug/43443
3289         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
3290         locs from preserved VALUEs.
3291
3292 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3293
3294         PR middle-end/42718
3295         * pa.md (movmemsi): Set align to one if zero.
3296         (movmemdi): Likewise.
3297
3298 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
3299
3300         PR target/42321
3301         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
3302         with their corresponding prologue pushes.
3303
3304 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
3305
3306         PR target/43156
3307         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
3308         at the begining or end.
3309         (spu_expand_epilogue): Likewise.
3310
3311 2010-03-20  Richard Guenther  <rguenther@suse.de>
3312
3313         PR rtl-optimization/43438
3314         * combine.c (make_extraction): Properly zero-/sign-extend an
3315         extraction of the low part of a CONST_INT.  Also handle
3316         CONST_DOUBLE.
3317
3318 2010-03-19  Mike Stump  <mikestump@comcast.net>
3319
3320         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
3321         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
3322         (override_options): Use SUBTARGET32_DEFAULT_CPU.
3323
3324 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
3325
3326         PR c/43211
3327         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
3328         an error.
3329
3330 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
3331
3332         PR rtl-optimization/42258
3333         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
3334         use that may match DEF.
3335
3336         PR target/40697
3337         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
3338         the cost of loading the constant rather than assuming
3339         COSTS_N_INSNS (1).
3340         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
3341         outer code is AND, do the same tests as the andsi3 expander and
3342         return COSTS_N_INSNS (1) if and is cheap.
3343
3344         * optabs.c (avoid_expensive_constant): Fix formatting.
3345
3346 2010-03-19  Michael Matz  <matz@suse.de>
3347
3348         PR c++/43116
3349         * attribs.c (decl_attributes): When rebuilding a function pointer
3350         type use the same qualifiers as the original pointer type.
3351
3352 2010-03-19  Martin Jambor  <mjambor@suse.cz>
3353
3354         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
3355         and is_gimple_ip_invariant_address.
3356
3357 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3358
3359         Revert
3360         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3361
3362         * config/arm/arm.c (arm_override_options): Turn off
3363         flag_dwarf2_cfi_asm for AAPCS variants.
3364
3365 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3366
3367         PR target/43399
3368         * config/arm/arm.c (emit_multi_reg_push): Update comments.
3369         Use PRE_MODIFY instead of PRE_DEC.
3370         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
3371         (vfp_emit_fstmd): Likewise.
3372
3373 2010-03-19  Michael Matz  <matz@suse.de>
3374
3375         PR target/43305
3376         * builtins.c (expand_builtin_interclass_mathfn,
3377         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
3378         if that fails.
3379
3380 2010-03-19  Richard Guenther  <rguenther@suse.de>
3381
3382         PR tree-optimization/43415
3383         * tree-ssa-pre.c (phi_translate): Split out worker to ...
3384         (phi_translate_1): ... this.
3385         (phi_translate): Move all caching here.  Cache all NARY
3386         and REFERENCE translations.
3387
3388 2010-03-19  David S. Miller  <davem@davemloft.net>
3389
3390         With help from Eric Botcazou.
3391         * config/sparc/sparc.c: Include dwarf2out.h.
3392         (emit_pic_helper): Delete.
3393         (pic_helper_symbol_name): Delete.
3394         (pic_helper_emitted_p): Delete.
3395         (pic_helper_needed): New.
3396         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
3397         (get_pc_thunk_name): New.
3398         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
3399         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
3400         Set pic_helper_needed to true.  Don't call emit_pic_helper.
3401         (sparc_expand_prologue): Update load_pic_register call.
3402         (sparc_output_mi_thunk): Likewise.
3403         (sparc_file_end): Emit a hidden comdat symbol for the PIC
3404         thunk if possible.  Output CFI information as needed.
3405
3406 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3407             Jack Howarth <howarth@bromo.med.uc.edu>
3408
3409         PR target/36399
3410         * config/i386/i386.h: Fix ABI on darwin x86-32.
3411
3412 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
3413
3414         * tree.h: Declare make_decl_rtl_for_debug.
3415         * varasm.c (make_decl_rtl_for_debug): New.
3416         * dwarf2out.c (rtl_for_decl_location): Call it.
3417         * cfgexpand.c (expand_debug_expr): Call it.
3418
3419 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3420
3421         PR bootstrap/43399
3422         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
3423         mem_mode.
3424
3425         PR bootstrap/43403
3426         * var-tracking.c (vt_init_cfa_base): Do nothing if
3427         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
3428
3429 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
3430
3431         PR debug/42873
3432         * var-tracking.c (canonicalize_vars_star): New.
3433         (dataflow_post_merge_adjust): Use it.
3434
3435 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3436
3437         PR debug/43058
3438         * var-tracking.c (non_suitable_const): New function.
3439         (add_uses): For DEBUG_INSNs with constants, don't record any
3440         value, instead just the constant value itself.
3441         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
3442         is not VAR_LOC_UNKNOWN_P, set var to the constant.
3443         (emit_notes_in_bb): Likewise.
3444         (emit_note_insn_var_location): For onepart variables if
3445         cur_loc is a VOIDmode constant, use DECL_MODE.
3446
3447 2010-03-18  Martin Jambor  <mjambor@suse.cz>
3448
3449         PR middle-end/42450
3450         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.