OSDN Git Service

* coverage.c (ctr_labels): Delete.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
2
3         * coverage.c (ctr_labels): Delete.
4
5 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
6
7         PR bootstrap/45177
8         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
9         test here from arm_gen_load_multiple_1.
10         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
11         multiple_operation_profitable_p.
12
13 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
14
15         * tree-ssa-prec. (init_pre): Call alloc_aux_for_blocks.
16         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
17
18 2010-08-10  Richard Henderson  <rth@redhat.com>
19
20         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
21         after saving registers.  Assert that SSE registers are only saved
22         with a sufficiently aligned frame.
23         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
24         remove stack_realign_fp handling.
25         (ix86_expand_prologue): Save int registers before stack_realign_fp,
26         and do not mark the stack alignment as frame related.
27         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
28
29         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
30         saves when re-aligning the stack.
31
32 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
33
34         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
35         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
36         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
37
38 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
39
40         * dwarf2out.c (struct die_struct): Move die_tag to the end.
41
42 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
43
44         * config/arm/iterators.md: New file.
45         * config/arm/arm.md: Include iterators.md.
46         (QHSI): Move to new file.
47         (LTUGEU, cnb, optab, ior_xor): Likewise.
48         * config/arm/iwmmxt.md (VMMX): Move to new file.
49         (VSHFT, MMX_char): Likewise.
50         * config/arm/neon.md (VD): Move to new file.
51         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
52         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
53         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
54         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
55         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
56         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
57         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
58         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
59         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
60         (Is_d_reg, V_mode_nunits): Likewise.
61         * config/arm/vec-common.md (VALL): Move to new file.
62         (VALLW, VINT, VINTW): Likewise.
63
64 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
65
66         PR middle-end/45182
67         * combine.c (make_compound_operation): Don't try to convert
68         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
69
70 2010-08-10  Richard Guenther  <rguenther@suse.de>
71
72         * tree.h (get_object_alignment): Adjust prototype.
73         * builtins.c (get_object_alignment): Return unsigned int,
74         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
75         and TARGET_MEM_REF properly.
76         (get_pointer_alignment): Adjust.
77         * emit-rtl.c (get_mem_align_offset): Adjust comment.
78         (set_mem_attributes_minus_bitpos): Adjust.
79         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
80
81 2010-08-10  Richard Guenther  <rguenther@suse.de>
82
83         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
84         (copy_prop_visit_assignment): Simplify.
85         (copy_prop_visit_stmt): Also visit assignments from
86         constants.
87         (copy_prop_visit_phi_node): Use operand_equal_p.
88
89 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
90
91         * ipa-split.c (find_split_points): Free stack.
92
93 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
94
95         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
96         * tree.c (tree_node_kind): Delete corresponding entries.
97
98 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
99
100         * alias.c (may_alias_p): Remove unused ret.
101
102 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
103
104         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
105         alias_sets_conflict_p.
106         (walk_mems_1): Moved from alias.c.
107         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
108         in alias.c. 
109         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
110         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
111         * alias.c (walk_mems_2): Moved to ddg.c.
112         (walk_mems_1): Ditto.
113         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
114         to ddg.c.
115         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
116         disambiguation.
117         *(may_alias_p): New function to check whether two memory expression
118         may alias or not. Currently used in buidling inter-iteration memory
119         dependence.
120         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
121         (insn_alias_sets_conflict_p): Removed
122         *rtl.h (may_alias_p): New function prototype.
123         
124 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
125
126         * tree.c (nreverse): Assert that we don't have a BLOCK.
127
128 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
129
130         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
131         * config/arm/arm.c (arm_get_pcs_model): Likewise.
132         * config/avr/avr.c (init_cumulative_args): Likewise.
133         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
134         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
135         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
136         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
137         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
138         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
139         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
140         * dwarf2out.c (gen_subprogram_die): Likewise.
141         * function.c (allocate_struct_function): Likewise.
142         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
143         (deserves_ellipsis): Delete.
144
145 2010-08-09  Richard Guenther  <rguenther@suse.de>
146
147         * tree-ssa-copy.c (cached_last_copy_of): Remove.
148         (valueize_val): New function.
149         (get_last_copy_of): Remove.
150         (set_copy_of_val): Simplify.
151         (dump_copy_of): Likewise.
152         (copy_prop_visit_cond_stmt): Use valueize_val.
153         (copy_prop_visit_phi_node): Properly handle unvisited names.
154         Drop code managing copy-of chains.
155         (init_copy_prop): Adjust.
156         (fini_copy_prop): Likewise.
157         (execute_copy_prop): Remove obsolete comment.
158
159 2010-08-09  Richard Guenther  <rguenther@suse.de>
160
161         PR middle-end/44632
162         * function.c (gimplify_parameters): Do not clear addressable
163         bit of the original parameter.
164
165 2010-08-09  Richard Guenther  <rguenther@suse.de>
166
167         PR middle-end/45212
168         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
169         alignment from MEM_REF offset only if we took it from the
170         base object.
171
172 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
173
174         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
175
176 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
177
178         * c-tree.h (build_arg_info): Declare.
179         * c-decl.c (build_arg_info): Define.
180         (get_parm_info): Call it.  Delete initialization code.
181         * c-parser.c (c_parser_parms_declarator): Likewise.
182         (c_parser_parms_list_declaractor): Likewise.
183
184 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
185
186         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
187         (struct c_arg_info): Change type of tags field.
188         * c-decl.c (grokdeclarator): Update for changed type of tags field.
189         (get_parm_info): Likewise.
190         (store_parm_decls_newstyle): Likewise.
191
192 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
193
194         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
195         (branch_island_list): Delete.
196         (branch_islands): Declare.
197         (add_compiler_branch_island): Adjust for branch_islands instead of
198         branch_island_list.
199         (macho_branch_islands): Likewise.
200         (no_previous_def): Likewise.
201         (get_prev_label): Likewise.
202
203 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
204
205         PR boehm-gc/34544
206         * gthr-posix.h (__gthread_start): Delete.
207         (__gthread_active_init): Use pthread_default_stacksize_np instead of
208         pthread_create to determine if hpux pthreads are active.
209         * gthr-posix95.h (__gthread_start): Delete.
210         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
211
212 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
213
214         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
215         _WIN64 not expanded.
216
217 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
218             H.J. Lu  <hongjiu.lu@intel.com>
219
220         PR target/45213
221         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
222         to output 32bit SFmode immediate as 8 byte sign extended value.
223
224 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
225
226         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
227         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
228         (SUBWORD_BOOL_CAS): Likewise.
229         (SUBWORD_SYNC_OP): Likewise.
230         (SUBWORD_TEST_AND_SET): Likewise.
231         (FETCH_AND_OP_WORD): Parenthesise INF_OP
232         (SUBWORD_SYNC_OP): Likewise.
233         (OP_AND_FETCH_WORD): Likewise.
234
235 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
236
237         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
238         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
239         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
240         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
241         generic part.
242         (cortex_a9_sched_adjust_cost): New function.
243         (xscale_sched_adjust_cost): New function.
244         * config/arm/arm-protos.h (struct tune_params): New field
245         sched_adjust_cost.
246         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
247
248 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
249
250         PR target/44942
251         * config/sparc/sparc.c (function_arg_advance): Always take into account
252         the padding, if any.
253
254 2010-08-06  Richard Guenther  <rguenther@suse.de>
255
256         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
257         (dump_lattice_value): Dump it.
258         (get_default_value): Adjust.
259         (get_constant_value): Likewise.
260         (set_value_varying): Likewise.
261         (set_lattice_value): Make sure to not go up the lattice
262         with bitwise constant values.
263         (get_value_for_expr): Handle ADDR_EXPRs.
264         (value_to_double_int): New function.
265         (get_value_from_alignment): Likewise.
266         (do_dbg_cnt): Adjust.
267         (ccp_lattice_meet): Handle partially constant values.
268         (bit_value_unop_1): New function.
269         (bit_value_binop_1): Likewise.
270         (bit_value_unop): Likewise.
271         (bit_value_binop): Likewise.
272         (evaluate_stmt): Track partially constant values if
273         flag_tree_bit_ccp is set.
274         (ccp_fold_stmt): Dump if we folded a predicate.
275         (ccp_visit_stmt): Adjust.
276         * common.opt (ftree-bit-ccp): New flag.
277         * doc/invoke.texi (ftree-bit-ccp): Document.
278         * opts.c (decode_options): Enable bit-CCP at -O1.
279
280 2010-08-06  Alan Modra  <amodra@gmail.com>
281
282         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
283         and -mrelocatable-lib description.
284
285 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
286
287         From Martin Thuresson  <martint@google.com>
288         * postreload.c (reload_cse_simplify_operands): Use
289         SET_REGNO_RAW instead of SET_REGNO.
290         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
291         SET_REGNO.
292         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
293         instead of SET_REGNO.
294         * rtl.h (SET_REGNO_RAW): New macro.
295
296 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
297
298         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
299         computations.  Fix formatting issues.
300         (num_sign_bit_copies1): Likewise.
301         (canonicalize_condition): Likewise.
302
303 2010-08-05  Richard Henderson  <rth@redhat.com>
304
305         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
306         (floor_log2): Use clz_hwi.
307         (exact_log2): Use ctz_hwi.
308         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
309         * builtins.c (fold_builtin_bitop): Use them.
310         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
311         * combine.c (get_pos_from_mask): Use ctz_hwi.
312         * double-int.c (double_int_ctz): Likewise.
313         * explow.c (force_reg): Likewise.
314         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
315
316 2010-08-05  Richard Henderson  <rth@redhat.com>
317
318         PR target/45189
319         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
320         the alignment constant is properly sign-extended.
321
322 2010-08-05  Richard Guenther  <rguenther@suse.de>
323
324         * expr.c (store_expr): Use emit_block_move only if both
325         source and target are MEMs.  Use store_bit_field if only
326         the target is a MEM.
327
328 2010-08-05  Richard Henderson  <rth@redhat.com>
329
330         PR debug/45188
331         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
332         (INCOMING_RETURN_ADDR_RTX): Likewise.
333         (dwarf2out_do_frame): Remove conditional compilation.
334         (dwarf2out_frame_init): Likewise.
335
336 2010-08-05  Nicolas Setton  <setton@adacore.com>
337
338         * gcov.c (flag_display_progress): New static variable.
339         (main): Display progress info on standard output if requested.
340         (options): Add -d/--display-progress.
341         (print_usage): Print them.
342         (process_args): Handle them.
343         * doc/gcov.texi: Document them.
344
345 2010-08-05  Martin Jambor  <mjambor@suse.cz>
346
347         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
348         (ipcp_insert_stage): Redirect only edges not flagged with
349         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
350         discovered constants.
351
352 2010-08-05  Martin Jambor  <mjambor@suse.cz>
353
354         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
355         (struct ipa_param_descriptor): New fields types and
356         cannot_devirtualize.
357         (ipa_param_cannot_devirtualize_p): New function.
358         (ipa_param_types_vec_empty): Likewise.
359         (ipa_make_edge_direct_to_target): Declare.
360         * ipa-cp.c: Fixed first stage driver name in initial comment,
361         described devirtualization there too.
362         (ipcp_analyze_node): Call ipa_analyze_params_uses.
363         (ipcp_print_all_lattices): Print devirtualization info.
364         (ipa_set_param_cannot_devirtualize): New function.
365         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
366         lattice to BOTTOM.
367         (ipcp_init_stage): Merged into...
368         (ipcp_generate_summary): ...its caller.
369         (ipcp_change_tops_to_bottom): Also process type lists.
370         (ipcp_add_param_type): New function.
371         (ipcp_copy_types): Likewise.
372         (ipcp_propagate_types): Likewise.
373         (ipcp_propagate_stage): Also propagate types.
374         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
375         Also return true if propagated types require it.
376         (ipcp_update_callgraph): Dump redirection info.
377         (ipcp_process_devirtualization_opportunities): New function.
378         (ipcp_const_param_count): Include known type information.
379         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
380         on new node.  Fixed formatting.
381         * ipa-prop.c (make_edge_direct_to_target): Renamed to
382         ipa_make_edge_direct_to_target and changed all callers.  Made
383         externally visible.
384         (ipa_node_duplication_hook): Duplicate types vector.
385         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
386         redirect outgoing calls for which we can't get a decl from the
387         statement.  Check that we can get a decl from the call statement.
388         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
389         ipa_analyze_params_uses only when ipa-cp is disabled.
390         * tree-inline.c (get_indirect_callee_fndecl): Removed.
391         (expand_call_inline): Do not call get_indirect_callee_fndecl.
392         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
393         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
394
395 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
396
397         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
398         temporary. Emit move from temporary to accum, so REG_EQUAL note will
399         be attached to this insn in correct mode.
400
401 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
402
403         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
404         using REGNO of base_reg directly.
405
406 2010-08-05  Jie Zhang  <jie@codesourcery.com>
407
408         PR tree-optimization/45144
409         * tree-sra.c (type_consists_of_records_p): Return false
410         if the record contains bit-field.
411
412 2010-08-04  Richard Henderson  <rth@redhat.com>
413
414         * config/i386/i386.c (struct ix86_frame): Remove padding and
415         to_allocate members.
416         (ix86_compute_frame_layout): Don't store them.
417         (ix86_can_use_return_insn_p): Use a more direct and more obviously
418         correct condition for the position of the stack pointer.
419         (ix86_expand_prologue): Compute remaining stack allocation based
420         on the ultimate stack pointer offset.
421         (ix86_expand_epilogue): Use more obvious expressions testing for
422         the stack pointer already pointing to the saved registers.
423
424         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
425         duplication deconstructing the frame pointer.  Simplify
426         deallocation of the local stack frame.
427
428         * reg-notes.def (CFA_EXPRESSION): New.
429         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
430         (dwarf2out_frame_debug_cfa_expression): New.
431         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
432
433         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
434         * config/i386/i386.c (ix86_expand_prologue): Set it.
435         (ix86_expand_epilogue): Clear it.
436         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
437         context, add REG_CFA_EXPRESSION notes.
438
439         * config/i386/i386.h (struct machine_frame_state): Rename from
440         machine_cfa_state.  Add members tracking SP and FP regardless
441         of the current CFA register.
442         (ix86_cfa_state): Remove.
443         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
444         and sse_reg_save_offset members.
445         (ix86_compute_frame_layout): Set them.
446         (gen_push): Increment sp_offset too.
447         (choose_baseaddr_len, choose_baseaddr): New.
448         (ix86_emit_save_reg_using_mov): New.
449         (ix86_emit_save_regs_using_mov): Use it.
450         (ix86_emit_save_sse_regs_using_mov): Likewise.
451         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
452         compare vs the saved red_zone_offset.
453         (pro_epilogue_adjust_stack): Adjust sp_offset.
454         (ix86_adjust_stack_and_probe): Likewise.
455         (ix86_expand_prologue): Set up, use, and validate the new
456         frame_state_info members.  Use gen_frame_mem.
457         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
458         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
459         new frame_state_info members.
460         (ix86_emit_leave): Likewise.
461         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
462         out-of-range stack pointer offsets here.
463         (ix86_emit_restore_sse_regs_using_mov): Likewise.
464         (ix86_expand_epilogue): Use and validate the new frame_state_info
465         members.  Break up and simplify the logic selecting the
466         restore_regs_via_mov code path.  Ensure that there will be no
467         out-of-range stack pointer offsets.
468
469         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
470
471         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
472         argument name to reflect the expected tree; fix indentation.
473         (ix86_asm_output_function_label): Output the entire 32-bit
474         ms_hook here as bytes ...
475         (ix86_expand_prologue): ... not here as insns.  Attach the
476         unwind info for the ms_hook to a blockage insn.
477         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
478         (ix86_ms_bitfield_layout_p): Fix indentation.
479         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
480
481         * config/i386/i386.c (ix86_using_red_zone): New.
482         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
483         ix86_expand_prologue, ix86_force_to_memory): Use it.
484
485         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
486         saving the int registers.
487
488         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
489         and DWARF2_UNWIND_INFO conditional compilation.
490
491 2010-08-04  Richard Henderson  <rth@redhat.com>
492
493         PR debug/45171
494         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
495         an is_naming_typedef_decl.
496
497 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
498
499         PR rtl-optimization/45162
500         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
501         * dce.c (word_dce_process_block): Likewise.
502
503 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
504
505         PR target/44583
506         * config/ia64/constraints.md (Z): New.
507         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
508         (xfreg_or_signed_fp01_operand): New.
509         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
510         with fr_reg_or_signed_fp01_operand and constraint G with Z.
511         (subsf3): Ditto.
512         (*maddsf4): Ditto.
513         (*msubsf4): Ditto.
514         (adddf3): Ditto.
515         (adddf3_trunc): Ditto.
516         (subdf3): Ditto.
517         (*subdf3_trunc): Ditto.
518         (*madddf4): Ditto.
519         (*madddf4_trunc): Ditto.
520         (*msubdf4): Ditto.
521         (*msubdf4_trunc): Ditto.
522         (addxf3): Replace xfreg_or_fp01_operand with
523         xfreg_or_signed_fp01_operand and constraint G with Z.
524         (*addxf3_truncsf): Ditto.
525         (*addxf3_truncdf): Ditto.
526         (subxf3): Ditto.
527         (*subxf3_truncsf): Ditto.
528         (*subxf3_truncdf): Ditto.
529         (*maddxf4): Ditto.
530         (*maddxf4_truncsf): Ditto.
531         (*maddxf4_truncdf): Ditto.
532         (*msubxf4): Ditto.
533         (*msubxf4_truncsf): Ditto.
534         (*msubxf4_truncdf): Ditto.
535
536 2010-08-04  Richard Guenther  <rguenther@suse.de>
537
538         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
539         if either alias-set is zero.
540
541 2010-08-04  Richard Guenther  <rguenther@suse.de>
542
543         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
544         * tree-ssa-ccp.c: ... here.
545         * tree-ssa-copy.c: ... and here.
546         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
547         value_range_t): Move ...
548         * tree-vrp.c: ... here.
549         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
550         (substitute_and_fold): Adjust prototype.
551         * tree-ssa-propagate.c (replace_uses_in): Adjust.
552         (replace_phi_args_in): Likewise.
553         (substitute_and_fold): Take callback to query lattice instead
554         of pointer to lattice.  Replace SSA name defs with lattice
555         values first.
556         * tree-ssa-ccp.c (ccp_finalize): Adjust.
557         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
558         (get_value): New function.
559         (fini_copy_prop): Adjust.
560         * tree-vrp.c (vrp_finalize): Adjust.
561
562 2010-08-04  Richard Guenther  <rguenther@suse.de>
563
564         PR middle-end/45176
565         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
566         points-to set for original MEM_REF.
567
568 2010-08-04  Richard Guenther  <rguenther@suse.de>
569
570         * tree-ssa-ccp.c (get_constant_value): New function.
571         (get_rhs_assign_op_for_ccp): Remove.
572         (valueize_op): New function.
573         (ccp_fold): Use get_constant_value and valueize_op.
574         (fold_const_aggregate_ref): Likewise.
575         (ccp_fold_stmt): Likewise.
576         (visit_assignment): Simplify.
577
578 2010-08-04  Richard Guenther  <rguenther@suse.de>
579
580         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
581         * double-int.h (double_int_ctz): Declare.
582         * double-int.c (double_int_ctz): New function.
583
584 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
585
586         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
587         Define.
588         picochip_expand_movmemhi : Expand movmem pattern.
589         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
590         Declare.
591         * config/picochip/picochip.md (movmemhi) : New pattern.
592
593 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
594
595         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
596
597 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
598
599         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
600         NEG as operand of a MULT by merging it with the other operand.
601         * combine.c (make_compound_operation): Use trunc_int_for_mode when
602         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
603         MULT.
604         * config/arm/constraints.md (M): Examine only 32 bits of a
605         HOST_WIDE_INT.
606         * config/arm/predicates.md (power_of_two_operand): Likewise.
607
608 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
609
610         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
611         non-NOTE insns.
612
613 2010-08-03  Jan Hubicka  <jh@suse.cz>
614
615         * ipa-split.c (struct split_point): Add split_part_set_retval.
616         (find_retval): Forward declare.
617         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
618         (consider_split): Compute current->split_part_set_retval.
619         (visit_bb): Do not look into return value.
620         (split_function): Handle !split_part_set_retval
621
622 2010-08-03  Martin Jambor  <mjambor@suse.cz>
623
624         * tree-sra.c (completely_scalarize_record): New parameter REF, create
625         its own access->expr intead of using build_ref_for_offset.
626
627 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
628
629         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
630         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
631         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
632         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
633         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
634         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
635         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
636         DEFAULT_SWITCH_TAKES_ARG.
637         * config/rx/rx.opt (-patch=): Remove option.
638         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
639         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
640         * doc/invoke.texi (RX Options): Remove -patch=.
641         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
642         (option_map): Remove --profile-blocks, --quiet and --silent.
643
644 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
645
646         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
647         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
648         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
649         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
650         Update calls to ix86_expand_compare and ix86_expand_branch.
651         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
652         ix86_expand_compare.
653         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
654         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
655         Make static.
656         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
657         and ix86_compare_op1.  Update calls to ix86_expand_compare.
658         (ix86_expand_int_movcc): Ditto.
659         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
660         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
661         (ix86_expand_setcc): Ditto.
662         (ix86_expand_compare): Remove prototype.
663         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
664         ix86_compare_op0 and ix86_compare_op1.  Update calls
665         to ix86_expand_branch to directly pass operands[1] and operands[2].
666         (cbranchxf4): Ditto.
667         (cbranch<MODEF:mode>4): Ditto.
668         (cbranchcc4): Ditto.
669         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
670         Update calls to ix86_expand_setcc to directly pass operands[2] and
671         operands[3].
672         (cstorexf4): Ditto.
673         (cstore<MODEF:mode>4): Ditto.
674         (cstorecc4): Ditto.
675
676 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
677
678         PR target/45063
679         * caller-save.c (save_call_clobbered_regs): Remove regs from
680         hard_regs_saved when they are set.
681
682 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
683
684         PR target/41089
685         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
686         as volatile.
687
688 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
689
690         * common.opt (ftree-loop-distribute-patterns): New.
691         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
692         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
693         at -O3.
694         * tree-data-ref.c (stores_zero_from_loop): New.
695         * tree-data-ref.h (stores_zero_from_loop): Declared.
696         * tree-loop-distribution.c (tree_loop_distribution): Call
697         stores_zero_from_loop.
698         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
699
700 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
701
702         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
703         into account.
704
705         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
706         * config/arm/arm.c (thumb1_code): New variable.
707         (arm_override_options): Set it.
708         (thumb1_final_prescan_insn): Keep track of condition code status.
709         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
710         jumps that depend on them.
711         * config/arm/arm.h (thumb1_code): Declare variable.
712         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
713         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
714         thumb1_cc_mode.
715         (CC_STATUS_INIT): New macro.
716         * config/arm/constraints.md (Pd): New constraint.
717         * config/arm/predicates.md (noov_comparison_operator): New predicate.
718         * config/arm/arm.md (is_thumb1): New define_attr.
719         (conds): Set default to "clob" when generating Thumb1 code.
720         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
721         code are set.  Use two-operand assembly syntax.
722         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
723         pattern.
724         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
725         codes are set.  Use two-operand assembly syntax.
726         (zero_extendhisi splitter): Remove constraints.
727         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
728         thumb1_movsf_insn): Set conds attribute as appropriate.
729         (cbranchsi4_insn): Use condition code status from struct
730         machine_function to determine whether the comparison can be eliminated.
731         Discourage the alternative using high registers.
732         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
733         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
734         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
735         subsi3_cbranch): Delete.
736         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
737         one subtract and one cbranch insn.
738
739         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
740         thumb2_movdf_soft_insn): Delete patterns.
741         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
742         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
743         (pool_range, neg_pool_range): Use them to define defaults.
744         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
745         and allow for TARGET_32BIT.
746
747         PR target/40457
748         * config/arm/arm.h (arm_regs_in_sequence): Declare.
749         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
750         load_multiple_sequence, store_multiple_sequence): Delete
751         declarations.
752         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
753         declarations.
754         * config/arm/ldmstm.md: New file.
755         * config/arm/arm.c (arm_regs_in_sequence): New array.
756         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
757         CHECK_REGS.  All callers changed.
758         If SAVED_ORDER is nonnull, copy the computed order into it.
759         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
760         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
761         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
762         If SAVED_ORDER is nonnull, copy the computed order into it.
763         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
764         like REGS.  Handle Thumb mode.
765         (arm_gen_load_multiple_1): New function, broken out of
766         arm_gen_load_multiple.
767         (arm_gen_store_multiple_1): New function, broken out of
768         arm_gen_store_multiple.
769         (arm_gen_multiple_op): New function, with code from
770         arm_gen_load_multiple and arm_gen_store_multiple moved here.
771         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
772         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
773         changed.
774         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
775         * config/arm/predicates.md (commutative_binary_operator): New.
776         (load_multiple_operation, store_multiple_operation): Handle more
777         variants of these patterns with different starting offsets.  Handle
778         Thumb-1.
779         * config/arm/arm.md: Include "ldmstm.md".
780         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
781         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
782         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
783         peepholes): Delete.
784         * config/arm/ldmstm.md: New file.
785         * config/arm/arm-ldmstm.ml: New file.
786
787         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
788         if statement which adds extra costs to frame-related expressions.
789
790 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
791
792         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
793
794 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
795
796         PR target/45142
797         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
798         alternative 2.
799         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
800         split V4SI operands.
801
802 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
803
804         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
805         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
806         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
807         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
808
809 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
810
811         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
812         LOCAL_INCLUDE_DIR.
813
814 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
815
816         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
817         used in the call to optab_for_tree_code.  Fix the second
818         is_widening_mult_p call.  Check that both unwidened operands
819         have the same sign.
820
821 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
822
823         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
824
825 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
826
827         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
828
829 2010-07-30  DJ Delorie  <dj@redhat.com>
830
831         * config/rx/predicates.md (rx_constshift_operand): New.
832         * config/rx/rx.md (zs_cond): New.
833         (cbranchsi4): Remove mode.
834         (*cbranchsi4_<code>): Likewise.
835         (*tstbranchsi4_<code>): New.
836         (*tstbranchsi4r_<code>): New.
837         (*tstbranchsi4m_eq): New.
838         (*tstbranchsi4m_ne): New.
839         (cbranchsf4): Remove mode.
840         (*cbranchsf4_<code>): Likewise.
841
842 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
843
844         * rtlanal.c (simplify_subreg_regno): Don't treat
845         HARD_FRAME_POINTER_REGNUM specially.
846
847 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
848
849         * common.opt (-G): Don't define option here.
850         * config/g.opt: New.
851         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
852         rs6000/powerpc and score targets.
853         * opts.c (common_handle_option): Don't handle -G here.
854         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
855         * config/frv/frv.c (frv_handle_option): Handle -G.
856         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
857         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
858         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
859         * config/mips/mips.c (mips_handle_option): Handle -G.
860         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
861         * config/score/score.c (score_handle_option): Handle -G.
862
863 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
864
865         * config/mmix/mmix.c: Include basic-block.h.
866
867 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
868
869         PR debug/45055
870         PR rtl-optimization/45137
871         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
872         prototypes.
873         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
874         New functions.
875         * combine.c (next_nonnote_nondebug_insn): Removed.
876         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
877         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
878         * sched-deps.c (sched_analyze_insn): Likewise.
879         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
880         * rtlanal.c (canonicalize_condition): Likewise.
881         * postreload.c (reload_combine_recognize_pattern): Likewise.
882         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
883
884 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
885
886         * config/i386/i386.md (int_cond): Remove code iterator.
887         (fp_cond): Ditto.
888         (cbranch<mode>4): Use ordered_comparison_operator predicate
889         for operator0.
890         (cstore<mode>4): Ditto for operator1.
891         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
892         (add<mode>cc): ditto.
893
894 2010-07-30  Richard Guenther  <rguenther@suse.de>
895
896         PR middle-end/45141
897         * expr.c (expand_expr_real_1): Check for not handled base address.
898
899 2010-07-30  Richard Guenther  <rguenther@suse.de>
900
901         * ipa-prop.c (ipa_modify_formal_parameters): Use
902         build_distinct_type_copy.
903
904 2010-07-30  Anthony Green  <green@moxielogic.com>
905
906         * config/moxie/rtems.h: New file.
907         * config.gcc: Add moxie-rtems support.
908
909 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
910
911         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
912         df flags as in run_fast_df_dce.
913
914 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
915
916         Revert:
917         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
918
919         * rtl.def (NOTE): Swap operands 4 and 5.
920         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
921         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
922         Adjust accordingly.
923         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
924
925 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
926
927         PR debug/45110
928         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
929         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
930         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
931         formal parameters.
932         (gen_decl_die): Change return type to dw_die_ref, return what
933         gen_formal_parameter_die returned.
934
935 2010-07-29  Martin Jambor  <mjambor@suse.cz>
936
937         * dbgcnt.def (eipa_sra): New counter.
938         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
939
940 2010-07-29  Xinliang David Li  <davidxl@google.com>
941
942         PR bootstrap/45119
943         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
944         in revision 162652.
945
946 2010-07-29  Richard Guenther  <rguenther@suse.de>
947
948         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
949         (TV_TREE_STORE_CCP): Likewise.
950         (TV_TREE_REDPHI): Likewise.
951
952 2010-07-29  Richard Guenther  <rguenther@suse.de>
953
954         * double-int.h (double_int_and_not): New function.
955         * combine.c (try_combine): Use it.
956         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
957
958 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
959
960         PR rtl-optimization/42575
961         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
962         Argument AU removed.  All callers changed.  Ignore artificial refs.
963         Use return value of df_word_lr_simulate_defs to decide whether an insn
964         is necessary.
965         (fast_dce): Rename arg to WORD_LEVEL.
966         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
967         static.
968         (pass_fast_rtl_byte_dce): Delete.
969         * dce.h (run_word_dce): Declare.
970         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
971         All callers changed.  Simplify code to only deal with two-word regs.
972         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
973         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
974         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
975         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
976         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
977         (df_word_lr_mark_ref): Declare.
978         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
979         df_word_lr_simulate_uses): Declare or rename from byte variants.
980         (df_byte_lr_simulate_artificial_refs_at_top,
981         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
982         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
983         declarations.
984         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
985         (enum df_mm): Delete.
986         * df-byte-scan.c: Delete file.
987         * df-problems.c (df_word_lr_problem_data): Renamed from
988         df_byte_lr_problem_data, all members deleted except for
989         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
990         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
991         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
992         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
993         df_byte_lr_confluence_0): Delete functions.
994         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
995         callers changed.
996         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
997         Don't initialize members that were deleted, don't try to discover data
998         about registers.  Ignore hard regs.
999         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
1000         (df_word_lr_mark_ref): New function.
1001         (df_word_lr_bb_local_compute): Renamed from
1002         df_byte_bb_lr_local_compute; all callers changed.  Use
1003         df_word_lr_mark_ref.  Assert that artificial refs don't include
1004         pseudos.  Ignore hard registers.
1005         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
1006         Assert that exit block uses don't contain pseudos.
1007         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
1008         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
1009         callers changed.  Ignore hard regs.
1010         (df_word_lr_transfer_function): Renamed from
1011         df_byte_lr_transfer_function; all callers changed.
1012         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
1013         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
1014         changed.
1015         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
1016         callers changed.
1017         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
1018         confluence operator 0 set to NULL.
1019         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
1020         callers changed.
1021         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
1022         Return bool, true if bitmap changed or insn otherwise necessary.
1023         All callers changed.  Simplify using df_word_lr_mark_ref.
1024         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
1025         all callers changed.  Simplify using df_word_lr_mark_ref.
1026         * lower-subreg.c: Include "dce.h"
1027         (decompose_multiword_subregs): Call run_word_dce if df available.
1028         * Makefile.in (lower-subreg.o): Adjust dependencies.
1029         (df-byte-scan.o): Delete.
1030         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
1031
1032 2010-07-29  Richard Guenther  <rguenther@suse.de>
1033
1034         * tree.c (build_vector): Assert that the vector constant
1035         has enough elements.
1036         (build_vector_from_ctor): Pad with trailing zeros.
1037
1038 2010-07-29  Richard Guenther  <rguenther@suse.de>
1039
1040         PR tree-optimization/45120
1041         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1042         Handle offset in DEREFs properly.
1043         (get_constraint_for_1): Handle MEM_REF offset properly.
1044
1045 2010-07-29  Richard Guenther  <rguenther@suse.de>
1046
1047         PR middle-end/45034
1048         * convert.c (convert_to_integer): Always use an unsigned
1049         type for narrowed negate and bitwise not.
1050
1051 2010-07-29  Ira Rosen  <irar@il.ibm.com>
1052
1053         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
1054         to outer loop when creating reduction epilogue for double reduction,
1055         and switch back to the inner loop when updating the phi nodes.
1056         Update uses of outer loop exit phi nodes in double reduction (instead
1057         of uses of reduction).
1058
1059 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
1060
1061         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
1062         popcount on power7 and parity on power6 systems.
1063         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
1064         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
1065         instructions.
1066
1067         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
1068         (UNSPEC_PARITY): Ditto.
1069         (SFDF): New iterator for SF/DF.
1070         (rreg2): New mode attribute for floating register constraint.
1071         (TARGET_FLOAT): New mode attribute for whether single/double float
1072         is supported.
1073         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
1074         pattern.
1075         (parity<mode>2_cmpb): New insn for parity on power6 and newer
1076         machines.
1077         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
1078         pattern.  Add support for fcpsgn instruction added in power6.
1079         (copysignsf3): Delete.
1080         (copysigndf3): Delete.
1081         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
1082         instead of if_then_else in RTL to avoid problems with -0.
1083
1084         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
1085         of if_then_else to mirror scalar code.
1086         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
1087         rs6000.md.
1088
1089         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
1090         instead of if_then_else.
1091
1092 2010-07-28  Xinliang David Li  <davidxl@google.com>
1093
1094         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
1095         (dump_cand): Dump var_before/after.
1096         (htab_inv_expr_eq): New function.
1097         (htab_inv_expr_hash): New function.
1098         (tree_ssa_iv_optimize_init): Support pseudo invariants.
1099         (add_candidate_1): consider base type precision.
1100         (set_use_iv_cost): New parameter.
1101         (adjust_setup_cost): Use profile information.
1102         (get_address_cost): Do not hard code width in computing address
1103         offset limits.
1104         (compare_aff_trees): New function.
1105         (get_loop_invariant_expr_id): New function.
1106         (get_computation_cost_at): New parameter and use profile information.
1107         (get_computation_cost): New parameter.
1108         (determine_use_iv_cost_generic): Pass new parameter.
1109         (determine_use_iv_cost_address): Ditto.
1110         (determine_use_iv_cost_condition): Ditto.
1111         (autoinc_possible_for_pair): Ditto.
1112         (determine_use_iv_costs): More dumps.
1113         (iv_ca_get_num_inv_exprs): New function.
1114         (iv_ca_recount_cost): Consider loop invariants in register pressure
1115         cost.
1116         (iv_ca_add_use): New parameter.
1117         (iv_ca_dump): Better dumping.
1118         (iv_ca_extend): New parameter.
1119         (try_add_cand_for): Attempt to get better partial solution.
1120         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
1121         (create_new-ivs): More dumps.
1122         (rewrite_use_compare): Ditto.
1123         (free_loop_data): More cleanup.
1124         (treee_ssa_iv_optimize_finalize): Ditto.
1125
1126 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
1127
1128         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
1129         * config/i386/i386.c (ix86_profile_before_prologue): New.
1130         (override_options): Add special handling for -mfentry.
1131         (ix86_function_regparm): Likewise.
1132         (ix86_function_sseregparm): Likewise.
1133         (ix86_frame_pointer_required): Likewise.
1134         (ix86_expand_prologue): Check for ms_hook_prologue.
1135         (x86_function_profiler): Adjust mcount output.
1136         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
1137         * config/i386/i386.opt (mfentry): New.
1138         * doc/invoke.texi (mfentry): Add documentation.
1139         * doc/tm.texi: Regenerated..
1140         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
1141         * final.c (final_start_function): Replace macro
1142         PROFILE_BEFORE_PROLOGUE by target hook.
1143         * function.c (thread_prologue_and_epilogue_insns): Likewise.
1144         * target.def (profile_before_prologue): New hook.
1145         * targhooks.c (default_profile_before_prologue): New.
1146         * targhooks.h (default_profile_before_prologue): New.
1147
1148 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
1149
1150         PR debug/45105
1151         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
1152
1153         PR debug/45103
1154         * dwarf2out.c (dwarf2out_var_location): Always consider
1155         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
1156
1157 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
1158
1159         PR rtl-optimization/45107
1160         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
1161
1162 2010-07-28  Richard Guenther  <rguenther@suse.de>
1163
1164         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
1165         (set_lattice_value): Do not query an old default value.
1166         (get_value_for_expr): New function.  Properly canonicalize
1167         float values.
1168         (ccp_visit_phi_node): Use it.
1169
1170 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
1171
1172         * config/arm/arm.c (arm_pcs_default): Remove static.
1173         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
1174         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
1175         (arm_pcs_default): Declare.
1176
1177 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
1178
1179         * config/rs6000/rs6000.c (rs6000_override_options):
1180         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
1181         ... to darwin_rs6000_override_options.
1182         (rs6000_return_in_memory): Update preceding comment for darwin
1183         64 bit ABI.  Use TARGET_MACHO inline.
1184         (rs6000_darwin64_struct_check_p): New.
1185         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
1186         (function_arg): Likewise.
1187         (rs6000_arg_partial_bytes): Likewise.
1188         (rs6000_function_value): Likewise.
1189
1190 2010-07-28  Andi Kleen <ak@linux.intel.com>
1191
1192         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
1193
1194 2010-07-28  Richard Guenther  <rguenther@suse.de>
1195
1196         PR middle-end/44903
1197         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
1198         targets try harder to not generate unaligned accesses.
1199
1200 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
1201
1202         PR rtl-optimization/45101
1203         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
1204         for gcse-las.
1205
1206 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
1207
1208         PR tree-optimization/44885
1209         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
1210         with non-aliased component.
1211
1212 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
1213
1214         * config/darwin-driver.c (SWITCH_TAKES_ARG,
1215         WORD_SWITCH_TAKES_ARG): Remove.
1216         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
1217         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
1218         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
1219         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
1220         definitions from gcc.c.
1221         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
1222         defaults.h.
1223         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
1224         Move to defaults.h.
1225         * opts-common.c: Include tm.h.
1226         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
1227         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
1228         Handle more than one argument.  Set canonical_option_num_elements.
1229         (decode_cmdline_options_to_array): Set
1230         canonical_option_num_elements and trailing elements of
1231         canonical_option.
1232         * opts.h (struct cl_decoded_option): Allow four elements in
1233         canonical_option.  Add field canonical_option_num_elements.
1234         * Makefile.in (opts-common.o): Update dependencies.
1235
1236 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
1237
1238         PR middle-end/44790
1239         PR middle-end/44993
1240         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
1241         sure the base has address_mode before adding the offset.
1242
1243 2010-07-27  Xinliang David Li <davidxl@google.com>
1244
1245         * tree-flow.h (create_mem_ref): Add one new parameter.
1246         * tree-ssa-address.c (create_mem_ref): New parameter.
1247         (addr_to_parts): Ditto.
1248         (move_variant_to_index): New function.
1249         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
1250
1251 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1252
1253         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
1254         4 and 5.
1255         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
1256         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
1257         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
1258         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
1259         CODE_LABELs and NOTEs.
1260         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
1261         * combine.c (try_combine): Likewise.
1262         * ira.c (setup_prohibited_mode_move_regs): Likewise.
1263         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
1264
1265 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1266
1267         * coretypes.h (struct cl_option_handlers): Declare.
1268         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
1269         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
1270         * langhooks-def.h (lhd_handle_option): Declare.
1271         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
1272         * langhooks.c (lhd_handle_option): New.
1273         * langhooks.h (struct lang_hooks): Update prototype and return
1274         value type of handle_option hook.
1275         * optc-gen.awk: Generate target_flags_explicit definition for the
1276         driver.
1277         * opts-common.c: Include diagnostic.h.
1278         (handle_option): Move from opts.c.  Update prototype and return
1279         value type.  Use handlers structure.
1280         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
1281         handlers structure.
1282         (set_option): Move from opts.c.
1283         * opts.c (common_handle_option): Update prototype and return value
1284         type.  Update calls to handle_option and enable_warning_as_error.
1285         (unknown_option_callback, post_handling_callback,
1286         lang_handle_option, target_handle_option): New.
1287         (handle_option, read_cmdline_option): Move to opts-common.c.
1288         (read_cmdline_options): Update prototype.  Update call to
1289         read_cmdline_option.
1290         (decode_options): Initialize and use handlers structure.
1291         (set_option): Move to opts-common.c.
1292         (enable_warning_as_error): Update prototype.  Update call to
1293         handle_option.
1294         * opts.h (struct cl_option_handler_func, struct
1295         cl_option_handlers): New.
1296         (handle_option, enable_warning_as_error): Update prototypes.
1297         (read_cmdline_option): Declare.
1298         * Makefile.in (opts-common.o): Update dependencies.
1299
1300 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1301
1302         * config/arm/arm.c (params.h): Include.
1303         (arm_override_options): Tune gcse-unrestricted-cost.
1304         * config/arm/t-arm (arm.o): Define dependencies.
1305
1306 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1307
1308         PR target/42495
1309         PR middle-end/42574
1310         * basic-block.h (get_dominated_to_depth): Declare.
1311         * dominance.c (get_dominated_to_depth): New function, use
1312         get_all_dominated_blocks as a base.
1313         (get_all_dominated_blocks): Use get_dominated_to_depth.
1314
1315         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
1316         (hoist_exprs): Remove.
1317         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
1318         (compute_code_hoist_vbeinout): Add debug print outs.
1319         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
1320
1321         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
1322         quadratic behavior.
1323         * params.h (MAX_HOIST_DEPTH): New macro.
1324         * doc/invoke.texi (max-hoist-depth): Document.
1325
1326 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1327
1328         PR rtl-optimization/40956
1329         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
1330         constants.
1331
1332 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1333
1334         PR target/42495
1335         PR middle-end/42574
1336         * config/arm/arm.c (legitimize_pic_address): Use
1337         gen_calculate_pic_address pattern to emit calculation of PIC address.
1338         (will_be_in_index_register): New function.
1339         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
1340         (thumb1_legitimate_address_p): Use it provided !strict_p.
1341         * config/arm/arm.md (calculate_pic_address): New expand and split.
1342
1343 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1344
1345         PR target/42495
1346         PR middle-end/42574
1347         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
1348         * config/arm/arm.md (define_split "J", define_split "K"): Make
1349         IRA/reload friendly.
1350
1351 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1352
1353         * gcse.c (insert_insn_end_basic_block): Update signature, remove
1354         unused checks.
1355         (pre_edge_insert, hoist_code): Update.
1356
1357 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1358
1359         PR target/42495
1360         PR middle-end/42574
1361         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
1362
1363 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1364
1365         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
1366
1367 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1368
1369         PR rtl-optimization/40956
1370         PR target/42495
1371         PR middle-end/42574
1372         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
1373         for hoisting.
1374         (hoist_code): Count occurences in current block too.
1375
1376 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1377
1378         * gcse.c (struct expr:max_distance): New field.
1379         (doing_code_hoisting_p): New static variable.
1380         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
1381         simple expressions, don't change behavior for PRE.  Set max_distance.
1382         (insert_expr_in_table): Set new max_distance field.
1383         (hash_scan_set): Update.
1384         (hoist_expr_reaches_here_p): Stop search after max_distance
1385         instructions.
1386         (find_occr_in_bb): New static function.  Use it in ...
1387         (hoist_code): Calculate sizes of basic block before any changes are
1388         done.  Pass max_distance to hoist_expr_reaches_here_p.
1389         (one_code_hoisting_pass): Set doing_code_hoisting_p.
1390
1391         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
1392         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
1393         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
1394         macros.
1395         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
1396         Document.
1397
1398 2010-07-27  Jeff Law  <law@redhat.com>
1399             Maxim Kuvyrkov  <maxim@codesourcery.com>
1400
1401         * gcse.c (compute_transpout, transpout): Remove, move logic
1402         to prune_expressions.
1403         (compute_pre_data): Move pruning of trapping expressions ...
1404         (prune_expressions): ... here.  New static function.
1405         (compute_code_hoist_data): Use it.
1406         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
1407
1408 2010-07-27  Xinliang David Li  <davidxl@google.com>
1409
1410         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
1411         (rewrite_use_address): Adjust iv update position when needed.
1412
1413 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
1414
1415         * dbgcnt.def (hoist_insn): New debug counter.
1416         * gcse.c (hoist_code): Use it.
1417
1418 2010-07-27  Xinliang David Li  <davidxl@google.com>
1419
1420         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
1421         (niter_for_single_dom_exit): Passes additional parameter.
1422         (iv_period): Fix comments.
1423         (may_eliminate_iv): Handles multiple exit loops properly.
1424         (free_tree_niter_desc): New function.
1425         (free_loop_data): Frees up loop iteration descriptors.
1426
1427 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1428
1429         PR target/44542
1430         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
1431         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
1432         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
1433         (expand_one_var): Don't consider DECL_ALIGN for variables for
1434         which expand_one_stack_var_at has been already called.
1435
1436         PR testsuite/44701
1437         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
1438         constraints on IA-64.
1439
1440 2010-07-27  Jie Zhang  <jie@codesourcery.com>
1441
1442         PR target/44290
1443         Revert:
1444         2010-07-23  Jie Zhang  <jie@codesourcery.com>
1445
1446         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
1447         false if ! tree_versionable_function_p.
1448
1449 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1450
1451         * dwarf2out.c (add_data_member_location_attribute): Use
1452         add_AT_unsigned instead of add_AT_int if offset is non-negative.
1453
1454 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1455
1456         * postreload.c (try_replace_in_use): New static function.
1457         (reload_combine_recognize_const_pattern): Use it here.  Allow
1458         substituting into a final add insn, and substituting into a memory
1459         reference in an insn that sets the reg.
1460
1461 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1462
1463         * common.opt (o): Add MissingArgError.
1464         * doc/options.texi (MissingArgError): Document.
1465         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
1466         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
1467         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
1468         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
1469         * langhooks.h (struct lang_hooks): Remove missing_argument.
1470         * optc-gen.awk: Handle MissingArgError and output new structure
1471         field initializers.
1472         * opts.c (read_cmdline_option): Use missing_argument_error field
1473         instead of missing_argument langhook.
1474         * opts.h (struct cl_option): Add missing_argument_error field.
1475         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
1476
1477 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
1478
1479         PR target/29090
1480         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
1481         Darwin64 ABI, for zero-sized objects.
1482
1483 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
1484
1485         PR target/35491
1486         PR target/29090
1487
1488         Merge from Apple local 4.2.1.
1489         2005-05-11  Stan Shebs  <shebs@apple.com>
1490         Fix 64-bit varargs for Darwin (Radar 4028089).
1491         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
1492         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1493         Add argument, add case for 8-byte register half-filled with a float.
1494         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
1495         single-precision floats specially.
1496
1497 2010-07-27  Ira Rosen  <irar@il.ibm.com>
1498
1499         PR tree-optimization/44152
1500         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
1501         complex numbers for further check.
1502         (vect_supported_load_permutation_p): Check nodes with
1503         complex numbers.
1504
1505 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
1506
1507         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
1508         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
1509         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
1510         (LANG_HOOKS_INITIALIZER): Add new hooks.
1511         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
1512         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
1513         and complain_wrong_lang_p.  Update init_options prototype.
1514         * c-objc-common.c (c_initialize_diagnostics): First call
1515         c_common_initialize_diagnostics.
1516         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
1517         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
1518         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
1519         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
1520         (hook_uint_void_0): New.
1521         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
1522         (hook_uint_void_0): New.
1523         * opts-common.c (decode_cmdline_option,
1524         decode_cmdline_options_to_array): Also fill in canonical_option field.
1525         * opts.c (complain_wrong_lang): Use langhook to determine whether
1526         to complain instead of special-casing LTO.
1527         (decode_options): Separate lang_mask determination with
1528         option_lang_mask hook from call of init_options hook.
1529         * opts.h (struct cl_decoded_option): Add canonical_option.
1530
1531 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
1532
1533         PR tree-optimization/45083
1534         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
1535
1536 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
1537
1538         * postreload.c (reload_combine_recognize_const_pattern): Move test
1539         for limiting the insn movement to the right scope.
1540
1541         PR rtl-optimization/45051
1542         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
1543         than reg_mentioned_p.
1544
1545 2010-07-26  Richard Henderson  <rth@redhat.com>
1546
1547         PR target/44132
1548         * tree-emutls.c: New file.
1549         * Makefile.in (OBJS-common): Add it.
1550         * tree-pass.h (pass_ipa_lower_emutls): Declare.
1551         * passes.c (init_optimization_passes): Add it.
1552
1553         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
1554         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
1555         * expr.c (emutls_var_address): Delete.
1556         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
1557         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
1558         (emutls_finish): Delete.
1559         * toplev.c (compile_file): Don't call it.
1560         * tree.h (emutls_decl): Delete.
1561         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
1562         (emutls_finish, emutls_finalize_control_var): Delete.
1563         (emutls_object_type): Move to tree-emutls.c.
1564         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
1565         default_emutls_var_fields, get_emutls_object_type,
1566         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
1567         default_emutls_var_init): Likewise.
1568         (get_variable_section): Don't special case emutls.
1569         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
1570         default_elf_select_section, default_unique_section,
1571         default_encode_section_info): Likewise.
1572         * varpool.c (decide_is_variable_needed): Likewise.
1573         * gimple-iterator.c (update_call_edge_frequencies): New
1574         (gsi_insert_on_edge_immediate): Use it.
1575         (gsi_insert_seq_on_edge_immediate): Likewise.
1576         (gsi_commit_one_edge_insert): Likewise.
1577
1578         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
1579         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
1580         (x86_64_elf_unique_section): Likewise.
1581
1582 2010-07-26  Jan Hubicka  <jh@suse.cz>
1583
1584         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
1585         GTY((skip)).
1586
1587 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
1588
1589         * target.def (output_source_filename): New hook.
1590         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
1591         * doc/tm.texi: Regenerate.
1592         * toplev.c (output_file_directive) Remove function.
1593         * toplev.h (output_file_directive) Remove.
1594         * output.h (default_asm_output_source_filename,
1595         output_file_directive): Declare.
1596         * varasm.h (default_asm_output_source_filename,
1597         output_file_directive): New functions.
1598
1599         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
1600         * config/mips/mips-protos.h (mips_output_filename): Remove.
1601         * config/mips/mips.c (mips_output_filename): Make Static.
1602         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
1603
1604 2010-07-26  Richard Guenther  <rguenther@suse.de>
1605
1606         PR tree-optimization/43784
1607         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
1608         if the destination is used by the call.
1609
1610 2010-07-26  Richard Guenther  <rguenther@suse.de>
1611
1612         PR middle-end/45073
1613         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
1614         SSA updating on being in SSA form.
1615
1616 2010-07-26  Richard Guenther  <rguenther@suse.de>
1617
1618         PR middle-end/45056
1619         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
1620
1621 2010-07-26  Richard Guenther  <rguenther@suse.de>
1622
1623         PR tree-optimization/45071
1624         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
1625         adjust op->opcode.
1626
1627 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
1628
1629         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
1630         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
1631         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
1632         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
1633         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
1634         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
1635         save_r31, return_r31, save_interrupt, return_interrupt,
1636         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
1637         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
1638         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
1639         new ABI requirements.
1640         (save_r6_r9, L_callt_save_r6_r9): Remove.
1641         * config/v850/predicates.md (even_reg_operand, disp23_operand,
1642         const_float_1_operand const_float_0_operand): New Predicates.
1643         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
1644         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
1645         * config/v850/t-v850: Update multilibs for new target variants.
1646         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
1647         * config/v850/t-v850e: Likewise.
1648         * config/v850/v850.c (v850_issue_rate): New.
1649         (v850_strict_argument_naming): New.
1650         (function_arg): Modify to generate a different ABI.
1651         (print_operand): Update case 'z' to support float modes.
1652         (output_move_single): Modify to generate appropriate and better
1653         assembly.
1654         (v850_float_z_comparison_operator, v850_select_cc_mode,
1655         v850_float_nz_comparison_operator,  v850_gen_float_compare,
1656         v850_gen_compare): New functions to support comparison of float values.
1657         (ep_memory_offset): Add support for V850E2 targets.
1658         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
1659         (INTERRUPT_REGPARM_NUM): Remove.
1660         (compute_register_save_size): Add extra case to save/restore long call.
1661         (use_prolog_function): New function to support prologue.
1662         (expand_prologue): Add support for V850E2 targets and modified
1663         as per the current ABI requirements.
1664         (expand_epilogue): Likewise.
1665         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
1666         (construct_save_jarl): Likewise.
1667         (construct_dispose_instruction): Update as per the current ABI
1668         requirements.
1669         (construct_prepare_instruction): Likewise.
1670         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
1671         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
1672         (CPP_SPEC): Updated to support v850e2 targets.
1673         (STRICT_ALIGNMENT): Modified.
1674         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
1675         (FIXED_REGISTERS): Likewise.
1676         (CALL_USED_REGISTERS): Likewise.
1677         (CONDITIONAL_REGISTER_USAGE): Updated.
1678         (HARD_REGNO_MODE_OK): Updated.
1679         (reg_class): Updated to add even registers.
1680         (REG_CLASS_NAMES): Likewise.
1681         (REG_CLASS_CONTENTS): Likewise.
1682         (REGNO_REG_CLASS): Updated for CC registers.
1683         (REG_CLASS_FROM_LETTER): Added support for even registers.
1684         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
1685         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
1686         ARG_POINTER_REGNUM): Updated.
1687         (FUNCTION_ARG_ADVANCE): Define.
1688         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
1689         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
1690         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
1691         (GO_IF_LEGITIMATE_ADDRESS): Updated.
1692         (SELECT_CC_MODE): Define.
1693         (REGISTER_NAMES): Updated to add psw and fcc registers.
1694         (ADDITIONAL_REGISTER_NAMES): Updated.
1695         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
1696         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
1697         * config/v850/v850.md (define_constants): Define new constants.
1698         (type): Update store,bit1,macc,div,fpu and single attributes.
1699         (cpu): New attribute.
1700         (cc): Add set_z attribute.
1701         (unsign23byte_load, sign23byte_load, unsign23hword_load,
1702         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
1703         23word_store): New instructions for 23-bit displacement load and store.
1704         (movqi_internal, movhi_internal): Update the attributes.
1705         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
1706         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
1707         the attributes.
1708         (v850_tst1): Modified using CC_REGNUM.
1709         (tstsi): Remove.
1710         (cmpsi): Modified as define_expand from define_insn.
1711         (cmpsi_insn, cmpsf, cmpdf): New instructions.
1712         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
1713         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
1714         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
1715         one_cmplsi2): Clobber the CC_REGNUM register.
1716         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
1717         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
1718         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
1719         (setf_insn, set_z_insn, set_nz_insn): New instructions for
1720         v850e2v3 target.
1721         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
1722         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
1723         targets.
1724         (sasf_1, sasf_2): Remove.
1725         (sasf): New instruction.
1726         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
1727         targets. CC_REGNUM register is clobbered and attributes are
1728         updated.
1729         (branch_z_normal, branch_z_invert, branch_nz_normal,
1730         branch_nz_invert): New branch related instructions.
1731         (jump): Updated the attributes.
1732         (switch): Update to support new targets. CC_REGNUM register is
1733         clobbered and attributes are updated.
1734         (call_internal_short, call_internal_long, call_value_internal_short,
1735         call_value_internal_long): Updated the attributes.
1736         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
1737         clobbered and attributes are updated.
1738         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
1739         Update to support new targets. CC_REGNUM register is clobbered.
1740         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
1741         instructions.
1742         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
1743         are updated.
1744         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
1745         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
1746         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
1747         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
1748         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
1749         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
1750         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
1751         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
1752         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
1753         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
1754         point instructions defined for V850e2v3 target.
1755         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
1756         Add support for V850E2 targets and CC_REGNUM register is clobbered.
1757         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
1758         support for new targets.
1759         * config/v850/v850-modes.def: New file.
1760         * config/v850/v850.opt(mstrict-align): Remove.
1761         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
1762         mv850e2v3): New command line options for V850.
1763         * config.gcc: Update the newly added files.
1764         * doc/invoke.texi: Update the newly added command line options for
1765         V850 target.
1766
1767 2010-07-26  Richard Guenther  <rguenther@suse.de>
1768
1769         PR tree-optimization/45052
1770         * ipa-pure-const.c (check_stmt): Check volatileness.
1771
1772 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1773
1774         PR target/44707
1775         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
1776         * config/sparc/sparc.c: Include reload.h.
1777         (legitimize_tls_address): Rename into...
1778         (sparc_legitimize_tls_address): ...this.
1779         (legitimize_pic_address): Rename into...
1780         (sparc_legitimize_pic_address): ...this.
1781         (sparc_expand_move): Adjust to above renaming.
1782         (sparc_tls_referenced_p): Likewise.
1783         (sparc_legitimize_tls_address): Likewise.
1784         (sparc_legitimize_pic_address): Likewise.
1785         (sparc_legitimize_address): Likewise.
1786         (sparc_output_mi_thunk): Likewise.
1787         (sparc_legitimize_reload_address): New global function.  Recognize
1788         (lo_sum (high ...) ...) patterns generated by earlier passes.
1789         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
1790
1791 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
1792
1793         PR target/44484
1794         * config/sparc/predicates.md (memory_reg_operand): Delete.
1795         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
1796         (*sync_compare_and_swap): Encode the address form in the pattern.
1797         (*sync_compare_and_swapdi_v8plus): Likewise.
1798
1799 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
1800
1801         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
1802         Streamline paragraph on compatibility with the system compiler.
1803
1804 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
1805
1806         PR middle-end/45035
1807         * alias.c (true_dependence_1): Fix thinko in merge of old
1808         true_dependence and canon_true_dependence.
1809
1810 2010-07-23  Jan Hubicka  <jh@suse.cz>
1811
1812         * lto-streamer-out.c (write_symbol): Fix visibilities of external
1813         references.
1814
1815 2010-07-23  Le-Chun Wu  <lcwu@google.com>
1816
1817         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
1818         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
1819         and an unnecessary assignment.
1820         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
1821         self-assign warning.
1822         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
1823         unnecessary self-init.
1824
1825 2010-07-23  Richard Guenther  <rguenther@suse.de>
1826
1827         PR lto/43071
1828         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
1829         for -flto and -fwhopr.
1830
1831 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
1832
1833         PR target/41943
1834         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
1835         (stmp-int-hdrs): Prefix/postfix headers by include_next.
1836         * config.gcc (user_headers_inc_next_pre): New.
1837         (user_headers_inc_next_post): Likewise.
1838         (*-w64-mingw*): Use for float.h post-fixing, and for
1839         stddef.h/stdarg.h pre-fixing by include_next.
1840         * configure.ac (user_headers_inc_next_post): New.
1841         (user_headers_inc_next_pre): New.
1842         * configure: Regenerated.
1843
1844 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1845
1846         * configure.ac: Don't disable TLS on Solaris 8/9 by default
1847         Set tga_func for Solaris 2/x86 resp. SPARC.
1848         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
1849         (LIB_THREAD_LDFLAGS_SPEC): Define.
1850         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
1851         * configure: Regenerate.
1852         * config.in: Regenerate.
1853         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
1854         -pthread, -threads, LIB_TLS_SPEC with -pthread.
1855         * doc/install.texi (Specific, *-*-solaris2*): Document use of
1856         alternate thread libraries on Solaris 8.
1857         Document TLS patch requirements.
1858         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
1859         Document tls.
1860
1861         PR target/18788
1862         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
1863         -shared.
1864
1865 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
1866
1867         * tree.h (struct tree_base): Add nameless_flag bitfield.
1868         (TYPE_NAMELESS, DECL_NAMELESS): Define.
1869         * omp-low.c (create_omp_child_function, scan_omp_parallel,
1870         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
1871         DECL_ARTIFICIAL where needed.
1872         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
1873         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
1874         has DECL_NAMELESS set.
1875
1876 2010-07-23  Martin Jambor  <mjambor@suse.cz>
1877
1878         PR tree-optimization/44915
1879         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
1880         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
1881         (analyze_function): Likewise.
1882
1883 2010-07-23  Martin Jambor  <mjambor@suse.cz>
1884
1885         PR tree-optimization/44914
1886         * tree-sra.c (sra_modify_function_body): Return true if CFG was
1887         changed, add purging dead eh edges.
1888         (ipa_sra_modify_function_body): Return true if CFG was changed,
1889         simplify purging dead eh edges.
1890         (modify_function): Return true if CFG was changed.
1891         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
1892         was changed.
1893         (ipa_early_sra): Likewise.
1894
1895 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1896
1897         PR target/44290
1898         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
1899         if "naked".
1900         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
1901         false if ! tree_versionable_function_p.
1902
1903 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
1904
1905         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
1906         * ipa-pure-const.c (special_builtlin_state): Remove
1907         BUILT_IN_ARGS_INFO case.
1908         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
1909         * builtins.c (expand_builtin): Likewise.
1910         (expand_builtin_args_info): Remove.
1911         * doc/tm.texi (__builtin_args_info): Remove.
1912         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
1913         * doc/tm.text.in: Likewise.
1914
1915 2010-07-23  Richard Guenther  <rguenther@suse.de>
1916
1917         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
1918         (lto_symtab_merge_decls_2): Likewise.
1919         * tree-ssa.c (useless_type_conversion_p): Likewise.
1920         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1921         * gimple.c (gtc_visited2, gtc_ob2): Remove.
1922         (struct type_pair_d): Make same_p an array indexed by mode.
1923         Update comment.
1924         (lookup_type_pair): Update initialization.
1925         (struct sccs): Adjust same_p type.
1926         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
1927         Adjust.
1928         (print_gimple_types_stats): Likewise.
1929         * gimple.h (enum gtc_mode): New.
1930         (gimple_types_compatible_p): Adjust prototype.
1931
1932 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1933
1934         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
1935         again after processing insn.
1936
1937 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1938
1939         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
1940         proper words when !tree_versionable_function_p.
1941
1942 2010-07-23  Richard Guenther  <rguenther@suse.de>
1943
1944         PR tree-optimization/45037
1945         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
1946
1947 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1948
1949         * doc/extend.texi: Remove IP2K from the description of naked attribute.
1950         Add MCORE instead.
1951
1952 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1953
1954         PR lto/44992
1955         * lto-opts.c (lto_write_options): Add NULL file_data argument to
1956         lto_get_section_name.
1957         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
1958         * lto-streamer-out.c (produce_asm): Likewise.
1959         (copy_function): Likewise.
1960         (produce_symtab): Likewise.
1961         (produce_asm_for_decls): Likewise.
1962         * lto-streamer.c (lto_get_section_name): Add file_data argument.
1963         Rewrite to add random postfix to LTO sections.
1964         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
1965         (lto_get_section_name): Add file_data argument to prototype.
1966
1967 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1968
1969         * lto-section-in.c (lto_section_name): Synchronize names
1970         with lto_get_section_name.
1971
1972 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1973
1974         * lto-opts.c (lto_read_file_options): Check for missing section.
1975
1976 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1977
1978         * ira.c (check_allocation): Correctly handle the case where an allocno
1979         with two objects was allocated to a single reg.
1980
1981 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
1982
1983         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
1984         (is_widening_mult_p): Likewise.
1985         (convert_to_widen): Use them.
1986         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
1987         well as integer ones.
1988
1989 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
1990
1991         * alias.c (true_dependence_1): New function, merged version of
1992         true_dependence and canon_true_dependence.
1993         (true_dependence): Simplify.
1994         (canon_true_dependence): Simplify.
1995
1996 2010-07-22  Richard Henderson  <rth@redhat.com>
1997
1998         PR target/45027
1999         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
2000         of V4SFmode for the SSE saves; increase stack alignment if needed.
2001         (ix86_gimplify_va_arg): Don't increase stack alignment here.
2002
2003 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
2004
2005         PR bootstrap/45028
2006         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
2007         call cprop_find_used_regs again via note_uses.
2008
2009 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
2010
2011         * alias.c (get_alias_set): Fix formatting issues.
2012
2013 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
2014
2015         PR middle-end/44878
2016         * stmt.c (expand_value_return):  Call promote_function_mode with
2017         a for_return argument of 2 when returning by reference.
2018
2019 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
2020
2021         PR debug/45024
2022         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
2023         unit DIE if we can find the scope DIE.
2024
2025 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
2026
2027         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
2028         changed.  Initialize OBJECT_SUBWORD.
2029         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
2030         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
2031         all callers changed.
2032         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
2033         (finish_allocno): Likewise.
2034         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
2035         (remove_low_level_allocnos): Likewise.
2036         (update_bad_spill_attribute): Likewise.
2037         (setup_min_max_allocno_live_range_point): Likewise.
2038         (sort_conflict_id_map): Likewise.
2039         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
2040         (ior_hard_reg_conflicts): New function.
2041         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
2042         (compress_conflict_vecs): Iterate over objects, not allocnos.
2043         (ira_add_live_range_to_object): New function.
2044         (object_range_compare_func): Renamed from allocno_range_compare_func.
2045         All callers changed.
2046         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
2047         subobjects, widen the min/max range of the lowest-order object to
2048         potentially include all other such low-order objects.
2049         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
2050         (check_allocation): Likewise.  Use more fine-grained tests for register
2051         conflicts.
2052         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
2053         allocno subobjects.
2054         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
2055         choices about which bits to set in each set.  Don't use
2056         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
2057         using the multiple sets we computed.
2058         (push_allocno_to_stack): Iterate over allocno subobjects.
2059         (all_conflicting_hard_regs_coalesced): New static function.
2060         (setup_allocno_available_regs_num): Use it.
2061         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
2062         subobjects.
2063         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
2064         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
2065         by ALLOCNO_NUM_OBJECTS.
2066         (calculate_spill_cost): Likewise.
2067         (color_pass): Express if statement in a more normal way.
2068         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
2069         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
2070         (setup_slot_coalesced_allocno_live_ranges): Likewise.
2071         (allocno_reload_assign): Likewise.
2072         (ira_reassign_pseudos): Likewise.
2073         (fast_allocation): Likewise.
2074         * ira-conflicts.c (build_conflict_bit_table): Likewise.
2075         (print_allocno_conflicts): Likewise.
2076         (ira_build_conflicts): Likewise.
2077         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
2078         callers changed.  Test subword 0 of each allocno for conflicts.
2079         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
2080         callers changed.  Iterate over allocno subobjects.
2081         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
2082         * ira-int.h (struct ira_allocno): New member: num_objects.
2083         Rename object to objects and change it into an array.
2084         (ALLOCNO_OBJECT): Add new argument N.
2085         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
2086         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
2087         (ior_hard_reg_conflicts): Declare.
2088         (ira_add_live_range_to_object): Declare.
2089         (ira_allocno_object_iterator): New.
2090         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
2091         (FOR_EACH_ALLOCNO_OBJECT): New macro.
2092         * ira-lives.c (objects_live): Renamed from allocnos_live; all
2093         uses changed.
2094         (allocnos_processed): New sparseset.
2095         (make_object_born): Renamed from make_allocno_born; take an
2096         ira_object_t argument.  All callers changed.
2097         (make_object_dead): Renamed from make_allocno_dead; take an
2098         ira_object_t argument.  All callers changed.
2099         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
2100         All callers changed.
2101         (mark_pseudo_regno_live): Iterate over allocno subobjects.
2102         (mark_pseudo_regno_dead): Likewise.
2103         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
2104         functions.
2105         (mark_ref_live): Detect subword accesses and call
2106         mark_pseudo_regno_subword_live as appropriate.
2107         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
2108         (process_bb_nodes_live): Deal with object-related updates first; set
2109         and test bits in allocnos_processed to avoid computing allocno
2110         statistics more than once.
2111         (create_start_finish_chains): Iterate over objects, not allocnos.
2112         (print_object_live_ranges): New function.
2113         (print_allocno_live_ranges): Use it.
2114         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
2115         and objects_live.
2116
2117 2010-07-22  Richard Guenther  <rguenther@suse.de>
2118
2119         PR lto/42451
2120         * gimple.c (gtc_next_dfs_num): New global.
2121         (struct sccs): Make value a union, add integer same_p member.
2122         (gtc_visit): New function.
2123         (gimple_types_compatible_p_1): New function, split out from ...
2124         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
2125         (iterative_hash_gimple_type): Adjust for sccs change.
2126
2127 2010-07-22  Martin Jambor  <mjambor@suse.cz>
2128
2129         PR tree-optimization/44891
2130         * tree-sra.c: Include gimple-pretty-print.h.
2131         (replace_uses_with_default_def_ssa_name): Renamed to
2132         get_repl_default_def_ssa_name, return the new SSA name instead of
2133         replacing the old one.
2134         (sra_modify_assign): Dump a message when removing a load, if the LHS
2135         is an SSA_NAME, do not do any propagation, just set the RHS to a
2136         default definition SSA NAME, type convert if necessary.
2137         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
2138
2139 2010-07-22  Richard Guenther  <rguenther@suse.de>
2140
2141         PR tree-optimization/45017
2142         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
2143         TYPE_PRECISION of integral types in addition to size.
2144
2145 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
2146
2147         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
2148         when no C library is specified.
2149
2150 2010-07-22  Martin Jambor  <mjambor@suse.cz>
2151
2152         * ipa-prop.h (struct ipa_node_params): Updated comment.
2153         (struct ipa_edge_args): Likewise.
2154         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
2155
2156 2010-07-22  Martin Jambor  <mjambor@suse.cz>
2157
2158         * cgraphunit.c (verify_edge_count_and_frequency): New function.
2159         (verify_cgraph_node): Verify frequencies of indirect edges.
2160         * tree-inline.c (tree_function_versioning): Update frequencies of
2161         indirect edges.
2162
2163 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2164
2165         PR target/43698
2166         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
2167         Set *arm_rev to be predicable.
2168
2169 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
2170
2171         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
2172         (LINK_COMMAND_SPEC_A): New.
2173         (DSYMUTIL): New.
2174         (DSYMUTIL_SPEC): New.
2175         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
2176         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
2177
2178 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
2179
2180         * calls.c (load_register_parameters): Move check for zero
2181         sized items so that only the call to
2182         mem_overlaps_already_clobbered_arg_p () is protected.
2183
2184 2010-07-22  Jan Hubicka  <jh@suse.cz>
2185
2186         * ipa-pure-const.c (varying_state): Break out from ...
2187         (get_function_state): ... here; always return varying_state
2188         when state would be NULL otherwise.
2189         (remove_node_data): Do not free varying state.
2190
2191 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
2192
2193         PR bootstrap/44970
2194         PR middle-end/45009
2195         * postreload.c: Include "target.h".
2196         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
2197         into account.
2198         (fixup_debug_insns): Don't copy the rtx.
2199         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
2200         Don't copy when replacing.  Call fixup_debug_insns in the case where
2201         we merged one add with another.
2202         (reload_combine_recognize_pattern): Fail if there aren't any uses.
2203         Try harder to determine whether we're picking a valid index register.
2204         Don't set store_ruid for an insn we're going to scan in the
2205         next iteration.
2206         (reload_combine): Remove unused code.
2207         (reload_combine_note_use): When updating use information for
2208         an old insn, ignore a use that occurs after store_ruid.
2209         * Makefile.in (postreload.o): Update dependencies.
2210
2211         * function.c (record_hard_reg_sets): Restrict the previous change
2212         to cases where the incoming nominal mode is the same as the
2213         incoming promoted mode and everything happens in MODE_INT.
2214
2215 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
2216
2217         PR debug/45015
2218         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
2219         ASM_OPERANDS_OUTPUT_IDX.
2220         (adjust_insn): For inline asm with multiple sets ensure first
2221         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
2222         the insn.
2223
2224 2010-07-21  Richard Henderson  <rth@redhat.com>
2225
2226         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
2227         comparison for avoiding xmm register saves.  Emit the xmm register
2228         saves explicitly.
2229         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
2230         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
2231         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
2232         Remove patterns and the associated splitters.
2233
2234 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
2235
2236         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
2237         and imagine parts of a complex, so that they can have the same
2238         base and fall into the same group.
2239
2240 2010-07-21  Richard Guenther  <rguenther@suse.de>
2241
2242         PR lto/45018
2243         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
2244         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
2245         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
2246
2247 2010-07-21  Martin Jambor  <mjambor@suse.cz>
2248
2249         PR tree-optimization/44900
2250         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
2251         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
2252
2253 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
2254
2255         PR middle-end/44738
2256         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
2257
2258 2010-07-21  Richard Guenther  <rguenther@suse.de>
2259
2260         PR middle-end/45013
2261         * tree-ssa.c (useless_type_conversion_p): Dispatch to
2262         gimple_types_compatible_p only when in lto.
2263         * gimple.c (gimple_types_compatible_p): Use canonical types
2264         to speed up comparison.
2265
2266 2010-07-21  Richard Guenther  <rguenther@suse.de>
2267
2268         * tree-flow.h (referenced_var): Move define ...
2269         * tree-flow-inline.h (referenced_var): ... here as an inline
2270         function.  Assert here ...
2271         * tree-dfa.c (referenced_var_lookup): ... instead of here.
2272         * tree-ssa.c (maybe_optimize_var): Check if the variable
2273         is in referenced vars.
2274         (execute_update_addresses_taken): Remove old broken check.
2275         * gimple-pretty-print.c (pp_points_to_solution): Use
2276         referenced_var_lookup.
2277         * tree-into-ssa.c (dump_decl_set): Likewise.
2278
2279 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
2280
2281         PR debug/45003
2282         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
2283         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
2284         ZERO_EXTEND here.
2285
2286 2010-07-20  Richard Henderson  <rth@redhat.com>
2287
2288         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
2289
2290 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
2291
2292         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
2293         computing the sum of the stack pointer and a large constant.
2294         * config/arm/constraints.md (M): Remove superfluous parentheses.
2295         (Pc): New constraint.
2296
2297 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
2298
2299         PR debug/45006
2300         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
2301         operand's type if exp is tcc_unary class tree.
2302
2303 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
2304
2305         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
2306         Reverse sense of if_then_else condition.
2307
2308 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
2309
2310         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
2311         * config/rs6000/rs6000.c (rs6000_override_options): Set
2312         rs6000_block_move_inline_limit appropriately.
2313         (expand_block_move): Use rs6000_block_move_inline_limit.
2314         * doc/invoke.texi (mblock-move-inline-limit): Document.
2315
2316 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
2317
2318         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
2319         FROM and TO.  All callers changed.  Don't look for tracked uses,
2320         just scan the RTL for DEBUG_INSNs and substitute.
2321         (reload_combine_recognize_pattern): Call fixup_debug_insns.
2322         (reload_combine): Ignore DEBUG_INSNs.
2323
2324 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
2325
2326         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
2327         depth to 8 from 5.
2328
2329         PR debug/45003
2330         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
2331         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
2332         instead of the result's type.
2333
2334 2010-07-20  Richard Guenther  <rguenther@suse.de>
2335
2336         PR tree-optimization/44977
2337         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
2338         SSA form.
2339
2340 2010-07-20  Richard Guenther  <rguenther@suse.de>
2341
2342         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
2343         (lto_symtab_merge_decls_2): Likewise.
2344         * gimple.h (gimple_types_compatible_p): Declare.
2345         * gimple.c (gimple_queue_type_fixup): Remove.
2346         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
2347         (gimple_compatible_complete_and_incomplete_type_p): New function.
2348         (gimple_types_compatible_p): Adjust.
2349         (gimple_register_type): Remove type fixup code.
2350         (print_gimple_types_stats): Adjust.
2351         (free_gimple_type_tables): Likewise.
2352         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
2353         * tree-ssa.c (useless_type_conversion_p): Likewise.
2354
2355 2010-07-20  Richard Guenther  <rguenther@suse.de>
2356
2357         PR middle-end/44971
2358         PR middle-end/44988
2359         * tree-ssa.c (maybe_optimize_var): New function split out from ...
2360         (execute_update_addresses_taken): ... here.
2361         (non_rewritable_mem_ref_base): Likewise.
2362         (execute_update_addresses_taken): Do not iterate over all referenced
2363         vars but just all local decls and parms.
2364         Properly check call and asm arguments and rewrite call arguments.
2365
2366 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
2367
2368         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
2369         to top level.
2370         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
2371         definitions ...
2372         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
2373         New macro.
2374         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
2375
2376 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
2377
2378         * gengtype.c (start_root_entry): New function, split out from
2379         write_root.  Check whether V is null and raise an error if so.
2380         (write_field_root): Check for V being null.  Don't raise an error here;
2381         set V to null instead.
2382         (write_root): Update comment above function.  Use start_root_entry.
2383
2384 2010-07-19  Xinliang David Li  <davidxl@google.com>
2385
2386         PR testsuite/44932
2387         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
2388         def edges.
2389         (find_uninit_use): Add dump.
2390         (is_use_properly_guarded): Ditto.
2391         (warn_uninitialized_phi): Ditto.
2392         (execute_late_warn_uninitialized): Ditto.
2393
2394 2010-07-19  Richard Guenther  <rguenther@suse.de>
2395
2396         PR middle-end/44941
2397         * expr.c (emit_block_move_hints): Move zero size check first.
2398         Move asserts to more useful places.
2399         * calls.c (load_register_parameters): Check for zero size.
2400
2401 2010-07-19  Richard Henderson  <rth@redhat.com>
2402
2403         * tree-optimize.c (execute_all_early_local_passes): New.  Change
2404         cgraph_state here ...
2405         (execute_early_local_optimizations): ... not here.  Remove.
2406         (pass_early_local_passes, pass_all_early_optimizations): Update.
2407
2408 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
2409
2410         * postreload.c (reload_combine_closest_single_use): Ignore the
2411         number of uses for DEBUG_INSNs.
2412         (fixup_debug_insns): New static function.
2413         (reload_combine_recognize_const_pattern): Use it.  Don't let the
2414         main loop be affected by DEBUG_INSNs.
2415         Really disallow moving adds past a jump insn.
2416         (reload_combine_recognize_pattern): Don't update use_ruid here.
2417         (reload_combine_note_use): Do it here.
2418         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
2419
2420 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
2421
2422         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
2423         of a loop.
2424         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
2425
2426 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
2427
2428         * config/i386/darwin.h: Define darwin_emit_branch_islands.
2429         (TARGET_MACHO_BRANCH_ISLANDS): New.
2430         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
2431         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
2432         default value.
2433         * config/i386/i386.c (output_pic_addr_const): Do not emit
2434         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
2435         (x86_output_mi_thunk): Adjust symbol creation.
2436         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
2437         Remove out of date comment.
2438         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
2439         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
2440         (DARWIN_GENERATE_ISLANDS): Ditto.
2441         (output_call):  Do not emit branch islands unless
2442         darwin_emit_branch_islands is set.
2443         * config/darwin.c: Declare darwin_emit_branch_islands.
2444         (machopic_indirect_data_reference): Do not emit unless
2445         darwin_emit_branch_islands is set.
2446         (darwin_override_options): Set darwin_emit_branch_islands
2447         where it is needed.
2448         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
2449
2450 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2451
2452         * doc/sourcebuild.texi (Effective-Target Keywords): Document
2453         sse_runtime, sse2_runtime.
2454
2455 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
2456
2457         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
2458         low half of a single-register SCmode return value before ORing
2459         it with the high half.
2460         * config/mips/mips16.S (MERGE_GPRf): Likewise.
2461
2462 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2463
2464         PR target/44805
2465         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
2466         on all targets.
2467
2468 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
2469
2470         PR target/42235
2471         * postreload.c (reload_cse_move2add): Return bool, true if anything.
2472         changed.  All callers changed.
2473         (move2add_use_add2_insn): Likewise.
2474         (move2add_use_add3_insn): Likewise.
2475         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
2476         reload_combine.
2477         (RELOAD_COMBINE_MAX_USES): Bump to 16.
2478         (last_jump_ruid): New static variable.
2479         (struct reg_use): New members CONTAINING_MEM and RUID.
2480         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
2481         (reload_combine_split_one_ruid, reload_combine_split_ruids,
2482         reload_combine_purge_insn_uses, reload_combine_closest_single_use
2483         reload_combine_purge_reg_uses_after_ruid,
2484         reload_combine_recognize_const_pattern): New static functions.
2485         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
2486         is true for our reg and that we have available index regs.
2487         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
2488         callers changed.  Use them to initialize fields in struct reg_use.
2489         (reload_combine): Initialize last_jump_ruid.  Be careful when to
2490         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
2491         Call reload_combine_recognize_const_pattern.
2492         (reload_combine_note_store): Update REAL_STORE_RUID field.
2493
2494 2010-07-16  Jason Merrill  <jason@redhat.com>
2495
2496         * Makefile.in (opts-common.o): Depend on options.h.
2497
2498 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
2499
2500         * tree.c (build_common_builtin_nodes): Use build_function_type_list
2501         instead of build_function_type.
2502         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
2503         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2504
2505 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
2506
2507         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
2508         do all the work.
2509         (rs6000_emit_int_cmove): Use function pointers for insn generation.
2510         Don't force values into registers unnecessarily.
2511         (output_isel): Assert that we're not given conditions we can't handle.
2512         Delete corresponding code.
2513         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
2514         scc_comparison_operator constraint.  Permit 0 for the consequent
2515         operand.  Permit any GPR for the alternative operand.
2516         (isel_unsigned_<mode>): Likewise.
2517
2518 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
2519
2520         PR target/44942
2521         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
2522         argument to const_tree.
2523         * config/i386/i386.c (function_arg_advance): If padding needs to be
2524         inserted before argument, increment cum->words by number of padding
2525         words as well.
2526         (contains_aligned_value_p): Change argument to const_tree.
2527         (ix86_function_arg_boundary): Change second argument to const_tree.
2528
2529 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
2530
2531         PR target/42235
2532         * function.c (record_hard_reg_sets): New static function.
2533         (assign_parm_setup_reg): If an optab for extending exists and the
2534         generated code clobbbers no hard regs, emit the insn directly and
2535         create a REG_EQUIV note.
2536
2537 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2538
2539         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
2540         TREE_CHAIN.
2541         * c-typeck.c (push_init_level): Likewise.
2542         (process_init_element): Likewise.
2543
2544 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
2545
2546         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
2547         (integer_three_node): Add.
2548         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
2549         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
2550         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
2551         of call build_int_cst.
2552         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
2553         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
2554         (find_interesting_uses_address): Ditto.
2555         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
2556         * tree-eh.c (lower_eh_constructs_2): Ditto.
2557         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
2558         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
2559         * expmed.c (expand_divmod): Ditto.
2560         * tree-mudflap.c (mx_register_decls): Ditto.
2561         * varasm.c (array_size_for_constructor): Ditto.
2562         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2563         * c-parser.c (c_parser_postfix_expression): Ditto.
2564
2565 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
2566
2567         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
2568         New static variables.
2569         (reload_combine_recognize_pattern): New static function, broken out
2570         of reload_combine.
2571         (reload_combine): Use it.  Only initialize first_index_reg and
2572         last_index_reg once.
2573
2574 2010-07-15  Richard Henderson  <rth@redhat.com>
2575
2576         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
2577         when done.
2578
2579 2010-07-15  Jan Hubicka  <jh@suse.cz>
2580
2581         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
2582         comdats for broken gold.
2583         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
2584
2585 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2586
2587         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
2588
2589 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
2590
2591         * tree.h (DECL_CHAIN): Define.
2592         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
2593         * c-decl.c: Likewise.
2594         * c-parser.c: Likewise.
2595         * c-typeck.c: Likewise.
2596         * cfgexpand.c: Likewise.
2597         * cgraph.c: Likewise.
2598         * cgraphunit.c: Likewise.
2599         * combine.c: Likewise.
2600         * config/alpha/alpha.c: Likewise.
2601         * config/arm/arm.c: Likewise.
2602         * config/frv/frv.c: Likewise.
2603         * config/i386/i386.c: Likewise.
2604         * config/i386/winnt-cxx.c: Likewise.
2605         * config/ia64/ia64.c: Likewise.
2606         * config/iq2000/iq2000.c: Likewise.
2607         * config/mep/mep.c: Likewise.
2608         * config/mips/mips.c: Likewise.
2609         * config/pa/som.h: Likewise.
2610         * config/rs6000/rs6000.c: Likewise.
2611         * config/s390/s390.c: Likewise.
2612         * config/sh/sh.c: Likewise.
2613         * config/sh/symbian-cxx.c: Likewise.
2614         * config/sparc/sparc.c: Likewise.
2615         * config/spu/spu.c: Likewise.
2616         * config/stormy16/stormy16.c: Likewise.
2617         * config/vxworks.c: Likewise.
2618         * config/xtensa/xtensa.c: Likewise.
2619         * coverage.c: Likewise.
2620         * dbxout.c: Likewise.
2621         * dwarf2out.c: Likewise.
2622         * emit-rtl.c: Likewise.
2623         * expr.c: Likewise.
2624         * function.c: Likewise.
2625         * gimple-low.c: Likewise.
2626         * gimple-pretty-print.c: Likewise.
2627         * gimplify.c: Likewise.
2628         * integrate.c: Likewise.
2629         * ipa-inline.c: Likewise.
2630         * ipa-prop.c: Likewise.
2631         * ipa-split.c: Likewise.
2632         * ipa-struct-reorg.c: Likewise.
2633         * ipa-type-escape.c: Likewise.
2634         * langhooks.c: Likewise.
2635         * lto-cgraph.c: Likewise.
2636         * omp-low.c: Likewise.
2637         * stor-layout.c: Likewise.
2638         * tree-cfg.c: Likewise.
2639         * tree-complex.c: Likewise.
2640         * tree-dfa.c: Likewise.
2641         * tree-dump.c: Likewise.
2642         * tree-inline.c: Likewise.
2643         * tree-mudflap.c: Likewise.
2644         * tree-nested.c: Likewise.
2645         * tree-object-size.c: Likewise.
2646         * tree-pretty-print.c: Likewise.
2647         * tree-sra.c: Likewise.
2648         * tree-ssa-live.c: Likewise.
2649         * tree-ssa-loop-niter.c: Likewise.
2650         * tree-ssa-math-opts.c: Likewise.
2651         * tree-ssa-reassoc.c: Likewise.
2652         * tree-ssa-sccvn.c: Likewise.
2653         * tree-ssa-structalias.c: Likewise.
2654         * tree-tailcall.c: Likewise.
2655         * tree-vrp.c: Likewise.
2656         * tree.c: Likewise.
2657         * var-tracking.c: Likewise.
2658         * varasm.c: Likewise.
2659
2660 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2661
2662         PR target/44877
2663         * config/spu/spu.c (spu_expand_builtin_1): Allow references
2664         (as well as pointers) as argument to mask_for_load builtins.
2665
2666 2010-07-15  Richard Guenther  <rguenther@suse.de>
2667
2668         PR tree-optimization/44946
2669         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
2670         with accessing only padding properly.
2671
2672 2010-07-15  Jan Hubicka  <jh@suse.cz>
2673
2674         * ipa.c (function_and_variable_visibility): Variables marked as used
2675         should not be localized.
2676
2677 2010-07-15  Jan Hubicka  <jh@suse.cz>
2678
2679         * cgraph.c: Include lto-streamer.h
2680         (change_decl_assembler_name): Work when assembler name hash is at place.
2681         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
2682         be sure to rename it to avoid name clash.
2683         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
2684         Localize hidden symbols only when locally defined.
2685
2686 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
2687
2688         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
2689
2690 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
2691             Kevin F. Quinn  <kevquinn@gentoo.org>
2692
2693         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
2694         * common.opt: Add -Wtrampolines.
2695         * doc/invoke.texi: Add -Wtrampolines.
2696
2697 2010-07-15  Jie Zhang  <jie@codesourcery.com>
2698
2699         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
2700         cortex_a8_issue_ls.
2701
2702 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
2703
2704         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
2705         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
2706
2707 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2708
2709         * config/spu/spu.c (reg_names): Remove prototype.
2710         (call_used_regs): Likewise.
2711
2712 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
2713
2714         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
2715         "unused" with attribute "used".
2716         (__JCR_END__): Likewise.
2717         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
2718         "used" attribute.
2719         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
2720
2721 2010-07-14  Richard Guenther  <rguenther@suse.de>
2722
2723         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
2724         (maybe_fixup_decls): Likewise.
2725         (input_gimple_stmt): Do not fixup anything.
2726         * lto-streamer-out.c (output_gimple_stmt): Make sure all
2727         non-automatic variable uses are wrapped inside a MEM_REF.
2728
2729 2010-07-14  Richard Henderson  <rth@redhat.com>
2730
2731         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
2732         for functions.
2733         * varasm.c (assemble_variable): Remove early exit for functions;
2734         assert that we're given a variable.
2735
2736 2010-07-14  Jie Zhang  <jie@codesourcery.com>
2737
2738         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
2739         cortex_a8_default when neon_type is not none.
2740
2741 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2742
2743         * lower-subreg.c (subreg_context): New static bitmap.
2744         (decompose_multiword_subregs): Allocate and free it.
2745         (find_decomposable_subregs): Set a bit in it for a register that
2746         occurs in a subreg that changes mode but not size.
2747         (can_decompose_p): Test it instead of non_decomposable_context.
2748
2749 2010-07-14  Richard Guenther  <rguenther@suse.de>
2750
2751         PR tree-optimization/44824
2752         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
2753         is_gimple_mem_ref_addr.
2754         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
2755         non-decl_address_invariant_p addresses.
2756
2757 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2758
2759         * reload.c (find_reloads): Revert code to penalize small register
2760         classes that was brought in with the IRA merge.
2761
2762 2010-07-14  Richard Guenther  <rguenther@suse.de>
2763
2764         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
2765         as base of ARRAY_REFs.
2766
2767 2010-07-14  Richard Guenther  <rguenther@suse.de>
2768
2769         PR middle-end/44930
2770         * tree-pretty-print.c (do_niy): Do not print a newline.
2771
2772 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
2773
2774         * ira-int.h (struct ira_object): New.
2775         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
2776         (struct ira_allocno): Remove members min, max,
2777         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
2778         conflict_allocnos_num and conflict_vec_p.  Add new member object.
2779         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
2780         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
2781         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
2782         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
2783         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
2784         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
2785         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
2786         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
2787         an ira_object_t rather than ira_allocno_t.  All uses changed.
2788         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
2789         contains a vector of ira_object_t; all uses changed.
2790         (ira_objects_num): Declare variable.
2791         (ira_create_allocno_object): Declare function.
2792         (ira_conflict_vector_profitable_p): Adjust prototype.
2793         (ira_allocate_conflict_vec): Renamed from
2794         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
2795         (ira_allocate_object_conflicts): Renamed from
2796         ira_allocate_allocno_conflicts; first arg now ira_object_t.
2797         (struct ira_object_iterator): New.
2798         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
2799         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
2800         to conflict_vec_p.  All uses changed.
2801         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
2802         Changed to take into account that conflicts are now tracked for
2803         objects.
2804         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
2805         Args changed to accept ira_object_t.  All uses changed.
2806         (allocnos_conflict_p): New static function.
2807         (collected_conflict_objects): Renamed from collected_allocno_objects;
2808         now a vector of ira_object_t.  All uses changed.
2809         (build_conflict_bit_table): Changed to take into account that
2810         conflicts are now tracked for objects.
2811         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
2812         (print_allocno_conflicts, ira_build_conflicts): Likewise.
2813         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
2814         setup_allocno_left_conflicts_size, allocno_reload_assign,
2815         fast_allocation): Likewise.
2816         * ira-lives.c (make_hard_regno_born, make_allocno_born)
2817         process_single_reg_class_operands, process_bb_node_lives): Likewise.
2818         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
2819         Likewise.
2820         * ira-build.c (ira_objects_num): New variable.
2821         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
2822         contains a vector of ira_object_t; all uses changed.
2823         (ira_object_id_map_vec): Corresponding change.
2824         (object_pool): New static variable.
2825         (initiate_allocnos): Initialize it.
2826         (finish_allocnos): Free it.
2827         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
2828         New functions.
2829         (ira_create_allocno): Don't set members that were removed.
2830         (ira_set_allocno_cover_class): Don't change conflict hard regs.
2831         (merge_hard_reg_conflicts): Changed to take into account that
2832         conflicts are now tracked for objects.
2833         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
2834         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
2835         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
2836         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
2837         setup_min_max_conflict_allocno_ids, ):  Likewise.
2838         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
2839         to ira_object_t; all callers changed.
2840         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
2841         to ira_object_t, all callers changed.
2842         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
2843         to ira_object_t, all callers changed.
2844         (conflict_check, curr_conflict_check_tick): Renamed from
2845         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
2846         changed.
2847         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
2848         arg changed to ira_object_t, all callers changed.
2849         (create_cap_allocno): Call ira_create_allocno_object.
2850         (finish_allocno): Free the corresponding object.
2851         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
2852         callers changed.  Adjusted for dealing with objects.
2853         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
2854         dealing with objects.
2855         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
2856
2857         * ira-int.h (struct live_range): Rename allocno member to object
2858         and change type to ira_object_t.
2859         (struct ira_object): New member live_ranges.
2860         (struct ira_allocno): Remove member live_ranges.
2861         (ALLOCNO_LIVE_RANGES): Remove.
2862         (OBJECT_LIVE_RANGES): New macro.
2863         (ira_create_live_range, ira_copy_live_range_list,
2864         ira_merge_live_range_list, ira_live_ranges_intersect_p,
2865         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
2866         * ira-build.c (ira_create_object): Initialize live ranges here.
2867         (ira_create_allocno): Not here.
2868         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
2869         changed to ira_object_t, all callers changed.
2870         (copy_live_range): Rename from copy_allocno_live_range, all callers
2871         changed.
2872         (ira_copy_live_range_list): Rename from
2873         ira_copy_allocno_live_range_list, all callers changed.
2874         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
2875         all callers changed.
2876         (ira_live_ranges_intersect_p): Rename from
2877         ira_allocno_live_ranges_intersect_p, all callers changed.
2878         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
2879         callers changed.
2880         (ira_finish_live_range_list): Rename from
2881         ira_finish_allocno_live_range_list, all callers changed.
2882         (change_object_in_range_list): Rename from change_allocno_in_range_list,
2883         last arg changed to ira_object_t, all callers changed.
2884         (finish_allocno): Changed to expect live ranges in the allocno's object.
2885         (move_allocno_live_ranges, copy_allocno_live_ranges,
2886         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
2887         ira_flattening, ira_build): Likewise.
2888         * ira-color.c (allocnos_have_intersected_live_ranges_p,
2889         slot_coalesced_allocno_live_ranges_intersect,
2890         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
2891         * ira-conflicts.c (build_conflict_bit_table): Likewise.
2892         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
2893         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
2894         make_allocno_dead, create_start_finish_chains,
2895         remove_some_program_points_and_update_live_ranges,
2896         ira_debug_live_range_list): Likewise.
2897
2898         * ira-int.h (ira_object_conflict_iterator): Rename from
2899         ira_allocno_conflict_iterator.
2900         (ira_object_conflict_iter_init): Rename from
2901         ira_allocno_conflict_iter_init, second arg changed to
2902         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
2903         FOR_EACH_ALLOCNO_CONFLICT.
2904         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
2905         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
2906         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
2907         * ira-conflicts.c (print_allocno_conflicts): Likewise.
2908
2909 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
2910
2911         PR other/44874
2912         * tree-dump.c (dump_options): Add enumerate_locals entry.
2913         Add TDF_NOID exclusion to all entry.
2914         * tree-dump.h (dump_enumerated_decls): Declare.
2915         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
2916         Don't display type uid.
2917         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
2918         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
2919         * tree-ssa-live.c: Include gimple.h.
2920         (numbered_tree_d): New struct.
2921         (numbered_tree): New typedef.
2922         (DEF_VEC_O (numbered_tree): New.
2923         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
2924         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
2925         (dump_enumerated_decls): Likewise.
2926         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
2927         debug info and flag_dump_final_insns, call dump_enumerated_decls.
2928         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
2929         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
2930
2931 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
2932
2933         * expmed.h (MAX_BITS_PER_WORD): Move to...
2934         * defaults.h (MAX_BITS_PER_WORD): ...here.
2935
2936 2010-07-13  DJ Delorie  <dj@redhat.com>
2937
2938         * config/h8300/h8300.c (h8300_init_once): Default to
2939         -fstrict_volatile_bitfields.
2940
2941         * config/sh/sh.c (sh_override_options): Default to
2942         -fstrict_volatile_bitfields.
2943
2944         * config/rx/rx.c (rx_option_override): New.
2945
2946         * config/m32c/m32c.c (m32c_override_options): Default to
2947         -fstrict_volatile_bitfields.
2948
2949 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2950
2951         * tree.h (build_function_call_expr): Delete.
2952         (build_call_expr_loc_array): New function.
2953         (build_call_expr_loc_vec): New function.
2954         * tree-flow.h (struct omp_region): Change type of ws_args field
2955         to a VEC.
2956         * builtins.c (build_function_call_expr): Delete.
2957         (build_call_expr_loc_array): New function.
2958         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
2959         (build_call_expr): Likewise.
2960         (build_call_expr_loc_vec): New function.
2961         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
2962         build_function_call_expr.
2963         * expr.c (emutls_var_address): Likewise.
2964         * varasm.c (emutls_common_1): Likewise.
2965         * omp-low.c (expand_omp_atomic_mutex): Likewise.
2966         (expand_omp_taskreg): Adjust for new type of region->ws_args.
2967         (get_ws_args_for): Return a VEC instead of a tree.
2968         (expand_parallel_call): Call build_call_expr_loc_vec instead of
2969         build_function_call_expr.
2970         * stor-layout.c (self_referential_size): Likewise.
2971
2972 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
2973
2974         PR testsuite/44701
2975         * recog.c (constrain_operands): Allow side-effects in memory
2976         operands if either < or > constraint is used, rather than if
2977         both < and > is used.
2978
2979 2010-07-13  Richard Guenther  <rguenther@suse.de>
2980
2981         PR middle-end/44911
2982         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
2983         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
2984         without name.
2985
2986 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2987
2988         PR target/44761
2989         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
2990         to variable emited.
2991         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
2992         * config/sh/sh.md (symGOT_load): Likewise.
2993         (symDTPOFF2reg): Likewise.
2994         (symTPOFF2reg): Likewise.
2995
2996 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2997
2998         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
2999         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
3000
3001 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3002
3003         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
3004         explanation.
3005         Find ucontext_t * on Solaris 11.
3006         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
3007         Handle new Solaris 11 __sighndlr patterns.
3008
3009 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
3010
3011         PR debug/44901
3012         * vec.h (VEC_block_remove): Fix comment.
3013         * tree-ssa-live.c (remove_unused_locals): Don't use
3014         VEC_unordered_remove on local_decls, instead replace a single
3015         vector element in each iteration if at least one element had
3016         to be removed and VEC_truncate at the end.
3017         * omp-low.c (expand_omp_taskreg): Likewise.
3018
3019 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3020
3021         * c-decl.c (finish_function): Fix typo in comment.
3022
3023 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
3024
3025         PR bootstrap/44921
3026         * postreload.c (move2add_use_add3_insn): Silence gcc warning
3027         on min_regno.
3028
3029 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
3030
3031         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
3032         (simplify_stmt_using_ranges): Use it.
3033
3034 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3035
3036         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
3037         member.  Do not mark as GTY(()).
3038         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
3039         (spu_builtin_decls): New static variable.
3040         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
3041         (spu_init_builtins): Likewise.
3042         (spu_builtin_mul_widen_even): Likewise.
3043         (spu_builtin_mul_widen_odd): Likewise.
3044         (spu_builtin_mask_for_load): Likewise.
3045         (spu_builtin_vec_perm): Likewise.
3046         * config/spu/spu-c.c: Include "target.h".
3047         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
3048         of using spu_builtins[].fndecl.
3049
3050 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3051
3052         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
3053         imply -minterlink-mips16.
3054
3055 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3056
3057         * config/mips/mips.h (mips16_globals): Declare.
3058         (SWITCHABLE_TARGET): Define.
3059         * config/mips/mips.c: Include target-globals.h.
3060         (mips16_globals): New variable.
3061         (mips_set_mips16_mode): Use save_target_globals and
3062         restore_target_globals instead of target_reinit.
3063
3064 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3065
3066         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
3067         to say that the function can be called more than once.
3068         * target-globals.c (save_target_globals): Call init_reg_sets.
3069
3070 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3071
3072         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
3073         * bb-reorder.h: New file.
3074         * bb-reorder.c (default_target_bb_reorder): New variable.
3075         (this_target_bb_reorder): New conditional variable.
3076         (uncond_jump_length): Redefine as a macro.
3077         * target-globals.h (this_target_bb_reorder): Declare.
3078         (target_globals): Add a bb_reorder field.
3079         (restore_target_globals): Copy the bb_reorder field to
3080         this_target_bb-reorder.
3081         * target-globals.c: Include bb-reorder.h.
3082         (default_target_globals): Initialize the bb_reorder field.
3083         (save_target_globals): Likewise.
3084
3085 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3086
3087         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
3088         * gcse.h: New file.
3089         * gcse.c: Include gcse.h.
3090         (default_target_gcse): New variable.
3091         (this_target_gcse): New conditional variable.
3092         (can_copy): Redefine as a macro.
3093         (can_copy_init_p): New macro.
3094         (can_copy_p): Remove can_copy_init_p.
3095         * target-globals.h (this_target_gcse): Declare.
3096         (target_globals): Add a gcse field.
3097         (restore_target_globals): Copy the gcse field to this_target_gcse.
3098         * target-globals.c: Include gcse.h.
3099         (default_target_globals): Initialize the gcse field.
3100         (save_target_globals): Likewise.
3101
3102 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3103
3104         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
3105         and x_ira_prohibited_mode_move_regs_initialized_p.
3106         (ira_prohibited_mode_move_regs): Redefine as a macro.
3107         * ira.c (ira_prohibited_mode_move_regs): Delete.
3108         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
3109
3110 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3111
3112         * reload.h (target_reload): Add x_cached_reg_save_code and
3113         x_cached_reg_restore_code.
3114         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
3115         Redefine as macros.
3116
3117 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3118
3119         * Makefile.in (target-globals.o): Depend on builtins.h.
3120         * builtins.h: New file.
3121         * builtins.c: Include builtins.h.
3122         (default_target_builtins): New variable.
3123         (this_target_builtins): New conditional variable.
3124         (apply_args_mode, apply_result_mode): Redefine as macros.
3125         * target-globals.h (this_target_builtins): Declare.
3126         (target_globals): Add a builtins field.
3127         (restore_target_globals): Copy the builtins field to
3128         this_target_builtins.
3129         * target-globals.c: Include builtins.h.
3130         (default_target_globals): Initialize the builtins field.
3131         (save_target_globals): Likewise.
3132
3133 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3134
3135         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
3136         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
3137         from expmed.c.
3138         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
3139         (alg_hash, alg_hash_used_p): New macros.
3140         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
3141         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
3142         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
3143
3144 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3145
3146         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
3147         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
3148         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
3149         (this_op_costs, costs_classes): Redefine as macros.
3150         (record_reg_classes): Don't take op_costs as a parameter.
3151         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
3152         (scan_one_insn): Update call to record_operand_costs.
3153
3154 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3155
3156         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
3157         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
3158         (target_ira_int): New structure.
3159         (default_target_ira_int): Declare.
3160         (this_target_ira_int): Declare as a variable or define as a macro.
3161         (ira_reg_mode_hard_regset, ira_register_move_cost)
3162         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
3163         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
3164         (prohibited_class_mode_regs, ira_important_classes_num)
3165         (ira_important_classes, ira_reg_class_intersect)
3166         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
3167         (ira_reg_class_union): Redefine as macros.
3168         * ira.h (target_ira): New structure.
3169         (default_target_ira): Declare.
3170         (this_target_ira): Declare as a variable or define as a macro.
3171         (ira_available_class_regs, ira_hard_regno_cover_class)
3172         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
3173         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
3174         (ira_class_hard_regs_num): Redefine as macros.
3175         * ira.c (default_target_ira, default_target_ira_int): New variables.
3176         (this_target_ira, this_target_ira_int): New conditional variables.
3177         (ira_reg_mode_hard_regset, ira_memory_move_cost)
3178         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
3179         (ira_class_subset_p): Delete.
3180         (no_unit_alloc_regs): Redefine as a macro.
3181         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
3182         (ira_class_hard_regs_num, ira_class_hard_reg_index)
3183         (ira_available_class_regs): Delete.
3184         (alloc_reg_class_subclasses): Redefine as a macro.
3185         (ira_reg_class_cover_size, ira_reg_class_cover)
3186         (ira_important_classes_num, ira_important_classes)
3187         (ira_important_class_nums, ira_class_translate): Delete.
3188         (cover_class_order): Document the variable's lifetime.
3189         (reorder_important_classes): Don't set ira_important_class_nums.
3190         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
3191         (ira_reg_class_super_classes, ira_reg_class_union)
3192         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
3193         Delete.
3194         (setup_reg_class_nregs): Don't set ira_max_regs.
3195         (prohibited_class_mode_regs): Delete.
3196         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
3197         (target_globals): Add ira and ira_int fields.
3198         (restore_target_globals): Copy the ira field to this_target_ira
3199         and the ira_int field to this_target_ira_int.
3200         * target-globals.c: Include ira-int.h.
3201         (default_target_globals): Initialize the ira and ira_int fields.
3202         (save_target_globals): Likewise.
3203
3204 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3205
3206         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
3207         * cfgloop.h (target_cfgloop): New structure.
3208         (default_target_cfgloop): Declare.
3209         (this_target_cfgloop): Declare as a variable or define as a macro.
3210         (target_avail_regs, target_clobbered_regs, target_res_regs)
3211         (target_reg_cost, target_spill_cost): Redefine as macros.
3212         * cfgloopanal.c (default_target_cfgloop): New variable.
3213         (this_target_cfgloop): New conditional variable.
3214         (target_avail_regs, target_clobbered_regs, target_res_regs)
3215         (target_reg_cost, target_spill_cost): Delete.
3216         * target-globals.h (this_target_cfgloop): Declare.
3217         (target_globals): Add a cfgloop field.
3218         (restore_target_globals): Copy the cfgloop field to
3219         this_target_cfgloop.
3220         * target-globals.c: Include cfgloop.h.
3221         (default_target_globals): Initialize the cfgloop field.
3222         (save_target_globals): Likewise.
3223
3224 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3225
3226         * regs.h (target_regs): Add x_direct_load, x_direct_store and
3227         x_float_extend_from_mem.
3228         (direct_load, direct_store, float_extend_from_mem): New macros.
3229         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
3230
3231 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3232
3233         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
3234         (target-globals.o): Depend on $(LIBFUNCS_H).
3235         * libfuncs.h: Include hashtab.h.
3236         (libfunc_entry): Moved from optabs.c.
3237         (target_libfuncs): New structure.
3238         (default_target_libfuncs): Declare.
3239         (this_target_libfuncs): Declare as a variable or define as a macro.
3240         (libfunc_table): Redefine as a macro.
3241         * optabs.c (default_target_libfuncs): New variable.
3242         (this_target_libfuncs): New conditional variable.
3243         (libfunc_table): Delete.
3244         (libfunc_entry): Moved to optabs.h.
3245         (libfunc_hash): Redefine as a macro.
3246         (hash_libfunc, eq_libfunc): Fix comments.
3247         (init_optabs): Use libfunc_hash to detect cases where the function
3248         has already been called.  Clear the hash table instead of
3249         recreating it.
3250         * target-globals.h (this_target_libfuncs): Declare.
3251         (target_globals): Add a libfuncs field.
3252         (restore_target_globals): Copy the libfuncs field to
3253         this_target_libfuncs.
3254         * target-globals.c: Include libfuncs.h.
3255         (default_target_globals): Initialize the libfuncs field.
3256         (save_target_globals): Likewise.
3257
3258 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3259
3260         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
3261         in all dependency lists.
3262
3263 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3264
3265         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
3266         * optabs.h (target_optabs): New structure.
3267         (default_target_optabs): Declare.
3268         (this_target_optabs): Declare as a variable or define as a macro.
3269         (optab_table, convert_optab_table, direct_optab_table): Redefine
3270         as macros.
3271         * optabs.c (default_target_optabs): New variable.
3272         (this_target_optabs): New conditional variable.
3273         (optab_table, convert_optab_table, direct_optab_table): Delete.
3274         * target-globals.h (this_target_optabs): Declare.
3275         (target_globals): Add a optabs field.
3276         (restore_target_globals): Copy the optabs field to
3277         this_target_optabs.
3278         * target-globals.c: Include expr.h and optabs.h.
3279         (default_target_globals): Initialize the optabs field.
3280         (save_target_globals): Likewise.
3281
3282 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3283
3284         * flags.h (target_flagstate): Add x_flag_excess_precision.
3285         (flag_excess_precision): Redefine as a macro.
3286         * toplev.c (flag_excess_precision): Delete.
3287
3288 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3289
3290         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
3291         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
3292         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
3293         (no_caller_save_reg_set): Redefine as a macro.
3294         * reload.h (target_reload): Add x_caller_save_initialized_p and
3295         x_regno_save_mode.
3296         (caller_save_initialized_p): Redefine as a macro.
3297         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
3298         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
3299         (regno_save_mode): Redefine as a macro.
3300
3301 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3302
3303         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
3304         * expmed.h: New file.
3305         * expmed.c (default_target_costs): New variable.
3306         (this_target_costs): New conditional variable.
3307         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
3308         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
3309         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
3310         * target-globals.h (this_target_expmed): Declare.
3311         (target_globals): Add a expmed field.
3312         (restore_target_globals): Copy the expmed field to
3313         this_target_expmed.
3314         * target-globals.c: Include expmed.h.
3315         (default_target_globals): Initialize the expmed field.
3316         (save_target_globals): Likewise.
3317
3318 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3319
3320         * Makefile.in (target-globals.o): Depend on reload.h.
3321         * reload.h (target_reload): New structure.
3322         (default_target_reload): Declare.
3323         (this_target_reload): Declare as a variable or define as a macro.
3324         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
3325         * reload1.c (default_target_reload): New variable
3326         (this_target_reload): New conditional variable.
3327         (indirect_symref_ok, double_reg_address_ok): Delete.
3328         (spill_indirect_levels): Redefine as a macro.
3329         * target-globals.h (this_target_reload): Declare.
3330         (target_globals): Add a reload field.
3331         (restore_target_globals): Copy the reload field to
3332         this_target_reload.
3333         * target-globals.c: Include hard-reg-set.h.
3334         (default_target_globals): Initialize the reload field.
3335         (save_target_globals): Likewise.
3336
3337 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3338
3339         * rtl.h (target_rtl): Add x_static_reg_base_value.
3340         * alias.c (static_reg_base_value): Redefine as a macro.
3341
3342 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3343
3344         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
3345         (GTFILES): Remove reginfo.c.
3346         * rtl.h (target_rtl): Add x_top_of_stack.
3347         (top_of_stack): New macro.
3348         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
3349         (top_of_stack): Delete.
3350
3351 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3352
3353         * regs.h (target_regs): Add x_hard_regs_of_mode,
3354         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
3355         x_may_move_out_cost and x_last_mode_for_init_move_cost.
3356         (have_regs_of_mode, contains_reg_of_mode, move_cost)
3357         (may_move_in_cost, may_move_out_cost): Redefine as macros.
3358         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
3359         (may_move_in_cost, may_move_out_cost): Delete.
3360         (last_mode_for_init_move_cost): Redefine as a macro.
3361
3362 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3363
3364         * hard-reg-set.h (target_hard_regs): New structure.
3365         (default_target_hard_regs): Declare.
3366         (this_target_hard_regs): Declare as a variable or define as a macro.
3367         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
3368         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
3369         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
3370         (reg_class_size, reg_class_subclasses, reg_class_subunion)
3371         (reg_class_superunion, reg_names): Redefine as macros.
3372         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
3373         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
3374         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
3375         (reg_class_contents, reg_class_size, reg_class_subclasses)
3376         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
3377         (default_target_hard_regs): New variable
3378         (this_target_hard_regs, initial_call_really_used_regs)
3379         (initial_reg_alloc_order): New conditional variables.
3380         (initial_reg_names): New variable.
3381         (init_reg_sets): Assert that initial_call_really_used_regs,
3382         initial_reg_alloc_order and initial_reg_names
3383         are all the same size as their variable counterparts.  Use them to
3384         initialize those counterparts.
3385         * target-globals.h (this_target_hard_regs): Declare.
3386         (target_globals): Add a hard_regs field.
3387         (restore_target_globals): Copy the hard_regs field to
3388         this_target_hard_regs.
3389         * target-globals.c: Include hard-reg-set.h.
3390         (default_target_globals): Initialize the hard_regs field.
3391         (save_target_globals): Likewise.
3392
3393 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3394
3395         * Makefile.in (target-globals.o): Depend on $(RTL_H).
3396         * rtl.h (target_rtl): New structure.
3397         (default_target_rtl): Declare.
3398         (this_target_rtl): Declare as a variable or define as a macro.
3399         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
3400         Redefine as macros.
3401         * emit-rtl.c (default_target_rtl): New variable.
3402         (this_target_rtl): New conditional variable.
3403         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
3404         (return_address_pointer_rtx): Delete.
3405         (initial_regno_reg_rtx): New macro.
3406         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
3407         (init_emit_regs): Likewise.
3408         * target-globals.h (this_target_rtl): Declare.
3409         (target_globals): Add a rtl field.
3410         (restore_target_globals): Copy the rtl field to this_target_rtl.
3411         * target-globals.c: Include rtl.h.
3412         (default_target_globals): Initialize the rtl field.
3413         (save_target_globals): Likewise.
3414
3415 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3416
3417         * Makefile.in (target-globals.o): Depend on $(REGS_H).
3418         * regs.h (target_reg_modes): New structure.
3419         (default_target_reg_modes): Declare.
3420         (this_target_reg_modes): Declare as a variable or define as a macro.
3421         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
3422         * reginfo.c (default_target_reg_modes): New variable.
3423         (this_target_reg_modes): New conditional variable.
3424         (hard_regno_nregs, reg_raw_mode): Delete.
3425         * target-globals.h (this_target_regs): Declare.
3426         (target_globals): Add a regs field.
3427         (restore_target_globals): Copy the regs field to this_target_regs.
3428         * target-globals.c: Include regs.h.
3429         (default_target_globals): Initialize the regs field.
3430         (save_target_globals): Likewise.
3431
3432 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
3433
3434         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
3435         * doc/tm.texi: Regenerate.
3436         * Makefile.in (OBJS-common): Add target-globals.o.
3437         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
3438         and target-globals.h.
3439         (target-globals.o): New rule.
3440         (GTFILES): Include $(srcdir)/target-globals.h.
3441         * defaults.h (SWITCHABLE_TARGET): Define.
3442         * gengtype.c (open_base_files): Add target-globals.h to the
3443         list of includes.
3444         * target-globals.h: New file.
3445         * target-globals.c: Likewise.
3446
3447         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
3448         * flags.h (target_flag_state): New structure.
3449         (default_target_flag_state): Declare.
3450         (this_target_flag_state): Declare as a variable or define as a macro.
3451         (align_loops_log): Redefine as a macro.
3452         (align_loops_max_skip, align_jumps_log): Likewise.
3453         (align_jumps_max_skip, align_labels_log): Likewise.
3454         (align_labels_max_skip, align_functions_log): Likewise.
3455         * toplev.c (default_target_flag_state): New variable.
3456         (this_target_flag_state): New conditional variable.
3457         (align_loops_log): Delete.
3458         (align_loops_max_skip, align_jumps_log): Likewise.
3459         (align_jumps_max_skip, align_labels_log): Likewise.
3460         (align_labels_max_skip, align_functions_log): Likewise.
3461         * target-globals.h (this_target_flag_state): Declare.
3462         (target_globals): Add a flag_state field.
3463         (restore_target_globals): Copy the flag_state field to
3464         this_target_flag_state.
3465         * target-globals.c: Include flags.h.
3466         (default_target_globals): Initialize the flag_state field.
3467         (save_target_globals): Likewise.
3468
3469 2010-07-12  Jie Zhang  <jie@codesourcery.com>
3470
3471         * postreload.c (reg_symbol_ref[]): New.
3472         (move2add_use_add2_insn): New.
3473         (move2add_use_add3_insn): New.
3474         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
3475         (move2add_note_store): Likewise.
3476
3477 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
3478
3479         PR rtl-optimization/44752
3480         * genautomata.c (main): Don't emit an empty file even if there
3481         is no automaton.
3482
3483 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3484
3485         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
3486         ix86_solaris_return_in_memory.
3487         * config/i386-protos.h: Reflect this.
3488         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
3489         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
3490         Move ...
3491         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
3492
3493 2010-07-12  Jie Zhang  <jie@codesourcery.com>
3494
3495         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
3496         align the stack when it's going to be saved.
3497
3498 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3499
3500         PR pch/14940
3501         * config/host-solaris.c (mmap_fixed): New function.
3502         (sol_gt_pch_get_address): Use it.
3503         (sol_gt_pch_use_address): Likewise.
3504
3505 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3506
3507         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
3508         pentiumpro on Solaris 8 and 9/x86.
3509         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
3510         Document SSE/SSE2 support.
3511         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
3512
3513 2010-07-12  Andi Kleen  <ak@linux.intel.com>
3514
3515         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
3516         instead of gcc_assert to print better error message for multiple
3517         prevailing defs.
3518
3519 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
3520
3521         * config/i386/i386.c (ix86_asm_output_function_label): Change format
3522         string placeholder from 0x%x to %#x.
3523         (ix86_code_end): Use putc to output '\n'.
3524         (ix86_print_operand) <case ';'>: Use putc to output ';'.
3525
3526 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
3527
3528         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
3529         in directive -export.
3530
3531 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
3532
3533         * reginfo.h (reg_classes_intersect_p): Change arguments type to
3534         reg_class_t.
3535         * rtl.h (reg_classes_intersect_p): Adjust prototype.
3536
3537         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3538         Remove macros.
3539         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
3540         rs6000_memory_move_cost): Remove
3541         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
3542         TARGET_MEMORY_MOVE_COST): Define.
3543         (rs6000_register_move_cost): Make static. Change arguments type from
3544         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
3545         (rs6000_memory_move_cost): Make static. Change arguments type from
3546         'enum reg_class' to reg_class_t.
3547
3548 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
3549
3550         PR middle-end/42505
3551         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
3552         lookup code into....
3553         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
3554         new functions.
3555         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
3556         * cfgloopanal.c (target_clobbered_regs): Define.
3557         (init_set_costs): Initialize target_clobbered_regs.
3558         (estimate_reg_pressure_cost): Add call_p argument.  When true,
3559         adjust the number of available registers to exclude the
3560         call-clobbered registers.
3561         * cfgloop.h (target_clobbered_regs): Declare.
3562         (estimate_reg_pressure_cost): Adjust declaration.
3563         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
3564         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
3565         (determine_set_costs): Dump target_clobbered_regs.
3566         (loop_body_includes_call): New function.
3567         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
3568         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
3569         call_p flag through.
3570         (best_gain_for_invariant): Likewise.
3571         (find_invariants_to_move): Likewise.
3572         (move_single_loop_invariants): Likewise, using already-computed
3573         has_call field.
3574
3575 2010-07-10  Richard Guenther  <rguenther@suse.de>
3576             Joern Rennecke  <joern.rennecke@embecosm.com>
3577
3578         PR debug/44832
3579         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
3580         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
3581         unless they have DECL_IGNORED_P set.
3582
3583 2010-07-10  Richard Guenther  <rguenther@suse.de>
3584
3585         PR lto/44889
3586         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
3587         helper function.
3588         (gimple_types_compatible_p): Similar to pointed-to
3589         types allow and merge a mix of complete and incomplete aggregate.
3590         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
3591         (iterative_hash_gimple_type): Adjust for that.
3592
3593 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
3594
3595         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
3596
3597 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
3598
3599         PR objc/44140
3600         * config/darwin.c (output_objc_section_asm_op): Save and restore
3601         section when outputting ObjC section list.
3602
3603 2010-07-09  Jan Hubicka  <jh@suse.cz>
3604
3605         * lto-streamer-out.c (produce_symtab): Do not write alias
3606         cgraph/varpool nodes.
3607
3608 2010-07-09  Jan Hubicka  <jh@suse.cz>
3609
3610         * tree-inline.c (declare_return_variable): Fix ICE while
3611         inlining DECL_BY_VALUE function not in SSA form
3612
3613 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
3614
3615         PR tree-optimization/44576
3616         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
3617         New.  Pull out from is_loop_prefetching_profitable to implement
3618         the trip count to ahead ratio heuristic.
3619         (mem_ref_count_reasonable_p): New.  Pull out from
3620         is_loop_prefetching_profitable to implement the instruction to
3621         memory reference ratio heuristic.  Also consider not reasonable if
3622         the memory reference count is above a threshold (to avoid
3623         explosive compilation time.
3624         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
3625         is_loop_prefetching_profitable to implement the instruction to
3626         prefetch ratio heuristic.
3627         (is_loop_prefetching_profitable): Removed.
3628         (loop_prefetch_arrays): Distribute the cost analysis across the
3629         function to allow early exit of the prefetch analysis.
3630         is_loop_prefetching_profitable is splitted into three functions,
3631         with each one called as early as possible.
3632         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
3633         number of memory references in a loop is considered too many.
3634
3635 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
3636
3637         * reload.c (find_reloads): Don't clear badop if we have a winreg
3638         alternative, but not win, and the class only has fixed regs.
3639         * hard-reg-set.h (class_only_fixed_regs): Declare.
3640         * reginfo.c (class_only_fixed_regs): New array.
3641         (init_reg_sets_1): Initialize it.
3642         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
3643         discourage alternatives using the stack pointer.
3644
3645         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
3646
3647         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
3648
3649         * config/arm/arm.md (cbranchqi4): Fix array size.
3650         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
3651         calculating length.
3652
3653 2010-07-09  Richard Guenther  <rguenther@suse.de>
3654
3655         * gimple.c (struct type_fixup_s): New struct and VEC type.
3656         (gimple_register_type_fixups): New static global.
3657         (gimple_queue_type_fixup): New function.
3658         (gimple_types_compatible_p): Queue type fixups instead of
3659         applying them here.
3660         (gimple_register_type): Apply queued fixups for the
3661         canonical type.  Empty the type fixup queue.
3662
3663 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
3664
3665         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
3666         * configure: Regenerate.
3667         * config.in: Ditto.
3668
3669 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
3670             Denys Vlasenko  <dvlasenk@redhat.com>
3671             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
3672
3673         PR tree-optimization/28632
3674         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
3675         (extract_range_from_binary_expr): Further optimize
3676         BIT_AND_EXPR and BIT_IOR_EXPR.
3677
3678 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
3679
3680         * tree-if-conv.c (fold_or_predicates): New.
3681         (add_to_predicate_list): Call it.
3682
3683 2010-07-09  Richard Guenther  <rguenther@suse.de>
3684
3685         PR middle-end/44890
3686         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
3687         if base is a pointer.
3688         * tree-cfg.c (verify_expr): Update MEM_REF checking.
3689
3690 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3691
3692         PR target/44877
3693         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
3694         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
3695         builtin mask for load/store builtins.
3696
3697 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
3698
3699         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
3700         for "lock addl".
3701         * configure: Regenerate.
3702         * config/i386/i386.c (ix86_print_operand) <case ';'>:
3703         Remove TARGET_MACHO.
3704
3705 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
3706
3707         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
3708         default ISA flags.
3709         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
3710
3711 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
3712
3713         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
3714
3715 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3716
3717         * config/picochip/picochip.md (commsTestPort): Emit more
3718         efficient sequence for tstport instruction.
3719
3720 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
3721
3722         * config/i386/i386.c (ix86_veclib_handler): Make static.
3723
3724 2010-07-09  Richard Guenther  <rguenther@suse.de>
3725
3726         PR tree-optimization/44852
3727         * tree-ssa-alias.c: Include toplev.h for exact_log2.
3728         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
3729         in MEM_REF.
3730         (indirect_refs_may_alias_p): Likewise.
3731         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
3732
3733 2010-07-09  Richard Guenther  <rguenther@suse.de>
3734
3735         PR tree-optimization/44882
3736         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
3737         sets do conflict.
3738         (vectorizable_load): Likewise.
3739
3740 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
3741
3742         PR target/40657
3743         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
3744         All callers changed.
3745         Handle the case when we're called for the epilogue.
3746         (thumb_unexpanded_epilogue): Use it.
3747         (thumb1_expand_epilogue): Likewise.
3748
3749 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
3750
3751         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
3752         both ranges are range_int_cst_p with non-negative minimum,
3753         try harder to derive smaller range.
3754
3755 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3756
3757         * genrecog.c: Include diagnostic-core.h before toplev.h.
3758         * genoutput.c: Likewise.
3759         * genextract.c: Likewise.
3760         * genautomata.c: Likewise.
3761         * genemit.c: Likewise.
3762         * genpeep.c: Likewise.
3763         * genattrtab.c: Likewise.
3764         * genconditions.c: Likewise.
3765         * genpreds.c: Likewise.
3766
3767 2010-07-08  Andi Kleen  <ak@linux.intel.com>
3768
3769         * lto-section-in.c (lto_section_name): Add missing comma.
3770
3771 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
3772
3773         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
3774         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
3775         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
3776         (ia64_override_options): Rename to...
3777         (ia64_option_override): ... this one. Make static.
3778
3779 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3780
3781         PR middle-end/44843
3782         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
3783         pointed-to type of the offset in a MEM_REF to compute the alignment.
3784
3785 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
3786
3787         * final.c (final_scan_insn): Replace
3788         TARGET_UNWIND_INFO macro check by unwind_emit
3789         hook NULL check.
3790         * targhooks.c (default_unwind_emit): Removed.
3791         * targhooks.h (default_unwind_emit): Likewise.
3792         * target.def (unwind_emit): Set default value to NULL.
3793
3794         * config/i386/i386-protos.h (ix86_asm_output_function_label):
3795         New prototype.
3796         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
3797         for NULL fntype argument and allow 64-bit targets.
3798         (ix86_asm_output_function_label): New function.
3799         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
3800         (ix86_handle_fndecl_attribute): Likewise.
3801         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
3802         * doc/doc/tm.texi: Regenerated.
3803         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
3804         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
3805         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
3806         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
3807         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
3808         * config/elfos.h: Likewise.
3809         * config/i386/cygming.h: Likewise.
3810         * config/netbsd-aout.h: Likewise.
3811         * config/openbsd.h: Likewise.
3812         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
3813         by ix86_asm_output_function_label function call.
3814         * varasm.c (assemble_start_function): Use
3815         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
3816
3817 2010-07-08  Jan Hubicka  <jh@suse.cz>
3818
3819         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
3820         New function.
3821         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
3822         Declare.
3823         * ipa-cp.c (ipcp_estimate_growth): Use it.
3824         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
3825         Likewise.
3826
3827 2010-07-08  Jan Hubicka  <jh@suse.cz>
3828
3829         * tree-inline.c (declare_return_variable): Allocate annotation for new
3830         temporary.
3831
3832 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
3833
3834         PR tree-optimization/44710
3835         * tree-if-conv.c (parse_predicate): New.
3836         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
3837         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
3838
3839 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
3840
3841         * common.opt (ftree-loop-if-convert): New flag.
3842         * doc/invoke.texi (ftree-loop-if-convert): Documented.
3843         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
3844         when flag_tree_loop_if_convert is set.
3845
3846 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
3847
3848         * config/i386/i386.c: Use short syntax for function calls
3849         through function pointers.
3850         * config/i386/i386.md: Ditto.
3851
3852 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3853
3854         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
3855
3856 2010-07-08  Richard Guenther  <rguenther@suse.de>
3857
3858         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
3859         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
3860
3861 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
3862
3863         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
3864         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
3865         (loc_list_from_tree): Likewise.
3866         (output_loc_operands): Handle outputting DW_OP_const[48]u
3867         with loc->dtprel set.
3868         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
3869
3870 2010-07-08  Jan Hubicka  <jh@suse.cz>
3871
3872         * ipa.c: Include pointer-set.h
3873         (cgraph_externally_visible_p): New attribute ALIASED;
3874         when in LTO, hidden symbols are local unless they are aliased.
3875         (function_and_variable_visibility): Compute aliased nodes;
3876         handle LTO and hidden symbol on functions and vars.
3877         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
3878         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
3879
3880 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3881
3882         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3883         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3884         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3885         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3886         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3887         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
3888         (ix86_gen_probe_stack_range): Likewise.
3889         (override_options): Set them.
3890         (ix86_target_stack_probe): New function.
3891         (ix86_compute_frame_layout): Force use of push instructions to
3892         save registers if stack checking with probes is enabled.
3893         (get_scratch_register_on_entry): New function.
3894         (release_scratch_register_on_entry): Likewise.
3895         (ix86_adjust_stack_and_probe): Likewise.
3896         (output_adjust_stack_and_probe): Likewise.
3897         (ix86_emit_probe_stack_range): Likewise.
3898         (output_probe_stack_range): Likewise.
3899         (ix86_expand_prologue): Emit stack checking code if static built-in
3900         stack checking is enabled.
3901         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
3902         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
3903         (output_adjust_stack_and_probe): Likewise.
3904         (output_probe_stack_range): Likewise.
3905         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3906         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
3907         TARGET_STACK_PROBE.
3908         (allocate_stack_worker_64): Likewise.
3909         (allocate_stack): Likewise.
3910         (adjust_stack_and_probe): New insn.
3911         (probe_stack_range): Likewise.
3912
3913 2010-07-08  Richard Guenther  <rguenther@suse.de>
3914
3915         PR tree-optimization/44831
3916         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
3917         a MEM_REF preserving TBAA info of the original dereference.
3918         Dereference the original pointer if the address is not invariant.
3919         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
3920         at least one invariant address that we are going to dereference.
3921
3922 2010-07-08  Richard Guenther  <rguenther@suse.de>
3923
3924         PR tree-optimization/44861
3925         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
3926         information when building MEM_REFs.
3927         (vectorizable_load): Likewise.
3928         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
3929
3930 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3931
3932         * config/sol2-c.c: Do not include diagnostic-core.h.
3933
3934 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3935
3936         PR bootstrap/44768
3937         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
3938         with respect to current_function_decl. Pass decl of the function.
3939         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
3940         * ipa-inline.c (compute_inline_parameters): Pass decl to
3941         estimated_stack_frame_size.
3942
3943 2010-07-08  Richard Guenther  <rguenther@suse.de>
3944
3945         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
3946         New function.
3947         (valueize_refs): Call it.
3948
3949 2010-07-08  Richard Guenther  <rguenther@suse.de>
3950
3951         PR rtl-optimization/44838
3952         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
3953         SSA form do not use pointer equivalence.
3954
3955 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3956
3957         * dwarf2out.c (AT_linkage_name): Delete.
3958         (add_linkage_attr): New function.
3959         (add_linkage_name): Call it to emit the linkage attribute.
3960         (dwarf2out_finish): Likewise.
3961         (move_linkage_attr): Explicitly accept both attribute variants.
3962
3963 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3964
3965         * toplev.h: Do not include diagnostic-core.h.
3966         Include diagnostic-core.h in every file that includes toplev.h.
3967         * c-tree.h: Do not include toplev.h.
3968         * pretty-print.h: Update comment.
3969         * Makefile.in: Update dependencies.
3970         * alias.c: Include diagnostic-core.h in every file that includes
3971         toplev.h.
3972         * attribs.c: Likewise.
3973         * auto-inc-dec.c: Likewise.
3974         * bb-reorder.c: Likewise.
3975         * bt-load.c: Likewise.
3976         * caller-save.c: Likewise.
3977         * calls.c: Likewise.
3978         * cfg.c: Likewise.
3979         * cfganal.c: Likewise.
3980         * cfgbuild.c: Likewise.
3981         * cfgcleanup.c: Likewise.
3982         * cfghooks.c: Likewise.
3983         * cfgloop.c: Likewise.
3984         * combine.c: Likewise.
3985         * config/alpha/alpha.c: Likewise.
3986         * config/arc/arc.c: Likewise.
3987         * config/arm/arm.c: Likewise.
3988         * config/arm/pe.c: Likewise.
3989         * config/avr/avr.c: Likewise.
3990         * config/bfin/bfin.c: Likewise.
3991         * config/cris/cris.c: Likewise.
3992         * config/crx/crx.c: Likewise.
3993         * config/darwin-c.c: Likewise.
3994         * config/darwin.c: Likewise.
3995         * config/fr30/fr30.c: Likewise.
3996         * config/frv/frv.c: Likewise.
3997         * config/h8300/h8300.c: Likewise.
3998         * config/host-darwin.c: Likewise.
3999         * config/i386/i386.c: Likewise.
4000         * config/i386/netware.c: Likewise.
4001         * config/i386/nwld.c: Likewise.
4002         * config/i386/winnt-cxx.c: Likewise.
4003         * config/i386/winnt-stubs.c: Likewise.
4004         * config/i386/winnt.c: Likewise.
4005         * config/ia64/ia64-c.c: Likewise.
4006         * config/ia64/ia64.c: Likewise.
4007         * config/iq2000/iq2000.c: Likewise.
4008         * config/lm32/lm32.c: Likewise.
4009         * config/m32c/m32c-pragma.c: Likewise.
4010         * config/m32c/m32c.c: Likewise.
4011         * config/m32r/m32r.c: Likewise.
4012         * config/m68hc11/m68hc11.c: Likewise.
4013         * config/m68k/m68k.c: Likewise.
4014         * config/mcore/mcore.c: Likewise.
4015         * config/mep/mep-pragma.c: Likewise.
4016         * config/mep/mep.c: Likewise.
4017         * config/mmix/mmix.c: Likewise.
4018         * config/mn10300/mn10300.c: Likewise.
4019         * config/moxie/moxie.c: Likewise.
4020         * config/pa/pa.c: Likewise.
4021         * config/pdp11/pdp11.c: Likewise.
4022         * config/picochip/picochip.c: Likewise.
4023         * config/rs6000/rs6000-c.c: Likewise.
4024         * config/rs6000/rs6000.c: Likewise.
4025         * config/rx/rx.c: Likewise.
4026         * config/s390/s390.c: Likewise.
4027         * config/score/score.c: Likewise.
4028         * config/score/score3.c: Likewise.
4029         * config/score/score7.c: Likewise.
4030         * config/sh/sh.c: Likewise.
4031         * config/sh/symbian-base.c: Likewise.
4032         * config/sh/symbian-c.c: Likewise.
4033         * config/sh/symbian-cxx.c: Likewise.
4034         * config/sol2-c.c: Likewise.
4035         * config/sol2.c: Likewise.
4036         * config/sparc/sparc.c: Likewise.
4037         * config/spu/spu.c: Likewise.
4038         * config/stormy16/stormy16.c: Likewise.
4039         * config/v850/v850-c.c: Likewise.
4040         * config/v850/v850.c: Likewise.
4041         * config/vax/vax.c: Likewise.
4042         * config/vxworks.c: Likewise.
4043         * config/xtensa/xtensa.c: Likewise.
4044         * convert.c: Likewise.
4045         * cse.c: Likewise.
4046         * cselib.c: Likewise.
4047         * dbgcnt.c: Likewise.
4048         * dbxout.c: Likewise.
4049         * ddg.c: Likewise.
4050         * dominance.c: Likewise.
4051         * emit-rtl.c: Likewise.
4052         * explow.c: Likewise.
4053         * expmed.c: Likewise.
4054         * fixed-value.c: Likewise.
4055         * fold-const.c: Likewise.
4056         * fwprop.c: Likewise.
4057         * gcse.c: Likewise.
4058         * ggc-common.c: Likewise.
4059         * ggc-page.c: Likewise.
4060         * ggc-zone.c: Likewise.
4061         * gimple-low.c: Likewise.
4062         * gimplify.c: Likewise.
4063         * graph.c: Likewise.
4064         * haifa-sched.c: Likewise.
4065         * ifcvt.c: Likewise.
4066         * implicit-zee.c: Likewise.
4067         * integrate.c: Likewise.
4068         * ira-build.c: Likewise.
4069         * ira-color.c: Likewise.
4070         * ira-conflicts.c: Likewise.
4071         * ira-costs.c: Likewise.
4072         * ira-lives.c: Likewise.
4073         * ira.c: Likewise.
4074         * lists.c: Likewise.
4075         * loop-doloop.c: Likewise.
4076         * loop-iv.c: Likewise.
4077         * lto-opts.c: Likewise.
4078         * lto-symtab.c: Likewise.
4079         * main.c: Likewise.
4080         * modulo-sched.c: Likewise.
4081         * optabs.c: Likewise.
4082         * params.c: Likewise.
4083         * plugin.c: Likewise.
4084         * postreload-gcse.c: Likewise.
4085         * postreload.c: Likewise.
4086         * predict.c: Likewise.
4087         * profile.c: Likewise.
4088         * real.c: Likewise.
4089         * regcprop.c: Likewise.
4090         * reginfo.c: Likewise.
4091         * regmove.c: Likewise.
4092         * reorg.c: Likewise.
4093         * resource.c: Likewise.
4094         * rtl.c: Likewise.
4095         * rtlanal.c: Likewise.
4096         * sched-deps.c: Likewise.
4097         * sched-ebb.c: Likewise.
4098         * sched-rgn.c: Likewise.
4099         * sdbout.c: Likewise.
4100         * sel-sched-dump.c: Likewise.
4101         * sel-sched-ir.c: Likewise.
4102         * simplify-rtx.c: Likewise.
4103         * stmt.c: Likewise.
4104         * stor-layout.c: Likewise.
4105         * store-motion.c: Likewise.
4106         * targhooks.c: Likewise.
4107         * tree-cfg.c: Likewise.
4108         * tree-cfgcleanup.c: Likewise.
4109         * tree-dump.c: Likewise.
4110         * tree-eh.c: Likewise.
4111         * tree-inline.c: Likewise.
4112         * tree-nomudflap.c: Likewise.
4113         * tree-object-size.c: Likewise.
4114         * tree-optimize.c: Likewise.
4115         * tree-outof-ssa.c: Likewise.
4116         * tree-phinodes.c: Likewise.
4117         * tree-profile.c: Likewise.
4118         * tree-ssa-ccp.c: Likewise.
4119         * tree-ssa-coalesce.c: Likewise.
4120         * tree-ssa-live.c: Likewise.
4121         * tree-ssa-loop-niter.c: Likewise.
4122         * tree-ssa-loop-prefetch.c: Likewise.
4123         * tree-ssa-loop.c: Likewise.
4124         * tree-ssa-structalias.c: Likewise.
4125         * tree-ssa-uninit.c: Likewise.
4126         * tree-ssa.c: Likewise.
4127         * tree-vect-data-refs.c: Likewise.
4128         * tree-vect-loop-manip.c: Likewise.
4129         * tree-vect-loop.c: Likewise.
4130         * tree-vect-patterns.c: Likewise.
4131         * tree-vect-stmts.c: Likewise.
4132         * tree-vrp.c: Likewise.
4133         * varasm.c: Likewise.
4134         * vec.c: Likewise.
4135         * web.c: Likewise.
4136         * xcoffout.c: Likewise.
4137
4138 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
4139
4140         * gengtype.c (write_field_root): New function.
4141         (write_root): Use it.
4142
4143 2010-07-07  Wei Guozhi  <carrot@google.com>
4144
4145         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
4146         of lowest bits to lshift/compare): Add a missing line.
4147
4148 2010-07-07  Wei Guozhi  <carrot@google.com>
4149
4150         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
4151         of lowest bits to lshift/compare): New.
4152
4153 2010-07-07  Tom Tromey  <tromey@redhat.com>
4154
4155         * doc/tm.texi: Update.
4156         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
4157         Add @hook.
4158         * target.def (want_debug_pub_sections): New hook.
4159         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
4160         * dwarf2out.c (add_pubname_string): Check
4161         targetm.want_debug_pub_sections.
4162         (add_pubname): Likewise.
4163         (add_pubtype): Likewise.
4164
4165 2010-07-07  Jie Zhang  <jie@codesourcery.com>
4166
4167         * genautomata.c (output_automata_list_min_issue_delay_code):
4168         Correctly decompress min_issue_delay.
4169
4170 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4171
4172         PR rtl-optimization/44404
4173         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
4174         possible, use reg_overlap_mentioned_p instead.
4175
4176 2010-07-07  Duncan Sands  <baldrick@free.fr>
4177
4178         PR middle-end/41355
4179         * tree.c (build_function_type_skip_args): Copy the original type using
4180         build_distinct_type_copy rather than copy_node.
4181
4182 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
4183
4184         PR target/44850
4185         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
4186         revision 161876.
4187         (ix86_expand_prologue): Likewise.
4188         (ix86_handle_fndecl_attribute): Likewise.
4189         (ix86_asm_declare_function_name): Likewise.
4190         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4191         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4192         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
4193         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
4194         * doc/extend.texi: Likewise.
4195
4196 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
4197
4198         PR target/44844
4199         * config/i386/i386.md (rdrand<mode>): Changed to expand to
4200         retry if the carry flag isn't valid.
4201         (rdrand<mode>_1): New.
4202
4203 2010-07-07  Richard Guenther  <rguenther@suse.de>
4204
4205         PR middle-end/44790
4206         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
4207         for expanding the constant offset for MEM_REFs.
4208
4209 2010-07-07  Richard Guenther  <rguenther@suse.de>
4210
4211         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
4212         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
4213         * gimple.h (is_gimple_operand): Remove.
4214         * gimple.c (is_gimple_operand): Likewise.
4215         (walk_gimple_op): Fix wi->val_only setting for calls.
4216         * tree-cfg.c (verify_gimple_call): Fix argument validation.
4217         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
4218         invalid gimple calls.
4219
4220 2010-07-06  Jan Hubicka  <jh@suse.cz>
4221
4222         * lto-cgraph.c (output_cgraph): Add missing declaration.
4223
4224 2010-07-06  Jan Hubicka  <jh@suse.cz>
4225
4226         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
4227         partition.
4228
4229 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
4230
4231         * doc/gimple.texi (GIMPLE_DEBUG): Document.
4232         * doc/rtl.texi (Debug Information): New node.
4233         (NOTE_INSN_VAR_LOCATION): Document.
4234         (debug_insn): Likewise.
4235         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
4236
4237 2010-07-07  Jan Hubicka  <jh@suse.cz>
4238
4239         With parts by Richard Guenther.
4240
4241         PR middle-end/44813
4242         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
4243         for functions passed by reference.
4244         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
4245         in memory when passed by reference.
4246         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
4247         beggining.
4248         * ipa-split.c (split_function): Cleanup way return value is passed;
4249         handle SSA DECL_BY_REFERENCE retvals.
4250         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
4251         DECL_BY_REFERENCE is set.
4252         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
4253         find_what_p_points_to): Handle RESULT_DECL.
4254         * tree-inline.c (declare_return_variable): Get new entry_block argument;
4255         when passing by reference ensure that RESULT_DECL is gimple_val.
4256         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
4257         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
4258
4259 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4260
4261         PR rtl-optimization/44787
4262         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
4263         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
4264
4265 2010-07-06  Jan Hubicka  <jh@suse.cz>
4266
4267         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
4268         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
4269         with body can prevail.
4270         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
4271         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
4272         * cgraph.c (cgraph_get_node_or_alias): New function.
4273         * cgraph.h (cgraph_get_node_or_alias): Declare.
4274
4275 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
4276
4277         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
4278         support.
4279         (ix86_expand_prologue): Likewise.
4280         (ix86_handle_fndecl_attribute): Likewise.
4281         (ix86_asm_declare_function_name): New function for
4282         ASM_DECLARE_FUNCTION_NAME.
4283         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
4284         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
4285         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
4286         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
4287         * doc/extend.texi: Adjust documentation about ms_hook_prologue
4288         attribute.
4289
4290 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
4291
4292         * config/i386/i386.md (immediate_operand): New mode attribute.
4293
4294         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
4295         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
4296         using P mode iterator.
4297         (pro_epilogue_adjust_stack_di_2): Rename from
4298         pro_epilogue_adjust_stack_rex64_2.
4299
4300         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
4301
4302 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
4303
4304         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
4305         through gen_mov_insv_1 function pointer.
4306         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
4307         gen_truncxf<mode>2 through gen_truncxf function pointer.
4308         (remainder<mode>3): Ditto.
4309         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
4310         (allocate_stack): Call gen_allocate_stack_worker_64 or
4311         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
4312         function pointer.
4313         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
4314         function pointer.
4315
4316 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
4317
4318         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
4319         operand constraint instead of <r><i>m.
4320
4321 2010-07-06  Richard Guenther  <rguenther@suse.de>
4322
4323         PR middle-end/44828
4324         * convert.c (convert_to_integer): Watch out for overflowing
4325         MULT_EXPR as well.
4326
4327 2010-07-05  Jan Hubicka  <jh@suse.cz>
4328
4329         * lto-streamer.c (write_symbol_vec): Rename to ...
4330         (write_symbol) ... this one; write only symbol given and when
4331         present in cache. Sanity check that what is defined is present
4332         in cgraph/varpool with body/finalized decl.
4333         (write_symbols_of_kind): Remove.
4334         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
4335         pairs to produce symtab.
4336         (produce_asm_for_decls): Update call of produce_symtab; don't do so
4337         when doing WPA streaming.
4338
4339 2010-07-05  Jan Hubicka  <jh@suse.cz>
4340
4341         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
4342         function is still available to fold into.
4343
4344 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
4345
4346         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
4347         * function.h (struct_function): Change type of local_decls field
4348         to a VEC.
4349         (add_local_decl): New function.
4350         (FOR_EACH_LOCAL_DECL): New macro.
4351         * cfgexpand.c (init_vars_expansion): Adjust for new type of
4352         cfun->local_decls.
4353         (estimated_stack_frame_size): Likewise.
4354         (expand_used_vars): Likewise.
4355         * cgraphbuild.c (build_cgraph_edges): Likewise.
4356         * function.c (instantiate_decls_1): Likewise.
4357         * ipa-struct-reorg.c (build_data_structure): Likewise.
4358         * ipa-type-escape.c (analyze_function): Likewise.
4359         * lto-streamer-in.c (input_function): Likewise.
4360         * lto-streamer-out.c (output_function): Likewise.
4361         * tree-ssa-live.c (remove_unused_locals): Likewise.
4362         * tree.c (free_lang_data_in_decl): Likewise.
4363         (find_decls_types_in_node): Likewise.
4364         * omp-low.c (remove_exit_barrier): Likewise.
4365         (expand_omp_taskreg): Likewise.
4366         (list2chain): Rename to...
4367         (vec2chain): ...this.  Adjust.
4368         * cgraphunit.c (assemble_thunk): Call add_local_decl.
4369         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
4370         * gimple-low.c (record_vars_into): Likewise.
4371         * tree-inline.c (remap_decls): Likewise.
4372         (declare_return_variable): Likewise.
4373         (declare_inline_vars): Likewise.
4374         (copy_forbidden): Adjust for new type of cfun->local_decls.
4375         (add_local_variables): New function.
4376         (expand_call_inline): Call it.
4377         (tree_function_versioning): Likewise.
4378
4379 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
4380
4381         AVX Programming Reference (June, 2010)
4382         * config/i386/cpuid.h (bit_F16C): New.
4383         (bit_RDRND): Likewise.
4384         (bit_FSGSBASE): Likewise.
4385
4386         * config/i386/i386-builtin-types.def: Add
4387         "DEF_FUNCTION_TYPE (UINT16)", function types for
4388         float16 <-> float conversions and
4389         "DEF_FUNCTION_TYPE (VOID, UINT64)".
4390
4391         * config/i386/i386-c.c (ix86_target_macros_internal): Support
4392         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
4393         OPTION_MASK_ISA_F16C.
4394
4395         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
4396         (OPTION_MASK_ISA_RDRND_SET): Likewise.
4397         (OPTION_MASK_ISA_F16C_SET): Likewise.
4398         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
4399         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
4400         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
4401         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
4402         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
4403         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
4404         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
4405         (override_options): Handle them.
4406         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
4407         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
4408         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
4409         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
4410         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
4411         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
4412         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
4413         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
4414         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
4415         (bdesc_args): Likewise.
4416         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
4417         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
4418         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
4419         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
4420         Handle non-memory store.
4421
4422         * config/i386/i386.h (TARGET_FSGSBASE): New.
4423         (TARGET_RDRND): Likewise.
4424         (TARGET_F12C): Likewise.
4425
4426         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
4427         (UNSPEC_VCVTPS2PH): Likewise.
4428         (UNSPECV_RDFSBASE): Likewise.
4429         (UNSPECV_RDGSBASE): Likewise.
4430         (UNSPECV_WRFSBASE): Likewise.
4431         (UNSPECV_WRGSBASE): Likewise.
4432         (UNSPECV_RDRAND): Likewise.
4433         (rdfsbase<mode>): Likewise.
4434         (rdgsbase<mode>): Likewise.
4435         (wrfsbase<mode>): Likewise.
4436         (wrgsbase<mode>): Likewise.
4437         (rdrand<mode>): Likewise.
4438
4439         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
4440
4441         * config/i386/immintrin.h (_rdrand_u16): New.
4442         (_rdrand_u32): Likewise.
4443         (_readfsbase_u32): Likewise.
4444         (_readfsbase_u64): Likewise.
4445         (_readgsbase_u32): Likewise.
4446         (_readgsbase_u64): Likewise.
4447         (_writefsbase_u32): Likewise.
4448         (_writefsbase_u64): Likewise.
4449         (_writegsbase_u32): Likewise.
4450         (_writegsbase_u64): Likewise.
4451         (_rdrand_u64): Likewise.
4452         (_cvtsh_ss): Likewise.
4453         (_mm_cvtph_ps): Likewise.
4454         (_mm256_cvtph_ps): Likewise.
4455         (_cvtss_sh): Likewise.
4456         (_mm_cvtps_ph): Likewise.
4457         (_mm256_cvtps_ph): Likewise.
4458
4459         * config/i386/sse.md (vcvtph2ps): New.
4460         (*vcvtph2ps_load): Likewise.
4461         (vcvtph2ps256): Likewise.
4462         (vcvtps2ph): Likewise.
4463         (*vcvtps2ph): Likewise.
4464         (*vcvtps2ph_store): Likewise.
4465         (vcvtps2ph256): Likewise.
4466
4467         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
4468
4469         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
4470
4471 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
4472
4473         PR bootstrap/44512
4474         * genenums.c (main): Output include of insn-constants.h
4475         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
4476
4477 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
4478
4479         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
4480         (override_options): Initialize it.
4481         (ix86_expand_prologue): Use it.
4482
4483 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
4484
4485         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
4486
4487 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
4488
4489         * double-int.h (fit_double_type): Remove declaration.
4490         * double-int.c (fit_double_type): Remove function.
4491         * tree.h (int_fits_type_p): Adjust prototype.
4492         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
4493         instead of fit_double_type.
4494         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
4495         instead of fit_double_type and build_int_cst_wide.
4496         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
4497         instead of fit_double_type and build_int_cst_wide.
4498         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
4499         of fit_double_type.
4500
4501 2010-07-05  Jan Hubicka  <jh@suse.cz>
4502
4503         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
4504         in_other_partition.
4505         * lto-cgraph.c (referenced_from_other_partition_p,
4506         reachable_from_other_partition_p): Use in_other_partition flags.
4507         (output_node, output_varpool_node): COMDAT nodes always have private
4508         copies and thus are never used from other partition.
4509
4510 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
4511
4512         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
4513         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
4514         * config/ia64/ia64.c Include reload.h.
4515         (ia64_memory_move_cost): New function.
4516         (TARGET_MEMORY_MOVE_COST): Define.
4517         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
4518         memory_move_cost.
4519
4520 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
4521
4522         PR middle-end/42505
4523         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
4524         comments about cost model.
4525         (try_add_cand_for):  Add second strategy for choosing initial set
4526         based on original IVs, controlled by ORIGINALP argument.
4527         (get_initial_solution): Add ORIGINALP argument.
4528         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
4529         (find_optimal_iv_set): Try two different strategies for choosing
4530         the IV set, and return the one with lower cost.
4531
4532 2010-07-05  Richard Guenther  <rguenther@suse.de>
4533
4534         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
4535
4536 2010-07-05  Richard Guenther  <rguenther@suse.de>
4537
4538         * tree.c (reference_alias_ptr_type): New function.
4539         * tree.h (reference_alias_ptr_type): Declare.
4540         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
4541         allow non-TARGET_MEM_REF new refs.
4542         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
4543         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
4544         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
4545         (create_mem_ref): Get alias pointer type.  Adjust calls to
4546         create_mem_ref_raw.
4547         (maybe_fold_tmr): Likewise.
4548         * tree-flow.h (create_mem_ref): Adjust prototype.
4549
4550 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
4551
4552         PR c++/44808
4553         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
4554         *from_p is VAR_DECL.
4555
4556 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
4557
4558         * tree.h (build_call_list): Remove.
4559         * tree.c (build_call_list): Remove.
4560
4561 2010-07-05  Richard Guenther  <rguenther@suse.de>
4562
4563         * double-int.h (double_int_sub): Declare.
4564         * double-int.c (double_int_sub): New function.
4565         * dwarf2out.c (field_byte_offset): Use it.
4566         * fixed-value.c (do_fixed_add): Likewise.
4567         (do_fixed_multiply): Likewise.
4568         (do_fixed_divide): Likewise.
4569         * tree-predcom.c (add_ref_to_chain): Likewise.
4570         (determine_roots_comp): Likewise.
4571         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
4572
4573 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
4574
4575         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
4576         implementations.
4577
4578 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
4579
4580         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
4581         * arm-modes.def (CC_NOTB): Don't define.
4582         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
4583         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
4584         (LTUGEU): New code_iterator.
4585         (cnb, optab): New corresponding code_attrs.
4586         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
4587         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
4588         using LTUGEU.
4589         (addsi3_carryin_shift_<optab>): Likewise.
4590         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
4591         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
4592         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
4593         (subsi3_compare): Renamed from subsi3_compare0_c.
4594         Change CC_NOTB to CC.
4595         (arm_subsi3_insn): Allow constants for operand 0.
4596         (compare_scc peephole for eq case): New.
4597         (compare_scc splitters): Change CC_NOTB to CC.
4598
4599 2010-07-05  Richard Guenther  <rguenther@suse.de>
4600
4601         * tree-ssa-loop-im.c (for_each_index): Do not handle
4602         ALIGN_INDIRECT_REF.
4603         (gen_lsm_tmp_name): Likewise.
4604         * tree-dump.c (dequeue_and_dump): Likewise.
4605         * tree-pretty-print.c (dump_generic_node): Likewise.
4606         (op_code_prio): Likewise.
4607         (op_symbol_code): Likewise.
4608         * tree.c (staticp): Likewise.
4609         (build1_stat): Likewise.
4610         * tree.h (INDIRECT_REF_P): Likewise.
4611         * fold-const.c (maybe_lvalue_p): Likewise.
4612         (operand_equal_p): Likewise.
4613         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4614         (ao_ref_init_from_vn_reference): Likewise.
4615         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
4616         (find_interesting_uses_address): Likewise.
4617         * dwarf2out.c (loc_list_from_tree): Likewise.
4618         * gimplify.c (gimplify_expr): Likewise.
4619         * tree-eh.c (tree_could_trap_p): Likewise.
4620         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
4621         * cfgexpand.c (expand_debug_expr): Likewise.
4622         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
4623         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
4624         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
4625         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
4626         * tree-ssa-operands.c (get_expr_operands): Likewise.
4627         * expr.c (safe_from_p): Likewise.
4628         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
4629         * tree-vect-data-refs.c (vect_setup_realignment): Build
4630         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
4631         * tree-vect-stmts.c (vectorizable_load): Likewise.
4632         * tree.def (ALIGN_INDIRECT_REF): Remove.
4633
4634 2010-07-05  Richard Guenther  <rguenther@suse.de>
4635
4636         PR tree-optimization/44784
4637         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
4638         for inserted stmts.
4639         (find_or_generate_expression): Fix SCCVN insertion check.
4640
4641 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
4642
4643         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
4644         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4645         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
4646         directives.
4647
4648 2010-07-05  Ira Rosen  <irar@il.ibm.com>
4649
4650         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
4651         statements that are not vectorized.
4652         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
4653         in INSIDE_COST.
4654
4655 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
4656
4657         PR bootstrap/44820
4658         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
4659
4660 2010-07-05  Richard Guenther  <rguenther@suse.de>
4661
4662         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
4663         RESULT_DECLs properly.
4664
4665 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
4666
4667         PR rtl-optimization/44695
4668         * config/i386/i386.md (extract_code): Removed.
4669         (<u>divmodqi4): Likewise.
4670         (divmodqi4): New.
4671         (udivmodqi4): Likewise.
4672         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
4673         (udivmodhiqi3): Likewise.
4674
4675 2010-07-04  Jan Hubicka  <jh@suse.cz>
4676
4677         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
4678
4679 2010-07-04  Jan Hubicka  <jh@suse.cz>
4680
4681         * cgraphunit.c (init_cgraph): Only initialize dump file if it
4682         is not already initialized.
4683
4684 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
4685
4686         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
4687         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
4688         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
4689         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
4690         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
4691         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
4692         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
4693         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
4694         (sync_new_nand_optab): Redefine as macros.
4695         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
4696         Delete.
4697         (direct_optab_index): New enum.
4698         (direct_optab_d): New structure.
4699         (direct_optab): New typedef.
4700         (direct_optab_table): Declare.
4701         (direct_optab_handler, set_direct_optab_handler): New functions.
4702         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
4703         (sync_lock_release_optab): New macros.
4704         * optabs.c (direct_optab_table): New variable.
4705         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
4706         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
4707         cmpstr_optab and cmpstrn_optab.
4708         (emit_conditional_move): Likewise for movcc_optab.
4709         (can_conditionally_move_p): Likewise for movcc_gen_code.
4710         (init_insn_codes): Clear direct_optab_table.
4711         (init_optabs): Don't initialize the new "direct optabs" here.
4712         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
4713         vcond_gen_code.
4714         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
4715         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
4716         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
4717         (expand_sync_operation): Likewise other sync_*_optabs.
4718         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
4719         to sync_compare_and_swap_optab.
4720         (expand_sync_lock_test_and_set): Use direct_optab_handler for
4721         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
4722         to the names of both.
4723         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
4724         cmpstr_optab and cmpstrn_optab.
4725         (expand_builtin_lock_release): Likewise sync_lock_release.
4726         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
4727         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
4728         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
4729         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
4730         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
4731         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
4732         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
4733         (sync_lock_test_and_set, sync_lock_release): Delete.
4734         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
4735         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
4736         * genopinit.c (optabs): Use set_direct_optab_handler for the new
4737         macro optabs.
4738         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
4739         the "optab" local variable.  Use direct_optab_handler for optab and
4740         sync_compare_and_swap_optab.
4741         * reload1.c (reload_in_optab, reload_out_optab): Delete.
4742         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
4743         reload_in_optab and reload_out_optab.
4744         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
4745         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
4746         * config/pa/pa.c (pa_secondary_reload): Likewise.
4747         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
4748         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
4749         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
4750         (VMSupportsCS8_builtin): Likewise.
4751
4752 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
4753
4754         * optabs.h (optab_handlers): Change type of insn_code to int.
4755         (optab_handler, set_optab_handler, convert_optab_handler)
4756         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
4757         CODE_FOR_nothing".
4758         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
4759         (init_insn_codes): Zero both the above arrays.
4760         (init_optabs): Never call init_insn_codes first time around.
4761
4762 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
4763
4764         * optabs.h (optab_handler, convert_optab_handler): Turn into
4765         inline functions that return an insn code.
4766         (set_optab_handler, set_convert_optab_handler): New functions.
4767         * builtins.c: Replace optab_handler(X)->insn_code with
4768         optab_handler or set_optab_handler thoughout.  Likewise
4769         convert_optab_handler(X)->insn_code with convert_optab_handler
4770         and set_convert_optab_handler.
4771         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
4772         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
4773         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
4774         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
4775         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
4776         config/spu/spu.c: Likewise.
4777
4778 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
4779
4780         PR target/44531
4781         * config.gcc (sh*-*-*): Use regular expressions instead of
4782         the 'i' modifier for sed substitutions.
4783
4784 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
4785
4786         * gimple.c (gimple_body): Comments added.
4787
4788 2010-07-04  Richard Guenther  <rguenther@suse.de>
4789
4790         PR middle-end/44809
4791         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
4792         of an INDIRECT_REF.
4793
4794 2010-07-04  Richard Guenther  <rguenther@suse.de>
4795
4796         PR tree-optimization/44479
4797         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
4798         extra SSA name copy statements which preserves points-to
4799         information.
4800         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
4801         Copy points-to information for all pointers.  Properly handle
4802         MEM_REFs.
4803         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
4804         copy statements.
4805         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
4806         dependency.
4807
4808 2010-07-04  Richard Guenther  <rguenther@suse.de>
4809
4810         PR middle-end/44785
4811         * tree-inline.c (initialize_inlined_parameters): Do not
4812         re-use pointer-map slot over remap_type call.
4813
4814 2010-07-04  Richard Guenther  <rguenther@suse.de>
4815
4816         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
4817
4818 2010-07-04  Richard Guenther  <rguenther@suse.de>
4819
4820         PR tree-optimization/44656
4821         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
4822         again after value-replacing in the defintions lhs.
4823
4824 2010-07-04  Ira Rosen  <irar@il.ibm.com>
4825             Revital Eres  <eres@il.ibm.com>
4826
4827         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
4828         Document new arguments.
4829         * doc/tm.texi: Regenerate.
4830         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
4831         Handle unaligned store.
4832         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
4833         * target.def (builtin_vectorization_cost): Add new arguments.
4834         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
4835         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
4836         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
4837         (vect_vfa_segment_size): Fix indentation.
4838         * tree-vectorizer.h (struct _vect_peel_info): New.
4839         (struct _vect_peel_extended_info): New.
4840         (struct _loop_vec_info): Add new field for peeling hash table and a
4841         macro for its access.
4842         (VECT_MAX_COST): Define.
4843         (vect_get_load_cost): Declare.
4844         (vect_get_store_cost, vect_get_known_peeling_cost,
4845         vect_get_single_scalar_iteraion_cost): Likewise.
4846         (vect_supportable_dr_alignment): Add new argument.
4847         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
4848         field.
4849         (destroy_loop_vec_info): Free peeling hash table.
4850         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
4851         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
4852         vect_analyze_slp. Fix indentation.
4853         (vect_get_single_scalar_iteraion_cost): New function.
4854         (vect_get_known_peeling_cost): Likewise.
4855         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
4856         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
4857         statement. Move outside cost calculation inside unknown peeling case.
4858         Call vect_get_known_peeling_cost for known amount of peeling.
4859         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
4860         reference to the print message of forced alignment.
4861         (vect_verify_datarefs_alignment): Update call to
4862         vect_supportable_dr_alignment.
4863         (vect_get_data_access_cost): New function.
4864         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
4865         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
4866         vect_peeling_hash_choose_best_peeling): Likewise.
4867         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
4868         to store all the accesses in the loop and find best possible access to
4869         align using peeling for known alignment case. For unknown alignment
4870         check if stores are preferred or if peeling is worthy.
4871         (vect_find_same_alignment_drs): Analyze pairs of loads too.
4872         (vect_supportable_dr_alignment): Add new argument and check aligned
4873         accesses according to it.
4874         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
4875         (cost_for_stmt): Call vect_get_stmt_cost.
4876         (vect_model_simple_cost): Likewise.
4877         (vect_model_store_cost): Call vect_get_stmt_cost. Call
4878         vect_get_store_cost to calculate the cost of the statement.
4879         (vect_get_store_cost): New function.
4880         (vect_model_load_cost): Call vect_get_stmt_cost. Call
4881         vect_get_load_cost to calculate the cost of the statement.
4882         (vect_get_load_cost): New function.
4883         (vectorizable_store): Update call to vect_supportable_dr_alignment.
4884         (vectorizable_load): Likewise.
4885         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
4886         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
4887         arguments. Handle unaligned store.
4888         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
4889         (rs6000_builtin_support_vector_misalignment): Return true for word and
4890         double word alignments for VSX.
4891         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
4892         vect_supportable_dr_alignment and builtin_vectorization_cost.
4893
4894 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4895
4896         PR target/44597
4897         * config/pa/predicates.md (prefetch_cc_operand): Remove.
4898         (prefetch_nocc_operand): Likewise.
4899         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
4900         (prefetch_20): New insn.
4901         (prefetch_cc): Remove.
4902         (prefetch_nocc): Likewise.
4903
4904 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4905
4906         * expr.c (vector_mode_valid_p): Move to c-common.c.
4907         * expr.h (vector_mode_valid_p): Do not declare here.
4908         * system.h: Poison GCC_EXPR_H in front-ends.
4909         * Makefile.in: Update dependencies.
4910
4911 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4912
4913         PR target/44705
4914         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
4915
4916 2010-07-03  Jan Hubicka  <jh@suse.cz>
4917
4918         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
4919         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
4920         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
4921         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
4922         Likewise.
4923
4924         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
4925         Update timevars.V
4926         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
4927         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
4928         TV_IPA_LTO_DECL_OUT): New.
4929         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
4930
4931 2010-07-03  Jan Hubicka  <jh@suse.cz>
4932
4933         * ipa-inline.c (update_edge_key): Break out from ...
4934         update_callers_keys): ... here;
4935         (update_callee_keys): Update only the edges from caller to callee.
4936         (update_all_calle_keys): Do what update_calle_keys did.
4937         (decide_inlining_of_small_functions): Avoid recomputing of all
4938         callees when badness increase.
4939
4940 2010-07-03  Jie Zhang  <jie@codesourcery.com>
4941
4942         * config/arm/arm.c (arm_attr_length_move_neon): New.
4943         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
4944         * config/arm/neon.md (define_mode_attr V_slen): Remove.
4945         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
4946         to compute length attribute.
4947
4948 2010-07-03  Jie Zhang  <jie@codesourcery.com>
4949
4950         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
4951         as predicate for operand 1 and remove its constraint.
4952         * config/arm/predicates.md (vfp_register_operand): New.
4953         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
4954         (*push_fp_multi): Likewise.
4955
4956 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4957
4958         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
4959
4960 2010-07-03  Jan Hubicka  <jh@suse.cz>
4961
4962         * config/i386/i386.c (override_options): Revert accidental commit.
4963
4964 2010-07-02  Le-Chun Wu  <lcwu@google.com>
4965
4966         PR c++/44128
4967         * doc/invoke.texi: Update documentation of -Wshadow.
4968
4969 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
4970             Julian Brown  <julian@codesourcery.com>
4971             Sandra Loosemore <sandra@codesourcery.com>
4972
4973         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
4974         comparisons.  Adjust to take both operands.
4975         (arm_select_cc_mode): Handle DImode comparisons.
4976         (arm_gen_compare_reg): Generate a scratch register for DImode
4977         comparisons which require one.  Use xor for Thumb equality checks.
4978         (arm_const_double_by_immediates): New.
4979         (arm_print_operand): Allow 'Q' and 'R' for constants.
4980         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
4981         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
4982         arm_canonicalize_comparison.
4983         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
4984         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
4985         prototype.
4986         (arm_const_double_by_immediates): Declare.
4987         * config/arm/constraints.md (Di): New constraint.
4988         * config/arm/predicates.md (arm_immediate_di_operand)
4989         (arm_di_operand, cmpdi_operand): New.
4990         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
4991         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
4992         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
4993         (cstoredi4): Handle non-Cirrus also.
4994
4995 2010-07-02  Julian Brown  <julian@codesourcery.com>
4996             Sandra Loosemore <sandra@codesourcery.com>
4997
4998         PR target/43703
4999         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
5000         (smax<mode>3): Disable for NEON float modes when
5001         flag_unsafe_math_optimizations is false.
5002         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
5003         (*mul<mode>3_neon)
5004         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
5005         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
5006         for NEON float modes when flag_unsafe_math_optimizations is false.
5007         (quad_halves_<code>v4sf): Only enable if
5008         flag_unsafe_math_optimizations is true.
5009         * doc/invoke.texi (ARM Options): Add note about floating point
5010         vectorization requiring -funsafe-math-optimizations.
5011
5012 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
5013             Julian Brown  <julian@codesourcery.com>
5014
5015         * config/arm/neon.md (UNSPEC_VABA): Delete.
5016         (UNSPEC_VABAL): Delete.
5017         (UNSPEC_VABS): Delete.
5018         (UNSPEC_VMUL_N): Delete.
5019         (adddi3_neon): New.
5020         (subdi3_neon): New.
5021         (mul<mode>3add<mode>_neon): Make the pattern named.
5022         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
5023         (neon_vadd<mode>): Replace with define_expand, and move the remaining
5024         unspec parts...
5025         (neon_vadd<mode>_unspec): ...to this.
5026         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
5027         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
5028         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
5029         (neon_vaba<mode>): Rewrite in terms of vabd.
5030         (neon_vabal<mode>): Rewrite in terms of vabdl.
5031         (neon_vabs<mode>): Rewrite without unspec.
5032         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
5033         (*arm_subdi3): Likewise.
5034         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
5035         No_op attribute to disable assembly output checks.
5036         * config/arm/arm_neon.h: Regenerated.
5037         * doc/arm-neon-intrinsics.texi: Regenerated.
5038
5039 2010-07-02  Jan Hubicka  <jh@suse.cz>
5040
5041         * ipa-split.c (split_function): For aggregate values, set the return
5042         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
5043         *<retval> = fncall.part ().
5044         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
5045
5046 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
5047
5048         * config/arm/neon.md (UNSPEC_VAND): Delete.
5049         (UNSPEC_VBIC): Delete.
5050         (UNSPEC_VCLZ): Delete.
5051         (UNSPEC_VCNT): Delete.
5052         (UNSPEC_VEOR): Delete.
5053         (UNSPEC_VORN): Delete.
5054         (UNSPEC_VORR): Delete.
5055         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
5056         core registers too.
5057         (anddi3_neon): Likewise.
5058         (orndi3_neon): Likewise.
5059         (bicdi3_neon): Likewise.
5060         (xordi3_neon): Likewise.
5061         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
5062         rid of unspec and handle unused operand.
5063         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
5064         * config/arm/predicates.md (imm_for_neon_logic_operand):
5065         Require TARGET_NEON.
5066         (imm_for_neon_inv_logic_operand): Likewise.
5067         * config/arm/arm.md (define_split for logical_binary_operator):
5068         Disable for NEON registers.
5069         (anddi3): Add new define_expand, and rename the insn.  Disable
5070         this insn for NEON, where anddi3_neon now applies.
5071         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
5072         (iordi3): As for anddi3.
5073         (xordi3): Likewise.
5074         * config/arm/neon.ml (Vand): Split DImode variants and mark them
5075         as No_op to disable testing for exact instruction match.
5076         (Vorr): Likewise.
5077         (Veor): Likewise.
5078         (Vbic): Likewise.
5079         (Vorn): Likewise.
5080         * config/arm/arm_neon.h: Regenerated.
5081         * doc/arm-neon-intrinsics.texi: Regenerated.
5082
5083 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5084
5085         * expr.h (emit_stack_probe): Declare.
5086         * explow.c (emit_stack_probe): Make global.
5087         (anti_adjust_stack_and_probe): Fix comments.
5088         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
5089         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5090         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5091         * config/sparc/sparc.c: Include except.h.
5092         (sparc_emit_probe_stack_range): New function.
5093         (output_probe_stack_range): Likewise.
5094         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
5095         built-in stack checking is enabled.
5096         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
5097         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
5098         (probe_stack_range): New insn.
5099
5100 2010-07-02  Richard Guenther  <rguenther@suse.de>
5101
5102         PR target/43958
5103         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
5104         for argument alignment.
5105
5106 2010-07-02  Jan Hubicka  <jh@suse.cz>
5107
5108         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
5109         walk backwards from entry_bb to check only those basic block of header
5110         that might lead to execution of split part.
5111         (consider_split) ... here.
5112         (find_return_bb): Allow assignment in return BB.
5113         (find_retval): New.
5114         (split_function): Fix name of cloned function; take care of updating
5115         return value in return_bb containing move.
5116
5117 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
5118
5119         PR target/44771
5120         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
5121         used variable insn.
5122
5123 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5124
5125         * implicit-zee.c (combine_reaching_defs): Fix long lines.
5126         (is_set_with_extension_DI): Delete.
5127         (struct zero_extend_info): New structure.
5128         (add_removable_zero_extend): New function.
5129         (find_removable_zero_extends): Use note_stores to find SETs.
5130         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
5131
5132 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
5133
5134         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
5135         is_miss_rate_acceptable. Pull total_positions computation
5136         out of the loops.  Early return if miss_positions exceeds
5137         the acceptable threshold.
5138         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
5139         is_miss_rate_acceptable after renaming of compute_miss_rate.
5140
5141 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
5142
5143         PR middle-end/44576
5144         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
5145         of 1000) for miss rate if the address diference is greater than or
5146         equal to the cache line size (the two reference will never hit the
5147         same cache line).
5148
5149 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
5150
5151         PR target/42835
5152         * config/arm/arm-modes.def (CC_NOTB): New mode.
5153         * config/arm/arm.c (get_arm_condition_code): Handle it.
5154         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
5155         * config/arm/arm.md (subsi3_compare0_c): New pattern.
5156         (compare_scc): Now a define_and_split.  Add a number of extra
5157         splitters before it.
5158
5159         PR target/42172
5160         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
5161         and ZERO_EXTEND.
5162         (arm_rtx_costs_1): Likewise.
5163         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
5164         * config/arm/arm.md (is_arch6): New attribute.
5165         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
5166         extendqisi2): Tighten the code somewhat, avoiding invalid
5167         RTL to occur in the expander patterns.
5168         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
5169         (thumb1_zero_extendhisi2_v6): Delete.
5170         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
5171         (thumb1_extendhisi2_v6): Delete.
5172         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
5173         (thumb1_extendqisi2_v6): Delete.
5174         (zero_extendhisi2 for register input splitter): New.
5175         (zero_extendqisi2 for register input splitter): New.
5176         (thumb1_extendhisi2 for register input splitter): New.
5177         (extendhisi2 for register input splitter): New.
5178         (extendqisi2 for register input splitter): New.
5179         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
5180         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
5181         and add support for a register alternative requiring a split.
5182         (thumb1_zero_extendqisi2): Likewise.
5183         (arm_zero_extendqisi2): Likewise.
5184         (arm_extendhisi2): Likewise.
5185         (arm_extendqisi2): Likewise.
5186
5187 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
5188
5189         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
5190         instead of an unspec.
5191         (neon_expand_vector_init): Likewise.
5192         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
5193         (UNSPEC_VDUP_LANE): Delete.
5194         (UNSPEC VDUP_N): Delete.
5195         (UNSPEC_VGET_HIGH): Delete.
5196         (UNSPEC_VGET_LANE): Delete.
5197         (UNSPEC_VGET_LOW): Delete.
5198         (UNSPEC_VMVN): Delete.
5199         (UNSPEC_VSET_LANE): Delete.
5200         (V_double_vector_mode): New.
5201         (vec_set<mode>_internal): Make code emitted match that for the
5202         corresponding intrinsics.
5203         (vec_setv2di_internal): Likewise.
5204         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
5205         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
5206         (neon_vset_lane<mode>): Combine double and quad patterns and
5207         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
5208         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
5209         (neon_vdup_n<mode>): Rewrite RTL without unspec.
5210         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
5211         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
5212         with neon_vdup_lanev2di, adjusting the pattern from the latter
5213         to be predicable for consistency.
5214         (neon_vdup_lane<mode>_internal): New.
5215         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
5216         to avoid using an unspec.
5217         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
5218         (neon_vdup_lanev2di): Turn into a define_expand.
5219         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
5220         (neon_vget_high<mode>): Replace with....
5221         (neon_vget_highv16qi): New pattern using canonical RTL.
5222         (neon_vget_highv8hi): Likewise.
5223         (neon_vget_highv4si): Likewise.
5224         (neon_vget_highv4sf): Likewise.
5225         (neon_vget_highv2di): Likewise.
5226         (neon_vget_low<mode>): Replace with....
5227         (neon_vget_lowv16qi): New pattern using canonical RTL.
5228         (neon_vget_lowv8hi): Likewise.
5229         (neon_vget_lowv4si): Likewise.
5230         (neon_vget_lowv4sf): Likewise.
5231         (neon_vget_lowv2di): Likewise.
5232
5233         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
5234         test for this emitting vmov.
5235         (Vset_lane): Likewise.
5236         (Vdup_n): Likewise.
5237         (Vmov_n): Likewise.
5238
5239         * doc/arm-neon-intrinsics.texi: Regenerated.
5240
5241 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
5242
5243         * config/arm/neon.md (vec_extractv2di): Correct error in register
5244         numbering to reconcile with neon_vget_lanev2di.
5245
5246 2010-07-02  Richard Guenther  <rguenther@suse.de>
5247
5248         * tree-ssa-structalias.c (pt_solution_set_var): New function.
5249         * tree-ssa-alias.h (pt_solution_set_var): Declare.
5250         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
5251         points-to information.
5252
5253 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
5254
5255         * config/s390/s390.c (override_options): Adopt prefetching
5256         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
5257
5258 2010-07-02  Jan Hubicka  <jh@suse.cz>
5259
5260         * df-problems.c (df_kill_notes): Do not collect dead  notes.
5261         (df_set_note): Just call add_reg_note.
5262         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
5263         df_create_unused_note): Do not deal with lists of old notes.
5264         (df_note_bb_compute): Likewise.
5265
5266 2010-07-02  Richard Guenther  <rguenther@suse.de>
5267
5268         * tree-ssa-structalias.c (find_func_aliases): Handle
5269         pointer alignment via BIT_AND_EXPR.
5270         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
5271
5272 2010-07-02  Richard Guenther  <rguenther@suse.de>
5273
5274         * tree-data-ref.c (initialize_data_dependence_relation): Handle
5275         mismatching number of dimensions properly.
5276
5277 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5278
5279         PR target/44707
5280         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
5281         (lo_sum (high ...) ...) patterns generated by earlier passes.
5282
5283 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5284
5285         * doc/install.texi (Prerequisites): Document Perl requirement on
5286         Solaris 2.
5287         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
5288
5289 2010-07-02  Richard Guenther  <rguenther@suse.de>
5290
5291         PR middle-end/44777
5292         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
5293
5294 2010-07-02  Jan Hubicka  <jh@suse.cz>
5295
5296         PR middle-end/44706
5297         * predict.c (predict_paths_for_bb): Handle case when control dependence
5298         BB has only abnormal edges.
5299
5300 2010-07-02  Richard Guenther  <rguenther@suse.de>
5301
5302         PR tree-optimization/44748
5303         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
5304         the embedded conversion in MEM_REFs.
5305
5306 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
5307
5308         * reload.c: Include toplev.h.
5309         * recog.c:  Likewise.
5310         * Makefile.in: Adjust dependencies.
5311
5312 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
5313
5314         PR debug/44694
5315         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
5316         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
5317
5318 2010-07-01  Richard Guenther  <rguenther@suse.de>
5319
5320         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
5321         types for offsets.
5322
5323 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
5324
5325         PR target/44732
5326         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
5327         Fix argument types.
5328
5329 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
5330
5331         PR target/44727
5332         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
5333         Make sure operand 0 dies.
5334
5335 2010-07-01  Richard Guenther  <rguenther@suse.de>
5336
5337         PR middle-end/42834
5338         PR middle-end/44468
5339         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
5340         * doc/generic.texi (References to storage): Document MEM_REF.
5341         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
5342         (print_call_name): Likewise.
5343         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
5344         (build_simple_mem_ref_loc): New function.
5345         (mem_ref_offset): Likewise.
5346         * tree.h (build_simple_mem_ref_loc): Declare.
5347         (build_simple_mem_ref): Define.
5348         (mem_ref_offset): Declare.
5349         * fold-const.c: Include tree-flow.h.
5350         (operand_equal_p): Handle MEM_REF.
5351         (build_fold_addr_expr_with_type_loc): Likewise.
5352         (fold_comparison): Likewise.
5353         (fold_unary_loc): Fold
5354         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
5355         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
5356         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
5357         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
5358         (ptr_deref_may_alias_ref_p_1): Likewise.
5359         (ao_ref_base_alias_set): Properly differentiate base object for
5360         offset and TBAA.
5361         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
5362         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
5363         (indirect_refs_may_alias_p): Likewise.
5364         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
5365         chasing code.
5366         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
5367         (call_may_clobber_ref_p_1): Likewise.
5368         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
5369         * expr.c (expand_assignment): Handle MEM_REF.
5370         (store_expr): Handle MEM_REFs from STRING_CSTs.
5371         (store_field): If expanding a MEM_REF of a non-addressable
5372         decl use bitfield operations.
5373         (get_inner_reference): Handle MEM_REF.
5374         (expand_expr_addr_expr_1): Likewise.
5375         (expand_expr_real_1): Likewise.
5376         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
5377         * alias.c (ao_ref_from_mem): Handle MEM_REF.
5378         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
5379         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
5380         (dr_analyze_indices): Likewise.
5381         (dr_analyze_alias): Likewise.
5382         (object_address_invariant_in_loop_p): Likewise.
5383         * gimplify.c (mark_addressable): Handle MEM_REF.
5384         (gimplify_cond_expr): Build MEM_REFs.
5385         (gimplify_modify_expr_to_memcpy): Likewise.
5386         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
5387         (gimple_fold_indirect_ref): Adjust.
5388         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
5389         * tree.def (MEM_REF): New tree code.
5390         * tree-dfa.c: Include toplev.h.
5391         (get_ref_base_and_extent): Handle MEM_REF.
5392         (get_addr_base_and_unit_offset): New function.
5393         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
5394         * gimple-fold.c (may_propagate_address_into_dereference): Handle
5395         MEM_REF.
5396         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
5397         accesses if the array has just one dimension.  Remove always true
5398         parameter.  Do not require type compatibility here.
5399         (maybe_fold_offset_to_component_ref): Remove.
5400         (maybe_fold_stmt_indirect): Remove.
5401         (maybe_fold_reference): Remove INDIRECT_REF handling.
5402         Fold back to non-MEM_REF.
5403         (maybe_fold_offset_to_address): Simplify.  Deal with type
5404         mismatches here.
5405         (maybe_fold_reference): Likewise.
5406         (maybe_fold_stmt_addition): Likewise.  Also handle
5407         &ARRAY + I in addition to &ARRAY[0] + I.
5408         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
5409         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
5410         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
5411         * tree-ssa.c (useless_type_conversion_p): Make most pointer
5412         conversions useless.
5413         (warn_uninitialized_var): Handle MEM_REF.
5414         (maybe_rewrite_mem_ref_base): New function.
5415         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
5416         to SSA form.
5417         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
5418         INDIRECT_REF handling.
5419         (copy_tree_body_r): Handle MEM_REF.
5420         * gimple.c (is_gimple_addressable): Adjust.
5421         (is_gimple_address): Likewise.
5422         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
5423         invariant base are invariant.
5424         (is_gimple_min_lval): Adjust.
5425         (is_gimple_mem_ref_addr): New function.
5426         (get_base_address): Handle MEM_REF.
5427         (count_ptr_derefs): Likewise.
5428         (get_base_loadstore): Likewise.
5429         * gimple.h (is_gimple_mem_ref_addr): Declare.
5430         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
5431         * tree-cfg.c (verify_address): New function, split out from ...
5432         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
5433         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
5434         INDIRECT_REFs.
5435         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
5436         INDIRECT_REF.  Allow conversions.
5437         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
5438         a register does not change its size.
5439         (verify_types_in_gimple_reference): Verify MEM_REF.
5440         (verify_gimple_assign_single): Disallow INDIRECT_REF.
5441         Handle MEM_REF.
5442         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
5443         New.
5444         (mark_address_taken): Handle MEM_REF.
5445         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
5446         (get_asm_expr_operands): Pass opf_not_non_addressable.
5447         (get_expr_operands): Handle opf_[not_]non_addressable.
5448         Handle MEM_REF.  Remove INDIRECT_REF handling.
5449         * tree-vrp.c (check_array_ref): Handle MEM_REF.
5450         (search_for_addr_array): Likewise.
5451         (check_array_bounds): Likewise.
5452         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
5453         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
5454         (ref_always_accessed_p): Likewise.
5455         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
5456         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
5457         Handle MEM_REF.
5458         * cgraphbuild.c (mark_load): Properly check for NULL result
5459         from get_base_address.
5460         (mark_store): Likewise.
5461         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
5462         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
5463         handling for MEM_REF.
5464         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
5465         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
5466         * builtins.c (stabilize_va_list_loc): Use the function ABI
5467         valist type if we couldn't canonicalize the argument type.
5468         Always dereference with the canonical va-list type.
5469         (maybe_emit_free_warning): Handle MEM_REF.
5470         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
5471         memmove to memcpy.
5472         * builtins.c (fold_builtin_memory_op): Use ref-all types
5473         for all memcpy foldings.
5474         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
5475         (build_outer_var_ref): Likewise.
5476         (scan_omp_1_op): Likewise.
5477         (lower_rec_input_clauses): Likewise.
5478         (lower_lastprivate_clauses): Likewise.
5479         (lower_reduction_clauses): Likewise.
5480         (lower_copyprivate_clauses): Likewise.
5481         (expand_omp_atomic_pipeline): Likewise.
5482         (expand_omp_atomic_mutex): Likewise.
5483         (create_task_copyfn): Likewise.
5484         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
5485         Remove old union trick.  Initialize constant offsets.
5486         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
5487         INDIRECT_REF.  Init base_alias_set properly.
5488         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
5489         (vn_reference_fold_indirect): Adjust for MEM_REFs.
5490         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
5491         for ARRAY_REFs.
5492         (may_insert): Remove.
5493         (visit_reference_op_load): Do not test may_insert.
5494         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
5495         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
5496         a field to store the constant offset this op applies.
5497         (run_scc_vn): Adjust prototype.
5498         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
5499         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
5500         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
5501         bother about volatile qualifiers on pointers.
5502         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
5503         * tree-ssa-loop-ivopts.c
5504         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
5505         (strip_offset_1): Likewise.
5506         (find_interesting_uses_address): Replace INDIRECT_REF handling with
5507         MEM_REF handling.
5508         (get_computation_cost_at): Likewise.
5509         * ipa-pure-const.c (check_op): Handle MEM_REF.
5510         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
5511         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
5512         and constants.
5513         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
5514         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
5515         (eliminate_local_variables_1): Likewise.
5516         (create_call_for_reduction_1): Likewise.
5517         (create_loads_for_reductions): Likewise.
5518         (create_loads_and_stores_for_name): Likewise.
5519         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
5520         (ssa_accessed_in_tree): Handle MEM_REF.
5521         (ssa_accessed_in_assign_rhs): Likewise.
5522         (update_type_size): Likewise.
5523         (analyze_accesses_for_call_stmt): Likewise.
5524         (analyze_accesses_for_assign_stmt): Likewise.
5525         (transform_access_sites): Likewise.
5526         (transform_allocation_sites): Likewise.
5527         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
5528         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
5529         not handle INDIRECT_REF.
5530         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
5531         (cond_store_replacement): Likewise.
5532         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
5533         MEM_REF, no not handle INDIRECT_REFs.
5534         (insert_into_preds_of_block): Properly initialize avail.
5535         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
5536         for ARRAY_REFs.  Properly handle reference lookups that
5537         require a bit re-interpretation.
5538         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
5539         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
5540         (build_ref_for_offset_1): Remove.
5541         (build_ref_for_offset): Build MEM_REFs.
5542         (gate_intra_sra): Disable for now.
5543         (sra_ipa_modify_expr): Handle MEM_REF.
5544         (ipa_early_sra_gate): Disable for now.
5545         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
5546         MEM_REF handling.
5547         (disqualify_base_of_expr): Likewise.
5548         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
5549         MEM_REF handling.
5550         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
5551         Use mem_ref_offset.  Remove bogus folding.
5552         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
5553         (make_fancy_name_1): Add support for MEM_REF.
5554         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
5555         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
5556         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
5557         (compute_complex_ancestor_jump_func): Likewise.
5558         (ipa_analyze_virtual_call_uses): Likewise.
5559         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
5560         INDIRECT_REF folding with more generalized MEM_REF folding.
5561         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
5562         (forward_propagate_addr_into_variable_array_index): Also handle
5563         &ARRAY + I in addition to &ARRAY[0] + I.
5564         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
5565         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
5566         creates assignments with overlap.
5567         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
5568         (get_frame_field): Likewise.
5569         (get_nonlocal_debug_decl): Likewise.
5570         (convert_nonlocal_reference_op): Likewise.
5571         (struct nesting_info): Add mem_refs pointer-set.
5572         (create_nesting_tree): Allocate it.
5573         (convert_local_reference_op): Insert to be folded mem-refs.
5574         (fold_mem_refs): New function.
5575         (finalize_nesting_tree_1): Perform defered folding of mem-refs
5576         (free_nesting_tree): Free the pointer-set.
5577         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
5578         (vectorizable_load): Likewise.
5579         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
5580         (propagate_with_phi): Likewise.
5581         * tree-object-size.c (addr_object_size): Handle MEM_REFs
5582         instead of INDIRECT_REFs.
5583         (compute_object_offset): Handle MEM_REF.
5584         (plus_stmt_object_size): Handle MEM_REF.
5585         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
5586         for &MEM_REF.
5587         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
5588         (symbol_marked_for_renaming): Likewise.
5589         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
5590         (fold-const.o): Add $(TREE_FLOW_H).
5591         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
5592         (find_func_clobbers): Likewise.
5593         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
5594         (decompose_access): Likewise.
5595         (replace_field_acc): Likewise.
5596         (replace_field_access_stmt): Likewise.
5597         (insert_new_var_in_stmt): Likewise.
5598         (get_stmt_accesses): Likewise.
5599         (reorg_structs_drive): Disable.
5600         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
5601         (ix86_canonical_va_list_type): Likewise.
5602
5603 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
5604
5605         PR other/44566
5606         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
5607         * target.def (struct gcc_target): Replace enum reg_class with
5608         reg_class_t in hook argument / return types.
5609         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
5610         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
5611         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
5612         * targhooks.h (default_branch_target_register_class): Likewise.
5613         (default_ira_cover_classes, default_secondary_reload): Likewise.
5614         (default_memory_move_cost, default_register_move_cost): Likewise.
5615         * targhooks.c (default_branch_target_register_class): Likewise.
5616         (default_ira_cover_classes, default_secondary_reload): Likewise.
5617         (default_memory_move_cost, default_register_move_cost): Likewise.
5618         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
5619         * bt-load.c (branch_target_load_optimize): Likewise.
5620         * ira.c (setup_cover_and_important_classes): Likewise.
5621         * ira-costs.c (copy_cost): Likewise.
5622         * reload1.c (emit_input_reload_insns): Likewise.
5623         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
5624         * config/frv/frv.c (frv_secondary_reload): Likewise.
5625         * config/s390/s390.c (s390_secondary_reload): Likewise.
5626         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
5627         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
5628         (ix86_register_move_cost): Likewise.
5629         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
5630         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
5631         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
5632         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
5633         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
5634         (rs6000_ira_cover_classes): Likewise.
5635         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
5636         * config/picochip/picochip-protos.h (picochip_secondary_reload):
5637         Likewise.
5638         * config/pa/pa.c (pa_secondary_reload): Likewise.
5639         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
5640         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
5641         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
5642         * doc/tm.texi: Regenerate.
5643
5644 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
5645
5646         PR bootstrrap/44726
5647         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
5648         use.
5649         (build_alias_set_optimal_p): Likewise.
5650         (build_base_obj_set_for_drs): Likewise.
5651
5652 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
5653
5654         * target.def: Remove comment about licensing problems of function
5655         declarations.
5656
5657         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
5658         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
5659         * doc/tm.texi: Regenerate.
5660
5661         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
5662         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
5663
5664         * target.def (enum_va_list_p): Use DEFHOOK.
5665         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
5666         Rename ptype to ptree.
5667         * doc/tm.texi: Regenerate.
5668
5669         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
5670         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
5671         * doc/tm.texi: Regenerate.
5672
5673         * target.def (memory_move_cost): Use DEFHOOK.
5674         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
5675         Rename regclass AKA class to rclass.
5676         * doc/tm.texi: Regenerate.
5677
5678         * target.def (pragma_parse): Use DEFHOOK.
5679         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
5680         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
5681         * doc/tm.texi: Regenerate.
5682
5683         * target.def (pass_by_reference): Use DEFHOOK.
5684         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
5685         * doc/tm.texi: Regenerate.
5686
5687         * target.def (resolve_overloaded_builtin): Rename params to arglist.
5688         Use DEFHOOK.
5689         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
5690         * doc/tm.texi: Regenerate.
5691
5692         * target.def (return_pops_args): Use DEFHOOK.
5693         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
5694         Rename stack-size to size.
5695         * doc/tm.texi: Regenerate.
5696
5697         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
5698         last-sched_cycle to last_clock, cur_cycle to clock.
5699         * doc/tm.texi.in: Use @hook.
5700         * doc/tm.texi: Regenerate.
5701
5702         * target.def (print_operand, print_operand_address): Update comment.
5703         (print_operand_punct_valid_p): Likewise.
5704
5705 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5706
5707         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
5708         to rtl.h.
5709         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
5710         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
5711         * rtl-error.h: New.
5712         * regrename.c: Do not include toplev.h. Include rtl-error.h.
5713         * rtl-error.c: Likewise.
5714         * reload.c: Likewise.
5715         * recog.c:  Likewise.
5716         * sel-sched.c: Likewise.
5717         * function.c: Likewise.
5718         * reg-stack.c: Likewise.
5719         * cfgrtl.c: Likewise.
5720         * reload1.c: Likewise.
5721         * final.c: Include rtl-error.
5722         * Makefile.in: Adjust dependencies.
5723
5724 2010-06-30  Jan Hubicka  <jh@suse.cz>
5725
5726         PR middle-end/PR44706
5727         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
5728         to return the value.
5729
5730 2010-06-30  Michael Matz  <matz@suse.de>
5731
5732         PR bootstrap/44699
5733         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
5734         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
5735         a gimple reg, attach the original VDEF to the last store in the
5736         sequence.
5737
5738 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
5739
5740         PR other/44034
5741         * config/darwin.c (darwin_override_options): Use renamed
5742         targetm.asm_out.emit_unwind_label.
5743
5744 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
5745
5746         PR tree-optimization/39799
5747         * tree-inline.c (remap_ssa_name): Initialize variable only if
5748         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
5749
5750 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
5751
5752         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
5753
5754 2010-06-30  Richard Guenther  <rguenther@suse.de>
5755
5756         PR target/44722
5757         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
5758         against oscillation with reverse peephole2.
5759
5760 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
5761
5762         PR target/44721
5763         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
5764         Fix last commit.
5765
5766 2010-06-30  Nick Clifton  <nickc@redhat.com>
5767
5768         * config/rx/rx-modes.def: New file.
5769         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
5770         (CC_REGNUM): Define.
5771         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
5772         register.
5773         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
5774         (SELECT_CC_MODE): Define.
5775         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
5776         (reg:CC CC_REG) instead of (cc0).
5777         (attr "cc"): Delete.
5778         (cbranchsi4): Do not split compare and branch here. Instead move
5779         it to...
5780         (cbranchsi4_<code>): ... here.  New patterns.
5781         (cmpsi): Call rx-compare_redundant to find out if it is necessary
5782         to emit the compare instruction.
5783         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
5784         cc_status flags.
5785         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
5786         FIRST_PSEUDO_REGNUM.
5787         (rx_expand_prologue, rx_expand_epilogue): Likewise.
5788         (rx_notice_update_cc): Delete.
5789         (rx_cc_modes_compatible): New function.
5790         (flags_needed_for_conditional): New function.
5791         (flags_from_mode): New function.
5792         (rx_compare_redundant): New function - scans backwards through
5793         insn list to find out if condition flags are already set correctly.
5794         (TARGET_CC_MODES_COMPATIBLE): Define.
5795         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
5796
5797         * config/rx/rx.h (BRANCH_COST): Define.
5798         (REGISTER_MOVE_COST): Define.
5799         * config/rx/predicates (rx_source_operand): Allow all constant types.
5800         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
5801         (tstsi4): New pattern.
5802         * config/rx/rx.c (rx_memory_move_cost): Define.
5803         (TARGET_MEMORY_MOVE_COST): Define.
5804
5805 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5806
5807         * tree.h (block_may_fallthru): Declare here.
5808         * tree-flow.h (block_may_fallthru): Do not declare here.
5809         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
5810         bitmap.h
5811         * Makefile.in (c-typeck.o): Update dependencies.
5812
5813 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
5814
5815         PR debug/44694
5816         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
5817         * cselib.c (cfa_base_preserved_regno): New static variable.
5818         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
5819         of REGNO (cfa_base_preserved_val->locs->loc).
5820         (cselib_preserve_cfa_base_value): Add regno argument, set
5821         cfa_base_preserved_regno to it.
5822         (cselib_invalidate_regno): Allow removal of registers other than
5823         cfa_base_preserved_regno from cfa_base_preserved_val.
5824         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
5825         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
5826         of MEM addresses, if not on LHS.
5827         (reverse_op): Don't add reverse ops for cfa_base_rtx.
5828         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
5829
5830 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
5831
5832         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
5833         static variables.
5834         (peep2_buf_position): New static function.
5835         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
5836         peephole2_optimize): Use it.
5837         (peep2_attempt, peep2_update_life): New static functions, broken out
5838         of peephole2_optimize.
5839         (peep2_fill_buffer): New static function.
5840         (peephole2_optimize): Change the main loop to try to fill the buffer
5841         with the maximum number of insns before matching them against
5842         peepholes.  Use a forward scan.  Remove special case for targets with
5843         conditional execution.
5844         * genrecog.c (change_state): Delete dead code.
5845         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
5846         Rewrite so as not to expect the second insn to have had a peephole
5847         applied yet.
5848
5849 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
5850
5851         * genhooks.c (emit_findices): Cast field precision to int.
5852         (emit_documentation): Likewise.
5853
5854 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
5855
5856         PR tree-optimization/43801
5857         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
5858         if old_decl was DECL_ONE_ONLY.
5859
5860         PR debug/44668
5861         * dwarf2out.c (add_accessibility_attribute): New function.
5862         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
5863         instead of adding DW_AT_accessibility manually.
5864         (gen_enumeration_type_die, gen_struct_or_union_type_die,
5865         gen_typedef_die): Use it.
5866
5867 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
5868
5869         * vmsdbgout.c (full_name): Just output the file name if not native.
5870
5871 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
5872
5873         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
5874         (funcnam_table): New static table.
5875         (funcnum_table): New static table.
5876         (write_rtnbeg): Write value saved in funcnum_table.
5877         (write_rtnend): Write value saved in funcnum_table.
5878         (vmsdbgout_begin_function): Save current function info in
5879         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
5880         (vmsdbgout_finish): Iterate over funcnum_table.
5881
5882 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
5883
5884         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
5885         (vmsdbgout_type_decl): Declare
5886         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
5887         (FUNC_EPILOGUE_LABEL): New macro
5888         (vmsdbgout_begin_epilogue): New function.
5889         (vmsdbgout_type_decl): New function.
5890
5891 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
5892
5893         * vmsdbg.h: Update copyright.
5894
5895 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
5896
5897         * vmsdbg.h (DST_K_TBG): New DST constant.
5898         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
5899         (write_modbeg): Cast module_language to avoid warning.
5900         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
5901
5902 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
5903
5904         PR other/44034
5905         * target.def, doc/tm.texi.in, genhooks.c: New files.
5906         * target.h: Instead of defining individual hook members,
5907         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
5908         include target.def.
5909         * target-def.h: Instead of defining individual hook initializers,
5910         include target-hooks-def.h.
5911         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
5912         targetm.live_on_entry -> targetm.extra_live_on_entry
5913         targetm.sched.md_finish ->targetm.sched.finish
5914         targetm.sched.md_init -> targetm.sched.init
5915         targetm.sched.md_init_global -> targetm.sched.init_global
5916         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
5917         targetm.asm_out.except_table_label ->
5918           targetm.asm_out.emit_except_table_label
5919         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
5920         targetm.target_help -> targetm.help
5921         targetm.vectorize.builtin_support_vector_misalignment ->
5922           targetm.vectorize.support_vector_misalignment
5923         targetm.file_start_app_off -> targetm.asm_file_start_app_off
5924         targetm.file_start_file_directive ->
5925          targetm.asm_file_start_file_directive
5926         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
5927         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
5928         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
5929         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
5930           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
5931         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
5932           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
5933         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
5934         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
5935         * Makefile.in (TARGET_H): Depend on target.def.
5936         (TARGET_DEF_H): Depend on target-hooks-def.h.
5937         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
5938         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
5939         * doc/tm.texi: Regenerate.
5940
5941         * Makefile.in (s-tm-texi): Remove stray tab / rule.
5942
5943         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
5944         (targetm.sched.init): Likewise.
5945
5946 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
5947
5948         PR bootstrap/44713
5949         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
5950         (function_arg_advance_32): Const-ify TYPE parameter.
5951         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
5952         (ix86_function_arg_advance): Change type of NAMED to bool.
5953         (function_arg_32): Const-ify CUM and TYPE parameters.
5954         (function_arg_64): Likewise.  Change type of NAMED to bool.
5955         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
5956         to bool.
5957         (ix86_function_arg): Change type of NAMED to bool.
5958         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
5959         last argument as a bool.
5960
5961 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
5962
5963         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
5964         (OVERRIDE_OPTIONS): Add note of obsolescence.
5965         Replace references with references to TARGET_OPTION_OVERRIDE.
5966         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
5967          the macro).
5968         * targhooks.c (default_target_option_override): New function.
5969         * targhooks.h (default_target_option_override): Declare.
5970         * target.h (struct gcc_target): Add override member to
5971         target_option member.
5972         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
5973         targetm.target_option.override call.
5974         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
5975         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
5976
5977 2010-06-29  Jan Hubicka  <jh@suse.cz>
5978
5979         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
5980
5981 2010-06-29  Jan Hubicka  <jh@suse.cz>
5982
5983         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
5984         unreachable.
5985         (rebuild_frequencies): New function.
5986         * predict.h (rebuild_frequencies): Declare.
5987         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
5988         entry block and edge reaching new_entry.
5989         (tree_function_versioning): When doing partial cloning, rebuild
5990         frequencies when done.
5991         * passes.c (execute_function_todo): Use rebild_frequencies.
5992
5993 2010-06-29  Richard Guenther  <rguenther@suse.de>
5994
5995         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
5996         * tree-flow.h (enum noalias_state): Remove.
5997         (struct var_ann_d): Remove noalias_state member.
5998
5999 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
6000
6001         PR target/43902
6002         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
6003         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
6004         (maddhidi4): Likewise.
6005
6006         Revert parts of the change for PR25130.
6007         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
6008         MEM_ALIAS_SET.
6009
6010 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
6011
6012         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
6013         targetm.calls.function_incoming_arg, and
6014         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
6015         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
6016         * target.h (struct gcc_target): Add function_arg_advance,
6017         function_arg, and function_incoming_arg fields.
6018         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
6019         (TARGET_FUNCTION_INCOMING_ARG): Define.
6020         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
6021         and TARGET_FUNCTION_INCOMING_ARG.
6022         * targhooks.h (default_function_arg_advance): Declare.
6023         (default_function_arg, default_function_incoming_arg): Declare.
6024         * targhooks.c (default_function_arg_advance): New function.
6025         (default_function_arg, default_function_incoming_arg): New function.
6026         * config/i386/i386.c (function_arg_advance): Rename to...
6027         (ix86_function_arg_advance): ...this.  Make static.
6028         (function_arg): Rename to...
6029         (ix86_function_arg): ...this.  Make static.
6030         (TARGET_FUNCTION_ARG_ADVANCE): Define.
6031         (TARGET_FUNCTION_ARG): Define.
6032         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
6033         (FUNCTION_ARG): Delete.
6034         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
6035         (function_arg): Delete prototype.
6036
6037 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
6038
6039         * reginfo.c (init_reg_sets_1): Adjust comments.
6040         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
6041         * calls.c (prepare_call_address): Likewise.
6042         (emit_call_1): Use targetm.calls.return_pops_args.
6043         (expand_call): Likewise.
6044         * function.c (assign_parms): Likewise.
6045         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
6046         * target.h (struct gcc_target) [struct calls]: Add
6047         return_pops_args field.
6048         * targhooks.h (default_return_pops_args): Declare.
6049         * targhooks.c (default_return_pops_args): Define.
6050         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
6051         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
6052         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
6053         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
6054         documentation.
6055         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
6056         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
6057         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
6058         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
6059         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
6060         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
6061         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
6062         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
6063         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
6064         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
6065         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
6066         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
6067         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
6068         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
6069         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
6070         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
6071         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
6072         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
6073         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
6074         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
6075         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
6076         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
6077         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
6078         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
6079         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
6080         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
6081         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
6082         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
6083         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
6084         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
6085         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
6086         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
6087         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
6088         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
6089         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
6090         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
6091         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
6092         * config/i386/i386.c (ix86_return_pops_args): Make static.
6093         Constify arguments.
6094         (TARGET_RETURN_POPS_ARGS): Define.
6095         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
6096         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
6097         (TARGET_RETURN_POPS_ARGS): Define.
6098         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
6099         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
6100         (TARGET_RETURN_POPS_ARGS): Define.
6101
6102 2010-06-29  Richard Guenther  <rguenther@suse.de>
6103
6104         PR middle-end/44667
6105         * tree-inline.c (initialize_inlined_parameters): Make sure
6106         to remap the inlined parameter variable substitutions types.
6107
6108 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6109
6110         PR rtl-optimization/44659
6111         * combine.c (make_compound_operation) <SUBREG>: Do not return the
6112         result of force_to_mode if it partially re-expanded the compound.
6113
6114 2010-06-28  Jan Hubicka  <jh@suse.cz>
6115
6116         PR middle-end/44671
6117         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
6118         RESULT_DECL.
6119
6120 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
6121
6122         * double-int.h (force_fit_type_double): Remove declaration.
6123         * double-int.c (force_fit_type_double): Move to tree.c.
6124         * tree.h (force_fit_type_double): Declare.
6125         * tree.h (force_fit_type_double): Moved from double-int.c. Use
6126         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
6127         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
6128         * convert.c (convert_to_pointer): Adjust call to
6129         force_fit_type_double.
6130         * tree-vrp.c (extract_range_from_assert,
6131         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
6132         * fold-const.c: Update comment.
6133         (int_const_binop, fold_convert_const_int_from_int,
6134         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
6135         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
6136         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
6137         round_up_loc): Adjust call to force_fit_type_double.
6138
6139 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6140
6141         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
6142
6143 2010-06-28  Martin Jambor  <mjambor@suse.cz>
6144
6145         * tree-sra.c (convert_callers): New parameter, change fndecls of
6146         recursive calls.
6147         (modify_function): Pass the old decl to convert_callers.
6148
6149 2010-06-28  Martin Jambor  <mjambor@suse.cz>
6150
6151         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
6152         ipa_check_create_node_params and ipa_initialize_node_params with
6153         checking asserts they are not necessary.
6154
6155 2010-06-28  Jan Hubicka  <jh@suse.cz>
6156
6157         PR tree-optimization/44687
6158         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
6159
6160 2010-06-28  Martin Jambor  <mjambor@suse.cz>
6161
6162         PR c++/44535
6163         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
6164         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
6165         instead of BINFO_BASE_BINFO.
6166
6167 2010-06-28  Michael Matz  <matz@suse.de>
6168
6169         PR middle-end/44592
6170         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
6171         proper VDEF chain for intermediate stores in the sequence.
6172
6173 2010-06-28  Jan Hubicka  <jh@suse.cz>
6174
6175         PR tree-optimization/44357
6176         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
6177         uninlinable functions.
6178
6179 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
6180
6181         * config.gcc (powerpc*-*-*): Handle titan.
6182         * config/rs6000/rs6000.c (titan_cost): New costs.
6183         (rs6000_override_options): Add "titan" to processor_target_table.
6184         Add Titan to branch alignment logic.
6185         Correctly set rs6000_cost for titan.
6186         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
6187         * config/rs6000/titan.md: New file.
6188         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
6189
6190 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
6191
6192         * tree-browser.c (TB_history_stack): Convert to a VEC.
6193         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
6194         (TB_history_prev): Likewise.
6195
6196 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
6197
6198         * vec.h (vec_heap_free): Add parentheses around free.
6199
6200 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
6201
6202         * system.h: Poison GCC_EXCEPT_H for front-end files.
6203
6204         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
6205         langhook.
6206         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
6207         Define to NULL by default.
6208         * except.h: Define GCC_EXCEPT_H.
6209         (doing_eh): Remove prototype.
6210         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
6211         (lang_protect_cleanup_actions): Remove.
6212         * except.c (lang_protect_cleanup_actions): Remove.
6213         (doing_eh): Remove.
6214         (gen_eh_region): Don't check doing_eh here.
6215         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
6216         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
6217         instead of lang_protect_cleanup_actions.
6218         * omp-low.c (maybe_catch_exception): Likewise.
6219         * Makefile.in: Update dependencies.
6220
6221 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
6222
6223         * cgraph.h (struct varpool_node): new used_from_object_file flag.
6224         (struct cgraph_local_info): new used_from_object_file flag.
6225         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
6226         (cgraph_clone_node): initialize used_from_object_file.
6227         (cgraph_create_virtual_clone): initialize used_from_object_file.
6228         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
6229         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
6230         when compiling with -fwhole-program.
6231         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
6232         internal resolver.
6233         * ipa.c (function_and_variable_visibility): Set externally_visible
6234         flag of varpool_node if used_from_object_file flag is set.
6235         (cgraph_externally_visible_p): check used_from_object_file flag.
6236         * doc/invoke.texi (-fwhole-program option): Change description of
6237         externally_visible attribute accordingly.
6238         * doc/extend.texi (externally_visible): Ditto.
6239
6240 2010-06-27  Jan Hubicka  <jh@suse.cz>
6241
6242         * params.def (max-inline-insns-auto): Default to 40.
6243         * doc/invoke.texi (max-inline-insns-auto): Document the change.
6244
6245 2010-06-27  Jan Hubicka  <jh@suse.cz>
6246
6247         PR middle-end/44671
6248         PR middle-end/44686
6249         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
6250         signature change.
6251         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
6252         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
6253
6254 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
6255
6256         * target.h (struct gcc_target): Add register_move_cost field.
6257         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
6258         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
6259         * targhooks.c (default_register_move_cost): New function.
6260         * targhooks.h (default_register_move_cost): Declare function.
6261         * defaults.h (REGISTER_MOVE_COST): Delete.
6262         * ira-int.h (ira_register_move_cost): Update comment.
6263         * ira.c (ira_register_move_cost): Update comment.
6264         * reload.h (register_move_cost): Declare.
6265         * reginfo.c (register_move_cost): New function.
6266         (move_cost): Update comment.
6267         (init_move_cost, memory_move_secondary_cost): Replace
6268         REGISTER_MOVE_COST with register_move_cost.
6269         * postreload.c (reload_cse_simplify_set): (Ditto.).
6270         * reload.c (find_valid_class, find_reloads): (Ditto.).
6271         * reload1.c (choose_reload_regs): (Ditto.).
6272         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
6273         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
6274         * doc/md.texi (can_create_pseudo_p): Update documentation.
6275
6276         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
6277         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
6278         * config/i386/i386.h (ix86_memory_move_cost): Make static.
6279         (TARGET_MEMORY_MOVE_COST): Define.
6280
6281         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
6282         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
6283         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
6284         (TARGET_MEMORY_MOVE_COST): Define.
6285
6286 2010-06-27  Richard Guenther  <rguenther@suse.de>
6287
6288         PR tree-optimization/44683
6289         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
6290         false edge from the inverted condition.
6291
6292 2010-06-27  Richard Guenther  <rguenther@suse.de>
6293
6294         PR middle-end/44684
6295         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
6296         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
6297         for register LHS.  Or non-store assignments.
6298
6299 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
6300
6301         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
6302         (sparc_emit_set_const64): Likewise.  Remove disabled code.
6303         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
6304         (sparc_emit_set_const64): Likewise.
6305
6306 2010-06-26  Catherine Moore  <clm@codesourcery.com>
6307
6308         * config/mips/mips.md (alu_type): New attribute.
6309         (type): Infer type from alu_type.
6310         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
6311         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
6312         *subsi3_extended, negsi2, negdi2, *low<mode>,
6313         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
6314         xor<mode>3, *nor<mode>3,
6315         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
6316         *zero_extendhi_truncqi):  Set alu_type instead of type.
6317
6318 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
6319
6320         * config/alpha/alpha.c (alpha_need_linkage): Adjust
6321         splay_tree_new_ggc call.
6322         (alpha_use_linkage): Likewise.
6323
6324 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
6325
6326         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
6327         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
6328         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
6329         (static_specs): Remove switches_need_spaces.
6330         (process_command, do_self_spec): Hardcode handling "-o" instead of
6331         checking switches_need_spaces.
6332         * system.h (SWITCHES_NEED_SPACES): Poison.
6333
6334 2010-06-26  Richard Guenther  <rguenther@suse.de>
6335
6336         PR tree-optimization/44393
6337         * tree-loop-distribution.c (generate_loops_for_partition): Fix
6338         stmt removal and VOP renaming.
6339         (generate_memset_zero): Remove redundant stmt updating.
6340         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
6341         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
6342
6343 2010-06-26  Jan Hubicka  <jh@suse.cz>
6344
6345         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
6346         edges comming from header are equivalent.
6347         (visit_bb): Handle PHIs correctly.
6348         * tree-inline.c (copy_phis_for_bb): Be able to copy
6349         PHI from entry edge.
6350         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
6351
6352 2010-06-26  Richard Guenther  <rguenther@suse.de>
6353
6354         PR middle-end/44674
6355         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
6356         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
6357
6358 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
6359
6360         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
6361         add_infile, alloc_switch): New.
6362         (process_command): Remove variable lang_n_infiles.  Process
6363         options in a single pass.  Use new functions for allocating
6364         infiles and switches arrays.  Properly skip operands of
6365         -Xpreprocessor and -Xassembler.
6366
6367 2010-06-26  Jan Hubicka  <jh@suse.cz>
6368
6369         PR middle-end/44671
6370         * cgraphunit.c (cgraph_function_versioning): Remove wrong
6371         cgraph_make_decl_local call; fix typo copying RTL data.
6372
6373 2010-06-25  DJ Delorie  <dj@redhat.com>
6374
6375         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
6376         (m32c_output_aligned_common): Likewise.
6377         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
6378         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
6379         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
6380         (m32c_register_pragmas): Register it.
6381         * config/m32c/m32c.c (m32c_get_pragma_address): New.
6382         (m32c_insert_attributes): Set #pragma address decls volatile.
6383         (pragma_entry_eq): New.
6384         (pragma_entry_hash): New.
6385         (m32c_note_pragma_address): New.
6386         (m32c_get_pragma_address): New.
6387         (m32c_output_aligned_common): New.
6388         * doc/extend.texi: Document the new pragma.
6389
6390         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
6391         also.
6392         * config/m32c/predicates.md (m32c_any_operand): Check the code
6393         instead of memory_operand so as to allow matching volatile MEMs.
6394         (m32c_nonimmediate_operand): Likewise.
6395         (mra_operand): Allow volatiles.
6396
6397 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
6398
6399         PR debug/44610
6400         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
6401         address if the offset is unknown.
6402
6403 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
6404
6405         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
6406         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
6407         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
6408         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
6409         to ia64_start_function. Invoke it.
6410         * config/ia64/ia64.c (ia64_start_function): Call new function
6411         dwarf2out_vms_debug_main_pointer.
6412
6413 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
6414
6415         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
6416         statements computing the true predicate.
6417
6418 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
6419
6420         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
6421         to boolean_true_node.
6422         (reset_bb_predicate): New.
6423         (predicate_bbs): Call reset_bb_predicate.
6424
6425 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
6426
6427         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
6428         (tree_if_conversion): Returns true when something has been changed.
6429         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
6430         changed something.
6431
6432 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
6433
6434         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
6435         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
6436         * tree-if-conv.c: Include dbgcnt.h.
6437         (tree_if_conversion): Use if_conversion_tree to count the number of
6438         if-convertible loops.
6439
6440 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
6441
6442         * common.opt (fprefetch-loop-arrays): Re-define
6443         -fprefetch-loop-arrays as a tri-state option with the initial
6444         value of -1.
6445         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
6446         pass only when flag_prefetch_loop_arrays > 0.
6447         * toplev.c (process_options): Note that, with tri-states,
6448         flag_prefetch_loop_arrays>0 means prefetching is enabled.
6449         * config/i386/i386.c (override_options): Enable prefetching at -O3
6450         for a set of CPUs that sw prefetching is helpful.
6451         (software_prefetching_beneficial_p): New.  Return TRUE if software
6452         prefetching is beneficial for the given CPU.
6453
6454 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
6455
6456         PR rtl-optimization/44326
6457         * implicit-zee.c (find_removable_zero_extends): Replace
6458         INSN_P with NONDEBUG_INSN_P.
6459
6460 2010-06-25  Martin Jambor  <mjambor@suse.cz>
6461
6462         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
6463         (struct ipa_node_params): Removed the modification_analysis_done flag.
6464         (ipa_is_param_modified): Removed.
6465         (ipa_analyze_node): Declare.
6466         (ipa_compute_jump_functions): Remove declaration.
6467         (ipa_count_arguments): Likewise.
6468         (ipa_detect_param_modifications): Likewise.
6469         (ipa_analyze_params_uses): Likewise.
6470         * ipa-prop.c (struct param_analysis_info): New type.
6471         (visit_store_addr_for_mod_analysis): Removed.
6472         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
6473         moved down in the file.
6474         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
6475         (ipa_count_arguments): Made static.
6476         (mark_modified): New function.
6477         (is_parm_modified_before_call): New function.
6478         (compute_pass_through_member_ptrs): New parameter parms_info, call
6479         is_parm_modified_before_call instead of ipa_is_param_modified.
6480         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
6481         it to compute_pass_through_member_ptrs.
6482         (ipa_compute_jump_functions): New parameter parms_info, pass it to
6483         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
6484         on the callee if it is analyzed.  Made static.
6485         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
6486         is_parm_modified_before_call instead of ipa_is_param_modified.
6487         (ipa_analyze_call_uses): New parameter parms_info, pass it to
6488         ipa_analyze_indirect_call_uses.
6489         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
6490         ipa_analyze_call_uses.
6491         (ipa_analyze_params_uses): New parameter parms_info, pass it to
6492         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
6493         (ipa_analyze_node): New function.
6494         (ipa_print_node_params): Do not dump the modified flag.
6495         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
6496         it.  Do not stream the modified parameter flag.
6497         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
6498         it.  Do not stream the modified parameter flag.
6499         * ipa-cp.c (ipcp_analyze_node): Removed.
6500         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
6501         with only a call to ipa_analyze_node.
6502         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
6503         node with only a call to ipa_analyze_node.
6504
6505 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6506
6507         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
6508
6509 2010-06-25  Jan Hubicka  <jh@suse.cz>
6510
6511         * tree-pass.h (pass_split_functions): Declare.
6512         * opts.c (decode_options): Enable function splitting at -O2
6513         * timevar.def (TV_IPA_FNSPLIT): New macro.
6514         * ipa-split.c: New file.
6515         * common.opt (-fpartial-inlining): New flag.
6516         * Makefile.in (ipa-split.o): New object file.
6517         * passes.c (init_optimization_passes): Add ipa-split.
6518         * params.def (partial-inlining-entry-probability): New parameters.
6519         * doc/invoke.texi (-fpartial-inlining): New.
6520
6521 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6522
6523         PR 44665
6524         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
6525         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
6526         (gimplify_expr): Likewise.
6527
6528 2010-06-25  Martin Jambor  <mjambor@suse.cz>
6529
6530         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
6531         statements instead of bailing out on them.
6532         (ipa_analyze_indirect_call_uses): Do not require that loads from the
6533         parameter are in the same BB as the condition.  Update comments.
6534
6535 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
6536
6537         PR middle-end/43866
6538         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
6539         true or always false, return NULL_TREE.
6540         (tree_unswitch_single_loop): Optimize conditions even when reaching
6541         max-unswitch-level parameter.  If num > 0, optimize first all conditions
6542         using entry checks, then do still reachable block discovery and consider
6543         only conditions in still reachable basic blocks in the loop.
6544
6545         PR tree-optimization/44539
6546         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
6547         the call doesn't have LHS, but has VDEF.
6548
6549 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
6550
6551         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
6552         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
6553         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
6554         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
6555         * system.h (MODIFY_TARGET_NAME): Poison.
6556
6557 2010-06-25  Alan Modra  <amodra@gmail.com>
6558
6559         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
6560         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
6561         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6562         CMODEL_LARGE as default.
6563         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
6564         (offsettable_ok_by_alignment): Delete.
6565         (rs6000_emit_move): Remove mcmodel=medium optimization.
6566
6567 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
6568
6569         With large parts from Jim Wilson:
6570         PR target/43902
6571         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
6572         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
6573         * optabs.c (optab_for_tree_code): Likewise.
6574         (expand_widen_pattern_expr): Likewise.
6575         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
6576         out of execute_optimize_widening_mul.
6577         (convert_plusminus_to_widen): New function.
6578         (execute_optimize_widening_mul): Use the two new functions.
6579         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
6580         Remove code to generate widening multiply-accumulate.  Add support
6581         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
6582         * gimple-pretty-print.c (dump_ternary_rhs): New function.
6583         (dump_gimple_assign): Call it when appropriate.
6584         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
6585         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
6586         (expand_gimple_stmt_1): Likewise.
6587         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
6588         WIDEN_MULT_MINUS_EXPR.
6589         * tree-ssa-operands.c (get_expr_operands): Likewise.
6590         * tree-inline.c (estimate_operator_cost): Likewise.
6591         * gimple.c (extract_ops_from_tree_1): Renamed from
6592         extract_ops_from_tree.  Add new arg for a third operand; fill it.
6593         (gimple_build_assign_stat): Support operations with three operands.
6594         (gimple_build_assign_with_ops_stat): Likewise.
6595         (gimple_assign_set_rhs_from_tree): Likewise.
6596         (gimple_assign_set_rhs_with_ops_1): Renamed from
6597         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
6598         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
6599         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
6600         WIDEN_MULT_MINUS_EXPR.
6601         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
6602         (extract_ops_from_tree_1): Adjust declaration.
6603         (gimple_assign_set_rhs_with_ops_1): Likewise.
6604         (gimple_build_assign_with_ops): Pass NULL for last operand.
6605         (gimple_build_assign_with_ops3): New macro.
6606         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
6607         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
6608         functions.
6609         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
6610         (verify_gimple_assign): Call it.
6611         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
6612         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
6613         functions for dealing with three-operand statements.
6614         * tree.c (commutative_ternary_tree_code): New function.
6615         * tree.h (commutative_ternary_tree_code): Declare it.
6616         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
6617         ternary statements.
6618         (gimple_assign_nonzero_warnv_p): Likewise.
6619         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
6620         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
6621         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
6622         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
6623         (struct hashtable_expr): New member ternary in the union.
6624         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
6625         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
6626         (iterative_hash_hashable_expr): Likewise.
6627         (print_expr_hash_elt): Handle EXPR_TERNARY.
6628         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
6629         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
6630         statements.  Handle GIMPLE_TERNARY_RHS.
6631
6632 2010-06-25  Jan Hubicka  <jh@suse.cz>
6633
6634         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
6635
6636 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
6637
6638         PR c/44517
6639         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
6640         parameters are not good.
6641         (c_parser_parameter_declaration): Error unknown type name if the type
6642         name can't start declaration specifiers.
6643
6644 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
6645
6646         * gcc.c (translate_options): Don't mention +e in comment.
6647         (process_command): Don't handle +e specially.
6648
6649 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
6650
6651         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
6652
6653         * ira-build.c (merge_hard_reg_conflicts): New function.
6654         (create_cap_allocno, copy_info_to_removed_store_destinations,
6655         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
6656         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
6657         (remove_unnecessary_allocnos, remove_low_level_allocnos)
6658         copy_nifo_to_removed_store_destination): Use them.
6659         * ira-lives.c (make_hard_regno_born): New function, split out of
6660         make_regno_born.
6661         (make_allocno_born): Likewise.
6662         (make_hard_regno_dead): New function, split out of make_regno_dead.
6663         (make_allocno_dead): Likewise.
6664         (inc_register_pressure): New function, split out of set_allocno_live.
6665         (dec_register_pressure): New function, split out of clear_allocno_live.
6666         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
6667         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
6668         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
6669         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
6670         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
6671         mark_pseudo_regno_live.
6672         (process_bb_node_lives): Use mark_pseudo_regno_live,
6673         make_hard_regno_born and make_allocno_dead.
6674         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
6675         set_allocno_live, clear_allocno_live): Delete functions.
6676
6677         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
6678         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
6679         functions.
6680         (ira_flattening): Use ira_parent_allocno.
6681         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
6682         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
6683
6684         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
6685         statement.
6686
6687         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
6688         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
6689         minmax_set_iter_cond, minmax_set_iter_next,
6690         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
6691         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
6692         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
6693         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
6694         uses changed.
6695
6696         * ira-int.h (struct live_range, live_range_t): Renamed from struct
6697         ira_allocno_live_range and allocno_live_range_t; all uses changed.
6698         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
6699         All uses changed.
6700
6701 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
6702
6703         * thumb2.md (thumb2_tlobits_cbranch): Delete.
6704         (peephole2 to convert zero_extract/compare of single bit to
6705          lshift/compare): New.
6706
6707 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
6708
6709         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
6710         recursive call and call to 'int_const_binop'.
6711         (build_range_check, fold_cond_expr_with_comparison, unextend,
6712         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
6713         multiple_of_p): Adjust call to const_binop.
6714
6715 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
6716
6717         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
6718         determine size of XFmode operand.
6719         (XFmode extended DFmode push splitter): Ditto.
6720         (XFmode extended SFmode push splitter): Ditto.
6721
6722 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
6723
6724         PR target/44588
6725         * config/i386/i386.md (extract_code): New.
6726         (<u>divmodqi4): Likewise.
6727         (divmodhiqi3): Likewise.
6728         (udivmodhiqi3): Likewise.
6729         (<u>divqi3): Remvoved.
6730
6731 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
6732
6733         PR middle-end/44492
6734         * recog.h (struct recog_data): Add is_asm field.
6735         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
6736         present in constraints of inline-asm operand and memory operand
6737         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
6738         (extract_insn): Initialize recog_data.is_asm.
6739         * doc/md.texi (Constraints): Document operand side-effect rules.
6740
6741 2010-06-24  Andi Kleen  <ak@linux.intel.com>
6742
6743         * c-parser.c (c_parser_conditional_expression): Call
6744         warn_for_omitted_condop.
6745         * doc/invoke.texi: Document omitted condop warning.
6746
6747 2010-06-24  Nick Clifton<nickc@redhat.com>
6748
6749         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
6750         insn in the sequence is a jump insn before setting its label.
6751
6752 2010-06-24  Alan Modra  <amodra@gmail.com>
6753
6754         * collect2.c (main): Match exactly --version and --help.
6755
6756 2010-06-24  DJ Delorie  <dj@redhat.com>
6757
6758         * config/m32c/m32c-pragma.c: Don't include rtl.h.
6759
6760 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
6761
6762         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
6763         using X87MODEF mode iterator.
6764         (pushsf splitter): Macroize splitter using P mode iterator.
6765         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
6766         mode iterator.
6767
6768         (*movxf_internal): Rename from *movxf_integer.
6769         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
6770         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
6771         (*movdf_internal): Rename from *movdf_integer.
6772         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
6773         (*movsf_internal): Rename from *movdf_1.
6774
6775 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
6776
6777         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
6778         (const_gimple_seq_node): Removed typedefs.
6779
6780         * gimple.h (gimple_seq_node_d, gimple_seq_node)
6781         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
6782
6783 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
6784
6785         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
6786         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
6787         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
6788         and CODE_FOR_vec_extract_lo_v4df.
6789
6790         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
6791         Changed to define_insn_and_split.
6792         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
6793         (vec_extract_lo_v16hi): Likewise.
6794         (vec_extract_lo_v32qi): Likewise.
6795         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
6796         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
6797
6798 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
6799
6800         PR target/44640
6801         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
6802         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
6803         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
6804         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
6805         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
6806
6807         PR target/44640
6808         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
6809
6810         PR other/44644
6811         * df-core.c (struct df): Rename to df_d.
6812         * df.h (struct df): Likewise.
6813         * dse.h (struct df): Remove forward declaration.
6814         * recog.h (struct insn_data): Rename to:
6815         (struct_insn_data_d).  Adjusted all users.
6816
6817 2010-06-23  Arnaud Charlet  <charlet@adacore.com
6818
6819         PR ada/22220
6820         * doc/install.texi: Update requirements to build GNAT.
6821
6822 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
6823
6824         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
6825         enum type.
6826         (m68k_sched_attr_opx_type): Remove unreachable return.
6827         (m68k_sched_attr_opy_type): Likewise.
6828         (m68k_sched_attr_size): Likewise.
6829         (sched_get_opxy_mem_type): Likewise.
6830         (m68k_sched_attr_op_mem): Likewise.
6831
6832 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
6833
6834         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
6835         new statement and adjust VDEF only if necessary.  Remove superfluous
6836         call to maybe_clean_or_replace_eh_stmt.
6837         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
6838         copy the flags.
6839         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
6840         * tree-inline.c (copy_bb): ...and not there.
6841
6842 2010-06-22  Cary Coutant  <ccoutant@google.com>
6843
6844         * dwarf2out.c (is_nested_in_subprogram): New function.
6845         (should_move_die_to_comdat): Use it.
6846         (copy_ancestor_tree): Don't mark DIEs here.
6847         (copy_decls_walk): Start walk from root of newly-added tree;
6848         mark DIEs here instead.
6849
6850 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
6851
6852         * config/i386/i386.md (unit): Also check sseishft1.
6853
6854 2010-06-22  Jan Hubicka  <jh@suse.cz>
6855
6856         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
6857         enabled.
6858
6859 2010-06-22  Jan Hubicka  <jh@suse.cz>
6860
6861         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
6862         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
6863         Return true if something changed.
6864         * df.h (df_confluence_function_n): Return bool.
6865         * df-core.c (df_worklist_propagate_forward,
6866         df_worklist_propagate_backward): Track changes and ages.
6867         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
6868         track ages.
6869         * dse.c (dse_confluence_n): Return always true.
6870
6871 2010-06-22  Jan Hubicka  <jh@suse.cz>
6872
6873         * bitmap.c (bitmap_clear_bit): Micro optimize.
6874
6875 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
6876
6877         * config/i386/i386.md (SWI1248x): New mode iterator.
6878         (SWI48x): Ditto.
6879         (SWI12): Ditto.
6880         (SWI24): Ditto.
6881
6882         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
6883         SWI1248x mode iterator.
6884         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
6885         using SWI124 mode iterator.
6886         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
6887         mode iterator.
6888         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
6889         *pushdi2_prologue_rex64 using P mode iterator.
6890         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
6891         using SWI48 mode iterator.
6892         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
6893         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
6894         using SWI1248x mode iterator.
6895         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
6896         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
6897         SWI48 mode iterator.
6898         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
6899         iterator.
6900         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
6901         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
6902         SWI12 mode iterator.
6903         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
6904         SWI12 mode iterator.
6905         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
6906         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
6907         SWI24 mode iterator.
6908         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
6909         SWI48 mode iterator.
6910         (mov<mode>_insn_1): New expander.
6911         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
6912         using SWI48x mode iterator.
6913
6914         (*movoi_internal_avx): Rename from *movoi_internal.
6915         (*movti_internal_rex64): Rename from *movti_rex64.
6916         (*movti_internal_sse): Rename from *movti_sse.
6917         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
6918         (*movdi_internal): Rename from *movdi_2.
6919         (*movsi_internal): Rename from *movsi_1.
6920         (*movhi_internal): Rename from *movhi_1.
6921         (*movqi_internal): Rename from *movqi_1.
6922
6923         (insv): Update the call to gen_movsi_insv_1 for rename.
6924         * config/i386/i386.c (promote_duplicated_reg): Ditto.
6925
6926 2010-06-22  Jan Hubicka  <jh@suse.cz>
6927
6928         * passes.c (execute_function_todo): Move call of statistics_fini_pass
6929         to ...
6930         (execute_todo) ... this one.
6931
6932 2010-06-22  Alan Modra  <amodra@gmail.com>
6933
6934         PR target/44364
6935         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6936         * caller-save.c (insert_restore, insert_save): Use non-validate
6937         form of adjust_address.
6938
6939 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6940
6941         PR target/39690
6942         * config/pa/pa.c (override_options): Disable
6943         -freorder-blocks-and-partition.
6944
6945 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
6946
6947         PR target/44615
6948         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
6949
6950         * config/i386/i386.md (type): Add sseishft1
6951
6952         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
6953         (ppro_insn_load): Likewise.
6954         (ppro_insn_store): Likewise.
6955         (ppro_insn_both): Likewise.
6956
6957         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
6958         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
6959         for type.
6960         (*vec_extractv2di_1_avx): Likewise.
6961         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
6962         type.  Remove atom_unit.
6963         (*vec_extractv2di_1_sse2): Likewise.
6964
6965 2010-06-21  DJ Delorie  <dj@redhat.com>
6966
6967         * diagnostic.h (diagnostic_classification_change_t): New.
6968         (diagnostic_context): Add history and push/pop list.
6969         (diagnostic_push_diagnostics): Declare.
6970         (diagnostic_pop_diagnostics): Declare.
6971         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
6972         from pragmas in a history chain instead of the global table.
6973         (diagnostic_push_diagnostics): New.
6974         (diagnostic_pop_diagnostics): New.
6975         (diagnostic_report_diagnostic): Scan history chain to find state
6976         of diagnostics as of the diagnostic location.
6977         * opts.c (set_option): Pass UNKNOWN_LOCATION to
6978         diagnostic_classify_diagnostic.
6979         (enable_warning_as_error): Likewise.
6980         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
6981         use in the history chain.
6982         * doc/extend.texi: Document pragma GCC diagnostic changes.
6983
6984 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
6985
6986         * dwarf2out.c (add_linkage_name): New function.  Don't add
6987         anything to DW_TAG_member DIEs.
6988         (add_name_and_src_coords_attributes): Use it.
6989         (gen_variable_die): Call it for C++ static data members if
6990         specification is DW_TAG_member.
6991
6992         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
6993         C++ char16_t and char32_t.
6994
6995         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
6996         * genattrtab.c: Include vecprim.h.
6997         (cached_attrs, cached_attr_count, attrs_seen_once,
6998         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
6999         attrs_cached_after): New variables.
7000         (find_attrs_to_cache): New function.
7001         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
7002         (write_test_expr): Add attrs_cached argument, return it too,
7003         attempt to cache non-const attributes used more than once in
7004         a single case handling.
7005         (write_attr_get): Use find_attrs_to_cache, for caching candidates
7006         emit cached_* variables.  Adjust write_attr_set callers.
7007         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
7008         to find attributes that should be cached in this block.  Adjust
7009         write_test_expr callers.
7010         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
7011         callers.
7012         (make_automaton_attrs): Adjust write_test_expr caller.
7013
7014         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
7015         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
7016         (make_automaton_attrs): If find_tune_attr returns non-NULL,
7017         write separate internal_dfa_insn_code_* and insn_default_latency_*
7018         functions for each attribute's value and emit init_sched_attrs
7019         function and function pointers.
7020         * genattr.c (const_attrs, reservations): New variables.
7021         (gen_attr): Add const attributes to const_attrs vector.
7022         (check_tune_attr, find_tune_attr): New functions.
7023         (main): Add reservations to reservations vector.  If find_tune_attr
7024         returns true, add prototype for init_sched_attrs and make
7025         internal_dfa_insn_code and insn_default_latency function pointers,
7026         otherwise define init_sched_attrs as dummy macro.
7027         * cfgexpand.c: Include insn-attr.h.
7028         (gimple_expand_cfg): Call init_sched_attrs.
7029
7030         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
7031
7032         PR target/44575
7033         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
7034         va_arg from a set of register save slots into a temporary,
7035         if the container is bigger than type size, do the copying
7036         using smaller mode or using memcpy.
7037
7038         PR bootstrap/44426
7039         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
7040         prototype.
7041         (sel_print_to_dot): Remove macro.
7042         (sel_print): Likewise.  New prototype.
7043         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
7044         (sel_print): New function.
7045
7046 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7047
7048         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
7049         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
7050
7051 2010-06-21  Nick Clifton  <nickc@redhat.com>
7052
7053         * config/rx/rx.h (PTRDIFF_TYPE): Define.
7054         (SMALL_REGISTER_CLASS): Define (to zero).
7055         (PRINT_OPERAND): Delete.
7056         (PRINT_OPERAND_ADDRESS): Delete.
7057         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
7058         (rx_print_operand_address): Delete prototype.
7059         * config/rx/rx.c (rx_print_operand): Make static.
7060         Allow %H and %L to handle CONST_DOUBLEs.
7061         (rx_print_operand_address): Make static.
7062         (rx_gen_move_template): Rename local variable 'template' to
7063         out_template.
7064         (rx_function_arg): Do not pass unknown sized objects in registers.
7065         (TARGET_PRINT_OPERAND): Define.
7066         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7067
7068 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
7069
7070         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
7071
7072 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
7073
7074         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
7075         stack-alignment for simple leaf-functions.
7076
7077 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
7078
7079         * doc/install.texi: Document bootstrap-lto.
7080
7081 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
7082
7083         PR debug/44248
7084         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
7085         (input_function): Drop them here, if VTA is disabled.
7086
7087 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
7088
7089         PR target/44546
7090         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
7091         New predicate.
7092         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
7093         ix86_swapped_fp_comparsion_operator instead of
7094         ix86_fp_comparison_operator.
7095
7096         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
7097         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
7098         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
7099         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
7100         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
7101         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
7102
7103 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
7104
7105         PR other/32998
7106         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
7107         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
7108         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
7109         (decode_cmdline_option): Update for this return value.  Set
7110         orig_option_with_args_text field.  Set arg field for unknown
7111         options.  Make static.
7112         (decode_cmdline_options_to_array): New.
7113         (prune_options): Update handling of find_opt return value.
7114         * opts.c (read_cmdline_option): Take decoded option.  Return void.
7115         (read_cmdline_options): Take decoded options.
7116         (decode_options): Add parameters for decoded options.  Use
7117         decode_cmdline_options_to_array.  Use decoded options for -O
7118         scan.  Use integral_argument for -O parameters.  Update call to
7119         read_cmdline_options.
7120         (enable_warning_as_error): Update handling of find_opt return value.
7121         * opts.h: Update comment on unknown options.
7122         (struct cl_decoded_option): Update comments on opt_index and arg.
7123         Add orig_option_with_args_text.
7124         (decode_cmdline_option): Remove.
7125         (decode_cmdline_options_to_array): Declare.
7126         (decode_options): Update prototype.
7127         * toplev.c (save_argv): Remove.
7128         (save_decoded_options, save_decoded_options_count): New.
7129         (read_integral_parameter): Remove.
7130         (print_switch_values): Use decoded options.
7131         (toplev_main): Don't set save_argv.  Update call to decode_options.
7132         * toplev.h (read_integral_parameter): Remove.
7133         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
7134
7135 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
7136
7137         PR target/44072
7138         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
7139         immediate.
7140         * constraints.md (Pw, Px): New constraints.
7141         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
7142
7143 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
7144
7145         * config/i386/sse.md (fma4modesuffixf4): Removed.
7146         (ssemodesuffixf2s): Likewise.
7147         (ssemodesuffixf4): Likewise.
7148         (ssemodesuffixf2c): Likewise.
7149         (ssescalarmodesuffix2s): Likewise.
7150         (avxmodesuffixf2c): Likewise.
7151         (ssemodesuffix): New.
7152         (ssescalarmodesuffix): Likewise.
7153         Update patterns with ssemodesuffix and ssescalarmodesuffix.
7154
7155 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
7156
7157         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
7158
7159 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
7160
7161         * stor-layout.c (debug_rli): Remove unused local variables.
7162
7163 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
7164
7165         PR rtl-optimization/40900
7166         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
7167         original expression for later reuse.
7168         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
7169         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
7170
7171 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
7172
7173         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
7174         double_int_fits_in_uhwi_p): Implement as static inline.
7175         (double_int_xor): New inline function.
7176         (double_int_lrotate, double_int_rrotate, double_int_max,
7177         double_int_umax, double_int_smax, double_int_min, double_int_umin,
7178         double_int_smin): Declare.
7179         (lrotate_double, rrotate_double): Remove declaration.
7180         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
7181         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
7182         (double_int_lrotate, double_int_rrotate, double_int_max,
7183         double_int_umax, double_int_smax, double_int_min, double_int_umin,
7184         double_int_smin): New function.
7185         * fold-const.c (int_const_binop): Clean up, use double_int_*
7186         functions.
7187         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
7188         double_int_* and immed_double_int_const functions.
7189
7190 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
7191
7192         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
7193         * function.c (types_used_by_cur_var_decl): Likewise.
7194         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
7195
7196 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
7197
7198         * tree.h (record_layout_info): Change type of pending_statics field
7199         to a VEC.
7200         * stor-layout.c (start_record_layout): Store NULL into
7201         pending_statics.
7202         (debug_rli): Call debug_vec_tree instead of debug_tree.
7203         (place_field): Likewise.
7204         (finish_record_layout): Likewise.
7205
7206 2010-06-18  Alan Modra  <amodra@gmail.com>
7207
7208         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
7209
7210 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7211
7212         PR target/43740
7213         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
7214         for SET source operand from SET destination operand.
7215
7216 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
7217
7218         PR rtl-optimization/39871
7219         * reload1.c (init_eliminable_invariants): For flag_pic, disable
7220         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
7221         (function_invariant_p): Rule out a plus of frame or arg pointer with
7222         a SYMBOL_REF.
7223         * ira.c (find_reg_equiv_invariant_const): Likewise.
7224
7225 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
7226
7227         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
7228         print_operand_address and puts to output the operand for CONST.
7229
7230 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
7231
7232         PR debug/44572
7233         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
7234         hook.
7235
7236 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7237
7238         * v850-protos.h (print_operand): Delete.
7239         (print_operand_address): Delete.
7240         * v850.h (PRINT_OPERAND): Delete.
7241         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7242         (PRINT_OPERAND_ADDRESS): Delete.
7243         * v850.c (print_operand_address): Rename to...
7244         (v850_print_operand_address): ...this.  Make static. Call
7245         v850_print_operand.
7246         (print_operand): Rename to...
7247         (v850_print_operand): ...this.  Make static.  Call
7248         v850_print_operand_address.
7249         (v850_print_operand_punct_valid_p): New function.
7250         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7251         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7252
7253 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7254
7255         * config/sh/sh-protos.h (print_operand): Delete.
7256         (print_operand_address): Delete.
7257         * config/sh/sh.h (PRINT_OPERAND): Delete.
7258         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7259         (PRINT_OPERAND_ADDRESS): Delete.
7260         * config/sh/sh.c (sh_print_operand_address): Make static.
7261         (sh_print_operand): Make static.  Call sh_print_operand_address
7262         and sh_print_operand.
7263         (sh_print_operand_punct_valid_p): New function.
7264         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7265         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7266
7267 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7268
7269         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
7270         (mcore_print_operand_address): Delete.
7271         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
7272         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7273         (PRINT_OPERAND_ADDRESS): Delete.
7274         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
7275         (mcore_print_operand): Make static.
7276         (mcore_print_operand_punct_valid_p): New function.
7277         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
7278         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
7279
7280 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7281
7282         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
7283         (print_operand_address): Delete.
7284         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
7285         (PRINT_OPERAND_ADDRESS): Delete.
7286         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
7287         static.
7288         (m68hc11_print_operand): Make static.
7289         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
7290
7291 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7292
7293         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
7294         (m32r_print_operand_address): Delete.
7295         * config/m32r/m32r.h (m32r_punct_chars): Delete.
7296         (PRINT_OPERAND): Delete.
7297         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7298         (PRINT_OPERAND_ADDRESS): Delete.
7299         * config/m32r/m32r.c (m32r_punct_chars): Make static.
7300         (m32r_print_operand_address): Make static.
7301         (m32r_print_operand): Make static.
7302         (m32r_print_operand_punct_valid_p): New function.
7303         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7304         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7305
7306 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7307
7308         * config/iq2000/iq2000-protos.h (print_operand): Delete.
7309         (print_operand_address): Delete.
7310         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
7311         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7312         (PRINT_OPERAND_ADDRESS): Delete.
7313         (iq2000_print_operand_punct): Delete.
7314         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
7315         (iq2000_print_operand_address): Make static.
7316         (iq2000_print_operand): Make static.
7317         (iq2000_print_operand_punct_valid_p): New function.
7318         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7319         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7320
7321 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7322
7323         * config/frv/frv-protos.h (frv_print_operand): Delete.
7324         (frv_print_operand_address): Delete.
7325         * config/frv/frv.h (PRINT_OPERAND): Delete.
7326         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7327         (PRINT_OPERAND_ADDRESS): Delete.
7328         * config/frv/frv.c (frv_print_operand_address): Make static.
7329         (frv_print_operand): Make static.
7330         (frv_print_operand_punct_valid_p): New function.
7331         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7332         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7333
7334 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
7335
7336         * tree.h (vec_member): Declare.
7337         * tree.c (vec_member): Define.
7338
7339 2010-06-17  Richard Guenther  <rguenther@suse.de>
7340
7341         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
7342         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
7343
7344 2010-06-17  Richard Guenther  <rguenther@suse.de>
7345
7346         * tree-inline.c (declare_return_variable): Remove bogus code.
7347
7348 2010-06-17  Richard Guenther  <rguenther@suse.de>
7349
7350         * gimplify.c (gimplify_bind_expr): Always promote complex
7351         and vector variables to registers if possible.
7352
7353 2010-06-17  Richard Guenther  <rguenther@suse.de>
7354
7355         * expr.c (get_inner_reference): Use double_int for bit_offset
7356         calculation.
7357
7358 2010-06-16  DJ Delorie  <dj@redhat.com>
7359
7360         * common.opt (-fstrict-volatile-bitfields): new.
7361         * doc/invoke.texi: Document it.
7362         * fold-const.c (optimize_bit_field_compare): For volatile
7363         bitfields, use the field's type to determine the mode, not the
7364         field's size.
7365         * expr.c (expand_assignment): Likewise.
7366         (get_inner_reference): Likewise.
7367         (expand_expr_real_1): Likewise.
7368         * expmed.c (store_fixed_bit_field): Likewise.
7369         (extract_bit_field_1): Likewise.
7370         (extract_fixed_bit_field): Likewise.
7371
7372 2010-06-16  Richard Guenther  <rguenther@suse.de>
7373
7374         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
7375
7376 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
7377
7378         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
7379         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
7380         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
7381         * debug.c: Likewise.
7382         * sdbout.c: Likewise.
7383         * vmsdbgout.c: Likewise.
7384         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
7385         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
7386         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
7387         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
7388         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
7389         * dwarf2out.c (dw_fde_struct): New fields
7390         dw_fde_vms_{end,begin}_prologue.
7391         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
7392         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
7393         (dwarf2out_vms_end_prologue): New function.
7394         (dwarf2out_vms_begin_epilogue): New function.
7395         (dw_val_struct): New value dw_val_class_vms_delta.
7396         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
7397         begin_epilogue for VMS.
7398         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
7399         new static functions.
7400         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
7401         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
7402         static functions.
7403         (print_die): New case dw_val_class_vms_delta.
7404         (attr_checksum): Likewise.
7405         (same_dw_val_p: Likewise.
7406         (size_of_die): Likewise.
7407         (value_format): Likewise.
7408         (output_die): Likewise.
7409         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
7410         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
7411         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
7412         dwarf2out_cfi_begin_epilogue
7413         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
7414
7415 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
7416
7417         * config/cris/cris-protos.h (cris_print_operand): Delete.
7418         (cris_print_operand_address): Delete.
7419         * config/cris/cris.h (PRINT_OPERAND): Delete.
7420         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7421         (PRINT_OPERAND_ADDRESS): Delete.
7422         * config/cris/cris.c (cris_print_operand_address): Make static.
7423         (cris_print_operand): Make static.
7424         (cris_print_operand_punct_valid_p): New function.
7425         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7426         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7427
7428 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
7429
7430         * config/arm/arm-protos.h (arm_print_operand): Delete.
7431         (arm_print_operand_address): Delete.
7432         * config/arm/arm.h (PRINT_OPERAND): Delete.
7433         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
7434         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
7435         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
7436         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
7437         (arm_print_operand): Make static.
7438         (arm_print_operand_punct_valid_p): New function.
7439         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
7440         (TARGET_PRINT_OPERAND_ADDRESS): Define.
7441
7442 2010-06-16  Nick Clifton  <nickc@redhat.com>
7443
7444         * config/rx/constraints.md (NEGint4): New constraint.
7445         * config/rx/rx.md (attr cc): Add set_zsc.
7446         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
7447         initialised.
7448         (cmpsf): Likewise.
7449         (call_internal): Clobber the cc0 register.
7450         (call_value_internal): Likewise.
7451         (cstoresi4): Likewise.
7452         (movsieq): Likewise.
7453         (movsine): Likewise.
7454         (addsi3): Add alternative to handle small negative constants.
7455         (sunsi3): Likewise.
7456         (addsi3): Do not set the O bit in the cc0 register.
7457         (adddi3): Likewise.
7458         (subsi3): Likewise.
7459         (subdi3): Likewise.
7460         (andsi3): Reorder alternatives to prefer shorter forms.
7461         (mulsi3): Likewise.
7462         (iorsi3): Likewise.
7463         (negsi2): Note that the cc0 flags are set.
7464         (rotlsi3): Note that only the Z and S bits are set in cc0.
7465         (lshrsi3): Likewise.
7466         (ashlsi3): Likewise.
7467         (subsf3): Use %Q for the MEM operand.
7468         (fix_truncsfsi2): Likewise.
7469         (floatsisf2): Likewise.
7470         (bitset): Remove early clobber from destination.
7471         (bitset_in_memory): Likewise.
7472         (lrintsf2): Clobber the cc0 register.
7473         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
7474         (rx_print_operand): Handle %N.
7475
7476 2010-06-16  Jan Hubicka  <jh@suse.cz>
7477
7478         * df-core.c (df_compact_blocks): Free problem_temps vector.
7479
7480 2010-06-16  Martin Jambor  <mjambor@suse.cz>
7481
7482         PR tree-optimization/43905
7483         * tree-sra.c: Include tree-inline.h.
7484         (create_abstract_origin): Removed.
7485         (modify_function): Version the call graph node instead of creating
7486         abstract origins and dealing with same_body aliases.
7487         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
7488         function is versionable.
7489         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
7490
7491 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
7492
7493         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
7494         (CHOOSE_DYNAMIC_LINKER): Update.
7495
7496 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
7499         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
7500         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
7501         *prefetch_3dnow_rex.
7502
7503 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
7504
7505         * target.h (struct asm_out):Add declare_constant_name field.
7506         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
7507         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
7508         * output.h (default_asm_declare_constant_name): Declare.
7509         (assemble_label): Update prototype.
7510         * varasm.c (assemble_constant_contents): Use
7511         targetm.asm_out.declare_constant_name target hook.
7512         (assemble_label): Add 'file' argument.
7513         (default_asm_declare_constant_name): New function.
7514         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
7515         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
7516         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
7517
7518         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
7519         * config/darwin.c (darwin_asm_declare_constant_name): New function.
7520         (machopic_output_indirection): Update assemble_label argument list.
7521         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
7522         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
7523
7524 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
7525
7526         PR middle-end/44391
7527         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
7528         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
7529
7530 2010-06-15  Richard Guenther  <rguenther@suse.de>
7531
7532         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
7533
7534 2010-06-15  Paul Brook  <paul@codesourcery.com>
7535
7536         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
7537         hard-float ABI.
7538
7539 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
7540
7541         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
7542         don't get a vector type for output.
7543
7544 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
7545
7546         PR fortran/44536
7547         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
7548         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
7549         (LANG_HOOKS_DECLS): Add it.
7550         * gimplify.c (omp_notice_variable): Call
7551         lang_hooks.decls.omp_report_decl.
7552
7553 2010-06-15  Martin Jambor  <mjambor@suse.cz>
7554
7555         PR lto/44464
7556         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
7557         on the newly dead SSA name.
7558
7559 2010-06-15  Alan Modra  <amodra@gmail.com>
7560
7561         * doc/invoke.texi: Add mcmodel to powerpc options.
7562         * configure.ac: Add HAVE_LD_LARGE_TOC test.
7563         * configure: Regenerate.
7564         * config.in: Regenerate.
7565         * config/rs6000/linux64.opt (mcmodel): New.
7566         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
7567         (TARGET_CMODEL, SET_CMODEL): Define.
7568         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
7569         select CMODEL_MEDIUM default.
7570         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
7571         (TARGET_CMODEL): Define default.
7572         * config/rs6000/rs6000.c (cmodel): New variable.
7573         (rs6000_explicit_options): Add cmodel field.
7574         (rs6000_handle_option): Handle -mcmodel.
7575         (create_TOC_reference): Add largetoc_reg param.  Generate high,
7576         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
7577         (rs6000_delegitimize_address): Recognise new toc reference rtl
7578         and minimal-toc rtl.
7579         (rs6000_legitimize_reload_address): Handle new toc references.
7580         (print_operand_address): Handle legitimate_constant_pool_address_p
7581         match before lo_sum.
7582         (rs6000_eliminate_indexed_memrefs): Tidy.
7583         (rs6000_emit_move): Tweak threshold for inlining constants.
7584         Keep rs6000_emit_allocate_stack large stack frame offsets
7585         loaded into r0 inline.
7586         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
7587         (tocrel_base, tocrel_offset): New variables.
7588         (toc_relative_expr_p): Set them here.
7589         (print_operand_address): Skip over any offset on constant pool address.
7590         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
7591         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
7592         (offsettable_ok_by_alignment): New function.
7593         (rs6000_emit_move): Address suitably aligned local symbol_refs
7594         relative to the toc pointer for -mcmodel=medium.
7595         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
7596         strict param.  Allow lo_sum version of addressing.  Verify reg
7597         used for -mminimal-toc and -mcmodel != small.  Update all callers.
7598         * config/rs6000/constraints.md: Update for above change.
7599         * config/rs6000/predicates.md: Likewise.
7600         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
7601         code.
7602         (tls_gd): Split for -mcmodel=medium/large.
7603         (tls_gd_high, tls_gd_low): New.
7604         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
7605         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
7606         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
7607         (largetoc_high, largetoc_low): New.
7608         (cmptf_internal2): Add clobber.
7609         * config/rs6000/rs6000-protos.h: Update.
7610
7611 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
7612
7613         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
7614         true if no prefetch is going to be generated for a given group.
7615         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
7616         estimate the prefetch_count.
7617         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
7618         prefetch count by considering the unroll_factor and prefetch_mod
7619         for is_loop_prefetching_profitable.
7620
7621 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
7622
7623         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
7624         anything if the argument is not a MEM.
7625
7626 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
7627
7628         PR debug/43650
7629         PR debug/44181
7630         PR debug/44247
7631         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
7632         debug stmts.
7633         (canonicalize_loop_ivs): Likewise.
7634
7635 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
7636
7637         PR debug/43656
7638         * haifa-sched.c (setup_insn_reg_pressure_info,
7639         update_register_pressure): Reject debug insns.
7640         (ready_sort): Don't setup reg pressure for debug insns.
7641         (schedule_insn): Don't update reg pressure for debug insns.
7642
7643 2010-06-14  Richard Guenther  <rguenther@suse.de>
7644
7645         * lto-streamer.c (cached_bp): Remove.
7646         (bitpack_delete): Likewise.
7647         (bitpack_create): Likewise.
7648         (bp_get_next_word): Likewise.
7649         (bp_pack_value, bp_unpack_value): Move ...
7650         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
7651         Re-implement.
7652         (struct bitpack_d): Likewise.
7653         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
7654         New inline functions.
7655         * lto-streamer-out.c (lto_output_bitpack): Remove.
7656         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
7657         (pack_value_fields): Adjust.
7658         (lto_write_tree): Likewise.
7659         (output_gimple_stmt): Likewise.
7660         (output_function): Likewise.
7661         * lto-streamer-in.c (input_gimple_stmt): Adjust.
7662         (input_function): Likewise.
7663         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
7664         (lto_input_bitpack): Remove.
7665         (lto_materialize_tree): Adjust.
7666         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
7667         * lto-cgraph.c (lto_output_edge): Adjust.
7668         (lto_output_node): Likewise.
7669         (lto_output_varpool_node): Likewise.
7670         (lto_output_ref): Likewise.
7671         (input_node): Likewise.
7672         (input_varpool_node): Likewise.
7673         (input_ref): Likewise.
7674         (input_edge): Likewise.
7675         (output_node_opt_summary): Likewise.
7676         (input_node_opt_summary): Likewise.
7677         * ipa-pure-const.c (pure_const_write_summary): Likewise.
7678         (pure_const_read_summary): Likewise.
7679         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
7680         (ipa_read_indirect_edge_info): Likewise.
7681         (ipa_write_node_info): Likewise.
7682         (ipa_read_node_info): Likewise.
7683
7684 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
7685
7686         PR target/44534
7687         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
7688         (vec_extract_lo_v16hi): Likewise.
7689         (vec_extract_lo_v32qi): Likewise.
7690
7691 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
7692
7693         PR bootstrap/44426
7694         * tree.h (build_call_expr): Don't define as vararg macro, instead
7695         add a prototype.
7696         * builtins.c (build_call_nofold): Remove.
7697         (expand_builtin_int_roundingfn, expand_builtin_pow,
7698         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
7699         expand_builtin_memset_args, expand_builtin_strcmp,
7700         expand_builtin_strncmp, expand_builtin_memory_chk): Use
7701         build_call_nofold_loc instead of build_call_nofold.
7702         (build_call_expr): New function.
7703
7704         PR tree-optimization/44508
7705         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
7706         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
7707         don't eliminate trivially dead stmts.
7708         * tree-vrp.c (vrp_finalize): Pass false as last argument
7709         to substitute_and_fold.
7710         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
7711         to substitute_and_fold.
7712         * tree-ssa-ccp.c (ccp_finalize): Likewise.
7713
7714         PR bootstrap/44509
7715         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
7716
7717 2010-06-14  Ira Rosen  <irar@il.ibm.com>
7718
7719         PR tree-optimization/44507
7720         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
7721         to build initial vector for BIT_AND_EXPR.
7722         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
7723
7724 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
7725
7726         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
7727         adjust z10prop set_attr.
7728
7729 2010-06-13  Jan Hubicka  <jh@suse.cz>
7730
7731         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
7732         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
7733         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
7734         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
7735         datastructure checks into checking asserts.
7736         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
7737         * tree-ssa-sccvn.c (VN_INFO): Likewise.
7738         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
7739         df_ref_create_structure): Likewise.
7740         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
7741         pool_free): Use gcc_checking_assert.
7742         * alias.c (get_alias_set): Likewise.
7743         * var-tracking.c (variable_htab_free, shared_hash_copy,
7744         canonicalize_values_mark, variable_merge_over_cur): Likewise.
7745         * lto-streamer.c (bp_unpack_value): Likewise.
7746
7747 2010-06-13  Richard Guenther  <rguenther@suse.de>
7748
7749         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
7750         Do not stream but initialize TYPE_CANONICAL to NULL.
7751         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
7752         * gimple.c (gimple_types_compatible_p): Disregard
7753         TYPE_STRUCTURAL_EQUALITY_P.
7754         (gimple_register_type): Use TYPE_CANONICAL as cache.
7755         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
7756         before registering common types.
7757         * config/i386/i386.c (ix86_function_arg_boundary): Do not
7758         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
7759         * tree.h (TYPE_CANONICAL): Clarify documentation.
7760
7761 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
7762
7763         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
7764         LIBCALL_VALUE): Remove macros.
7765         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
7766         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7767         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7768         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
7769         (ia64_function_value): Make static. Handle receiving the function
7770         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
7771
7772 2010-06-12  Jan Hubicka  <jh@suse.cz>
7773
7774         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
7775         at correct place.
7776
7777 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
7778
7779         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
7780
7781 2010-06-12  Jan Hubicka  <jh@suse.cz>
7782
7783         * df-core.c (df_clear_bb_info): New function.
7784         (df_set_blocks): bb_info is always allocated.
7785         (df_get_bb_info): Use block_info_elt_size.
7786         (df_set_bb_info): Likewise.
7787         (df_compact_blocks): Update for new block_info.
7788         (grow_bb_info): New function.
7789         * df-problems.c (df_grow_bb_info): Move to df-core.c
7790         (df_rd_set_bb_info): Remove.
7791         (df_rd_free_bb_info): Do not free block pool.
7792         (df_rd_alloc): Do not create pool, use check for
7793         obstack presence instead of NULL pointer for new blocks.
7794         (df_rd_free): DO not free alloc pool; clear block_info.
7795         (problem_RD): Add size of block info structure.
7796         (df_lr_set_bb_info): Remove.
7797         (df_lr_free_bb_info): Do not free block pool.
7798         (df_lr_alloc): Do not create pool, use check for
7799         obstack presence instead of NULL pointer for new blocks.
7800         (df_lr_free): DO not free alloc pool; clear block_info.
7801         (problem_LR): Add size of block info structure.
7802         (df_live_set_bb_info): Remove.
7803         (df_live_free_bb_info): Do not free block pool.
7804         (df_live_alloc): Do not create pool, use check for
7805         obstack presence instead of NULL pointer for new blocks.
7806         (df_live_free): DO not free alloc pool; clear block_info.
7807         (problem_LIVE): Add size of block info structure.
7808         (problem_CHAIN): Add size of block info structure.
7809         (df_byte_lr_set_bb_info): Remove.
7810         (df_byte_lr_free_bb_info): Do not free block pool.
7811         (df_byte_lr_alloc): Do not create pool, use check for
7812         obstack presence instead of NULL pointer for new blocks.
7813         (df_byte_lr_free): DO not free alloc pool; clear block_info.
7814         (problem_BYTE_LR): Add size of block info structure.
7815         (problem_NOTE): Add size of block info structure.
7816         (df_byte_MD_set_bb_info): Remove.
7817         (df_byte_MD_free_bb_info): Do not free block pool.
7818         (df_byte_MD_alloc): Do not create pool, use check for
7819         obstack presence instead of NULL pointer for new blocks.
7820         (df_byte_MD_free): DO not free alloc pool; clear block_info.
7821         (problem_BD): Add size of block info structure.
7822         * df-scan.c (df_scan_free_internal): Free block pool.
7823         (df_scan_set_bb_info): Remove.
7824         (df_scan_free_bb_info): Check for artificial_defs instead
7825         of bb_info being non-NULL.
7826         (df_scan_alloc): DO not create df_scan_block pool.
7827         (problem_SCAN): Set size of block info.
7828         (df_bb_refs_record): Do not allocate bb_info.
7829         * df.h (df_problem): Add block_info_elt_size.
7830         (struct dataflow): Change block_info to void *.
7831         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
7832         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
7833         in-line structures.
7834
7835 2010-06-12  Jan Hubicka  <jh@suse.cz>
7836
7837         PR tree-optimize/44485
7838         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
7839         containing use of return value of noreturn function.
7840
7841 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
7842
7843         * targhooks.c (default_function_value): Don't use
7844         FUNCTION_OUTGOING_VALUE.
7845         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
7846         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
7847
7848 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
7849
7850         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
7851         Add crtfastmath.o to extra_parts.
7852         * config/mips/crtfastmath.c: New.
7853         * config/mips/linux.h (ENDFILE_SPEC): New.
7854
7855 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
7856
7857         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
7858         old_type in parameter.
7859         (gcc_type_for_value): Update call to gcc_type_for_interval.
7860         (compute_type_for_level_1): Renamed compute_type_for_level.
7861         Update call to gcc_type_for_interval.
7862
7863 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
7864
7865         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
7866         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
7867
7868 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
7869
7870         * opts-common.c: Include options.h.
7871         (integral_argument): Move from opts.c.
7872         (decode_cmdline_option): New.  Based on read_cmdline_option.
7873         * opts.c (integral_argument): Move to opts-common.c.
7874         (read_cmdline_option): Move most contents to
7875         decode_cmdline_option.  Use %qs in diagnostics.
7876         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
7877         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
7878         decode_cmdline_option): New.
7879
7880 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
7881
7882         PR target/44481
7883         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
7884         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
7885         (partiysi2_cmp): Ditto.
7886         (*partiyhi2_cmp): Ditto.
7887         (*parityqi2_cmp): Remove.
7888
7889 2010-06-11  Jan Hubicka  <jh@suse.cz>
7890
7891         * bitmap.h (bmp_iter_next_bit): New.
7892         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
7893
7894 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
7895             Eric Botcazou  <ebotcazou@adacore.com>
7896
7897         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
7898         computed cost.
7899
7900 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
7901
7902         * config/i386/i386.md (unspec): New define_c_enum.
7903         (unspecv): Ditto.
7904
7905 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
7906
7907         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
7908
7909 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
7910
7911         PR middle-end/44483
7912         * tree-if-conv.c (bb_predicate_s): New struct.
7913         (bb_predicate_p): New.
7914         (bb_has_predicate): New.
7915         (bb_predicate): New.
7916         (set_bb_predicate): New.
7917         (bb_predicate_gimplified_stmts): New.
7918         (set_bb_predicate_gimplified_stmts): New.
7919         (add_bb_predicate_gimplified_stmts): New.
7920         (init_bb_predicate): New.
7921         (free_bb_predicate): New.
7922         (is_predicated): Use bb_predicate.
7923         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
7924         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
7925         before processing their successors.
7926         (clean_predicate_lists): Removed.
7927         (find_phi_replacement_condition): Use bb_predicate.
7928         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
7929         computations.
7930         (insert_gimplified_predicates): New.
7931         (combine_blocks): Call insert_gimplified_predicates.
7932         (tree_if_conversion): Call free_bb_predicate instead of
7933         clean_predicate_lists.
7934
7935 2010-10-11  Paul Brook  <paul@codesourcery.com>
7936
7937         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
7938         * config/arm/arm.c (all_architectures): Change v7e-m default to
7939         cortexm4.
7940         * config/arm/arm-cores.def: Add cortex-m4.
7941         * config/arm/arm-tune.md: Regenerate.
7942
7943 2010-06-11  Jan Hubicka  <jh@suse.cz>
7944
7945         * ipa-pure-const.c (special_builtlin_state): New function.
7946         (check_call): Use it instead of special casign BUILT_IN_RETURN.
7947         (propagate_pure_const): Use it.
7948
7949 2010-06-11  Jan Hubicka  <jh@suse.cz>
7950
7951         * df-problems.c (df_live_scratch): Convert to bitmap_head.
7952         (df_live_alloc): Initialize df_live_scratch when initializing
7953         problem_data.
7954         (df_live_transfer_function): Update uses of df_live_scratch.
7955         (df_live_free): Free problem_data; clear df_live_scratch before
7956         releasing the obstack.
7957         (df_md_free): Free problem data.
7958
7959 2010-06-11  Jan Hubicka  <jh@suse.cz>
7960
7961         * doc/invoke.texi (Wsuggest-attribute): Document.
7962         (Wmissing-noreturn): Remove.
7963         * ipa-pure-const.c (warn_function_noreturn): New function.
7964         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
7965         warn_missing_noreturn.
7966         * common.opt (Wsuggest-attribute=noreturn): New.
7967         * tree-flow.h (warn_function_noreturn): Declare.
7968         * tree-cfg.c (execute_warn_function_noreturn): Use
7969         warn_function_noreturn.
7970         (gate_warn_function_noreturn): New.
7971         (pass_warn_function_noreturn): Update.
7972
7973 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7974
7975         * c-typeck.c (handle_warn_cast_qual): Add loc
7976         parameter. Improve warning message.
7977         (build_c_cast): Pass location to handle_warn_cast_qual.
7978
7979 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
7980
7981         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
7982         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
7983         insn mnemonic.
7984         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
7985
7986 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
7987
7988         Fix bootstap on mips
7989         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
7990         be naming typedefs.
7991
7992 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
7993
7994         * system.h (helper_const_non_const_cast): New inline for
7995         gcc version <= 4.0.
7996         (CONST_CAST2): For gcc version <= 4.0 use
7997         new helper to do const/non-const casting.
7998
7999 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8000
8001         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
8002         * Makefile.in (OBJS-common): Include insn-enums.o.
8003         (insn-enums.o): New rule.
8004         (simple_generated_c): Add insn-enums.c.
8005         (build/genenums.o): New rule.
8006         (genprogmd): Add "enums".
8007         * genconstants.c (print_enum_type): Declare a C string array
8008         for each enum.
8009         * genenums.c: New file.
8010         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
8011         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
8012         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
8013
8014 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8015
8016         * doc/md.texi (define_enum_attr): Document.
8017         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
8018         * read-md.h (lookup_enum_type): Declare.
8019         * read-md.c (lookup_enum_type): New function.
8020         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
8021         * genattrtab.c (attr_desc): Add an enum_name field.
8022         (evaluate_eq_attr): Take the associated attribute as argument.
8023         Get the enum prefix from the enum_name field, if defined.
8024         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
8025         (simplify_test_exp): Pass attr to evaluate_eq_attr.
8026         (add_attr_value): New function, split out from...
8027         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
8028         (write_test_expr): Pass attr to evaluate_eq_attr.
8029         (write_attr_get): Use the enum_name as the enum tag, if defined.
8030         (write_attr_valueq): Use the enum_name as a prefix, if defined.
8031         (find_attr): Initialize enum_name.
8032         (main): Handle DEFINE_ENUM_ATTR.
8033         * gensupport.c (process_rtx): Likewise.
8034         * config/mips/mips.h (mips_tune_attr): Delete.
8035         * config/mips/mips.md (cpu): Use define_attr_enum.
8036
8037 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8038
8039         * doc/md.texi (define_c_enum, define_enum): Document.
8040         * read-md.h (md_constant): Add a parent_enum field.
8041         (enum_value, enum_type): New structures.
8042         (upcase_string, traverse_enum_types): Declare.
8043         * read-md.c (enum_types): New variable.
8044         (upcase_string, add_constant): New functions.
8045         (handle_constants): Don't create the hash table here.
8046         Use add_constant.
8047         (traverse_md_constants): Don't check for a null md_constants.
8048         (decimal_string, handle_enum, traverse_enum_types): New functions.
8049         (read_md_files): Initialize md_constants and md_enums.
8050         * genconstants.c (print_md_constant): Ignore info argument.
8051         Only print constants that belong to no enum.
8052         (print_enum_type): New function.
8053         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
8054         for each defined enum type.
8055         * config/mips/mips.md (processor): New define_enum.
8056         (unspec): New define_c_enum.
8057         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
8058         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
8059         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
8060         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
8061         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
8062         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
8063         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
8064         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
8065         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
8066         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
8067         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
8068         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
8069         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
8070         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
8071         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
8072         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
8073         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
8074         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
8075         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
8076         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
8077         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
8078         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
8079         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
8080         (UNSPEC_RDDSP): Move to mips-dsp.md.
8081         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
8082         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
8083         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
8084         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
8085         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
8086         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
8087         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
8088         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
8089         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
8090         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
8091         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
8092         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
8093         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
8094         Moved to mips-dspr2.md.
8095         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
8096         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
8097         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
8098         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
8099         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
8100         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
8101         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
8102         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
8103         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
8104         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
8105         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
8106         UNSPEC_LOONGSON_PSADBH)
8107         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
8108         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
8109         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
8110         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8111         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8112         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8113         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
8114         (cpu): Update comment.
8115         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
8116         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
8117         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
8118         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
8119         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
8120         UNSPEC_LOONGSON_PCMPEQ)
8121         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
8122         UNSPEC_LOONGSON_PINSR_0)
8123         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
8124         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
8125         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
8126         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
8127         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
8128         UNSPEC_LOONGSON_PSADBH)
8129         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
8130         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
8131         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
8132         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
8133         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
8134         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
8135         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
8136         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
8137         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
8138         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
8139         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
8140         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
8141         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
8142         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
8143         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
8144         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
8145         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
8146         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
8147         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
8148         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
8149         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
8150         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
8151         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
8152         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
8153         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
8154         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
8155         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
8156         (UNSPEC_RDDSP): Moved from mips.md.
8157         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
8158         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
8159         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
8160         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
8161         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
8162         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
8163         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
8164         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
8165         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
8166         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
8167         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
8168         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
8169         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
8170         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
8171         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
8172         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
8173         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
8174         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
8175         (UNSPEC_SCC): Moved from mips.md.
8176         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
8177         "processor_type" to "processor".
8178         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
8179         * config/mips/mips.h (processor_type): Delete.
8180         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
8181         "processor_type" to "processor".
8182
8183 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8184
8185         * configure.ac (tm_include_list): Add insn-constants.h.
8186         * configure: Regenerate.
8187         * Makefile.in (GTM_H): Move insn-constants.h here from...
8188         (TM_H): ...here.
8189         * mkconfig.sh: Remove special handling for insn-constants.h.
8190
8191 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8192
8193         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
8194         (BUILD_MD): ...this new variable.
8195         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
8196         that include the old contents of simple_generated_h and
8197         simple_generated_c.
8198         (simple_generated_h, simple_generated_c): Include them.  Add
8199         insn-constants.h.
8200         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
8201         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
8202         Remove these dependencies from the main rule and include
8203         insn-conditions.md in the command line only if it appears
8204         in the dependency list.
8205         (insn-constants.h, s-constants): Delete.
8206         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
8207         or gensupport.h.
8208         (build/genmddeps.o): Likewise.
8209         (genprogrtl): New variable that contains everything from genprogmd
8210         except mddeps and constants.
8211         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
8212         depend on $(BUILD_MD)
8213         (genprog): New variable.  Make these programs depend on
8214         $(BUILD_ERRORS).
8215         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
8216         (main): Use read_md_files instead of init_rtx_reader_args.
8217         * genconstants.c: As for genmddeps.c.
8218         * read-md.h (read_skip_construct): Declare.
8219         * read-md.c (read_skip_construct): New function.
8220         (handle_file): Allow a null handle_directive, skipping the
8221         construct if so.
8222         (parse_include): Update the comment accordingly.
8223
8224 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8225
8226         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
8227         * genmddeps.c: Include read-md.h.
8228         (main): Call init_rtx_reader_args instead of init_md_reader_args.
8229         * genattr.c (main): Likewise.
8230         * genattrtab.c (main): Likewise.
8231         * genautomata.c (main): Likewise.
8232         * gencodes.c (main): Likewise.
8233         * genconditions.c (main): Likewise.
8234         * genconfig.c (main): Likewise.
8235         * genconstants.c (main): Likewise.
8236         * genemit.c (main): Likewise.
8237         * genextract.c (main): Likewise.
8238         * genflags.c (main): Likewise.
8239         * genopinit.c (main): Likewise.
8240         * genoutput.c (main): Likewise.
8241         * genpeep.c (main): Likewise.
8242         * genrecog.c (main): Likewise.
8243         * genpreds.c (main): Likewise.
8244         * gensupport.h (in_fname): Move to read-md.h.
8245         (init_md_reader_args_cb): Rename to...
8246         (init_rtx_reader_args_cb): ...this and return a bool.
8247         (init_md_reader_args): Rename to...
8248         (init_rtx_reader_args): ...this and return a bool.
8249         (include_callback): Move to read-md.h.
8250         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
8251         (file_name_list, first_dir_md_include): Move to read-md.c
8252         (first_bracket_include): Delete unused variable.
8253         (last_dir_md_include): Move to read-md.c.
8254         (process_include): Delete, moving code to read-md.c:handle_include.
8255         (process_rtx): Don't handle INCLUDE.
8256         (save_string): Delete.
8257         (rtx_handle_directive): New function.
8258         (init_md_reader_args_cb): Rename to...
8259         (init_rtx_reader_args_cb): ...this and return a boolean success value.
8260         Use read_md_args.
8261         (init_md_reader_args): Rename to...
8262         (init_rtx_reader_args): ...this and return a boolean success value.
8263         * rtl.def (INCLUDE): Delete.
8264         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
8265         argument.
8266         * read-rtl.c (read_conditions): Don't gobble ')' here.
8267         (read_mapping): Likewise.
8268         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
8269         Handle top-level non-rtx constructs here rather than in read_rtx_1.
8270         Store the whole queue in *X.  Remove call to init_md_reader.
8271         (read_rtx_1): Rename to...
8272         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
8273         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
8274         here.
8275         (read_nested_rtx): New function.  Handle (nil) here rather than
8276         in read_rtx_code.
8277         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
8278         gobble ')' here.
8279         * read-md.h (directive_handler_t): New type.
8280         (in_fname, include_callback): Moved from read-md.h.
8281         (read_constants, init_md_reader): Delete.
8282         (read_md_files): Declare.
8283         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
8284         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
8285         from gensupport.c.
8286         (read_constants): Rename to...
8287         (handle_constants): ...this.  Don't gobble ')' here.
8288         (handle_include, handle_file, handle_toplevel_file)
8289         (parse_include): New functions, mostly taken from gensupport.c.
8290         (init_md_reader): Subsume into...
8291         (read_md_files): ...this new function.
8292
8293 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8294
8295         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
8296         (unread_char): Decrement read_md_lineno after putting back '\n'.
8297         * read-md.c (fatal_with_file_and_line): Push back any characters
8298         that we decide not to add to the context.
8299         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
8300         fatal_expected_char in cases where '/' ends a line (for example).
8301         (read_name): Don't increment read_md_lineno here.
8302         (read_escape): Likewise.
8303         (read_quoted_string): Likewise.
8304         (read_braced_string): Likewise.
8305
8306 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8307
8308         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
8309         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
8310         * genconstants.c: Include read-md.h.
8311         * read-rtl.c (md_constants): Move to read-md.c.
8312         (md_name): Move to read-md.h.
8313         (initialize_iterators): Use leading_string_hash instead of def_hash
8314         and leading_string_eq_p instead of def_name_eq_p.
8315         (read_name): Move to read-md.c.
8316         (def_hash, def_name_eq_p): Delete.
8317         (read_constants, traverse_md_constants): Move to read-md.c.
8318         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
8319         * read-md.h: Include hashtab.h.
8320         (md_name): Moved from read-rtl.c.
8321         (md_constant): Moved from read-md.h.
8322         (leading_string_hash, leading_string_eq_p, read_name)
8323         (read_constants, traverse_md_constants): Declare.
8324         * read-md.c (md_constants): Moved from read-rtl.c.
8325         (leading_string_hash, leading_string_eq_p): New functions.
8326         (read_name, read_constants, traverse_md_constants): Moved from
8327         read-rtl.c.
8328
8329 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8330
8331         * read-rtl.c (md_name): New structure.
8332         (read_name): Take an md_name instead of a buffer pointer.
8333         Use the "string" field instead of strcpy when expanding constants.
8334         (read_constants): Remove the tmp_char argument.  Update the calls
8335         to read_name, using two local name buffers instead of the tmp_char
8336         argument.  Merge the constant-creation code.
8337         (read_conditions): Remove the tmp_char argument.  Update the calls
8338         to read_name, using a local name buffer instead of the tmp_char
8339         argument.
8340         (read_mapping): Replace tmp_char variable with a local name buffer.
8341         Update the calls to read_name.
8342         (read_rtx_1): Likewise.  Update the calls to read_constants and
8343         read_conditions.
8344
8345 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8346
8347         * Makefile.in (build/read-md.o): Depend on errors.h.
8348         * read-md.h (error_with_line): Declare.
8349         * read-md.c: Include errors.h.
8350         (message_with_line_1): New function, extracted from...
8351         (message_with_line): ...here.
8352         (error_with_line): New function.
8353         * genattrtab.c: If a call to message_with_line is followed by
8354         "have_error = 1;", replace both statements with a call to
8355         error_with_line.
8356         * genoutput.c: Likewise.
8357         * genpreds.c: Likewise.
8358         * genrecog.c: If a call to message_with_line is followed by
8359         "error_count++;", replace both statements with a call to
8360         error_with_line.
8361         (errorcount): Delete.
8362         (main): Don't check it.
8363         * gensupport.c: If a call to message_with_line is followed by
8364         "errors = 1;", replace both statements with a call to error_with_line.
8365         (errors): Delete.
8366         (process_define_cond_exec): Check have_error instead of errors.
8367         (init_md_reader_args_cb): Likewise.  Don't set errors.
8368
8369 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8370
8371         * read-md.h (read_md_file): Declare.
8372         (read_char, unread_char): New functions.
8373         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
8374         (read_quoted_string, read_string): Remove FILE * argument.
8375         * read-md.c (read_md_file): New variable.
8376         (read_md_filename, read_md_lineno): Update comments and remove
8377         unnecessary initialization.
8378         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
8379         (read_escape, read_quoted_string, read_braced_string, read_string):
8380         Remove FILE * argument.  Update calls accordingly, using read_char
8381         and unread_char instead of getc and ungetc.
8382         * rtl.h (read_rtx): Remove FILE * argument.
8383         * read-rtl.c (iterator_group): Remove FILE * argument from
8384         "find_builtin".
8385         (iterator_traverse_data): Remove "infile" field.
8386         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
8387         (add_mapping, read_name, read_constants, read_conditions)
8388         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
8389         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
8390         Remove file arguments from all calls, using read_char and unread_char
8391         instead of getc and ungetc.
8392         * gensupport.c (process_include): Preserve read_md_file around
8393         the include.  Set read_md_file to the handle of the included file.
8394         Update call to read_rtx.
8395         (init_md_reader_args_cb): Set read_md_file to the handle of the file
8396         and remove local FILE *.  Update calls to read_rtx.
8397
8398 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8399
8400         * read-md.h (read_rtx_lineno): Rename to...
8401         (read_md_lineno): ...this.
8402         (read_rtx_filename): Rename to...
8403         (read_md_filename): ...this.
8404         (copy_rtx_ptr_loc): Rename to...
8405         (copy_md_ptr_loc): ...this.
8406         (print_rtx_ptr_loc): Rename to...
8407         (print_md_ptr_loc): ...this.
8408         * read-md.c: Likewise.  Update references after renaming.
8409         (string_obstack): Replace RTL with MD in comment.
8410         (set_rtx_ptr_loc): Rename to...
8411         (set_md_ptr_loc): ...this.
8412         (get_rtx_ptr_loc): Rename to...
8413         (get_md_ptr_loc): ...this.
8414         * genconditions.c: Update references after renaming.
8415         * genemit.c: Likewise.
8416         * genoutput.c: Likewise.
8417         * genpreds.c: Likewise.
8418         * gensupport.c: Likewise.
8419         * read-rtl.c: Likewise.
8420
8421 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
8422
8423         * Makefile.in (READ_MD_H): New variable.
8424         (BUILD_RTL): Add build/read-md.o.
8425         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
8426         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
8427         (build/genattrtab.o, build/genconditions.o build/genemit.o)
8428         (build/genextract.o, build/genflags.o, build/genoutput.o)
8429         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
8430         (build/read-md.o): New rule.
8431         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
8432         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
8433         * coretypes.h: ...here.
8434         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
8435         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
8436         * genattr.c: Include read-md.h.
8437         * genattrtab.c: Likewise.
8438         * genconditions.c: Likewise.
8439         * genemit.c: Likewise.
8440         * genextract.c: Likewise.
8441         * genflags.c: Likewise.
8442         * genoutput.c: Likewise.
8443         * genpreds.c: Likewise.
8444         * genrecog.c: Likewise.
8445         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
8446         (join_c_conditions, print_c_condition, read_rtx_filename)
8447         (read_rtx_lineno): Move to read-md.h.
8448         * read-rtl.c: Include read-md.h.
8449         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
8450         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
8451         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
8452         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
8453         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
8454         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
8455         (read_braced_string, read_string): Move to read-md.c.
8456         (read_rtx): Move some initialization to init_md_reader and call
8457         init_md_reader here.
8458         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
8459         Move to read-md.h.
8460         * gensupport.c: Include read-md.h.
8461         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
8462         * read-md.h, read-md.c: New files.
8463
8464 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
8465
8466         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
8467         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8468         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
8469         * config/moxie/moxie.c (moxie_function_value): Make static.
8470         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
8471         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8472
8473 2010-06-10  Martin Jambor  <mjambor@suse.cz>
8474
8475         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
8476         * dbgcnt.def (tree_sra): New counter.
8477         * tree-sra.c: Include dbgcnt.h.
8478         (gate_intra_sra): Check tree_sra debug counter.
8479
8480 2010-06-10  Martin Jambor  <mjambor@suse.cz>
8481
8482         PR tree-optimization/44258
8483         * tree-sra.c (build_access_subtree): Return false iff there is a
8484         partial overlap.
8485         (build_access_trees): Likewise.
8486         (analyze_all_variable_accesses): Disqualify candidates if
8487         build_access_trees returns true for them.
8488
8489 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
8490
8491         PR debug/41371
8492         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
8493         tail-recurse into canonical node.  Fast-forward over
8494         non-canonical VALUEs.
8495
8496 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
8497
8498         PR boostrap/44470
8499         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
8500         (*addsi_1_zext) <TYPE_LEA>: Likewise.
8501         (add lea splitter): Likewise.
8502         (add_zext lea splitter): Likewise.
8503
8504 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
8505
8506         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
8507
8508 2010-06-10  Jan Hubicka  <jh@suse.cz>
8509
8510         * df-problems.c (df_live_problem_data): Add live_bitmaps.
8511         (df_live_alloc): Initialize problem data and live_osbtacks.
8512         (df_live_finalize): Remove obstack, problem data; do not
8513         clear all bitmaps.
8514         (df_live_top_dump, df_live_bottom_dump): Do not dump old
8515         data when not allocated.
8516         (df_live_verify_solution_start): Do not allocate problem data.
8517         (df_live_verify_solution_end): Check if out is allocated.
8518         (struct df_md_problem_data): New structure.
8519         (df_md_alloc): Allocate problem data.
8520         (df_md_free): Free problem data; do not clear bitmaps.
8521
8522 2010-06-10  Jan Beulich  <jbeulich@novell.com>
8523
8524         PR bootstrap/37304
8525         * configure.ac: Replace $() with ${} when intending to expand
8526         variables rather than invoking commands.
8527         * configure: Re-generate.
8528
8529 2010-06-10  Jan Hubicka  <jh@suse.cz>
8530
8531         PR rtl-optimization/44460
8532         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
8533         TYPE_NEEDS_CONSTRUCTING sanity check.
8534
8535 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
8536
8537         * doc/include/fdl.texi: Move to GFDL version 1.3.
8538
8539         * doc/cpp.texi: Move to GFDL version 1.3.
8540         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
8541         * doc/gccint.texi: Move to GFDL version 1.3.
8542         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
8543         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
8544         * doc/invoke.texi: Move to GFDL version 1.3.
8545
8546 2010-06-09  Jan Hubicka  <jh@suse.cz>
8547
8548         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
8549         Break out from ...
8550         (propagate) ... here; swap the order.
8551
8552 2010-06-09  Jan Hubicka  <jh@suse.cz>
8553
8554         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
8555         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
8556         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
8557         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
8558
8559 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
8560
8561         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
8562         Do not the gather memory reference in the outer loop if the step
8563         is not a constant.
8564
8565 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
8566
8567         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
8568         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
8569         8 to 4.  Minor change of the related comments.
8570
8571 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
8572
8573         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
8574         the scev analysis when the variable is not used outside the loop
8575         in a close phi node: call compute_overall_effect_of_inner_loop.
8576
8577 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
8578
8579         * graphite-sese-to-poly.c (single_pred_cond): Renamed
8580         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
8581         (build_sese_conditions_before): Renamed call to single_pred_cond.
8582         (build_sese_conditions_after): Same.
8583
8584 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
8585
8586         * graphite-poly.h: Fix comments and indentation.
8587         * graphite-sese-to-poly.c: Same.
8588         (build_sese_conditions_before): Compute stmt and gbb only when needed.
8589         * tree-chrec.c: Fix comments and indentation.
8590         (tree-ssa-loop-niter.c): Same.
8591
8592 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
8593
8594         PR rtl-optimization/42461
8595         * dce.c (deletable_insn_p): Return true for const or pure calls again.
8596         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
8597
8598 2010-06-09  Jan Hubicka  <jh@suse.cz>
8599
8600         * bitmap.c (bitmap_and): Walk array forward.
8601         (bitmap_and_compl_into): Likewise.
8602         (bitmap_xor): Likewise.
8603         (bitmap_xor_into):  Likewise.
8604         (bitmap_equal_p): Likewise.
8605         (bitmap_intersect_p): Likewise.
8606         (bitmap_intersect_compl_p): Likewise.
8607         (bitmap_ior_and_into): Likewise.
8608         (bitmap_elt_copy): Likewise.
8609         (bitmap_and_compl): Likewise.
8610         (bitmap_elt_ior): Likewise.
8611
8612 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
8613
8614         * opts-common.c (prune_options): Ensure replacement argv array
8615         is correctly terminated by a NULL entry.
8616
8617 2010-06-09  Jan Hubicka  <jh@suse.cz>
8618
8619         * cgraph.h (varpool_first_static_initializer,
8620         varpool_next_static_initializer): Make checking only when
8621         checking enabled.
8622         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
8623         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
8624         gcc_assert to gcc_checking_assert.
8625         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
8626         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
8627         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
8628         op_iter_init_phiuse, op_iter_init_phidef,
8629         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
8630         gcc_checking_assert.
8631         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
8632         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
8633         partition_is_global, live_on_entry, live_on_exit,
8634         live_merge_and_clear): Likewise.
8635         * system.h (gcc_checking_assert): New macro.
8636         * gimple.h (set_bb_seq): Use gcc_checking_assert.
8637
8638 2010-06-09  Jason Merrill  <jason@redhat.com>
8639
8640         * Makefile.in (TAGS): Collect tags info from c-family.
8641
8642 2010-06-09  Jan Hubicka  <jh@suse.cz>
8643
8644         * gimple.h (gcc_gimple_checking_assert): New macro.
8645         (gimple_set_def_ops, gimple_set_use_ops,
8646         gimple_set_vuse, gimple_set_vdef,
8647         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
8648         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
8649         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
8650         gimple_asm_output_op, gimple_asm_output_op_ptr,
8651         gimple_asm_set_output_op, gimple_asm_clobber_op,
8652         gimple_asm_set_clobber_op, gimple_asm_label_op,
8653         gimple_asm_set_label_op, gimple_try_set_kind,
8654         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
8655         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
8656         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
8657         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
8658         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
8659         gimple_omp_for_set_initial, gimple_omp_for_final,
8660         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
8661         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
8662         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
8663         conditional with ENABLE_GIMPLE_CHECKING.
8664         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
8665
8666 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
8667
8668         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
8669         (get_computation_cost_at): Use it.
8670         (determine_use_iv_cost_condition): Likewise.
8671         (determine_iv_cost): Likewise.
8672
8673 2010-06-09  Richard Guenther  <rguenther@suse.de>
8674
8675         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
8676         replace constants.
8677
8678 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
8679
8680         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
8681
8682 2010-06-09  Martin Jambor  <mjambor@suse.cz>
8683
8684         PR tree-optimization/44423
8685         * tree-sra.c (dump_access): Dump also grp_assignment_read.
8686         (analyze_access_subtree): Pass negative allow_replacements to children
8687         if the current type is scalar.
8688
8689 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8690
8691         PR testsuite/42843
8692         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
8693         * doc/plugins.texi (Plugin license check): Update information
8694         on type of plugin_is_GPL_compatible.
8695         * Makefile.in (PLUGINCC): Define as $(COMPILER).
8696         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
8697
8698 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
8699
8700         * config/arm/arm.c (thumb2_reorg): New function.
8701         (arm_reorg): Call it.
8702         * config/arm/thumb2.md (define_peephole2 for flag clobbering
8703         arithmetic operations): Delete.
8704
8705 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
8706
8707         PR target/44067
8708         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
8709         e500v2 target.
8710
8711 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8712
8713         PR plugins/44459
8714         * gcc-plugin.h: Encapsulate all declarations in extern "C".
8715
8716 2010-06-08  Jan Hubicka  <jh@suse.cz>
8717
8718         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
8719         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
8720
8721 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
8722
8723         PR tree-optimization/39874
8724         PR middle-end/28685
8725         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
8726         Declare.
8727         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
8728         same_bool_result_p): New.
8729         (and_var_with_comparison, and_var_with_comparison_1,
8730         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
8731         (or_var_with_comparison, or_var_with_comparison_1,
8732         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
8733         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
8734         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
8735         of combine_comparisons.
8736         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
8737
8738 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
8739
8740         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
8741         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
8742         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
8743         pdp11_function_value_regno_p): New functions.
8744         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8745         TARGET_FUNCTION_VALUE_REGNO_P): Define.
8746
8747 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
8748
8749         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
8750         Thumb-2 in the MINUS case.
8751
8752 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8753
8754         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
8755
8756         * doc/gty.texi (GTY Options): Document typed GC allocation and
8757         variable_size GTY option.
8758
8759         * ggc-internal.h: New.
8760
8761         * ggc.h: Update copyright year.
8762         (digit_string): Move to stringpool.c.
8763         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
8764         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
8765         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
8766         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
8767         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
8768         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
8769         (ggc_force_collect, ggc_get_size, ggc_statistics)
8770         (ggc_print_common_statistics): Move to ggc-internal.h.
8771         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
8772         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
8773         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
8774         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
8775         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
8776         (ggc_alloc_zone_pass_stat): Remove.
8777         (ggc_internal_alloc_stat, ggc_internal_alloc)
8778         (ggc_internal_cleared_alloc_stat): New.
8779         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
8780         (ggc_internal_vec_alloc_stat)
8781         (ggc_internal_cleared_vec_alloc_stat)
8782         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
8783         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
8784         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
8785         (ggc_cleared_alloc_ptr_array_two_args): New.
8786         (htab_create_ggc, splay_tree_new_ggc): Redefine.
8787         (ggc_splay_alloc): Change the type of the first argument to
8788         enum gt_types_enum.
8789         (ggc_alloc_string): Make macro.
8790         (ggc_alloc_string_stat): New.
8791         (ggc_strdup): Redefine.
8792         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
8793         (ggc_alloc_rtvec_sized): New.
8794         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
8795         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
8796         (ggc_internal_cleared_alloc_zone_stat)
8797         (ggc_internal_zone_alloc_stat)
8798         (ggc_internal_zone_cleared_alloc_stat)
8799         (ggc_internal_zone_vec_alloc_stat)
8800         (ggc_alloc_zone_rtx_def_stat)
8801         (ggc_alloc_zone_tree_node_stat)
8802         (ggc_alloc_zone_cleared_tree_node_stat)
8803         (ggc_alloc_cleared_gimple_statement_d_stat): New.
8804
8805         * ggc-common.c: Include ggc-internal.h.
8806         (ggc_internal_cleared_alloc_stat): Rename from
8807         ggc_alloc_cleared_stat.
8808         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
8809         (ggc_calloc): Remove.
8810         (ggc_cleared_alloc_htab_ignore_args): New.
8811         (ggc_cleared_alloc_ptr_array_two_args): New.
8812         (ggc_splay_alloc): Add obj_type parameter.
8813         (init_ggc_heuristics): Formatting fixes.
8814
8815         * ggc-none.c: Update copyright year.
8816         (ggc_alloc_stat): Rename to ggc_alloc_stat.
8817         (ggc_alloc_cleared_stat): Rename to
8818         ggc_internal_cleared_alloc_stat.
8819         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
8820
8821         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
8822         Remove references to ggc_alloc in comments.
8823         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
8824         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
8825         (new_ggc_zone, destroy_ggc_zone): Remove.
8826         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
8827
8828         * ggc-zone.c: Include ggc-internal.h.  Remove references to
8829         ggc_alloc in comments.
8830         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
8831         (ggc_internal_alloc_zone_pass_stat): New.
8832         (ggc_internal_cleared_alloc_zone_stat): New.
8833         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
8834         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
8835         (new_ggc_zone, destroy_ggc_zone): Remove.
8836
8837         * stringpool.c: Update copyright year.  Include ggc-internal.h
8838         (digit_vector): Make static.
8839         (digit_string): Moved from ggc.h.
8840         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
8841         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
8842
8843         * Makefile.in (GGC_INTERNAL_H): New.
8844         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
8845         $(GGC_INTERNAL_H) to dependencies.
8846
8847         * gentype.c: Update copyright year.
8848         (walk_type): Accept variable_size GTY option.
8849         (USED_BY_TYPED_GC_P): New macro.
8850         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
8851         whitespace at the end of strings.
8852         (get_type_specifier, variable_size_p): New functions.
8853         (alloc_quantity, alloc_zone): New enums.
8854         (write_typed_alloc_def): New function.
8855         (write_typed_struct_alloc_def): Likewise.
8856         (write_typed_typed_typedef_alloc_def): Likewise.
8857         (write_typed_alloc_defns): Likewise.
8858         (output_typename, write_splay_tree_allocator_def): Likewise.
8859         (write_splay_tree_allocators): Likewise.
8860         (main): Call write_typed_alloc_defns and
8861         write_splay_tree_allocators.
8862
8863         * lto-streamer.h (lto_file_decl_data_ptr): New.
8864
8865         * passes.c (order): Define using cgraph_node_ptr.
8866
8867         * strinpool.c (struct string_pool_data): Declare nested_ptr using
8868         ht_identifier_ptr.
8869
8870         * gimple.h (union gimple_statement_d): Likewise.
8871
8872         * rtl.h (struct rtx_def): Likewise.
8873         (struct rtvec_def): Likewise.
8874
8875         * tree.h (union tree_node): Likewise.
8876
8877         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
8878
8879         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
8880
8881         * tree-scalar-evolution.c (scev_initialize): Likewise.
8882
8883         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
8884
8885         * dwarf2asm.c (dw2_force_const_mem): Likewise.
8886
8887         * omp-low.c (lower_omp_critical): Likewise.
8888
8889         * bitmap.h (struct bitmap_head_def): Update comment to not
8890         reference ggc_alloc.
8891
8892         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
8893
8894         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
8895
8896         * ipa-prop.c (duplicate_ggc_array): Rename to
8897         duplicate_ipa_jump_func_array.  Use typed GC allocation.
8898         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
8899
8900         * gimple.c (gimple_alloc_stat): Use
8901         ggc_alloc_cleared_gimple_statement_d_stat.
8902
8903         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
8904
8905         * tree.c (make_node_stat): Use
8906         ggc_alloc_zone_cleared_tree_node_stat.
8907         (make_tree_vec_stat): Likewise.
8908         (build_vl_exp_stat): Likewise.
8909         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
8910         (make_tree_binfo_stat): Likewise.
8911         (tree_cons_stat): Likewise.
8912
8913         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
8914         (shallow_copy_rtx_stat): Likewise.
8915         (make_node_stat): Likewise.
8916
8917         * lto-symtab.c: Fix comment.
8918
8919         * tree-cfg.c (create_bb): Update comment to not reference
8920         ggc_alloc_cleared.
8921         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
8922
8923         * varpool.c (varpool_node): Use typed GC allocation.
8924         (varpool_extra_name_alias): Likewise.
8925
8926         * varasm.c (emutls_decl): Likewise.
8927         (get_unnamed_section): Likewise.
8928         (get_noswitch_section): Likewise.
8929         (get_section): Likewise.
8930         (get_block_for_section): Likewise.
8931         (build_constant_desc): Likewise.
8932         (create_constant_pool): Likewise.
8933         (force_const_mem): Likewise.
8934
8935         * tree.c (build_vl_exp_stat): Likewise.
8936         (build_real): Likewise.
8937         (build_string): Likewise.
8938         (decl_debug_expr_insert): Likewise.
8939         (decl_value_expr_insert): Likewise.
8940         (type_hash_add): Likewise.
8941         (build_omp_clause): Likewise.
8942
8943         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
8944
8945         * tree-ssa.c (init_tree_ssa): Likewise.
8946
8947         * tree-ssa-structalias.c (heapvar_insert): Likewise.
8948
8949         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
8950
8951         * tree-ssa-loop-niter.c (record_estimate): Likewise.
8952
8953         * tree-ssa-alias.c (get_ptr_info): Likewise.
8954
8955         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
8956
8957         * tree-phinodes.c (allocate_phi_node): Likewise.
8958
8959         * tree-iterator.c (tsi_link_before): Likewise.
8960         (tsi_link_after): Likewise.
8961
8962         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
8963
8964         * tree-dfa.c (create_var_ann): Likewise.
8965
8966         * tree-cfg.c (create_bb): Likewise.
8967
8968         * toplev.c (alloc_for_identifier_to_locale): Likewise.
8969         (general_init): Likewise.
8970
8971         * stringpool.c (stringpool_ggc_alloc): Likewise.
8972         (gt_pch_save_stringpool): Likewise.
8973
8974         * sese.c (if_region_set_false_region): Likewise.
8975
8976         * passes.c (do_per_function_toporder): Likewise.
8977
8978         * optabs.c (set_optab_libfunc): Likewise.
8979         (set_conv_libfunc): Likewise.
8980
8981         * lto-symtab.c (lto_symtab_register_decl): Likewise.
8982
8983         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
8984         (input_eh_region): Likewise.
8985         (input_eh_lp): Likewise.
8986         (make_new_block): Likewise.
8987         (unpack_ts_real_cst_value_fields): Likewise.
8988
8989         * lto-section-in.c (lto_new_in_decl_state): Likewise.
8990
8991         * lto-cgraph.c (input_node_opt_summary): Likewise.
8992
8993         * loop-init.c (loop_optimizer_init): Likewise.
8994
8995         * lambda.h (lambda_vector_new): Likewise.
8996
8997         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
8998
8999         * ira.c (update_equiv_regs): Likewise.
9000
9001         * ipa.c (cgraph_node_set_new): Likewise.
9002         (cgraph_node_set_add): Likewise.
9003         (varpool_node_set_new): Likewise.
9004         (varpool_node_set_add): Likewise.
9005
9006         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
9007         (duplicate_ipa_jump_func_array): Likewise.
9008         (ipa_read_node_info): Likewise.
9009
9010         * ipa-cp.c (ipcp_create_replace_map): Likewise.
9011
9012         * integrate.c (get_hard_reg_initial_val): Likewise.
9013
9014         * gimple.c (gimple_alloc_stat): Likewise.
9015         (gimple_build_omp_for): Likewise.
9016         (gimple_seq_alloc): Likewise.
9017         (gimple_copy): Likewise.
9018
9019         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
9020         (gsi_insert_after_without_update): Likewise.
9021
9022         * function.c (add_frame_space): Likewise.
9023         (insert_temp_slot_address): Likewise.
9024         (assign_stack_temp_for_type): Likewise.
9025         (allocate_struct_function): Likewise.
9026         (types_used_by_var_decl_insert): Likewise.
9027
9028         * except.c (init_eh_for_function): Likewise.
9029         (gen_eh_region): Likewise.
9030         (gen_eh_region_catch): Likewise.
9031         (gen_eh_landing_pad): Likewise.
9032         (add_call_site): Likewise.
9033
9034         * emit-rtl.c (get_mem_attrs): Likewise.
9035         (get_reg_attrs): Likewise.
9036         (start_sequence): Likewise.
9037         (init_emit): Likewise.
9038
9039         * dwarf2out.c (new_cfi): Likewise.
9040         (queue_reg_save): Likewise.
9041         (dwarf2out_frame_init): Likewise.
9042         (new_loc_descr): Likewise.
9043         (find_AT_string): Likewise.
9044         (new_die): Likewise.
9045         (add_var_loc_to_decl): Likewise.
9046         (clone_die): Likewise.
9047         (clone_as_declaration): Likewise.
9048         (break_out_comdat_types): Likewise.
9049         (new_loc_list): Likewise.
9050         (loc_descriptor): Likewise.
9051         (add_loc_descr_to_each): Likewise.
9052         (add_const_value_attribute): Likewise.
9053         (tree_add_const_value_attribute): Likewise.
9054         (add_comp_dir_attribute): Likewise.
9055         (add_name_and_src_coords_attributes): Likewise.
9056         (lookup_filename): Likewise.
9057         (store_vcall_insn): Likewise.
9058         (dwarf2out_init): Likewise.
9059
9060         * dbxout.c (dbxout_init): Likewise.
9061
9062         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
9063
9064         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
9065
9066         * config/score/score7.c (score7_output_external): Likewise.
9067
9068         * config/score/score3.c (score3_output_external): Likewise.
9069
9070         * config/s390/s390.c (s390_init_machine_status): Likewise.
9071
9072         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
9073         (rs6000_init_machine_status): Likewise.
9074         (output_toc): Likewise.
9075
9076         * config/pa/pa.c (pa_init_machine_status): Likewise.
9077         (get_deferred_plabel): Likewise.
9078
9079         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
9080
9081         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
9082
9083         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
9084
9085         * config/mep/mep.c (mep_init_machine_status): Likewise.
9086         (mep_note_pragma_flag): Likewise.
9087
9088         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
9089
9090         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
9091
9092         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
9093
9094         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
9095         (i386_pe_maybe_record_exported_symbol): Likewise.
9096
9097         * config/i386/i386.c (get_dllimport_decl): Likewise.
9098         (ix86_init_machine_status): Likewise.
9099         (assign_386_stack_local): Likewise.
9100
9101         * config/frv/frv.c (frv_init_machine_status): Likewise.
9102
9103         * config/darwin.c (machopic_indirection_name): Likewise.
9104
9105         * config/cris/cris.c (cris_init_machine_status): Likewise.
9106
9107         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
9108
9109         * config/avr/avr.c (avr_init_machine_status): Likewise.
9110
9111         * config/arm/arm.c (arm_init_machine_status): Likewise.
9112
9113         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
9114         (alpha_need_linkage): Likewise.
9115         (alpha_use_linkage): Likewise.
9116
9117         * cgraph.c (cgraph_allocate_node): Likewise.
9118         (cgraph_create_edge_1): Likewise.
9119         (cgraph_create_indirect_edge): Likewise.
9120         (cgraph_add_asm_node): Likewise.
9121
9122         * cfgrtl.c (init_rtl_bb_info): Likewise.
9123
9124         * cfgloop.c (alloc_loop): Likewise.
9125         (rescan_loop_exit): Likewise.
9126
9127         * cfg.c (init_flow): Likewise.
9128         (alloc_block): Likewise.
9129         (unchecked_make_edge): Likewise.
9130
9131         * c-parser.c (c_parse_init): Likewise.
9132         (c_parse_file): Likewise.
9133
9134         * c-decl.c (bind): Likewise.
9135         (record_inline_static): Likewise.
9136         (push_scope): Likewise.
9137         (make_label): Likewise.
9138         (lookup_label_for_goto): Likewise.
9139         (finish_struct): Likewise.
9140         (finish_enum): Likewise.
9141         (c_push_function_context): Likewise.
9142
9143         * bitmap.c (bitmap_element_allocate): Likewise.
9144         (bitmap_gc_alloc_stat): Likewise.
9145
9146         * alias.c (record_alias_subset): Likewise.
9147         (init_alias_analysis): Likewise.
9148
9149 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
9150
9151         * fold-const.c (fold_comparison): Remove redundant parenthesis.
9152         * tree-inline.c (expand_call_inline): Pass translated return value of
9153         cgraph_inline_failed_string to diagnostic function.
9154
9155 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
9156             Shujing Zhao  <pearly.zhao@oracle.com>
9157
9158         PR c/37724
9159         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
9160         implicit bad conversions is initialization.
9161         (error_init): Use gmsgid instead of msgid for argument name and change
9162         the call for error.
9163         (pedwarn_init): Use gmsgid instead of msgid for argument name and
9164         change the call for pedwarn.
9165         (warning_init): Use gmsgid instead of msgid for argument name and
9166         change the call for warning.
9167
9168 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
9169
9170         * config/mips/mips-protos.h (mips_print_operand): Delete.
9171         (mips_print_operand_address): Delete.
9172         * config/mips/mips.h (mips_print_operand_punct): Delete.
9173         (PRINT_OPERAND): Delete.
9174         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9175         (PRINT_OPERAND_ADDRESS): Delete.
9176         * config/mips/mips.c (mips_print_operand_punct): Make static.
9177         (mips_print_operand_address): Make static.
9178         (mips_print_operand): Make static.  Call
9179         mips_print_operand_punct_valid_p.
9180         (mips_print_operand_punct_valid_p): New function.
9181         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
9182         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9183
9184 2010-06-07  Jan Hubicka  <jh@suse.cz>
9185
9186         PR middle-end/44454
9187         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
9188         are allocated.
9189
9190 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
9191
9192         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
9193         name of RECORD.
9194
9195 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9196
9197         * doc/sourcebuild.texi (Effective-Target Keywords, Other
9198         attributes): Document gas.
9199
9200 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
9201
9202         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
9203         <TYPE_LEA>: Split instruction.
9204         <default>: Remove alternative 2 handling.
9205         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
9206         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
9207         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
9208
9209         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
9210         (ashift_zext lea splitter): Use DImode for multiplication.
9211
9212         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
9213         to generate addition.
9214
9215 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
9216
9217         * common.opt (fira-verbose): Use Var.
9218         (fpcc-struct-return): Use Init instead of VarExists.
9219         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
9220         toplev.c.
9221         * flags.h (flag_signed_char, flag_short_enums,
9222         flag_pcc_struct_return, flag_ira_verbose,
9223         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
9224         * toplev.c (flag_detailed_statistics, flag_signed_char,
9225         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
9226         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
9227         * toplev.h (flag_crossjumping, flag_if_conversion,
9228         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
9229         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
9230         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
9231         flag_cprop_registers, time_report, flag_ira_loop_pressure,
9232         flag_ira_coalesce, flag_ira_move_spills,
9233         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
9234
9235 2010-06-07  Jan Hubicka  <jh@suse.cz>
9236
9237         * df-core.c (df_analyze_problem): Do verification after allocation.
9238
9239         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
9240         (df_lr_alloc): Initialize problem data; move bitmaps to
9241         lr_bitmaps obstack.
9242         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
9243         (df_lr_verify_solution_start): Do not initialize problem data;
9244         allocate bitmaps in lr_bitmaps.
9245         (df_lr_verify_solution_end): Do not free problem data.
9246
9247 2010-06-07  Jan Hubicka  <jh@suse.cz>
9248
9249         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
9250         if caller is noreturn.
9251         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
9252         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
9253         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
9254         * ipa-pure-const.c (check_decl): Add IPA parameter.
9255         (state_from_flags): New function.
9256         (better_state, worse_state): New functions.
9257         (check_call): When in IPA mode, do not care about callees.
9258         (check_load, check_store): Update.
9259         (check_ipa_load, check_ipa_store): New.
9260         (check_stmt): When in IPA mode, use IPA checkers.
9261         (analyze_function): Use state_from_flags.
9262         (propagate): Check indirect edges and references.
9263
9264 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
9265
9266         PR rtl-optimization/44404
9267         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
9268         of count_occurrences to see if it's safe to modify mem_insn.
9269
9270 2010-06-07  Richard Guenther  <rguenther@suse.de>
9271
9272         * gimplify.c (gimplify_cleanup_point_expr): For empty body
9273         and EH-only cleanup drop the cleanup instead of inserting it
9274         unconditionally.
9275
9276 2010-06-07  Ira Rosen  <irar@il.ibm.com>
9277
9278         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
9279         documentation.
9280         * targhooks.c (default_builtin_vectorization_cost): New function.
9281         * targhooks.h (default_builtin_vectorization_cost): Declare.
9282         * target.h (enum vect_cost_for_stmt): Define.
9283         (builtin_vectorization_cost): Change argument and comment.
9284         * tree-vectorizer.h: Remove cost model macros.
9285         * tree-vect-loop.c: Include target.h.
9286         (vect_get_cost): New function.
9287         (vect_estimate_min_profitable_iters): Replace cost model macros with
9288         calls to vect_get_cost.
9289         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
9290         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
9291         default implementation.
9292         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
9293         calls to target hook builtin_vectorization_cost.
9294         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
9295         Likewise.
9296         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
9297         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
9298         implementation to return costs.
9299         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
9300         * config/spu/spu.h: Remove vectorizer cost model macros.
9301         * config/i386/i386.h: Likewise.
9302         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
9303         a call to target hook builtin_vectorization_cost.
9304
9305 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
9306
9307         PR target/44319
9308         * config/i386/i386.c (override_options): Turn zee pass on for level 2
9309         and above and defer till target is known.
9310         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
9311         turn off otherwise.
9312
9313 2010-05-25  Jan Hubicka  <jh@suse.cz>
9314
9315         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
9316         (df_compact_blocks): Likewise.
9317         * df.h (struct df): Turn hardware_regs_used,
9318         regular_block_artificial_uses, eh_block_artificial_uses,
9319         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
9320         bitmap_head.
9321         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
9322         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
9323         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
9324         df_scan_blocks, df_insn_delete, df_insn_rescan,
9325         df_insn_rescan_debug_internal, df_insn_rescan_all,
9326         df_process_deferred_rescans, df_process_deferred_rescans,
9327         df_notes_rescan, df_get_call_refs, df_get_call_refs,
9328         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
9329         df_record_entry_block_defs, df_record_exit_block_uses,
9330         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
9331         df_scan_verify): Update.
9332
9333 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
9334
9335         PR c++/44188
9336         * c-common.c (is_typedef_decl): Move this definition ...
9337         * tree.c (is_typedef_decl): ... here.
9338         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
9339         * c-common.h (is_typedef_decl): Move this declaration ...
9340         * tree.h (is_typedef_decl): ... here.
9341         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
9342         * dwarf2out.c (is_naming_typedef_decl): New function.
9343         (gen_tagged_type_die): Split out of ...
9344         (gen_type_die_with_usage): ... this function. When an anonymous
9345         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
9346         is emitted for the typedef.
9347         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
9348         anonymous tagged types.
9349
9350 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9351
9352         PR c/20000
9353         * c-decl.c (grokdeclarator): Delete warning.
9354
9355 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
9356
9357         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
9358         newly built CALL_EXPR.
9359         * tree-profile.c (tree_profiling): Don't profile functions produced
9360         for built-in stuff.
9361
9362 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
9363
9364         PR bootstrap/44427
9365         PR bootstrap/44428
9366         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
9367         endianness-independent.
9368
9369 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
9370
9371         * c-common.c: Move to c-family/.
9372         * c-common.def: Likewise.
9373         * c-common.h: Likewise.
9374         * c-cppbuiltin.c: Likewise.
9375         * c-dump.c: Likewise.
9376         * c-format.c: Likewise.
9377         * c-format.h : Likewise.
9378         * c-gimplify.c: Likewise.
9379         * c-lex.c: Likewise.
9380         * c-omp.c: Likewise.
9381         * c.opt: Likewise.
9382         * c-opts.c: Likewise.
9383         * c-pch.c: Likewise.
9384         * c-ppoutput.c: Likewise.
9385         * c-pragma.c: Likewise.
9386         * c-pragma.h: Likewise.
9387         * c-pretty-print.c: Likewise.
9388         * c-pretty-print.h: Likewise.
9389         * c-semantics.c: Likewise.
9390         * stub-objc.c: Likewise.
9391
9392         * gengtype.c (get_file_langdir): Special-case files in c-family/.
9393         (get_output_file_with_visibility): Fix name for c-common.h.
9394         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
9395
9396         * c-tree.h: Update include path for moved files.
9397         * c-lang.c: Likewise.
9398         * c-lang.h: Likewise.
9399         * c-parser.c: Likewise.
9400         * c-convert.c: Likewise.
9401         * c-decl.c: Likewise.
9402         * c-objc-common.c: Likewise.
9403         * configure.ac: Make sure c-family/ exists in the build directory.
9404         * configure: Regenerate.
9405         * Makefile.in: Update paths for moved files.  Regroup files per
9406         location and update dependencies.  Move generated_files down after
9407         ALL_GTFILES_H.
9408
9409         * config/spu/spu-c.c: Update paths for moved files.
9410         * config/mep/mep-pragma.c: Likewise.
9411         * config/darwin-c.c: Likewise.
9412         * config/i386/msformat-c.c: Likewise.
9413         * config/i386/i386-c.c: Likewise.
9414         * config/avr/avr-c.c: Likewise.
9415         * config/sol2-c.c: Likewise.
9416         * config/ia64/ia64-c.c: Likewise.
9417         * config/rs6000/rs6000-c.c: Likewise.
9418         * config/arm/arm.c: Likewise.
9419         * config/arm/arm-c.c: Likewise.
9420         * config/h8300/h8300.c: Likewise.
9421         * config/v850/v850-c.c: Likewise.
9422
9423         * config/t-darwin: Fix dependencies for moved files.
9424         * config/t-sol2: Fix dependencies for moved files.
9425         * config/mep/t-mep: Fix dependencies for moved files.
9426         * config/ia64/t-ia64: Fix dependencies for moved files.
9427         * config/rs6000/t-rs6000: Fix dependencies for moved files.
9428         * config/v850/t-v850: Fix dependencies for moved files.
9429         * config/v850/t-v850e: Fix dependencies for moved files.
9430
9431         * config/m32c/m32c-pragma.c
9432
9433         * po/exgettext: Look in c-family/ also.
9434
9435 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
9436
9437         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
9438         (mark_control_dependent_edges_necessary): Call it instead of marking
9439         the last statement manually.
9440         (propagate_necessity): Likewise.
9441
9442 2010-06-05  Jan Hubicka  <jh@suse.cz>
9443
9444         * basic-block.h (compute_dominance_frontiers): Updated.
9445         (compute_idf): Likewise.
9446
9447         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
9448         for dominance frontiers.
9449         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
9450         (insert_updated_phi_nodes_for): Likewise.
9451         (update_ssa): Likewise.
9452         * cfganal.c (compute_dominance_frontiers_1): Likewise.
9453         (compute_dominance_frontiers): Likewise.
9454         (compute_idf): Likewise.
9455         * df-problems.c (df_md_local_compute): Likewise.
9456
9457 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
9458
9459         * target.h (struct gcc_target): Add memory_move_cost field.
9460         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
9461         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
9462         * targhooks.c (default_memory_move_cost): New function.
9463         * targhooks.h (default_memory_move_cost): Declare function.
9464         * reload.h (memory_move_cost): Declare.
9465         (memory_move_secondary_cost): Change type of 'in' argument to bool.
9466         * reginfo.c (memory_move_cost): New function.
9467         (memory_move_secondary_cost): Change type of 'in' argument to bool.
9468         * ira.h (ira_memory_move_cost): Update comment.
9469         * ira.c (ira_memory_move_cost): Update comment.
9470         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
9471         with memory_move_cost.
9472         * postreload.c (reload_cse_simplify_set): (Ditto.).
9473         * reload1.c (choose_reload_regs): (Ditto.).
9474         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
9475         (MEMORY_MOVE_COST):  Revise documentation.
9476
9477         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
9478         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
9479         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
9480         type of 'in' argument to bool.
9481         (TARGET_MEMORY_MOVE_COST): Define.
9482
9483 2010-06-05  Jan Hubicka  <jh@suse.cz>
9484
9485         * ipa-pure-const.c (propagate): Fix typo in handling of functions
9486         that cannot return.  Be more careful when merging the results with
9487         previously known ones.
9488
9489 2010-06-05  Matthias Klose  <doko@ubuntu.com>
9490
9491         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
9492         function to add the -iplugindir option.
9493         (find_plugindir_spec_function): Add new declaration and function.
9494         (static_spec_func): Use it for "find-plugindir".
9495
9496 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
9497
9498         PR c++/44361
9499         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
9500         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
9501         statement expression.
9502
9503 2010-06-05  Jan Hubicka  <jh@suse.cz>
9504
9505         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
9506         (df_rd_problem_data): Convert sparse_invalidated_by_call,
9507         dense_invalidated_by_call to bitmap head.
9508         (df_rd_alloc, df_rd_bb_local_compute_process_def,
9509         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
9510         df_rd_start_dump, df_lr_verify_transfer_functions,
9511         df_live_verify_transfer_functions, df_chain_create_bb,
9512         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
9513         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
9514         df_simulate_one_insn_forwards, df_md_alloc,
9515         df_md_bb_local_compute_process_def,
9516         df_md_bb_local_compute_process_def, df_md_local_compute,
9517         df_md_transfer_function df_md_free): Update.
9518
9519 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
9520
9521         PR c/44322
9522         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
9523         target type for ADDR_EXPR; require no changes to qualifiers except
9524         for function types.
9525         * c-tree.h (c_build_type_variant): Remove.
9526
9527 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
9528
9529         * genautomata.c (get_excl_set): Do work per element, not per char.
9530         (check_presence_pattern_sets): Similar.
9531         (check_absence_pattern_sets): Similar.
9532
9533 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
9534
9535         * genautomata.c (curr_state_pass_num): Delete.
9536         (min_issue_delay_pass_states): Delete.
9537         (min_issue_delay): Delete.
9538         (initiate_min_issue_delay_pass_states): Delete.
9539         (output_min_issue_delay_table): Compute min_issue_delay_vect
9540         using a breadth-first search variant.
9541         (output_tables): Don't call initiate_min_issue_delay_pass_states.
9542
9543 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
9544
9545         PR boostrap/44421
9546         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
9547         (df_byte_lr_bb_local_compute): Likewise.
9548
9549 2010-06-03  Jason Merrill  <jason@redhat.com>
9550
9551         Implement noexcept operator (5.3.7)
9552         * c-common.c (c_common_reswords): Add noexcept.
9553         * c-common.h (enum rid): Add RID_NOEXCEPT.
9554
9555 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
9556
9557         * config/darwin-driver.c (darwin_default_min_version): Use
9558         GCC-specific formats in diagnostics.
9559         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
9560         diagnostics.
9561         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
9562         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
9563         eval_spec_function, handle_braces, process_brace_body, main,
9564         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
9565         getenv_spec_function, compare_version_strings,
9566         version_compare_spec_function): Use GCC-specific formats in
9567         diagnostics.
9568
9569 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
9570
9571         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
9572         that operand 0 and operand 1 are equal.
9573         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
9574         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
9575         and operand 1 are equal.
9576         <default>: Ditto.  Remove ??? comment.
9577         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
9578         and operand 1 are equal.
9579         <default>: Ditto.  Remove ??? comment.
9580         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
9581         are equal.
9582         (*add<mode>_4) <default>: Ditto.
9583         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
9584
9585 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
9586
9587         * config/i386/i386-protos.h (ix86_print_operand): Declare.
9588         * config/i386/i386.c (ix86_print_operand): Make non-static.
9589         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
9590         * output.h (output_operand): Declare.
9591         * final.c (output_operand): Make non-static.
9592
9593 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
9594
9595         PR rtl-optimization/44013
9596         * sched-deps.c (add_dependence_list_and_free): Don't free lists
9597         when processing debug insns.
9598
9599         PR debug/41371
9600         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
9601         recursing.  Check that recursion is bounded.  Rename inner var
9602         to avoid hiding incoming argument.
9603
9604 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
9605
9606         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
9607         operands[2] == 255.
9608         (*addqi_3): Ditto.
9609         (*addqi_4): Ditto.
9610         (*addqi_5): Ditto.
9611         (*addqi_ext_1_rex64): Ditto.
9612         (*addqi_ext_1): Ditto.
9613
9614         (*addqi_4): Check for incdec_operand in QImode.
9615
9616         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
9617         using SWI mode iterator.
9618         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
9619         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
9620         mode iterator.
9621         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
9622         using SWI mode iterator.
9623
9624 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9625
9626         PR c/25880
9627         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
9628         * c-format.c (gcc_diag_flag_specs): Add hash.
9629         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
9630         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
9631         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
9632         pp_c_cv_qualifiers. Handle qualifiers spelling here.
9633         (pp_c_type_qualifier_list): Call the function above.
9634         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
9635         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
9636         (WARN_FOR_QUALIFIERS): New macro.
9637         (convert_for_assignment): Use it.
9638
9639 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
9640
9641         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
9642
9643 2010-06-04  Jan Hubicka  <jh@suse.cz>
9644
9645         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
9646         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
9647         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
9648         DF_BYTE_LR_OUT): Update for embedded bitmaps.
9649         * fwprop.c (single_def_use_enter_block): Likewise.
9650         * ddg.c (create_ddg_dep_from_intra_loop_link,
9651         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
9652         * loop-iv.c (latch_dominating_def): Likewise.
9653         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
9654         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
9655         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
9656         df_rd_transfer_function, df_rd_top_dump,
9657         df_rd_bottom_dump): Update.
9658         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
9659         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
9660         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
9661         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
9662         df_lr_verify_solution_start, df_lr_verify_solution_end,
9663         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
9664         df_live_free_bb_info, df_live_alloc, df_live_reset,
9665         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
9666         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
9667         df_live_verify_solution_start, df_live_verify_solution_end,
9668         df_live_verify_transfer_functions, df_chain_create_bb,
9669         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
9670         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
9671         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
9672         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
9673         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
9674         df_byte_lr_transfer_function, df_byte_lr_top_dump,
9675         df_byte_lr_bottom_dump, df_create_unused_note,
9676         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
9677         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
9678         df_md_transfer_function, df_md_init, df_md_confluence_0,
9679         df_md_confluence_n,
9680         df_md_top_dump, df_md_bottom_dump): Update.
9681         (struct df_lr_problem_data): Embedd bitmap headers.
9682
9683 2010-06-04  Jan Hubicka  <jh@suse.cz>
9684
9685         * dce.c (dce_process_block): Do not re-scan already marked
9686         instructions.
9687
9688 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
9689
9690         PR rtl-optimization/39871
9691         PR rtl-optimization/40615
9692         PR rtl-optimization/42500
9693         PR rtl-optimization/42502
9694         * ira.c (init_reg_equiv_memory_loc: New function.
9695         (ira): Call it twice.
9696         * reload.h (calculate_elim_costs_all_insns): Declare.
9697         * ira-costs.c: Include "reload.h".
9698         (regno_equiv_gains): New static variable.
9699         (init_costs): Allocate it.
9700         (finish_costs): Free it.
9701         (ira_costs): Call calculate_elim_costs_all_insns.
9702         (find_costs_and_classes): Take estimated elimination costs
9703         into account.
9704         (ira_adjust_equiv_reg_cost): New function.
9705         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
9706         * reload1.c (init_eliminable_invariants, free_reg_equiv,
9707         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
9708         (elim_bb): New static variable.
9709         (reload): Move code out of here into init_eliminable_invariants and
9710         free_reg_equiv.  Call them.
9711         (calculate_elim_costs_all_insns): New function.
9712         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
9713         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
9714         but call note_reg_elim_costly if we turned a valid memory address
9715         into an invalid one.
9716         * Makefile.in (ira-costs.o): Depend on reload.h.
9717
9718 2010-06-04  Julian Brown  <julian@codesourcery.com>
9719
9720         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
9721         for pool ranges.
9722
9723 2010-06-04  Richard Guenther  <rguenther@suse.de>
9724
9725         PR lto/41584
9726         * cgraph.h (struct varpool_node): Add lto_file_data field.
9727         * lto-cgraph.c (input_varpool_node): Initialize it.
9728
9729 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
9730
9731         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
9732         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
9733         predicate in "type" attribute calculation.
9734         (*addsi_1_zext): Ditto.
9735         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
9736         (*addsi_2_zext): Ditto.
9737         (*add<mode>_3): Ditto.
9738         (*addsi_3_zext): Ditto.
9739         (*add<mode>_5): Ditto.
9740
9741 2010-06-03  Jan Hubicka  <jh@suse.cz>
9742
9743         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
9744         of bitmap_bit_p.
9745         * cfganal.c (compute_dominance_frontiers_1): Likewise.
9746
9747 2010-06-03  Jan Hubicka  <jh@suse.cz>
9748
9749         * df-problems.c (df_create_unused_note, df_note_bb_compute):
9750         micro-optimize the checks when to add new note.
9751
9752 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
9753
9754         * final.c (output_asm_insn): Call
9755         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
9756         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
9757         (output_address): Call targetm.asm_out.print_operand_address.
9758         Update comments.
9759         * target.h (struct gcc_target): Add print_operand,
9760         print_operand_address, and print_operand_punct_valid_p fields.
9761         * targhooks.h (default_print_operand): Declare.
9762         (default_print_operand_address): Declare.
9763         (default_print_operand_punct_valid_p): Declare.
9764         * targhooks.c (default_print_operand): Define.
9765         (default_print_operand_address): Define.
9766         (default_print_operand_punct_valid_p): Define.
9767         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
9768         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
9769         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
9770         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
9771         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
9772         * vmsdbgout.c (addr_const_to_string): Update comment.
9773         * config/i386/i386.c (print_operand): Rename to...
9774         (ix86_print_operand): ...this.  Make static.
9775         (print_operand_address): Rename to...
9776         (ix86_print_operand_address): ...this.  Make static.  Call
9777         ix86_print_operand instead of PRINT_OPERAND.
9778         (ix86_print_operand_punct_valid_p): New function.
9779         (TARGET_PRINT_OPERAND): Define.
9780         (TARGET_PRINT_OPERAND_ADDRESS): Define.
9781         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
9782         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
9783         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
9784         (PRINT_OPERAND): Delete.
9785         (PRINT_OPERAND_ADDRESS): Delete.
9786         * config/i386/i386-protos.h (print_operand): Delete prototype.
9787         (print_operand_address): Delete prototype.
9788
9789 2010-06-03  Richard Guenther  <rguenther@suse.de>
9790
9791         PR tree-optimization/44403
9792         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9793         Preserve pointer qualifiers.
9794         (vect_create_data_ref_ptr): Likewise.
9795
9796 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
9797
9798         PR c++/44294
9799         * defaults.h (MAX_FIXED_MODE_SIZE): New.
9800
9801         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
9802
9803 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
9804
9805         PR debug/44375
9806         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
9807         return false if merging the bbs would lead to goto_locus
9808         location being lost from the IL.
9809
9810 2010-06-03  Jan Hubicka  <jh@suse.cz>
9811             Jakub Jelinek  <jakub@redhat.com>
9812
9813         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
9814         set->regs[i] is NULL or has just one entry.
9815
9816 2010-06-03  Jan Hubicka  <jh@suse.cz>
9817
9818         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
9819         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
9820
9821 2010-06-03  Paul Brook  <paul@codesourcery.com>
9822
9823         * config/arm/arm.c (FL_TUNE): Define.
9824         (arm_default_cpu, arm_cpu_select): Remove.
9825         (all_cores): Populate core field.
9826         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
9827         (arm_find_cpu): New function.
9828         (arm_handle_option): Lookup cpu/architecture names.
9829         (arm_override_options): Cleanup mcpu/march/mtune handling.
9830         (arm_file_start): Ditto.
9831
9832 2010-06-03  Alan Modra  <amodra@gmail.com>
9833
9834         PR target/44169
9835         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
9836         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
9837         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
9838         (rs6000_emit_load_toc_table): Likewise.
9839
9840 2010-06-02  Jan Hubicka  <jh@suse.cz>
9841
9842         * passes.c (init_optimization_passes): Put ipa reference
9843         after ipa pure-const.
9844
9845 2010-06-02  Jan Hubicka  <jh@suse.cz>
9846
9847         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
9848         calls_read_all and calls_write_all.
9849         (get_reference_optimization_summary): Fix formatting.
9850         (is_proper_for_analysis): Check that decl is not readonly.
9851         (propagate_bits): Check CONST/PURE/noreturn flags.
9852         (ipa_init): Move all_module_statics to optimization_summary_obstack.
9853         (analyze_function): Ignore indirect edges.
9854         (copy_global_bitmap): For all module statics, do nothing.
9855         (generate_summary): Do not print calls_read_all/calls_write_all.
9856         (read_write_all_from_decl): Take node as argument; check
9857         cgraph_node_cannot_return.
9858         (propagate): Reorganize read_all/write_all computation;
9859         check indirect edges; check ecf flags; use all_module_statics
9860         in the results; do not free all_module_statics.
9861         (stream_out_bitmap): Handle all_module_statics.
9862         (ipa_reference_write_optimization_summary): Likewise; use
9863         varpool/cgraph encoders to get boundaries.
9864         (ipa_reference_read_optimization_summary): Read in all_module_statics;
9865         use it when possible.
9866
9867 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
9868
9869         PR target/44218
9870         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
9871         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
9872
9873         * doc/extend.texi (powerpc builtins): Document vec_recip,
9874         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
9875
9876         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
9877         (rs6000_emit_swrsqrt): Ditto.
9878         (rs6000_emit_swdivsf): Delete.
9879         (rs6000_emit_swdivdf): Ditto.
9880         (rs6000_emit_swrsqrtsf): Ditto.
9881
9882         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
9883         describe the reciprocal estimate support for each type.
9884         (recip_options): Map -mrecip=<opt> into option bits.
9885         (gen_2arg_fn_t): New typedef for binary rtx gen function.
9886         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
9887         reciprocal estimate instructions.
9888         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
9889         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
9890         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
9891         cost information if -mdebug=cost or -mdebug=reg.
9892         (rs6000_override_options): Set -mrecip-precision for power6, and
9893         power7 machines.  If -mvsx or -mdfp, enable various options that
9894         came in previous instruction set ISAs, unless the option was
9895         explicitly disabled by the command line option.  Parse
9896         -mrecip=<opt> options.
9897         (rs6000_builtin_vectorized_function): Add support for vectorizing
9898         the reciprocal estimate builtins and expansions.
9899         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
9900         (bdesc_2arg): Add reciprocal estimate builtins.
9901         (bdesc_1arg): Add reciprocal square root estimate builtins.
9902         (rs6000_expand_builtin): Rewrite to use a switch statement,
9903         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
9904         (rs6000_init_builtins): Create declarations for reciprocal
9905         estimate builtins.
9906         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
9907         sized, prefer traditional floating point registers, if integer
9908         vector types, prefer altivec registers.  Don't actually look at
9909         the memory address any more.
9910         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
9911         builtins.
9912         (rs6000_load_constant_and_splat): New helper function to load up
9913         the constant for reciprocal estimate instructions.
9914         (rs6000_emit_madd): New helper function for generating
9915         multiply/add type instructions, based on the current switches.
9916         (rs6000_emit_msub): Ditto.
9917         (rs6000_emit_mnsub): Ditto.
9918         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
9919         replace a divide with a reciprocal estimate and fixup, adding
9920         support for machines with high precision and vectors.
9921         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
9922         low precision machines.
9923         (rs6000_emit_swdiv): New common function to be called to replace a
9924         division with reciprocal estimate and fixup.
9925         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
9926         for double and vector types.  Add support for high precision machines.
9927
9928         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
9929         the reciprocal estimate instructions can be generated.
9930         (TARGET_FRE): Ditto.
9931         (TARGET_FRSQRTES): Ditto.
9932         (TARGET_FRSQRTE): Ditto.
9933         (RS6000_RECIP_*): New macros for reciprocal estimate support.
9934
9935         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
9936         square root estimate on vectors.
9937         (re<mode>2): New insn for reciprocal division estimate on vectors.
9938
9939         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
9940         New builtin.
9941         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
9942         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
9943         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
9944         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
9945         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
9946         (RS6000_BUILTIN_RSQRT): Ditto.
9947         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
9948         floating point builtin.
9949
9950         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9951         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
9952         __RECIP_PRECISION__ based on the command line switches.
9953         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
9954
9955         * config/rs6000/rs6000.opt (-mrecip): Document add support for
9956         replacing division instructions with reciprocal estimate and fixup.
9957         (-mrecip=<opt>): New option.
9958         (-mrecip-precision): Ditto.
9959
9960         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
9961         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
9962         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
9963         precision scalar.
9964
9965         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
9966         (UNSPEC_VREFP): Ditto.
9967         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
9968         conterparts with regard to support of -mno-fused-madd and -ffast-math.
9969         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
9970         reciprocal estimate instructions to be generated.
9971         (altivec_vrefp): Ditto.
9972
9973         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
9974         estimate support.
9975         (rreg): New mode attribute for reciprocal estimate support.
9976         (recip<mode>3): New insn for division using reciprocal estimate
9977         and fixup builtins.
9978         (divide define_split): New define_split to convert floating point
9979         division to use reciprocal estimate if the user used the
9980         appropriate options and the split is run when we can add new
9981         pseudo registers for the fixup.
9982         (rsqrt<mode>2): New insn for reciprocal square root support.
9983         (recipsf3): Move into recip<mode>3.
9984         (recipdf3): Ditto.
9985         (fres): Use TARGET_FRES.
9986         (rsqrtsf2): Move into rsqrt<mode>2.
9987         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
9988         (copysignsf3): Add support for VSX.
9989         (fred): Use TARGET_FRE.
9990         (fred_fpr): Ditto.
9991         (rsqrtdf_internal1): New function for frsqrte instruciton.
9992
9993         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
9994         (vec_rsqrt): Ditto.
9995
9996 2010-06-03  Richard Guenther  <rguenther@suse.de>
9997
9998         PR middle-end/44291
9999         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
10000         (set_user_assembler_libfunc): Likewise.
10001
10002 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
10003
10004         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
10005         defaults.h.
10006         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
10007         to defaults.h
10008         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
10009         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
10010         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
10011         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
10012         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
10013         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
10014         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
10015         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
10016         * defaults.h: Updated for above mentioned changes.
10017
10018 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
10019
10020         * c-common.c: Remove header include of tm_p.h.
10021         * Makefile.in (c-common.o): Remove TM_P_H dependency.
10022
10023 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
10024
10025         * tree.h (struct tree_decl_map): New type.
10026         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
10027         (tree_decl_map_hash): New prototype.
10028         (debug_expr_for_decl, value_expr_for_decl): Change into
10029         tree_decl_map hashtab from tree_map.
10030         (init_ttree): Adjust initialization.
10031         (tree_decl_map_hash): New function.
10032         (decl_debug_expr_lookup, decl_debug_expr_insert,
10033         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
10034
10035 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10036
10037         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
10038         linker emulations.
10039         * configure: Regenerate.
10040         * config.in: Regenerate.
10041
10042         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
10043         (X86_64_EMULATION): Define.
10044         (TARGET_LD_EMULATION): Use them.
10045
10046         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
10047         (SPARC64_EMULATION): Define.
10048         (LINK_ARCH_SPEC): Use them.
10049
10050 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
10051
10052         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
10053         smallest_mode_for_size for computing the precision types of new
10054         graphite IVs.  Do not call lang_hooks.types.type_for_size.
10055
10056 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
10057
10058         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
10059         information.
10060         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
10061
10062 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
10063
10064         PR middle-end/44363
10065         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
10066         return false instead.
10067
10068 2010-06-02  Jan Hubicka  <jh@suse.cz>
10069
10070         PR middle-end/44295
10071         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
10072         create new cgraph node to check callee.
10073
10074 2010-06-02  Richard Guenther  <rguenther@suse.de>
10075
10076         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
10077
10078 2010-06-02  Richard Guenther  <rguenther@suse.de>
10079
10080         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
10081         (lto_wrapper_cleanup): ... this.  Do not exit.
10082         (fatal): Adjust.  Exit here.
10083         (fatal_perror): Likewise.
10084         (fatal_signal): New function.
10085         (main): Set up signal handlers to cleanup temporary files.
10086         * Makefile.in (lto-wrapper.o): Adjust dependencies.
10087
10088 2010-06-02  Richard Guenther  <rguenther@suse.de>
10089
10090         PR tree-optimization/44377
10091         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
10092
10093 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10094
10095         * config/s390/2097.md (z10_fhex): Remove insn reservation.
10096         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
10097         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
10098         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
10099         instruction.
10100         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
10101
10102 2010-06-02  Jan Hubicka  <jh@suse.cz>
10103
10104         * bitmap.c (bitmap_descriptor): Add search_iter.
10105         (bitmap_find_bit): Increment it.
10106         (print_statistics): Print it.
10107
10108 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
10109
10110         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
10111         instead of gimple_build_call_vec.  Delete unnecessary local variable.
10112
10113 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
10114
10115         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
10116         change from yesterday.
10117
10118 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
10119
10120         * c-ada-spec.c: Clean up redundant includes.
10121
10122 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
10123
10124         * gimplify.c: Do not include except.h and optabs.h.
10125         (gimplify_body): Do not initialize RTL profiling.
10126         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
10127         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
10128         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
10129         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
10130         langhooks.h.
10131
10132         * tree-pretty-print.h: Include pretty-print.h.
10133         * gimple-pretty-print.h: Include pretty-print.h.
10134
10135         * tree-pretty-print.c: Do not include diagnostic.h.
10136         * tree-vrp.c: Likewise.
10137         * tree-tailcall.c: Likewise
10138         * tree-scalar-evolution.c: Likewise
10139         * tree-ssa-dse.c: Likewise
10140         * tree-chrec.c: Likewise
10141         * tree-ssa-sccvn.c: Likewise
10142         * tree-ssa-copyrename.c: Likewise
10143         * tree-nomudflap.c: Likewise
10144         * tree-call-cdce.c: Likewise
10145         * tree-stdarg.c: Likewise
10146         * tree-ssa-math-opts.c: Likewise
10147         * tree-nrv.c: Likewise
10148         * tree-ssa-sink.c: Likewise
10149         * tree-browser.c: Likewise
10150         * tree-ssa-loop-ivcanon.c: Likewise
10151         * tree-ssa-loop.c: Likewise
10152         * tree-parloops.c: Likewise
10153         * tree-ssa-address.c: Likewise
10154         * tree-ssa-ifcombine.c: Likewise
10155         * tree-if-conv.c: Likewise
10156         * tree-data-ref.c: Likewise
10157         * tree-affine.c: Likewise
10158         * tree-ssa-phiopt.c: Likewise
10159         * tree-ssa-coalesce.c: Likewise
10160         * tree-ssa-pre.c: Likewise
10161         * tree-ssa-live.c: Likewise
10162         * tree-predcom.c: Likewise
10163         * tree-ssa-forwprop.c: Likewise
10164         * tree-ssa-dce.c: Likewise
10165         * tree-ssa-ter.c: Likewise
10166         * tree-ssa-loop-prefetch.c: Likewise
10167         * tree-optimize.c: Likewise
10168         * tree-ssa-phiprop.c: Likewise
10169         * tree-object-size.c: Likewise
10170         * tree-outof-ssa.c: Likewise
10171         * tree-ssa-structalias.c: Likewise
10172         * tree-switch-conversion.c: Likewise
10173         * tree-ssa-reassoc.c: Likewise
10174         * tree-ssa-operands.c: Likewise
10175         * tree-vectorizer.c: Likewise
10176         * tree-vect-data-refs.c: Likewise
10177         * tree-vect-generic.c: Likewise
10178         * tree-vect-stmts.c: Likewise
10179         * tree-vect-patterns.c: Likewise
10180         * tree-vect-slp.c: Likewise
10181         * tree-vect-loop.c: Likewise
10182         * tree-ssa-loop-ivopts.c: Likewise
10183         * tree-ssa-loop-im.c: Likewise
10184         * tree-ssa-loop-niter.c: Likewise
10185         * tree-ssa-loop-unswitch.c: Likewise
10186         * tree-ssa-loop-manip.c: Likewise
10187         * tree-ssa-loop-ch.c: Likewise
10188         * tree-dump.c: Likewise
10189         * tree-complex.c: Likewise
10190
10191         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
10192         * tree-ssa-uninit.c: Likewise
10193         * tree-ssa-threadupdate.c: Likewise
10194         * tree-ssa-uncprop.c: Likewise
10195         * tree-ssa-ccp.c: Likewise
10196         * tree-ssa-dom.c: Likewise
10197         * tree-ssa-propagate.c: Likewise
10198         * tree-ssa-alias.c: Likewise
10199         * tree-dfa.c: Likewise
10200         * tree-cfgcleanup.c: Likewise
10201         * tree-sra.c: Likewise
10202         * tree-ssa-copy.c: Likewise
10203         * tree-ssa.c: Likewise
10204         * tree-profile.c: Likewise
10205         * tree-cfg.c: Likewise
10206         * tree-ssa-threadedge.c: Likewise
10207         * tree-vect-loop-manip.c: Likewise
10208
10209         * tree-inline.c: Do not include diagnostic.h and expr.h.
10210         Include rtl.h.
10211         (copy_decl_for_dup_finish): Do not use NULL_RTX.
10212
10213         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
10214         * tree-loop-distribution.c: Likewise.
10215
10216 2010-06-01  Jan Hubicka  <jh@suse.cz>
10217
10218         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
10219
10220 2010-06-01  Jan Hubicka  <jh@suse.cz>
10221
10222         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
10223         remove return value.
10224         (split_bbs_on_noreturn_calls) .... here.
10225         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
10226         * tree-flow.h (fixup_noreturn_call): New.
10227
10228 2010-06-01  Jan Hubicka  <jh@suse.cz>
10229
10230         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
10231
10232 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
10233
10234         * tree.h (build_nt_call_list): Delete.
10235         * tree.c (build_nt_call_list): Delete.
10236
10237 2010-06-01  Jan Hubicka  <jh@suse.cz>
10238
10239         * fwprop.c: Make emit-rtl.h include last.
10240         * rtlanal.c: Include emit-rtl.h.
10241         * genautomata.c: Output emit-rtl include into insn-automata.c
10242         * df-scan.c: Include emit-rtl.h.
10243         * haifa-sched.c: Indlude emit-rtl.h.
10244         * mode-switching.c: Indlude emit-rtl.h.
10245         * graph.c: Indlude emit-rtl.h.
10246         * sel-sched.c: Include emit-rtl.h.
10247         * sel-sched-ir.c: Include emit-rtl.h.
10248         * ira-build.c: Include emit-rtl.h.
10249         * emit-rtl.c (first_insn, last_insn): Remove defines.
10250         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
10251         Move to emit-rtl.h.
10252         (set_new_first_and_last_insn, get_last_insn_anywhere,
10253         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
10254         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
10255         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
10256         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
10257         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
10258         Use accessor functions.
10259         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
10260          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
10261         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
10262         mem_expr_equal_p): Move here from rtl.h.
10263         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
10264         Move here from emit-rtl.c; make inline.
10265         * cfglayout.h: Include emit-rtl.h.
10266         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
10267          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
10268         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
10269         mem_expr_equal_p, get_insns, set_first-insn,
10270         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
10271         * reg-stack.c: Include emit-rtl.h.
10272         * dce.c: Likewise.
10273
10274 2010-06-01  Jan Hubicka  <jh@suse.cz>
10275
10276         * cgraph.h (tree_function_versioning): Update prototype.
10277         (cgraph_function_versioning): Update prototype.
10278         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
10279         bitmap.
10280         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
10281         (cgraph_materialize_clone, save_inline_function_body): Update use of
10282         tree_function_versioning.
10283         * tree-inline.c (copy_bb): Look for previous copied block to link
10284         after; fix debug output.
10285         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
10286         (copy_body): Likewise.
10287         (expand_call_inline): Update use of copy_body.
10288         (tree_function_versioning): Update use of copy body; accept
10289         blocks_to_copy and new_entry.
10290
10291 2010-06-01  Jan Hubicka  <jh@suse.cz>
10292
10293         * gegenrtl.c: Remove unnecesary prototypes.
10294         (gendecl): Remove.
10295         (gendef): Produce static inline.
10296         (gencode): Remove.
10297         (main): Do not decode parameters; generate header only.
10298         * Makefile.in (genrtl.c): Remove.
10299
10300 2010-06-01  Jan Hubicka  <jh@suse.cz>
10301
10302         * tree-switch-conversion.c (build_one_array): Make it readonly.
10303
10304 2010-06-01  Richard Guenther  <rguenther@suse.de>
10305
10306         * optabs.c (init_optabs): Guard all accesses to reinit.
10307         * ipa-pure-const.c (propagate): Fix another typo.
10308         * opts.c (common_handle_option): Split assignment to bool.
10309         * c-opts.c (c_common_handle_option): Likewise.
10310
10311 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
10312             Matthew Gingell  <gingell@adacore.com>
10313
10314         * doc/invoke.texi: Mention -fdump-ada-spec.
10315         * tree-dump.c (dump_files): Add ada-spec.
10316         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
10317         * tree-pass.h (tree_dump_index): Add TDI_ada.
10318         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
10319         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
10320         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
10321         * c-decl.c: Include c-ada-spec.h.
10322         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
10323         functions.
10324         (c_write_global_declarations): Add handling of -fdump-ada-spec.
10325         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
10326         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
10327         * c-ada-spec.h, c-ada-spec.c: New files.
10328
10329 2010-06-01  Richard Guenther  <rguenther@suse.de>
10330
10331         PR lto/43853
10332         * ipa-pure-const.c (get_function_state): Hand back varying state
10333         if we do not have one.
10334         (has_function_state): New function.
10335         (duplicate_node_data): Adjust.
10336         (remove_node_data): Likewise.
10337         (pure_const_write_summary): Likewise.
10338         (propagate): Likewise.  Fix typo.
10339
10340 2010-06-01  Jan Hubicka  <jh@suse.cz>
10341
10342         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
10343         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
10344         (execute_all_ipa_transforms): Do not play with the states.
10345
10346 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
10347
10348         * config/arm/t-linux-androideabi: New.
10349         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
10350
10351 2010-06-01  Jan Hubicka  <jh@suse.cz>
10352
10353         * tree-inline.c (estimate_num_insns): For stdarg functions look
10354         into call statement to count cost of argument passing.
10355
10356 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
10357
10358         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
10359         argument for fprintf.
10360         (ix86_output_addr_diff_elt): Likewise.
10361         (x86_function_profiler): Likewise.
10362         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
10363         (LPREFIX): Likewise.
10364         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
10365
10366 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
10367
10368         PR target/44338
10369         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
10370         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
10371         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
10372         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
10373         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
10374         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
10375         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
10376         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
10377         TARGET_FUSED_MADD.
10378
10379 2010-05-31  Jan Hubicka  <jh@suse.cz>
10380
10381         * tree.h (tree_range_check_failed): Declare noreturn.
10382
10383 2010-05-31  Jan Hubicka  <jh@suse.cz>
10384
10385         * gimple.c (gimple_call_builtin_p): New function.
10386         * gimple.h (gimple_call_builtin_p): Declare.
10387         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
10388         to exit.
10389         (execute_warn_function_return): BUILT_IN_RETURN is return.
10390         (split_critical_edges): Return edges are not critical.
10391         (is_ctrl_altering_stmt): Builtin_in_return is altering.
10392         (gimple_verify_flow_info): Handle built_in_return.
10393         (execute_warn_function_return): Handle built_in_return.
10394         * ipa-pure-const.c (check_call): Ignore builtin_return.
10395
10396 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
10397
10398         PR middle-end/44337
10399         * expr.c (expand_assignment): Don't store anything for out-of-bounds
10400         array accesses with non-MEM.
10401
10402         PR tree-optimization/44182
10403         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
10404         newly needs to end a bb is followed by debug stmts, instead return
10405         true from the function at the end.
10406         (maybe_move_debug_stmts_to_successors): New function.
10407         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
10408
10409 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
10410
10411         PR target/44161
10412         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
10413
10414 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
10415
10416         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
10417         for nested functions in non-optimized compilation.
10418
10419 2010-05-31  Richard Guenther  <rguenther@suse.de>
10420
10421         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
10422
10423 2010-05-30  Jan Hubicka  <jh@suse.cz>
10424
10425         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
10426
10427 2010-05-30  Richard Guenther  <rguenther@suse.de>
10428
10429         PR lto/42975
10430         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
10431         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
10432         no longer needed.
10433
10434 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
10435
10436         * config/darwin.c (output_objc_section_asm_op): Add comment.
10437         (name_needs_quotes): Add '_' to list of valid comment chars.
10438         (machopic_output_function_base_name): Remove unneeded quotes.
10439         (darwin_encode_section_info): Adjust asm whitespace.
10440         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
10441         (ASM_OUTPUT_LOCAL): Ditto.
10442         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
10443         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
10444         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
10445
10446 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
10447
10448         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
10449         RS6000_OUTPUT_BASENAME unconditionally.
10450         (rs6000_output_function_epilogue): Likewise.
10451
10452 2010-05-30  Jan Hubicka  <jh@suse.cz>
10453
10454         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
10455         nodes.
10456
10457 2010-05-30  Richard Guenther  <rguenther@suse.de>
10458
10459         * tree-cfg.c (verify_gimple_assign_single): Implement
10460         verification for COND_EXPR rhs.
10461
10462 2010-05-30  Jan Hubicka  <jh@suse.cz>
10463
10464         * cgraph.h (cgraph_dump_file): Declare.
10465         * cgraphunit.c (cgraph_dump_file): Export.
10466         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
10467
10468 2010-05-30  Jan Hubicka  <jh@suse.cz>
10469
10470         * dwarf2out.c (reference_to_unused,
10471         premark_types_used_by_global_vars_helper): Avoid creation of new
10472         varpool nodes.
10473
10474 2010-05-30  Jan Hubicka  <jh@suse.cz>
10475
10476         * cgraph.h (cgraph_node_cannot_return,
10477         cgraph_edge_cannot_lead_to_return): New functions.
10478         * cgraph.c (cgraph_node_cannot_return,
10479         cgraph_edge_cannot_lead_to_return): Use them.
10480         * ipa-pure-const.c (pure_const_names): New static var.
10481         (check_call): Handle calls not leading to return.
10482         (pure_const_read_summary): Dump info read.
10483         (propagate): Dump info about propagation process; ignore side effects
10484         of functions not leading to exit; fix handling of pure functions.
10485
10486 2010-05-30  Jan Hubicka  <jh@suse.cz>
10487
10488         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
10489         for tail call epilogues.
10490
10491 2010-05-30  Jan Hubicka  <jh@suse.cz>
10492
10493         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
10494         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
10495         dump files.
10496
10497 2010-05-29  Jan Hubicka  <jh@suse.cz>
10498
10499         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
10500         node; remove references in node we no longer keep in cgrpah but need
10501         body of.
10502
10503 2010-05-29  Jan Hubicka  <jh@suse.cz>
10504
10505         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
10506
10507 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10508
10509         PR target/44165
10510         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
10511
10512 2010-05-29  Jan Hubicka  <jh@suse.cz>
10513
10514         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
10515         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
10516         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
10517         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
10518         debug_names_replaced_by, debug_update_ssa): Likewise.
10519         * sbitmap.c (debug_sbitmap): Likewise.
10520         * genrecog.c (debug_decision, debug_decision_list): Likewise.
10521         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
10522         debug_tree_chain): Likewise.
10523         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
10524         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
10525         * optabs.c (debug_optab_libfuncs): Likewise.
10526         (verify_loop_closed_ssa): Likewise.
10527         * value-prof.c (verify_histograms): Likewise.
10528         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
10529         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
10530         * cfghooks.c (verify_flow_info): Likewise.
10531         * fold-const.c (debug_fold_checksum): Likewise.
10532         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
10533         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
10534         Likewise.
10535         * omega.c (debug_omega_problem): Likewise.
10536         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
10537         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
10538         * dominance.c (verify_dominators, debug_dominance_info,
10539         debug_dominance_tree): Likewise.
10540         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
10541         * df_regno_debug, df_ref_debug,
10542         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
10543         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
10544         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
10545         * sel-sched.c (debug_state): Likewise.
10546         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
10547         Likewise.
10548         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
10549         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
10550         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
10551         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
10552         Likewise.
10553         * c-pretty-print.c (debug_c_tree): Likewise.
10554         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
10555         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
10556         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
10557         * ebitmap.c (debug_ebitmap): Likewise.
10558         * function.c (debug_find_var_in_block_tree): Likewise.
10559         * print-rtl.c (debug_rtx): Likewise.
10560         (debug_rtx_count): Likewise.
10561         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
10562         * stor-layout.c (debug_rli): Likewise.
10563         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
10564         * tree-data-ref.c (debug_data_references,
10565         debug_data_dependence_relations, debug_data_reference,
10566         debug_data_dependence_relation, debug_rdg_vertex,
10567         debug_rdg_component, debug_rdg): Likewise.
10568         * tree-affine.c (debug_aff): Likewise.
10569         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
10570         Likewise.
10571         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
10572         * emit-rtl.c (verify_rtl_sharing): Likewise.
10573         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
10574         debug_value_expressions): Likewise.
10575         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
10576         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
10577         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
10578         * cfglayout.c (verify_insn_chain): Likewise.
10579         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
10580         debug_clast_stmt, debug_generated_program): Likewise.
10581         * ggc-page.c (debug_print_page_list): Likewise.
10582         * tree-ssa-ter.c (debug_ter): Likewise.
10583         * graphite-dependences.c (debug_pddr): Likewise.
10584         * sched-deps.c (debug_ds): Likewise.
10585         * tree-ssa.c (verify_ssa): Likewise.
10586         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
10587         debug_scattering_functions, debug_iteration_domains, debug_pdr,
10588         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
10589         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
10590         * tree-inline.c (debug_find_tree): Likewise.
10591         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
10592         debug_ppl_powerset_matrix): Likewise.
10593         * var-tracking.c (debug_dv): Likewise.
10594         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
10595         * cfgloop.c (verify_loop_structure): Likewise.
10596         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
10597         * c-common.c (verify_sequence_points): Likewise.
10598         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
10599         debug_candidates, debug_rgn_dependencies): Likewise.
10600         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
10601         * debug_constraint_graph, debug_solution_for_var,
10602         debug_sa_points_to_info): Likewise.
10603         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
10604         Likewie.
10605         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
10606         debug_loops, debug_loop, debug_loop_num): Likewise.
10607         * passes.c (debug_pass): Likewise.
10608         (dump_properties): Likewise; add cfglayout property.
10609         (debug_properties): Likewise.
10610         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
10611         * varpool.c (debug_varpool): Likewise.
10612         * regcprop.c (debug_value_data): Likewise.
10613         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
10614         debug_immediate_uses_for): Likewise.
10615
10616 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
10617
10618         PR bootstrap/44315
10619         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
10620         Filter out insn-flags.h.
10621
10622 2010-05-29  Jan Hubicka  <jh@suse.cz>
10623
10624         * cgraph.h (struct varpool_node_set_def,
10625         struct cgraph_node_set_def): Remove unused AUX pointer.
10626         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
10627         VEC_empty macro.
10628
10629 2010-05-29  Jan Hubicka  <jh@suse.cz>
10630
10631         PR middle-end/44324
10632         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
10633
10634 2010-05-29  Richard Guenther  <rguenther@suse.de>
10635
10636         * lto-streamer.c (cached_bp): New global variable.
10637         (bitpack_create): Return the cached bitpack, if available.
10638         (bitpack_delete): Clear and cache the bitpack, if appropriate.
10639         (bp_pack_value): Remove redundant asserts.
10640
10641 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
10642
10643         PR middle-end/44306
10644         * tree-if-conv.c (is_true_predicate): New.
10645         (is_predicated): Use is_true_predicate.
10646         (add_to_predicate_list): Same.  Do not use unshare_expr.
10647         (add_to_dst_predicate_list): Same.
10648
10649 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
10650
10651         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
10652         field on edges.
10653         (predicate_bbs): Same.
10654         (clean_predicate_lists): Same.
10655         (find_phi_replacement_condition): Do not AND the predicate from
10656         edge->aux.
10657
10658 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
10659
10660         PR bootstrap/44315
10661         * Makefile.in (build/gencondmd.o): Add a missing `\'.
10662
10663 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10664
10665         PR target/44261
10666         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
10667         (negdf2): Adjust expander pattern and use negdf2_slow.
10668         (negsf2): Likewise.
10669
10670 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
10671
10672         * basic-block.h (struct control_flow_graph): Move last_label_uid field
10673         up.
10674         * df.h (struct df_base_ref): Move regno field up.
10675         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
10676         * expr.h (struct separate_ops): Move location field up.
10677         * optabs.h (struct optab_d): Move libcall_basename field down.
10678         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
10679         * config/i386/i386.h (struct machine_function): Convert call_abi field
10680         into a bitfield.  Move cfa field to the end of the structure.
10681
10682 2010-05-29  Jan Hubicka  <jh@suse.cz>
10683
10684         * varpool.c (varpool_get_node): Fix lookup.
10685
10686 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10687
10688         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
10689         RTL specific prototypes with #ifdef RTX_CODE.
10690         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
10691         * config/spu/t-spu-elf: Fix dependencies.
10692
10693         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
10694
10695 2010-05-29  Mike Stump  <mikestump@comcast.net>
10696
10697         PR bootstrap/44315
10698         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
10699         TM_H when building to avoid dependency loops.
10700
10701 2010-05-29  Jan Hubicka  <jh@suse.cz>
10702
10703         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
10704         refs and body; not the whole node for masters of materialized clones.
10705
10706 2010-05-29  Mike Stump  <mikestump@comcast.net>
10707
10708         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
10709
10710 2010-05-29  Jan Hubicka  <jh@suse.cz>
10711
10712         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
10713         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
10714         use of clone_function_name.
10715         * cgraph.h (cgraph_create_virtual_clone,
10716         cgraph_function_versioning): update prototypes.
10717         (clone_function_name): Declare.
10718         * ipa-cp.c (ipcp_insert_stage): Update call of
10719         cgraph_create_virtual_clone.
10720         * omp-low.c (create_omp_child_function_name): Use
10721         cgraph_create_virtual_clone.
10722         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
10723         (cgraph_function_versioning): Take SUFFIX argument; produce new name
10724         and make decl local.
10725
10726 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10727
10728         * vec.h: Include statistics.h
10729         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
10730         with VEC_H.
10731
10732 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10733
10734         * c-lex.c: Do not include c-tree.h.
10735         * c-pretty-print.c: Likewise.
10736         * c-opts.c: Likewise.
10737         * c-gimplify.c: Likewise.
10738         * c-common.c: Likewise.
10739         * c-dump.c: Likewise.  Include c-common.h.
10740
10741 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10742
10743         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
10744         before including diagnostic-core.h.
10745         (c_cpp_error): New prototype moved from c-tree.h.
10746         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
10747         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
10748         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
10749         (c_cpp_error): Prototype moved to c-common.h.
10750         * Makefile.in: Update dependency for C_COMMON_H.
10751
10752 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10753
10754         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
10755         * c-common.c (c_register_addr_space): Remove here.
10756         * c-decl.c (c_register_addr_space): Re-add here.
10757
10758 2010-05-28  Mike Stump  <mikestump@comcast.net>
10759
10760         * config/darwin-c.c: Remove c-tree.h include.
10761
10762 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
10763
10764         * gcc.c: Include diagnostic.h.
10765         (error_count): Remove.  All users changed to use errorcount.
10766         (programname): Remove.  All users changed to use progname.
10767         (fancy_abort, internal_error, fatal_error, error, warning, inform,
10768         fnotice): Remove.
10769         (execute): Don't include "Internal error" and bug reporting
10770         information in argument of internal_error call.
10771         (process_command): Don't increment error_count after calling
10772         perror_with_name.
10773         (input_filename): Rename to gcc_input_filename.  All users
10774         changed.
10775         (main): Call diagnostic_initialize.  Register delete_temp_files
10776         with atexit.  Use seen_error to test for errors.
10777         * gcc.h: Include diagnostic-core.h.
10778         (fatal_error, error, warning): Remove.
10779         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
10780         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
10781         (gcc.o): Update dependencies.
10782
10783 2010-05-28  Jeff Law  <law@redhat.com>
10784
10785         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
10786         functions.
10787         * ira.h (ira_bad_reload_regno): Declare
10788         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
10789
10790         * ira-color.c (update_curr_costs): Free updated hard reg costs.
10791         (ira_reassign_conflict_allocnos): Remove bogus asserts.
10792         (allocno_reload_assign): Likewise.
10793
10794 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
10795
10796         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
10797         build1_stat.
10798
10799 2010-05-28  Richard Guenther  <rguenther@suse.de>
10800
10801         PR lto/44312
10802         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
10803         Stream fixed-point constants mode.
10804         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
10805         and TYPE_PRECISION.
10806         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
10807         Stream fixed-point constants mode.
10808         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
10809         and TYPE_PRECISION.
10810
10811 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
10812
10813         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
10814         only place it was called from.
10815         (number_of_latch_executions): Do not return chrec_dont_know when the
10816         may_be_zero is a runtime condition: instead, return a COND_EXPR
10817         including the may_be_zero condition.
10818         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
10819         of nb_iterations.
10820         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
10821         COND_EXPRs.
10822
10823 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
10824
10825         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
10826         generate COND_EXPRs for degenerate_phi_result.
10827
10828 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
10829
10830         PR middle-end/44293
10831         * tree-if-conv.c (if_convertible_loop_p): Check the
10832         if-convertibility of phi nodes in non predicated BBs.
10833
10834 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
10835
10836         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
10837
10838 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
10839
10840         PR driver/15303
10841         * gcc.c (inform, warning, inform): New functions.
10842         (fatal_ice): Rename to internal_error; change cmsgid parameter to
10843         gmsgid.  All callers changed.
10844         (notice): Rename to fnotice; add parameter fp.  All callers changed.
10845         (fatal_error): Rename to fatal_signal.  All users changed.
10846         (fatal): Rename to fatal_error; change cmsgid parameter to
10847         gmsgid.  All callers changed.
10848         (process_command): Use warning instead of error for warnings.
10849         (end_going_arg): Don't use _() around argument of error.
10850         (do_spec_1): Use inform for message from %n specs.  Use warning
10851         instead of error for warnings.
10852         (main): Use inform for comparison messages.  Use warning for
10853         message about unused linker input.
10854         (error): Increment error_count.  Print "error: ".
10855         * gcc.h (fatal): Change to fatal_error.
10856         (warning): Declare.
10857         * config/darwin-driver.c (darwin_default_min_version): Use warning
10858         instead of fprintf for warnings.
10859         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
10860
10861 2010-05-28  Julian Brown  <julian@codesourcery.com>
10862
10863         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
10864         (*thumb2_addsi3_compare0_scratch): New.
10865         * config/arm/constraints.md (Pv): New.
10866         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
10867         for ARM mode only.
10868         (*addsi3_compare0_scratch): Likewise.
10869
10870 2010-05-28  Jan Hubicka  <jh@suse.cz>
10871
10872         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
10873         check.
10874         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
10875         only on local statics.
10876
10877 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
10878
10879         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
10880
10881 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
10882
10883         PR bootstrap/44314
10884         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
10885         (OPTION_GLIBC): Define.
10886
10887 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
10888
10889         PR debug/41048
10890         * dwarf2out.c (double_int_type_size_in_bits): New function.
10891         (round_up_to_align): Change first argument and return value to
10892         double_int.
10893         (field_byte_offset): Work internally on double_ints.
10894
10895         PR target/43636
10896         * builtins.c (expand_movstr): Use a temporary pseudo instead
10897         of target even when target is not NULL and not const0_rtx, but
10898         fails movstr predicate.
10899         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
10900
10901 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
10902
10903         * final.c (rest_of_clean_state): Use %m in errors instead of
10904         strerror (errno).
10905         * gengtype.c (read_input_list, close_output_files): Use xstrerror
10906         instead of strerror.
10907         * toplev.c (process_options): Use %m in errors instead of strerror
10908         (errno).
10909         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
10910         (errno).
10911
10912 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
10913
10914         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
10915         (ix86_canonical_va_list_type): Make static.  Add declaration.
10916         (ix86_enum_va_list): Make static.  Reindent.
10917         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
10918         (ix86_canonical_va_list_type): Ditto.
10919         (ix86_enum_va_list): Ditto.
10920
10921 2010-05-28  Richard Guenther  <rguenther@suse.de>
10922
10923         * lto-wrapper.c (run_gcc): With -save-temps generate a
10924         user-visible ltrans filename.  Fixup ltrans unit numbering.
10925
10926 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
10927
10928         * c-common.c (c_common_nodes_and_builtins): Replace use
10929         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
10930         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
10931         to ix86_enum_va_list.
10932         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
10933         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
10934         (TARGET_ENUM_VA_LIST_P): Add hook description.
10935         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
10936         * target.h (gcc_target): Add enum_va_list hook.
10937
10938         PR bootstrap/44299
10939         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
10940         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
10941         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
10942
10943 2010-05-28  Alan Modra  <amodra@gmail.com>
10944
10945         PR target/44266
10946         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10947         emit_library_call machinery to set up __tls_get_addr calls.
10948
10949 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10950
10951         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
10952
10953 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
10954
10955         Revert fix for PR c++/44188
10956         * c-common.c (is_typedef_decl): Revert the moving of  this
10957         definition ...
10958         * tree.c (is_typedef_decl): ... here.
10959         (typdef_variant_p): Revert the moving of this  definition
10960         here from gcc/cp/tree.c.
10961         * c-common.h (is_typedef_decl): Revert the moving of this
10962         declaration ...
10963         * tree.h (is_typedef_decl): ... here.
10964         (typedef_variant_p): Revert the moving of this  declaration here
10965         from gcc/cp/cp-tree.h
10966         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
10967         (gen_tagged_type_die): Revert the splitting out of ...
10968         (gen_type_die_with_usage): ... this function. Revert the anonymous
10969         tagged type handling.
10970         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
10971         typedefs naming anonymous tagged types.
10972
10973 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
10974
10975         * config/rs6000/rs6000-modes.def (PSImode): Delete.
10976
10977 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
10978
10979         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
10980         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
10981         throughout.
10982         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
10983         "xer" to "ca".
10984         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
10985         XER_REGS to CA_REGS throughout.
10986         * config/rs6000/rs6000.h: Same.
10987         (ADDITIONAL_REGISTER_NAMES): Add "xer".
10988         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
10989         that mode_iterator "P" is the size for arithmetic carries as well.
10990         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
10991
10992 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
10993
10994         PR bootstrap/44255
10995         * combine.c (struct rtx_subst_pair): Define unconditionally.
10996         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
10997         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
10998         Call make_compound_operation on pair->to.
10999         (propagate_for_debug): Don't call make_compound_operation here.
11000         Always use simplify_replace_fn_rtx.
11001
11002 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
11003
11004         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
11005         * config/xtensa/xtensa.c (override_options): Check
11006           TARGET_FORCE_NO_PIC and set flag_pic.
11007         * config/xtensa/xtensa.opt: Document -mforce-no-pic
11008
11009 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
11010
11011         PR bootstrap/44299
11012         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11013         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11014
11015 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11016
11017         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
11018         toplev.h.
11019         * diagnostic.c: Don't include toplev.h.
11020         (progname): Define.  Moved from toplev.c.
11021         (seen_error): New function.
11022         * diagnostic.h: Include diagnostic-core.h.
11023         (diagnostic_t, emit_diagnostic): Don't declare here.
11024         * toplev.c (progname): Move to toplev.c.
11025         (emit_debug_global_declarations, compile_file, finalize,
11026         do_compile, toplev_main): Use seen_error.
11027         * toplev.h: Include diagnostic-core.h.
11028         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11029         internal_error, warning, warning_at, error, error_n, error_at,
11030         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11031         verbatim, fnotice, progname): Move to diagnostic-core.h.
11032         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11033         (expand_builtin_expect): Use seen_error.
11034         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11035         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11036         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11037         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11038         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11039         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11040         errorcount for errors.
11041         * c-opts.c (c_common_finish): Use seen_error.
11042         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11043         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11044         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11045         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11046         (get_coverage_counts): Use seen_error.
11047         * dwarf2out.c (dwarf2out_finish): Use seen_error.
11048         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11049         gimplify_body): Use seen_error.
11050         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11051         * ipa-pure-const.c (gate_pure_const): Use seen_error.
11052         * ipa-reference.c (gate_reference): Use seen_error.
11053         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11054         * lambda-code.c: Include diagnostic-core.h instead of
11055         diagnostic.h.
11056         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11057         * lto-compress.c: Include diagnostic-core.h instead of
11058         diagnostic.h.
11059         * lto-section-in.c: Include diagnostic-core.h instead of
11060         diagnostic.h.
11061         * lto-streamer-out.c: Include diagnostic-core.h instead of
11062         diagnostic.h.
11063         * lto-streamer.c: Include diagnostic-core.h instead of
11064         diagnostic.h.
11065         (gate_lto_out): Use seen_error.
11066         * matrix-reorg.c: Include diagnostic-core.h instead of
11067         diagnostic.h.
11068         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11069         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11070         (gate_expand_omp, lower_omp_1): Use seen_error.
11071         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11072         (rest_of_decl_compilation, rest_of_type_compilation,
11073         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11074         * tree-cfg.c (label_to_block_fn): Use seen_error.
11075         * tree-inline.c (optimize_inline_calls): Use seen_error.
11076         * tree-mudflap.c (mudflap_finish_file): Use
11077         seen_error.
11078         * tree-optimize.c (gate_all_optimizations,
11079         gate_all_early_local_passes, gate_all_early_optimizations): Use
11080         seen_error.
11081         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11082         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11083         (varpool_remove_unreferenced_decls,
11084         varpool_assemble_pending_decls): Use seen_error.
11085         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11086         (TOPLEV_H, DIAGNOSTIC_H): Update.
11087         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11088         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11089         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11090         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11091         coverage.o, lambda-code.o): Update dependencies.
11092
11093 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
11094
11095         PR c++/44188
11096         * c-common.c (is_typedef_decl): Move this definition ...
11097         * tree.c (is_typedef_decl): ... here.
11098         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11099         * c-common.h (is_typedef_decl): Move this declaration ...
11100         * tree.h (is_typedef_decl): ... here.
11101         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11102         * dwarf2out.c (is_naming_typedef_decl): New function.
11103         (gen_tagged_type_die): Split out of ...
11104         (gen_type_die_with_usage): ... this function. When an anonymous
11105         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11106         is emitted for the typedef.
11107         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11108         anonymous tagged types.
11109
11110 2010-05-27  Jason Merrill  <jason@redhat.com>
11111
11112         * print-tree.c (debug_vec_tree): New fn.
11113         (print_vec_tree): New fn.
11114         * tree.h: Declare them.
11115         * gdbinit.in (pvt): New command.
11116
11117         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11118
11119         * gdbinit.in (pdd): New command.
11120
11121 2010-05-27  Jan Hubicka  <jh@suse.cz>
11122
11123         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11124         (update_caller_keys): Return early if there are no callers;
11125         only update fibheap when decresing the key.
11126         (update_callee_keys): Avoid recursion.
11127         (decide_inlining_of_small_functions): When badness does not match;
11128         re-insert into fibheap.
11129
11130 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
11131
11132         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11133         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11134         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11135         (ALL_HOST_OBJS): Now a union of the above two.
11136         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11137         all files in ALL_HOST_FRONTEND_OBJS.
11138         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11139
11140         * c-common.c: Pretend to be a backend file by undefining
11141         IN_GCC_FRONTEND (still need rtl.h here).
11142
11143 2010-05-27  Jan Hubicka  <jh@suse.cz>
11144
11145         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11146         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11147
11148 2010-05-27  Jan Hubicka  <jh@suse.cz>
11149
11150         * sched-ebb.c: Rename struct deps to struct deps_desc.
11151         * ddg.c: Likewise.
11152         * sel-sched-ir.c: Likewise.
11153         * sched-deps.c: Likewise.
11154         * sched-int.h: Likewise.
11155         * sched-rgn.c: Likewise.
11156
11157 2010-05-27  Jon Beniston  <jon@beniston.com>
11158
11159         PR 43726
11160         * config/lm32/lm32.h: Remove definition of
11161         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11162
11163 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11164
11165         PR lto/44230
11166         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11167
11168 2010-05-27  Richard Guenther  <rguenther@suse.de>
11169
11170         PR tree-optimization/44284
11171         * tree-vect-stmts.c (vectorizable_assignment): Handle
11172         sign-changing conversions as simple copy.
11173
11174 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11175
11176         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11177         Bionic C library.
11178         (__gthread_active_p): Check for pthread_create if compiling against
11179         Bionic C library.
11180
11181 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11182
11183         Support compilation for Android platform.  Reimplement -mandroid.
11184
11185         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11186         (*android*): Set ANDROID_DEFAULT.
11187         (arm*-*-linux*): Include linux-android.h.
11188         (arm*-*-eabi*): Don't include previous -mandroid implementation.
11189         * config/arm/eabi.h: Remove, move Android-specific parts ...
11190         * config/linux-android.h: ... here.  New file.
11191         * config/arm/eabi.opt: Rename to ...
11192         * config/linux-android.opt: ... this.
11193         (mandroid): Allow -mno-android option.  Initialize based on
11194         ANDROID_DEFAULT.
11195         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11196         Move logic to corresponding LINUX_TARGET_* macros.
11197         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11198         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11199         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11200         Android definitions.
11201         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11202         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11203         Document.
11204
11205 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
11206
11207         Add support for Bionic C library
11208
11209         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11210         macro.
11211         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11212         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11213
11214         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11215         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11216         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11217         to support multiple C libraries.  Handle Bionic.
11218         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11219         (BIONIC_DYNAMIC_LINKER64): Define.
11220         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11221         Update.
11222         (TARGET_HAS_SINCOS): Enable for Bionic.
11223
11224         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
11225         the last option specified on command line take effect.
11226         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11227         (mbionic): New.
11228         (mglibc, muclibc): Update.
11229
11230         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11231         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11232         DEFAULT_LIBC.
11233
11234         * doc/invoke.texi (-mglibc, -muclibc): Update.
11235         (-mbionic): Document.
11236
11237 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11238
11239         * c-common.h (c_register_addr_space): Add prototype.
11240         (ADDR_SPACE_KEYWORD): Remove.
11241         * c-common.c (c_register_addr_space): New function.
11242         (c_addr_space_name): Reimplement.
11243         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11244
11245         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11246         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11247
11248         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11249         Remove TARGET_ADDR_SPACE_KEYWORDS.
11250
11251 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
11252
11253         * input.c: New file.
11254         * input.h (main_input_filename): Move declaration to toplev.h.
11255         * toplev.c (input_location, line_table): Move to input.c
11256         * toplev.h (main_input_filename): Move declaration from input.h.
11257         * tree.c (expand_location): Move to input.c.
11258         * Makefile.in (OBJS-common): Add input.o.
11259         (input.o): Add dependencies.
11260
11261 2010-05-27  Richard Guenther  <rguenther@suse.de>
11262
11263         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11264         for non-existant files.
11265         (fork_execute): Mark args_name file as deleted.
11266
11267 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
11268
11269         PR bootstrp/44287
11270         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11271         (narrow_signed_type): Likewise.
11272
11273 2010-05-26  Jan Hubicka  <jh@suse.cz>
11274
11275         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11276         edge only when checking is enabled; check using former_clone_of;
11277         check inline clones too.
11278         (cgraph_materialize_clone): Record former_clone_of pointer.
11279         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11280         combining redirections; dump args_to_skip bitmap
11281         (cgraph_materialize_all_clones): Do no redirection here.
11282         * ipa-inline.c (inline_transform): Do redirection here.
11283         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11284         cheking only).
11285
11286 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11287
11288         * config/avr/avr-c.c: Do not include regs.h.
11289         Include cpplib.h for cpp_define and tree.h for c-common.h.
11290         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11291         * config/avr/t-avr: Fix dependencies for avr-c.o.
11292
11293 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11294
11295         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11296         string instead of SYMBOL_REF rtx.
11297         * rtl.h (set_stack_check_libfunc): Move prototype from here...
11298         * libfuncs.h: ...to here.  Adjust for explow.c change.
11299
11300 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
11301
11302         * pretty-print.c: Don't include ggc.h.
11303         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11304         (identifier_to_locale): Use them for allocation.
11305         * pretty-print.h (identifier_to_locale_alloc,
11306         identifier_to_locale_free): Declare.
11307         * toplev.c (alloc_for_identifier_to_locale): New.
11308         (general_init): Set identifier_to_locale_alloc and
11309         identifier_to_locale_free.
11310         * Makefile.in (pretty-print.o): Update dependencies.
11311
11312 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11313
11314         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
11315         pointer types if they have different alignment or mode.
11316
11317 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
11318
11319         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11320         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11321         * config/sparc/sparc-protos.h (function_value): Remove declaration.
11322         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
11323         sparc_function_value_regno_p): New functions.
11324         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11325         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11326         (function_value): Rename to...
11327         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
11328         argument to 'outgoing'.
11329         (function_arg_record_value, function_arg_union_value,
11330         function_arg_vector_value): Update comment.
11331
11332 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
11333
11334         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
11335         (fde_needed_for_eh_p): New predicate.
11336         (output_call_frame_info): Use it throughout to decide whether FDEs
11337         are needed for EH purpose.
11338         (dwarf2out_begin_prologue): Reorder assignments.
11339
11340 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11341
11342         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
11343         special case loop->header.
11344         (is_predicated): New.
11345         (if_convertible_loop_p): Call it.
11346
11347 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11348
11349         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
11350         iterator in parameter.  Do not generate code during the analysis.
11351         (tree_if_convert_cond_stmt): Removed.
11352         (tree_if_convert_stmt): Removed.
11353         (predicate_bbs): New.
11354         (if_convertible_loop_p): Call predicate_bbs.
11355         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
11356         now contains all the analysis part.
11357
11358 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11359
11360         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
11361         statements in the analysis part.
11362         (tree_if_convert_stmt): Update comment.
11363         (remove_conditions_and_labels): New.
11364         (combine_blocks): Call remove_conditions_and_labels.
11365         (tree_if_conversion): Update comment.
11366
11367 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11368
11369         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
11370         than 2 predecessors or more than 2 successors.
11371
11372 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11373
11374         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
11375         of loops in which the data dependence analysis fails.
11376
11377 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11378
11379         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
11380         CDI_POST_DOMINATORS.
11381         (tree_if_conversion): Same.
11382
11383 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11384
11385         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
11386
11387 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
11388
11389         * tree-if-conv.c: Update copyright years.  Fix comments.
11390         Fix indentation.
11391
11392 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
11393
11394         * builtin-types.def (BT_INT128): New primitive type.
11395         (BT_UINT128): Likewise.
11396         * c-common.c (c_common_r): Add __int128 keyword.
11397         (c_common_type_for_size): Handle __int128.
11398         (c_common_type_for_mode): Likewise.
11399         (c_common_signed_or_unsigned_type): Likewise.
11400         (c_common_nodes_and_builtins): Add builtin type
11401         if target supports 128-bit integer scalar.
11402         * c-common.h (enum rid): Add RID_INT128.
11403         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
11404         if target supports 128-bit integer scalar.
11405         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
11406         (finish_declspecs): Likewise.
11407         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
11408         (c_token_starts_declspecs): Likewise.
11409         (c_parser_declspecs): Likewise.
11410         (c_parser_attributes): Likewise.
11411         (c_parser_objc_selector): Likewise.
11412         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
11413         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
11414         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
11415         * tree.c (make_or_reuse_type): Likewise.
11416         (make_unsigned_type): Likewise.
11417         (build_common_tree_nodes_2): Likewise.
11418         * tree.h (enum integer_type_kind): Add itk_int128 and
11419         itk_unsigned_int128.
11420         (int128_integer_type_node): New define.
11421         (int128_unsigned_type_node): New define.
11422         * doc/extend.texi: Add documentation about __int128 type.
11423
11424 2010-05-26  Richard Guenther  <rguenther@suse.de>
11425
11426         * tree-ssa-sccvn.c (copy_nary): Adjust.
11427         (copy_phis): Rename to ...
11428         (copy_phi): ... this.  Adjust.
11429         (copy_references): Rename to ...
11430         (copy_reference): ... this.  Adjust.
11431         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
11432         result into the valid table.
11433
11434 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11435
11436         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
11437         insn-config.h, insn-codes.h, recog.h, and optabs.h.
11438
11439 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11440
11441         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
11442
11443 2010-05-26  Richard Guenther  <rguenther@suse.de>
11444
11445         * opts.c (common_handle_option): Handle OPT_Ofast.
11446
11447 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
11448
11449         * diagnostic.c: Don't include opts.h.
11450         (permissive_error_option): Define.
11451         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
11452         for classify_diagnostic.  Don't use memset for
11453         classify_diagnostic.  Initialize new and recently added fields.
11454         (diagnostic_classify_diagnostic): Use context->n_opts instead of
11455         N_OPTS.
11456         (diagnostic_report_diagnostic): Pass context parameter to
11457         diagnostic_report_warnings_p.  Use option_enabled and option_name
11458         hooks from context.
11459         (emit_diagnostic): Use permissive_error_option.
11460         (permerror): Likewise.
11461         * diagnostic.h: Don't include options.h.
11462         (struct diagnostic_context): Add n_opts, opt_permissive,
11463         inhibit_warnings, warn_system_headers, option_enabled and
11464         option_name fields.  Change classify_diagnostic to a pointer.
11465         * opts-diagnostic.h: New file.
11466         * opts.c: Include opts-diagnostic.h.
11467         (common_handle_option): Set global_dc fields for -Wfatal-errors,
11468         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
11469         (option_name): New function.
11470         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
11471         (c_common_handle_option): Set global_dc->permissive for
11472         -fpermissive.
11473         * c-common.c (c_cpp_error): Save and restore
11474         global_dc->warn_system_headers, not variable warn_system_headers.
11475         * toplev.c: Include opts-diagnostic.h.
11476         (general_init): Update call to diagnostic_initialize.  Set
11477         global_dc->show_column, global_dc->option_enabled and
11478         global_dc->option_name.
11479         (process_options): Don't set global_dc fields here.
11480         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
11481         (diagnostic.o, opts.o, toplev.o): Update dependencies.
11482
11483 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
11484
11485         * config/picochip/picochip.md (movsi): Split a movsi from a
11486         const after reload.
11487
11488 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11489
11490         * ggc-zone.c: Update copyright year.
11491         (poison_region): Mark memory for Valgrind as undefined before
11492         memset () call and inaccessible afterwards.
11493         (ggc_pch_total_size): Change type of i to int.
11494
11495 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11496
11497         * ggc-common.c (ggc_free_overhead): Allow empty slot.
11498
11499 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
11500
11501         * ggc-common.c: Update copyright year.
11502         (ggc_rlimit_bound): Remove prototype.  Compile only if
11503         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
11504         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
11505         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
11506         (ggc_min_heapsize_heuristic): Likewise.
11507
11508 2010-05-26  Richard Guenther  <rguenther@suse.de>
11509
11510         PR rtl-optimization/44164
11511         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
11512         no-common access-path disambiguation.
11513         (indirect_ref_may_alias_decl_p): Adjust.
11514         (indirect_refs_may_alias_p): Likewise.
11515         (refs_may_alias_p_1): Likewise.
11516
11517 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11518
11519         * c-typeck.c: Do not include expr.h.
11520
11521 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
11522
11523         * rtl.h (decl_default_tls_model): Move prototype from here...
11524         * output.h: ...to here.
11525         * c-decl.c: Do not include rtl.h.
11526         * c-pragma.c: Likewise.
11527         * c-parser.c: Likewise.
11528         * c-gimplify.c: Likewise.  And also not hard-reg-set.
11529         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
11530         FIXME note for it.  Add a FIXME note for expr.h.
11531         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
11532         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
11533         defined.
11534
11535 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
11536
11537         PR target/44199
11538         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
11539         or total_size is larger than red zone size for non-V4 ABI, emit a
11540         stack_tie resp. frame_tie insn before stack pointer restore.
11541         * config/rs6000/rs6000.md (frame_tie): New insn.
11542
11543 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
11544
11545         * function.h (struct function): Add can_throw_non_call_exceptions bit.
11546         * lto-streamer-in.c (input_function): Stream it in.
11547         * lto-streamer-out.c (output_function): Stream it out.
11548         * function.c (allocate_struct_function): Set it.
11549         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
11550         for flag_non_call_exceptions.
11551         * cfgbuild.c (control_flow_insn_p): Likewise.
11552         (make_edges): Likewise.
11553         * cfgexpand.c (expand_stack_alignment): Likewise.
11554         * combine.c (distribute_notes): Likewise.
11555         * cse.c (cse_extended_basic_block): Likewise.
11556         * except.c (insn_could_throw_p): Likewise.
11557         * gcse.c (simple_mem): Likewise.
11558         * ipa-pure-const.c (check_call): Likewise.
11559         (check_stmt ): Likewise.
11560         * lower-subreg.c (lower-subreg.c): Likewise.
11561         * optabs.c (emit_libcall_block): Likewise.
11562         (prepare_cmp_insn): Likewise.
11563         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
11564         * postreload.c (rest_of_handle_postreload): Likewise.
11565         * reload1.c (reload_as_needed): Likewise.
11566         (emit_input_reload_insns): Likewise.
11567         (emit_output_reload_insns): Likewise.
11568         (fixup_abnormal_edges): Likewise.
11569         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
11570         * store-motion.c (find_moveable_store): Likewise.
11571         * tree-eh.c (stmt_could_throw_p): Likewise.
11572         (tree_could_throw_p): Likewise.
11573         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11574         * config/arm/arm.c (arm_expand_prologue): Likewise.
11575         (thumb1_expand_prologue): Likewise.
11576         * config/rx/rx.md (cbranchsf4): Likewise.
11577         (cmpsf): Likewise.
11578         * config/s390/s390.c (s390_emit_prologue): Likewise.
11579         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
11580         (inline_forbidden_into_p): New predicate.
11581         (expand_call_inline): Use it to forbid inlining.
11582         (tree_can_inline_p): Likewise.
11583
11584 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
11585
11586         * config/i386/i386-c.c: Do not include rtl.h.
11587         * config/i386/t-i386: Update dependencies.
11588
11589 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
11590
11591         * attribs.c: Do not include rtl.h.
11592         * Makefile.in: Update dependencies.
11593
11594 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
11595
11596         * double-int.h (double_int_and): New.
11597         * combine.c (try_combine): Clean up, use double_int_* and
11598         immed_double_int_const functions.
11599
11600 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11601
11602         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
11603         stderr to /dev/null instead of grep -q.
11604         * configure: Regenerate.
11605
11606 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
11607
11608         * Makefile.in (EXCEPT_H): Fix typo.
11609
11610 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
11611
11612         * ira-build.c (update_conflict_hard_reg_costs): New.
11613         (ira_build): Call update_conflict_hard_reg_costs.
11614
11615 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
11616
11617         PR debug/41371
11618         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
11619         ENABLE_CHECKING.
11620         (intersect_loc_chains): Walk the s2var's loc_chain together
11621         with s1node chain as long as the locations are equal, don't
11622         call find_loc_in_1pdv in that case.
11623
11624         PR debug/42801
11625         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
11626         (copy_bind_expr): ... instead of here.
11627         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
11628         if the block hasn't been remapped.
11629         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
11630         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
11631
11632 2010-05-25  Richard Guenther  <rguenther@suse.de>
11633
11634         PR middle-end/44069
11635         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
11636         out-of-bounds array accesses.
11637
11638 2010-05-25  Richard Guenther  <rguenther@suse.de>
11639
11640         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
11641         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
11642         (run_gcc): Re-organize to make cleanup easier.
11643
11644 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11645
11646         * config/s390/s390.c (optimization_options): Fix and move the
11647         flag_prefetch_loop_arrays override ...
11648         (override_options): ... here.
11649
11650 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
11651
11652         * diagnostic.c: Don't include plugin.h.
11653         (diagnostic_report_diagnostic): Don't handle plugins specially
11654         here.  Pass context to internal_error callback.
11655         * diagnostic.h (struct diagnostic_context): Add context parameter
11656         to internal_error callback.
11657         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
11658         * plugin.h (struct diagnostic_context): Declare.
11659         (warn_if_plugins, plugins_internal_error_function): Declare.
11660         * toplev.c (general_init): Set global_dc->internal_error.
11661         * Makefile.in (diagnostic.o): Update dependencies.
11662
11663 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
11664
11665         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
11666         * config/rs6000/t-darwin64: New.
11667         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
11668         build crt2.
11669
11670 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
11671
11672         PR 44203
11673         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
11674         match the original (and intended) behaviour before r159557.  This
11675         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
11676         in two ways.
11677
11678 2010-05-25  Richard Guenther  <rguenther@suse.de>
11679
11680         * doc/invoke.texi: Document -Ofast.
11681         * target.h (struct gcc_target): Add handle_ofast.
11682         * target-def.h (TARGET_HANDLE_OFAST): Add.
11683         (TARGET_INITIALIZER): Adjust.
11684         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
11685         * common.opt (Ofast): Add.
11686
11687 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
11688
11689         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
11690         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
11691
11692 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
11693
11694         PR target/43610
11695         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
11696         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
11697         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
11698         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
11699
11700 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
11701
11702         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
11703         DW_OP_minus with negated offset instead of DW_OP_plus.
11704         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
11705
11706 2010-05-25  Wei Guozhi  <carrot@google.com>
11707
11708         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
11709         tst instruction and a new alternative.
11710         * config/arm/constraints.md (Pu): New constraint.
11711
11712 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
11713
11714         * function.c (assign_stack_local_1): Initialize variable
11715         to avoid warning when bootstrapping at -O3.
11716
11717 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
11718
11719         * configure.ac (all_lang_makefiles): Remove everything related to it.
11720         * configure: Regenerate.
11721         * Makefile.in: Fix reference to ada Make-lang.in.
11722         Remove support for LANG_MAKEFILES.
11723
11724 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
11725             Sandra Loosemore  <sandra@codesourcery.com>
11726
11727         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
11728         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
11729         description.  Add arm_neon_fp16_ok.
11730         (Add Options): Add arm_neon and arm_neon_fp16.
11731
11732 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
11733
11734         * diagnostic.c: Don't include flags.h.
11735         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
11736         context parameters.  Check flags in the context passed as a parameter.
11737         (diagnostic_build_prefix): Add context parameter.  Check
11738         show_column flag in context.
11739         (diagnostic_action_after_output): Check fatal_errors flag in context.
11740         (diagnostic_report_current_module): Check show_column flag in context.
11741         (default_diagnostic_starter): Update call to
11742         diagnostic_build_prefix.
11743         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
11744         (emit_diagnostic): Pass context to permissive_error_kind.
11745         (permerror): Pass context to permissive_error_kind.
11746         * diagnostic.h (struct diagnostic_context): Add show_column,
11747         pedantic_errors, permissive and fatal_errors fields.
11748         (diagnostic_build_prefix): Update prototype.
11749         * langhooks.c
11750         * toplev.c (process_options): Set flags in global_dc from
11751         flag_show_column, flag_pedantic_errors, flag_permissive,
11752         flag_fatal_errors.
11753         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
11754         to diagnostic_build_prefix.
11755         * Makefile.in (diagnostic.o): Update dependencies.
11756
11757 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
11758
11759         * config/i386/ia32intrin.h (__crc32q): Define only if
11760         __SSE4_2__ is defined.
11761
11762 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
11763
11764         PR target/44132
11765         PR middle-end/43602
11766         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
11767         DECL_VISIBILITY_SPECIFIED.
11768         (emutls_decl): Set DECL_PRESERVE_P and copy
11769         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
11770         (emutls_finalize_control_var): New callback.
11771         (emutls_finish): Finalize emutls control variables.
11772         * toplev.c (compile_file): Move the call to emutls_finish ()
11773         before varpool_assemble_pending_decls ().
11774
11775 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
11776
11777         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
11778         added to the preprocessor condition.
11779
11780 2010-05-24  Paul Brook  <paul@codesourcery.com>
11781
11782         * gengtype-lex.l: Add HARD_REG_SET.
11783         * expr.c (expand_expr_real_1): Record writes to hard registers.
11784         * function.c (rtl_data): Add asm_clobbers.
11785         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
11786         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
11787         Use crtl->asm_clobbers.
11788
11789 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11790
11791         * doc/makefile.texi (Makefile): Mention stages 'profile'
11792         and 'feedback' for profiledbootstrap.
11793
11794 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
11795
11796         PR target/44245
11797         * config/i386/i386.c (def_builtin): Properly check
11798         OPTION_MASK_ISA_64BIT.
11799
11800 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
11801
11802         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
11803         typedefs with different but compatible types.  Allow duplicate
11804         typedefs with the same type except for pedantic non-C1X, but give
11805         warning for variably modified types.
11806         * c-typeck.c (tagged_types_tu_compatible_p,
11807         function_types_compatible_p, type_lists_compatible_p,
11808         comptypes_internal): Add parameter different_types_p; set
11809         *different_types_p for different but compatible types.  All
11810         callers changed.
11811         (comptypes_check_different_types): New.
11812         * c-tree.h (comptypes_check_different_types): Declare.
11813
11814 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
11815
11816         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
11817         * jump.c: Include basic-block.h.
11818         * profile.c: Likewise.
11819         * tree-profile.c: Likewise.
11820         * coverage.c: Likewise.
11821         * basic-block.h (optimize_function_for_size_p): Move to function.h.
11822         (optimize_function_for_speed_p): Likewise.
11823         * function.h (optimize_function_for_size_p,
11824         optimize_function_for_speed_p): Moved here from basic-block.h.
11825         * Makefile.in: Update dependencies.
11826
11827 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11828
11829         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
11830         before calling make; allow override through $MAKE.
11831         * doc/invoke.texi (Optimize Options): Document override.
11832
11833 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
11834
11835         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
11836         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11837         (rs6000_mode_dependent_address_ptr): Make static.
11838         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11839         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
11840         Remove.
11841
11842 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
11843
11844         PR target/43869
11845         * config/i386/i386.c: Make sure that the correct regparm is passed.
11846
11847 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
11848
11849         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
11850         * sbitmap.c: ...to here to internalize sbitmap element access.
11851         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
11852         Explain why basic-block.h is included.
11853         * function.h: Include tm.h for CUMULATIVE_ARGS.
11854         * Makefile.in: Update dependencies.
11855
11856 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
11857
11858         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
11859         New core types.
11860         * sbitmap.h (struct sbitmap_def): Do not typedef here.
11861         * sbitmap.c: Include sbitmap.h.
11862         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
11863         hard-reg-set.h.  Split everything related to regsets out from here...
11864         * regset.h: ...to here.  New file.
11865         * df.h: Include regset.h and sbitmap.h.
11866         * tree-flow.h: Likewise.
11867         * cfgloop.h: Likewise.
11868         * except.h: Do not include sbitmap.h.  Include hashtab.h.
11869         * cgraph.h: Include vec.h and function.h.
11870         * reload.h (struct insn_chain): Change types of live_throughout
11871         and dead_or_set from regset_head to bitmap_head.
11872         (compute_use_by_pseudos): Be defined also if regset.h is not included.
11873         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
11874         spilled_regs from regset_head to bitmap_head to avoid dependency
11875         in regset.h.
11876         * sel-sched-ir.h: Include regset.h.
11877         * reload.c: Include df.h before reload.h.
11878         * caller-save.c: Likewise.
11879         * reload1.c: Likewise.
11880         * ira.c: Likewise.
11881         (mark_elimination): Update type of r to bitmap, consistent with
11882         DF_LR_IN.
11883         * dominance.c: Include bitmap.h.
11884         * modulo-sched.c: Include df.h.
11885         * cfganal.c: Include bitmap.h and sbitmap.h.
11886         * cfgbuild.c: Include sbitmap.h.
11887         * lcm.c: Include sbitmap.h.
11888         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
11889         * domwalk.c: Include sbitmap.h, exclude ggc.h.
11890         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
11891         * cselib.c: Include bitmap.h.
11892         * tree-optimize.c: Include regset.h.
11893         * stmt.c: Include bitmap.h.
11894         * Makefile.in: Update dependencies.
11895
11896 2010-05-22  Jan Hubicka  <jh@suse.cz>
11897
11898         * cgraph.h (struct varpool_node): Add same_comdat_group.
11899         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
11900         pointer.
11901         (output_varpool): Update call of lto_output_varpool_node.
11902         (input_varpool): Read same_comdat_group pointer.
11903         (input_varpool_1): Fixup same_comdat_group pointer.
11904         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
11905         group is needed, all are.
11906         * varpool.c (varpool_remove_node): Remove node from same comdat group
11907         linklist too.
11908         (varpool_analyze_pending_decls): Walk same comdat groups.
11909
11910 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
11911
11912         * rtl.h (union rtunion_def): Remove rt_bit member.
11913         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
11914         * print-rtl (print_rtx): Do not print the member.
11915         * gengtype.c (adjust_field_rtx_def): Do not handle it.
11916         * gengenrtl.c (type_from_format): Likewise.
11917         (accessor_from_format): Likewise.
11918
11919 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
11920
11921         * dbgcnt.c: Include toplev.h instead of errors.h.
11922         * ira-emit.c: Don't include errors.h.
11923         * ira.c: Include toplev.h instead of errors.h.
11924         * lto-compress.c: Include toplev.h instead of errors.h.
11925         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
11926         ira.o, dbgcnt.o): Update dependencies.
11927
11928 2010-05-22  Richard Guenther  <rguenther@suse.de>
11929
11930         * gimple.c (gimple_types_compatible_p): Check type qualifications
11931         before merging pointer to complete and pointer to incomplete type.
11932         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
11933         we use our own resolution algorithm.  The gold linker plugin
11934         doesn't do the job we want it to do here.
11935
11936 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
11937
11938         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11939         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11940         (sparc_mode_dependent_address_p): New function.
11941
11942 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
11943
11944         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
11945
11946         * timevar.c: Do not include any core headers.
11947         (timevar_print): De-i18n-ize.
11948         (print_time): Likewise.
11949         * timevar.h (timevar_push, timevar_pop): Make inline functions.
11950
11951 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
11952
11953         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
11954         langhooks-def.h.
11955         (diagnostic_initialize): Initialize x_data not last_function.
11956         (diagnostic_report_current_function): Move to tree-diagnostic.c.
11957         (default_diagnostic_starter): Call
11958         diagnostic_report_current_module not
11959         diagnostic_report_current_function.
11960         (diagnostic_report_diagnostic): Initialize x_data not
11961         abstract_origin.
11962         (verbatim): Likewise.
11963         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
11964         x_data.
11965         (struct diagnostic_context): Change last_function to x_data.
11966         (diagnostic_auxiliary_data): Replace with
11967         diagnostic_context_auxiliary_data and
11968         diagnostic_info_auxiliary_data.
11969         (diagnostic_last_function_changed, diagnostic_set_last_function,
11970         diagnostic_report_current_function): Move to tree-diagnostic.h.
11971         (print_declaration, dump_generic_node, print_generic_stmt,
11972         print_generic_stmt_indented, print_generic_expr,
11973         print_generic_decl, debug_c_tree, dump_omp_clauses,
11974         print_call_name, debug_generic_expr, debug_generic_stmt,
11975         debug_tree_chain, default_tree_printer): Move to
11976         tree-pretty-print.h.
11977         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
11978         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
11979         gimple-pretty-print.h.
11980         * pretty-print.c: Don't include tree.h
11981         (pp_base_format): Don't handle %K here.
11982         (pp_base_tree_identifier): Move to tree-pretty-print.c.
11983         * pretty-print.h (text_info): Change abstract_origin to x_data.
11984         (pp_tree_identifier, pp_unsupported_tree,
11985         pp_base_tree_identifier): Move to tree-pretty-print.h.
11986         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
11987         tree-pretty-print.h: New files.
11988         * tree-pretty-print.c: Include tree-pretty-print.h.
11989         (percent_K_format): New.  Moved from pretty-print.c.
11990         (pp_base_tree_identifier): Move from pretty-print.c.
11991         * c-objc-common.c: Include tree-pretty-print.h.
11992         (c_tree_printer): Handle %K here.
11993         * langhooks.c: Include tree-diagnostic.h.
11994         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
11995         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
11996         (default_tree_printer): Handle %K using percent_K_format.
11997         (general_init): Use default_tree_diagnostic_starter.
11998         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
11999         (free_lang_data): Use default_tree_diagnostic_starter.
12000         * c-pretty-print.c: Include tree-pretty-print.h.
12001         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12002         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12003         * dwarf2out.c: Include tree-pretty-print.h.
12004         * except.c: Include tree-pretty-print.h.
12005         * gimple-pretty-print.c: Include tree-pretty-print.h and
12006         gimple-pretty-print.h.
12007         * gimplify.c: Include tree-pretty-print.h.
12008         * graphite-poly.c: Include tree-pretty-print.h and
12009         gimple-pretty-print.h.
12010         * ipa-cp.c: Include tree-pretty-print.h.
12011         * ipa-inline.c: Include gimple-pretty-print.h.
12012         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12013         * ipa-pure-const.c: Include gimple-pretty-print.h.
12014         * ipa-struct-reorg.c: Include tree-pretty-print.h and
12015         gimple-pretty-print.h.
12016         * ipa-type-escape.c: Include tree-pretty-print.h.
12017         * print-rtl.c: Include tree-pretty-print.h.
12018         * print-tree.c: Include gimple-pretty-print.h.
12019         * sese.c: Include tree-pretty-print.h.
12020         * tree-affine.c: Include tree-pretty-print.h.
12021         * tree-browser.c: Include tree-pretty-print.h.
12022         * tree-call-cdce.c: Include gimple-pretty-print.h.
12023         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12024         * tree-chrec.c: Include tree-pretty-print.h.
12025         * tree-data-ref.c: Include tree-pretty-print.h and
12026         gimple-pretty-print.h.
12027         * tree-dfa.c: Include tree-pretty-print.h.
12028         * tree-if-conv.c: Include tree-pretty-print.h and
12029         gimple-pretty-print.h.
12030         * tree-inline.c: Include tree-pretty-print.h.
12031         * tree-into-ssa.c: Include tree-pretty-print.h and
12032         gimple-pretty-print.h.
12033         * tree-nrv.c: Include tree-pretty-print.h.
12034         * tree-object-size.c: Include tree-pretty-print.h and
12035         gimple-pretty-print.h.
12036         * tree-outof-ssa.c: Include tree-pretty-print.h and
12037         gimple-pretty-print.h.
12038         * tree-parloops.c: Include tree-pretty-print.h and
12039         gimple-pretty-print.h.
12040         * tree-predcom.c: Include tree-pretty-print.h and
12041         gimple-pretty-print.h.
12042         * tree-scalar-evolution.c: Include tree-pretty-print.h and
12043         gimple-pretty-print.h.
12044         * tree-sra.c: Include tree-pretty-print.h.
12045         * tree-ssa-address.c: Include tree-pretty-print.h.
12046         * tree-ssa-alias.c: Include tree-pretty-print.h.
12047         * tree-ssa-ccp.c: Include tree-pretty-print.h and
12048         gimple-pretty-print.h.
12049         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12050         * tree-ssa-copy.c: Include tree-pretty-print.h and
12051         gimple-pretty-print.h.
12052         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12053         * tree-ssa-dce.c: Include tree-pretty-print.h and
12054         gimple-pretty-print.h.
12055         * tree-ssa-dom.c: Include tree-pretty-print.h and
12056         gimple-pretty-print.h.
12057         * tree-ssa-dse.c: Include gimple-pretty-print.h.
12058         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12059         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12060         * tree-ssa-live.c: Include tree-pretty-print.h and
12061         gimple-pretty-print.h.
12062         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12063         gimple-pretty-print.h.
12064         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12065         gimple-pretty-print.h.
12066         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12067         gimple-pretty-print.h.
12068         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12069         gimple-pretty-print.h.
12070         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12071         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12072         * tree-ssa-operands.c: Include tree-pretty-print.h and
12073         gimple-pretty-print.h.
12074         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12075         gimple-pretty-print.h.
12076         * tree-ssa-pre.c: Include tree-pretty-print.h and
12077         gimple-pretty-print.h.
12078         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12079         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12080         gimple-pretty-print.h.
12081         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12082         gimple-pretty-print.h.
12083         * tree-ssa-sink.c: Include gimple-pretty-print.h.
12084         * tree-ssa-ter.c: Include tree-pretty-print.h and
12085         gimple-pretty-print.h.
12086         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12087         * tree-ssa.c: Include tree-pretty-print.h and
12088         gimple-pretty-print.h.
12089         * tree-stdarg.c: Include gimple-pretty-print.h.
12090         * tree-switch-conversion.c: Include gimple-pretty-print.h.
12091         * tree-tailcall.c: Include tree-pretty-print.h and
12092         gimple-pretty-print.h.
12093         * tree-vect-data-refs.c: Include tree-pretty-print.h and
12094         gimple-pretty-print.h.
12095         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12096         gimple-pretty-print.h.
12097         * tree-vect-loop.c: Include tree-pretty-print.h and
12098         gimple-pretty-print.h.
12099         * tree-vect-patterns.c: Include gimple-pretty-print.h.
12100         * tree-vect-slp.c: Include tree-pretty-print.h and
12101         gimple-pretty-print.h.
12102         * tree-vect-stmts.c: Include tree-pretty-print.h and
12103         gimple-pretty-print.h.
12104         * tree-vectorizer.c: Include tree-pretty-print.h.
12105         * tree-vrp.c: Include tree-pretty-print.h and
12106         gimple-pretty-print.h.
12107         * value-prof.c: Include tree-pretty-print.h and
12108         gimple-pretty-print.h.
12109         * var-tracking.c: Include tree-pretty-print.h.
12110         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12111         (tree-diagnostic.o): New dependencies.
12112         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12113         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12114         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12115         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12116         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12117         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12118         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12119         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12120         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12121         tree-ssa-address.o, tree-ssa-loop-niter.o,
12122         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12123         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12124         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12125         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12126         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12127         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12128         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12129         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12130         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12131         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12132         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12133         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12134         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12135         tree-switch-conversion.o, var-tracking.o, value-prof.o,
12136         cfgexpand.o, pretty-print.o): Update dependencies.
12137
12138 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
12139
12140         * tree-ssa-structalias.c: Remove tm_p.h from include.
12141
12142 2010-05-21  Jeff Law  <law@redhat.com>
12143
12144         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12145
12146 2010-05-21  Jason Merrill  <jason@redhat.com>
12147
12148         * tree-eh.c (cleanup_is_dead_in): New.
12149         (lower_try_finally): Don't generate a dead cleanup region.
12150         (lower_cleanup): Likewise.
12151
12152 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12153
12154         PR debug/44223
12155         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12156         unchain each use from the cyclic next_regno_use chain first.
12157
12158 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12159
12160         * real: Do not include gmp.h, mpfr.h, and mpc.h.
12161         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12162         (real_value_negate, real_value_abs): New prototypes.
12163         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12164         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12165         new include file for interface between MPFR and REAL_VALUE_TYPE.
12166         * real.c: Include realmpfr.h.
12167         (real_arithmetic2): Remove legacy function.
12168         (real_value_negate): New.
12169         (real_value_abs): New.
12170         (mfpr_from_real, real_from_mpfr): Move from here...
12171         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12172         * builtins.c: Include realmpfr.h.
12173         * fold-const.c: Include realmpfr.h.
12174         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12175         (fold_negate_const): Likewise.
12176         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12177         * toplev.c: Include realmpfr.h.
12178         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12179         and real_value_negate.
12180         * fixed-value.c (check_real_for_fixed_mode): Likewise.
12181         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12182         (vfp3_const_double_index): Likewise.
12183         (arm_print_operand): Likewise.
12184         * Makefile.in: Update dependencies.
12185
12186 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12187
12188         * config/s390/s390.c (override_options): Increase the default
12189         of max-completely-peel-times.
12190
12191 2010-05-21  Julian Brown  <julian@codesourcery.com>
12192             Mark Mitchell  <mark@codesourcery.com>
12193
12194         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12195         sibling calls for Thumb-1.
12196         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12197         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12198         Thumb-2.
12199         (*call_insn, *call_value_insn): Don't use for Thumb-2.
12200         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12201         for Thumb-2.
12202         (return): New expander.
12203         (*arm_return): New name for ARM return insn.
12204         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12205
12206 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
12207
12208         * config.gcc (sparc64-*-rtems*): New target.
12209
12210 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12211
12212         * tree.c (build_function_decl_skip_args): Fix grammar.
12213         (build_function_type_list_1): Fix typos, adjust formatting.
12214
12215 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
12216
12217         * tree.h: Include real.h and fixed-value.h as basic datatypes.
12218         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12219         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12220         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12221         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12222         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12223         tree-pretty-print.c, tree-loop-distribution.c,
12224         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12225         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12226         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12227         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12228         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12229         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12230         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12231         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12232         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12233         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12234         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12235         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12236         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12237         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12238         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12239         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12240         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12241         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12242         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12243         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12244         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12245         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12246         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12247         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12248         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12249         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12250         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12251         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12252         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12253         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12254         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12255         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12256         config/score/score7.c, config/score/score.c, config/arm/arm.c,
12257         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12258         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12259         config/bfin/bfin.c: Clean up redundant includes.
12260         * Makefile.in: Update accordingly.
12261
12262 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
12263
12264         PR middle-end/44204
12265         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12266         statement has no arguments.
12267
12268 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
12269
12270         PR/44139
12271         * varasm.c (emutls_decl): Merge attributes to new decl.
12272
12273 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
12274
12275         PR middle-end/44101
12276         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12277         around the uniquized constructor if its type requires a conversion.
12278
12279 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
12280
12281         PR debug/44205
12282         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12283         at -O0 goto_locus of any of the incoming edges differs from
12284         goto_locus of outgoing edge, or gimple_location of any of the
12285         labels differs.
12286
12287 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
12288
12289         * ira.c (ira_non_ordered_class_hard_regs): Define.
12290         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12291         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12292         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12293         cost of unaligned hard regs when allocating multi-reg pseudos.
12294
12295 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
12296
12297         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12298         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12299         for TARGET_NO_FLOAT.
12300         * config/mips/mips.c (mips_file_start): Expand conditional expression
12301         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12302         (mips_override_options): Move -mno-float override -msoft-float and
12303         -mhard-float.
12304         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12305         Condition(TARGET_SUPPORTS_NO_FLOAT).
12306         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12307         __mips_no_float here.
12308         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12309         (TARGET_SUPPORTS_NO_FLOAT): Define.
12310         * config/mips/sdemtk.opt: Delete.
12311
12312 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
12313
12314         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
12315
12316 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
12317
12318         PR target/43733
12319         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
12320         * configure: Regenerate.
12321         * config.in: Regenerate.
12322         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
12323         instead of sahf only for 64bit targets.
12324
12325 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12326
12327         PR debug/44178
12328         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
12329         setup_ref_regs for DEBUG_INSNs.
12330
12331 2010-05-20  Jan Hubicka  <jh@suse.cz>
12332
12333         PR middle-end/44197
12334         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
12335
12336 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
12337
12338         PR bootstrap/43870
12339         * df-scan.c (df_ref_compare): Stabilize sort.
12340
12341 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
12342
12343         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
12344         argument.  Don't use DW_OP_piece if offset is non-zero,
12345         put offset into second DW_OP_bit_piece argument.
12346         (dw_sra_loc_expr): Adjust callers.  For memory expressions
12347         compute offset.
12348
12349 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
12350
12351         PR target/44202
12352         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
12353         settings for 16-bit-constant "addo" alternative.
12354
12355 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
12356
12357         * config/mips/mips-dsp.md (add<DSPV:mode>3,
12358         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
12359
12360         PR target/43764
12361         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
12362         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
12363         Use it.
12364
12365 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
12366
12367         * diagnostic.c (FLOAT, FFS): Don't undefine.
12368         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
12369         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
12370         include ordering.
12371
12372 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
12373
12374         * combine.c (propagate_for_debug): Call make_compound_operation
12375         on the source value.
12376         (try_combine): When implementing a split chosen by find_split_point,
12377         either copy i2src or set it to null.  Assert that i2src is not null
12378         before substituting into CALL_INSN_FUNCTION_USAGE.
12379
12380 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
12381
12382         * double-int.h (double_int_ior): New function.
12383         * tree.h (build_int_cst_wide_type): Remove.
12384         * tree.c (build_int_cst_wide_type): Remove.
12385         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
12386         of build_int_cst_wide_type.
12387         * stor-layout.c (set_sizetype): (Ditto.).
12388         * dojump.c (do_jump): Use build_int_cstu instead of
12389         build_int_cst_wide_type.
12390
12391 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
12392
12393         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
12394         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
12395         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
12396         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
12397         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
12398         propagate the 'data' argument to copy_tree_r.
12399         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
12400         Propagate 'data' argument to walk_tree.
12401         (copy_if_shared): New function.
12402         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
12403         (unmark_visited): New function.
12404         (unshare_body): Call copy_if_shared instead of doing it manually.
12405         (unvisit_body): Call unmark_visited instead of doing it manually.
12406
12407 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
12408
12409         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
12410         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
12411         * hooks.c: Likewise.
12412         * target-def.h (TARGET_FOLD_BUILTIN): Define to
12413         hook_tree_tree_int_treep_bool_null.
12414         * target.h (struct gcc_target): Update signature of fold_builtin
12415         field.
12416         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
12417         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
12418         instead of the call expression.
12419         (fold_builtin_call_array): Pass n and argarray directly.
12420         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
12421         consing a list.
12422         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
12423         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
12424         `i' and use it in place of `arity'.
12425         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
12426         Dereference `args' directly.
12427         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
12428
12429 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12430
12431         * doc/sourcebuild.texi (Effective-Target Keywords): Document
12432         3dnow, sse3, sse2.
12433         (Directives): Document optional dg-require-effective-target
12434         selector.
12435
12436 2010-05-19  Richard Guenther  <rguenther@suse.de>
12437
12438         PR lto/44196
12439         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
12440
12441 2010-05-19  Richard Guenther  <rguenther@suse.de>
12442
12443         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
12444         * common.opt (fwhopr=): New.
12445         * opts.c (common_handle_option): Handle OPT_fwhopr.
12446         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
12447         * collect2.c (main): Match -fwhopr*.
12448         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
12449         Execute ltrans stage in parallel when jobs is bigger than 1.
12450
12451 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12452
12453         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
12454         pentiumpro on Solaris 8/x86 with Sun as.
12455         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
12456         hidden alias bug.
12457         (gcc_cv_as_ix86_quad): Check for .quad directive.
12458         * configure: Regenerate.
12459         * config.in: Regenerate.
12460         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
12461
12462 2010-05-19  Martin Jambor  <mjambor@suse.cz>
12463
12464         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
12465         also for indirect edges.  Actual printing moved...
12466         (ipa_print_node_jump_functions_for_edge): ...here.
12467         (ipa_compute_jump_functions): Renamed to
12468         ipa_compute_jump_functions_for_edge and made static.
12469         (ipa_compute_jump_functions): New function.
12470         (make_edge_direct_to_target): Check if the number of arguments on
12471         the newly direct edge is the same as the number of parametrs of
12472         the callee.
12473         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
12474         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
12475         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
12476         analysis functions unconditionally, call the new
12477         ipa_analyze_params_uses on the node instead of every edge.
12478
12479 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
12480
12481         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
12482         to tree.
12483         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
12484         also checks for a constant int vs.  non-constant but
12485         loop-invariant steps.
12486         (find_or_create_group): Change the sort algorithm to only consider
12487         steps that are constant ints.
12488         (idx_analyze_ref): Adopt code to handle a tree instead of a
12489         HOST_WIDE_INT for step.
12490         (gather_memory_references_ref): Handle tree instead of int and be
12491         prepared to see a NULL_TREE.
12492         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
12493         prefetches if the step cannot be calculated at compile time.
12494         (issue_prefetch_ref): Issue prefetches for non-constant but
12495         loop-invariant steps.
12496
12497 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
12498
12499         Revert:
12500         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
12501
12502         * tree.h (build_call_list): Remove.
12503         * tree.c (build_call_list): Remove.
12504
12505 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
12506
12507         * tree.h (build_call_list): Remove.
12508         * tree.c (build_call_list): Remove.
12509
12510 2010-05-18  Jan Hubicka  <jh@suse.cz>
12511
12512         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
12513
12514 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
12515
12516         PR rtl-optimization/43332
12517         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
12518
12519 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
12520
12521         * tree.h (build_int_cstu): Implement as static inline.
12522         * tree.c (build_int_cstu): Remove function.
12523         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
12524         sign extended.
12525
12526 2010-05-18  Richard Guenther  <rguenther@suse.de>
12527
12528         PR lto/44143
12529         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
12530         (debug): Initialize from -save-temps.
12531         (collect_execute): Print command-line when verbose.
12532         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
12533         for ltrans invocation.  Produce -dumpbase flag again.
12534         (process_args): Remove.
12535         (main): Simplify.
12536         * collect2.c (maybe_run_lto_and_relink): Only pass object
12537         files to lto-wrapper.
12538         * gcc.c (LINK_COMMAND_SPEC): Likewise.
12539
12540 2010-05-18  Jan Hubicka  <jh@suse.cz>
12541
12542         * opts.c (decode_options): Do not disable whopr at ipa_cp.
12543         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
12544
12545 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
12546
12547         PR lto/44184
12548         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
12549         in a GIMPLE_ASM.
12550         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
12551         in a GIMPLE_ASM.
12552
12553 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
12554
12555         PR debug/41371
12556         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
12557         rtx_equal_p inline.
12558
12559 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
12560
12561         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
12562         lto-macho as lto_binary_reader.
12563
12564         * darwin.c (darwin_asm_named_section): Do not add assembler comment
12565         after .section directive; just print it before the directive instead.
12566
12567 2010-05-17  Jan Hubicka  <jh@suse.cz>
12568
12569         * cgraph.c (cgraph_create_virtual_clone): Only check
12570         versionable_function_p when not in wpa and checking is enabled.
12571         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
12572         there are no more functions to materialize.
12573
12574 2010-05-17  Jan Hubicka  <jh@suse.cz>
12575
12576         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
12577         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
12578         New functions.
12579         (output_cgraph): Call output_cgraph_opt_summary.
12580         (input_cgrpah): Call input_cgraph_opt_summary.
12581         (output_cgraph_opt_summary_p, output_node_opt_summary,
12582         input_node_opt_summary, input_cgraph_opt_section): New functions.
12583         * lto-section-in.c (lto_section_name): Add cgraphopt.
12584         * tree-inline.c (tree_function_versioning): Handle parm_num.
12585         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
12586         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
12587
12588 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
12589
12590         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
12591         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
12592         the insn to prefetch ratio heuristic to loops with known trip count.
12593
12594 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
12595
12596         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
12597         (schedule_prefetches): Do not generate a prefetch if the unroll factor
12598         is far from what is required by the prefetch.
12599
12600 2010-05-17  Jan Hubicka  <jh@suse.cz>
12601
12602         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
12603         (ipcp_estimate_growth): Likewise.
12604         (ipcp_const_param_count): Likewise.
12605         (ipcp_insert_stage): Likewise.
12606         * ipa-prop.c (visit_load_for_mod_analysis): New function.
12607         (visit_store_addr_for_mod_analysis): Set used flag.
12608         (ipa_detect_param_modifications): Set used flag for SSE params;
12609         update use of walk_stmt_load_store_addr_ops.
12610         (ipa_print_node_params): Print used flag.
12611         (ipa_write_node_info): Stream used flag.
12612         (ipa_read_node_info): Likewise.
12613         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
12614         (ipa_is_param_used): New function.
12615         (lto_ipa_fixup_call_notes): Remove unused declaration.
12616
12617 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12618
12619         PR target/44074
12620         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
12621         * configure: Regenerate.
12622         * config.in: Regenerate.
12623         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
12624         !HAVE_AS_IX86_REP_LOCK_PREFIX.
12625         Don't emit whitespace.
12626         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
12627         (*rep_movsi): Likewise.
12628         (*rep_movsi_rex64): Likewise.
12629         (*rep_movqi): Likewise.
12630         (*rep_movqi_rex64): Likewise.
12631         (*rep_stosdi_rex64): Likewise.
12632         (*rep_stossi): Likewise.
12633         (*rep_stossi_rex64): Likewise.
12634         (*rep_stosqi): Likewise.
12635         (*rep_stosqi_rex64): Likewise.
12636         (*cmpstrnqi_nz_1): Use {%;} after repz.
12637         (*cmpstrnqi_nz_rex_1): Likewise.
12638         (*cmpstrnqi_1): Likewise.
12639         (*cmpstrnqi_rex_1): Likewise.
12640         (*strlenqi_1): Use {%;} after repnz.
12641         (*strlenqi_rex_1): Likewise.
12642         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
12643         (*sync_compare_and_swap<mode>): Likewise.
12644         (sync_double_compare_and_swap<mode>): Likewise.
12645         (*sync_double_compare_and_swapdi_pic): Likewise.
12646         (sync_old_add<mode>): Likewise.
12647         (sync_add<mode>): Likewise.
12648         (sync_sub<mode>): Likewise.
12649         (sync_<code><mode>): Likewise.
12650
12651 2010-05-17  Martin Jambor  <mjambor@suse.cz>
12652
12653         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
12654         otr_token and polymorphic.
12655         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
12656         (cgraph_clone_edge): Copy the above fields.
12657         * tree.c (get_binfo_at_offset): New function.
12658         * tree.h (get_binfo_at_offset): Declare.
12659         * ipa-prop.h (enum jump_func_type): Added known_type jump function
12660         type, reordered items, updated comments.
12661         (union jump_func_value): Added base_type field, reordered fields.
12662         (enum ipa_lattice_type): Moved down in the file.
12663         (struct ipa_param_descriptor): New field polymorphic.
12664         (ipa_is_param_polymorphic): New function.
12665         * ipa-prop.c: Include gimple.h and gimple-fold.h.
12666         (ipa_print_node_jump_functions): Print known type jump functions.
12667         (compute_complex_pass_through): Renamed to...
12668         (compute_complex_assign_jump_func): this.
12669         (compute_complex_ancestor_jump_func): New function.
12670         (compute_known_type_jump_func): Likewise.
12671         (compute_scalar_jump_functions): Create known type and complex ancestor
12672         jump functions.
12673         (ipa_note_param_call): New parameter polymorphic, set the corresponding
12674         flag in the call note accordingly.
12675         (ipa_analyze_call_uses): Renamed to...
12676         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
12677         variable var only in the block where it is used.
12678         (ipa_analyze_virtual_call_uses): New function.
12679         (ipa_analyze_call_uses): Likewise.
12680         (combine_known_type_and_ancestor_jfs): Likewise.
12681         (update_jump_functions_after_inlining): Implemented handling of a
12682         number of new jump function types combination.
12683         (print_edge_addition_message): Removed.
12684         (make_edge_direct_to_target): New function.
12685         (try_make_edge_direct_simple_call): Likewise.
12686         (try_make_edge_direct_virtual_call): Likewise.
12687         (update_call_notes_after_inlining): Renamed to...
12688         (update_indirect_edges_after_inlining): this.  Moved edge creation for
12689         indirect calls to try_make_edge_direct_simple_call, also calls
12690         try_make_edge_direct_virtual_call for virtual calls.
12691         (ipa_print_node_params): Changed the header message.
12692         (ipa_write_jump_function): Stream also known type jump functions.
12693         (ipa_read_jump_function): Likewise.
12694         (ipa_write_indirect_edge_info): Stream new fields in
12695         cgraph_indirect_call_info.
12696         (ipa_read_indirect_edge_info): Likewise.
12697         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
12698         GIMPLE_FOLD_H.
12699
12700 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12701
12702         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
12703
12704 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
12705
12706         * tree.h (CALL_EXPR_ARGS): Delete.
12707         (call_expr_arglist): Delete.
12708         * tree.c (call_expr_arglist): Delete.
12709         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
12710         targetm.fold_builtin.
12711         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
12712         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
12713         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
12714         arglist parameter.  Use CALL_EXPR_ARG.
12715         (picochip_expand_builtin_3op): Likewise.
12716         (picochip_expand_builtin_2opvoid): Likewise.
12717         (picochip_expand_array_get): Likewise.
12718         (picochip_expand_array_put): Likewise.
12719         (picochip_expand_array_testport): Likewise.
12720         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
12721         rather than arglist.
12722         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
12723         CALL_EXPR_ARGS.
12724         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
12725         than TREE_VALUE and TREE_CHAIN.
12726         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
12727         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
12728         the arglist.
12729
12730 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
12731
12732         PR bootstrap/42347
12733         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
12734         to have no fallthru edge.
12735
12736         PR middle-end/44102
12737         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
12738         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
12739         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
12740         add BARRIER after previous bb if needed.
12741
12742 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
12743
12744         * tree.c (build_function_type_list_1): Remove bogus assert condition.
12745
12746 2010-05-17  Alan Modra  <amodra@gmail.com>
12747
12748         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
12749         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
12750         with copy_reg rtx param.
12751         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
12752         Correct cases where code for ABI_V4 did not initialise the reg
12753         used to access frame.  Also leave frame_reg_rtx as sp for large
12754         frames that save no regs.
12755
12756 2010-05-17  Martin Jambor  <mjambor@suse.cz>
12757
12758         PR middle-end/44133
12759         * tree-sra.c (create_access_replacement): New parameter rename, mark
12760         the replaement for renaming only when it is true.
12761         (get_access_replacement): Pass true in the rename parameter of
12762         create_access_replacement.
12763         (get_unrenamed_access_replacement): New function.
12764         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
12765         replacement declaration from it.
12766
12767 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
12768
12769         * function.c (try_fit_stack_local, add_frame_space): New static
12770         functions.
12771         (assign_stack_local_1): Use them.  Look for opportunities to use
12772         space previously wasted on alignment.
12773         * function.h (struct frame_space): New.
12774         (struct rtl_data): Add FRAME_SPACE_LIST member.
12775         * reload1.c (something_was_spilled): New static variable.
12776         (alter_reg): Set it.
12777         (reload): Test it in addition to testing if the frame size changed.
12778
12779 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
12780
12781         * config/s390/s390.c: Define sane prefetch settings and activate
12782         flag_prefetch_loop_arrays on -O3.
12783         * config/s390/s390.h: Declare that read can use write prefetch.
12784
12785 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
12786
12787         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
12788         build.
12789
12790 2010-05-16  Jan Hubicka  <jh@suse.cz>
12791
12792         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
12793         function body; do not check stdarg field of struct function.
12794
12795 2010-05-16  Jan Hubicka  <jh@suse.cz>
12796
12797         * cgraph.c (dump_cgraph_node): Dump versionable flag.
12798         * cgraph.h (cgraph_local_info): Add versionable flag.
12799         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
12800         (ipcp_versionable_function_p): Use it.
12801         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
12802         versionable flag.
12803
12804 2010-05-16  Jan Hubicka  <jh@suse.cz>
12805
12806         * cgraph.c (cgraph_clone_node): Take decl argument and insert
12807         clone into hash when it is different from orig.
12808         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
12809         * cgraph.h (cgraph_clone_node): Update prototype.
12810         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
12811         (lto_cgraph_encoder_delete): Delete body map.
12812         (lto_cgraph_encoder_size): Move to header.
12813         (lto_cgraph_encoder_encode_body_p,
12814         lto_set_cgraph_encoder_encode_body): New.
12815         (lto_output_node): Do not take written_decls argument; output clone_of
12816         pointer.
12817         (add_node_to): Add include_body_argument; call
12818         lto_set_cgraph_encoder_encode_body on master of the clone.
12819         (add_references): Update use of add_node_to.
12820         (compute_ltrans_boundary): Likewise.
12821         (output_cgraph): Do not create written_decls bitmap.
12822         (input_node): Take nodes argument; stream in clone_of correctly.
12823         (input_cgraph_1): Update use of input_node.
12824         * lto-streamer-out.c (lto_output): Use encoder info to decide
12825         what bodies to output.
12826         * ipa-inline.c (cgraph_clone_inlined_nodes,
12827         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
12828         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
12829         (lto_cgraph_encoder_size): Define here.
12830         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
12831         Declare.
12832
12833 2010-05-16  Richard Guenther  <rguenther@suse.de>
12834
12835         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
12836         -fipa-type-escape.
12837         * ipa-type-escape.c (gate_type_escape_vars): Run when
12838         -fipa-struct-reorg runs.
12839         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
12840         * common.opt (fipa-type-escape): Remove.
12841
12842 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
12843
12844         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
12845         (decode_options): Likewise.
12846         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
12847
12848 2010-05-16  Jan Hubicka  <jh@suse.cz>
12849
12850         * ipa.c (function_and_variable_visibility): Also bring local all
12851         aliases.
12852
12853 2010-05-16  Richard Guenther  <rguenther@suse.de>
12854
12855         * alias.c (nonoverlapping_memrefs_p): Remove use of
12856         IPA type-escape information.
12857
12858 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
12859
12860         * c-common.c (c_common_reswords): Add _Static_assert for C.
12861         * c-parser.c (c_token_starts_declaration,
12862         c_parser_next_token_starts_declaration,
12863         c_parser_static_assert_declaration_no_semi,
12864         c_parser_static_assert_declaration): New.
12865         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
12866         Handle static assertions if static_assert_ok.
12867         (c_parser_external_declaration, c_parser_declaration_or_fndef,
12868         c_parser_compound_statement_nostart, c_parser_label,
12869         c_parser_for_statement, c_parser_objc_methodprotolist,
12870         c_parser_omp_for_loop): All callers of
12871         c_parser_declaration_or_fndef changed.
12872         (c_parser_struct_declaration): Handle static assertions.
12873         (c_parser_compound_statement_nostart): Use
12874         c_parser_next_token_starts_declaration and
12875         c_token_starts_declaration to detect start of declarations.
12876         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
12877         Likewise.
12878
12879 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
12880
12881         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12882         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12883         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12884         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12885         (mmix_function_outgoing_value): Rename to...
12886         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
12887         (mmix_function_value_regno_p): Make static.
12888         (mmix_libcall_value): New function.
12889         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
12890         mmix_function_value_regno_p): Remove declaration.
12891
12892 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
12893
12894         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
12895         BUILT_IN_ALLOCA if stack checking is enabled.
12896
12897 2010-05-16  Richard Guenther  <rguenther@suse.de>
12898
12899         * var-tracking.c (vars_copy_1): Inline ...
12900         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
12901         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
12902         (variable_merge_over_cur): Adjust.  Merge asserts.
12903         (variable_merge_over_src): Likewise.
12904         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
12905         (variable_post_merge_new_vals): Merge asserts.
12906         (variable_post_merge_perm_vals): Likewise.
12907         (find_mem_expr_in_1pdv): Likewise.
12908         (dataflow_set_different_value): Remove.
12909         (onepart_variable_different_p): Merge asserts.
12910         (variable_different_p): Likewise.
12911         (dataflow_set_different_1): Inline ...
12912         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
12913         (emit_notes_for_differences_1): Merge asserts.
12914
12915 2010-05-16  Richard Guenther  <rguenther@suse.de>
12916
12917         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
12918         * optabs.c (libfunc_decl_hash): Likewise.
12919         * varasm.c (emutls_decl): Likewise.
12920
12921 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
12922
12923         * c-decl.c: Don't include gimple.h.
12924         (merge_decls): Do not copy gimple_body.
12925
12926 2010-05-15  Jason Merrill  <jason@redhat.com>
12927
12928         * c.opt: Add -fnothrow-opt.
12929
12930 2010-05-15  Jan Hubicka  <jh@suse.cz>
12931
12932         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
12933         analyzed.
12934         * passes.c (ipa_write_summaries): Write all analyzed nodes.
12935
12936 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
12937
12938         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
12939         * Makefile.in: Add it.
12940         Fix all other Makefile dependencies for changes below.
12941         * tree.h: Include it instead of defining VEC primitives here.
12942         * gimple.h: Likewise.
12943         * rtl.h: Likewise.
12944         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
12945         * except.h: Include vecir.h, break dependence on tree.h.
12946
12947         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
12948         Move from here...
12949         * tree-iterator.c: ...to here.
12950         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
12951
12952         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
12953         tm_p.h.
12954         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
12955         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
12956         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
12957         tree-mudflap.h, and target.h.
12958         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
12959         predict.h, tree-inline.h, gimple.h, and langhooks.h.
12960         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
12961         Add FIXME for why gimple.h is still included (should be unnecessary
12962         since GCC 4.5 gimplification unit-at-a-time).
12963         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
12964         * c-pragma.c: Add FIXME for why function.h needs to be included just
12965         for cfun, at front-end level.
12966         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
12967         Do not include ggc.h, but include vecprim.h for VEC(char).
12968         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
12969         Explain why target.h is included.
12970         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
12971         Explain why gimple.h is included.
12972         * c-ppoutput.c: Do not include tm.h.
12973         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
12974         * c-parses.c: Explain why rtl.h is included, and that this (and only
12975         this) is also why tm.h must be included.
12976         Do not include except.h.
12977         * c-lang.c: Do not include ggc.h.
12978
12979 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
12980
12981         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
12982
12983 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
12984
12985         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
12986         unions by default if those structs and unions have no tags.  Do
12987         not condition anonymous struct and unions handling on flag_iso.
12988         Allow anonymous structs and unions for C1X.
12989         (finish_struct): Do not diagnose lack of named fields when
12990         anonymous structs and unions present for C1X.  Accept flexible
12991         array members in structure with anonymous structs or unions but no
12992         directly named fields.
12993         * doc/extend.texi (Unnamed Fields): Update.
12994
12995 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
12996
12997         * gimple.h (compare_field_offset): Rename into...
12998         (gimple_compare_field_offset): ...this.
12999         * gimple.c (compare_field_offset): Rename into...
13000         (gimple_compare_field_offset): ...this.  Compare the full access if
13001         the offset is self-referential.
13002         (gimple_types_compatible_p): Adjust for above renaming.
13003         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
13004         DECL_NONADDRESSABLE_P flag of fields before merging them.
13005
13006 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
13007
13008         * tree.h (ctor_to_list): Delete.
13009         * tree.c (ctor_to_list): Delete.
13010
13011 2010-05-15  Jan Hubicka  <jh@suse.cz>
13012
13013         * ipa-reference.c: Include toplev.h
13014         (is_proper_for_analysis): Only add to all_module_statics
13015         if it is allocated.
13016         (write_node_summary_p, stream_out_bitmap,
13017         ipa_reference_write_optimization_summary,
13018         ipa_reference_read_optimization_summary): New.
13019         (struct ipa_opt_pass_d pass_ipa_reference): Add
13020         optimization summary streaming.
13021         * lto-cgraph.c (referenced_from_this_partition_p,
13022         reachable_from_this_partition_p): New functions.
13023         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13024         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13025         * opts.c (decode_options): Enable ipa_reference.
13026         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13027         * lto-streamer.h (referenced_from_this_partition_p,
13028         reachable_from_this_partition_p): Declare.
13029
13030 2010-05-15  Richard Guenther  <rguenther@suse.de>
13031
13032         PR tree-optimization/44038
13033         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13034         taking the address of a V_C_E of a constant.
13035
13036 2010-05-14  Jan Hubicka  <jh@suse.cz>
13037
13038         * tree.h (memory_identifier_string): Remove.
13039         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13040         (ipa_reference_global_vars_info_d): Remove statics_not_read and
13041         statics_not_written.
13042         (ipa_reference_optimization_summary_d): New structure.
13043         (ipa_reference_optimization_summary_t): New type and vector.
13044         (ipa_reference_vars_info_d): Embedd structures instead of using
13045         pointers.
13046         (reference_vars_to_consider): Remove out of GGC space.
13047         (module_statics_escape): Remove.
13048         (global_info_obstack): Rename to ...
13049         (optimization_summary_obstack): ... this one.
13050         (initialization_status_t): Remove.
13051         (memory_identifier_string): Remove.
13052         (get_reference_vars_info): Fix indenting.
13053         (set_reference_vars_info): Likewise.
13054         (get_reference_optimization_summary): New.
13055         (set_reference_optimization_summary): New.
13056         (get_global_reference_vars_info): Remove.
13057         (ipa_reference_get_read_global): Remove.
13058         (ipa_reference_get_written_global): Remove.
13059         (ipa_reference_get_not_read_global): Update.
13060         (ipa_reference_get_not_written_global): Update.
13061         (is_proper_for_analysis): Outlaw addressable.
13062         (propagate_bits): Update for new datastructures.
13063         (analyze_variable): Remove.
13064         (init_function_info): Update for new datastructures.
13065         (clean_function_local_data): Remove.
13066         (clean_function): Remove.
13067         (copy_global_bitmap): Use optimizations_summary_obstack.
13068         (duplicate_node_data): Duplicate optimization summary only.
13069         (remove_node_data): Remove optimization summary only.
13070         (generate_summary): Do not analyze variables; do not compute
13071         module_statics_escape; do not prune solutions by it.
13072         (read_write_all_from_decl): Fix typos in comments.
13073         (propagate): Doscover readonly and nonaddressable first;
13074         update for new datastructures; share global bitmaps.
13075         * ipa-reference.h (ipa_reference_get_read_global,
13076         ipa_reference_get_written_global): Remove.
13077         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13078         * Makefile.in: Remove ipa-refereference from GT files.
13079
13080 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13081
13082         PR debug/44112
13083         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13084         for all SYMBOL_REF_DECLs.
13085
13086 2010-05-14  Jan Hubicka  <jh@suse.cz>
13087
13088         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13089         (varpool_all_refs_explicit_p): New inline function.
13090         * ipa-reference.c: Update comment.
13091         (module_statics_written): Remove.
13092         (get_static_decl): Remove.
13093         (ipa_init): Do not initialize module_statics_written.
13094         (analyze_function): Likewise.
13095         (generate_summary): Likewise; do not compute module_statics_readonly
13096         and do not update variable flags.
13097         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13098         * ipa.c: Inlucde flags.h
13099         (cgraph_local_node_p): New.
13100         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13101         promote functions to local.
13102         (ipa_discover_readonly_nonaddressable_vars): New function.
13103         (function_and_variable_visibility): Use cgraph_local_node_p.
13104         * varpool.c (varpool_finalize_decl): Set force_output for
13105         DECL_PRESERVE_P vars.
13106
13107 2010-05-14  Jan Hubicka  <jh@suse.cz>
13108
13109         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13110
13111 2010-05-14  Richard Guenther  <rguenther@suse.de>
13112
13113         PR tree-optimization/44119
13114         * tree-ssa-pre.c (eliminate): Properly mark replacement of
13115         a PHI node necessary.
13116
13117 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13118
13119         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13120
13121 2010-05-14  Jason Merrill  <jason@redhat.com>
13122
13123         PR c++/44127
13124         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13125         (gimple_call_set_nothrow): New.
13126         * gimple.c (gimple_build_call_from_tree): Call it.
13127         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13128
13129         PR c++/44127
13130         * gimplify.c (gimplify_seq_add_stmt): No longer static.
13131         * gimple.h: Declare it.
13132         * gimple.c (gimple_build_eh_filter): No ops.
13133
13134 2010-05-14  Jan Hubicka  <jh@suse.cz>
13135
13136         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13137         nodes already in queue.
13138         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13139         re-enqueueing node.
13140
13141 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
13142
13143         PR debug/44136
13144         * cfgexpand.c (expand_debug_expr): If non-memory op0
13145         has BLKmode, return NULL.
13146
13147 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
13148
13149         * config.gcc: Add support for --with-cpu option for bdver1.
13150         * config/i386/i386.h (TARGET_BDVER1): New macro.
13151         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13152         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13153         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13154         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13155         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13156         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13157         (processor_type): Add PROCESSOR_BDVER1.
13158         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13159         processor_type in config/i386/i386.h.
13160         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13161         movaps <reg, reg> instead of movapd <reg, reg> when replacing
13162         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13163         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13164         to emit packed xor instead of packed double/packed integer
13165         xor for SSE and AVX when moving a zero value.
13166         * config/i386/sse.md: Add check for
13167         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13168         movapd/movdqa for SSE and AVX.
13169         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13170         single logical operations i.e and, or and xor instead of packed double
13171         logical operations for SSE and AVX.
13172         * config/i386/i386-c.c (ix86_target_macros_internal):
13173         Add PROCESSOR_BDVER1.
13174         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13175         (has_fma4, has_xop): New.
13176         * config/i386/i386.c (bdver1_cost): New variable.
13177         (m_BDVER1): New macro.
13178         (m_AMD_MULTIPLE): Add m_BDVER1.
13179         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13180         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13181         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13182         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13183         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13184         x86_tune_sse_partial_reg_dependency,
13185         x86_tune_sse_unaligned_load_optimal,
13186         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13187         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13188         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13189         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13190         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13191         Enable/disable for bdver1.
13192         (processor_target_table): Add bdver1_cost.
13193         (cpu_names): Add bdver1.
13194         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13195          processor_alias_table.
13196         (ix86_expand_vector_move_misalign): Change.
13197         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13198         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13199         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13200         of movupd/movdqu for SSE and AVX.
13201         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13202         (ix86_tune_adjust_cost): Add code for bdver1.
13203         (standard_sse_constant_opcode): Add check for
13204         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13205         of packed double xor for SSE and AVX.
13206
13207 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
13208
13209         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13210         result to unsigned.
13211
13212 2010-05-14  Tristan Gingold  <gingold@adacore.com>
13213
13214         * toplev.c (default_debug_hooks): Remove this variable.
13215         (process_options): Remove assignments to default_debug_hooks.
13216
13217 2010-05-14  Martin Jambor  <mjambor@suse.cz>
13218
13219         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13220         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13221         * langhooks.h (struct lang_hooks_for_decls): Removed field
13222         fold_obj_type_ref.
13223         * tree.c (free_lang_data): Remove assignment to
13224         lang_hooks.fold_obj_type_ref.
13225         * tree.def (OBJ_TYPE_REF): Update comment.
13226
13227 2010-05-14  Richard Guenther  <rguenther@suse.de>
13228
13229         PR tree-optimization/44124
13230         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13231
13232 2010-05-14  Alan Modra  <amodra@gmail.com>
13233
13234         PR target/44075
13235         * config/rs6000/rs6000.c (struct machine_function): Reorder
13236         fields for better packing.  Add lr_save_state.
13237         (rs6000_ra_ever_killed): Return lr_save_state if set.
13238         (rs6000_emit_eh_reg_restore): Set lr_save_state.
13239
13240 2010-05-13  Jan Hubicka  <jh@suse.cz>
13241
13242         * varpool.c (decide_is_variable_needed): Drop code checking
13243         TREE_SYMBOL_REFERENCED.
13244
13245 2010-05-13  Jan Hubicka  <jh@suse.cz>
13246
13247         * final.c (output_addr_const): Do not call mark_decl_referenced.
13248         * cgraphunit.c (process_function_and_variable_attributes): Use
13249         mark_needed_node dirrectly.
13250         (assemble_thunk): Do not call mark_decl_referenced.
13251
13252 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
13253
13254         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13255
13256 2010-05-13  Jeff Law  <law@redhat.com>
13257
13258         * ira-conflicts.c (print_allocno_conflicts): New function broken out
13259         from...
13260         (print_conflicts): Call print_allocno_conflicts.
13261
13262 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13263
13264         PR debug/44104
13265         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13266         if it is NULL.
13267
13268 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
13269
13270         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13271         t-mingw-w64 or t-mingw-w32 for multilib configuration.
13272         * config/i386/t-mingw-w32: New.
13273         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13274
13275 2010-05-13  Martin Jambor  <mjambor@suse.cz>
13276
13277         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13278         gimple-fold.c).
13279         * gimple-fold.c (get_base_binfo_for_type): New function.
13280         (gimple_get_relevant_ref_binfo): Likewise.
13281         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13282         (gimple_fold_obj_type_ref): Likewise.
13283         (fold_gimple_call): Simplify condition for folding virtual calls
13284         and call gimple_fold_obj_type_ref.
13285         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13286         (gimple_fold_obj_type_ref_known_binfo): Likewise.
13287
13288 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
13289
13290         * config/rs6000/rs6000-protos.h
13291         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13292         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13293         (rs6000_debug_mode_dependent_address)
13294         (rs6000_mode_dependent_address_ptr): Likewise.
13295
13296 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
13297
13298         PR debug/43983
13299         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13300         by SRA.
13301         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13302         * tree-sra.c (create_access_replacement): Call unshare_expr before
13303         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13304         * dwarf2out.c: Include tree-flow.h.
13305         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13306         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13307         Handle DW_OP_bit_piece.
13308         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13309         construct_piece_list, adjust_piece_list): New functions.
13310         (add_var_loc_to_decl): Handle SRA optimized variables.
13311         Adjust for var_loc_note to loc field renaming.
13312         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
13313         in VAR_LOCATION note.
13314         (new_loc_descr_op_bit_piece): New function.
13315         (dw_sra_loc_expr): New function.
13316         (dw_loc_list): Use it.  Don't handle the last range after the
13317         loop, handle it inside of the loop.  Adjust for var_loc_note
13318         to loc field renaming.
13319         (add_location_or_const_value_attribute): Only special case
13320         single entry loc lists if loc is NOTE_P.  Adjust for
13321         var_loc_note to loc field renaming.
13322         (dwarf2out_var_location): Don't set newloc->var_loc_note
13323         and newloc->next here.
13324
13325 2010-05-12  Jan Hubicka  <jh@suse.cz>
13326
13327         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
13328         flag.
13329         * cgraph.h (cgraph_only_called_directly_p,
13330         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
13331         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
13332         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
13333         (assemble
13334         * ipa.c (cgraph_remove_unreachable_nodes): Use
13335         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
13336         flags.
13337         * tree-inline.c (copy_bb): Check address_taken flag.
13338         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
13339         externally_visible flag.
13340
13341 2010-05-12  Jason Merrill  <jason@redhat.com>
13342
13343         PR bootstrap/44048
13344         PR target/44099
13345         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
13346         * sdbout.c (plain_type_1): Likewise.
13347         * dwarf2out.c (is_base_type): Likewise.
13348         (gen_type_die_with_usage): Likewise.  Generate
13349         DW_TAG_unspecified_type for any LANG_TYPE.
13350
13351 2010-05-12  Jan Hubicka  <jh@suse.cz>
13352
13353         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
13354         indrect edges too.
13355         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
13356         (cgraph_clone_edge): Update.
13357         (cgraph_node_remove_callees): Remove indirect calls too.
13358         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
13359         (cgraph_create_indirect_edge): Update prototype.
13360         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
13361         is_proper_for_analysis.
13362         (add_new_function, visited_nodes, function_insertion_hook_holder,
13363         get_local_reference_vars_info, mark_address_taken, mark_address,
13364         mark_load, mark_store, check_asm_memory_clobber, check_call,
13365         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
13366         (ipa_init): Do not initialize visited_nodes;
13367         function_insertion_hook_holder.
13368         (analyze_variable): Rewrite.
13369         (analyze_function): Rewrite.
13370         (copy_local_bitmap): Remove.
13371         (duplicate_node_dat): Do not duplicate local info.
13372         (generate_summary): Simplify to only walk cgraph.
13373         (write_node_summary_p, ipa_reference_write_summary,
13374         ipa_reference_read_summary): Remove.
13375         (propagate): Do not remove function insertion;
13376         generate summary.
13377         (pass_ipa_reference): NULLify summary handling fields.
13378         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
13379         (input_edge): Input ecf_flags.
13380         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
13381         (update_indirect_edges_after_inlining): Ignore edges with unknown
13382         param.
13383
13384 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
13385
13386         * implicit-zee.c: New file.
13387         * tree-pass.h (pass_implicit_zee): Declare.
13388         * passes.c (init_optimization_passes): Add zee pass.
13389         * common.opt (fzee): New flag.
13390         * timevar.def (TV_ZEE): Define.
13391         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
13392         and beyond.
13393         * Makefile.in (implicit-zee.o): Add new build file.
13394
13395 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
13396             Nathan Froyd  <froydnj@codesourcery.com>
13397
13398         * c-common.c (sync_resolve_params): Remove write-only variable.
13399
13400 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
13401
13402         * target.h (struct gcc_target): Add mode_dependent_address_p field.
13403         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
13404         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
13405         * targhooks.c (default_mode_dependent_address_p): New function.
13406         * targhooks.h (default_mode_dependent_address_p): Declare function.
13407         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
13408         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
13409         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
13410         target hook. Change return type to bool.
13411         * recog.h (mode_dependent_address_p): Change return type to bool.
13412
13413 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
13414             Nathan Froyd  <froydnj@codesourcery.com>
13415
13416         * tree-mudflap.c (build_function_type_0, build_function_type_1,
13417         build_function_type_2, build_function_type_3): Remove.
13418         (mudflap_init): Use build_function_type_list.
13419
13420 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
13421             Nathan Froyd  <froydnj@codesourcery.com>
13422
13423         * coverage.c (build_fn_info_value): Call build_constructor instead of
13424         build_constructor_from_list.
13425         (build_ctr_info_value): Likewise.
13426         (build_gcov_info): Likewise.
13427
13428 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
13429
13430         * tree.c (build_constructor): Compute TREE_CONSTANT for the
13431         resultant constructor.
13432         (build_constructor_single): Don't set TREE_CONSTANT.
13433         (build_constructor_from_list): Don't compute TREE_CONSTANT.
13434
13435 2010-05-12  Jan Hubicka  <jh@suse.cz>
13436
13437         * cgraph.h (struct varpool_node): Add aux.
13438         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
13439         * varpool.c (varpool_remove_node): Do not remove initializer.
13440         (varpool_reset_queue): Export.
13441         (varpool_finalize_decl): Volatile vars are forced to be output.
13442         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
13443         replaced decl.
13444         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
13445         process_references, varpool_can_remove_if_no_refs): New functions.
13446         (cgraph_remove_unreachable_nodes): Handle variables too.
13447
13448 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13449
13450         PR target/44088
13451         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
13452
13453 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
13454
13455         PR middle-end/44085
13456         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
13457         change value of ORT_TASK.
13458         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
13459         (omp_notice_threadprivate_variable): New function.
13460         (omp_notice_variable): Call it for threadprivate variables.
13461         If enclosing ctx is a task, print enclosing task rather than
13462         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
13463         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
13464         if task has untied clause.
13465
13466         PR debug/42278
13467         * dwarf2out.c (base_type_die): Don't add name attribute here.
13468         (modified_type_die): Instead of sizetype use
13469         its underlying original type.  If a DW_TAG_base_type doesn't
13470         have name added, add __unknown__.
13471         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
13472         always call force_type_die instead.
13473
13474 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
13475
13476         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
13477         for __stack_chk_guard.
13478
13479 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
13480
13481         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
13482         don't call start_source_file debug hook here...
13483         (finish_options): ... but here, after outputting predefined and
13484         command line defines and undefs.
13485
13486         PR middle-end/44071
13487         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
13488         no fallthru edge.
13489         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
13490         optimizing away empty bb with no successors, move over its
13491         footer chain to fallthru predecessor.
13492         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
13493         (rtl_split_edge): For asm goto call patch_jump_insn even if
13494         splitting fallthru edge.
13495
13496         PR c++/44059
13497         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
13498         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
13499         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
13500         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
13501         on DW.ref.* decls.
13502
13503         PR c++/44062
13504         * c-parser.c (c_parser_expression): Mark LHS of a comma
13505         expression as read if it is a decl, handled component or
13506         COMPOUND_EXPR with that on the RHS.
13507         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
13508         if it is a decl or handled component.
13509
13510 2010-05-11  Jan Hubicka  <jh@suse.cz>
13511
13512         * lto-symtab.c (lto_symtab_free): New function.
13513         * lto-streamer.h (lto_symtab_free): Declare.
13514
13515 2010-05-11  Jan Hubicka  <jh@suse.cz>
13516
13517         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
13518         that if function is needed it is reachable.
13519         (lto_output_node): See if it the function is reachable or referenced.
13520         (output_cgraph): Update call of lto_output_node.
13521         * lto-streamer.h (reachable_from_other_partition_p): Declare.
13522
13523 2010-05-11  Jan Hubicka  <jh@suse.cz>
13524
13525         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
13526         Mark as used.
13527
13528 2010-05-11  Jan Hubicka  <jh@suse.cz>
13529
13530         PR tree-optimize/44063
13531         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
13532         queue.
13533         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
13534         limits.
13535         (estimate_function_body_sizes): Compute sizes even when disregarding.
13536
13537 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
13538
13539         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
13540
13541 2010-05-11  Jan Hubicka  <jh@suse.cz>
13542
13543         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
13544         into every boundary.
13545
13546 2010-05-11  Jan Hubicka  <jh@suse.cz>
13547
13548         * matrix-reorg.c (matrix_reorg): Rebuild edges.
13549
13550 2010-05-11  Jan Hubicka  <jh@suse.cz>
13551
13552         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
13553         lto_streamer_cache_delete): Put nodes into heap.
13554         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
13555         heap.
13556
13557 2010-05-11  Jan Hubicka  <jh@suse.cz>
13558
13559         * cgraphbuild.c (cgraph_rebuild_references): New.
13560         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
13561         out extern inlines.
13562         * cgraph.h (cgraph_rebuild_references): Declare.
13563         * tree-inline.c (tree_function_versioning): Use it.
13564         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
13565
13566 2010-05-11  Jan Hubicka  <jh@suse.cz>
13567
13568         * cgraph.c: Include ipa-utils.h
13569         (cgraph_create_virtual_clone): Update references.
13570         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
13571
13572 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
13573
13574         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
13575         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
13576         cache size.
13577
13578 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
13579
13580         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
13581
13582 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
13583
13584         * gcc.c (execute): For -### don't quote arguments that
13585         contain just alphanumerics and _/-. characters.
13586         * doc/invoke.texi: Document that change for -###.
13587
13588         PR debug/44023
13589         * df-problems.c (struct dead_debug): Add to_rescan field.
13590         (dead_debug_init): Clear to_rescan field.
13591         (dead_debug_finish): Rescan all debug insns in to_rescan
13592         bitmap and free the bitmap.
13593         (dead_debug_insert_before): Instead of rescanning debug insns
13594         immediately queue their rescanning until dead_debug_finish.
13595         (df_note_bb_compute): After dead_debug_add do continue instead
13596         of break.
13597
13598 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
13599
13600         PR debug/44028
13601         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
13602         clear also INSN_REG_USE_LIST.
13603
13604 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13605
13606         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
13607
13608 2010-05-10  Jan Hubicka  <jh@suse.cz>
13609
13610         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
13611         commited change.
13612
13613 2010-05-10  Jan Hubicka  <jh@suse.cz>
13614
13615         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
13616         Allocate encoders.
13617         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
13618         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
13619         (lto_streamer_cache_create): Init alloc pool.
13620         (lto_streamer_cache_delete): Free alloc pool.
13621         * lto-streamer.h: Include alloc pool.
13622         (lto_streamer_cache_d): Use alloc pool.
13623         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
13624
13625 2010-05-10  Jan Hubicka  <jh@suse.cz>
13626
13627         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
13628         * cgraphbuild.c: Include except.h
13629         (record_type_list, record_eh_tables): New function.
13630         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
13631
13632 2010-05-10  Jan Hubicka  <jh@suse.cz>
13633
13634         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
13635         __frame_dummy_init_array_entry, force_to_data): Attribute as used
13636         rather than unused.
13637
13638 2010-05-10  Michael Matz  <matz@suse.de>
13639
13640         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
13641         (can_reassociate_p): Use FLOAT_TYPE_P.
13642         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
13643         (vect_force_simple_reduction): ... this.
13644         * tree-parloops.c (gather_scalar_reductions): Use
13645         vect_force_simple_reduction.
13646         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
13647         vect_is_simple_reduction, add modify argument, if true rewrite
13648         "a-b" into "a+(-b)".
13649         (vect_is_simple_reduction, vect_force_simple_reduction): New
13650         functions.
13651         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
13652
13653 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
13654             Vladimir Makarov  <vmakarov@redhat.com>
13655
13656         PR rtl-optimization/44012
13657         * ira-build.c (remove_unnecessary_allocnos): Nullify
13658         regno_allocno_map of the removed allocno.
13659
13660 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13661
13662         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
13663         to /dev/null.
13664         * configure: Regenerate.
13665
13666 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13667
13668         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
13669         unused.
13670         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
13671         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
13672         support in Sun ld.
13673         * configure: Regenerate.
13674
13675 2010-05-10  Richard Guenther  <rguenther@suse.de>
13676
13677         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
13678         marked if the entry identifier is marked.
13679
13680 2010-05-10  Richard Guenther  <rguenther@suse.de>
13681
13682         * c-common.c (struct c_common_attributes): Add fnspec attribute.
13683         (handle_fnspec_attribute): New function.
13684         * gimple.h (gimple_call_return_flags): Declare.
13685         (gimple_call_arg_flags): Likewise.
13686         * gimple.c (gimple_call_arg_flags): New function.
13687         (gimple_call_return_flags): Likewise.
13688         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
13689         New argument flags.
13690         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
13691         return value flags.
13692         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
13693         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
13694         main work to ...
13695         (make_heapvar_for): ... this new function.
13696         (handle_rhs_call): Handle fnspec attribute argument specifiers.
13697         (handle_lhs_call): Likewise.
13698         (find_func_aliases): Adjust.
13699
13700 2010-05-10  Richard Guenther  <rguenther@suse.de>
13701
13702         PR tree-optimization/44050
13703         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
13704
13705 2010-05-10  Wei Guozhi  <carrot@google.com>
13706
13707         PR target/42879
13708         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
13709
13710 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
13711
13712         PR c/10676
13713         * c-typeck.c (lookup_field): Take a type directly.  Update
13714         recursive calls.
13715         (build_component_ref): Update call to lookup_field.
13716         (set_init_label): Use lookup_field to find initialized field.
13717         Handle returned list of fields like a sequence of designators.
13718
13719 2010-05-09  Richard Guenther  <rguenther@suse.de>
13720
13721         PR middle-end/44024
13722         * fold-const.c (tree_single_nonzero_warnv_p): Properly
13723         handle &FUNCTION_DECL.
13724
13725 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
13726
13727         PR c/4784
13728         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
13729         structures and unions recursively.
13730         (detect_field_duplicates): Move duplicate detection with a hash to
13731         detect_field_duplicates_hash.  Always use a hash if anonymous
13732         structures or unions are present.
13733         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
13734         give errors.
13735
13736 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
13737
13738         PR target/44046
13739         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
13740         detect Atom, Core 2 and Core i7.
13741
13742 2010-05-09  Richard Guenther  <rguenther@suse.de>
13743
13744         * gcc.c (store_arg): Handle temporary file deletion for
13745         joined arguments.
13746
13747 2010-05-09  Richard Guenther  <rguenther@suse.de>
13748
13749         PR middle-end/44043
13750         * ipa-inline.c (estimate_function_body_sizes): Return after
13751         disregarding inline limits.
13752
13753 2010-05-09  Richard Guenther  <rguenther@suse.de>
13754
13755         * gcc.c (store_arg): Revert last change.
13756
13757 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
13758
13759         PR middle-end/28685
13760         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
13761         (optimize_ops_list): Call it.
13762
13763 2010-05-08  Richard Guenther  <rguenther@suse.de>
13764
13765         PR tree-optimization/44030
13766         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
13767         NECESSARY flag if we propagate from a inserted expression.
13768
13769 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
13770
13771         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
13772         domain types as equal if they are both PLACEHOLDER_EXPRs.
13773
13774 2010-05-08  Richard Guenther  <rguenther@suse.de>
13775
13776         * lto-wrapper.c (run_gcc): Remove linker output from
13777         command line for LTRANS invocation.
13778
13779 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
13780
13781         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
13782         lto-macho as lto_binary_reader.
13783         * target.h (struct gcc_target): New hooks lto_start and lto_end.
13784         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
13785         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
13786         in lto_start and lto_end calls.
13787         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
13788         magic numbers.
13789         (scan_prog_file): Update is_elf_or_coff call.
13790         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
13791
13792         * collect2.c (main): Fix enum comparison.
13793
13794         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
13795         Add prototypes.
13796         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
13797         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
13798         and TARGET_ASM_LTO_END.
13799         * darwin.c: Include obstack.h and lto-streamer.h.
13800         (lto_section_names_offset, lto_section_names_obstack,
13801         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
13802         global variables.
13803         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
13804         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
13805         to a temporary file.
13806         (darwin_asm_lto_end): New function.  Restore asm_out_file.
13807         (darwin_asm_named_section): For LTO sections, replace the name with
13808         the offset of the section name in a string table, and build this
13809         table.
13810         (darwin_file_start): Initialize global vars for LTO support.
13811         (darwin_file_end): If output to asm_out_file was redirected, append it
13812         to the proper asm_out_file here.  Add the section names section.
13813
13814 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
13815
13816         * c-pragma.c (pending_weak_d, pending_weak): New.
13817         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
13818         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
13819         handle_pragma_weak): Update the uses of pending_weaks.
13820
13821 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13822
13823         PR documentation/44016
13824         * doc/standards.texi (Standards): Link to unversioned
13825         cxx0x_status.html page.
13826
13827 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
13828
13829         PR target/43708
13830         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
13831         in addition to TREE_USED, to avoid "set but unused" warnings.
13832
13833 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
13834
13835         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
13836         (is_loop_prefetching_profitable): Do not insert prefetches
13837         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
13838         times the prefetch ahead distance.
13839
13840 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
13841
13842         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
13843         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
13844         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
13845         the unroll_factor.
13846
13847 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
13848
13849         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
13850         a diagnostic info when the insn-to-mem ratio is too small.
13851
13852 2010-05-07  Richard Guenther  <rguenther@suse.de>
13853
13854         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
13855         the linker plugin.
13856         (store_arg): Queue temp_filename for deletion instead of
13857         the whole argument.
13858
13859 2010-05-07  Richard Guenther  <rguenther@suse.de>
13860
13861         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
13862         (run_gcc): Handle LTRANS phase invocation.
13863         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
13864
13865 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
13866
13867         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
13868         this is also meaningful on PARM_DECLs and RESULT_DECLs.
13869
13870 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13871
13872         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
13873
13874 2010-05-07  Richard Guenther  <rguenther@suse.de>
13875
13876         PR tree-optimization/44020
13877         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
13878         code when PRE is not yet initialized.
13879
13880 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13881
13882         * config/mips/dbxmdebug.h: Remove.
13883         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
13884
13885 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
13886
13887         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
13888         with null pointer and also warn about ordered comparison of zero with
13889         pointer if -Wextra.
13890
13891 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13892
13893         * graphite-blocking.c
13894         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
13895         * graphite-clast-to-gimple.c
13896         (clast_to_gcc_expression): Same.
13897         (precision_for_value): Same.
13898         (precision_for_interval): Same.
13899         (gcc_type_for_interval): Same.
13900         (graphite_create_new_guard): Same.
13901         (compute_bounds_for_level): Same.
13902         (graphite_create_new_loop_guard): Same.
13903         * graphite-interchange.c
13904         (build_linearized_memory_access): Same.
13905         (pdr_stride_in_loop): Same.
13906         (memory_strides_in_loop_1): Same.
13907         (memory_strides_in_loop): Same.
13908         (extend_scattering): Same.
13909         (psct_scattering_dim_for_loop_depth): Same.
13910         (pbb_number_of_iterations): Same.
13911         * graphite-poly.h
13912         (debug_iteration_domains): Same.
13913         * graphite-ppl.c
13914         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
13915         (ppl_set_inhomogeneous_gmp): Same.
13916         (ppl_strip_loop): Same.
13917         (ppl_lexico_compare_linear_expressions): Same.
13918         (ppl_read_polyhedron_matrix): Same.
13919         (ppl_max_for_le_pointset): Same.
13920         * graphite-ppl.h
13921         (ppl_read_polyhedron_matrix): Same.
13922         (tree_int_to_gmp): Same.
13923         (gmp_cst_to_tree): Same.
13924         (ppl_set_inhomogeneous): Same.
13925         (ppl_set_inhomogeneous_tree): Same.
13926         (ppl_set_coef): Same.
13927         (ppl_set_coef_tree): Same.
13928         * graphite-sese-to-poly.c
13929         (build_pbb_scattering_polyhedrons): Same.
13930         (build_scop_scattering): Same.
13931         (scan_tree_for_params_right_scev): Same.
13932         (scan_tree_for_params): Same.
13933         (find_params_in_bb): Same.
13934         (find_scop_parameters): Same.
13935         (add_upper_bounds_from_estimated_nit): Same.
13936         (build_loop_iteration_domains): Same.
13937         (add_condition_to_domain): Same.
13938         (pdr_add_memory_accesses): Same.
13939
13940 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13941
13942         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
13943         CLooG's value_* macros to their respective mpz_* counterparts.
13944         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
13945         (graphite_create_new_loop_guard): Same.
13946         * graphite-interchange.c (build_linearized_memory_access): Same.
13947         (pdr_stride_in_loop): Same.
13948         (memory_strides_in_loop_1): Same.
13949         (1st_interchange_profitable_p): Same.
13950         * graphite-poly.c (extend_scattering): Same.
13951         (psct_scattering_dim_for_loop_depth): Same.
13952         (pbb_number_of_iterations): Same.
13953         (pbb_number_of_iterations_at_time): Same.
13954         * graphite-poly.h (new_1st_loop): Same.
13955         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
13956         (oppose_constraint): Same.
13957         (insert_constraint_into_matrix): Same.
13958         (ppl_set_inhomogeneous_gmp): Same.
13959         (ppl_set_coef_gmp): Same.
13960         (ppl_strip_loop): Same.
13961         (ppl_lexico_compare_linear_expressions): Same.
13962         (ppl_max_for_le_pointset): Same.
13963         (ppl_min_for_le_pointset): Same.
13964         (ppl_build_realtion): Same.
13965         * graphite-ppl.h (gmp_cst_to_tree): Same.
13966         (ppl_set_inhomogeneous): Same.
13967         (ppl_set_inhomogeneous_tree): Same.
13968         (ppl_set_coef): Same.
13969         (ppl_set_coef_tree): Same.
13970         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
13971         (build_scop_scattering): Same.
13972         (add_value_to_dim): Same.
13973         (scan_tree_for_params_right_scev): Same.
13974         (scan_tree_for_params_int): Same.
13975         (scan_tree_for_params): Same.
13976         (find_params_in_bb): Same.
13977         (find_scop_parameters): Same.
13978         (add_upper_bounds_from_estimated_nit): Same.
13979         (build_loop_iteration_domains): Same.
13980         (create_linear_expr_from_tree): Same.
13981         (add_condition_to_domain): Same.
13982         (pdr_add_memory_accesses): Same.
13983
13984 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
13985             Jason Merrill  <jason@redhat.com>
13986
13987         * c-common.c (c_common_reswords): Add nullptr.
13988         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
13989         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
13990         (gen_type_die_with_usage): Likewise.
13991         * dbxout.c (dbxout_type): Likewise.
13992         * sdbout.c (plain_type_1): Likewise.
13993
13994 2010-05-06  Jason Merrill  <jason@redhat.com>
13995
13996         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
13997         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
13998         ret appropriately.
13999         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14000
14001         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14002         stripping WITH_SIZE_EXPR.
14003         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14004         change.
14005
14006 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14007
14008         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14009         list of obsolete configurations.
14010         Disabled check for obsolete configurations.
14011         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14012         Removed support for previous versions.
14013         * config/mips/iris.h: Removed.
14014         * config/mips/iris5.h: Removed.
14015         * config/mips/iris6.h: Merged old iris.h contents.
14016         (TARGET_IRIX): Removed.
14017         (DRIVER_SELF_SPECS): Removed mabi=32.
14018         (IDENT_ASM_OP): Removed undef.
14019         (STARTFILE_SPEC): Removed mabi=32.
14020         (ENDFILE_SPEC): Likewise.
14021         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14022         (MACHINE_TYPE): Update for IRIX 6.5.
14023         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14024         TARGET_IRIX by TARGET_IRIX6.
14025         (mips_file_start): Likewise.
14026         (mips_output_external): Remove IRIX 5/6 O32 support.
14027         (mips_output_function_prologue): Likewise.
14028         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14029         TARGET_IRIX6.
14030         (TARGET_CPU_CPP_BUILTINS): Likewise.
14031         (TARGET_IRIX): Removed.
14032         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14033         (MULTILIB_DIRNAMES): Removed 32.
14034         (MULTILIB_OSDIRNAMES): Removed ../lib.
14035         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14036         (Specific, mips-sgi-irix5): Document removal.
14037         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14038         Remove references to older IRIX 6 releases and the O32 ABI.
14039
14040 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
14041
14042         PR bootstrap/43994
14043         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14044         instead of DF_REF_REAL_REG.
14045
14046 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
14047
14048         PR target/43888
14049         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14050         handling to still return true for x64 targets.
14051
14052 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14053
14054         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14055
14056 2010-05-06  Jan Hubicka  <jh@suse.cz>
14057
14058         PR tree-optimization/43791
14059         * ipa-inline.c (update_caller_keys): Remove bogus
14060         disregard_inline_limits check.
14061
14062 2010-05-06  Michael Matz  <matz@suse.de>
14063
14064         PR tree-optimization/43984
14065         * tree-ssa-pre.c (inserted_phi_names): Remove.
14066         (inserted_exprs): Change to bitmap.
14067         (create_expression_by_pieces): Set bits, don't append to vector.
14068         (insert_into_preds_of_block): Don't handle inserted_phi_names.
14069         (eliminate): Don't look at inserted_phi_names, remove deleted
14070         insns from inserted_exprs.
14071         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14072         (init_pre, fini_pre): Allocate and free bitmaps.
14073         (execute_pre): Insert insns on edges before elimination.
14074
14075 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
14076
14077         * tree.c (initializer_zerop): Handle STRING_CST.
14078
14079 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14080
14081         PR 40989
14082         * doc/invoke.texi (Wimplicit): Document as C only.
14083         * opts.c (common_handle_option): Add argument kind.
14084         (handle_option): Rename as read_cmdline_option. Factor out code to...
14085         (handle_option): ... here. New.
14086         (handle_options): Rename as read_cmdline_options.
14087         (decode_options): Update call.
14088         (set_option): Use option index instead of option pointer. Classify
14089         diagnostics correctly.
14090         (enable_warning_as_error): Call handle_option.
14091         * opts.h (set_option): Update declaration.
14092         (handle_option): Declare.
14093         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14094         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14095         * c-opts.c (set_Wimplicit): Delete.
14096         (c_family_lang_mask): New static constant.
14097         (c_common_handle_option): Add argument kind. Use handle_option
14098         instead of set_Wimplicit.
14099         (c_common_post_options): warn_implicit and warn_implicit_int
14100         are disabled by default.
14101         * c-common.c (warn_implicit): Do not define here.
14102         * c-common.h (warn_implicit): Do not declare here.
14103         (c_common_handle_option): Update declaration.
14104         * lto-opts.c (lto_reissue_options): Update call to set_option.
14105
14106 2010-05-06  Richard Guenther  <rguenther@suse.de>
14107
14108         PR tree-optimization/43571
14109         * domwalk.c (walk_dominator_tree): Walk the dominator
14110         sons in more optimal order.
14111
14112 2010-05-06  Richard Guenther  <rguenther@suse.de>
14113
14114         PR tree-optimization/43934
14115         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14116         (stmt_cost): Likewise.
14117         (extract_true_false_args_from_phi): New helper.
14118         (determine_max_movement): For PHI nodes verify we can hoist them
14119         and compute their cost.
14120         (determine_invariantness_stmt): Handle PHI nodes.
14121         (move_computations_stmt): Likewise.  Hoist PHI nodes in
14122         if-converted form using COND_EXPRs.
14123         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14124         (tree_ssa_lim): Likewise.
14125         * tree-flow.h (tree_ssa_lim): Adjust prototype.
14126         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14127
14128 2010-05-06  Richard Guenther  <rguenther@suse.de>
14129
14130         PR tree-optimization/43987
14131         * tree-ssa-structalias.c (could_have_pointers): For possibly
14132         address-taken variables force pointers to be recorded.
14133         (create_variable_info_for_1): Likewise.
14134         (push_fields_onto_fieldstack): Pass in wheter all fields
14135         must have pointers.
14136         (find_func_aliases): Query types instead of vars whether
14137         they contain pointers where appropriate.
14138
14139 2010-05-06  Jan Hubicka  <jh@suse.cz>
14140
14141         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14142         (record_reference, mark_address, mark_load, mark_store): Record
14143         references.
14144         (record_references_in_initializer): Update call of record_references.
14145         (rebuild_cgraph_edges): Remove all references before rebuiding.
14146         * cgraph.c (cgraph_create_node): Clear ref list.
14147         (cgraph_remove_node): Remove references.
14148         (dump_cgraph_node): Dump references.
14149         (cgraph_clone_node): Clone references.
14150         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14151         (struct cgraph_node, varpool_node): Add ref_lst.
14152         * ipa-ref.c: New file.
14153         * ipa-ref.h: New file.
14154         * ipa-ref-inline.h: New file.
14155         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14156         (referenced_from_other_partition_p): New function.
14157         (lto_output_varpool_node): Take set arugment; call
14158         referenced_from_other_partition.
14159         (lto_output_ref): New.
14160         (add_references): New.
14161         (output_refs): New.
14162         (output_cgraph): Compute boundary based on references; output refs.
14163         (output_varpool): Accept cgraph_node_set argument.
14164         (input_ref): New.
14165         (input_refs): New.
14166         (input_cgraph): Call input_refs.
14167         * lto-section-in.c (lto_section_name): Add refs.
14168         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14169         (ipa-ref.o): New file.
14170         * varpool.c (varpool_node): Clear ipa ref list.
14171         (varpool_remove_node): Remove references.
14172         (dump_varpool_node): Dump references.
14173         (varpool_assemble_decl): Only compile finalized ones.
14174         (varpool_extra_name_alias): Initialize ref list.
14175         * lto-streamer.c (lto-get_section_name): Add .refs section.
14176         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14177         (referenced_from_other_partition_p): Declared.
14178
14179 2010-05-06  Ira Rosen  <irar@il.ibm.com>
14180
14181         PR tree-optimization/43901
14182         * tree-vect-stmts.c (vectorizable_call): Assert that vector
14183         type is not NULL if it's transformation phase, and return
14184         FALSE if it's analysis.
14185         (vectorizable_conversion, vectorizable_operation,
14186         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14187
14188 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
14189
14190         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14191         Delete.
14192         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14193         New define.
14194         * config/mips/mips-protos.h
14195         (mips_small_register_classes_for_mode_p): Delete prototype.
14196
14197 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
14198
14199         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14200         * config/arm/arm.c (multiple_operation_profitable_p,
14201         compute_offset_order): New static functions.
14202         (load_multiple_sequence, store_multiple_sequence): Use them.
14203         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
14204         memory offsets, not register numbers.
14205         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14206
14207 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
14208
14209         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14210         (get_pending_sizes, put_pending_size, put_pending_sizes):
14211         Update the uses of pending_sizes.
14212         * c-decl.c (store_parm_decls): Likewise.
14213         * c-tree.h (struct c_arg_info): Likewise.
14214         * tree.h: Update the prototype for get_pending_sizes and
14215         put_pending_sizes.
14216
14217 2010-05-05  Jason Merrill  <jason@redhat.com>
14218
14219         PR debug/43370
14220         * c-common.c (handle_aligned_attribute): Respect
14221         ATTR_FLAG_TYPE_IN_PLACE.
14222
14223         PR testsuite/43758
14224         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14225         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14226         (TARGET_INITIALIZER): Use it.
14227         * c-common.c (attribute_takes_identifier_p): Call it.
14228         * c-common.h: Update prototype.
14229         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14230         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14231
14232 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14233
14234         PR debug/43950
14235         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14236         DW_ID_down_case for Fortran compilation units.
14237
14238 2010-05-05  Jan Hubicka  <jh@suse.cz>
14239
14240         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14241         handle aliases.
14242
14243 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14244
14245         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14246         a variable-sized RESULT_DECL.
14247
14248 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
14249
14250         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14251
14252 2010-05-05  Jason Merrill  <jason@redhat.com>
14253
14254         PR c++/43787
14255         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14256         returns GS_OK.
14257         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14258
14259 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
14260             Jakub Jelinek  <jakub@redhat.com>
14261
14262         PR debug/43478
14263         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14264         (dead_debug_init, dead_debug_finish): New functions.
14265         (dead_debug_add, dead_debug_insert_before): Likewise.
14266         (df_note_bb_compute): Initialize a dead_debug object, add dead
14267         debug uses to it, insert debug bind insns before death insns,
14268         reset debug insns that refer to pending uses at the end.
14269         * rtl.h (make_debug_expr_from_rtl): New prototype.
14270         * varasm.c (make_debug_expr_from_rtl): New function.
14271
14272 2010-05-05  Jan Hubicka  <jh@suse.cz>
14273
14274         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14275         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14276         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14277         lto_varpool_encoder_deref, lto_varpool_encoder_size,
14278         lto_varpool_encoder_encode_initializer_p,
14279         lto_set_varpool_encoder_encode_initializer): New functions.
14280         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14281         call output_varpool.
14282         (input_varpool_node): Do not always set analyzed.
14283         (input_cgraph_1): Return vector of cgraph nodes.
14284         (input_varpool_1): Return vector of varpools.
14285         (input_cgraph): Free the vectors.
14286         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14287         output only initializers needed.
14288         (lto_output): Only call output_cgraph.
14289         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14290         * lto-section-out.c (lto_new_out_decl_state): Initialize
14291         state->varpool_node_encoder.
14292         * lto-streamer.h (lto_varpool_encoder_d): New.
14293         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14294         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14295         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14296         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14297         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14298         Declare.
14299         (output_varpool, input_varpool): Remove declarations.
14300
14301 2010-05-05  Jan Hubicka  <jh@suse.cz>
14302
14303         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14304         with body can prevail.
14305
14306 2010-05-05  Jan Hubicka  <jh@suse.cz>
14307
14308         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14309         size.
14310
14311 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14312
14313         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
14314
14315         * gengtype.h (erro_at_line): Constify pos argument.
14316
14317         * gengtype.c: Include hashtab.h.
14318         (enum gc_used): Document GC_MAYBE_POINTED_TO.
14319         (error_at_line): Constify pos argument.
14320         (do_typedef): Initialize p->opt field.
14321         (get_file_gtfilename): Fix comment typo.
14322         (struct walk_type_data): Constify line field.
14323         (get_output_file_for_structure): New function.
14324         (write_local_func_for_structure): Constify orig_s argument.
14325         Use get_output_file_for_structure.
14326         (write_func_for_structure): Use get_output_file_for_structure.
14327         (INDENT): New define.
14328         (dump_pair, dump_type, dump_type_list, dump_typekind)
14329         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
14330         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
14331         functions.
14332         (seen_types): New variable.
14333         (main): New variable do_dump.  Process "-d" command line option.
14334         Call dump_everything if dump requested.
14335
14336 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
14337
14338         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
14339         in a temporary instead of invoking the macro multiple times.
14340         (track_expr_p): Likewise.
14341
14342 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
14343
14344         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
14345         per new semantics.
14346         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
14347         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
14348         conditions for printing notes.
14349         * common.opt (-Wcoverage-mismatch): Allow negative, default to
14350         true, update documentation.
14351         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
14352
14353 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
14354
14355         PR c/43981
14356         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
14357         on dimen.
14358
14359 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
14360
14361         PR target/43799
14362         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
14363         (*sse_prologue_save_insn1): Likewise.
14364         (SSE prologue save splitter): Likewise.
14365
14366 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14367
14368         * tree.c (free_lang_data_in_one_sizepos): New inline function.
14369         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
14370         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
14371         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
14372         all decls.  Call it on DECL_FIELD_OFFSET of fields.
14373         (find_decls_types_r): Follow DECL_VALUE_EXPR.
14374         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
14375
14376 2010-05-04  Martin Jambor  <mjambor@suse.cz>
14377
14378         * tree-sra.c (build_access_from_expr_1): The first parameter type
14379         changed to simple tree.
14380         (build_access_from_expr): Likewise, gsi parameter was eliminated.
14381         (scan_assign_result): Renamed to assignment_mod_result, enum elements
14382         renamed as well.
14383         (build_accesses_from_assign): Removed all parameters except for a
14384         simple gimple statement.  Now returns a simple bool.
14385         (scan_function): All non-analysis parts moved to separate functions
14386         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
14387         parameters and updated both callers.
14388         (sra_modify_expr): Removed parameter data.
14389         (sra_modify_function_body): New function.
14390         (perform_intra_sra): Call sra_modify_function_body to modify the
14391         function body.
14392         (replace_removed_params_ssa_names): Parameter data changed into
14393         adjustments vector.
14394         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
14395         changed the parameter dont_convert to convert with the opposite
14396         meaning.
14397         (sra_ipa_modify_assign): Parameter data changed into adjustments
14398         vector, return value changed to bool.
14399         (ipa_sra_modify_function_body): New function.
14400         (sra_ipa_reset_debug_stmts): Updated a comment.
14401         (modify_function): Use ipa_sra_modify_function_body to modify function
14402         body.
14403
14404 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
14405
14406         PR middle-end/43671
14407         * alias.c (true_dependence): Handle the same VALUE in x and mem.
14408         (canon_true_dependence): Likewise.
14409         (write_dependence_p): Likewise.
14410
14411 2010-05-04  Jan Hubicka  <jh@suse.cz>
14412
14413         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
14414         * cgraphbuild.c: Include ipa-utils.h
14415         (record_reference_ctx): New struct.
14416         (record_reference): Simplify to work on initializers; not statements.
14417         (mark_address, mark_load, mark_store): New.
14418         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
14419         walk PHI nodes too.
14420         (record_references_in_initializer): Update use of record_reference.
14421         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
14422         walk PHI nodes too.
14423
14424 2010-05-04  Jan Hubicka  <jh@suse.cz>
14425
14426         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
14427         node will be removed anyway.
14428         (lto_varpool_replace_node): Allow also unanalyzed nodes;
14429         relink aliases of node into prevailing node.
14430         * varpool.c (varpool_remove_node): Remove aliases properly;
14431         when removing node, remove all its aliases too; remove DECL_INITIAL
14432         of removed node; ggc_free the varpool node.
14433
14434 2010-05-04  Richard Guenther  <rguenther@suse.de>
14435
14436         PR tree-optimization/43879
14437         * tree-ssa-structalias.c (alias_get_name): Use
14438         DECL_ASSEMBLER_NAME if available.
14439         (create_function_info_for): Return the varinfo node.
14440         (ipa_pta_execute): Associate same-body aliases and extra names
14441         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
14442
14443 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14444
14445         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
14446
14447 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
14448
14449         PR bootstrap/43964
14450         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
14451         only if HONOR_REG_ALLOC_ORDER is not defined.
14452
14453 2010-05-04  Richard Guenther  <rguenther@suse.de>
14454
14455         PR tree-optimization/43949
14456         * tree-vrp.c (extract_range_from_binary_expr): Only handle
14457         TRUNC_MOD_EXPR.
14458
14459 2010-04-26  Jason Merrill  <jason@redhat.com>
14460
14461         * c.opt (-fstrict-enums): New.
14462         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
14463
14464 2010-05-03  David Ung  <davidu@mips.com>
14465             James E. Wilson  <wilson@codesourcery.com>
14466
14467         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
14468         emit the trap instruction before the divide for TUNE_74K.
14469
14470 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
14471
14472         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
14473         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
14474         based on the above, for new target hook.
14475
14476         * hooks.c (hook_bool_mode_true): New generic hook.
14477         * hooks.h (hook_bool_mode_true): Add prototype.
14478
14479         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
14480         target hook.
14481         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
14482         target hook, set to hook_bool_mode_false.
14483         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
14484         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
14485         with targetm.small_register_classes_for_mode_p.
14486         (find_reusable_reload): Likewise.
14487         (combine_reloads): Likewise.
14488         * reload1.c (reload_as_needed): Likewise.
14489         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
14490         * ifcvt.c (noce_process_if_block, check_cond_move_block,
14491         dead_or_predicable): Likewise.
14492         * regmove.c (optimize_reg_copy_1): Likewise.
14493         * calls.c (prepare_call_address): Likewise.
14494         (precompute_register_parameters): Likewise.
14495
14496         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
14497         hook definition.
14498         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
14499         implementation of the hook that considers all register classes
14500         small except for SH64.
14501         (sh_override_options): Use the new hook.
14502         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
14503         Add prototype.
14504
14505         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
14506         hook definition.
14507         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
14508         implementation of the hook that considers all register classes
14509         small for THUMB1.
14510         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
14511         Add prototype.
14512
14513         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
14514         hook definition.
14515         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
14516         implementation of the hook that considers all register classes
14517         small for MIPS16.
14518         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
14519         Add prototype.
14520
14521         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
14522         hook definition.
14523         * config/m32c/m32c.h: Likewise.
14524         * config/pdp11/pdp11.h: Likewise.
14525         * config/avr/avr.h: Likewise.
14526         * config/xtensa/xtensa.h: Likewise.
14527         * config/m68hc11/m68hc11.h: Likewise.
14528         * config/mn10300/mn10300.h: Likewise.
14529         * config/mcore/mcore.h: Likewise.
14530         * config/h8300/h8300.h: Likewise.
14531         * config/bfin/bfin.h: Likewise.
14532
14533         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
14534         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
14535
14536 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
14537
14538         * double-int.h (tree_to_double_int): Remove macro.
14539         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
14540         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
14541         (tree_to_double_int): New function.
14542         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
14543         Move ...
14544         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
14545
14546 2010-05-03  Richard Guenther  <rguenther@suse.de>
14547
14548         PR tree-optimization/43971
14549         * tree-ssa-structalias.c (get_constraint_for_1): Fix
14550         constraints in the !flag_delete_null_pointer_checks case.
14551
14552 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
14553
14554         PR debug/43972
14555         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
14556         result mode matches original rtl mode.
14557
14558 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
14559
14560         PR target/43888
14561         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
14562
14563 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
14564
14565         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
14566         when processing flag options.
14567
14568 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
14569
14570         * gcov-iov.c (main): Change format string placeholder
14571         from %#08x to 0x%08x.
14572         * genchecksum.c (dosum): Change format string placeholder
14573         from %#02x to 0x%02x.
14574
14575 2010-05-02  Richard Guenther  <rguenther@suse.de>
14576
14577         PR tree-optimization/43879
14578         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
14579
14580 2010-05-02  Bruno Haible  <bruno@clisp.org>
14581
14582         * doc/extend.texi (Function Attributes): Fix a typo.
14583
14584 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
14585
14586         Revert:
14587         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
14588         placeholder from 0x%x to %#x.
14589         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
14590         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
14591         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
14592         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
14593         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
14594         * config/i386/i386.c (ix86_target_string): Ditto.
14595         * config/i386/i386.c (output_pic_addr_const): Ditto.
14596         (print_operand): Ditto.
14597
14598 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
14599
14600         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
14601         placeholder from 0x%x to %#x.
14602         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
14603         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
14604         (ASM_OUTPUT_DEBUG_DATA): Ditto.
14605         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
14606         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
14607         * optc-gen.awk: Ditto.
14608         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
14609         (HOST_WIDE_INT_PRINT_HEX): Ditto.
14610         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
14611         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
14612
14613 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
14614
14615         * target.h (struct calls): Add function_value_regno_p field.
14616         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
14617         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
14618         * targhooks.c (default_function_value_regno_p): New function.
14619         * targhooks.h (default_function_value_regno_p): Declare function.
14620         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
14621         * builtins.c. (apply_result_size): (Ditto.).
14622         * combine.c. (likely_spilled_retval_p): (Ditto.).
14623         * mode-switching.c. Include 'target.h'.
14624         (create_pre_exit): Use function_value_regno_p hook.
14625         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
14626         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
14627         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
14628
14629         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
14630         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
14631         (ix86_function_value_regno_p): Declare as static, change argument
14632         type to const unsigned int.
14633         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
14634
14635 2010-05-01  Richard Guenther  <rguenther@suse.de>
14636
14637         PR tree-optimization/43949
14638         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
14639         types.
14640         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
14641
14642 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
14643
14644         * rtl.h (CONST_DOUBLE_P): Define.
14645         (rtx_to_double_int): Declare.
14646         * emit-rtl.c (rtx_to_double_int): New function.
14647         * dwarf2out.c (insert_double): New function.
14648         (loc_descriptor, add_const_value_attribute): Clean up, use
14649         rtx_to_double_int and insert_double functions.
14650
14651 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
14652
14653         * doc/extend.texi (Inline): Add missing return keyword to examples.
14654         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
14655         "command-line".
14656
14657 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
14658
14659         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
14660         the variable part of the offset as well.  Use highest_pow2_factor for
14661         all alignment checks.
14662
14663 2010-04-30  Richard Guenther  <rguenther@suse.de>
14664
14665         PR tree-optimization/43879
14666         * tree-ssa-structalias.c (type_could_have_pointers): Functions
14667         can have pointers.
14668
14669 2010-04-30  Jan Hubicka  <jh@suse.cz>
14670
14671         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
14672         varpool.
14673         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
14674
14675 2010-04-30  Jan Hubicka  <jh@suse.cz>
14676
14677         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
14678         New.
14679         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
14680         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
14681         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
14682         cgraph_node_set_needs_ltrans_p): Remove.
14683
14684 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
14685
14686         * sdbout.c: Include vec.h, do not include varray.h.
14687         (deferred_global_decls, sdbout_global_decl,
14688         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
14689         * toplev.c: Do not include varray.h.
14690         (dump_memory_report): Do not dump VARRAY statistics.
14691         * gengtype.c (open_base_file): Ignore varray.h.
14692         * Makefile.in: Update for abovementioned changes.
14693         Remove all traces of varray.c and varray.h.
14694         * varray.c: Remove file.
14695         * varray.h: Remove file.
14696
14697 2010-04-30  Jan Hubicka  <jh@suse.cz>
14698
14699         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
14700         references.
14701
14702 2010-04-30  Jan Hubicka  <jh@suse.cz>
14703
14704         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
14705         needed.
14706
14707 2010-04-30  Richard Guenther  <rguenther@suse.de>
14708
14709         * tree-ssa-structalias.c (get_constraint_for_1): Generate
14710         constraints for CONSTRUCTOR.
14711
14712 2010-04-30  Richard Guenther  <rguenther@suse.de>
14713
14714         PR lto/43946
14715         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
14716         first after all lowering passes.
14717
14718 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
14719
14720         * toplev.c: Include varray.h for statistics dumping.
14721         * tree.h: Do not declare varray_head_tag.
14722         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
14723         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
14724         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
14725         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
14726         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
14727         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
14728         c-common.c, c-common.h, reg-stack.c, basic-block.h,
14729         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
14730         include varray.h.
14731         * Makefile.in: Update for abovementioned changes.
14732
14733 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
14734
14735         PR debug/43942
14736         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
14737
14738 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14739
14740         * config/picochip/picochip.c (picochip_legitimize_address): Define.
14741         Use this function to do machine-specific conversion.
14742         (picochip_legitimize_reload_address): Likewise.
14743         (picochip_legitimate_address_p): Check valid base register only if
14744         strict.
14745         (picochip_check_conditional_copy): Check for modw only if opnd is
14746         register.
14747         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
14748         to call the function in c.
14749         * config/picochip/picochip-protos.h
14750         (picochip_legitimize_reload_address): Define.
14751         * config/picochip/picochip.md (supported_compare1): Define.
14752
14753 2010-04-30  Jan Hubicka  <jh@suse.cz>
14754
14755         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
14756         (cgraph_global_info): Remove inlined.
14757         (LTO_cgraph_tag_names): Remove.
14758         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
14759         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
14760         simplify cgraph tags and document.
14761         (lto_output_node): Use only LTO_cgraph_unavail_node and
14762         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
14763         for_functions_valid, global info, process and output flags.
14764         (input_overwrite_node): Initialize estimated stack size and
14765         estimated growth.  Do not read flags we no longer store.
14766         (input_node): Likewise do not read info no longer stored.
14767         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
14768         flag.
14769
14770 2010-04-30  Richard Guenther  <rguenther@suse.de>
14771
14772         PR tree-optimization/43879
14773         * tree-ssa-structalias.c (get_constraint_for_1): Properly
14774         handle non-zero initializers.
14775
14776 2010-04-30  Richard Guenther  <rguenther@suse.de>
14777
14778         * builtins.c (fold_builtin_1): Delete free (0).
14779
14780 2010-04-29  Jan Hubicka  <jh@suse.cz>
14781
14782         * gengtype.c (open_base_files): Add lto-streamer.h
14783         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
14784         (pass_ipa_cp): GGC collect.
14785         * toplev. (compile_file): Do not output symbols.
14786         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
14787         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
14788         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
14789         * lto-section-in.c: Include ggc.h
14790         (lto_new_in_decl_state): Alloc in GGC.
14791         (lto_delete_in_decl_state): Likewise.
14792         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
14793         Collect.
14794
14795 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
14796
14797         PR target/42895
14798         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
14799         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
14800         (HONOR_REG_ALLOC_ORDER): Describe new macro.
14801         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
14802         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
14803         account only if HONOR_REG_ALLOC_ORDER is not defined.
14804         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
14805         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
14806
14807 2010-04-29  Jon Grant  <04@jguk.org>
14808
14809         * collect2.c (vflag): Change type from int to bool.
14810         (debug): Likewise.
14811         (helpflag): New global bool.
14812         (main): Set vflag and debug with boolean, not integer truth values.
14813         Accept new "--help" option and output usage text if found.
14814         * collect2.h (vflag): Update prototype.
14815         (debug): Likewise.
14816
14817 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
14818
14819         PR bootstrap/43936
14820         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
14821
14822 2010-04-29  Richard Guenther  <rguenther@suse.de>
14823
14824         PR bootstrap/43935
14825         * plugin.h (invoke_plugin_callbacks): Annotate arguments
14826         with ATTRIBUTE_UNUSED.
14827
14828 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
14829
14830         PR target/43921
14831         * config/i386/i386.c (get_some_local_dynamic_name): Replace
14832         INSN_P with NONDEBUG_INSN_P.
14833         (distance_non_agu_define): Likewise.
14834         (distance_agu_use): Likewise.
14835
14836 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
14837
14838         From Dominique d'Humieres  <dominiq@lps.ens.fr>
14839         PR bootstrap/43858
14840         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
14841         test_set.
14842
14843 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
14844
14845         * plugin.h (invoke_plugin_callbacks): New inline function.
14846         * plugin.c (flag_plugin_added): New global flag.
14847         (add_new_plugin): Initialize above flag.
14848         (invoke_plugin_callbacks): Rename to ...
14849         (invoke_plugin_callbacks_full): ... this.
14850
14851 2010-04-28  Jan Hubicka  <jh@suse.cz>
14852
14853         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
14854         (lto_varpool_replace_node): New.
14855         (lto_symtab_resolve_symbols): Resolve varpool nodes.
14856         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
14857         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
14858         * cgraph.h (varpool_node_ptr): New type.
14859         (varpool_node_ptr): New vector.
14860         (varpool_node_set_def): New structure.
14861         (varpool_node_set): New type.
14862         (varpool_node_set): New vector.
14863         (varpool_node_set_element_def): New structure.
14864         (varpool_node_set_element, const_varpool_node_set_element): New types.
14865         (varpool_node_set_iterator): New type.
14866         (varpool_node): Add prev pointers, add used_from_other_partition,
14867         in_other_partition.
14868         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
14869         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
14870         varpool_get_node, varpool_remove_node): Declare.
14871         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
14872         varpool_node_set_size): New inlines.
14873         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
14874         * tree-pass.h (varpool_node_set_def): Forward declare.
14875         (ipa_opt_pass_d): Summary writting takes vnode sets too.
14876         (ipa_write_optimization_summaries): Update prototype.
14877         * ipa-cp.c (ipcp_write_summary): Update.
14878         * ipa-reference.c (ipa_reference_write_summary): Update.
14879         * lto-cgraph.c (lto_output_varpool_node): New static function.
14880         (output_varpool): New function.
14881         (input_varpool_node): New static function.
14882         (input_varpool_1): New function.
14883         (input_cgraph): Input varpool.
14884         * ipa-pure-const.c (pure_const_write_summary): Update.
14885         * lto-streamer-out.c (lto_output): Update, output varpool too.
14886         (write_global_stream): Kill WPA hack.
14887         (produce_asm_for_decls): Update.
14888         (output_alias_pair_p): Handle variables.
14889         (output_unreferenced_globals): Output only needed partition of varpool.
14890         * ipa-inline.c (inline_write_summary): Update.
14891         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
14892         cgraph.
14893         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
14894         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
14895         varpool_node_set_new, varpool_node_set_add,
14896         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
14897         debug_varpool_node_set): New functions.
14898         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
14899         (execute_one_pass): Process new decls too.
14900         (ipa_write_summaries_2): Pass around vsets.
14901         (ipa_write_summaries_1): Likewise.
14902         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
14903         to add.
14904         (ipa_write_optimization_summaries_1): Pass around vsets.
14905         (ipa_write_optimization_summaries): Likewise.
14906         * varpool.c (varpool_get_node): New.
14907         (varpool_node): Update doubly linked lists.
14908         (varpool_remove_node): New.
14909         (dump_varpool_node): More dumping.
14910         (varpool_enqueue_needed_node): Update doubly linked lists.
14911         (decide_is_variable_needed): Kill ltrans hack.
14912         (varpool_finalize_decl): Kill lto hack.
14913         (varpool_assemble_decl): Skip decls in other partitions.
14914         (varpool_assemble_pending_decls): Update doubly linkes lists.
14915         (varpool_empty_needed_queue): Likewise.
14916         (varpool_extra_name_alias): Likewise.
14917         * lto-streamer.c (lto_get_section_name): Add vars section.
14918         * lto-streamer.h (lto_section_type): Update.
14919         (output_varpool, input_varpool): Declare.
14920
14921 2010-04-28  Mike Stump  <mikestump@comcast.net>
14922
14923         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
14924
14925 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14926
14927         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
14928         record or union type with RECORD_OR_UNION_TYPE_P predicate.
14929         (lto_input_ts_type_tree_pointers): Likewise.
14930         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
14931         (lto_output_ts_type_tree_pointers): Likewise.
14932
14933 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14934
14935         Uniquization of constants at the Tree level
14936         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
14937         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
14938         bit to the end.
14939         (tree_output_constant_def): Declare.
14940         * gimplify.c (gimplify_init_constructor): When using block copy, first
14941         uniquize the constant constructor on the RHS.
14942         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
14943         DECL_IN_CONSTANT_POOL flag.
14944         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
14945         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
14946         constant pool.
14947         (assemble_variable): Deal with symbols belonging to the tree constant
14948         pool.
14949         (get_constant_section): Add ALIGN parameter and simplify.
14950         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
14951         (assemble_constant_contents): Use the expression of the VAR_DECL.
14952         (output_constant_def_contents): Use the alignment of the VAR_DECL.
14953         (tree_output_constant_def): New global function.
14954         (mark_constant): Use the expression of the VAR_DECL.
14955         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
14956         its expression.
14957         (output_object_block): Likewise and assemble the expression.
14958
14959 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14960
14961         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
14962         hash_tree, eq_tree): New tree hash table.
14963         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
14964         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
14965         lto_orig_address_remove): Reimplement.
14966
14967 2010-04-28  Xinliang David Li  <davidxl@google.com>
14968
14969         PR c/42643
14970         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
14971         (compute_uninit_opnds_pos): New function.
14972         (is_non_loop_exit_postdominating): New function.
14973         (compute_control_dep_chain): New function.
14974         (find_pdom): New function.
14975         (convert_control_dep_chain_into_preds): New function.
14976         (find_predicates): New function.
14977         (find_control_equiv_block): New function.
14978         (collect_phi_def_edges): New function.
14979         (find_def_preds): New function.
14980         (find_dom): New function.
14981         (dump_predicates): New function.
14982         (get_cmp_code): New function.
14983         (is_value_included_in): New function.
14984         (find_matching_predicate_in_rest_chains): New function.
14985         (use_pred_not_overlap_with_undef_path_pred): New function.
14986         (is_use_properly_guarded): New function.
14987         (normalize_cond_1): New function.
14988         (is_and_or_or): New function.
14989         (normalize_cond): New function.
14990         (is_gcond_subset_of): New function.
14991         (is_subset_of_any): New function.
14992         (is_or_set_subset_of): New function.
14993         (is_and_set_subset_of): New function.
14994         (is_norm_cond_subset_of): New function.
14995         (is_pred_expr_subset_of): New function.
14996         (is_pred_chain_subset_of): New function.
14997         (is_included_in): New function.
14998         (is_superset_of): New function.
14999         (find_uninit_use): New function.
15000         (warn_uninitialized_phi): New function.
15001         (compute_possibly_undefined_names): New function.
15002         (ssa_undefined_value_p): New function.
15003         (execute_late_warn_uninitialized): New function.
15004         * tree-ssa.c (ssa_undefined_value_p): Removed.
15005         (warn_uninit): Changed to extern.
15006         (warn_uninitialized_phi): Removed.
15007         (warn_uninitialized_vars): Changed to extern.
15008         (execute_late_warn_uninitialized): Removed
15009         * tree-flow.h: Add new prototypes.
15010         * timevar.def: Add new time variable.
15011         * Makefile.in: Add new build file.
15012
15013 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
15014
15015         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15016         type if available.
15017
15018 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15019
15020         PR target/22224
15021         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15022
15023 2010-04-28  Martin Jambor  <mjambor@suse.cz>
15024
15025         * cgraph.h (struct cgraph_node): New field indirect_calls.
15026         (struct cgraph_indirect_call_info): New type.
15027         (struct cgraph_edge): Removed field indirect_call. New fields
15028         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15029         (cgraph_create_indirect_edge): Declare.
15030         (cgraph_make_edge_direct): Likewise.
15031         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15032         * ipa-prop.h (struct ipa_param_call_note): Removed.
15033         (struct ipa_node_params): Removed field param_calls.
15034         (ipa_create_all_structures_for_iinln): Declare.
15035         * cgraph.c: Described indirect edges and uids in initial comment.
15036         (cgraph_add_edge_to_call_site_hash): New function.
15037         (cgraph_edge): Search also among the indirect edges, use
15038         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15039         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15040         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15041         site hash.
15042         (initialize_inline_failed): Assign a reason to indirect edges.
15043         (cgraph_create_edge_1): New function.
15044         (cgraph_create_edge): Moved some functionality to
15045         cgraph_create_edge_1.
15046         (cgraph_create_indirect_edge): New function.
15047         (cgraph_edge_remove_callee): Add an assert checking for
15048         non-indirectness.
15049         (cgraph_edge_remove_caller): Special-case indirect edges.
15050         (cgraph_remove_edge): Likewise.
15051         (cgraph_set_edge_callee): New function.
15052         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15053         (cgraph_make_edge_direct): New function.
15054         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15055         the declaration of the call statement matches.
15056         (cgraph_node_remove_callees): Special-case indirect edges.
15057         (cgraph_clone_edge): Likewise.
15058         (cgraph_clone_node): Clone also the indirect edges.
15059         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15060         indirect_call, dump count of indirect_calls edges.
15061         * ipa-prop.c (iinlining_processed_edges): New variable.
15062         (ipa_note_param_call): Create indirect edges instead of
15063         creating notes.  New parameter node.
15064         (ipa_analyze_call_uses): New parameter node, pass it on to
15065         ipa_note_param_call.
15066         (ipa_analyze_stmt_uses): Likewise.
15067         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15068         (print_edge_addition_message): Work on edges rather than on notes.
15069         (update_call_notes_after_inlining): Likewise, renamed to
15070         update_indirect_edges_after_inlining.
15071         (ipa_create_all_structures_for_iinln): New function.
15072         (ipa_free_node_params_substructures): Do not free notes.
15073         (ipa_edge_duplication_hook): Propagate bits within
15074         iinlining_processed_edges bitmap.
15075         (ipa_node_duplication_hook): Do not duplicate notes.
15076         (free_all_ipa_structures_after_ipa_cp): Renamed to
15077         ipa_free_all_structures_after_ipa_cp.
15078         (free_all_ipa_structures_after_iinln): Renamed to
15079         ipa_free_all_structures_after_iinln.
15080         (ipa_write_param_call_note): Removed.
15081         (ipa_read_param_call_note): Removed.
15082         (ipa_write_indirect_edge_info): New function.
15083         (ipa_read_indirect_edge_info): Likewise.
15084         (ipa_write_node_info): Do not stream notes, do stream information
15085         in indirect edges.
15086         (ipa_read_node_info): Likewise.
15087         (lto_ipa_fixup_call_notes): Removed.
15088         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15089         * ipa-inline.c (pass_ipa_inline): Likewise.
15090         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15091         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15092         * tree-inline.c (copy_bb): Removed an unnecessary double check for
15093         is_gimple_call.
15094         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15095         edges.
15096         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15097         (output_cgraph): Stream also indirect edges.
15098         (lto_output_edge): Added capability to stream indirect edges.
15099         (input_edge): Likewise.
15100         (input_cgraph_1): Likewise.
15101         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15102         of indirect edges.
15103
15104 2010-04-28  Richard Guenther  <rguenther@suse.de>
15105
15106         PR tree-optimization/43879
15107         PR tree-optimization/43909
15108         * tree-ssa-structalias.c (struct variable_info): Add
15109         only_restrict_pointers flag.
15110         (new_var_info): Initialize it.  Increment stats.total_vars here.
15111         (create_function_info_for): Do not increment stats.total_vars here.
15112         (get_function_part_constraint): Fix build with C++.
15113         (insert_into_field_list): Remove.
15114         (push_fields_onto_fieldstack): Properly merge fields.
15115         (create_variable_info_for): Split and simplify.
15116         (create_variable_info_for_1): New piece.
15117         (intra_create_variable_infos): Properly make restrict constraints
15118         from parameters.
15119
15120 2010-04-28  Richard Guenther  <rguenther@suse.de>
15121
15122         PR c++/43880
15123         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15124
15125 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15126             Jan Hubicka  <hubicka@ucw.cz>
15127
15128         * doc/invoke.texi (-Wsuggest-attribute=const,
15129         -Wsuggest-attribute=pure): Document.
15130         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15131         (function_always_visible_to_compiler_p,
15132         suggest_attribute, warn_function_pure, warn_function_const):
15133         New functions.
15134         (check_call): Improve debug info.
15135         (analyze_function): Do not check availability.
15136         (add_new_function): Check availability.
15137         (propagate): Output warnings.
15138         (skip_function_for_local_pure_const): New function.
15139         (local_pure_const): Use it; output warnings.
15140         * common.opt (Wsuggest-attribute=const,
15141         Wsuggest-attribute=pure): New.
15142
15143 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15144
15145         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15146         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15147         or DW_CFA_def_cfa_offset{,_sf}.
15148
15149 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15150
15151         * tree.h: Fix truncated long macros.
15152
15153 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
15154
15155         * collect2.c (TARGET_64BIT): Redefine to target's default.
15156         * tlink.c: Likewise.
15157         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15158         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15159         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15160         for underscoring __USER_LABEL_PREFIX__.
15161         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15162         (SUB_LINK_ENTRY32): New.
15163         (SUB_LINK_ENTRY64): New.
15164         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15165         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15166         (SUB_LINK_ENTRY64): New.
15167         (SUB_LINK_ENTRY): New.
15168         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15169         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15170         x64 target is choosen.
15171         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15172         * configure: Regenerated.
15173         * configure.ac (leading-mingw64-underscores): Option added.
15174
15175 2010-04-27  Jan Hubicka  <jh@suse.cz>
15176
15177         * doc/invoke.texi (-fipa-profile): Document.
15178         * opts.c (decode_options): Enable ipa-profile at -O1.
15179         * timevar.def (TV_IPA_PROFILE): Define.
15180         * common.opt (fipa-profile): Add.
15181         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15182         flag for clones.
15183         (cgraph_propagate_frequency): Handle only local ones.
15184         * tree-pass.h (pass_ipa_profile): Declare.
15185         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15186         (pass_ipa_profile): Use TV_IPA_PROFILE.
15187         * ipa.c (ipa_profile): New function.
15188         (gate_ipa_profile): Likewise.
15189         (pass_ipa_profile): New global variable.
15190         * passes.c (pass_ipa_profile): New.
15191
15192 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
15193
15194         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15195
15196 2010-04-27  Martin Jambor  <mjambor@suse.cz>
15197
15198         PR middle-end/43812
15199         * ipa.c (dissolve_same_comdat_group_list): New function.
15200         (function_and_variable_visibility): Call
15201         dissolve_same_comdat_group_list when comdat group contains external or
15202         newly local nodes.
15203         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15204         lists are circular and that they contain only DECL_ONE_ONLY nodes.
15205
15206 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
15207
15208         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15209         (const_hash_1) <VECTOR_CST>: New case.
15210         (compare_constant) <VECTOR_CST>: Likewise.
15211         <ADDR_EXPR>: Deal with LABEL_REFs.
15212         (copy_constant) <VECTOR_CST>: New case.
15213
15214 2010-04-27  Jan Hubicka  <jh@suse.cz>
15215
15216         * cgraph.c (cgraph_propagate_frequency): New function.
15217         * cgraph.h (cgraph_propagate_frequency): Declare.
15218         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15219         cgraph_propagate_frequency.
15220
15221 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
15222
15223         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15224
15225 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
15226
15227         PR target/40657
15228         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15229         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15230         here to determine which regs to push and how much stack to reserve.
15231
15232 2010-04-27  Jie Zhang  <jie@codesourcery.com>
15233
15234         * doc/gimple.texi (gimple_statement_with_ops): Remove
15235         addresses_taken field.
15236         (gimple_statement_with_memory_ops): Likewise.
15237
15238 2010-04-27  Jan Hubicka  <jh@suse.cz>
15239
15240         * tree-inline.c (eni_inlining_weights): Remove.
15241         (estimate_num_insns): Special case more builtins.
15242
15243 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
15244
15245         PR c/32207
15246         * c-typeck.c (build_binary_op): Move forward check for comparison
15247         pointer with null pointer constant and adjust the diagnostic message.
15248
15249 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
15250
15251         PR lto/42776
15252         * configure.ac (gcc_cv_as_section_has_align): Set if installed
15253         binutils supports extended .section directive needed by LTO, or
15254         warn if older binutils found.
15255         (LTO_BINARY_READER): New AC_SUBST'd variable.
15256         (LTO_USE_LIBELF): Likewise.
15257         * gcc/config.gcc (lto_binary_reader): New target-specific configure
15258         variable.
15259         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15260         (LTO_USE_LIBELF): Likewise.
15261         * configure: Regenerate.
15262
15263         * collect2.c (is_elf): Rename from this ...
15264         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15265          object files in addition to ELF-formatted ones.
15266         (scan_prog_file): Caller updated.  Also allow for LTO info marker
15267         symbol to be prefixed or not by an extra underscore.
15268
15269         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15270         * config/i386/winnt.c: Also #include lto-streamer.h
15271         (i386_pe_asm_named_section): Specify 1-byte section alignment for
15272         LTO named sections.
15273         (i386_pe_asm_output_aligned_decl_common): Add comment.
15274         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15275
15276 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
15277
15278         PR target/43889
15279         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15280         Add missing earlyclobber for second alternative.
15281
15282 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
15283
15284         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15285         bits for artificial defs at the top of the block.
15286         * fwprop.c (single_def_use_enter_block): Don't call it.
15287
15288 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
15289
15290         PR 43715
15291         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15292         instead of "$gcc_cv_objdump -T".
15293         Use "-undefined dynamic_lookup" on darwin.
15294         * gcc/configure: Regenerate.
15295
15296 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
15297
15298         PR c/43893
15299         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15300
15301 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15302
15303         * c-parser.c (struct c_token): Move location field up.
15304         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15305         (struct c_declspecs): Convert typespec_word, storage_class, and
15306         default_int_p into bitfields.
15307         (struct c_declarator): Move loc field up.
15308
15309 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
15310
15311         * cfgloop.h (struct loop): Move can_be_parallel field up.
15312         * ipa-prop.h (struct ip_node_params): Move bitfields up.
15313         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
15314         down.
15315         (struct iv_cand): Convert pos field into a bitfield.
15316         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
15317         field up.
15318         (struct _stmt_vec_info): Shuffle fields for better packing.
15319
15320 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15321
15322         * varasm.c (IN_NAMED_SECTION): Remove guard.
15323         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
15324         (IN_NAMED_SECTION_P): ...this.
15325         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
15326         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
15327
15328 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
15329
15330         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
15331         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
15332         of shadowing it.  Fix comments.
15333
15334 2010-04-26  Jan Hubicka  <jh@suse.cz>
15335
15336         * cgraph.c (cgraph_create_node): Set node frequency to normal.
15337         (cgraph_clone_node): Copy function frequency.
15338         * cgraph.h (node_frequency): New enum
15339         (struct cgraph_node): Add.
15340         * final.c (rest_of_clean_state): Update.
15341         * lto-cgraph.c (lto_output_node): Output node frequency.
15342         (input_overwrite_node): Input node frequency.
15343         * tre-ssa-loop-ivopts (computation_cost): Update.
15344         * lto-streamer-out.c (output_function): Do not output function
15345         frequency.
15346         * predict.c (maybe_hot_frequency_p): Update and handle functions
15347         executed once.
15348         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
15349         attribute lookup.
15350         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
15351         (compute_function_frequency): Set noreturn functions to be executed
15352         once.
15353         (choose_function_section): Update.
15354         * lto-streamer-in.c (input_function): Do not input function frequency.
15355         * function.c (allocate_struct_function): Do not initialize function
15356         frequency.
15357         * function.h (function_frequency): Remove.
15358         (struct function): Remove function frequency.
15359         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
15360         (try_update): Update.
15361         * tree-inline.c (initialize_cfun): Do not update function frequency.
15362         * passes.c (pass_init_dump_file): Update.
15363         * i386.c (ix86_compute_frame_layout): Update.
15364         (ix86_pad_returns): Update.
15365
15366 2010-04-26  Jie Zhang  <jie@codesourcery.com>
15367
15368         PR tree-optimization/43833
15369         * tree-vrp.c (range_int_cst_p): New.
15370         (range_int_cst_singleton_p): New.
15371         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
15372         when both operands are constants.  Use range_int_cst_p in
15373         BIT_IOR_EXPR case.
15374
15375 2010-04-26  Jan Hubicka  <jh@suse.cz>
15376
15377         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
15378
15379 2010-04-26  Richard Guenther  <rguenther@suse.de>
15380
15381         PR lto/43080
15382         * gimple.c (gimple_decl_printable_name): Deal gracefully
15383         with a NULL DECL_NAME.
15384
15385 2010-04-26  Richard Guenther  <rguenther@suse.de>
15386
15387         PR lto/42425
15388         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
15389         if emitting debug information and it is either a function
15390         or a namespace decl.
15391
15392 2010-04-26  Ira Rosen  <irar@il.ibm.com>
15393
15394         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
15395         determine if the statement is vectorizable, and a macro to access it.
15396         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15397         Skip statements that can't be vectorized. If the analysis fails,
15398         mark the statement as unvectorizable if vectorizing basic block.
15399         (vect_compute_data_refs_alignment): Likewise.
15400         (vect_verify_datarefs_alignment): Skip statements marked as
15401         unvectorizable. Add print.
15402         (vect_analyze_group_access): Skip statements that can't be
15403         vectorized. If the analysis fails, mark the statement as
15404         unvectorizable if vectorizing basic block.
15405         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
15406         * tree-vect-stmts.c (vectorizable_store): Fix the number of
15407         generated stmts for SLP.
15408         (new_stmt_vec_info): Initialize the new field.
15409         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
15410         statements marked as unvectorizable.
15411
15412 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
15413
15414         * c-common.c (flag_isoc1x): New.
15415         (flag_isoc99): Update comment.
15416         * c-common.h (flag_isoc1x): New.
15417         (flag_isoc99): Update comment.
15418         * c-cppbuiltin.c (builtin_define_float_constants): Also define
15419         __<type>_DECIMAL_DIG__.
15420         * c-opts.c (set_std_c1x): New.
15421         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
15422         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
15423         * c.opt (-std=c1x, -std=gnu1x): New options.
15424         * doc/cpp.texi: Mention -std=c1x.
15425         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
15426         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
15427         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
15428         * doc/standards.texi: Mention C1X.
15429         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
15430         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
15431         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
15432         Define for C1X.
15433
15434 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
15435
15436         * config/i386/gmon-sol2.c (_mcleanup): Change format string
15437         placeholder from 0x%x to %#x.
15438         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15439         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15440         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15441         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15442         * config/i386/i386.c (ix86_target_string): Ditto.
15443         (output_pic_addr_const): Ditto.
15444         (print_operand): Ditto.
15445
15446 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
15447
15448         * combine.c (find_split_point): Add third argument.  Use it
15449         to find nested multiply-accumulate instructions.  Adjust calls.
15450         (try_combine): Adjust call to find_split_point.
15451
15452 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
15453
15454         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
15455
15456 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
15457
15458         PR tree-optimization/41442
15459         * fold-const.c (merge_truthop_with_opposite_arm): New function.
15460         (fold_binary_loc): Call it.
15461
15462 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15463
15464         * toplev.c (general_init): Set default for fdiagnostics-show-option.
15465         * opts.c (common_handle_option): Allow disabling it.
15466         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
15467
15468 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
15469
15470         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
15471         between modes if both types are integral.
15472
15473 2010-04-23  Richard Guenther  <rguenther@suse.de>
15474
15475         PR tree-optimization/43572
15476         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
15477
15478 2010-04-23  Richard Guenther  <rguenther@suse.de>
15479
15480         PR lto/43455
15481         * tree-inline.c (tree_can_inline_p): Also check compatibility
15482         of return types.
15483
15484 2010-04-23  Martin Jambor  <mjambor@suse.cz>
15485
15486         PR tree-optimization/43846
15487         * tree-sra.c (struct access): New flag grp_assignment_read.
15488         (build_accesses_from_assign): Set grp_assignment_read.
15489         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
15490         (enum mark_read_status): New type.
15491         (analyze_access_subtree): Propagate grp_assignment_read, create
15492         accesses also if both direct_read and root->grp_assignment_read.
15493
15494 2010-04-23  Martin Jambor  <mjambor@suse.cz>
15495
15496         PR middle-end/43835
15497         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
15498         function does not have type attributes.
15499
15500 2010-04-23  Richard Guenther  <rguenther@suse.de>
15501
15502         PR lto/42653
15503         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
15504         of FUNCTION_DECLs.
15505
15506 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15507
15508         * sese.h (create_if_region_on_edge): Remove.
15509
15510         * sese.c (create_if_region_on_edge): Make static.
15511
15512         * tree-inline.c: Do not include ggc.h.
15513
15514         * expr.c: Do not include ggc.h.
15515
15516         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
15517         dependencies.
15518
15519 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
15520
15521         PR target/43744
15522         * config/sh/sh.c (find_barrier): Don't emit a constant pool
15523         in the middle of insns for casesi_worker_2.
15524
15525 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
15526
15527         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
15528
15529 2010-04-22  Ira Rosen  <irar@il.ibm.com>
15530
15531         PR tree-optimization/43842
15532         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
15533         loop unrolling in update of exit phis. Fix comment.
15534         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
15535         least two reduction statements in the loop before starting SLP
15536         analysis.
15537
15538 2010-04-22  Nick Clifton  <nickc@redhat.com>
15539
15540         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
15541
15542 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
15543
15544         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
15545         to simplify a + ~a.
15546
15547 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15548
15549         * tree-parloops.c (loop_parallel_p): New argument
15550         parloop_obstack.  Pass it down.
15551         (parallelize_loops): New variable parloop_obstack.  Initialize it,
15552         pass it down, free it.
15553
15554         * tree-loop-linear.c (linear_transform_loops): Pass down
15555         lambda_obstack.
15556
15557         * tree-data-ref.h (lambda_compute_access_matrices): New argument
15558         of type struct obstack *.
15559
15560         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
15561         scratch_obstack.  Initialize it, pass down, free it.
15562
15563         * lambda.h (lambda_loop_new): Remove.
15564         (lambda_matrix_new, lambda_matrix_inverse)
15565         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
15566         argument of type struct obstack *.
15567
15568         * lambda-trans.c (lambda_trans_matrix_new): New argument
15569         lambda_obstack.  Pass it down, use obstack allocation for ret.
15570         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
15571         it down.
15572
15573         * lambda-mat.c (lambda_matrix_get_column)
15574         (lambda_matrix_project_to_null): Remove.
15575         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
15576         allocation for mat.
15577         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
15578         lambda_obstack.
15579
15580         * lambda-code.c (lambda_loop_new): New function.
15581         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
15582         (lambda_compute_auxillary_space, lambda_compute_target_space)
15583         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
15584         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
15585         (build_access_matrix): New argument lambda_obstack.  Use obstack
15586         allocation for am.
15587         (lambda_compute_step_signs, lambda_compute_access_matrices): New
15588         argument lambda_obstack.  Pass it down.
15589
15590 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
15591
15592         * optabs.h (expand_widening_mult): Declare.
15593
15594 2010-04-22  Richard Guenther  <rguenther@suse.de>
15595
15596         PR tree-optimization/43845
15597         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
15598         lookup the CALL_EXPR function and arguments.
15599
15600 2010-04-22  Nick Clifton  <nickc@redhat.com>
15601
15602         * config/stormy16/stormy16.c
15603         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
15604         * config/stormy16/stormy16.h: Tidy up formatting.
15605         (DONT_USE_BUILTIN_SETJMP): Remove definition.
15606         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
15607         (ineqbranchsi): Delete pattern.
15608         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
15609         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
15610         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
15611         stormy16-lib2-ucmpsi2.c.
15612
15613 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
15614
15615         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
15616         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
15617         extra set merge_set_noclobber, and use it to relax the final test
15618         slightly.
15619         * df.h (df_simulate_find_noclobber_defs): Declare.
15620         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
15621         conditional defs.
15622         (df_simulate_find_noclobber_defs): New function.
15623
15624 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
15625
15626         * config/i386/i386.md: Use {} around multi-line preparation statements.
15627
15628 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15629
15630         * c-tree.h (push_init_level, pop_init_level, set_init_index)
15631         (process_init_element): New argument of type struct obstack *.
15632
15633         * c-typeck.c (push_init_level, pop_init_level, set_designator)
15634         (set_init_index, set_init_label, set_nonincremental_init)
15635         (set_nonincremental_init_from_string, find_init_member)
15636         (output_init_element, output_pending_init_elements)
15637         (process_init_element): New argument braced_init_obstack.  Pass it
15638         down.
15639         (push_range_stack, add_pending_init): New argument
15640         braced_init_obstack.  Use obstack allocation.
15641
15642         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
15643         braced_init_obstack.  Pass it down.
15644         (c_parser_braced_init): New variables ret, braced_init_obstack.
15645         Initialize obstack, pass it down and finally free it.
15646
15647 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
15648
15649         PR middle-end/29274
15650         * tree-pass.h (pass_optimize_widening_mul): Declare.
15651         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
15652         gate_optimize_widening_mul): New static functions.
15653         (pass_optimize_widening_mul): New.
15654         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
15655         <case MULT_EXPR>: Remove support for widening multiplies.
15656         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
15657         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
15658         simplify_gen_unary rather than directly building extensions.
15659         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
15660         WIDEN_MULT_EXPR.
15661         * expmed.c (expand_widening_mult): New function.
15662         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
15663
15664 2010-04-21  Jan Hubicka  <jh@suse.cz>
15665
15666         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
15667         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
15668         * lto-wpa-fixup.c: Remove.
15669         * Makefile.in (lto-wpa-fixup.o): Remove.
15670         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
15671         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
15672         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
15673
15674 2010-04-21  Jan Hubicka  <jh@suse.cz>
15675
15676         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
15677         add write_optimization_summary, read_optimization_summary.
15678         (ipa_write_summaries_of_cgraph_node_set): Remove.
15679         (ipa_write_optimization_summaries): Declare.
15680         (ipa_read_optimization_summaries): Declare.
15681         * ipa-cp.c (pass_ipa_cp): Update.
15682         * ipa-reference.c (pass_ipa_reference): Update.
15683         * ipa-pure-const.c (pass_ipa_pure_const): Update.
15684         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
15685         Update.
15686         * ipa-inline.c (pass_ipa_inline): Update.
15687         * ipa.c (pass_ipa_whole_program): Update.
15688         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
15689         * passes.c (ipa_write_summaries_1): Do not test wpa.
15690         (ipa_write_optimization_summaries_1): New.
15691         (ipa_write_optimization_summaries): New.
15692         (ipa_read_summaries): Do not test ltrans.
15693         (ipa_read_optimization_summaries_1): New.
15694         (ipa_read_optimization_summaries): New.
15695
15696 2010-04-21  Jan Hubicka  <jh@suse.cz>
15697
15698         * lto-cgraph.c (lto_output_node): Do not output comdat groups
15699         for boundary nodes.
15700         (output_cgraph): Do not arrange comdat groups for boundary nodes.
15701
15702 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
15703
15704         PR debug/40040
15705         * dwarf2out.c (add_name_and_src_coords_attributes): Add
15706         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
15707
15708 2010-04-21  Jan Hubicka  <jh@suse.cz>
15709
15710         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
15711
15712 2010-04-21  Jan Hubicka  <jh@suse.cz>
15713
15714         * varpool.c (decide_is_variable_needed): Variable is always needed
15715         during ltrans.
15716
15717 2010-04-21  Jan Hubicka  <jh@suse.cz>
15718
15719         * opts.c (decode_options): Enable pure-const pass for whopr.
15720
15721 2010-04-21  Jan Hubicka  <jh@suse.cz>
15722
15723         * cgraph.c (dump_cgraph_node): Dump also assembler name.
15724         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
15725         at WPA dumping.
15726         (cgraph_decide_inlining): Do not expect callee to be removed in all
15727         cases.
15728
15729 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
15730
15731         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
15732
15733 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
15734
15735         * config/i386/i386.md (x86_shrd): Add athlon_decode and
15736         amdfam10_decode attributes.
15737
15738 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
15739
15740         PR middle-end/43570
15741         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
15742         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
15743         (lower_copyprivate_clauses): Use private var in outer
15744         context instead of original var.  Make sure the types
15745         are correct for VLAs.
15746
15747 2010-04-21  Richard Guenther  <rguenther@suse.de>
15748
15749         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
15750         to non-pointer objects.
15751
15752 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
15753
15754         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
15755         last chain entry if it starts with the still current label.
15756         (add_location_or_const_value_attribute): Check that
15757         loc_list->first->next is NULL instead of comparing ->first with ->last.
15758         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
15759         to add_var_loc_to_decl.
15760
15761         * dwarf2out.c (output_call_frame_info): For dw_cie_version
15762         >= 4 add also address size and segment size fields into CIE header.
15763
15764         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
15765         long as address size is the same as sizeof (void *) and
15766         segment size is 0.
15767         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
15768         address size or segment size is unexpected, return DW_EH_PE_omit.
15769         (classify_object_over_fdes): If get_cie_encoding returned
15770         DW_EH_PE_omit, return -1.
15771         (init_object): If classify_object_over_fdes returned -1,
15772         pretend there were no FDEs at all.
15773
15774 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
15775
15776         * config/i386/i386.md (bswap<mode>2): Macroize expander from
15777         bswap{si,di}2 using SWI48 mode iterator.
15778         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
15779         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
15780         set modrm attribute of bswap insn to 0 and remove length attribute.
15781         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
15782         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
15783         set mode attribute to <MODE> and remove length attribute.
15784
15785 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
15786
15787         PR rtl-optimization/43520
15788         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
15789         zero available registers.
15790
15791 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15792
15793         * builtins.c (fold_builtin_cproj): Fold more cases.
15794
15795 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15796
15797         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
15798         (fold_builtin_1): Fold builtin cproj.
15799         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
15800         Use ATTR_CONST_NOTHROW_LIST.
15801
15802 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
15803
15804         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
15805         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
15806         ffsi2_no_cmove for !TARGET_CMOVE.
15807         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
15808         (ffssi2): Remove expander.
15809         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
15810         mode iterator.
15811         (ctz<mode>2): Ditto from ctz{si,di}2.
15812         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
15813         mode iterator.
15814         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
15815         mode iterator.
15816
15817 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
15818
15819         * dwarf2out.c (AT_linkage_name): Define.
15820         (clone_as_declaration): Handle DW_AT_linkage_name.
15821         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
15822         of DW_AT_MIPS_linkage_name.
15823         (move_linkage_attr): Likewise.
15824         (dwarf2out_finish): Likewise.
15825
15826 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
15827
15828         PR middle-end/41952
15829         * fold-const.c (fold_comparison): New folding rule.
15830
15831 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
15832
15833         * double-int.h (double_int_setbit): Declare.
15834         * double-int.c (double_int_setbit): New function.
15835         * rtl.h (immed_double_int_const): Declare.
15836         * emit-rtl.c (immed_double_int_const): New function.
15837         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
15838         and immed_double_int_const functions.
15839         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
15840         expand_copysign_bit): (Ditto.).
15841         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
15842         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
15843         * dojump.c (prefer_and_bit_test): (Ditto.).
15844         * expr.c (convert_modes, reduce_to_bit_field_precision,
15845         const_vector_from_tree): (Ditto.).
15846         * expmed.c (mask_rtx, lshift_value): (Ditto.).
15847
15848 2010-04-20  Jan Hubicka  <jh@suse.cz>
15849
15850         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
15851         (dump_cgraph_node): Dump new flags.
15852         * cgraph.h (struct cgraph_node): Add flags
15853         reachable_from_other_partition and in_other_partition.
15854         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
15855         other partition can not be removed.
15856         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
15857         the other partition must be output; silence sanity checking on
15858         leaking functions bodies from other paritition.
15859         * lto-cgraph.c (reachable_from_other_partition_p): New function.
15860         (lto_output_node): Output new flags; do not sanity check that inline
15861         clones are output; drop lto_forced_extern_inline_p code; do not mock
15862         visibility flags at partition boundaries.
15863         (add_node_to): New function.
15864         (output_cgraph): Use it to sort functions so masters appear before
15865         clones.
15866         (input_overwrite_node): Input new flags.
15867         * passes.c (ipa_write_summaries): Do not call
15868         lto_new_extern_inline_states.
15869         * lto-section-out.c (forced_extern_inline,
15870         lto_new_extern_inline_states lto_delete_extern_inline_states,
15871         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
15872         * lto-streamer.h (lto_new_extern_inline_states,
15873         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
15874         lto_forced_extern_inline_p): Kill.
15875
15876 2010-04-20  Richard Guenther  <rguenther@suse.de>
15877
15878         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
15879         from vars that can have pointers.
15880         (process_constraint): Dump useless constraints.
15881
15882 2010-04-20  Richard Guenther  <rguenther@suse.de>
15883
15884         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
15885         (dump_sa_points_to_info): Remove asserts.
15886         (init_base_vars): nothing_id isn't an escape point nor does it
15887         have pointers.
15888
15889 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
15890
15891         * tree.h (TYPE_REF_IS_RVALUE): Define.
15892         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
15893         should_move_die_to_comdat, prune_unused_types_walk): Handle
15894         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
15895         (modified_type_die, gen_reference_type_die): Emit
15896         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
15897         if TYPE_REF_IS_RVALUE and -gdwarf-4.
15898
15899 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15900
15901         PR target/43635
15902         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
15903         calls for -fpic -m31 if they have been sibcall optimized.
15904
15905 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
15906
15907         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
15908         ar.lc fixed and call-used.
15909
15910         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
15911
15912 2010-04-19  Jan Hubicka  <jh@suse.cz>
15913
15914         * opts.c (decode_options): Disable whpr incompatible passes.
15915         * lto/lto.c (lto_1_to_1_map): Skip clones.
15916         (read_cgraph_and_symbols): Do not mark everything as needed.
15917         (do_whole_program_analysis): Do map only after optimizing;
15918         set proper cgraph_state; use passmanager.
15919
15920 2010-04-19  DJ Delorie  <dj@redhat.com>
15921
15922         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
15923         POINTER_PLUS_EXPR and fix them.
15924
15925 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
15926
15927         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
15928         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
15929         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
15930         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
15931         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
15932         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
15933         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
15934         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
15935         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
15936         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
15937         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
15938
15939 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
15940
15941         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
15942         (check_cond_move_block): Likewise.
15943         (cond_move_process_if_block): Likewise.
15944         (noce_find_if_block): Improve formatting.
15945         (find_if_header): Pass 0 to memset and tweak conditions.
15946         (cond_exec_find_if_block): Fix long lines and tweak conditions.
15947
15948 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
15949
15950         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
15951         for -gdwarf-4.
15952
15953         PR middle-end/43337
15954         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
15955         with non-local decl doesn't need chain.
15956
15957 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
15958
15959         * ira-color.c (allocno_reload_assign): Avoid accumulating
15960         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
15961
15962 2010-04-19  Martin Jambor  <mjambor@suse.cz>
15963
15964         * gimple.h (create_tmp_reg): Declare.
15965         * gimplify.c (create_tmp_reg): New function.
15966         (gimplify_return_expr): Use create_tmp_reg.
15967         (gimplify_omp_atomic): Likewise.
15968         (gimple_regimplify_operands): Likewise.
15969         * tree-dfa.c (make_rename_temp): Likewise.
15970         * tree-predcom.c (predcom_tmp_var): Likewise.
15971         (reassociate_to_the_same_stmt): Likewise.
15972         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
15973         (get_replaced_param_substitute): Likewise.
15974         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
15975         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
15976         * tree-ssa-pre.c (get_representative_for): Likewise.
15977         (create_expression_by_pieces): Likewise.
15978         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
15979         (create_tailcall_accumulator): Likewise.
15980
15981 2010-04-19  Martin Jambor  <mjambor@suse.cz>
15982
15983         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
15984         new_stmt.
15985         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
15986
15987 2010-04-19  Richard Guenther  <rguenther@suse.de>
15988
15989         PR tree-optimization/43796
15990         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
15991         from SCEV in the lattice.
15992         (vrp_visit_phi_node): Dump change.
15993
15994 2010-04-19  Richard Guenther  <rguenther@suse.de>
15995
15996         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
15997         * configure: Re-generated.
15998
15999 2010-04-19  Richard Guenther  <rguenther@suse.de>
16000
16001         PR tree-optimization/43783
16002         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16003         constant ARRAY_REF operands two and three if possible.
16004
16005 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
16006
16007         PR target/43766
16008         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16009
16010 2010-04-19  Jie Zhang  <jie@codesourcery.com>
16011
16012         PR target/43662
16013         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16014
16015 2010-04-19  Ira Rosen  <irar@il.ibm.com>
16016
16017         PR tree-optimization/37027
16018         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16019         and macro to access it.
16020         (vectorizable_reduction): Add argument.
16021         (vect_get_slp_defs): Likewise.
16022         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16023         statements for possible use in SLP.
16024         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16025         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16026         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16027         add new argument.
16028         (vectorizable_reduction): Likewise.
16029         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16030         vect_get_slp_defs.
16031         (vectorizable_type_demotion, vectorizable_type_promotion,
16032         vectorizable_store): Likewise.
16033         (vect_analyze_stmt): Update call to vectorizable_reduction.
16034         (vect_transform_stmt): Likewise.
16035         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16036         (vect_build_slp_tree): Fix indentation. Check that there are no loads
16037         from different interleaving chains in same node.
16038         (vect_slp_rearrange_stmts): New function.
16039         (vect_supported_load_permutation_p): Allow load permutations for
16040         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16041         inside SLP nodes if necessary.
16042         (vect_analyze_slp_instance): Handle reductions.
16043         (vect_analyze_slp): Try to build SLP instances originating from groups
16044         of reductions.
16045         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16046         (vect_get_constant_vectors): Create initial vectors for reductions
16047         according to reduction code. Add new argument.
16048         (vect_get_slp_defs): Add new argument, pass it to
16049         vect_get_constant_vectors.
16050         (vect_schedule_slp_instance): Remove SLP tree root statements.
16051
16052 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
16053
16054         * tree.h (ENUM_IS_SCOPED): Define.
16055         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16056         for ENUM_IS_SCOPED enums.
16057
16058 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
16059
16060         * fold-const.c (fold_comparison): Use ssizetype.
16061         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16062         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16063         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16064         * tree-object-size.c (compute_object_sizes): Use size_type_node.
16065
16066         * tree.h (initialize_sizetypes): Remove parameter.
16067         (build_common_tree_nodes): Remove second parameter.
16068         * stor-layout.c (initialize_sizetypes): Remove parameter.
16069         Always create an unsigned type.
16070         (set_sizetype): Assert that the passed type is unsigned and simplify.
16071         * tree.c (build_common_tree_nodes): Remove second parameter.
16072         Adjust call to initialize_sizetypes.
16073         * c-decl.c (c_init_decl_processing): Remove second argument in call to
16074         build_common_tree_nodes.
16075
16076 2010-04-18  Matthias Klose  <doko@ubuntu.com>
16077
16078         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16079
16080 2010-04-18  Ira Rosen  <irar@il.ibm.com>
16081
16082         PR tree-optimization/43771
16083         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16084         load permutation doesn't have gaps.
16085
16086 2010-04-18  Jan Hubicka  <jh@suse.cz>
16087
16088         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16089         (sse_prologue_save_insn expander): Use new pattern.
16090         (sse_prologue_save_insn1): New pattern and splitter.
16091         (sse_prologue_save_insn): Update to deal also with 64bit aligned
16092         blocks.
16093         * i386.c (setup_incoming_varargs_64): Do not compute jump
16094         destination here.
16095         (ix86_gimplify_va_arg): Update alignment needed.
16096         (ix86_local_alignment): Do not align all local arrays to 128bit.
16097
16098 2010-04-17  Jan Hubicka  <jh@suse.cz>
16099
16100         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16101
16102 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16103
16104         * arm.md (negdi2): Remove redundant code to force values into a
16105         register.
16106
16107 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16108
16109         * arm/bpabi.S: Add EABI alignment attributes to objects.
16110         * arm/bpabi-v6m.S: Likewise.
16111         * arm/crti.asm: Likewise.
16112         * arm/crtn.asm: Likewise.
16113         * arm/lib1funcs.asm: Likewise.
16114         * arm/libunwind.S: Likewise.
16115
16116 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
16117
16118         * arm-protos.h (tune_params): New structure.
16119         * arm.c (current_tune): New variable.
16120         (arm_constant_limit): Delete.
16121         (struct processors): Add pointer to the tune parameters.
16122         (arm_slowmul_tune): New tuning option.
16123         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16124         (all_cores): Adjust to pick up the tuning model.
16125         (arm_constant_limit): New function.
16126         (arm_override_options): Select the appropriate tuning model.  Delete
16127         initialization of arm_const_limit.
16128         (arm_split_constant): Use the new constant-limit model.
16129         (arm_rtx_costs): Pick up the current tuning model.
16130         * arm.md (is_strongarm, is_xscale): Delete.
16131         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16132         for Xscale variant architectures.
16133         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16134
16135 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16136
16137         * config/arm/arm.c (arm_gen_constant): Remove unused variable
16138         can_shift.
16139         (arm_rtx_costs_1): Remove unused variable extra_cost.
16140         (arm_unwind_emit_set): Use variable offset.
16141         (thumb1_output_casesi): Remove unused variable flags.
16142
16143 2010-04-16  Jeff Law  <law@redhat.com>
16144
16145         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16146         needing assignment rather than doing a two-phase assignment.  Remove
16147         unused variable 'm'.
16148
16149 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16150
16151         PR bootstrap/43767
16152         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16153
16154 2010-04-16  Doug Kwan  <dougkwan@google.com>
16155
16156         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16157         (next_operand_entry_id): New static variable.
16158         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16159         (add_to_ops_vec): Assigned unique ID to operand entry.
16160         (struct oecount_s): New field ID.
16161         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16162         (undistribute_ops_list): Assign unique IDs to oecounts.
16163         (init_reassoc): reset next_operand_entry_id.
16164
16165 2010-04-16  Doug Kwan  <dougkwan@google.com>
16166
16167         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16168         missing left parenthesis.
16169
16170 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
16171
16172         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16173         *btdi_rex64 using SWI48 mode iterator.
16174         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16175         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16176         *jcc_btdi_mask_rex64.
16177
16178 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
16179
16180         * double-int.h (tree_to_double_int): Convert to macro.
16181         * double-int.c (tree_to_double_int): Remove.
16182
16183 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16184
16185         PR debug/43762
16186         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16187         with want_address 2 and in case a single element list might be
16188         possible, call it again with want_address 0.
16189
16190 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16191
16192         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16193         case 'W' print operands for HI mode.
16194         * config/h8300/h8300.h (Y0, Y2) : New constraints.
16195         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16196         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16197         * config/h8300/predicate.md (bit_register_indirect_operand): New.
16198
16199         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16200
16201         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16202         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16203         #xx:3 and #xx:4 mode.
16204
16205         * config/h8300/h8300.md (inverted load with HImode dest): Add
16206         support for H8300SX.
16207
16208         * config/h8300/predicate.md (bit_operand): Allow immediate values that
16209         satisfy 'U' constraint.
16210
16211 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16212
16213         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16214         * configure: Regenerate.
16215         * config.in: Regenerate.
16216         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16217         works.
16218
16219 2010-04-16  Richard Guenther  <rguenther@suse.de>
16220
16221         * tree.h (struct tree_decl_minimal): Move pt_uid ...
16222         (struct tree_decl_common): ... here.
16223         (DECL_PT_UID): Adjust.
16224         (SET_DECL_PT_UID): Likewise.
16225         (DECL_PT_UID_SET_P): Likewise.
16226
16227 2010-04-16  Richard Guenther  <rguenther@suse.de>
16228
16229         PR tree-optimization/43572
16230         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16231         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16232         * tree-flow.h (is_call_clobbered): Remove.
16233         * tree-flow-inline.h (is_call_clobbered): Likewise.
16234         * tree-dfa.c (dump_variable): Do not dump call clobber state.
16235         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16236         (execute_return_slot_opt): Adjust.
16237         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16238         check for call clobbered vars here.
16239         (find_tail_calls): Move tailcall verification to the
16240         proper place.
16241
16242 2010-04-16  Diego Novillo  <dnovillo@google.com>
16243
16244         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16245
16246 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16247
16248         PR target/40603
16249         * config/arm/arm.md (cbranchqi4): New pattern.
16250         * config/arm/predicates.md (const0_operand,
16251         cbranchqi4_comparison_operator): New predicates.
16252
16253 2010-04-16  Richard Guenther  <rguenther@suse.de>
16254
16255         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16256         (dump_gimple_stmt): Likewise.
16257
16258 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
16259
16260         * recog.h (struct recog_data): New field is_operator.
16261         (struct insn_operand_data): New field is_operator.
16262         * recog.c (extract_insn): Set recog_data.is_operator.
16263         * genoutput.c (output_operand_data): Emit code to set the
16264         is_operator field.
16265         * reload.c (find_reloads): Use it rather than testing for an
16266         empty constraint string.
16267
16268         PR target/41514
16269         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16270         If the previous insn is a cbranchsi4_insn with the same arguments,
16271         omit the compare instruction.
16272
16273         * config/arm/arm.md (addsi3_cbranch): If destination is a high
16274         register, inputs must be low registers and we need a low register
16275         scratch.  Handle alternative 2 like alternative 3.
16276
16277 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
16278
16279         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16280         don't call get_addr on both.  If one expression is a VALUE and
16281         the other a REG, check VALUE's locs if the REG isn't among them.
16282
16283 2010-04-16  Christian Bruel  <christian.bruel@st.com>
16284
16285         * config/sh/sh.h (sh_frame_pointer_required): New function.
16286         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16287         (flag_omit_frame_pointer) Set.
16288         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16289         (rounded_frame_size): Adjust size with outgoing_args_size.
16290         (sh_set_return_address): Must return from stack pointer.
16291         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16292         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16293         (ACCUMULATE_OUTGOING_ARGS): Define.
16294         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16295         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16296
16297 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
16298
16299         PR target/43471
16300         * config/sh/sh.c (sh_legitimize_reload_address): Use
16301         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16302         Remove a unneeded check for offset_base.
16303
16304 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
16305
16306         * configure: Regenerated.
16307
16308 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16309
16310         * config/s390/s390.c (s390_call_save_register_used): Switch back
16311         to HARD_REGNO_NREGS.
16312
16313 2010-04-15  Richard Guenther  <rguenther@suse.de>
16314
16315         * alias.c (alias_set_subset_of): Handle alias-set zero
16316         child properly.
16317
16318 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
16319             Julian Brown  <julian@codesourcery.com>
16320
16321         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
16322         alternatives according to use of high and low regs.
16323         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
16324         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
16325         optimizing for size on Thumb-2.
16326
16327 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
16328
16329         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
16330
16331 2010-04-15  Richard Guenther  <rguenther@suse.de>
16332
16333         * tree-ssa-structalias.c (struct variable_info): Add
16334         is_fn_info flag.
16335         (new_var_info): Initialize it.
16336         (dump_constraints): Support printing last added constraints.
16337         (debug_constraints): Adjust.
16338         (dump_constraint_graph): Likewise.
16339         (make_heapvar_for): Check for NULL cfun.
16340         (get_function_part_constraint): New function.
16341         (get_fi_for_callee): Likewise.
16342         (find_func_aliases): Properly implement IPA PTA constraints.
16343         (process_ipa_clobber): New function.
16344         (find_func_clobbers): Likewise.
16345         (insert_into_field_list_sorted): Remove.
16346         (create_function_info_for): Properly allocate vars for IPA mode.
16347         Do not use insert_into_field_list_sorted.
16348         (create_variable_info_for): Properly generate constraints for
16349         global vars in IPA mode.
16350         (dump_solution_for_var): Always dump the solution.
16351         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
16352         (find_what_var_points_to): Adjust.
16353         (pt_solution_set): Change.
16354         (pt_solution_ior_into): New function.
16355         (pt_solution_empty_p): Export.
16356         (pt_solution_includes_global): Adjust.
16357         (pt_solution_includes_1): Likewise.
16358         (pt_solutions_intersect_1): Likewise.
16359         (dump_sa_points_to_info): Check some invariants.
16360         (solve_constraints): Move constraint dumping ...
16361         (compute_points_to_sets): ... here.
16362         (ipa_pta_execute): ... and here.
16363         (compute_may_aliases): Do not re-compute points-to info
16364         locally if IPA info is available.
16365         (ipa_escaped_pt): New global var.
16366         (ipa_pta_execute): Properly implement IPA PTA.
16367         * tree-into-ssa.c (dump_decl_set): Support dumping
16368         decls not in referenced-vars.
16369         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
16370         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
16371         (dump_points_to_solution): Likewise.
16372         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
16373         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
16374         (remap_gimple_stmt): Reset call clobber/use information if necessary.
16375         (copy_decl_to_var): Copy DECL_PT_UID.
16376         (copy_result_decl_to_var): Likewise.
16377         * tree.c (make_node_stat): Initialize DECL_PT_UID.
16378         (copy_node_stat): Copy it.
16379         * tree.h (DECL_PT_UID): New macro.
16380         (SET_DECL_PT_UID): Likewise.
16381         (DECL_PT_UID_SET_P): Likewise.
16382         (struct tree_decl_minimal): Add pt_uid member.
16383         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
16384         (pt_solution_empty_p): Declare.
16385         (pt_solution_set): Adjust.
16386         (ipa_escaped_pt): Declare.
16387         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
16388         * gimple-pretty-print.c (pp_points_to_solution): New function.
16389         (dump_gimple_call): Dump call clobber/use information.
16390         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
16391         * tree-pass.h (TDF_ALIAS): New dump option.
16392         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
16393         * doc/invoke.texi (-fipa-pta): Update documentation.
16394
16395 2010-04-15  Richard Guenther  <rguenther@suse.de>
16396
16397         * Makefile.in (OBJS-common): Add gimple-fold.o.
16398         (gimple-fold.o): New rule.
16399         * tree.h (maybe_fold_offset_to_reference,
16400         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
16401         prototypes ...
16402         * gimple.h: ... here.
16403         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
16404         may_propagate_address_into_dereference): Move prototypes ...
16405         * gimple.h: ... here.
16406         * tree-ssa-ccp.c (get_symbol_constant_value,
16407         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
16408         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
16409         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
16410         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
16411         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
16412         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
16413         gimplify_and_update_call_from_tree): Move ...
16414         * gimple-fold.c: ... here.  New file.
16415         (ccp_fold_builtin): Rename to ...
16416         (gimple_fold_builtin): ... this.
16417         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
16418
16419 2010-04-15  Richard Guenther  <rguenther@suse.de>
16420
16421         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
16422         fit_double_type, force_fit_type_double, add_double_with_sign,
16423         neg_double, mul_double_with_sign, lshift_double, rshift_double,
16424         lrotate_double, rrotate_double, div_and_round_double): Move ...
16425         * double-int.c: ... here.
16426         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
16427         add_double, neg_double, mul_double_with_sign, mul_double,
16428         lshift_double, rshift_double, lrotate_double, rrotate_double,
16429         div_and_round_double): Move prototypes ...
16430         * double-int.h: ... here.
16431
16432 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
16433
16434         PR target/43742
16435         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
16436         matching constraints to ensure inputs match the output.
16437
16438 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
16439
16440         PR target/43742
16441         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
16442         in an input-only operand.
16443
16444 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
16445
16446         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
16447         (double_int_not, double_int_lshift, double_int_rshift): Declare.
16448         (double_int_negative_p): Convert to static inline function.
16449         * double-int.c (double_int_lshift, double_int_lshift): New functions.
16450         (double_int_negative_p): Remove.
16451         * tree.h (lshift_double, rshift_double):
16452         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
16453         * fold-const.c (fold_convert_const_int_from_real,
16454         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
16455         (lshift_double): Change type of arith argument to bool.
16456         (rshift_double): Change type of arith argument to bool. Correct
16457         comment.
16458         * expmed.c (mask_rtx, lshift_value): (Ditto.).
16459
16460 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
16461
16462         PR target/21803
16463         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
16464         at the start and end of the then/else blocks, and omit them from the
16465         conversion.
16466         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
16467         argument; all callers changed.  Pass zero to old_insns_match_p instead.
16468         (flow_find_head_matching_sequence): New function.
16469         (old_insns_match_p): Check REG_EH_REGION notes for calls.
16470         * basic-block.h (flow_find_cross_jump,
16471         flow_find_head_matching_sequence): Declare functions.
16472
16473 2010-04-14  Jason Merrill  <jason@redhat.com>
16474
16475         PR c++/36625
16476         * c-common.c (attribute_takes_identifier_p): New fn.
16477         * c-common.h: Declare it.
16478
16479 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16480
16481         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
16482         splitter condition.
16483         (*udivmod<mode>4): Ditto.
16484
16485 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16486
16487         * config/i386/i386.md (maxmin_int): Rename code attribute from
16488         maxminiprefix and update all users.
16489         (maxmin_float): Ditto from maxminfprefix.
16490         (logic): Ditto from logicprefix.
16491         (absneg_mnemonic): Ditto from absnegprefix.
16492         * config/i386/mmx.md: Update all users of maxminiprefix,
16493         maxminfprefix and logicprefix for rename.
16494         * config/i386/sse.md: Ditto.
16495         * config/i386/sync.md (sync_<code><mode>): Update for
16496         logicprefix rename.
16497
16498 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16499
16500         PR 42966
16501         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
16502         warnings converted to errors.
16503
16504 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16505
16506         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
16507         used insn_type variable.
16508         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
16509         to avoid set-but-not-used warning.
16510
16511 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16512
16513         * df-core.c (df_ref_debug): Change format string placeholder
16514         from 0x%x to %#x.
16515         * dwarf2asm.c (dw2_asm_output_data_raw,
16516         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
16517         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
16518         * dwarf2out.c (output_cfi, output_cfi_directive,
16519         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
16520         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
16521         Ditto.
16522         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
16523         * print-rtl.c (print_rtx): Ditto.
16524
16525 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16526
16527         PR middle-end/42694
16528         * builtins.c (expand_builtin_pow_root): New function to expand pow
16529         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
16530         series of sqrt and cbrt calls under -ffast-math.
16531         (expand_builtin_pow): Call it.
16532
16533 2010-04-14  Michael Matz  <matz@suse.de>
16534
16535         PR tree-optimization/42963
16536         * tree-cfg.c (touched_switch_bbs): New static variable.
16537         (group_case_labels_stmt): New function broken out from ...
16538         (group_case_labels): ... here, use the above.
16539         (start_recording_case_labels): Allocate touched_switch_bbs.
16540         (end_recording_case_labels): Deallocate it, call
16541         group_case_labels_stmt.
16542         (gimple_redirect_edge_and_branch): Remember index of affected BB.
16543
16544 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16545
16546         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
16547         from insn template.
16548
16549 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
16550
16551         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
16552
16553 2010-04-13  Jan Hubicka  <jh@suse.cz>
16554
16555         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
16556         of optimized out static functions.
16557         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
16558         cost computation.  Also sanity check for overflows.
16559         (update_caller_keys): Update cgraph_edge_badness call; properly
16560         update fibheap and sanity check that it is up to date.
16561         (add_new_edges_to_heap): Update cgraph_edge_badness.
16562         (cgraph_decide_inlining_of_small_function): Likewise;
16563         add sanity checking that badness in heap is up to date;
16564         improve dumping of reason; Update badness of calls to the
16565         offline copy of function currently inlined; dump badness
16566         of functions not inlined because of unit growth limits.
16567
16568 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
16569
16570         PR middle-end/32628
16571         * c-common.c (pointer_int_sum): Disregard overflow that occured only
16572         because of sign-extension change when converting to sizetype here...
16573         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
16574
16575         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
16576         the folding to constants.  Remove redundant final conversion.
16577         (fold_binary) <associate>: Do not associate if the re-association of
16578         constants alone overflows.
16579         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
16580         to the end of the list.
16581         (multiple_of_p) <COND_EXPR>: New case.
16582
16583 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16584
16585         * opt-functions.awk (opt_sanitized_name): New.
16586         (opt_enum): New.
16587         * optc-gen.awk: Use it
16588         * opth-gen.awk: Use it.
16589
16590 2010-04-13  Martin Jambor  <mjambor@suse.cz>
16591
16592         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
16593         (sra_modify_assign): Delete stmts loading dead data even if racc has no
16594         children.  Call replace_uses_with_default_def_ssa_name to handle
16595         SSA_NAES on lhs.
16596
16597 2010-04-13  Michael Matz  <matz@suse.de>
16598
16599         PR middle-end/43730
16600         * builtins.c (expand_builtin_interclass_mathfn): Also create
16601         a register if the predicate doesn't match.
16602
16603 2010-04-13  Diego Novillo  <dnovillo@google.com>
16604
16605         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
16606         * c-pch.c: Include timevar.h.
16607         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
16608         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
16609         * ggc-common.c: Include timevar.h.
16610         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
16611         * timevar.def (TV_PCH_SAVE): Define.
16612         (TV_PCH_CPP_SAVE): Define.
16613         (TV_PCH_PTR_REALLOC): Define.
16614         (TV_PCH_PTR_SORT): Define.
16615         (TV_PCH_RESTORE): Define.
16616         (TV_PCH_CPP_RESTORE): Define.
16617
16618 2010-04-13  Michael Matz  <matz@suse.de>
16619
16620         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
16621         into MINUS_EXPRs.
16622         (can_reassociate_p): New function.
16623         (break_up_subtract_bb, reassociate_bb): Use it.
16624
16625 2010-04-13  Richard Guenther  <rguenther@suse.de>
16626
16627         PR bootstrap/43737
16628         * builtins.c (c_readstr): Fix assert.
16629
16630 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
16631
16632         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
16633         when generating cltd insn.
16634
16635         (*ashl<mode>3_1): Remove special handling for register operand 2.
16636         (*ashlsi3_1_zext): Ditto.
16637         (*ashlhi3_1): Ditto.
16638         (*ashlhi3_1_lea): Ditto.
16639         (*ashlqi3_1): Ditto.
16640         (*ashlqi3_1_lea): Ditto.
16641         (*<shiftrt_insn><mode>3_1): Ditto.
16642         (*<shiftrt_insn>si3_1_zext): Ditto.
16643         (*<shiftrt_insn>qi3_1_slp): Ditto.
16644         (*<rotate_insn><mode>3_1): Ditto.
16645         (*<rotate_insn>si3_1_zext): Ditto.
16646         (*<rotate_insn>qi3_1_slp): Ditto.
16647
16648 2010-04-13  Richard Guenther  <rguenther@suse.de>
16649
16650         * tree-ssa-structalias.c (callused_id): Remove.
16651         (call_stmt_vars): New.
16652         (get_call_vi): Likewise.
16653         (lookup_call_use_vi): Likewise.
16654         (lookup_call_clobber_vi): Likewise.
16655         (get_call_use_vi): Likewise.
16656         (get_call_clobber_vi): Likewise.
16657         (make_transitive_closure_constraints): Likewise.
16658         (handle_const_call): Adjust to do per-call call-used handling.
16659         (handle_pure_call): Likewise.
16660         (find_what_var_points_to): Remove general callused handling.
16661         (init_base_vars): Likewise.
16662         (init_alias_vars): Initialize call_stmt_vars.
16663         (compute_points_to_sets): Process call-used and call-clobbered
16664         vars for call statements.
16665         (delete_points_to_sets): Free call_stmt_vars.
16666
16667 2010-04-13  Richard Guenther  <rguenther@suse.de>
16668
16669         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16670         Only add RW dependence for dependence distance zero.
16671         Adjust maximal vectorization factor according to dependences.
16672         Move alignment handling ...
16673         (vect_find_same_alignment_drs): ... here.  New function.
16674         (vect_analyze_data_ref_dependences): Adjust.
16675         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
16676         (vect_analyze_data_refs): Adjust minimal vectorization factor
16677         according to data references.
16678         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
16679         dependences before determining the vectorization factor.
16680         Analyze alignment after determining the vectorization factor.
16681         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
16682         dependences before alignment.
16683         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
16684         Adjust prototype.
16685         (vect_analyze_data_refs): Likewise.
16686         (MAX_VECTORIZATION_FACTOR): New define.
16687
16688 2010-04-13  Duncan Sands  <baldrick@free.fr>
16689
16690         * except.h (lang_eh_type_covers): Remove.
16691         * except.c (lang_eh_type_covers): Likewise.
16692
16693 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16694             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16695
16696         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
16697         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
16698         UNITS_PER_LONG where it is ABI relevant.
16699         (s390_return_addr_rtx): Likewise.
16700         (s390_back_chain_rtx): Likewise.
16701         (s390_frame_area): Likewise.
16702         (s390_frame_info): Likewise.
16703         (s390_initial_elimination_offset): Likewise.
16704         (save_gprs): Likewise.
16705         (s390_emit_prologue): Likewise.
16706         (s390_emit_epilogue): Likewise.
16707         (s390_function_arg_advance): Likewise.
16708         (s390_function_arg): Likewise.
16709         (s390_va_start): Likewise.
16710         (s390_gimplify_va_arg): Likewise.
16711         (s390_function_profiler): Likewise.
16712         (s390_optimize_prologue): Likewise.
16713         (s390_rtx_costs): Likewise.
16714         (s390_secondary_reload): Likewise.
16715         (s390_promote_function_mode): Likewise.
16716         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
16717         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
16718         registers available.
16719         (s390_unwind_word_mode): New function.
16720         (s390_function_value): Split 64 bit values into register pair if
16721         used as return value.
16722         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
16723         function call parameters.  Handle parallels.
16724         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
16725         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
16726         (DWARF_CIE_DATA_ALIGNMENT): New macro.
16727         (s390_expand_setmem): Remove unused variable src_addr.
16728         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
16729         deal with 64 bit registers.
16730         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
16731         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
16732         (UNITS_PER_LONG): New macro.
16733         * libjava/include/s390-signal.h: Define extended ucontext
16734         structure containing the upper halfs of the 64 bit registers.
16735
16736 2010-04-13  Simon Baldwin  <simonb@google.com>
16737
16738         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
16739
16740 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
16741
16742         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
16743         rvalue on the RHS if the LHS is of a non-renamable type.
16744         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
16745
16746 2010-04-13  Matthias Klose  <doko@ubuntu.com>
16747
16748         * gcc.c (cc1_options): Handle -iplugindir before processing
16749         the cc1 spec. Only add -iplugindir once.
16750         (cpp_unique_options): Add -iplugindir option if -fplugin* options
16751         found.
16752         * common.opt (iplugindir): Remove `Separate' property, initialize.
16753         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
16754         option.
16755         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
16756         (distclean): Remove plugin dir.
16757         * doc/invoke.texi: Document -iplugindir.
16758
16759 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
16760
16761         * doc/plugins.texi (Loading Plugins): Document short
16762         -fplugin=foo option.
16763         (Plugin API): Mention default_plugin_dir_name function.
16764
16765         * gcc.c (find_file_spec_function): Add new declaration.
16766         (static_spec_func): Use it for "find-file".
16767         (find_file_spec_function): Add new function.
16768         (cc1_options): Add -iplugindir option if -fplugin* options found.
16769
16770         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
16771
16772         * plugin.c (add_new_plugin): Updated comment, and handle short
16773         plugin name.
16774         (default_plugin_dir_name): Added new function.
16775
16776         * common.opt (iplugindir): New option to set the plugin directory.
16777
16778 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
16779
16780         * config/i386/i386.md (any_rotate): New code iterator.
16781         (rotate_insn): New code attribute.
16782         (rotate): Ditto.
16783         (SWIM124): New mode iterator.
16784         (<rotate_insn>ti3): New expander.
16785         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
16786         any_rotate code iterator.
16787         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
16788         using any_rotate code iterator and SWIM124 mode iterator.
16789         (ix86_rotlti3): New insn_and_split pattern.
16790         (ix86_rotrti3): Ditto.
16791         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
16792         ix86_rotl{di,ti}3 patterns.
16793         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
16794         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
16795         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
16796         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
16797         code iterator and SWI mode iterator.
16798         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
16799         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
16800         code iterator.
16801         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
16802         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
16803         (bswap rotatert splitter): Add splitter.
16804         (bswap splitter): Macroize splitter using any_rotate code iterator.
16805         Add insn predicate to split only for TARGET_USE_XCHGB or when
16806         optimizing function for size.
16807
16808 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
16809
16810         * config/pa/pa.c (emit_move_sequence): Remove use of
16811         deleted variable flag_argument_noalias.
16812
16813 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16814
16815         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
16816         configurations.
16817         Add to unsupported targets list.
16818         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
16819         sparc*-sun-solaris2.[567]* from target lists.
16820         * configure: Regenerate.
16821         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
16822         removal.
16823         Remove Solaris 7 patch references.
16824         (Specific, sparc-sun-solaris2.7): Removed.
16825         (sparc-sun-solaris2*): Update Solaris 7 example.
16826         (sparc64-*-solaris2*): Likewise.
16827
16828 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16829
16830         * config.build (alpha*-dec-osf4*): Remove.
16831         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
16832         of obsolete configurations.
16833         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
16834         support.
16835         * config/alpha/t-osf4: Renamed to ...
16836         * config/alpha/t-osf5: ... this.
16837         * config/alpha/osf.h: Renamed to ...
16838         * config/alpha/osf5.h: ... this.
16839         Merged old osf5.h contents.
16840         Update comments.
16841         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
16842         (EXTRA_SPECS): Removed.
16843         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
16844         reflect removal of Tru64 UNIX V4.0/V5.0 support.
16845         Document that.
16846
16847 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16848
16849         * doc/contrib.texi (Contributors, Rainer Orth): Update.
16850
16851 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
16852
16853         PR/43702
16854         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
16855         __thiscall convention.
16856
16857 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
16858
16859         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
16860         orig_base.
16861         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
16862
16863 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
16864
16865         * function.c (assign_parms_initialize_all): Add unused attribute
16866         to fntype.
16867
16868 2010-04-12  Richard Guenther  <rguenther@suse.de>
16869
16870         * gsstruct.def (GSS_CALL): New.
16871         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
16872         * gimple.h: Include tree-ssa-alias.h.
16873         (struct gimple_statement_call): New.
16874         (union gimple_statement_struct_d): Add gimple_call member.
16875         (gimple_call_reset_alias_info): Declare.
16876         (gimple_call_use_set): New function.
16877         (gimple_call_clobber_set): Likewise.
16878         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
16879         * gimple.c (gimple_call_reset_alias_info): New function.
16880         (gimple_build_call_1): Call it.
16881         * lto-streamer-in.c (input_gimple_stmt): Likewise.
16882         * tree-inline.c (remap_gimple_stmt): Likewise.
16883         (expand_call_inline): Remove callused handling.
16884         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
16885         * tree-dfa.c (dump_variable): Likewise.
16886         * tree-parloops.c (parallelize_loops): Likewise.
16887         * tree-ssa.c (init_tree_ssa): Likewise.
16888         (delete_tree_ssa): Likewise.
16889         * tree-flow-inline.h (is_call_used): Remove.
16890         * tree-flow.h (struct gimple_df): Remove callused member.
16891         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
16892         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
16893         (ref_maybe_used_by_call_p_1): Simplify.
16894         (call_may_clobber_ref_p_1): Likewise.
16895         * tree-ssa-structalias.c (compute_points_to_sets): Set
16896         the call stmt used and clobbered sets.
16897         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
16898         (find_tail_calls): Verify the tail call.
16899
16900 2010-04-12  Richard Guenther  <rguenther@suse.de>
16901
16902         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
16903         single-iteration always-inline inlining.
16904         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
16905         (cgraph_decide_inlining): Do not handle always-inline specially.
16906         (try_inline): Remove always-inline cycle detection special case.
16907         Do not recurse on always-inlines.
16908         (cgraph_early_inlining): Do not iterate if not optimizing.
16909         (cgraph_gate_early_inlining): remove.
16910         (pass_early_inline): Run unconditionally.
16911         (gate_cgraph_decide_inlining): New function.
16912         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
16913         not inlining or optimizing.
16914         (cgraph_decide_inlining_of_small_functions): Also consider
16915         always-inline functions.
16916         (cgraph_default_inline_p): Return true for nodes which should
16917         disregard inline limits.
16918         (estimate_function_body_sizes): Assume zero size and time for
16919         nodes which are marked as disregarding inline limits.
16920         (cgraph_decide_recursive_inlining): Do not perform recursive
16921         inlining on always-inline nodes.
16922
16923 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
16924
16925         PR bootstrap/43699
16926         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
16927         for exprs satisfying handled_component_p.
16928
16929 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
16930
16931         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
16932         non-constant aggregate elements.
16933
16934         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
16935         is a real initialization.
16936
16937 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
16938
16939         PR c/36774
16940         * c-decl.c (start_function): Move forward check for nested function.
16941
16942 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16943
16944         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
16945         * config/sh/sh.c: Include reload.h.
16946         (sh_legitimize_reload_address): New.
16947         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
16948         sh_legitimize_reload_address.
16949
16950 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16951
16952         * config/sh/sh.md (*movqi_pop): New insn pattern.
16953         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
16954
16955 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16956
16957         * config/i386/i386.md (any_shiftrt): New code iterator.
16958         (shiftrt_insn): New code attribute.
16959         (shiftrt): Ditto.
16960         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
16961         using any_shiftrt code iterator.
16962         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
16963         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
16964         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
16965         pattern from corresponding peephole2 patterns.
16966         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
16967         using any_shiftrt code iterator.
16968         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
16969         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
16970         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
16971         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
16972         *{ashr,lshr}<mode>3_cmp_zext.
16973         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
16974
16975 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16976
16977         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
16978         scratch register.
16979         (*lshr<mode>3_cconly): Ditto.
16980
16981 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16982
16983         * config/i386/i386.md (lshr<mode>3): Macroize expander from
16984         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
16985         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
16986         pattern from *lshr{di,ti}3_1 and corresponding splitters using
16987         DWI mode iterator.
16988         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
16989         from corresponding peephole2 patterns.
16990         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
16991         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
16992         and *lshrdi3_1_rex64 using SWI mode iterator.
16993         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
16994         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
16995         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
16996         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
16997         and *lshrdi3_cmp_rex64 using SWI mode iterator.
16998         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
16999         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17000         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17001         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17002         SWI mode iterator.
17003
17004 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
17005
17006         * config/i386/i386.md (ashr<mode>3): Macroize expander from
17007         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17008         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17009         pattern from *ashr{di,ti}3_1 and corresponding splitters using
17010         DWI mode iterator.
17011         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17012         from corresponding peephole2 patterns.
17013         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17014         (ashrsi3_cvt): Rename from ashrsi3_31.
17015         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17016         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17017         and x86_64_shift_adj_3 using SWI48 mode iterator.
17018         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17019         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17020         and *ashrdi3_1_rex64 using SWI mode iterator.
17021         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17022         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17023         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17024         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17025         and *ashrdi3_cmp_rex64 using SWI mode iterator.
17026         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17027         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17028         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17029         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17030         SWI mode iterator.
17031         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17032         * config/i386/i386.c (ix86_split_ashr): Update for renamed
17033         x86_shift<mode>_adj_3 expanders.
17034
17035 2010-04-10  Wei Guozhi  <carrot@google.com>
17036
17037         PR target/42601
17038         * config/arm/arm.c (arm_pic_static_addr): New function.
17039         (legitimize_pic_address): Call arm_pic_static_addr when it detects
17040         a static symbol.
17041         (arm_output_addr_const_extra): Output expression for new pattern.
17042         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17043
17044 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
17045
17046         * ira-costs.c (record_reg_classes): Ignore alternatives that are
17047         not enabled.
17048
17049         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17050         * web.c: Include "insn-config.h" and "recog.h".
17051         (union_match_dups): New function.
17052         (web_main): Call it.
17053         (union_defs): Don't try to recognize match_dups.
17054
17055         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17056         if doing so would replace the entire pattern.
17057
17058 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17059
17060         PR target/43707
17061         PR target/43709
17062         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17063         and splitter pattern.  Change splitter operand 1 predicate to
17064         nonmemory_operand.
17065
17066 2010-04-09  Martin Jambor  <mjambor@suse.cz>
17067
17068         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17069         lattices are addresses of CONST_DECLs with the same initial value.
17070         (ipcp_print_all_lattices): Print values of CONST_DECLs.
17071         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17072
17073 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
17074             Bernd Schmidt  <bernds@codesourcery.com>
17075
17076         * loop-invariant.c (replace_uses): New static function.
17077         (move_invariant_reg): Use it to ensure we can replace the uses.
17078
17079 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
17080
17081         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17082         function template.
17083         (picochip_override_options): Enable section anchors only above -O1.
17084         (picochip_reorg): Fixed a couple of build warnings.
17085
17086 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17087
17088         * configure.ac (plugin -rdynamic test): Log result.
17089         * configure: Regenerate.
17090         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17091         (RDYNAMIC_SPEC): Define.
17092         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17093
17094 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17095
17096         * configure.ac: Determine Sun ld version numbers.
17097         (comdat_group): Restrict GNU ld version checks to gld.
17098         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17099         (enable_comdat): Support --enable-comdat.
17100         * configure: Regenerate.
17101         * doc/install.texi (Configuration): Document --enable-comdat.
17102
17103 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17104
17105         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
17106         * config/sol2-gld.h: ... here.
17107         * config.gcc (sparc*-*-solaris2*): Reflect this.
17108         (i[34567]86-*-solaris2*): Use it.
17109
17110 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
17111
17112         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17113         setup_clocks_p.
17114         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17115
17116 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17117
17118         PR 42965
17119         * diagnostic.c (diagnostic_initialize): Initialize
17120         some_warnings_are_errors.
17121         (diagnostic_finish): New.
17122         (diagnostic_action_after_output): Call it before exiting.
17123         (diagnostic_report_diagnostic): Do not print message here. Set
17124         some_warnings_are_errors.
17125         * diagnostic.h (diagnostic_context): Delete
17126         issue_warnings_are_errors_message. Add some_warnings_are_errors.
17127         (diagnostic_finish): Declare.
17128         * toplev.c (toplev_main): Call it before exit.
17129
17130 2010-04-09  Jason Merrill  <jason@redhat.com>
17131
17132         PR c++/42623
17133         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17134         for incomplete type.
17135
17136         PR c++/41788
17137         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17138         based on a warning flag.
17139
17140 2010-04-09  Richard Guenther  <rguenther@suse.de>
17141
17142         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17143
17144 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
17145
17146         PR bootstrap/43684
17147         * varasm.c (default_assemble_visibility): Wrap vars that are
17148         set, but unused, by targets without GAS.
17149         * config/rs6000/rs6000.c (paired_emit_vector_compare):
17150         Remove set, but unused, vars.
17151         (rs6000_legitimize_tls_address): Likewise.
17152         (altivec_expand_dst_builtin): Likewise.
17153         * config/darwin.c (machopic_classify_symbol): Likewise.
17154         (machopic_indirection_name): Likewise.
17155
17156 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
17157
17158         * config/i386/i386.md (DWI): New mode iterator.
17159         (S): New mode attribute.
17160         (shift_operand): Ditto.
17161         (shift_immediate_operand): Ditto.
17162         (ashl_input_operand): Ditto.
17163         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17164         using SDWIM mode iterator.
17165         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
17166         pattern from *ashl{di,ti}3_1 and corresponding splitters using
17167         DWI mode iterator.
17168         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17169         from corresponding peephole2 patterns.
17170         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17171         and x86_64_shift_adj_1 using SWI48 mode iterator.
17172         (x86_shift<mode>_adj_2): Ditto.
17173         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17174         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17175         using SWI48 mode iterator.
17176         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17177         *ashldi3_cmp_rex64 using SWI mode iterator.
17178         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17179         *ashldi3_cconly_rex64 using SWI mode iterator.
17180         * config/i386/i386.c (ix86_split_ashl): Update for renamed
17181         x86_shift<mode>_adj_{1,2}.
17182         (ix86_split_ashr): Ditto.
17183         (ix86_split_lshr): Ditto.
17184
17185 2010-04-09  Richard Guenther  <rguenther@suse.de>
17186
17187         * target.h (builtin_conversion): Pass in input and output types.
17188         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17189         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17190         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17191         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17192
17193         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17194         Handle AVX modes.
17195         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17196
17197 2010-04-09  Richard Guenther  <rguenther@suse.de>
17198
17199         PR target/43152
17200         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17201
17202 2010-04-09  Richard Guenther  <rguenther@suse.de>
17203
17204         * tree-vectorizer.h (struct _stmt_vec_info): Document
17205         that vectype is the type of the LHS.
17206         (supportable_widening_operation, supportable_narrowing_operation):
17207         Get both input and output vector types as arguments.
17208         (vect_is_simple_use_1): Declare.
17209         (get_same_sized_vectype): Likewise.
17210         * tree-vect-loop.c (vect_determine_vectorization_factor):
17211         Set STMT_VINFO_VECTYPE to the vector type of the def.
17212         (vectorizable_reduction): Adjust.
17213         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17214         Adjust.  Specify the output vector type.
17215         (vect_pattern_recog_1): Adjust.
17216         * tree-vect-stmts.c (get_same_sized_vectype): New function.
17217         (vectorizable_call): Adjust.
17218         (vectorizable_conversion): Likewise.
17219         (vectorizable_operation): Likewise.
17220         (vectorizable_type_demotion): Likewise.
17221         (vectorizable_type_promotion): Likewise.
17222         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17223         the def.
17224         (vect_is_simple_use_1): New function.
17225         (supportable_widening_operation): Get both input and output
17226         vector types.
17227         (supportable_narrowing_operation): Likewise.
17228         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17229
17230 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
17231
17232         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17233         __thiscall and _thiscall as predefined macros.
17234         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17235         thiscall attribute handling.
17236         (ix86_comp_type_attributes): Likewise.
17237         (ix86_function_regparm): Likewise.
17238         (ix86_return_pops_args): Likewise.
17239         (init_cumulative_args): Likewise.
17240         (find_drap_reg): Likewise.
17241         (ix86_static_chain): Likewise.
17242         (x86_this_parameter): Likewise.
17243         (x86_output_mi_thunk): Likewise.
17244         (ix86_attribute_table): Add description for thiscall attribute.
17245         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17246         * doc/extend.texi: Add documentation for thiscall.
17247
17248 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17249
17250         PR c++/28584
17251         * c.opt (Wint-to-pointer-cast): Available in C++.
17252         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17253
17254 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
17255
17256         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17257         * calls.c (expand_call): Pass the function type to aggregate_value_p.
17258         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17259         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
17260         function type instead.  Reorder and simplify checks.
17261
17262         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17263
17264 2010-04-08  Jing Yu  <jingyu@google.com>
17265             Zdenek Dvorak  <ook@ucw.cz>
17266
17267         PR tree-optimization/42720
17268         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17269         loop unswitch conditions here from ...
17270         (tree_unswitch_single_loop): ... here.
17271
17272 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17273
17274         * tree-if-conv.c: Fix comments and simplify logic.
17275
17276 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
17277
17278         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17279         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
17280         (main_tree_if_conversion): Update call to tree_if_conversion.
17281
17282 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17283
17284         PR 42485
17285         * doc/invoke.texi (-b,-V): Delete.
17286         * doc/tm.texi: Do not mention -b.
17287         * gcc.c (display_help): Delete -b and -V.
17288         (process_command): Delete -b and -V.
17289         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17290
17291 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
17292             Wolfgang Gellerich  <gellerich@de.ibm.com>
17293
17294         Implement target hook for loop unrolling
17295         * target.h (loop_unroll_adjust): Add a new target hook function.
17296         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17297         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17298         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17299         (s390_loop_unroll_adjust): Implement the new target hook for s390.
17300         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17301         target hook.
17302         (decide_unroll_stupid): Likewise.
17303
17304 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17305
17306         PR target/43643
17307         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17308
17309 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17310
17311         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
17312         (Specific, *-*-solaris2*): Likewise.
17313         Don't prefer Sun as over GNU as.
17314
17315 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
17316
17317         * config/s390/s390.c (override_options): Adjust the z10 defaults
17318         for max-unroll-times, max-completely-peeled-insns
17319         and max-completely-peel-times.
17320
17321 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17322
17323         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
17324         instructions for z10.
17325         (s390_expand_setmem): Likewise.
17326         (s390_expand_cmpmem): Likewise.
17327
17328 2010-04-08  Richard Guenther  <rguenther@suse.de>
17329
17330         PR tree-optimization/43679
17331         * tree-ssa-pre.c (eliminate): Only propagate copies.
17332
17333 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17334
17335         PR bootstrap/43681
17336         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
17337         set but not used variable warning.
17338
17339 2010-04-08  Wei Guozhi  <carrot@google.com>
17340
17341         PR target/41653
17342         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
17343         (arm_size_rtx_costs): Call the new function when optimized for size.
17344
17345 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
17346
17347         PR debug/43670
17348         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
17349         op0 is not a MEM, just return NULL instead of assertion
17350         failure.
17351         (discover_nonconstant_array_refs): Don't walk debug stmts.
17352
17353 2010-04-08  Doug Kwan  <dougkwan@google.com>
17354
17355         * configure.ac: Recognize gold and do not use its version number
17356         to test ld features.
17357         * configure: Regenerate.
17358
17359 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
17360
17361         PR middle-end/40815
17362         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
17363         (negate_value): Move code to push elements to broken_up_substracts ...
17364         (eliminate_plus_minus_pair): ... here.  Push operands that have no
17365         negative pair to plus_negates.
17366         (repropagate_negates, init_reassoc, fini_reassoc): Update.
17367
17368 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17369
17370         * doc/install.texi (Configuration): Move description of
17371         --enable-lto, --with-libelf*, --enable-gold from Java section to
17372         general section.
17373
17374         * doc/generic.texi (Working with declarations)
17375         (Function Properties, C and C++ Trees): Fix typos.
17376         * doc/sourcebuild.texi (Top Level): Likewise.
17377
17378 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
17379
17380         PR c/18624
17381         * tree.h (DECL_READ_P): Define.
17382         (struct tree_decl_common): Add decl_read_flag.
17383         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
17384         a set but not used warning.
17385         (merge_decls): Merge DECL_READ_P flag.
17386         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
17387         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
17388         * c-common.c (handle_used_attribute, handle_unused_attribute):
17389         Likewise.
17390         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
17391         New prototypes.
17392         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
17393         New functions.
17394         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
17395         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
17396         c_parser_binary_expression, c_parser_cast_expression,
17397         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
17398         Call default_function_array_read_conversion instead of
17399         default_function_array_conversion where needed.
17400         (c_parser_unary_expression, c_parser_conditional_expression,
17401         c_parser_postfix_expression_after_primary, c_parser_initelt):
17402         Likewise.  Call mark_exp_read where needed.
17403         (c_parser_statement_after_labels, c_parser_asm_operands,
17404         c_parser_typeof_specifier, c_parser_sizeof_expression,
17405         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
17406         where needed.
17407         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
17408         New.
17409         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
17410         (warn_unused_but_set_parameter): Default to warn_unused
17411         && extra_warnings.
17412         * doc/invoke.texi: Document -Wunused-but-set-variable and
17413         -Wunused-but-set-parameter.
17414
17415         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
17416         used count variable.
17417         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
17418         when operandN variables aren't used in the body of the expander
17419         or splitter.
17420         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
17421         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
17422         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
17423         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
17424         FOR_EACH_IMM_USE_ON_STMT): Likewise.
17425         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
17426         * tree.c (PROCESS_ARG): Likewise.
17427
17428 2010-04-07  Simon Baldwin  <simonb@google.com>
17429
17430         * diagnostic.h (diagnostic_override_option_index): New macro to
17431         set a diagnostic's option_index.
17432         * c-tree.h (c_cpp_error): Add warning reason argument.
17433         * opts.c (_warning_as_error_callback): New.
17434         (register_warning_as_error_callback): Store callback for
17435         warnings enabled via enable_warning_as_error.
17436         (enable_warning_as_error): Call callback, minor code tidy.
17437         * opts.h (register_warning_as_error_callback): Declare.
17438         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
17439         response to -Werror=.
17440         (c_common_init_options): Register warning_as_error_callback in opts.c.
17441         * common.opt: Add -Wno-cpp option.
17442         * c-common.c (struct reason_option_codes_t): Map cpp warning
17443         reason codes to gcc option indexes.
17444         * (c_option_controlling_cpp_error): New function, lookup the gcc
17445         option index for a cpp warning reason code.
17446         * (c_cpp_error): Add warning reason argument, call
17447         c_option_controlling_cpp_error for diagnostic_override_option_index.
17448         * doc/invoke.texi: Document -Wno-cpp.
17449
17450 2010-04-07  Richard Guenther  <rguenther@suse.de>
17451
17452         * ipa-reference.c (mark_load): Use get_base_address.
17453         (mark_store): Likewise.
17454
17455         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
17456         inserting GIMPLE_NOPs into the IL.
17457         * tree-ssa-structalias.c (get_constraint_for_component_ref):
17458         Explicitly strip handled components and indirect references.
17459
17460         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
17461         folding address expressions.
17462         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
17463         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
17464         operand_equal_p to compare decls.
17465         (ptr_deref_may_alias_decl_p): Likewise.
17466         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
17467         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
17468         Handle reversed comparison ops.
17469         * tree-sra.c (asm_visit_addr): Use get_base_address.
17470         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
17471         * ipa-reference.c (mark_address): Use get_base_address.
17472
17473 2010-04-07  Richard Guenther  <rguenther@suse.de>
17474
17475         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
17476         Propagate constants everywhere.
17477
17478 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
17479
17480         PR debug/43516
17481         * tree.c (MAX_INT_CACHED_PREC): Define.
17482         (nonstandard_integer_type_cache): New array.
17483         (build_nonstandard_integer_type): Cache results for precision
17484         <= MAX_INT_CACHED_PREC.
17485
17486 2010-04-07  Richard Guenther  <rguenther@suse.de>
17487
17488         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
17489         -fargument-noalias-global, -fargument-noalias-anything): Remove.
17490         * common.opt: Likewise.
17491         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
17492         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
17493         (nonoverlapping_memrefs_p): Likewise.
17494         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
17495         * opts.c (common_handle_option): Handle OPT_fargument_alias,
17496         OPT_fargument_noalias, OPT_fargument_noalias_anything and
17497         OPT_fargument_noalias_global for backward compatibility.
17498
17499 2010-04-07  Richard Guenther  <rguenther@suse.de>
17500
17501         PR tree-optimization/43270
17502         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
17503         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
17504         * tree-ssa-pre.c (phi_translate_1): Adjust.
17505         (fully_constant_expression): Split out vn_reference handling to ...
17506         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
17507         Fold reads from constant strings.
17508         (vn_reference_lookup): Handle fully constant references.
17509         (vn_reference_lookup_pieces): Likewise.
17510         * Makefile.in (expmed.o-warn): Add -Wno-error.
17511
17512 2010-04-07  Martin Jambor  <mjambor@suse.cz>
17513
17514         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
17515
17516 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
17517
17518         PR driver/41594
17519         * gcc.c: Add -static-libstdc++ to list of recognized options.
17520
17521 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17522
17523         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
17524
17525 2010-04-07  Richard Guenther  <rguenther@suse.de>
17526
17527         PR middle-end/42617
17528         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
17529         bases build simple mem attributes to retain points-to information.
17530
17531 2010-04-07  Richard Guenther  <rguenther@suse.de>
17532
17533         PR middle-end/42617
17534         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
17535         preserve points-to related information.
17536
17537 2010-04-07  Richard Guenther  <rguenther@suse.de>
17538
17539         PR middle-end/42617
17540         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
17541         discard plain indirect references.
17542         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
17543         * tree.c (tree_nop_conversion): Likewise.
17544
17545 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
17546
17547         PR debug/43628
17548         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
17549
17550 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
17551
17552         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
17553         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
17554
17555 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
17556
17557         * tree-if-conv.c: Fix indentation and comments.
17558
17559 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
17560
17561         * tree-if-conv.c: Sort static functions in topological order.
17562
17563 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
17564
17565         * tree-if-conv.c: Fix indentation and comments.
17566
17567 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17568
17569         PR middle-end/43519
17570         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
17571         lang_hooks.types.type_for_size instead of
17572         build_nonstandard_integer_type.
17573         When converting an unsigned type to signed, double its precision.
17574         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
17575         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
17576         (graphite_create_new_loop_guard): When ub + 1 wraps around,
17577         use lb <= ub.
17578
17579 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17580
17581         PR middle-end/43519
17582         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
17583         POINTER_PLUS_EXPR for pointer types.
17584
17585 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17586
17587         PR middle-end/43519
17588         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
17589         * graphite-clast-to-gimple.c: Include langhooks.h.
17590         (max_signed_precision_type): New.
17591         (max_precision_type): Takes two types as arguments.
17592         (precision_for_value): New.
17593         (precision_for_interval): New.
17594         (gcc_type_for_interval): New.
17595         (gcc_type_for_value): New.
17596         (gcc_type_for_clast_term): New.
17597         (gcc_type_for_clast_red): New.
17598         (gcc_type_for_clast_bin): New.
17599         (gcc_type_for_clast_expr): Split up into several functions.
17600         (gcc_type_for_clast_eq): Rewritten.
17601         (compute_bounds_for_level): New.
17602         (compute_type_for_level_1): New.
17603         (compute_type_for_level): New.
17604         (gcc_type_for_cloog_iv): Removed.
17605         (gcc_type_for_iv_of_clast_loop): Rewritten.
17606         (graphite_create_new_loop): Compute the lower and upper bound types
17607         with gcc_type_for_clast_expr.
17608         (graphite_create_new_loop_guard): Same.
17609         (find_cloog_iv_in_expr): Removed.
17610         (compute_cloog_iv_types_1): Removed.
17611         (compute_cloog_iv_types): Removed.
17612         (gloog): Do not call compute_cloog_iv_types.
17613         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
17614         GBB_CLOOG_IV_TYPES.
17615         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
17616         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
17617         (GBB_CLOOG_IV_TYPES): Removed.
17618
17619 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17620
17621         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
17622         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
17623         (detect_commutative_reduction): Same.
17624
17625 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17626
17627         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
17628         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
17629         argument.
17630         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
17631         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
17632         (rewrite_commutative_reductions_out_of_ssa): Same.
17633         * passes.c (execute_function_todo): Call verify_ssa for every pass
17634         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
17635         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
17636         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
17637         with an extra argument.
17638         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
17639         verify_ssa only when the extra argument is true.
17640         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
17641         with an extra argument.
17642         (tree_transform_and_unroll_loop): Same.
17643
17644 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
17645
17646         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
17647         for all the passes of the LNO having LOOP_CLOSED_SSA.
17648         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
17649         * tree-loop-distribution.c (pass_loop_distribution): Same.
17650         * tree-pass.h (TODO_verify_loops): Removed.
17651         * tree-ssa-loop.c (pass_tree_loop_init): Same.
17652         (pass_lim): Same.
17653         (pass_tree_unswitch): Same.
17654         (pass_predcom): Same.
17655         (pass_vectorize): Same.
17656         (pass_linear_transform): Same.
17657         (pass_graphite_transforms): Same.
17658         (pass_iv_canon): Same.
17659         (pass_complete_unroll): Same.
17660         (pass_complete_unrolli): Same.
17661         (pass_parallelize_loops): Same.
17662         (pass_loop_prefetch): Same.
17663         (pass_iv_optimize): Same.
17664
17665 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
17666
17667         PR middle-end/32824
17668         * passes.c (init_optimization_passes): Move pass_lim before
17669         pass_copy_prop and pass_dce_loop.
17670
17671 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
17672
17673         PR target/43667
17674         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
17675         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
17676         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
17677         MULTI_* defines for 4 argument vpermil2p* builtins.
17678
17679 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
17680
17681         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
17682         * config/i386/i386.c (x86_maybe_negate_const_int): New.
17683         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
17684         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
17685         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
17686         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
17687         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
17688         Use x86_maybe_negate_const_int to output insn mnemonic.
17689         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
17690         check from instruction predicate.  Update comments.
17691         * config/i386/sync.md (sync_add<mode>): Use
17692         x86_maybe_negate_const_int to output insn mnemonic.
17693
17694 2010-04-06  Jan Hubicka  <jh@suse.cz>
17695
17696         PR tree-optimization/42906
17697         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
17698         IGNORE_SELF argument.  Set visited_control_parents for fully
17699         processed BBs.
17700         (find_obviously_necessary_stmts): Update call of
17701         mark_control_dependent_edges_necessary.
17702         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
17703
17704 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
17705
17706         * config/i386/i386.md: Remove comment about 'e' and 'E'
17707         operand modifier.
17708
17709 2010-04-06  Richard Guenther  <rguenther@suse.de>
17710
17711         PR tree-optimization/43627
17712         * tree-vrp.c (extract_range_from_unary_expr): Widenings
17713         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
17714         not varying.
17715
17716 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
17717
17718         * BASE-VER: Change to 4.6.0.
17719
17720         PR target/43638
17721         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
17722         handling.
17723
17724 2010-04-06  Richard Guenther  <rguenther@suse.de>
17725
17726         PR middle-end/43661
17727         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
17728
17729 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17730
17731         * doc/invoke.texi (Optimize Options): Document that LTO
17732         won't remove object access purely due to incompatible
17733         declarations.
17734
17735 2010-04-04  Matthias Klose  <doko@ubuntu.com>
17736
17737         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
17738         Initialize variable.
17739
17740 2010-04-03  Richard Guenther  <rguenther@suse.de>
17741
17742         PR middle-end/42509
17743         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
17744         require a non-NULL MEM_OFFSET.
17745
17746 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
17747
17748         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
17749         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
17750         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
17751         config/alpha/predicates.md, config/arm/arm.md,
17752         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
17753         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
17754         config/darwin9.h, config/darwin.c, config/darwin.h,
17755         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
17756         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
17757         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
17758         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
17759         config/mips/mips.md, config/mn10300/mn10300.c,
17760         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
17761         config/rs6000/aix.h, config/rs6000/dfp.md,
17762         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
17763         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
17764         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
17765         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
17766         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
17767         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
17768         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
17769         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
17770         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
17771         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
17772         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
17773         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
17774         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
17775         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
17776         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
17777         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
17778         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
17779         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
17780         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
17781         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
17782         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
17783         opt-functions.awk, opth-gen.awk, params.def, passes.c,
17784         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
17785         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
17786         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
17787         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
17788         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
17789         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
17790         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
17791         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
17792         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
17793         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
17794         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
17795         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
17796         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
17797         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
17798
17799 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17800
17801         PR other/43620
17802         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
17803         * aclocal.m4: Regenerate.
17804
17805 2010-04-02  Richard Guenther  <rguenther@suse.de>
17806
17807         PR tree-optimization/43629
17808         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
17809         if we have seen a constant value.
17810
17811 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
17812
17813         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
17814
17815 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
17816
17817         PR target/43469
17818         * arm.c (legitimize_tls_address): Adjust call to
17819         gen_tls_load_dot_plus_four.
17820         (arm_note_pic_base): New function.
17821         (arm_cannot_copy_insn_p): Use it.
17822         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
17823         constraint.
17824
17825 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17826
17827         PR bootstrap/43531
17828
17829         Revert:
17830         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17831
17832         * Makefile.in ($(out_object_file)): Depend on
17833         gt-$(basename $(notdir $(out_file))).h.
17834
17835 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
17836
17837         * config.gcc (lm32-*-rtems*): Add t-lm32.
17838
17839 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
17840
17841         * config.gcc: Add lm32-*-rtems*.
17842         * config/lm32/rtems.h: New file.
17843
17844 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
17845
17846         PR target/42609
17847         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
17848
17849 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
17850
17851         * dwarf2out.c (output_compilation_unit_header): For
17852         -gdwarf-4 use version 4 instead of version 3.
17853         (output_line_info): For version 4 and above emit additional
17854         maximum ops per insn header field.
17855         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
17856
17857         * dwarf2out.c (is_c_family, is_java): Remove.
17858         (lower_bound_default): New function.
17859         (add_bound_info, gen_descr_array_type_die): Use it.
17860
17861 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
17862
17863         PR debug/43325
17864         * dwarf2out.c (gen_variable_die): Allow debug info for variable
17865         re-declaration when it happens in a function.
17866
17867 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
17868
17869         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
17870         (cgraph_remove_function_insertion_hook): Same.
17871         (cgraph_call_function_insertion_hooks): Same.
17872
17873 2010-04-01  Richard Guenther  <rguenther@suse.de>
17874
17875         PR middle-end/43614
17876         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
17877         and TREE_THIS_VOLATILE.
17878         (copy_ref_info): Likewise.
17879         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
17880         * tree.c (build6_stat): Ignore side-effects of all but arg5
17881         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
17882         TARGET_MEM_REF.
17883
17884 2010-04-01  Richard Guenther  <rguenther@suse.de>
17885
17886         PR tree-optimization/43607
17887         * ipa-type-escape.c (check_call): Do not access non-existing
17888         arguments.
17889
17890 2010-04-01  Richard Guenther  <rguenther@suse.de>
17891
17892         PR middle-end/43602
17893         Revert
17894         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
17895                     Jack Howarth  <howarth@bromo.med.uc.edu>
17896
17897         * tree-profile.c (tree_init_ic_make_global_vars): Make static
17898         variables TLS.
17899
17900 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17901
17902         * doc/install.texi (Prerequisites): Document libelf usability on
17903         IRIX 5/6 and Solaris 2.
17904         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
17905         Update GNU as, GNU ld requirements.
17906         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
17907         Document Sun Studio compiler download.
17908         Update and simplify as, ld recommendations.
17909         (Specific, *-*-solaris2.7): Note obsoletion, removal.
17910
17911 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17912
17913         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
17914         with_tune_32 to pentium4.
17915
17916 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
17917
17918         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
17919
17920 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17921
17922         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
17923         obsoletion, removal.
17924         Update IDO URL.
17925         Document GNU as requirement.
17926         Update configure requirements.
17927         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
17928         Recomment IRIX 6.5.18+.
17929         Document IDF/IDL requirement.
17930         Document GNU as requirement.
17931         Document GNU ld bootstrap failure.
17932         Remove freeware.sgi.com reference.
17933
17934 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17935
17936         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
17937         UNIX V4.0, V5.0 obsoletion, removal.
17938         Remove --with-gc=simple reference.
17939         Update VM requirements during bootstrap.
17940         Remove -oldas bootstrap description.
17941         Update binutils reference.
17942         Remove comparison failure note.
17943
17944 2010-03-31  Richard Guenther  <rguenther@suse.de>
17945             Zdenek Dvorak  <ook@ucw.cz>
17946             Sebastian Pop  <sebastian.pop@amd.com>
17947
17948         PR middle-end/43464
17949         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
17950         with multiple arguments.
17951         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
17952
17953 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
17954
17955         * graphite-dependences.c (print_pddr): Call print_pdr with an
17956         extra argument.
17957         * graphite-poly.c (debug_pdr): Add an extra argument for the
17958         verbosity level.
17959         (print_pdr): Same.
17960         (print_pbb_domain): Same.
17961         (print_pbb): Same.
17962         (print_scop_context): Same.
17963         (print_scop): Same.
17964         (print_cloog): Same.
17965         (debug_pbb_domain): Same.
17966         (debug_pbb): Same.
17967         (print_pdrs): Same.
17968         (debug_pdrs): Same.
17969         (debug_scop_context): Same.
17970         (debug_scop): Same.
17971         (debug_cloog): Same.
17972         (print_scop_params): Same.
17973         (debug_scop_params): Same.
17974         (print_iteration_domain): Same.
17975         (print_iteration_domains): Same.
17976         (debug_iteration_domain): Same.
17977         (debug_iteration_domains): Same.
17978         (print_scattering_function): Same.
17979         (print_scattering_functions): Same.
17980         (debug_scattering_function): Same.
17981         (debug_scattering_functions): Same.
17982         * graphite-poly.h (debug_pdr): Update declaration.
17983         (print_pdr): Same.
17984         (print_pbb_domain): Same.
17985         (print_pbb): Same.
17986         (print_scop_context): Same.
17987         (print_scop): Same.
17988         (print_cloog): Same.
17989         (debug_pbb_domain): Same.
17990         (debug_pbb): Same.
17991         (print_pdrs): Same.
17992         (debug_pdrs): Same.
17993         (debug_scop_context): Same.
17994         (debug_scop): Same.
17995         (debug_cloog): Same.
17996         (print_scop_params): Same.
17997         (debug_scop_params): Same.
17998         (print_iteration_domain): Same.
17999         (print_iteration_domains): Same.
18000         (debug_iteration_domain): Same.
18001         (debug_iteration_domains): Same.
18002         (print_scattering_function): Same.
18003         (print_scattering_functions): Same.
18004         (debug_scattering_function): Same.
18005         (debug_scattering_functions): Same.
18006
18007 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18008
18009         * graphite-poly.c (print_scattering_function_1): New.
18010         (print_scattering_function): Call it.
18011         (print_scop_params): Remove spaces at the end of lines.
18012         (print_cloog): New.
18013         (debug_cloog): New.
18014         * graphite-poly.h (print_cloog): Declared.
18015         (debug_cloog): Declared.
18016
18017 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18018
18019         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18020         in loop->header.
18021         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18022         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18023         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18024         to switch between adding the IV bump in loop->latch or in loop->header.
18025
18026 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
18027
18028         * graphite-poly.c (print_scattering_function): Pretty print following
18029         the scoplib format.
18030         (print_pdr): Same.
18031         (print_pbb_domain): Same.
18032         (dump_gbb_cases): Same.
18033         (dump_gbb_conditions): Same.
18034         (print_pdrs): Same.
18035         (print_pbb): Same.
18036         (print_scop_params): Same.
18037         (print_scop_context): Same.
18038         (print_scop): Same.
18039         (print_pbb_body): New.
18040         (lst_indent_to): New.
18041         (print_lst): Start new lines with a #.
18042         * graphite-poly.h (pbb_bb): New.
18043         (pbb_index): Use pbb_bb.
18044         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18045         disjuncts.
18046         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18047
18048 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18049
18050         * dwarf2out.c (size_of_die): For -gdwarf-4 use
18051         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18052         and 0 instead of 1 for dw_val_class_flag.
18053         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18054         dw_val_class_range_list, dw_val_class_loc_list,
18055         dw_val_class_lineptr and dw_val_class_macptr, use
18056         DW_FORM_flag_present for dw_val_class_flag and
18057         DW_FORM_exprloc for dw_val_class_loc.
18058         (output_die): For -gdwarf-4 print dw_val_class_loc
18059         size as uleb128 instead of 1 or 2 bytes and don't print
18060         anything for dw_val_class_flag.
18061
18062         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18063         instead of cselib_lookup following by tweaking locs->setting_insn.
18064
18065         PR bootstrap/43596
18066         * cselib.c (cselib_process_insn): Clear cselib_current_insn
18067         even before returning from label, setjmp call or volatile asm
18068         handling.
18069
18070 2010-03-31  Richard Guenther  <rguenther@suse.de>
18071
18072         PR middle-end/43600
18073         * cgraphunit.c (cgraph_output_in_order): Do not allocate
18074         temporary data on stack.
18075
18076 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18077
18078         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18079         (PUSHSECTION_ASM_OP): Remove.
18080         (POPSECTION_ASM_OP): Remove.
18081         (PUSHSECTION_FORMAT): Remove.
18082         * config/sol2.h (PUSHSECTION_FORMAT): Define.
18083         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18084         * config/sol2.c (solaris_output_init_fini): Use it.
18085
18086 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18087
18088         PR 43574
18089         * opt-functions.awk (var_type_struct): Use signed char type
18090         for simple variables.
18091
18092 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18093
18094         * config/sol2.c: Include output.h.
18095         (solaris_assemble_visibility): New function.
18096         * config/t-sol2 (sol2.o): Add output.h dependency.
18097         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18098         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18099         Redefine.
18100
18101 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
18102
18103         PR target/43580
18104         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18105         V2SImode or XFmode on PRE_DEC.
18106
18107         PR debug/43557
18108         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18109         BLKmode.
18110
18111 2010-03-31  Jie Zhang  <jie@codesourcery.com>
18112
18113         PR 43562
18114         * reload.h (caller_save_initialized_p): Declare.
18115         * toplev.c (backend_init_target): Don't call
18116         init_caller_save but set caller_save_initialized_p to false.
18117         * caller-save.c (caller_save_initialized_p): Define.
18118         (init_caller_save): Check caller_save_initialized_p.
18119         * ira.c (ira): Call init_caller_save if flag_caller_saves.
18120
18121 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18122
18123         PR target/39048
18124         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18125         and soft-fp/t-softfp to tmake_file.
18126         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18127         (LIBGCC2_TF_CEXT): Define.
18128         (TF_SIZE): Define.
18129
18130 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
18131
18132         PR debug/42977
18133         * cselib.c (n_useless_values): Document handling of debug locs.
18134         (n_useless_debug_values, n_debug_values): New variables.
18135         (new_elt_loc_list): Don't add to debug values, keep count.
18136         (promote_debug_loc): New.
18137         (cselib_reset_table): Zero new variables.
18138         (entry_and_rtx_equal_p): Promote debug locs.
18139         (discard_useless_locs): Increment n_useless_debug_values for
18140         debug values.
18141         (remove_useless_values): Adjust n_useless_values and n_debug_values
18142         with n_useless_debug_values.
18143         (add_mem_for_addr): Promote debug locs.
18144         (cselib_lookup_mem): Likewise.
18145         (cselib_lookup_addr): Renamed to...
18146         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
18147         (cselib_log_lookup): ... this.  Turn into...
18148         (cselib_lookup_addr): ... new wrapper.
18149         (cselib_lookup_from_insn): New.
18150         (cselib_invalidate_regno): Increment n_useless_debug_values for
18151         debug values.
18152         (cselib_invalidate_mem): Likewise.
18153         (cselib_process_insn): Take n_deleted and n_debug_values into
18154         account to guard remove_useless_value call.
18155         (cselib_finish): Zero n_useless_debug_values.
18156         * cselib.h (cselib_lookup_from_insn): Declare.
18157         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18158         (sched_analyze_2): Likewise.
18159
18160 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
18161
18162         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18163         functions.
18164         (adjust_mems): Replace narrowing SUBREG of expression containing
18165         just PLUS, MINUS, MULT and ASHIFT of registers and constants
18166         with operations in the narrower mode.
18167
18168         PR debug/43593
18169         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18170         regs_invalidated_by_call instead all call_used_reg_set registers.
18171
18172 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
18173
18174         PR middle-end/43430
18175         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18176         pointer comparisons with types_compatible_p.
18177         * tree-vect-stmts.c (vectorizable_call): Same.
18178         (vectorizable_condition): Same.
18179
18180 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18181
18182         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18183         stack check if the mask would be zero.
18184
18185 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
18186             Jack Howarth  <howarth@bromo.med.uc.edu>
18187
18188         * tree-profile.c (tree_init_ic_make_global_vars): Make static
18189         variables TLS.
18190
18191 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
18192
18193         PR other/25232
18194         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
18195         and __unordtf2.
18196         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18197         Include ___unordxf2 and ___unordtf2.
18198         * config/i386/libgcc-glibc.ver: Do not define inheritance from
18199         GCC_4.4.0 here.
18200
18201 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
18202
18203         * config/lm32/t-lm32: New file.
18204         * config.gcc: Use the above file when targetting lm32.
18205
18206 2010-03-28  Duncan Sands  <baldrick@free.fr>
18207
18208         * Makefile.in (PLUGIN_HEADERS): Add except.h.
18209
18210 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18211
18212         PR middle-end/43431
18213         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18214         Improve vectorization cost model diagnostic.
18215
18216 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
18217
18218         PR middle-end/43436
18219         * tree-vect-data-refs.c (vect_analyze_data_refs): When
18220         compute_data_dependences_for_loop returns false, early exit
18221         and output an extra diagnostic for the failed data reference
18222         analysis.
18223
18224 2010-03-29  Richard Guenther  <rguenther@suse.de>
18225
18226         PR tree-optimization/43560
18227         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18228         (can_sm_ref_p): Treat stores to readonly locations as trapping.
18229
18230 2010-03-29  Jie Zhang  <jie@codesourcery.com>
18231
18232         PR 43564
18233         * toplev.c (process_options): Set optimization_default_node
18234         and optimization_current_node.
18235         * opts.c (decode_options): Don't set optimization_default_node
18236         and optimization_current_node.
18237
18238 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
18239
18240         * config/rtems.h: Abandon -qrtems_debug.
18241
18242 2010-03-28  Jan Hubicka  <jh@suse.cz>
18243
18244         PR tree-optimization/43505
18245         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18246         map should not be copied.
18247
18248 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18249
18250         PR middle-end/41674
18251         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18252         cdtors, set DECL_PRESERVE_P.
18253         * ipa.c (cgraph_externally_visible_p): Return true if declaration
18254         should be preseved.
18255
18256 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
18257
18258         PR tree-optimization/43528
18259         * stor-layout.c (place_field): Check that constant fits into
18260         unsigned HWI when skipping calculation of MS bitfield layout.
18261
18262 2010-03-27  Jan Hubicka  <jh@suse.cz>
18263
18264         PR middle-end/43391
18265         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18266         notice_global_symbol work.
18267
18268 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
18269
18270         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18271         instead of dwarf2out_decl.
18272         (struct var_loc_node): Remove section_label field.
18273         (dwarf2out_function_decl): New function.
18274         (dwarf2out_var_location): Don't set section_label field.
18275         (dwarf2out_begin_function): Don't empty decl_loc_table here.
18276
18277 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
18278
18279         PR tree-optimization/43544
18280         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18281         First argument for builtin vectorized function hook is now a
18282         tree to be able to distinguish between machine specific and
18283         standard builtins.
18284         * targhooks.c (default_builtin_vectorized_function): Ditto.
18285         * targhooks.h (default_builtin_vectorized_function): Ditto.
18286         * target.h (struct gcc_target): Ditto.
18287         * tree-vect-stmts.c (vectorizable_function): Ditto.
18288         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18289         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18290         Ditto.
18291
18292 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
18293
18294         PR c/43381
18295         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18296         nested binding iff it is a FUNCTION_DECL.
18297         (store_parm_decls_newstyle): Pass nested=true to bind for
18298         FUNCTION_DECLs amongst parameters.
18299
18300 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18301
18302         * var-tracking.c (vt_expand_loc_callback): Don't run
18303         cselib_expand_value_rtx_cb in dummy mode if
18304         cselib_dummy_expand_value_rtx_cb returned false.
18305
18306         * var-tracking.c (emit_note_insn_var_location): For one part
18307         notes with offset 0, don't add EXPR_LIST around the location.
18308         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18309         add_location_or_const_value_attribute): Adjust for that change.
18310
18311         PR debug/43540
18312         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
18313         into first operand and location into second.
18314         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
18315         dw_cfi_oprnd_loc for DW_CFA_expression.
18316         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
18317         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
18318         assume first argument is regnum and second argument is location.
18319
18320 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18321
18322         PR target/42113
18323         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
18324         of scratch register to DImode.  Split to DImode comparison operator.
18325         Use SImode subreg of scratch register in the multiplication.
18326         (*cmp_sadd_sidi): Ditto.
18327         (*cmp_ssub_si): Ditto.
18328         (*cmp_ssub_sidi): Ditto.
18329
18330 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
18331
18332         PR target/43524
18333         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
18334         Remove invalid assert and wrong comment.
18335
18336 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
18337
18338         PR debug/43516
18339         * flags.h (final_insns_dump_p): New extern.
18340         * final.c (final_insns_dump_p): New variable.
18341         (rest_of_clean_state): Set it before -fdump-final-insns=
18342         dumping, clear afterwards.
18343         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
18344         MEM_ALIAS_SET on MEMs.
18345
18346 2010-03-26  David S. Miller  <davem@davemloft.net>
18347
18348         * configure.ac: Fix sparc GOTDATA_OP bug check.
18349         * configure: Rebuild.
18350
18351 2010-03-26  Alan Modra  <amodra@gmail.com>
18352
18353         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
18354
18355 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18356
18357         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
18358         TLS_SECTION_ASM_FLAG.
18359
18360 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
18361
18362         PR bootstrap/43511
18363         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
18364         Clear first_function_block_is_cold.
18365
18366         PR c/43385
18367         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
18368         argument if the argument is truth_value_p.
18369
18370 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
18371
18372         * config/rs6000/constraints.md: Update copyright year for my changes.
18373
18374         PR target/43484
18375         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
18376         used in reg+reg addressing, swap registers.
18377
18378 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
18379
18380         PR debug/43293
18381         * target.h (struct gcc_target): Add code_end hook.
18382         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
18383         if not yet defined.
18384         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
18385         * toplev.c (compile_file): Call targetm.asm_out.code_end
18386         hook before unwind info/debug info output.
18387         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
18388         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
18389         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
18390         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
18391         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
18392         * config/i386/i386.c (ix86_file_end): Renamed to...
18393         (ix86_code_end): ... this.  Make static.  Don't call
18394         file_end_indicate_exec_stack.  Emit unwind info using
18395         final_start_function/final_end_function.
18396         (darwin_x86_file_end): Remove.
18397         (TARGET_ASM_CODE_END): Define.
18398         * config/i386/i386.h (TARGET_ASM_FILE_END,
18399         NEED_INDICATE_EXEC_STACK): Don't define.
18400         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
18401         (TARGET_ASM_FILE_END): Define to darwin_file_end.
18402         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
18403         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
18404
18405         PR target/43498
18406         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
18407         at the beginning and final_end_function at the end.
18408         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
18409
18410 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18411
18412         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
18413         and Sun as TLS syntax.
18414         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
18415         * configure: Regenerate.
18416         * config.in: Regenerate.
18417         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
18418         (default_elf_asm_named_section): Use it.
18419         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
18420         (i386_output_dwarf_dtprel): Likewise.
18421         (output_addr_const_extra): Likewise.
18422         (output_pic_addr_const): Lowercase @GOTTPOFF.
18423         (output_addr_const_extra): Likewise.
18424         (output_pic_addr_const): Lowercase @GOTNTPOFF.
18425         (output_addr_const_extra): Likewise.
18426         (output_pic_addr_const): Lowercase @INDNTPOFF.
18427         (output_addr_const_extra): Likewise.
18428         (output_pic_addr_const): Lowercase @NTPOFF.
18429         (output_addr_const_extra): Likewise.
18430         (output_pic_addr_const): Lowercase @TPOFF.
18431         (output_addr_const_extra): Likewise.
18432         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
18433         (*tls_global_dynamic_64): Likewise.
18434         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
18435         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
18436
18437         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
18438         (ASM_OUTPUT_TLS_COMMON): Use it.
18439         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
18440
18441         PR target/38118
18442         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
18443         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
18444         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
18445         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
18446         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
18447         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
18448
18449 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18450
18451         * config/i386/i386.c (override_options): Don't accept
18452         -mtls-dialect=sun any longer.
18453         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
18454         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
18455         (*tls_local_dynamic_base_32_sun): Likewise.
18456         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
18457
18458 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
18459
18460         PR debug/43508
18461         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
18462         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
18463
18464         PR debug/43479
18465         * ira.c (adjust_cleared_regs): New function.
18466         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
18467
18468         PR debug/19192
18469         PR debug/43479
18470         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
18471         from gimple_block.
18472         * expr.c (expand_expr_real): Restore previous
18473         curr_insn_source_location and curr_insn_block after
18474         expand_expr_real_1 call.
18475         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
18476         instead of expand_expr_real_1.
18477
18478 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
18479
18480         PR rtl-optimization/43413
18481         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
18482         hard regs too.
18483
18484 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
18485
18486         PR target/43348
18487         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
18488         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
18489
18490 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
18491
18492         * config/i386/i386.c (ix86_target_string): Add -mfma.
18493         Fix a typo in comment.
18494
18495 2010-03-22  Mike Stump  <mikestump@comcast.net>
18496
18497         PR target/23071
18498         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
18499         Don't overly align based upon packed packed fields.
18500
18501 2010-03-22  Jason Merrill  <jason@redhat.com>
18502
18503         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
18504         Use () rather than [], and move before the element type.
18505
18506 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18507
18508         * doc/configfiles.texi (Configuration Files): Removed
18509         fixinc/Makefile*, intl/Makefile.*.
18510         * doc/makefile.texi: Fixed markup. Abstract from version
18511         control system used.
18512         (Makefile): Removed obsolete gcc/java/parse.y example.
18513         * doc/sourcebuild.texi: Likewise.
18514         (Top Level): Added config, gnattools, libdecnumber, libgcc,
18515         libgomp, libssp.  Removed fastjar.
18516         (Miscellaneous Docs): Clarify location.
18517         Added COPYING3, COPYING3.LIB.
18518         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
18519
18520 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18521
18522         PR target/38085
18523         * config/i386/i386.c (x86_function_profiler)
18524         [!NO_PROFILE_COUNTERS]: Fix typo.
18525         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
18526         instead of callq.
18527
18528 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
18529             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18530
18531         * doc/sourcebuild.texi (Test Directives): Split into six
18532         subsections, with most of the current text in new subsections
18533         Directives, Selectors, and Final Actions.
18534         (Directives): Split list of test directives into multiple
18535         subsubsections.
18536         (Selectors): Describe use and syntax of selectors.
18537         (Effective-Target Keywords): Describe all existing keywords.
18538         (Add Options): Describe features for dg-add-options.
18539         (Require Support): Describe variants of dg-require-support.
18540         (Final Actions): Describe commands to use in dg-final.
18541
18542 2010-03-22  Michael Matz  <matz@suse.de>
18543
18544         PR middle-end/43475
18545         * recog.c (validate_replace_rtx_group): Replace also in
18546         REG_EQUAL and REG_EQUIV notes.
18547
18548 2010-03-22  Richard Guenther  <rguenther@suse.de>
18549
18550         PR tree-optimization/43390
18551         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
18552         sure vector extracts are type correct.
18553
18554 2010-03-22  Richard Guenther  <rguenther@suse.de>
18555
18556         PR middle-end/40106
18557         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
18558         x * sqrt (x) even when optimizing for size if the target
18559         has native support for sqrt.
18560
18561 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
18562
18563         * varasm.c (make_decl_rtl_for_debug): Also clear
18564         flag_mudflap for the duration of make_decl_rtl call.
18565
18566         PR debug/43443
18567         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
18568         locs from preserved VALUEs.
18569
18570 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18571
18572         PR middle-end/42718
18573         * pa.md (movmemsi): Set align to one if zero.
18574         (movmemdi): Likewise.
18575
18576 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
18577
18578         PR target/42321
18579         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
18580         with their corresponding prologue pushes.
18581
18582 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
18583
18584         PR target/43156
18585         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
18586         at the begining or end.
18587         (spu_expand_epilogue): Likewise.
18588
18589 2010-03-20  Richard Guenther  <rguenther@suse.de>
18590
18591         PR rtl-optimization/43438
18592         * combine.c (make_extraction): Properly zero-/sign-extend an
18593         extraction of the low part of a CONST_INT.  Also handle
18594         CONST_DOUBLE.
18595
18596 2010-03-19  Mike Stump  <mikestump@comcast.net>
18597
18598         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
18599         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
18600         (override_options): Use SUBTARGET32_DEFAULT_CPU.
18601
18602 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
18603
18604         PR c/43211
18605         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
18606         an error.
18607
18608 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
18609
18610         PR rtl-optimization/42258
18611         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
18612         use that may match DEF.
18613
18614         PR target/40697
18615         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
18616         the cost of loading the constant rather than assuming
18617         COSTS_N_INSNS (1).
18618         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
18619         outer code is AND, do the same tests as the andsi3 expander and
18620         return COSTS_N_INSNS (1) if and is cheap.
18621
18622         * optabs.c (avoid_expensive_constant): Fix formatting.
18623
18624 2010-03-19  Michael Matz  <matz@suse.de>
18625
18626         PR c++/43116
18627         * attribs.c (decl_attributes): When rebuilding a function pointer
18628         type use the same qualifiers as the original pointer type.
18629
18630 2010-03-19  Martin Jambor  <mjambor@suse.cz>
18631
18632         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
18633         and is_gimple_ip_invariant_address.
18634
18635 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18636
18637         Revert
18638         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18639
18640         * config/arm/arm.c (arm_override_options): Turn off
18641         flag_dwarf2_cfi_asm for AAPCS variants.
18642
18643 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18644
18645         PR target/43399
18646         * config/arm/arm.c (emit_multi_reg_push): Update comments.
18647         Use PRE_MODIFY instead of PRE_DEC.
18648         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
18649         (vfp_emit_fstmd): Likewise.
18650
18651 2010-03-19  Michael Matz  <matz@suse.de>
18652
18653         PR target/43305
18654         * builtins.c (expand_builtin_interclass_mathfn,
18655         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
18656         if that fails.
18657
18658 2010-03-19  Richard Guenther  <rguenther@suse.de>
18659
18660         PR tree-optimization/43415
18661         * tree-ssa-pre.c (phi_translate): Split out worker to ...
18662         (phi_translate_1): ... this.
18663         (phi_translate): Move all caching here.  Cache all NARY
18664         and REFERENCE translations.
18665
18666 2010-03-19  David S. Miller  <davem@davemloft.net>
18667
18668         With help from Eric Botcazou.
18669         * config/sparc/sparc.c: Include dwarf2out.h.
18670         (emit_pic_helper): Delete.
18671         (pic_helper_symbol_name): Delete.
18672         (pic_helper_emitted_p): Delete.
18673         (pic_helper_needed): New.
18674         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
18675         (get_pc_thunk_name): New.
18676         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
18677         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
18678         Set pic_helper_needed to true.  Don't call emit_pic_helper.
18679         (sparc_expand_prologue): Update load_pic_register call.
18680         (sparc_output_mi_thunk): Likewise.
18681         (sparc_file_end): Emit a hidden comdat symbol for the PIC
18682         thunk if possible.  Output CFI information as needed.
18683
18684 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
18685             Jack Howarth  <howarth@bromo.med.uc.edu>
18686
18687         PR target/36399
18688         * config/i386/i386.h: Fix ABI on darwin x86-32.
18689
18690 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
18691
18692         * tree.h: Declare make_decl_rtl_for_debug.
18693         * varasm.c (make_decl_rtl_for_debug): New.
18694         * dwarf2out.c (rtl_for_decl_location): Call it.
18695         * cfgexpand.c (expand_debug_expr): Call it.
18696
18697 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
18698
18699         PR bootstrap/43399
18700         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
18701         mem_mode.
18702
18703         PR bootstrap/43403
18704         * var-tracking.c (vt_init_cfa_base): Do nothing if
18705         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
18706
18707 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
18708
18709         PR debug/42873
18710         * var-tracking.c (canonicalize_vars_star): New.
18711         (dataflow_post_merge_adjust): Use it.
18712
18713 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
18714
18715         PR debug/43058
18716         * var-tracking.c (non_suitable_const): New function.
18717         (add_uses): For DEBUG_INSNs with constants, don't record any
18718         value, instead just the constant value itself.
18719         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
18720         is not VAR_LOC_UNKNOWN_P, set var to the constant.
18721         (emit_notes_in_bb): Likewise.
18722         (emit_note_insn_var_location): For onepart variables if
18723         cur_loc is a VOIDmode constant, use DECL_MODE.
18724
18725 2010-03-18  Martin Jambor  <mjambor@suse.cz>
18726
18727         PR middle-end/42450
18728         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
18729         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
18730         all non-clones.  Moved call redirection...
18731         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
18732         (cgraph_materialize_all_clones): Dispose of all
18733         combined_args_to_skip bitmaps.
18734         (verify_cgraph_node): Do not check for edges pointing to wrong
18735         nodes in inline clones.
18736         * tree-inline.c (copy_bb): Call
18737         cgraph_redirect_edge_call_stmt_to_callee.
18738         * ipa.c (cgraph_remove_unreachable_nodes): Call
18739         cgraph_node_remove_callees even when there are used clones.
18740
18741 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
18742
18743         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
18744
18745 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
18746
18747         PR target/43383
18748         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
18749         for 32bit.
18750
18751 2010-03-18  Michael Matz  <matz@suse.de>
18752
18753         PR middle-end/43419
18754         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
18755         into sqrt(x) if we need to preserve signed zeros.
18756
18757 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
18758             Eric Botcazou  <ebotcazou@adacore.com>
18759
18760         PR rtl-optimization/43360
18761         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
18762         note if we don't know its invariant status.
18763
18764 2010-03-18  Michael Matz  <matz@suse.de>
18765
18766         PR tree-optimization/43402
18767         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
18768         PHI chains of ssa names registered for update.
18769
18770 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
18771
18772         PR target/42427
18773         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
18774         non-offsettable and pre_modify update addressing.
18775         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
18776         and "2" alternatives "#".
18777         (*movdd_softfloat32): Make all alternatives "#";
18778         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
18779         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
18780         (*movdf_softfloat32): Make all alternatives "#";
18781         (movdi): Use the new DIFD mode iterator to create a common splitter
18782         for movdi, movdf and movdd patterns.
18783
18784 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
18785
18786         * common.opt (dumpdir): Remove redundant tab.
18787
18788 2010-03-17  Martin Jambor  <mjambor@suse.cz>
18789
18790         PR tree-optimization/43347
18791         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
18792         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
18793
18794 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
18795
18796         PR rtl-optimization/42216
18797         * regrename.c (create_new_chain): New function, broken out from...
18798         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
18799         appending a use to an empty chain.
18800         (build_def_use): Remove previous changes that convert OP_INOUT to
18801         OP_OUT operands; instead detect the case where an OP_INOUT operand
18802         uses a previously untracked register and create an empty chain for it.
18803
18804 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18805
18806         * doc/extend.texi (Function Attributes): Rewrite unfinished
18807         sentence in ms_abi documentation.
18808
18809 2010-03-17  Alan Modra  <amodra@gmail.com>
18810
18811         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
18812         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
18813         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
18814         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
18815
18816 2010-03-16  Richard Henderson  <rth@redhat.com>
18817
18818         PR middle-end/43365
18819         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
18820         (lower_try_finally): Save and restore eh_seq around the expansion
18821         of the try-finally.
18822
18823 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
18824
18825         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
18826         statements before splitting block.
18827
18828 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18829
18830         * doc/sourcebuild.texi (Testsuites): Fix markup.
18831         Use pathnames relative to gcc/testsuite.
18832         (Test Directives): Move description of how timeout is determined.
18833         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
18834         (C Tests): Correct gcc.misc-tests directory.
18835         Framework tests now live in gcc.test-framework.
18836
18837 2010-03-16  Richard Guenther  <rguenther@suse.de>
18838
18839         PR middle-end/43379
18840         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
18841         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
18842
18843 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
18844             Alexandre Oliva  <aoliva@redhat.com>
18845
18846         PR tree-optimization/42917
18847         * lambda-code.c (remove_iv): Skip debug statements.
18848         (lambda_loopnest_to_gcc_loopnest): Likewise.
18849         (not_interesting_stmt): Debug statements are not interesting.
18850
18851 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
18852
18853         PR debug/43051
18854         PR debug/43092
18855         * cselib.c (cselib_preserve_constants,
18856         cfa_base_preserved_val): New static variables.
18857         (preserve_only_constants): New function.
18858         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
18859         clear its REG_VALUES.  If cselib_preserve_constants, don't
18860         empty the whole hash table, but preserve there VALUEs with constants,
18861         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
18862         (cselib_preserve_cfa_base_value): New function.
18863         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
18864         (cselib_init): Change argument to int bitfield.  Set
18865         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
18866         is in it.
18867         (cselib_finish): Clear cselib_preserve_constants and
18868         cfa_base_preserved_val.
18869         * cselib.h (enum cselib_record_what): New enum.
18870         (cselib_init): Change argument to int.
18871         (cselib_preserve_cfa_base_value): New prototype.
18872         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
18873         * dse.c (dse_step1): Likewise.
18874         * cfgcleanup.c (thread_jump): Likewise.
18875         * sched-deps.c (sched_analyze): Likewise.
18876         * gcse.c (local_cprop_pass): Likewise.
18877         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
18878         If FN is non-NULL, call the callback always and whenever it returns
18879         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
18880         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
18881         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
18882         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
18883         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
18884         * var-tracking.c: Include recog.h.
18885         (bb_stack_adjust_offset): Remove.
18886         (vt_stack_adjustments): Don't call it, instead just gather the
18887         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
18888         (adjust_stack_reference): Remove.
18889         (compute_cfa_pointer): New function.
18890         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
18891         (struct adjust_mem_data): New type.
18892         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
18893         functions.
18894         (get_address_mode): New function.
18895         (replace_expr_with_values): Use it.
18896         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
18897         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
18898         (adjust_sets): Remove.
18899         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
18900         Use get_address_mode.
18901         (get_adjusted_src): Remove.
18902         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
18903         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
18904         (add_with_sets): Don't call adjust_sets.
18905         (fp_setter, vt_init_cfa_base): New functions.
18906         (vt_initialize): Change return type to bool.  Move most of pool etc.
18907         initialization to the beginning of the function from end.  Pass
18908         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
18909         If !frame_pointer_needed, call vt_stack_adjustment before mos
18910         vector is filled, call vt_init_cfa_base if argp/framep has been
18911         eliminated to sp.  If frame_pointer_needed and argp/framep has
18912         been eliminated to hard frame pointer, set
18913         hard_frame_pointer_adjustment and call vt_init_cfa_base after
18914         encountering fp setter in the prologue.  For MO_ADJUST, call
18915         log_op_type before pusing the op into mos vector, not afterwards.
18916         Call adjust_insn before cselib_process_insn/add_with_sets,
18917         call cancel_changes (0) afterwards.
18918         (variable_tracking_main_1): Adjust for vt_initialize calling
18919         vt_stack_adjustments and returning whether it succeeded or not.
18920
18921 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
18922
18923         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
18924         debug statements.
18925
18926 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
18927
18928         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
18929         has been set.
18930         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
18931         drap_reg has not been set.
18932
18933 2010-03-15  Michael Matz  <matz@suse.de>
18934
18935         PR middle-end/43300
18936         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
18937         use it to expand block copies.
18938         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
18939         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
18940         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
18941
18942 2010-03-15  Richard Guenther  <rguenther@suse.de>
18943
18944         PR tree-optimization/43367
18945         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
18946         elimination check.
18947
18948 2010-03-15  Richard Guenther  <rguenther@suse.de>
18949
18950         PR tree-optimization/43317
18951         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
18952
18953 2010-03-15  Martin Jambor  <mjambor@suse.cz>
18954
18955         PR tree-optimization/43141
18956         * tree-sra.c (create_abstract_origin): New function.
18957         (modify_function): Call create_abstract_origin.
18958
18959 2010-03-15  Chris Demetriou  <cgd@google.com>
18960
18961         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
18962         wasn't copied.
18963
18964 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18965
18966         PR middle-end/43354
18967         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
18968         call insert_out_of_ssa_copy for default definitions.
18969
18970 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18971
18972         * graphite-clast-to-gimple.c (my_long_long): Defined.
18973         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
18974         * graphite-sese-to-poly.c (my_long_long): Defined.
18975         (scop_ivs_can_be_represented): Use it.
18976
18977 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18978
18979         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
18980         graphite-max-bbs-per-function, and loop-block-tile-size.
18981         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
18982         with "maximum".
18983         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
18984
18985 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18986
18987         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
18988         forward declaration.
18989         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
18990         (add_upper_bounds_from_estimated_nit): New.
18991         (build_loop_iteration_domains): Use it.
18992
18993 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18994
18995         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
18996
18997 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18998
18999         PR middle-end/43306
19000         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19001         should be an INTEGER_CST.  Also handle CASE_CONVERT.
19002
19003 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19004
19005         * graphite.c (graphite_initialize): To bound the number of bbs per
19006         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19007         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19008         * doc/invoke.texi: Document it.
19009
19010 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19011
19012         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19013         * graphite-sese-to-poly.h (build_poly_scop): Same.
19014
19015 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
19016
19017         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19018         the number of parameters in the scop.  Use as an upper bound
19019         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19020         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19021         * doc/invoke.texi: Document it.
19022
19023 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
19024
19025         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19026         * doc/c-tree.texi: Remove.
19027         * doc/generic.texi: Merge c-tree.texi here.
19028         * doc/gccint.texi (Trees): Remove menu entry.
19029         (c-tree.texi): Remove @include.
19030         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19031         * doc/languages.texi (Reading RTL): Ditto.
19032
19033 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
19034
19035         PR target/42869
19036         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19037
19038 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
19039
19040         PR middle-end/42431
19041         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19042         code added to work around reload clobbering CONST insns.
19043
19044 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
19045
19046         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19047         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19048         (cselib_preserve_only_values): Remove retain argument, don't
19049         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19050         * cselib.h (cselib_preserve_only_values): Remove retain argument.
19051         * var-tracking.c (micro_operation): Move insn field before union.
19052         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19053         (struct variable_tracking_info_def): Remove n_mos field, change
19054         mos into a vector of micro_operations.
19055         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19056         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19057         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19058         changing into a vector.
19059         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
19060         come before all other uops generated by add_stores.
19061         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19062         argument removal.
19063         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
19064         a vector.  Run just one pass over the bbs instead of separate counting
19065         and computation phase.
19066         (vt_finalize): Free VTI (bb)->mos vector instead of array.
19067
19068         PR debug/43329
19069         * tree-inline.c (remap_decls): Put old_var rather than origin_var
19070         into *nonlocalized_list vector.
19071         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19072         even if origin is non-NULL.
19073         (gen_variable_die): Likewise.
19074         (process_scope_var): Don't change origin.
19075         (gen_decl_die): Likewise.
19076         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19077         before adding new edges instead of after it, fix moving over
19078         debug stmts.
19079
19080 2010-03-11  David S. Miller  <davem@davemloft.net>
19081
19082         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19083         of four.
19084         * configure: Rebuild.
19085
19086 2010-03-11  Martin Jambor  <mjambor@suse.cz>
19087
19088         PR tree-optimization/43257
19089         * tree.c (assign_assembler_name_if_neeeded): New function.
19090         (free_lang_data_in_cgraph): Assembler name assignment moved to the
19091         above new function.
19092         * tree.h (assign_assembler_name_if_neeeded): Declare.
19093         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19094         the function if needed.
19095
19096 2010-03-11  Chris Demetriou  <cgd@google.com>
19097
19098         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19099         include/stdint-gcc.h, and include/stdint.h world-readable.
19100
19101 2010-03-11  Richard Guenther  <rguenther@suse.de>
19102
19103         PR tree-optimization/43255
19104         * tree-vrp.c (process_assert_insertions_for): Do not insert
19105         asserts for trivial conditions.
19106
19107 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19108
19109         PR tree-optimization/43280
19110         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19111         generation.  Move calculation of size out of the if branch.
19112         (find_bswap): Modify compare number generation.
19113
19114 2010-03-11  Richard Guenther  <rguenther@suse.de>
19115
19116         PR lto/43200
19117         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19118         (input_gimple_stmt): Fixup handled component types during
19119         operand read.  Also fix up decls in ADDR_EXPRs.
19120
19121 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
19122
19123         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19124         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19125
19126 2010-03-10  Jan Hubicka  <jh@suse.cz>
19127
19128         PR c/43288
19129         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19130         * varasm.c (get_variable_section): Don't do that here...
19131         (make_decl_rtl): ... and here.
19132         (do_assemble_alias): Produce decl RTL.
19133         (assemble_alias): Likewise.
19134
19135 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19136
19137         PR debug/43290
19138         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19139         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19140         of fde->vdrap_reg.
19141         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19142         (based_loc_descr): Only express drap or vdrap regno based expressions
19143         using DW_OP_fbreg when not optimizing.
19144         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19145         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19146         REG_CFA_SET_VDRAP note.
19147
19148 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
19149
19150         PR tree-optimization/43236
19151         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19152         error in calculation of base address in reverse iteration case.
19153         (generate_builtin): Take number of latch executions if the statement
19154         is in the latch.
19155
19156 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
19157
19158         PR middle-end/42859
19159         * tree-eh.c: Include pointer-set.h.
19160         (lower_eh_dispatch): Filter out duplicate case labels and
19161         remove the unneeded edge when the label is unused.  Return
19162         true when some edges are removed.
19163         (execute_lower_eh_dispatch): When any lowering resulted in
19164         removing an edge, also delete unreachable blocks.
19165
19166 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
19167
19168         PR bootstrap/43287
19169         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19170         UNSPEC_MACHOPIC_OFFSET.
19171
19172 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
19173
19174         PR target/43294
19175         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19176         (m68k_delegitimize_address): New function.
19177
19178 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
19179
19180         PR debug/43299
19181         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19182
19183         PR debug/43299
19184         * var-tracking.c (adjust_sets): New function.
19185         (count_with_sets, add_with_sets): Use it.
19186         (get_adjusted_src): New inline function.
19187         (add_stores): Use it.
19188
19189         PR debug/43304
19190         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19191         call cselib_dummy_expand_value_rtx_cb instead of
19192         cselib_expand_value_rtx_cb.
19193
19194         PR debug/43293
19195         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19196         * config/i386/i386.c: Include debug.h and dwarf2out.h.
19197         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19198         and .cfi_endproc around the pic thunks.
19199         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19200         all queued unwind info register saves are saved before the call.
19201         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19202         considered as sp-=4 for unwind info and the pop as sp+=4 which
19203         also clobbers dest, but doesn't actually restore it.
19204
19205         PR debug/43290
19206         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19207         RTX_FRAME_RELATED_P.
19208
19209 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19210
19211         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19212         whitespaces in output template.
19213
19214 2010-03-09  Jie Zhang  <jie@codesourcery.com>
19215
19216         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19217         out array boundary.
19218
19219 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19220
19221         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19222         builtins.exp in a separate job.
19223
19224 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19225
19226         * graphite-sese-to-poly.c (add_param_constraints): Use
19227         lower_bound_in_type and upper_bound_in_type.
19228
19229 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19230
19231         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19232         instead of unsigned_type_node.
19233
19234 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19235             Reza Yazdani  <reza.yazdani@amd.com>
19236
19237         PR middle-end/43065
19238         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19239         on pointer type parameters.
19240
19241 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19242
19243         PR middle-end/42644
19244         PR middle-end/42130
19245         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19246         handle conversions from pointer to integers.
19247         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19248         induction variable, to be able to work with code generated by CLooG.
19249         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19250         (build_poly_scop): Bail out if we cannot codegen a loop.
19251
19252 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
19253
19254         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19255         code generation with gloog_error.
19256
19257 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19258
19259         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19260         Call fold_convert on all the returned values.
19261         (expand_scalar_variables_expr): Pass to
19262         expand_scalar_variables_ssa_name the type of the resulting expression.
19263
19264 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19265
19266         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19267         ppl_min_for_le_pointset.
19268         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19269         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19270
19271 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19272
19273         * graphite-dependences.c (map_into_dep_poly): Removed.
19274         (dependence_polyhedron_1): Use combine_context_id_scat.
19275
19276 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19277
19278         * graphite-poly.h (struct poly_scattering): Add layout documentation.
19279         (struct poly_bb): Same.
19280         (combine_context_id_scat): New.
19281
19282 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19283
19284         PR middle-end/42326
19285         * sese.c (name_defined_in_loop_p): Return false for default
19286         definitions.
19287
19288 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19289
19290         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19291         and clean up the logic.
19292
19293 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
19294
19295         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19296         early return.
19297
19298 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
19299
19300         * var-tracking.c (remove_cselib_value_chains): Define only for
19301         ENABLE_CHECKING.
19302         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19303         delete_slot_part, emit_notes_for_differences_1): Don't call
19304         remove_cselib_value_chains here.
19305         (set_slot_part, emit_notes_for_differences_2): Don't call
19306         add_cselib_value_chains here.
19307         (preserved_values): New vector.
19308         (preserve_value): New function.
19309         (add_uses, add_stores, vt_add_function_parameters): Use it
19310         instead of cselib_preserve_value.
19311         (changed_values_stack): New vector.
19312         (check_changed_vars_0): New function.
19313         (check_changed_vars_1, check_changed_vars_2): Use it.
19314         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
19315         changed_values_stack VALUEs.
19316         (vt_emit_notes): For all preserved_values call
19317         add_cselib_value_chains.  If ENABLE_CHECKING call
19318         remove_cselib_value_chains before verifying value_chains is empty.
19319         Initialize and free changed_values_stack.
19320         (vt_initialize): Initialize preserved_values.
19321         (vt_finalize): Free preserved_values.
19322
19323 2010-03-08  Richard Guenther  <rguenther@suse.de>
19324
19325         PR tree-optimization/43269
19326         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
19327         region detection.
19328
19329 2010-03-08  Martin Jambor  <mjambor@suse.cz>
19330
19331         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
19332         (ipa_is_param_called): Removed.
19333         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
19334         (ipa_print_node_params): Do not print the called flag.
19335         (ipa_write_node_info): Do not stream the called flag.
19336         (ipa_read_node_info): Likewise.
19337
19338 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
19339
19340         PR debug/43176
19341         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
19342         * cselib.c (struct expand_value_data): Add dummy field.
19343         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
19344         dummy to false.
19345         (cselib_dummy_expand_value_rtx_cb): New function.
19346         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
19347         any rtl.
19348         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
19349         * var-tracking.c: Include pointer-set.h.
19350         (variable): Change n_var_parts to char from int.  Add
19351         cur_loc_changed and in_changed_variables fields.
19352         (variable_canonicalize): Remove.
19353         (shared_var_p): New inline function.
19354         (unshare_variable): Maintain cur_loc_changed and
19355         in_changed_variables fields.  If var was in changed_variables,
19356         replace it there with new_var.  Just copy cur_loc instead of
19357         resetting it to something else.
19358         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
19359         (dataflow_set_union): Don't call variable_canonicalize.
19360         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
19361         of their DEBUG_EXPR_TREE_DECLs.
19362         (canonicalize_loc_order_check): Verify that cur_loc is NULL
19363         and in_changed_variables and cur_loc_changed is false.
19364         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
19365         and cur_loc_changed.  Don't update cur_loc here.
19366         (variable_merge_over_src): Don't call variable_canonicalize.
19367         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
19368         removing loc that is equal to cur_loc, clear cur_loc,
19369         set cur_loc_changed and ensure variable_was_changed is called.
19370         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
19371         compare pointers in cur_loc check, if it is equal to loc,
19372         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
19373         (variable_different_p): Remove compare_current_location argument,
19374         don't compare cur_loc.
19375         (dataflow_set_different_1): Adjust variable_different_p caller.
19376         (variable_was_changed): If dv had some var in changed_variables
19377         already, reset in_changed_variables flag for it and propagate
19378         cur_loc_changed over to the new variable.  On empty var
19379         always set cur_loc_changed.  Set in_changed_variables on whatever
19380         var is added to changed_variables.
19381         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
19382         Use shared_var_p.  When removing loc that is equal to cur_loc,
19383         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
19384         end, don't set it to something else, just call variable_was_changed.
19385         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
19386         loc being removed, clear cur_loc and set cur_loc_changed.
19387         Set cur_loc_changed if all locations have been removed.
19388         (struct expand_loc_callback_data): New type.
19389         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
19390         allocated.  Always create SUBREGs if simplify_subreg failed.
19391         Prefer to use cur_loc, when that fails and still in
19392         changed_variables (and seen first time) recompute it.  Set
19393         cur_loc_changed of variables which had to change cur_loc and
19394         compute elcd->cur_loc_changed if any of the subexpressions used
19395         had to change cur_loc.
19396         (vt_expand_loc): Adjust to pass arguments in
19397         expand_loc_callback_data structure.
19398         (vt_expand_loc_dummy): New function.
19399         (emitted_notes): New variable.
19400         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
19401         that weren't used for any other decl in current
19402         emit_notes_for_changes call call vt_expand_loc_dummy to update
19403         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
19404         first loc_chain location if NULL before.  Always use just
19405         cur_loc instead of first loc_chain location.  When cur_loc_changed
19406         is false, when not --enable-checking=rtl just don't emit any note.
19407         When rtl checking, compute the note and assert it is the same
19408         as previous note.  Clear cur_loc_changed and in_changed_variables
19409         at the end before removing from changed_variables.
19410         (check_changed_vars_3): New function.
19411         (emit_notes_for_changes): Traverse changed_vars to call
19412         check_changed_vars_3 on each changed var.
19413         (emit_notes_for_differences_1): Clear cur_loc_changed and
19414         in_changed_variables.  Recompute cur_loc of new_var.
19415         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
19416         (vt_emit_notes): Initialize and destroy emitted_notes.
19417
19418 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
19419
19420         PR rtl-optimization/42220
19421         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
19422         Use verify_reg_tracked to determine if we should use OP_OUT rather
19423         than OP_INOUT.
19424         (build_def_use): If we see an in-out operand for a register that we
19425         know nothing about, treat is an output if possible, fail the block if
19426         not.
19427
19428 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
19429
19430         PR debug/42897
19431         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
19432         permanently.
19433
19434 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
19435
19436         PR debug/42897
19437         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
19438         uses of relevant DEFs that are dead outside the loop too.
19439
19440 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
19441
19442         * var-tracking.c (dataflow_set_merge): Swap src and src2.
19443         Reverted:
19444         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
19445         PR debug/41371
19446         * var-tracking.c (values_to_unmark): New variable.
19447         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
19448         values_to_unmark vector.  Moved body to...
19449         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
19450         instead queue it into values_to_unmark vector.
19451         (vt_find_locations): Free values_to_unmark vector.
19452
19453 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
19454
19455         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
19456         (site.exp): Export them when plugins are enabled.
19457
19458 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
19459
19460         PR middle-end/42326
19461         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
19462         that contain scevs.
19463         (chrec_fold_multiply): Same.
19464
19465 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
19466
19467         PR c/43248
19468         * c-decl.c (build_compound_literal): Return early if init is
19469         an error_mark_node.
19470
19471 2010-03-04  Martin Jambor  <mjambor@suse.cz>
19472
19473         PR tree-optimization/43164
19474         PR tree-optimization/43191
19475         * tree-sra.c (type_consists_of_records_p): Reject records with
19476         zero-size bit-fields at the end.
19477
19478 2010-03-04  Mike Stump  <mikestump@comcast.net>
19479
19480         * Makefile.in (TAGS): Remove *.y.
19481
19482 2010-03-04  Richard Guenther  <rguenther@suse.de>
19483
19484         PR tree-optimization/40761
19485         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
19486         in reverse order.
19487         (my_rev_post_order_compute): New function.
19488         (init_pre): Call it.
19489
19490 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
19491
19492         PR middle-end/43209
19493         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
19494         decrease the cost of an IV candidate when the cost is infinite.
19495
19496 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19497
19498         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
19499         Use '3DNow!' for the extension of that name, ensure normal space
19500         after the string.
19501         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
19502
19503 2010-03-03  Jeff Law  <law@redhat.com>
19504
19505         * PR middle-end/32693
19506         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
19507         than gen_rtx_SUBREG.
19508         (extract_bit_field_1): Likewise.
19509
19510 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
19511
19512         * doc/sourcebuild.texi (Test directives): Document that arguments
19513         include-opts and exclude-opts are now optional for dg-skip-if,
19514         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
19515
19516 2010-03-03  Jason Merrill  <jason@redhat.com>
19517
19518         PR c++/12909
19519         * cgraph.h (varpool_node): Add extra_name field.
19520         * varpool.c (varpool_extra_name_alias): New.
19521         (varpool_assemble_decl): Emit extra name aliases.
19522         (varpool_mark_needed_node): Look past an extra name alias.
19523         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
19524         * lto-streamer-in.c (lto_input_tree): Read it.
19525         * lto-streamer-out.c (output_unreferenced_globals): Write it.
19526
19527 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
19528
19529         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
19530         (sparc*-*-solaris2*): ...this.
19531
19532 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
19533
19534         PR debug/43229
19535         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
19536         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
19537         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
19538         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
19539
19540         PR debug/43237
19541         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
19542         fallthrough to default handling, just with want_address 0 instead of 2.
19543         For single element lists, add_AT_loc directly, otherwise create an
19544         artificial variable DIE and stick location list to it.
19545
19546         PR debug/43177
19547         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
19548         (VAL_EXPR_HAS_REVERSE): Define.
19549         (reverse_op): New function.
19550         (add_stores): For reversible operations add an extra MO_VAL_USE.
19551
19552 2010-03-02  Jason Merrill  <jason@redhat.com>
19553
19554         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
19555
19556 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
19557
19558         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
19559         (sparc64-*-linux*): Likewise.
19560         (sparc64-*-solaris2*): Include assembler files before linker ones.
19561         (sparc-*-solaris2*): Simplify and reorder to match previous case.
19562         * config/sparc/gas.h: Delete.
19563         * config/sparc/sol2-64.h: Add copyright notice.
19564         * config/sparc/sol2-gas-bi.h: Likewise.
19565         * config/sparc/sol2-gld.h: Likewise.
19566         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
19567         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
19568         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
19569         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
19570         (sparc_elf_asm_named_section): Rename into...
19571         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
19572
19573 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
19574
19575         * config/alpha/alpha.c (override_options): Fix -mtune error message.
19576
19577 2010-03-02  Jeff Law  <law@redhat.com>
19578
19579         PR middle-end/42431
19580         * reload1.c (rtx_p, substitute_stack): Declare.
19581         (substitute): Record addresses of changed rtxs.
19582         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
19583         Restore the original rtx when complete.
19584         (reload): Free subsitute_stack when complete.
19585
19586 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
19587
19588         * doc/gccint.texi (menu): Add Testsuites as a chapter.
19589         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
19590         new chapter.
19591         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
19592         LTO Testing, gcov Testing, profopt Testing, compat Testing,
19593         Torture Tests): Change from subsection to section.
19594
19595 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
19596             Steven Bosscher  <steven@gcc.gnu.org>
19597
19598         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
19599         instead of bb.
19600
19601 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
19602
19603         PR middle-end/42640
19604         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
19605         the assignment from the new induction variable to the assignment
19606         of the value from the original loop PHI function.
19607
19608 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
19609             Daniel Jacobowitz  <dan@codesourcery.com>
19610
19611         * doc/sourcebuild.texi (Test directives): Clarify options to
19612         dg-skip-if.
19613
19614 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19615
19616         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
19617         Disable cfi directives unless GCC and gas agree on using read-only
19618         .eh_frame sections for 64-bit.
19619         * configure: Regenerate.
19620
19621 2010-03-01  Richard Guenther  <rguenther@suse.de>
19622
19623         PR tree-optimization/43220
19624         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
19625         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
19626
19627 2010-03-01  Richard Guenther  <rguenther@suse.de>
19628             Martin Jambor  <mjambor@suse.cz>
19629
19630         PR middle-end/41250
19631         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
19632         gimplified parameters.
19633
19634 2010-03-01  Christian Bruel  <christian.bruel@st.com>
19635
19636         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
19637
19638 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
19639
19640         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
19641
19642 2010-03-01  Richard Guenther  <rguenther@suse.de>
19643
19644         PR middle-end/43213
19645         * expr.c (expand_assignment): Use the alias-oracle to tell
19646         if the rhs aliases the result decl.
19647
19648 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19649
19650         PR pch/14940
19651         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
19652         to sol_gt_pch_get_address.
19653         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
19654         64-bit, SPARC and x86.
19655         (sol_gt_pch_get_address): New function.
19656
19657 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
19658
19659         * toplev.h (inform_n, error_n): Declare.
19660         * diagnostic.c (inform_n, error_n): New function.
19661
19662 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
19663
19664         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
19665         has no rtl yet when processing local_decls, queue it and recheck
19666         if deferred stack allocation hasn't assigned it rtl.
19667
19668 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
19669
19670         * config/sh/sh.c (unspec_bbr_uid): New.
19671         (gen_block_redirect): Use it instead of INSN_UID.
19672         (gen_far_branch): Likewise.
19673
19674 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
19675
19676         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
19677         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
19678
19679 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19680
19681         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
19682         (Warning Options): -Wno-conversion-null is valid for
19683         Objective-C++ as well.
19684         * doc/tm.texi (Named Address Spaces): Likewise.
19685         * doc/plugins.texi (Plugins): Replace TABs with spaces.
19686         * doc/tree-ssa.texi (Tree SSA): Likewise.
19687
19688 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
19689
19690         PR bootstrap/43202
19691         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
19692         by default.  Don't set the default arch for
19693         i[34567]86-*-darwin*|x86_64-*-darwin*.
19694
19695 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
19696
19697         PR bootstrap/43202
19698         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
19699         default.  Set the default 32bit/64bit archs with $with_arch
19700         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
19701
19702 2010-02-27  Richard Guenther  <rguenther@suse.de>
19703
19704         PR tree-optimization/43186
19705         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
19706         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
19707         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
19708         unroller iterations.
19709
19710 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
19711
19712         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
19713         required and i[34567]86-*-* targets don't support 64bit ISA.
19714
19715 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
19716
19717         PR ada/43096
19718         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
19719         the same alias set.
19720
19721 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
19722
19723         * config.gcc: Set the default arch at least to Prescott for
19724         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
19725         if SSE math is enabled.
19726
19727 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19728
19729         * diagnostic.c (diagnostic_initialize): Update.
19730         (diagnostic_report_diagnostic): Test inhibit_notes_p for
19731         informative notes.
19732         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
19733         (diagnostic_inhibit_notes): New.
19734         * toplev.c (process_options): inhibit notes with -fcompare-debug.
19735
19736 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19737
19738         PR c/20631
19739         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
19740         * doc/standards.texi: Likewise.
19741         * doc/extend.texi: Likewise.
19742         * doc/trouble.texi: Likewise.
19743         * doc/cppopts.texi: Likewise.
19744         * doc/install.texi: Likewise.
19745         * c.opt (std=c90,std=gnu90): New options.
19746         * c-opts.c (c_common_handle_option): Handle them.
19747
19748 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19749
19750         PR c/24577
19751         * c-decl.c (undeclared_variable): Use an informative note.
19752
19753 2010-02-26  Richard Guenther  <rguenther@suse.de>
19754
19755         PR tree-optimization/43186
19756         * gimple.h (gimple_fold): Remove.
19757         * gimple.c (gimple_fold): Remove.  Inline into single user ...
19758         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
19759         Try harder for conditions.
19760
19761 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
19762
19763         PR debug/43190
19764         * function.c (used_types_insert): Don't skip through named pointer
19765         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
19766         and it is different from the main variant's type.
19767
19768 2010-02-26  Nick Clifton  <nickc@redhat.com>
19769
19770         * config/rx/rx.md (sminsi3): Remove bogus alternative.
19771
19772 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
19773
19774         * config.gcc: Support --with-fpmath=sse for x86.
19775
19776         * config/i386/ssemath.h: New.
19777
19778         * doc/install.texi (--with-fpmath=sse): Documented.
19779
19780 2010-02-26  Richard Guenther  <rguenther@suse.de>
19781
19782         PR tree-optimization/43188
19783         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
19784         vector types of over-aligned element type.
19785
19786 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
19787
19788         PR target/43175
19789         * config/i386/i386.c (expand_vec_perm_blend): Use correct
19790         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
19791
19792 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
19793
19794         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
19795
19796 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
19797
19798         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
19799         * var-tracking.c: Include diagnostic.h.
19800         (debug_dv): New function.
19801         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
19802
19803         PR debug/43160
19804         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
19805         (add_value_chain, add_value_chains, remove_value_chain,
19806         remove_value_chains): Handle DEBUG_EXPRs.
19807         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
19808
19809         PR debug/43161
19810         * regcprop.c (struct queued_debug_insn_change): New type.
19811         (struct value_data_entry): Add debug_insn_changes field.
19812         (struct value_data): Add n_debug_insn_changes field.
19813         (debug_insn_changes_pool): New variable.
19814         (free_debug_insn_changes, apply_debug_insn_changes,
19815         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
19816         (kill_value_one_regno): Call free_debug_insn_changes if needed.
19817         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
19818         fields.
19819         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
19820         changes for them.
19821         (copyprop_hardreg_forward_1): Don't call apply_change_group for
19822         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
19823         changes, call cprop_find_used_regs via note_stores.
19824         (copyprop_hardreg_forward): When copying vd from predecessor
19825         which has any queued DEBUG_INSN changes, make sure the pointers are
19826         cleared.  At the end call df_analyze and then if there are any
19827         DEBUG_INSN changes queued at the end of some basic block for still
19828         live registers, apply them.
19829         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
19830
19831 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
19832
19833         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
19834         (arm*-*-*): Ditto.
19835
19836 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
19837
19838         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
19839         targets.  Set the default with_cpu/with_arch from arch/cpu.
19840         Allow x86-64 and native for with_cpu/with_arch.
19841
19842 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
19843
19844         * ebitmap.c: Change calls to verify_popcount with calls to
19845         sbitmap_verify_popcount.
19846         (ebitmap_clear_bit): Fixed map->cacheindex test and
19847         map>cache update when bit clearing results in an empty
19848         element.
19849
19850 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19851
19852         PR target/43154
19853         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
19854         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
19855         and support both V2DF and V2DI modes.
19856         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
19857         support both V2DF and V2DI modes.
19858         (general): Delete trailing whitespace from a few patterns.
19859
19860         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19861         V2DF/V2DI interleave high/low builtins.
19862
19863         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
19864         new VSX builtins.
19865
19866         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
19867         interleave high/low functions.
19868
19869 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
19870
19871         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
19872         #pragma extern_prefix.
19873
19874 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
19875
19876         PR debug/43166
19877         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
19878         BLKmode, assert op0 is a MEM and just adjust its mode.
19879
19880         PR debug/43165
19881         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
19882         if bitpos isn't multiple of mode's bitsize.
19883
19884 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19885
19886         * c.opt (-ftemplate-depth=): New.
19887         (-ftemplate-depth-): Deprecate.
19888         * optc-gen.awk: Handle -ftemplate-depth=.
19889         * opth-gen.awk: Likewise.
19890         * c-opts.c (c_common_handle_option): Likewise.
19891         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
19892
19893 2010-02-24  Jason Merrill  <jason@redhat.com>
19894
19895         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
19896
19897 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19898
19899         * cfg.c (alloc_aux_for_block): Remove inline.
19900         (alloc_aux_for_edge): Likewise.
19901
19902 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19903
19904         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
19905
19906 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19907
19908         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
19909         * config/i386/sol2-gas.h: New file.
19910         * config.gcc (i[34567]86-*-solaris2*): Use it.
19911
19912 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19913
19914         PR c/43128
19915         * c-typeck.c (ep_convert_and_check): New.
19916         (build_conditional_expr): Use it.
19917         (build_binary_op): Likewise.
19918
19919 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
19920
19921         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
19922
19923         PR debug/43150
19924         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
19925         bounds even for -O+.
19926         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
19927         expr needs to have DECL_NAME set.
19928
19929 2010-02-24  Nick Clifton  <nickc@redhat.com>
19930
19931         * config/mep/mep.c: Include gimple.h.
19932         (mep_function_uses_sp): Delete unused function.
19933         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
19934         parameters.  Use unsigned integers to count args.  Return a
19935         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
19936
19937 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
19938
19939         PR target/43107
19940         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
19941         greater or equal to nelt instead of 2 * nelt.
19942         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
19943         with nelt - 1.
19944
19945 2010-02-23  Jason Merrill  <jason@redhat.com>
19946
19947         PR debug/42800
19948         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
19949         in cfun->local_decls even if they have register types.
19950
19951         PR c++/42837
19952         * stor-layout.c (place_field): Don't warn about unnecessary
19953         DECL_PACKED if the type is packed.
19954
19955 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
19956
19957         PR target/43139
19958         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
19959         GOTOFF relocs, even when the base reg isn't pic pointer.
19960
19961 2010-02-23  Michael Matz  <matz@suse.de>
19962
19963         PR debug/43077
19964         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
19965         (expand_gimple_basic_block): Generate and use debug temps if there
19966         are debug uses left after the last real use of TERed ssa names.
19967         Unlink debug immediate uses when they are expanded.
19968
19969 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19970
19971         PR 43123
19972         * config/i386/i386.c (override_options): Reorganise to provide
19973         better error messages.
19974
19975 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19976
19977         PR middle-end/43083
19978         * graphite-scop-detection.c (create_single_exit_edge): Move
19979         the call to find_single_exit_edge to....
19980         (create_sese_edges): ...here.  Don't handle multiple edges
19981         exiting the function.
19982         (build_graphite_scops): Don't handle multiple edges
19983         exiting the function.
19984
19985 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19986
19987         PR middle-end/43097
19988         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
19989         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
19990
19991 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19992
19993         PR middle-end/43026
19994         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
19995
19996 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19997
19998         PR c++/43126
19999         * c-typeck.c (convert_arguments): Print declaration location.
20000         * c-common.c (validate_nargs): Rename as
20001         builtin_function_validate_nargs.
20002         (check_builtin_function_arguments): Update.
20003
20004 2010-02-22  Richard Guenther  <rguenther@suse.de>
20005
20006         PR lto/43045
20007         * tree-inline.c (declare_return_variable): Use the type of
20008         the call stmt lhs if available.
20009
20010 2010-02-22  Duncan Sands  <baldrick@free.fr>
20011
20012         * passes.c (register_pass): Always consider all pass lists when
20013         ref_pass_instance_number is zero.
20014
20015 2010-02-22  Richard Guenther  <rguenther@suse.de>
20016
20017         PR tree-optimization/42749
20018         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20019         parameter.  Do arithmetic in the original type.
20020         (update_accumulator_with_ops): Likewise.
20021         (adjust_accumulator_values): Adjust.
20022
20023 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20024
20025         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20026         (QI to BLKmode splitter): New splitter.
20027
20028 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
20029
20030         * config/i386/i386.c (initial_ix86_tune_features): Turn on
20031         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20032
20033 2010-02-22  Richard Guenther  <rguenther@suse.de>
20034
20035         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20036
20037 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
20038
20039         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20040         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20041         ($(T)crti.o, $(T)crtn.o): Remove rules.
20042
20043 2010-02-21  Tobias Burnus  <burnus@net-b.de>
20044
20045         PR fortran/35259
20046         * doc/invoke.texi (-fassociative-math): Document that this
20047         option is automatically enabled for Fortran.
20048
20049 2010-02-20  David S. Miller  <davem@davemloft.net>
20050
20051         * configure.ac: Test if linker and assembler properly support
20052         GOTDATA_OP relocations.
20053         * configure: Rebuild.
20054         * config.in: Likewise.
20055         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20056         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20057         (movsi_high_pic): Likewise.
20058         (movdi_lo_sum_pic): Likewise.
20059         (movdi_high_pic): Likewise.
20060         (movsi_pic_gotdata_op): New pattern.
20061         (movdi_pic_gotdata_op): Likewise.
20062         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20063         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20064
20065 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
20066
20067         PR target/43067
20068         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20069         attribute to ssemul.
20070         (xop_mulv2div2di3_high): Ditto.
20071
20072 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20073
20074         PR c++/35669
20075         * c.opt (Wconversion-null): New option.
20076         * doc/invoke.texi (Wconversion-null): Document.
20077
20078 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20079
20080         * common.opt (Wlarger-than-): Add Undocumented.
20081
20082 2010-02-19  Mike Stump  <mikestump@comcast.net>
20083
20084         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20085
20086 2010-02-19  Jason Merrill  <jason@redhat.com>
20087
20088         PR target/40332
20089         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20090         * configure: Likewise.
20091
20092 2010-02-20  Alan Modra  <amodra@gmail.com>
20093
20094         PR middle-end/42344
20095         * cgraph.h (cgraph_make_decl_local): Declare.
20096         * cgraph.c (cgraph_make_decl_local): New function.
20097         (cgraph_make_node_local): Use it.
20098         * cgraphunit.c (cgraph_function_versioning): Likewise.
20099         * ipa.c (function_and_variable_visibility): Likewise.
20100
20101 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20102
20103         PR bootstrap/43121
20104         * except.c (sjlj_emit_function_enter): Don't call
20105         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20106         directly.
20107         * rtl.h (add_reg_br_prob_note): Remove prototype.
20108
20109 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20110
20111         PR 41779
20112         * c-common.c (conversion_warning): Remove widening conversions
20113         before checking the conversion of integers to reals.
20114
20115 2010-02-19  Mike Stump  <mikestump@comcast.net>
20116
20117         PR middle-end/43125
20118         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20119
20120         PR objc/43061
20121         * cgraphunit.c (process_function_and_variable_attributes): Check
20122         DECL_PRESERVE_P instead of looking up attribute "used".
20123         * ipa-pure-const.c (check_decl): Likewise.
20124         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20125         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20126         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20127         instead of attribute "used".
20128         * config/sol2-c.c (solaris_pragma_init): Likewise.
20129         (solaris_pragma_fini): Likewise.
20130
20131 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20132
20133         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20134         Use XCNEW instead of xcalloc.
20135         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20136         XNEW instead of xmalloc.
20137         (get_fields): Use XNEWVEC instead of xmalloc.
20138
20139         PR debug/43084
20140         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20141         populate vars array.
20142         (create_new_general_access): For debug stmts just reset value.
20143         (get_stmt_accesses): For accesses within debug stmts just record them
20144         using add_access_to_acc_sites instead of preventing the peeling or
20145         counting them as accesses.
20146
20147         PR middle-end/42233
20148         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20149
20150 2010-02-19  Richard Guenther  <rguenther@suse.de>
20151
20152         PR tree-optimization/42916
20153         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20154         instructions.
20155
20156 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
20157
20158         * configure.ac: Replace all uses of changequote in macro arguments
20159         with proper quoting.
20160
20161 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20162
20163         PR middle-end/42233
20164         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20165
20166 2010-02-19  Richard Guenther  <rguenther@suse.de>
20167
20168         PR tree-optimization/42944
20169         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20170         test for aliasing with errno.
20171
20172 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
20173
20174         PR middle-end/42233
20175         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20176         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20177         * dojump.c: Include output.h.
20178         (inv): New inline function.
20179         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20180         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20181         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20182         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20183         argument, pass it down to other calls.
20184         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
20185         add REG_BR_PROB note to the conditional jump.
20186         * cfgexpand.c (add_reg_br_prob_note): Removed.
20187         (expand_gimple_cond): Don't call it, add the probability
20188         as last argument to jumpif_1/jumpifnot_1.
20189         * Makefile.in (dojump.o): Depend on output.h.
20190         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20191         callers.
20192         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20193         * stmt.c (do_jump_if_equal): Likewise.
20194         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20195         * loop-unswitch.c (compare_and_jump_seq): Likewise.
20196         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20197         Likewise.
20198         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20199         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20200         jumpifnot_1 callers.
20201         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20202         callers.
20203         (store_expr): Adjust jumpifnot caller.
20204         (store_constructor): Adjust jumpif caller.
20205
20206         PR middle-end/42233
20207         * gimplify.c (gimple_boolify): For __builtin_expect call
20208         gimple_boolify also on its first argument.
20209
20210 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
20211
20212         * configure.ac (gnu-unique-object): Wrap regexps using [] in
20213         changequote block.
20214         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
20215         * configure: Regenerated.
20216
20217 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20218
20219         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20220         lang_hooks.types_compatible_p instead of comptypes.
20221
20222 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20223
20224         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20225         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20226         if __prefer_thumb__ is defined.
20227
20228 2010-02-18  Martin Jambor  <mjambor@suse.cz>
20229
20230         PR tree-optimization/43066
20231         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20232         array with zero-sized element type.
20233
20234 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
20235
20236         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20237         rtx, allocate struct var_loc_node here and return it to the
20238         caller, and only if it is actually needed.
20239         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20240         move it earlier and return immediately if it returns NULL.
20241
20242 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
20243
20244         * config/sparc/gas.h: New file.  Restore
20245         TARGET_ASM_NAMED_SECTION to its ELF default.
20246         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20247         check !HAVE_GNU_AS.
20248         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20249         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
20250         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20251         after sparc/sysv4.h.
20252
20253 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
20254
20255         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20256
20257 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
20258
20259         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20260         patterns from predicated pattern.
20261
20262 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
20263
20264         PR target/43103
20265         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20266         for insn mnemonic suffix.
20267
20268 2010-02-17  Richard Guenther  <rguenther@suse.de>
20269
20270         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20271         to loop PHI nodes.
20272
20273 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
20274
20275         PR debug/42918
20276         * caller-save.c (save_call_clobbered_regs): If BB ends with
20277         a DEBUG_INSN, move any notes in between last real insn and the last
20278         DEBUG_INSN after the last DEBUG_INSN.
20279
20280 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
20281
20282         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20283         Fix return type.  Fix argument type.  Explain meaning of return value.
20284
20285 2010-02-16  Richard Guenther  <rguenther@suse.de>
20286
20287         PR tree-optimization/41043
20288         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
20289         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20290         statements ...
20291         (vrp_visit_phi_node): ... but only for loop PHI nodes.
20292
20293 2010-02-16  Ira Rosen  <irar@il.ibm.com>
20294
20295         PR tree-optimization/43074
20296         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20297         * tree-vect-loop.c (vect_analyze_loop_operations): Add
20298         vectorizable cycles in hybrid SLP check.
20299         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20300
20301 2010-02-16  Richard Guenther  <rguenther@suse.de>
20302
20303         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20304         (true_dependence): If memrefs_conflict_p computes must-alias
20305         trust it.  Move TBAA check after offset-based disambiguation.
20306         (canon_true_dependence): Likewise.
20307
20308 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
20309
20310         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
20311         * doc/invoke.texi: Document it.
20312         * var-tracking.c: Include toplev.h and params.h.
20313         (vt_find_locations): Return bool indicating success.  Compute
20314         hash sizes unconditionally.  Check new parameter, report.
20315         (variable_tracking_main_1): Check vt_find_locations results and
20316         retry.  Renamed from...
20317         (variable_tracking_main): ... this.  New wrapper to preserve
20318         flag_var_tracking_assignments.
20319         * Makefile.in (var-tracking.o): Adjust dependencies.
20320
20321 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
20322             Jakub Jelinek  <jakub@redhat.com>
20323
20324         PR target/42854
20325         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
20326         if weak_import attribute is present.
20327         * config/darwin.c (machopic_select_section): Likewise.
20328
20329 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
20330
20331         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
20332         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
20333         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
20334         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
20335
20336         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
20337         types.
20338
20339         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20340         Fix argument types.
20341
20342         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
20343         Rewrite text to refer to the names.
20344
20345 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
20346
20347         * config/i386/i386-builtin-types.def
20348         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
20349         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
20350         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
20351         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
20352         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
20353         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
20354         IX86_BUILTIN_VPERMIL2PS256.
20355         (MULTI_ARG_4_DF2_DI_I): Defined.
20356         (MULTI_ARG_4_DF2_DI_I1): Defined.
20357         (MULTI_ARG_4_SF2_SI_I): Defined.
20358         (MULTI_ARG_4_SF2_SI_I1): Defined.
20359         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
20360         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
20361         __builtin_ia32_vpermil2ps256.
20362         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20363         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20364         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
20365         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20366         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20367         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
20368         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
20369         CODE_FOR_xop_vpermil2v8sf3.
20370         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
20371         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
20372         * config/i386/xopintrin.h (_mm_permute2_pd): New.
20373         (_mm256_permute2_pd): New.
20374         (_mm_permute2_ps): New.
20375         (_mm256_permute2_ps): New.
20376
20377 2010-02-15  Nick Clifton  <nickc@redhat.com>
20378
20379         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
20380         boolean parameters.  Use emit_jump_insn when emitting a pop
20381         instruction containing a return insn.
20382         (push): Use 'true' rather than '1' as second parameter to F.
20383         (h8300_expand_prologue): Likewise.
20384         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
20385         (h8300_expand_epilogue): Likewise.
20386
20387 2010-02-15  Richard Guenther  <rguenther@suse.de>
20388
20389         PR middle-end/43068
20390         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
20391         if that is zero.
20392
20393 2010-02-15  Nick Clifton  <nickc@redhat.com>
20394
20395         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
20396         delta.
20397
20398 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
20399
20400         * intl.c (fake_ngettext): New function.
20401         * intl.h (fake_ngettext): Declare.
20402         (ngettext): Define macro.
20403         * collect2.c (notice_translated): New function.
20404         (main): Use notice_translated and ngettext.
20405         * collect2.h (notice_translated): Declare.
20406
20407 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
20408
20409         * reorg.c (delete_computation): Comment fixes.
20410         * caller-save.c (setup_save_areas): Idem.
20411         * sel-sched-dump.c (dump_lv_set): Idem.
20412         * rtl.def: Idem.
20413
20414 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20415
20416         * config/s390/s390.c (s390_sched_init): New function.
20417         (TARGET_SCHED_INIT): Target hook defined.
20418
20419 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
20420             Jack Howarth  <howarth@bromo.med.uc.edu>
20421             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
20422
20423         PR target/42982
20424         Partial revert of unintended change in fix for PR41605.
20425         * config/darwin.h: Fix typo.
20426         * config/darwin9.h: Same.
20427
20428 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
20429
20430         * c-pch.c (pch_init): Clear v.
20431
20432 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
20433
20434         PR middle-end/42930
20435         * graphite-scop-detection.c (graphite_can_represent_scev): Call
20436         graphite_can_represent_init for MULT_EXPR.
20437
20438 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
20439
20440         PR middle-end/42914
20441         PR middle-end/42530
20442         * graphite-sese-to-poly.c (remove_phi): New.
20443         (translate_scalar_reduction_to_array): Call remove_phi.
20444
20445 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
20446
20447         PR middle-end/42771
20448         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
20449         * graphite-clast-to-gimple.h (gloog): Update declaration.
20450         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
20451         * graphite-poly.h (struct poly_bb): Add missing comments.
20452         (struct scop): Add poly_scop_p field.
20453         (POLY_SCOP_P): New.
20454         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
20455         * graphite.c (graphite_transform_loops): Build the polyhedral
20456         representation for each scop before code generation.
20457         * sese.c (rename_variables_in_operand): Removed.
20458         (rename_variables_in_expr): Return the renamed expression.
20459         (rename_sese_parameters): New.
20460         * sese.h (rename_sese_parameters): Declared.
20461
20462 2010-02-11  Richard Guenther  <rguenther@suse.de>
20463
20464         PR tree-optimization/42998
20465         * tree-ssa-pre.c (create_expression_by_pieces): Treat
20466         POINTER_PLUS_EXPR properly.
20467
20468 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
20469             Changpeng Fang  <changpeng.fang@amd.com>
20470
20471         PR middle-end/40886
20472         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
20473         the cost of an IV candidate when the IV is used in a test against zero.
20474
20475         * gcc.dg/tree-ssa/ivopts-3.c: New.
20476
20477 2010-02-11  Richard Guenther  <rguenther@suse.de>
20478
20479         PR lto/41664
20480         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
20481         pointer-vs-decl case by swapping refs.  Handle some cases
20482         of pointer-vs-decl disambiguations more conservatively.
20483         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
20484         to false after expanding.
20485
20486 2010-02-11  Richard Guenther  <rguenther@suse.de>
20487
20488         PR driver/43021
20489         * gcc.c (process_command): Handle LTO file@offset case more
20490         appropriately.
20491
20492 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
20493
20494         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
20495         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
20496         of DEBUG_INSNs.
20497         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
20498
20499         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
20500         if MEM's mode size isn't DWARF2_ADDR_SIZE.
20501         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
20502         Optimize eq/ne comparisons when both arguments are known to be
20503         zero-extended.
20504         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
20505         Don't mask operands unnecessarily if they are known to be already
20506         zero-extended.
20507
20508 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
20509
20510         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
20511         instead of loop.
20512
20513 2010-02-10  Richard Guenther  <rguenther@suse.de>
20514
20515         PR tree-optimization/43017
20516         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
20517         for wrapping signed arithmetic.
20518
20519 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
20520
20521         PR debug/43010
20522         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
20523         if no debug info should be emitted for it.
20524
20525 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
20526
20527         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
20528         note when flag_exceptions is set.
20529
20530 2010-02-10  Duncan Sands  <baldrick@free.fr>
20531
20532         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
20533
20534 2010-02-10  Richard Guenther  <rguenther@suse.de>
20535
20536         PR c/43007
20537         * tree.c (get_unwidened): Handle constants.
20538         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
20539
20540 2010-02-10  Martin Jambor  <mjambor@suse.cz>
20541
20542         PR lto/42985
20543         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
20544         check for variable argument counts independently.
20545
20546 2010-02-10  Christian Bruel  <christian.bruel@st.com>
20547
20548         PR target/42841
20549         * config/sh/sh.c (find_barrier): Increase length for non delayed
20550         conditional branches.
20551
20552 2010-02-10  Christian Bruel  <christian.bruel@st.com>
20553
20554         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
20555
20556 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
20557
20558         * builtins.c (set_builtin_user_assembler_name): Also handle
20559         ffs if int is smaller than word.
20560
20561 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
20562
20563         PR middle-end/42973
20564         * ira-conflicts.c (get_dup): Remove.
20565         (process_reg_shuffles): Add new parameter.  Use it as an
20566         additional guard for copy generation.
20567         (add_insn_allocno_copies): Rewrite.
20568
20569 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
20570
20571         * common.opt (fsched2-use-traces): Preserved for backward
20572         compatibility.
20573         * doc/invoke.texi: Remove the documentation about option
20574         -fsched2-use-traces.
20575         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
20576         flag_sched2_use_traces.
20577         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
20578         the backward compatibility flag section.
20579
20580 2010-02-09  Richard Guenther  <rguenther@suse.de>
20581
20582         PR tree-optimization/43008
20583         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
20584         make HEAP variables initialized from global memory if they
20585         are not known builtin functions.
20586         (find_func_aliases): Adjust.
20587
20588 2010-02-09  Richard Guenther  <rguenther@suse.de>
20589
20590         PR tree-optimization/43000
20591         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
20592         arithmetic manually.
20593
20594 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
20595
20596         PR tree-optimization/42931
20597         * tree-loop-linear.c (try_interchange_loops): Don't call
20598         double_int_mul if estimated_loop_iterations failed.
20599
20600 2010-02-08  Martin Jambor  <mjambor@suse.cz>
20601
20602         PR middle-end/42898
20603         * tree-sra.c (build_accesses_from_assign): Do not mark in
20604         should_scalarize_away_bitmap if stmt has volatile ops.
20605         (sra_modify_assign): Do not process assigns piecemeal if if stmt
20606         has volatile ops.
20607
20608 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
20609
20610         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
20611
20612 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
20613
20614         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
20615         before the pattern.
20616
20617 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
20618
20619         PR middle-end/42946
20620         * df-core.c (df_finish_pass): Change type of saved_flags to int.
20621
20622 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
20623
20624         PR middle-end/42988
20625         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
20626         to unknown_dependence.
20627         (graphite_legal_transform_dr): Handle the unknown_dependence.
20628         (graphite_carried_dependence_level_k): Same.
20629
20630 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
20631
20632         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
20633
20634 2010-02-07  Richard Guenther  <rguenther@suse.de>
20635
20636         PR middle-end/42991
20637         * expr.c (get_inner_reference): Always initialize *pbitsize.
20638
20639 2010-02-07  Richard Guenther  <rguenther@suse.de>
20640
20641         PR middle-end/42956
20642         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
20643         new ARRAY_REFs on variable size element or minimal index arrays.
20644         Complete.
20645         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
20646         gimple_fold_indirect_ref.
20647
20648 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
20649
20650         PR target/42957
20651         * arm.c (arm_override_options): Just return if the user has specified
20652         an invalid fpu name.
20653
20654 2010-02-03  Jason Merrill  <jason@redhat.com>
20655
20656         PR c++/42870
20657         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
20658         i386_pe_maybe_record_exported_symbol.
20659
20660 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
20661
20662         PR target/42924
20663         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
20664         (pa_delegitimize_address): New function.
20665
20666 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
20667
20668         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
20669         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
20670
20671 2010-02-05  Richard Guenther  <rguenther@suse.de>
20672
20673         PR lto/42762
20674         * lto-streamer-in.c (get_resolution): Deal with references
20675         to undefined functions.
20676
20677 2010-02-05  Richard Guenther  <rguenther@suse.de>
20678
20679         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
20680         (fold_const_aggregate_ref): Likewise.
20681         (ccp_fold_stmt): Substitute loads.
20682         (maybe_fold_reference): Verify types before substituting.
20683         Unshare properly.
20684         (fold_gimple_assign): Unshare properly.
20685         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
20686
20687 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
20688
20689         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
20690         for rs6000_gen_cell_microcode.
20691
20692 2010-02-04  Richard Guenther  <rguenther@suse.de>
20693
20694         PR rtl-optimization/42952
20695         * dse.c (const_or_frame_p): Remove MEM handling.
20696
20697 2010-02-04  Nick Clifton  <nickc@redhat.com>
20698
20699         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
20700         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
20701         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
20702         (mn10300_asm_output_mi_thunk): New function.
20703         (mn10300_can_output_mu_thunk): New function.
20704         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
20705         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
20706         (FUNCTION_ARG): Delete incorrect comment.
20707
20708 2010-02-03  Jason Merrill  <jason@redhat.com>
20709
20710         PR c++/40138
20711         * fold-const.c (operand_equal_p): Handle erroneous types.
20712
20713 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20714
20715         * config/h8300/h8300.md (can_delay): Fix attibute condition.
20716
20717 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
20718
20719         PR rtl-optimization/42941
20720         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
20721         of xmalloc.
20722
20723 2010-02-03  Jason Merrill  <jason@redhat.com>
20724
20725         PR c++/35652
20726         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
20727
20728 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
20729
20730         PR debug/42896
20731         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
20732         (cselib_reset_table): Renamed from...
20733         (cselib_reset_table_with_next_value): ... this.
20734         (cselib_get_next_uid): Renamed from...
20735         (cselib_get_next_unknown_value): ... this.
20736         * cselib.c (next_uid): Renamed from...
20737         (next_unknown_value): ... this.
20738         (cselib_clear_table): Adjust.
20739         (cselib_reset_table): Adjust.  Renamed from...
20740         (cselib_reset_table_with_next_value): ... this.
20741         (cselib_get_next_uid): Adjust.  Renamed from...
20742         (cselib_get_next_unknown_value): ... this.
20743         (get_value_hash): Use hash.
20744         (cselib_hash_rtx): Likewise.
20745         (new_cselib_val): Adjust.  Set and dump uid.
20746         (cselib_lookup_mem): Pass next_uid as hash.
20747         (cselib_subst_to_values): Likewise.
20748         (cselib_log_lookup): Dump uid.
20749         (cselib_lookup): Pass next_uid as hash.  Adjust.
20750         (cselib_process_insn): Adjust.
20751         (cselib_init): Initialize next_uid.
20752         (cselib_finish): Adjust.
20753         (dump_cselib_table): Likewise.
20754         * dse.c (canon_address): Dump value uid.
20755         * print-rtl.c (print_rtx): Print value uid.
20756         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
20757         (dvuid): New type.
20758         (dv_uid): New function, sort of renamed from...
20759         (dv_htab_hash): ... this, reimplemented in terms of it and...
20760         (dv_uid2hash): ... this.  New.
20761         (variable_htab_eq): Drop excess assertions.
20762         (tie_break_pointers): Removed.
20763         (canon_value_cmp): Compare uids.
20764         (variable_post_merge_New_vals): Print uids.
20765         (vt_add_function_parameters): Adjust.
20766         (vt_initialize): Reset table.  Adjust.
20767
20768 2010-02-03  Richard Guenther  <rguenther@suse.de>
20769
20770         PR tree-optimization/42944
20771         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
20772         (call_may_clobber_ref_p_1): Likewise.  Properly handle
20773         malloc and calloc clobbering errno.
20774
20775 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
20776
20777         * doc/invoke.texi: Fix name of sched1 dump.
20778
20779         * opts.c (decode_options): Set flag_tree_switch_conversion
20780         only conditionally on optimize >= 2.
20781
20782         * gcse.c: Assorted comment fixes in pass description.
20783
20784 2010-02-03  Anthony Green  <green@moxielogic.com>
20785
20786         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
20787         nop padding in order to maintain alignment of storage location of
20788         target function address.
20789         (moxie_trampoline_init): Store target function address at newly
20790         aligned location.
20791         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
20792         to 32.
20793         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
20794
20795 2010-02-03  Richard Guenther  <rguenther@suse.de>
20796
20797         PR middle-end/42927
20798         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
20799
20800 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20801
20802         * config.gcc: Reenable check for obsolete targets.
20803         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
20804         mips-sgi-irix6.[0-4]*.
20805
20806 2010-02-02  Nick Clifton  <nickc@redhat.com>
20807
20808         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
20809         constant size of 4 as being the same as 0.
20810         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
20811         can take values in the range 0..4.
20812
20813 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
20814
20815         PR java/41991
20816         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
20817         as _darwin10_Unwind_FindEnclosingFunction().
20818         * libgcc-libsystem.ver: New.
20819
20820 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
20821
20822         PR target/41399
20823         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
20824         implicitly set registers.
20825
20826 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
20827
20828         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
20829         (arm_override_options): Allow automatic selection of the thread
20830         pointer register if thumb2.
20831         (legitimize_pic_address): Improve code sequences for Thumb2.
20832         (arm_call_tls_get_addr): Likewise.
20833         (legitimize_tls_address): Likewise.
20834         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
20835         (pic_load_addr_32bit): ... this.  New named pattern.
20836         * thumb2.md (pic_load_addr_thumb2): Delete.
20837         (pic_load_dot_plus_four): Delete.
20838         (tls_load_dot_plus_four): New named pattern.
20839
20840 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20841
20842         PR libgomp/29986
20843         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
20844         Document fix for TLS bug.
20845
20846 2010-01-31  Richard Guenther  <rguenther@suse.de>
20847
20848         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
20849         conservatively correct.
20850
20851 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20852
20853         PR target/42850
20854         Revert:
20855         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20856
20857         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
20858
20859 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20860
20861         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
20862
20863 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
20864
20865         * config.gcc: Adjust order of makefile fragments for mingw targets.
20866
20867 2010-01-31  Richard Guenther  <rguenther@suse.de>
20868
20869         PR middle-end/42898
20870         * gimplify.c (gimplify_init_constructor): For volatile LHS
20871         initialize a temporary.
20872
20873 2010-01-31  Matthias Klose  <doko@ubuntu.com>
20874
20875         * configure.ac: Fix __stack_chk_fail check for cross builds configured
20876         --with-headers
20877         * configure: Regenerate.
20878
20879 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
20880
20881         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20882         the same alias set and their sizes different constantness.
20883         (aliasing_component_refs_p): Revert 2009-10-24 change.
20884
20885 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20886
20887         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
20888         unused.
20889
20890 2010-01-29  Richard Guenther  <rguenther@suse.de>
20891
20892         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
20893         Assert we successfully updated the call.
20894
20895 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
20896
20897         PR rtl-optimization/42889
20898         * df.h (df_set_bb_dirty_nonlr): New prototype.
20899         * df-core.c (df_set_bb_dirty_nonlr): New function.
20900         * df-scan.c (df_insn_rescan): Call it instead of
20901         df_set_bb_dirty for DEBUG_INSNs.
20902
20903 2010-01-29  Richard Guenther  <rguenther@suse.de>
20904
20905         PR middle-end/37448
20906         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
20907         quadratic behavior in most cases.
20908
20909 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
20910
20911         PR target/42891
20912         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
20913         in the call to gen_x86_movsicc_0_m1.
20914
20915 2010-01-28  Richard Guenther  <rguenther@suse.de>
20916
20917         PR tree-optimization/42871
20918         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
20919
20920 2010-01-28  Richard Guenther  <rguenther@suse.de>
20921
20922         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
20923         into call arguments.
20924
20925 2010-01-28  Richard Guenther  <rguenther@suse.de>
20926
20927         PR middle-end/42883
20928         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
20929         the forwarder if the destination is an EH landing pad.
20930
20931 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
20932
20933         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
20934         block list passed to gimple_duplicate_sese_tail.
20935         (parallelize_loops): Avoid parallelization when the function
20936         has_nonlocal_label.
20937         Avoid parallelization when the preheader is IRREDUCIBLE.
20938         Try to optimize when estimated_loop_iterations_int is unresolved.
20939         Add the loop's location to the dump file.
20940         * tree-cfg.c (add_phi_args_after_redirect): Remove.
20941         (gimple_duplicate_sese_tail): Remove the check for the latch.
20942         Redirect nexits to the exit block.
20943         Remove handling of the incoming edges to the latch.
20944         Redirect the backedge from the copied latch to the exit bb.
20945
20946 2010-01-28  Michael Matz  <matz@suse.de>
20947
20948         PR target/42881
20949         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
20950         Wrap force_reg into a sequence, emit it before user.
20951
20952 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
20953
20954         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
20955         (arm_rev): New.
20956         (arm_legacy_rev): Likewise.
20957         (thumb_legacy_rev): Likewise.
20958
20959 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
20960
20961         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
20962         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
20963         on MEM's address failed, try avoid_constant_pool_reference and
20964         recurse if it returned something different.
20965         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
20966         address, try avoid_constant_pool_reference and recurse if it
20967         returned something different.
20968         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
20969         address and avoid_constant_pool_reference returned something
20970         different, don't set have_address.
20971
20972 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
20973
20974         PR debug/42861
20975         * var-tracking.c (val_store): Add modified argument, obey it.
20976         Adjust callers.
20977         (count_uses): Move down logging of main.
20978         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
20979         don't need resolution.
20980         (emit_notes_in_bb): Likewise.
20981
20982 2010-01-27  Richard Guenther  <rguenther@suse.de>
20983
20984         PR middle-end/42878
20985         * tree-inline.c (remap_decl): Delay remapping of SSA name
20986         default definitions until we need them.
20987
20988 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
20989
20990         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
20991         (rs6000_delegitimize_address): New function.
20992
20993         * config/s390/s390.c (s390_delegitimize_address): Call
20994         delegitimize_mem_from_attrs.
20995
20996         PR middle-end/42874
20997         * tree-inline.c (cannot_copy_type_1): Removed.
20998         (copy_forbidden): Don't forbid copying of functions containing
20999         records/unions with variable length fields.
21000
21001 2010-01-27  Christian Bruel  <christian.bruel@st.com>
21002
21003         Revert:
21004         PR target/42841
21005         * config/sh/sh.c (find_barrier): Increase length for non delayed
21006         conditional branches.
21007
21008 2010-01-27  Matthias Klose  <doko@ubuntu.com>
21009
21010         * configure.ac (gnu-unique-object): Fix ldd version check.
21011         * configure: Regenerate.
21012
21013 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21014
21015         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21016         HAVE_GNU_AS value.
21017         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21018         Test for HAVE_GNU_AS value.
21019
21020 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21021
21022         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21023         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21024         INT64_TYPE): Define.
21025         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21026         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21027         INT_LEAST64_TYPE): Define.
21028         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21029         UINT_LEAST64_TYPE): Define.
21030         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21031         INT_FAST64_TYPE): Define.
21032         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21033         UINT_FAST64_TYPE): Define.
21034         (INTMAX_TYPE, UINTMAX_TYPE): Define.
21035         (INTPTR_TYPE, UINTPTR_TYPE): Define.
21036         (SIG_ATOMIC_TYPE): Define.
21037
21038 2010-01-26  Richard Guenther  <rguenther@suse.de>
21039
21040         * df-scan.c (df_scan_set_bb_info): Remove assert.
21041         (df_insn_rescan_debug_internal): Merge asserts.
21042         (df_install_ref): Likewise.
21043         (df_mark_reg): Use bitmap_set_range.
21044         (df_hard_reg_used_p): Remove assert.
21045         (df_hard_reg_used_count): Likewise.
21046
21047 2010-01-26  Richard Guenther  <rguenther@suse.de>
21048
21049         PR rtl-optimization/42685
21050         * web.c (web_main): Ignore DEBUG_INSNs.
21051
21052 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
21053
21054         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21055
21056         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21057         Fix types of fndecl and arglist parameters.
21058
21059 2010-01-26  Richard Guenther  <rguenther@suse.de>
21060
21061         PR middle-end/42806
21062         * tree-eh.c (unsplit_eh): Skip debug insns.
21063
21064 2010-01-26  Richard Guenther  <rguenther@suse.de>
21065
21066         PR tree-optimization/42250
21067         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21068
21069 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
21070
21071         PR fortran/42866
21072         * omp-low.c (expand_omp_sections): Only use single_pred if
21073         l2_bb is single_pred_p.
21074
21075 2010-01-25  Christian Bruel  <christian.bruel@st.com>
21076
21077         PR target/42841
21078         * config/sh/sh.c (find_barrier): Increase length for non delayed
21079         conditional branches.
21080         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21081
21082 2010-01-24  David S. Miller  <davem@davemloft.net>
21083
21084         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21085         define if not using GAS.
21086         * config/sparc/sparc.c (sparc_elf_asm_named_section):
21087         Likewise.  Delete SECTION_MERGE code, which is only applicable
21088         when using GAS.
21089
21090 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
21091
21092         PR c++/42748
21093         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21094         mangling of va_list in system headers.
21095
21096 2010-01-23  Toon Moene  <toon@moene.org>
21097
21098         * tree-predcom.c (combine_chains): Return NULL, not false.
21099
21100 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
21101
21102         * tree-loop-distribution.c (distribute_loop): Fix declaration and
21103         initialization of variable res to agree with return type.
21104
21105 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
21106
21107         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21108         * tree-sra.c: Add include of expr.h.
21109
21110 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
21111
21112         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21113         insert the debug stmt on the single non-EH edge from the stmt.
21114
21115 2010-01-22  Richard Henderson  <rth@redhat.com>
21116
21117         PR tree-opt/42833
21118         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21119         the RHS until after generate_subtree_copies has insertted its
21120         code before the current statement.
21121
21122 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
21123
21124         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21125
21126         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21127
21128 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21129
21130         PR tree-optimization/42585
21131         * tree-sra.c (struct access): New field grp_total_scalarization.
21132         (dump_access): Dump the new field.
21133         (should_scalarize_away_bitmap): New variable.
21134         (cannot_scalarize_away_bitmap): Likewise.
21135         (sra_initialize): Allocate new bitmaps.
21136         (sra_deinitialize): Free new bitmaps.
21137         (create_access_1): New function.
21138         (create_access): Parts moved to create_access_1.
21139         (type_consists_of_records_p): New function.
21140         (completely_scalarize_record): Likewise.
21141         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21142         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21143         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21144         access.
21145         (analyze_all_variable_accesses): Completely scalarize small eligible
21146         records.
21147
21148 2010-01-21  Martin Jambor  <mjambor@suse.cz>
21149
21150         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21151
21152 2010-01-21  Andrew Haley  <aph@redhat.com>
21153
21154         * gcc.c (process_command): Move lang_specific_driver before
21155         setting cc_libexec_prefix.
21156
21157 2010-01-21  Richard Guenther  <rguenther@suse.de>
21158
21159         PR middle-end/19988
21160         * fold-const.c (negate_expr_p): Pretend only negative
21161         real constants are easily negatable.
21162
21163 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
21164             Jason Merrill  <jason@redhat.com>
21165
21166         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21167         (TYPE_TRANSPARENT_AGGR): this, for union and record.
21168         * calls.c (initialize argument_information): Handle it.
21169         * c-common.c (handle_transparent_union_attribute): Use new name.
21170         * c-decl.c (finish_struct): Ditto.
21171         * c-typeck.c (type_lists_compatible_p): Ditto.
21172         (convert_for_assignment): Use new name and also handle record.
21173         * function.c (aggregate_value_p): Handle it.
21174         (pass_by_reference): Ditto.
21175         (assign_parm_data_types): Ditto.
21176         * print-tree.c (print_node): Ditto.
21177         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21178         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21179         * tree.c (first_field): New fn.
21180
21181 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
21182
21183         PR target/42818
21184         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21185         even when linking statically, for now.
21186
21187 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21188
21189         PR debug/42715
21190         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21191         without a cselib val.
21192         (count_uses): Accept MO_VAL_SET with no val on stores.
21193         (add_stores): Likewise.
21194
21195 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21196
21197         * var-tracking.c (check_value_val): Add a compile time assertion.
21198         (dv_is_decl_p): Simplify.
21199         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21200         gcc_assert if ENABLE_CHECKING.
21201
21202 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
21203
21204         PR debug/42782
21205         * var-tracking.c: Include tree-flow.h.
21206         (mem_dies_at_call): New.
21207         (dataflow_set_preserve_mem_locs): Use it.
21208         (dataflow_set_remove_mem_locs): Likewise.
21209         (dump_var): Renamed from dump_variable.  Adjust all callers.
21210         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
21211         * Makefile.in (var-tracking.o): Adjust deps.
21212
21213 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
21214
21215         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21216
21217 2010-01-20  Richard Guenther  <rguenther@suse.de>
21218
21219         PR tree-optimization/42717
21220         * tree-ssa-dce.c (get_live_post_dom): Remove.
21221         (forward_edge_to_pdom): Take an arbitrary edge to copy
21222         degenerate PHI args from.
21223         (remove_dead_stmt): Use the first post-dominator even if it
21224         does not contain live statements as redirection destination.
21225
21226 2010-01-20  Richard Guenther  <rguenther@suse.de>
21227
21228         * tree-inline.c (estimate_num_insns): Handle EH builtins.
21229
21230 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21231
21232         * sel-sched.c (create_speculation_check): Remove set but not used
21233         variable twin.
21234         (try_transformation_cache): Remove set but not used variable ds.
21235         (calculate_privileged_insns): Remove set but not used variables
21236         cur_insn and min_spec_insn.
21237         (find_best_expr): Remove set but not used variable avail_n.
21238         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21239         variable e.
21240         * cgraphunit.c (assemble_thunk): Remove set but not used variable
21241         false_label.
21242         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21243         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21244         new_scop_exit_edge.
21245
21246 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
21247
21248         PR bootstrap/42786
21249         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21250         cpu types.  Add support for *-sse3 cpu types.
21251         (x86_64-*-*): Ditto.
21252
21253 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21254
21255         PR middle-end/42803
21256         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21257         argument, call initializer_constant_valid_p_1 instead of
21258         initializer_constant_valid_p, pass CACHE to it, return NULL
21259         immediately if first call returns NULL.
21260         (initializer_constant_valid_p_1): New function.
21261         (initializer_constant_valid_p): Use it.
21262
21263 2010-01-20  Thomas Quinot  <quinot@adacore.com>
21264
21265         * tree.def (PLACEHOLDER_EXPR): Fix comment.
21266
21267 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
21268
21269         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21270         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21271         (loc_list_from_tree): Don't handle unsigned division.  Handle
21272         signed modulo using DW_OP_{over,over,div,mul,minus}.
21273         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21274         modulo instead of signed.
21275
21276 2010-01-20  DJ Delorie  <dj@redhat.com>
21277
21278         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21279         (Fpa): Pass it
21280         (h8300_emit_stack_adjustment): Propogate it.
21281         (push): Pass it.
21282         (h8300_expand_prologue): Likewise.
21283         (h8300_expand_epilogue): Likewise.
21284
21285 2010-01-19  Michael Matz  <matz@suse.de>
21286
21287         PR tree-optimization/41783
21288         * tree-data-ref.c (toplevel): Include flags.h.
21289         (dump_data_dependence_relation):  Also dump the inputs if the
21290         result will be unknown.
21291         (split_constant_offset_1): Look through some conversions.
21292         * tree-predcom.c (determine_roots_comp): Restart a new chain if
21293         the offset from last element is too large.
21294         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21295         (reassociate_to_the_same_stmt): Handle vector registers.
21296         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21297         (e.g. conversions).
21298         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21299         wide_prolog_niters argument, emit widening instructions.
21300         (vect_do_peeling_for_alignment): Adjust caller, use widened
21301         variant of the iteration cound.
21302         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21303
21304 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21305
21306         PR target/38697
21307         * config/arm/neon-testgen.m (emit_automatics): New parameter
21308         features. Adjust for Fixed_return_reg feature.
21309         (test_intrinsic): Call emit_automatics with new feature.
21310         * config/arm/neon.ml: Update copyright years.
21311         (features): New Fixed_return_reg feature.
21312         (ops): Update feature for Vget_low.
21313
21314 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
21315
21316         PR tree-optimization/42719
21317         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
21318         stmt uses.
21319
21320         PR debug/42728
21321         * fwprop.c (all_uses_available_at): Return false if def_set dest
21322         is a REG that is used in def_insn.
21323
21324 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
21325
21326         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
21327
21328         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
21329         Add argument names.
21330
21331         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
21332
21333         * target.h (struct gcc_target) <secondary_reload>: Change type
21334         of last argument to secondary_reload_info *.
21335
21336 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
21337
21338         PR target/42774
21339         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
21340         memory references with unaligned offsets.  Remove CQImode handling.
21341         (unaligned_memory_operand): Return 1 for memory references with
21342         unaligned offsets.  Remove CQImode handling.
21343
21344 2010-01-18  Richard Guenther  <rguenther@suse.de>
21345
21346         PR middle-end/39954
21347         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
21348         builtin calls.
21349
21350 2010-01-18  Richard Guenther  <rguenther@suse.de>
21351
21352         PR tree-optimization/42781
21353         * tree-ssa-structalias.c (find_what_var_points_to): Skip
21354         restrict processing only if the original variable was artificial.
21355
21356 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
21357
21358         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
21359         find number of popped argument bytes.
21360
21361         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
21362         Fix the text that describes the return value for invalid insns.
21363
21364         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
21365
21366         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
21367         Clarify what 'cost of the -dependence' is.  Fix quoting.
21368
21369         * toplev.c (default_get_pch_validity): Rename argument to "sz".
21370         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
21371
21372 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
21373
21374         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
21375         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
21376
21377 2010-01-17  Richard Guenther  <rguenther@suse.de>
21378
21379         PR middle-end/42248
21380         * function.c (split_complex_args): Take a VEC to modify.
21381         (assign_parms_augmented_arg_list): Build a VEC instead of
21382         a chain of PARM_DECLs.
21383         (assign_parms_unsplit_complex): Take a VEC of arguments.
21384         Do not fixup unmodified parms.
21385         (assign_parms): Deal with the VEC.
21386         (gimplify_parameters): Likewise.
21387
21388 2010-01-17  Richard Guenther  <rguenther@suse.de>
21389
21390         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
21391         node existence check.
21392         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
21393         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
21394         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
21395         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
21396         (gimple_execute_on_growing_pred): Likewise.
21397
21398 2010-01-17  Richard Guenther  <rguenther@suse.de>
21399
21400         PR tree-optimization/42773
21401         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
21402         (compute_antic_aux): Likewise.
21403         (compute_partial_antic_aux): Likewise.
21404
21405 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
21406
21407         PR debug/42767
21408         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
21409         and US_TRUNCATE.
21410
21411 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
21412
21413         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
21414         appearance.
21415
21416         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
21417         Fix markup for strict argument.
21418
21419         (TARGET_SCHED_REORDER2): Fix argument types.
21420
21421         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
21422         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
21423
21424         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
21425         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
21426
21427         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
21428         Add argument name.
21429
21430         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
21431         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
21432         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
21433         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
21434         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
21435
21436         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
21437
21438         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
21439
21440         (TARGET_ASM_RELOC_RW_MASK): Add return type.
21441         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
21442
21443         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
21444
21445         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
21446         Use prototype.
21447
21448         (TARGET_ASM_NAMED_SECTION): Fix argument list.
21449
21450         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
21451         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
21452
21453         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
21454
21455         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
21456
21457         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
21458         referring to it.  Fix language.
21459
21460         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
21461
21462         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
21463
21464         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
21465
21466         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
21467
21468         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
21469         '@var{stream}.  Remove stray 'and'.
21470
21471         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
21472
21473         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
21474
21475         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
21476
21477         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
21478         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
21479
21480         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
21481         Fix description of return value.
21482         Rename argument "sz" to "len."
21483
21484         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
21485         Clarify meaning of 'true' return value.
21486
21487         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
21488
21489         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
21490         rep_mode versus mode_rep.
21491
21492         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
21493
21494         (TARGET_BUILTIN_DECL): Fix name.
21495
21496         (TARGET_COMMUTATIVE_P): Fix type of first argument.
21497
21498         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
21499
21500         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
21501
21502         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
21503
21504         (TARGET_RELAXED_ORDERING): Use @deftypevr.
21505
21506         (TARGET_GET_DRAP_RTX): Note that this is a hook.
21507         Clarify language.
21508
21509         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
21510         Rename argument tm_fn to md_fn.
21511
21512         (TARGET_OPTION_PRINT): Fix argument list.
21513
21514 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
21515
21516         PR target/42664
21517         * config/i386/i386.c (ix86_fixup_binary_operands):
21518         Revert FMA4 fixup of operands.
21519
21520 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21521
21522         PR gcc/42525
21523         * Makefile.in (write_entries_to_file, install-plugin):
21524         Use \012 instead of \n with tr.
21525
21526 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
21527
21528         * configure.ac (HAVE_AS_REF): New C macro.
21529         * configure: Regenerate.
21530         * config.in: Likewise.
21531         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
21532         if HAVE_AS_REF.
21533         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
21534         if HAVE_AS_REF.
21535
21536 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
21537
21538         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
21539
21540         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
21541
21542         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
21543
21544         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
21545
21546         (TARGET_IN_SMALL_DATA_P): Fix argument type.
21547
21548         (TARGET_BINDS_LOCAL_P): Fix argument type.
21549
21550         (TARGET_ASM_FILE_END): Use prototype.
21551
21552         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
21553
21554         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
21555
21556         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
21557
21558         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
21559
21560         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
21561         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
21562
21563         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
21564         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
21565
21566         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
21567         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
21568         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
21569         (TARGET_ADDR_SPACE_CONVERT): Likewise.
21570
21571         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
21572
21573         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
21574
21575         (TARGET_INIT_BUILTINS): Use prototype.
21576
21577         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
21578         Put 'const char *' in braces.  Fix parameter types.
21579         (TARGET_INVALID_CONVERSION): Fix parameter types.
21580         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
21581         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
21582
21583         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
21584         Fix argument type.
21585
21586         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
21587
21588         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
21589
21590 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
21591
21592         * doc/tm.texi (TARGET_HELP): Fix return type.
21593
21594         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
21595         in braces.  Fix argument types.
21596
21597         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
21598
21599         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
21600
21601         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
21602
21603         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
21604         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
21605
21606         (TARGET_MANGLE_TYPE): Fix argument types.
21607
21608         (TARGET_IRA_COVER_CLASSES): Use prototype.
21609
21610         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
21611
21612         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
21613
21614         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
21615
21616         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
21617
21618         (TARGET_CALLEE_COPIES): Fix argument types.
21619
21620         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
21621
21622         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
21623
21624         (TARGET_FUNCTION_VALUE): Fix argument types.
21625
21626         (TARGET_RETURN_IN_MSB): Fix argument type.
21627
21628         (TARGET_RETURN_IN_MEMORY): Fix argument types.
21629
21630         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
21631
21632         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
21633
21634         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
21635         agree with return type.
21636
21637         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
21638
21639 2010-01-15  Jing Yu  <jingyu@google.com>
21640
21641         PR rtl-optimization/42691
21642         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
21643         a pseudo to a constant and are merged, and adjust comments.
21644
21645 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
21646
21647         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
21648
21649 2010-01-15  Richard Guenther  <rguenther@suse.de>
21650
21651         PR middle-end/42739
21652         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
21653         labels of computed or non-local gotos to the destination.
21654         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
21655         landing pad label is the first label.
21656
21657 2010-01-15  Richard Guenther  <rguenther@suse.de>
21658
21659         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
21660
21661 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21662
21663         PR target/42747
21664         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
21665         to allow generation of the xssqrtdp instruction on power7.
21666         (sqrtdf2_fpr): Ditto.
21667
21668 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
21669
21670         PR middle-end/42674
21671         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
21672         functions with noreturn attribute.
21673
21674         PR c++/42608
21675         * varasm.c (declare_weak): Add weak attribute to decl if it
21676         doesn't have one already.
21677         (assemble_external): Only add decls to weak_decls if they also
21678         have weak attribute.
21679
21680 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
21681
21682         * var-tracking.c (var_reg_delete): Don't delete the association
21683         between REGs and values or one-part variables if the register
21684         isn't clobbered.
21685
21686 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
21687
21688         PR debug/42657
21689         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
21690         because its first operand is a non-localized variable.
21691
21692 2010-01-14  Martin Jambor  <mjambor@suse.cz>
21693
21694         PR tree-optimization/42706
21695         * tree-sra.c (encountered_recursive_call): New variable.
21696         (encountered_unchangable_recursive_call): Likewise.
21697         (sra_initialize): Initialize both new variables.
21698         (callsite_has_enough_arguments_p): New function.
21699         (scan_function): Call decl and flags check only for IPA-SRA, check
21700         whether there is a recursive call and whether it has enough arguments.
21701         (all_callers_have_enough_arguments_p): New function.
21702         (convert_callers): Look for recursive calls only when
21703         encountered_recursive_call is set.
21704         (ipa_early_sra): Bail out either if
21705         !all_callers_have_enough_arguments_p or
21706         encountered_unchangable_recursive_call.
21707
21708 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21709
21710         * sel-sched.c: Add 2010 to copyright years.
21711         * sel-sched-ir.c: Likewise.
21712         * sel-sched-ir.h: Likewise.
21713
21714 2010-01-14  Martin Jambor  <mjambor@suse.cz>
21715
21716         PR tree-optimization/42714
21717         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
21718         constructors specially.
21719
21720 2010-01-14  Andi Kleen  <ak@linux.intel.com>
21721
21722         * config/i386/drivers-i386.c (detect_caches_intel):
21723         Add l2sizekb parameter and fill in.
21724         (host_detect_local_cpu): Add l2sizekb, fill in.
21725         Add Atom small cache heuristic.
21726
21727 2010-01-14  Andi Kleen  <ak@linux.intel.com>
21728
21729         * config/i386/drivers-i386.c (detect_caches_cpuid4):
21730         Add level3 parameter and fill in.
21731         (detect_caches_intel): Handle level3 cache.
21732
21733 2010-01-14  Andi Kleen  <ak@linux.intel.com>
21734
21735         * config/i386/drivers-i386.c (host_detect_local_cpu):
21736         Fix core duo detection.
21737
21738 2010-01-14  Andi Kleen  <ak@linux.intel.com>
21739
21740         * config/i386/drivers-i386.c (host_detect_local_cpu):
21741         Fix Atom detection.
21742
21743 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21744
21745         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
21746         (rs6000_variable_issue_1): this.  Use...
21747         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
21748
21749 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21750
21751         * sel-sched-ir.c (sel_restore_other_notes): Rename to
21752         sel_restore_notes.  Update all callers.  Call reemit_notes
21753         for all insns.
21754
21755 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21756
21757         PR rtl-optimization/42246
21758         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
21759         loops.
21760
21761 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21762
21763         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
21764         all successors is the same as number of successors in current region.
21765
21766 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21767
21768         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
21769         to rename is not separable.  Otherwise check that its LHS is not NULL.
21770
21771 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21772
21773         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
21774
21775 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21776
21777         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
21778         available registers when failed to discover LHS register class.
21779         Fix indentation.  Update comment.
21780
21781 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21782             Alexander Monakov  <amonakov@ispras.ru>
21783
21784         PR rtl-optimization/42389
21785         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
21786         to can_issue_more.
21787         (advance_state_on_fence): Likewise.
21788         (sel_target_adjust_priority): Print debug output only when
21789         sched_verbose >= 4, not 2.
21790         (get_expr_cost): Do not issue all unique insns on the next cycle.
21791         (fill_insns): Initialize can_issue_more from the value saved
21792         with the fence.
21793         * sel-sched-ir.c (flist_add): New parameter issue_more.
21794         Init FENCE_ISSUE_MORE with it.
21795         (merge_fences): Likewise.
21796         (init_fences): Update call to flist_add.
21797         (add_to_fences, add_clean_fence_to_fences)
21798         (add_dirty_fence_to_fences): Likewise.
21799         (move_fence_to_fences): Update call to merge_fences.
21800         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
21801         sched groups.
21802         * sel-sched-ir.h (struct _fence): New field issue_more.
21803         (FENCE_ISSUE_MORE): New accessor macro.
21804
21805 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21806
21807         PR rtl-optimization/42388
21808         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
21809         that have no predecessors nor successors.  Do not call move_bb_info
21810         for empty blocks outside of current region.
21811
21812 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21813
21814         PR rtl-optimization/42294
21815         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
21816         * sel-sched.c (move_exprs_to_boundary): Transitively add all
21817         originators' originators.
21818
21819 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
21820
21821         PR rtl-optimization/39453
21822         PR rtl-optimization/42246
21823         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
21824         for pipelining_p.
21825         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
21826
21827 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21828             Alexander Monakov  <amonakov@ispras.ru>
21829
21830         PR middle-end/42245
21831         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
21832         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
21833         argument.  Update all callers.
21834         (tidy_control_flow): ... and here.  Recompute topological order
21835         of basic blocks in region if necessary.
21836         (sel_redirect_edge_and_branch): Change return type.  Return true
21837         if topological order might have been invalidated.
21838         (purge_empty_blocks): Export and move from...
21839         * sel-sched.c (purge_empty_blocks): ... here.
21840         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
21841         (maybe_tidy_empty_bb): Delete prototype.
21842         (purge_empty_blocks): Declare.
21843
21844 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
21845
21846         PR rtl-optimization/42249
21847         * sel-sched.c (try_replace_dest_reg): When chosen register
21848         and original register is the same, do not bail out early, but
21849         still check all original insns for validity of replacing destination
21850         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
21851         in this case.
21852
21853 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
21854
21855         PR c/42721
21856         Port from no-undefined-overflow branch:
21857         2009-03-09  Richard Guenther  <rguenther@suse.de>
21858
21859         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
21860
21861 2010-01-14  Richard Guenther  <rguenther@suse.de>
21862
21863         PR lto/42665
21864         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
21865
21866 2010-01-14  Ira Rosen  <irar@il.ibm.com>
21867
21868         PR tree-optimization/42709
21869         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
21870         as scalar type in creation of constant vector operand.
21871
21872 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21873
21874         PR testsuite/42414
21875         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
21876         (check-parallel-%): Match `testsuite' directory component only
21877         at the end.
21878
21879 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
21880
21881         PR translation/39521
21882         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
21883         strings with _().
21884
21885 2010-01-13  Richard Guenther  <rguenther@suse.de>
21886
21887         PR tree-optimization/42730
21888         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
21889         offset zero.
21890
21891 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
21892
21893         PR target/pr42542
21894         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
21895         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
21896         them signed.
21897
21898 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
21899
21900         * config/bfin/libgcc-bfin.ver: Regenerate based on current
21901         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
21902         ___umulsi3_highpart.
21903
21904         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
21905         rather than schedule_insns if the pass is enabled.
21906
21907 2010-01-13  Martin Jambor  <mjambor@suse.cz>
21908
21909         PR tree-optimization/42704
21910         * tree-sra.c (sra_modify_assign): Do not delete assignments to
21911         SSA_NAMEs.
21912
21913 2010-01-13  Martin Jambor  <mjambor@suse.cz>
21914
21915         PR tree-optimization/42703
21916         * tree-sra.c (analyze_access_subtree): Check that we can build a
21917         reference to the original data within the aggregate.
21918
21919 2010-01-13  Richard Guenther  <rguenther@suse.de>
21920
21921         PR tree-optimization/42705
21922         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
21923
21924 2010-01-13  Richard Guenther  <rguenther@suse.de>
21925
21926         PR middle-end/42716
21927         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
21928
21929 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
21930
21931         PR debug/41371
21932         * var-tracking.c (values_to_unmark): New variable.
21933         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
21934         values_to_unmark vector.  Moved body to...
21935         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
21936         instead queue it into values_to_unmark vector.
21937         (vt_find_locations): Free values_to_unmark vector.
21938
21939 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
21940
21941         * config/s390/s390.c (override_options): Set
21942         default of max-pending-list-length to 256
21943
21944 2010-01-13  Richard Guenther  <rguenther@suse.de>
21945
21946         PR lto/42678
21947         * tree-pass.h (PROP_gimple_lcx): New.
21948         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
21949         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
21950         before the final cleanup_eh.
21951         (dump_properties): Dump PROP_gimple_lcx.
21952         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
21953         (tree_lower_complex_O0): Remove.
21954         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
21955         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
21956         tree_lower_complex, schedule TODO_update_ssa.
21957         * lto-streamer-out.c (output_function): Stream the functions
21958         properties.
21959         * lto-streamer-in.c (input_function): Likewise.
21960         (lto_read_body): Do not override them here.
21961
21962 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
21963
21964         PR c/42708
21965         * c-typeck.c (build_c_cast): Fold value cast to union type before
21966         wrapping it in a CONSTRUCTOR.
21967
21968 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
21969
21970         PR rtl-optimization/42699
21971         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
21972         involved.
21973
21974 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21975
21976         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
21977         SUBTARGET_WARN_UNUSED_SPEC): Move ...
21978         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
21979         SUBTARGET_WARN_UNUSED_SPEC): ... here
21980         * config/mips/iris5.h (LIBGCC_SPEC): Define.
21981
21982 2010-01-12  Julian Brown  <julian@codesourcery.com>
21983
21984         * config/arm/neon-schedgen.ml (Utils): Don't try to
21985         open missing module.
21986         (find_with_result): New.
21987
21988 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
21989
21990         PR debug/42662
21991         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
21992         sharing when canonicalizing ({lt,ge}u (plus a b) b).
21993
21994         PR tree-optimization/42645
21995         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
21996         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
21997         decl_map, set processing_debug_stmt to -1 and return name without
21998         any remapping.
21999
22000 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
22001
22002         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22003         binutils version, and reword target configuration description.
22004
22005 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22006
22007         * config/avr/avr.h (LINKER_NAME): Remove.
22008
22009 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
22010
22011         PR target/42416
22012         * config/rs6000/rs6000.c (rs6000_override_options): On targets
22013         that support VSX, warn for -mno-altivec if vsx is not disabled,
22014         and disable vsx.
22015
22016 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
22017             Shujing Zhao  <pearly.zhao@oracle.com>
22018
22019         PR translation/42469
22020         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22021         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22022         character between option name and help text.
22023         * c.opt (imultilib): Likewise.
22024
22025 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
22026
22027         * lto-streamer-out.c (output_unreferenced_globals): Output static
22028         variables.
22029
22030 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
22031
22032         PR rtl-optimization/42621
22033         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22034         optimizing for size.
22035         (duplicate_computed_gotos): Remove now-redundant check.
22036
22037 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
22038
22039         PR target/37454
22040         * configure.ac: Save and restore LDFLAGS and LIBS
22041         * configure: Regenerate.
22042
22043 2010-01-10  Richard Guenther  <rguenther@suse.de>
22044
22045         PR middle-end/42667
22046         * builtins.c (fold_builtin_strlen): Add type argument and
22047         convert the resulting length to it.
22048         (fold_builtin_1): Adjust.
22049
22050 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22051
22052         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22053         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22054         1 insn.
22055         (num_insns_constant_wide): Adjust for that change.
22056
22057 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22058
22059         PR debug/42631
22060         * web.c (union_defs): Add used argument, to combine uses of
22061         uninitialized regs.
22062         (entry_register): Adjust type and tests of used argument.
22063         (web_main): Widen used for new use.  Pass it to union_defs.
22064         * df.h (union_defs): Adjust prototype.
22065
22066 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22067
22068         PR debug/42630
22069         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22070         uses in new incoming argument.  Free body.
22071         (reset_debug_uses_in_loop): New.
22072         (analyze_insn_to_expand_var): Call the latter if the former found
22073         anything.  Fix whitespace.  Reject invalid dest overlaps before
22074         going through all insns in the loop.
22075
22076 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22077
22078         PR debug/42629
22079         * haifa-sched.c (dying_use_p): Debug insns don't count.
22080
22081 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22082
22083         PR middle-end/42363
22084         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22085         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22086         (verify_gimple_call): Reject LHS in noreturn calls.
22087
22088 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22089
22090         PR debug/42604
22091         PR debug/42395
22092         * tree-vect-loop-manip.c (adjust_info): New type.
22093         (adjust_vec): New pointer to vector.
22094         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22095         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22096         (slpeel_update_phis_for_duplicate_loop): Use them.
22097         (slpeel_update_phi_nodes_for_guard1): Likewise.
22098         (slpeel_update_phi_nodes_for_guard2): Likewise.
22099         (slpeel_tree_peel_loop_to_edge): Likewise.
22100         (vect_update_ivs_after_vectorizer): Likewise.
22101
22102 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22103
22104         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22105         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22106
22107 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
22108
22109         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22110         bogus uninitialized warning.
22111
22112 2010-01-09  Richard Guenther  <rguenther@suse.de>
22113
22114         PR middle-end/42512
22115         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22116         the evolution is compatible with the initial condition.
22117
22118 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
22119
22120         * gcc.c (process_command): Update copyright notice dates.
22121         * gcov.c (print_version): Likewise.
22122         * gcov-dump.c (print_version): Likewise.
22123         * mips-tfile.c (main): Likewise.
22124         * mips-tdump.c (main): Likewise.
22125
22126 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
22127
22128         PR target/41885
22129         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22130         (rotlhi3): Delete.
22131         (rotlhi3_8): Delete.
22132         (rotlsi3): Delete.
22133         (rotlsi3_8): Delete.
22134         (rotlsi3_16): Delete.
22135         (rotlsi3_24): Delete.
22136         (rotl<mode>3): New.
22137         (*rotw<mode>3): New.
22138         (*rotb<mode>3): New.
22139         * config/avr/avr.c (avr_rotate_bytes): New function.
22140         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22141
22142 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
22143
22144         PR target/37454
22145         * configure.ac: Modify -rdynamic check.
22146         * configure: Regenerate.
22147
22148 2010-01-08  DJ Delorie  <dj@redhat.com>
22149
22150         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22151         register popping order.
22152
22153 2010-01-08  Richard Guenther  <rguenther@suse.de>
22154
22155         PR lto/42528
22156         * c.opt (fsigned-char): Also let LTO handle this option.
22157         (funsigned-char): Likewise.
22158
22159 2010-01-07  Richard Guenther  <rguenther@suse.de>
22160
22161         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22162         (gimple_op): Likewise.
22163         (gimple_op_ptr): Likewise.
22164         (gimple_assign_set_lhs): Remove gcc_assert.
22165         (gimple_assign_set_rhs1): Likewise.
22166         (gimple_assign_set_rhs2): Likewise.
22167         (gimple_call_set_lhs): Likewise.
22168         (gimple_call_set_fn): Likewise.
22169         (gimple_call_set_fndecl): Likewise.
22170         (gimple_call_fndecl): Likewise.
22171         (gimple_call_return_type): Likewise.
22172         (gimple_call_set_chain): Likewise.
22173         (gimple_call_num_args): Likewise.
22174         (gimple_call_set_arg): Likewise.
22175         (gimple_cond_set_code): Likewise.
22176         (gimple_cond_set_lhs): Likewise.
22177         (gimple_cond_set_rhs): Likewise.
22178         (gimple_cond_set_true_label): Likewise.
22179         (gimple_cond_set_false_label): Likewise.
22180         (gimple_label_set_label): Likewise.
22181         (gimple_goto_set_dest): Likewise.
22182         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22183         (gimple_debug_bind_get_value): Likewise.
22184         (gimple_debug_bind_get_value_ptr): Likewise.
22185         (gimple_debug_bind_set_var): Likewise.
22186         (gimple_debug_bind_set_value): Likewise.
22187         (gimple_debug_bind_reset_value): Likewise.
22188         (gimple_debug_bind_has_value_p): Likewise.
22189         (gimple_return_retval_ptr): Remove gcc_assert.
22190         (gimple_return_retval): Likewise.
22191         (gimple_return_set_retval): Likewise.
22192         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22193         (safe_referenced_var_iterator): Remove.
22194         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22195         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22196         (fill_referenced_var_vec): Remove.
22197         (first_readonly_imm_use): Remove redundant gcc_assert.
22198         (phi_arg_index_from_use): Combine gcc_asserts.
22199         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22200         (first_imm_use_stmt): Remove redundant gcc_assert.
22201         * tree-cfg.c (verify_gimple_call): Verify function and chain
22202         operands.  Verify arguments.
22203         (verify_types_in_gimple_stmt): Verify condition code and labels.
22204
22205 2010-01-07  Richard Guenther  <rguenther@suse.de>
22206
22207         PR tree-optimization/42641
22208         * sese.c (rename_map_elt_info): Use the SSA name version, do
22209         not hash pointers.
22210
22211 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
22212
22213         PR tree-optimization/42625
22214         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22215         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22216
22217 2010-01-07  Duncan Sands  <baldrick@free.fr>
22218
22219         * Makefile.in (PLUGIN_HEADERS): Add version.h.
22220
22221 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
22222
22223         PR target/42511
22224         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22225         note itself is not function_invariant_p.
22226
22227 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
22228
22229         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22230         Do not add the DF_NOTE problem.
22231         * store-motion.c (execute_rtl_store_motion): Likewise.
22232
22233 2010-01-07  Martin Jambor  <mjambor@suse.cz>
22234
22235         PR tree-optimization/42157
22236         * tree-sra.c (compare_access_positions): Stabilize sort if both
22237         accesses have integer types, return zero immediately if they are the
22238         same.
22239
22240 2010-01-06  Richard Henderson  <rth@redhat.com>
22241
22242         PR middle-end/41883
22243         * haifa-sched.c (add_to_note_list): Merge into ...
22244         (concat_note_lists): ... here, and ...
22245         (unlink_other_notes, rm_other_notes): Merge into...
22246         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
22247         NOTE_INSN_EPILOGUE_BEG.
22248
22249 2010-01-06  Richard Guenther  <rguenther@suse.de>
22250
22251         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22252         not inline regular functions into always-inline functions.
22253
22254 2010-01-06  Nick Clifton  <nickc@redhat.com>
22255
22256         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22257         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22258         used together.
22259         (OVERRIDE_OPTIONS): Delete.
22260         (OPTIMIZATION_OPTIONS): Define.
22261         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22262         * config/rx/rx.c (rx_handle_option): Issue an error message if
22263         -mcpu=rx200 and -fpu are used together.
22264         (rx_set_optimization_options): New function.  Issue an error
22265         message if an optimization attribute attempts to reset the FPU/
22266         math optimization pairing.
22267         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22268         * config/rx/rx.opt: Set the default to 32-bit doubles.
22269         * config/rx/t-rx: Add multilibs for -nofpu option.
22270         * doc/invoke.texi: Update documentation of RX options.
22271
22272 2010-01-06  Richard Guenther  <rguenther@suse.de>
22273
22274         * tree-ssa-pre.c (name_to_id): New global.
22275         (alloc_expression_id): Simplify SSA name handling.
22276         (lookup_expression_id): Likewise.
22277         (init_pre): Zero name_to_id.
22278         (fini_pre): Free it.
22279
22280 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
22281
22282         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22283
22284 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22285
22286         PR target/42542
22287         * config/i386/sse.md (smaxv2di3): New.
22288         (umaxv2di3): Likewise.
22289         (sminv2di3): Likewise.
22290         (uminv2di3): Likewise.
22291
22292 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
22293
22294         PR target/42564
22295         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22296         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22297         (legitimize_tls_address): Likewise.
22298         (sparc_tls_referenced_p): Likewise.
22299         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22300         and adjust calls to legitimize_pic_address.
22301         (legitimate_constant_p) Use sparc_tls_referenced_p.
22302         (legitimate_pic_operand_p): Likewise.
22303         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22304         (sparc_tls_symbol_ref_1): Delete.
22305         (sparc_tls_referenced_p): Make static, recognize specific patterns.
22306         (legitimize_tls_address): Make static, handle CONST patterns.
22307         (legitimize_pic_address): Make static, remove unused parameter and
22308         adjust recursive calls.
22309         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22310         and adjust call to legitimize_pic_address.
22311         (sparc_output_mi_thunk): Likewise.
22312
22313 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
22314             H.J. Lu  <hongjiu.lu@intel.com>
22315
22316         PR target/42542
22317         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
22318         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
22319         operands to make them signed.
22320
22321         Revert:
22322         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22323
22324         PR target/42542
22325         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22326         GTU to GT for V4SI and V2DI.
22327
22328         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22329         (umin<mode>3): Removed.
22330         (uminv8hi3): New.
22331         (uminv4si3): Likewise.
22332
22333 2010-01-05  Martin Jambor  <mjambor@suse.cz>
22334
22335         PR tree-optimization/42462
22336         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
22337         current_function_decl to helper functions and macros.
22338
22339 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22340
22341         PR bootstrap/41771
22342         * flags.h: Don't include real.h.
22343         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
22344         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
22345         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
22346         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
22347         * dominance.c: Update copyright.
22348         * gimple.c (walk_gimple_op): Remove inline.
22349         * tree-ssa-reassoc.c: Include real.h.
22350         * Makefile.in (FLAGS_H): Remove $(REAL_H).
22351         (tree-ssa-reassoc.o): Depend on $(REAL_H).
22352
22353 2010-01-05  Nick Clifton  <nickc@redhat.com>
22354
22355         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
22356         register to push into the stack frame when the accumulator has to
22357         be saved during interrupts.
22358
22359 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
22360
22361         * doc/invoke.texi: Remove the documentation about option
22362         -Wunreachable-code.
22363         * common.opt (Wunreachable-code):  Preserved for backward
22364         compatibility.
22365         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
22366         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
22367         the backward compatibility flag section.
22368
22369 2010-01-05  Richard Guenther  <rguenther@suse.de>
22370
22371         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
22372
22373 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
22374
22375         PR other/42611
22376         * cfgexpand.c (expand_one_var): Diagnose too large variables.
22377
22378         PR tree-optimization/42508
22379         * tree-sra.c (convert_callers): Check for recursive call
22380         by comparing cgraph nodes instead of decls.
22381         (modify_function): Call ipa_modify_formal_parameters also
22382         on all same_body aliases.
22383
22384         * cgraphunit.c (cgraph_materialize_all_clones): Compare
22385         cgraph nodes when checking for same_body aliases.
22386
22387 2010-01-05  Richard Guenther  <rguenther@suse.de>
22388
22389         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
22390         allocation and lookup.
22391         (get_or_alloc_expr_for_constant): Likewise.
22392         (phi_translate): Sink allocation.
22393
22394 2010-01-04  Richard Guenther  <rguenther@suse.de>
22395
22396         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
22397         a new entry only if needed.
22398         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
22399         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
22400         hashtable lookup.
22401         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
22402         the result array.
22403         (phi_translate): Handle CONSTANTs early.
22404
22405 2010-01-04  Martin Jambor  <mjambor@suse.cz>
22406
22407         PR tree-optimization/42398
22408         * tree-sra.c (struct access): Removed flag grp_different_types.
22409         (dump_access): Do not dump the removed flag.
22410         (sort_and_splice_var_accesses): Do not set the removed flag.
22411         (sra_modify_expr): Check for type compatibility directly.
22412
22413 2010-01-04  Martin Jambor  <mjambor@suse.cz>
22414
22415         PR tree-optimization/42366
22416         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
22417         edges with variable number of parameters.
22418         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
22419         flag instead of asserting it.
22420         (ipa_read_node_info): Read uses_analysis_done flag.
22421
22422 2010-01-04  Richard Guenther  <rguenther@suse.de>
22423
22424         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
22425         iterative_hash_* as intended.
22426         (vn_reference_compute_hash): Likewise.  Simplify hashing
22427         SSA names.
22428         (vn_reference_lookup_2): Likewise.
22429         (vn_nary_op_compute_hash): Likewise.
22430         (vn_phi_compute_hash): Likewise.
22431         (expressions_equal_p): Remove strange code.
22432         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
22433         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
22434         (bitmap_insert_into_set_1): Take value-id as parameter.
22435         (add_to_value): Pass it.
22436         (bitmap_insert_into_set): Likewise.
22437         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
22438
22439 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
22440
22441         PR driver/42442
22442         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
22443         (do_self_spec): For switches with SWITCH_IGNORE set set also
22444         SWITCH_IGNORE_PERMANENTLY.
22445         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
22446         of SWITCH_IGNORE.
22447
22448 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
22449
22450         * lto-streamer-out.c (output_unreferenced_globals): Output the full
22451         tree of an unreferenced global var.
22452
22453 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22454
22455         PR target/42542
22456         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22457         GTU to GT for V4SI and V2DI.
22458
22459         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22460         (umin<mode>3): Removed.
22461         (uminv8hi3): New.
22462         (uminv4si3): Likewise.
22463
22464 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
22465
22466         PR lto/42581
22467         * collect2.c (main): Turn on trace in collect2 if -v is passed
22468         to gcc with LTO.
22469
22470 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
22471
22472         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
22473         description of expression operand.
22474
22475 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
22476
22477         * configure.ac: Add install-html to target_list for Make-hooks.
22478         * configure: Regenerate.
22479         * fortran/Make-lang.in (F95_HTMLFILES): New.
22480         (fortran.html): Use it.
22481         (fortran.install-html): New.
22482         * Makefile.in (install-html): Add lang.install-html.
22483         * java/Make-lang.in (JAVA_HTMLFILES): New.
22484         (java.html): Use it.
22485         (java.install-html): New.
22486         * objc/Make-lang.in (objc.install-html): New.
22487         * objcp/Make-lang.in (obj-c++.install-html): New.
22488         * cp/Make-lang.in (c++.install-html): New.
22489         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
22490         * lto/Make-lang.in (lto.install-html): New.
22491
22492 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
22493
22494         PR lto/42520
22495         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
22496
22497 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
22498
22499         PR rtl-optimization/41862
22500         * store-motion.c (store_killed_in_insn, compute_store_table,
22501         remove_reachable_equiv_notes, replace_store_insn,
22502         build_store_vectors): Ignore all DEBUG_INSNs.
22503
22504 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
22505
22506         PR lto/41564
22507         * common.opt: Add dumpdir.
22508
22509         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
22510         isn't specified.
22511         (option_map): Add --dumpdir.
22512
22513         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
22514
22515         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
22516
22517         * opts.c (decode_options): Try dump_dir_name first if
22518         dump_base_name isn't an absolute path.
22519         (common_handle_option): Handle OPT_dumpdir.
22520
22521         * toplev.c (dump_dir_name): New.
22522         (print_switch_values): Also ignore -dumpdir.
22523
22524         * toplev.h (dump_dir_name): New.
22525
22526 2010-01-03  Richard Guenther  <rguenther@suse.de>
22527
22528         PR tree-optimization/42589
22529         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
22530         double-word expansion of bswap32.
22531
22532 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
22533
22534         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
22535         with BLOCK_FOR_INSN.
22536         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
22537         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
22538         noce_process_if_block): Likewise.
22539         * gcse.c (compute_local_properties, insert_expr_in_table,
22540         insert_set_in_table, canon_list_insert, find_avail_set,
22541         pre_insert_copy_insn): Likewise.
22542
22543         * basic-block.h (BLOCK_NUM): Move from here...
22544         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
22545
22546 2010-01-03  Richard Guenther  <rguenther@suse.de>
22547
22548         PR tree-optimization/42438
22549         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
22550         contains_may_not_return_call flag.
22551         (BB_MAY_NOTRETURN): New.
22552         (valid_in_sets): Trapping nary operations are not valid
22553         in blocks that may not return.
22554         (insert_into_preds_of_block): Remove check for trapping expressions.
22555         (compute_avail): Compute also BB_MAY_NOTRETURN.
22556
22557 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
22558
22559         * doc/invoke.texi: Add 2010 to copyright years.
22560
22561 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
22562
22563         * config/sparc/sparc.c: Fix formatting nits.
22564
22565 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
22566             Alexander Monakov  <amonakov@ispras.ru>
22567
22568         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
22569
22570 2010-01-02  Richard Guenther  <rguenther@suse.de>
22571
22572         PR middle-end/42577
22573         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
22574         (simplify_switch_using_ranges): Mark to be removed edges
22575         as non-executable.
22576
22577 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22578
22579         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
22580
22581         * collect2.c (scan_libraries): Add missing argument in call to
22582         scan_prog_file.
22583
22584 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
22585
22586         PR target/42448
22587         * config/alpha/predicates.md (aligned_memory_operand): Return false
22588         for CQImode.
22589         (unaligned_memory_operand): Return true for CQImode.
22590         * config/alpha/alpha.c (get_aligned_mem): Assert that location
22591         doesn not cross aligned SImode word boundary.
22592
22593 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
22594
22595         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
22596         Remove.
22597         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
22598         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
22599
22600 2010-01-02  Richard Guenther  <rguenther@suse.de>
22601
22602         PR lto/41597
22603         * toplev.c (compile_file): Emit LTO marker properly.  Change
22604         it to __gnu_lto_v1.
22605         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
22606
22607 2010-01-01  Richard Guenther  <rguenther@suse.de>
22608
22609         PR debug/42455
22610         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
22611
22612 2010-01-01  Richard Guenther  <rguenther@suse.de>
22613
22614         PR c/42570
22615         * c-decl.c (grokdeclarator): For zero-size arrays force
22616         structural equality checks as layout_type does.
22617
22618 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
22619
22620         * builtins.c: Update copyright to 2010.
22621
22622 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
22623
22624         PR lto/42531
22625         * lto-streamer-out.c (produce_asm): Revert the last change.
22626         (copy_function): Likewise.
22627
22628         * lto-streamer.c (lto_get_section_name): Skip any leading
22629         asterisk in name.
22630
22631 2010-01-01  Richard Guenther  <rguenther@suse.de>
22632
22633         PR middle-end/42559
22634         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
22635         for LABEL_DECLs.
22636
22637 \f
22638 Copyright (C) 2010 Free Software Foundation, Inc.
22639
22640 Copying and distribution of this file, with or without modification,
22641 are permitted in any medium without royalty provided the copyright
22642 notice and this notice are preserved.