OSDN Git Service

2010-07-29 Martin Jambor <mjambor@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-07-29  Martin Jambor  <mjambor@suse.cz>
2
3         * dbgcnt.def (eipa_sra): New counter.
4         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
5
6 2010-07-29  Xinliang David Li  <davidxl@google.com>
7
8         PR bootstrap/45119
9         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
10         in revision 162652.
11
12 2010-07-29  Richard Guenther  <rguenther@suse.de>
13
14         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
15         (TV_TREE_STORE_CCP): Likewise.
16         (TV_TREE_REDPHI): Likewise.
17
18 2010-07-29  Richard Guenther  <rguenther@suse.de>
19
20         * double-int.h (double_int_and_not): New function.
21         * combine.c (try_combine): Use it.
22         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
23
24 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
25
26         PR rtl-optimization/42575
27         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
28         Argument AU removed.  All callers changed.  Ignore artificial refs.
29         Use return value of df_word_lr_simulate_defs to decide whether an insn
30         is necessary.
31         (fast_dce): Rename arg to WORD_LEVEL.
32         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
33         static.
34         (pass_fast_rtl_byte_dce): Delete.
35         * dce.h (run_word_dce): Declare.
36         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
37         All callers changed.  Simplify code to only deal with two-word regs.
38         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
39         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
40         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
41         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
42         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
43         (df_word_lr_mark_ref): Declare.
44         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
45         df_word_lr_simulate_uses): Declare or rename from byte variants.
46         (df_byte_lr_simulate_artificial_refs_at_top,
47         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
48         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
49         declarations.
50         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
51         (enum df_mm): Delete.
52         * df-byte-scan.c: Delete file.
53         * df-problems.c (df_word_lr_problem_data): Renamed from
54         df_byte_lr_problem_data, all members deleted except for
55         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
56         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
57         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
58         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
59         df_byte_lr_confluence_0): Delete functions.
60         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
61         callers changed.
62         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
63         Don't initialize members that were deleted, don't try to discover data
64         about registers.  Ignore hard regs.
65         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
66         (df_word_lr_mark_ref): New function.
67         (df_word_lr_bb_local_compute): Renamed from
68         df_byte_bb_lr_local_compute; all callers changed.  Use
69         df_word_lr_mark_ref.  Assert that artificial refs don't include
70         pseudos.  Ignore hard registers.
71         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
72         Assert that exit block uses don't contain pseudos.
73         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
74         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
75         callers changed.  Ignore hard regs.
76         (df_word_lr_transfer_function): Renamed from
77         df_byte_lr_transfer_function; all callers changed.
78         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
79         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
80         changed.
81         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
82         callers changed.
83         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
84         confluence operator 0 set to NULL.
85         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
86         callers changed.
87         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
88         Return bool, true if bitmap changed or insn otherwise necessary.
89         All callers changed.  Simplify using df_word_lr_mark_ref.
90         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
91         all callers changed.  Simplify using df_word_lr_mark_ref.
92         * lower-subreg.c: Include "dce.h"
93         (decompose_multiword_subregs): Call run_word_dce if df available.
94         * Makefile.in (lower-subreg.o): Adjust dependencies.
95         (df-byte-scan.o): Delete.
96         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
97
98 2010-07-29  Richard Guenther  <rguenther@suse.de>
99
100         * tree.c (build_vector): Assert that the vector constant
101         has enough elements.
102         (build_vector_from_ctor): Pad with trailing zeros.
103
104 2010-07-29  Richard Guenther  <rguenther@suse.de>
105
106         PR tree-optimization/45120
107         * tree-ssa-structalias.c (get_constraint_for_component_ref):
108         Handle offset in DEREFs properly.
109         (get_constraint_for_1): Handle MEM_REF offset properly.
110
111 2010-07-29  Richard Guenther  <rguenther@suse.de>
112
113         PR middle-end/45034
114         * convert.c (convert_to_integer): Always use an unsigned
115         type for narrowed negate and bitwise not.
116
117 2010-07-29  Ira Rosen  <irar@il.ibm.com>
118
119         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
120         to outer loop when creating reduction epilogue for double reduction, 
121         and switch back to the inner loop when updating the phi nodes.
122         Update uses of outer loop exit phi nodes in double reduction (instead
123         of uses of reduction).
124
125 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
126
127         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
128         popcount on power7 and parity on power6 systems.
129         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
130         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
131         instructions.
132
133         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
134         (UNSPEC_PARITY): Ditto.
135         (SFDF): New iterator for SF/DF.
136         (rreg2): New mode attribute for floating register constraint.
137         (TARGET_FLOAT): New mode attribute for whether single/double float
138         is supported.
139         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
140         pattern.
141         (parity<mode>2_cmpb): New insn for parity on power6 and newer
142         machines.
143         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
144         pattern.  Add support for fcpsgn instruction added in power6.
145         (copysignsf3): Delete.
146         (copysigndf3): Delete.
147         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
148         instead of if_then_else in RTL to avoid problems with -0.
149
150         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
151         of if_then_else to mirror scalar code.
152         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
153         rs6000.md.
154
155         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
156         instead of if_then_else.
157
158 2010-07-28  Xinliang David Li  <davidxl@google.com>
159
160         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
161         (dump_cand): Dump var_before/after.
162         (htab_inv_expr_eq): New function.
163         (htab_inv_expr_hash): New function.
164         (tree_ssa_iv_optimize_init): Support pseudo invariants.
165         (add_candidate_1): consider base type precision.
166         (set_use_iv_cost): New parameter.
167         (adjust_setup_cost): Use profile information.
168         (get_address_cost): Do not hard code width in computing address
169         offset limits.
170         (compare_aff_trees): New function.
171         (get_loop_invariant_expr_id): New function.
172         (get_computation_cost_at): New parameter and use profile information.
173         (get_computation_cost): New parameter.
174         (determine_use_iv_cost_generic): Pass new parameter.
175         (determine_use_iv_cost_address): Ditto.
176         (determine_use_iv_cost_condition): Ditto.
177         (autoinc_possible_for_pair): Ditto.
178         (determine_use_iv_costs): More dumps.
179         (iv_ca_get_num_inv_exprs): New function.
180         (iv_ca_recount_cost): Consider loop invariants in register pressure
181         cost.
182         (iv_ca_add_use): New parameter.
183         (iv_ca_dump): Better dumping.
184         (iv_ca_extend): New parameter.
185         (try_add_cand_for): Attempt to get better partial solution.
186         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
187         (create_new-ivs): More dumps.
188         (rewrite_use_compare): Ditto.
189         (free_loop_data): More cleanup.
190         (treee_ssa_iv_optimize_finalize): Ditto.
191
192 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
193
194         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
195         * config/i386/i386.c (ix86_profile_before_prologue): New.
196         (override_options): Add special handling for -mfentry.
197         (ix86_function_regparm): Likewise.
198         (ix86_function_sseregparm): Likewise.
199         (ix86_frame_pointer_required): Likewise.
200         (ix86_expand_prologue): Check for ms_hook_prologue.
201         (x86_function_profiler): Adjust mcount output.
202         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
203         * config/i386/i386.opt (mfentry): New.
204         * doc/invoke.texi (mfentry): Add documentation.
205         * doc/tm.texi: Regenerated..
206         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
207         * final.c (final_start_function): Replace macro
208         PROFILE_BEFORE_PROLOGUE by target hook.
209         * function.c (thread_prologue_and_epilogue_insns): Likewise.
210         * target.def (profile_before_prologue): New hook.
211         * targhooks.c (default_profile_before_prologue): New.
212         * targhooks.h (default_profile_before_prologue): New.
213
214 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
215
216         PR debug/45105
217         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
218
219         PR debug/45103
220         * dwarf2out.c (dwarf2out_var_location): Always consider
221         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
222
223 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
224
225         PR rtl-optimization/45107
226         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
227
228 2010-07-28  Richard Guenther  <rguenther@suse.de>
229
230         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
231         (set_lattice_value): Do not query an old default value.
232         (get_value_for_expr): New function.  Properly canonicalize
233         float values.
234         (ccp_visit_phi_node): Use it.
235
236 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
237
238         * config/arm/arm.c (arm_pcs_default): Remove static.
239         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
240         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
241         (arm_pcs_default): Declare.
242
243 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
244
245         * config/rs6000/rs6000.c (rs6000_override_options): 
246         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
247         ... to darwin_rs6000_override_options.
248         (rs6000_return_in_memory): Update preceding comment for darwin
249         64 bit ABI.  Use TARGET_MACHO inline.
250         (rs6000_darwin64_struct_check_p): New.
251         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
252         (function_arg): Likewise.
253         (rs6000_arg_partial_bytes): Likewise.
254         (rs6000_function_value): Likewise.
255
256 2010-07-28  Andi Kleen <ak@linux.intel.com>
257
258         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
259
260 2010-07-28  Richard Guenther  <rguenther@suse.de>
261
262         PR middle-end/44903
263         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
264         targets try harder to not generate unaligned accesses.
265
266 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
267
268         PR rtl-optimization/45101
269         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
270         for gcse-las.
271
272 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
273
274         PR tree-optimization/44885
275         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
276         with non-aliased component.
277
278 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
279
280         * config/darwin-driver.c (SWITCH_TAKES_ARG,
281         WORD_SWITCH_TAKES_ARG): Remove.
282         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
283         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
284         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
285         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
286         definitions from gcc.c.
287         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
288         defaults.h.
289         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
290         Move to defaults.h.
291         * opts-common.c: Include tm.h.
292         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
293         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
294         Handle more than one argument.  Set canonical_option_num_elements.
295         (decode_cmdline_options_to_array): Set
296         canonical_option_num_elements and trailing elements of
297         canonical_option.
298         * opts.h (struct cl_decoded_option): Allow four elements in
299         canonical_option.  Add field canonical_option_num_elements.
300         * Makefile.in (opts-common.o): Update dependencies.
301
302 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
303
304         PR middle-end/44790
305         PR middle-end/44993
306         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
307         sure the base has address_mode before adding the offset.
308
309 2010-07-27  Xinliang David Li <davidxl@google.com>
310
311         * tree-flow.h (create_mem_ref): Add one new parameter.
312         * tree-ssa-address.c (create_mem_ref): New parameter.
313         (addr_to_parts): Ditto.
314         (move_variant_to_index): New function.
315         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
316
317 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
318
319         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
320         4 and 5.
321         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
322         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
323         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
324         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
325         CODE_LABELs and NOTEs.
326         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
327         * combine.c (try_combine): Likewise.
328         * ira.c (setup_prohibited_mode_move_regs): Likewise.
329         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
330
331 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
332
333         * coretypes.h (struct cl_option_handlers): Declare.
334         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
335         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
336         * langhooks-def.h (lhd_handle_option): Declare.
337         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
338         * langhooks.c (lhd_handle_option): New.
339         * langhooks.h (struct lang_hooks): Update prototype and return
340         value type of handle_option hook.
341         * optc-gen.awk: Generate target_flags_explicit definition for the
342         driver.
343         * opts-common.c: Include diagnostic.h.
344         (handle_option): Move from opts.c.  Update prototype and return
345         value type.  Use handlers structure.
346         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
347         handlers structure.
348         (set_option): Move from opts.c.
349         * opts.c (common_handle_option): Update prototype and return value
350         type.  Update calls to handle_option and enable_warning_as_error.
351         (unknown_option_callback, post_handling_callback,
352         lang_handle_option, target_handle_option): New.
353         (handle_option, read_cmdline_option): Move to opts-common.c.
354         (read_cmdline_options): Update prototype.  Update call to
355         read_cmdline_option.
356         (decode_options): Initialize and use handlers structure.
357         (set_option): Move to opts-common.c.
358         (enable_warning_as_error): Update prototype.  Update call to
359         handle_option.
360         * opts.h (struct cl_option_handler_func, struct
361         cl_option_handlers): New.
362         (handle_option, enable_warning_as_error): Update prototypes.
363         (read_cmdline_option): Declare.
364         * Makefile.in (opts-common.o): Update dependencies.
365
366 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
367
368         * config/arm/arm.c (params.h): Include.
369         (arm_override_options): Tune gcse-unrestricted-cost.
370         * config/arm/t-arm (arm.o): Define dependencies.
371
372 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
373
374         PR target/42495
375         PR middle-end/42574
376         * basic-block.h (get_dominated_to_depth): Declare.
377         * dominance.c (get_dominated_to_depth): New function, use
378         get_all_dominated_blocks as a base.
379         (get_all_dominated_blocks): Use get_dominated_to_depth.
380
381         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
382         (hoist_exprs): Remove.
383         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
384         (compute_code_hoist_vbeinout): Add debug print outs.
385         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
386
387         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
388         quadratic behavior.
389         * params.h (MAX_HOIST_DEPTH): New macro.
390         * doc/invoke.texi (max-hoist-depth): Document.
391
392 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
393
394         PR rtl-optimization/40956
395         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
396         constants.
397
398 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
399
400         PR target/42495
401         PR middle-end/42574
402         * config/arm/arm.c (legitimize_pic_address): Use
403         gen_calculate_pic_address pattern to emit calculation of PIC address.
404         (will_be_in_index_register): New function.
405         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
406         (thumb1_legitimate_address_p): Use it provided !strict_p.
407         * config/arm/arm.md (calculate_pic_address): New expand and split.
408
409 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
410
411         PR target/42495
412         PR middle-end/42574
413         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
414         * config/arm/arm.md (define_split "J", define_split "K"): Make
415         IRA/reload friendly.
416
417 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
418
419         * gcse.c (insert_insn_end_basic_block): Update signature, remove
420         unused checks.
421         (pre_edge_insert, hoist_code): Update.
422
423 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
424
425         PR target/42495
426         PR middle-end/42574
427         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
428
429 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
430
431         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
432
433 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
434
435         PR rtl-optimization/40956
436         PR target/42495
437         PR middle-end/42574
438         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
439         for hoisting.
440         (hoist_code): Count occurences in current block too.
441
442 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
443
444         * gcse.c (struct expr:max_distance): New field.
445         (doing_code_hoisting_p): New static variable.
446         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
447         simple expressions, don't change behavior for PRE.  Set max_distance.
448         (insert_expr_in_table): Set new max_distance field.
449         (hash_scan_set): Update.
450         (hoist_expr_reaches_here_p): Stop search after max_distance
451         instructions.
452         (find_occr_in_bb): New static function.  Use it in ...
453         (hoist_code): Calculate sizes of basic block before any changes are
454         done.  Pass max_distance to hoist_expr_reaches_here_p.
455         (one_code_hoisting_pass): Set doing_code_hoisting_p.
456
457         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
458         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
459         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
460         macros.
461         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
462         Document.
463
464 2010-07-27  Jeff Law  <law@redhat.com>
465             Maxim Kuvyrkov  <maxim@codesourcery.com>
466
467         * gcse.c (compute_transpout, transpout): Remove, move logic
468         to prune_expressions.
469         (compute_pre_data): Move pruning of trapping expressions ...
470         (prune_expressions): ... here.  New static function.
471         (compute_code_hoist_data): Use it.
472         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
473
474 2010-07-27  Xinliang David Li  <davidxl@google.com>
475
476         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
477         (rewrite_use_address): Adjust iv update position when needed.
478
479 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
480
481         * dbgcnt.def (hoist_insn): New debug counter.
482         * gcse.c (hoist_code): Use it.
483
484 2010-07-27  Xinliang David Li  <davidxl@google.com>
485
486         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
487         (niter_for_single_dom_exit): Passes additional parameter.
488         (iv_period): Fix comments.
489         (may_eliminate_iv): Handles multiple exit loops properly.
490         (free_tree_niter_desc): New function.
491         (free_loop_data): Frees up loop iteration descriptors.
492
493 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
494
495         PR target/44542
496         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
497         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
498         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
499         (expand_one_var): Don't consider DECL_ALIGN for variables for
500         which expand_one_stack_var_at has been already called.
501
502         PR testsuite/44701
503         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
504         constraints on IA-64.
505
506 2010-07-27  Jie Zhang  <jie@codesourcery.com>
507
508         PR target/44290
509         Revert
510         2010-07-23  Jie Zhang  <jie@codesourcery.com>
511         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
512         false if ! tree_versionable_function_p.
513
514 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
515
516         * dwarf2out.c (add_data_member_location_attribute): Use
517         add_AT_unsigned instead of add_AT_int if offset is non-negative.
518
519 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
520
521         * postreload.c (try_replace_in_use): New static function.
522         (reload_combine_recognize_const_pattern): Use it here.  Allow
523         substituting into a final add insn, and substituting into a memory
524         reference in an insn that sets the reg.
525
526 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
527
528         * common.opt (o): Add MissingArgError.
529         * doc/options.texi (MissingArgError): Document.
530         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
531         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
532         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
533         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook
534         initializer.
535         * langhooks.h (struct lang_hooks): Remove missing_argument.
536         * optc-gen.awk: Handle MissingArgError and output new structure
537         field initializers.
538         * opts.c (read_cmdline_option): Use missing_argument_error field
539         instead of missing_argument langhook.
540         * opts.h (struct cl_option): Add missing_argument_error field.
541         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
542
543 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
544
545         PR target/29090
546         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
547         Darwin64 ABI, for zero-sized objects.
548
549 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
550
551         PR target/35491
552         PR target/29090
553
554         Merge from Apple local 4.2.1.
555         2005-05-11  Stan Shebs  <shebs@apple.com>
556         Fix 64-bit varargs for Darwin (Radar 4028089).
557         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
558         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
559         Add argument, add case for 8-byte register half-filled with a float.
560         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
561         single-precision floats specially.
562
563 2010-07-27  Ira Rosen  <irar@il.ibm.com>
564
565         PR tree-optimization/44152
566         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
567         complex numbers for further check.
568         (vect_supported_load_permutation_p): Check nodes with 
569         complex numbers.
570
571 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
572
573         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
574         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
575         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
576         (LANG_HOOKS_INITIALIZER): Add new hooks.
577         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
578         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
579         and complain_wrong_lang_p.  Update init_options prototype.
580         * c-objc-common.c (c_initialize_diagnostics): First call
581         c_common_initialize_diagnostics.
582         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
583         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
584         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
585         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
586         (hook_uint_void_0): New.
587         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
588         (hook_uint_void_0): New.
589         * opts-common.c (decode_cmdline_option,
590         decode_cmdline_options_to_array): Also fill in canonical_option field.
591         * opts.c (complain_wrong_lang): Use langhook to determine whether
592         to complain instead of special-casing LTO.
593         (decode_options): Separate lang_mask determination with
594         option_lang_mask hook from call of init_options hook.
595         * opts.h (struct cl_decoded_option): Add canonical_option.
596
597 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
598
599         PR tree-optimization/45083
600         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
601
602 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
603
604         * postreload.c (reload_combine_recognize_const_pattern): Move test
605         for limiting the insn movement to the right scope.
606
607         PR rtl-optimization/45051
608         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
609         than reg_mentioned_p.
610
611 2010-07-26  Richard Henderson  <rth@redhat.com>
612
613         PR target/44132
614         * tree-emutls.c: New file.
615         * Makefile.in (OBJS-common): Add it.
616         * tree-pass.h (pass_ipa_lower_emutls): Declare.
617         * passes.c (init_optimization_passes): Add it.
618
619         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
620         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
621         * expr.c (emutls_var_address): Delete.
622         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
623         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
624         (emutls_finish): Delete.
625         * toplev.c (compile_file): Don't call it.
626         * tree.h (emutls_decl): Delete.
627         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
628         (emutls_finish, emutls_finalize_control_var): Delete.
629         (emutls_object_type): Move to tree-emutls.c.
630         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
631         default_emutls_var_fields, get_emutls_object_type,
632         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
633         default_emutls_var_init): Likewise.
634         (get_variable_section): Don't special case emutls.
635         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
636         default_elf_select_section, default_unique_section,
637         default_encode_section_info): Likewise.
638         * varpool.c (decide_is_variable_needed): Likewise.
639         * gimple-iterator.c (update_call_edge_frequencies): New
640         (gsi_insert_on_edge_immediate): Use it.
641         (gsi_insert_seq_on_edge_immediate): Likewise.
642         (gsi_commit_one_edge_insert): Likewise.
643
644         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
645         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
646         (x86_64_elf_unique_section): Likewise.
647
648 2010-07-26  Jan Hubicka  <jh@suse.cz>
649
650         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
651         GTY((skip)).
652
653 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
654
655         * target.def (output_source_filename): New hook.
656         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
657         * doc/tm.texi: Regenerate.
658         * toplev.c (output_file_directive) Remove function.
659         * toplev.h (output_file_directive) Remove.
660         * output.h (default_asm_output_source_filename,
661         output_file_directive): Declare.
662         * varasm.h (default_asm_output_source_filename,
663         output_file_directive): New functions.
664
665         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
666         * config/mips/mips-protos.h (mips_output_filename): Remove.
667         * config/mips/mips.c (mips_output_filename): Make Static.
668         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
669
670 2010-07-26  Richard Guenther  <rguenther@suse.de>
671
672         PR tree-optimization/43784
673         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
674         if the destination is used by the call.
675
676 2010-07-26  Richard Guenther  <rguenther@suse.de>
677
678         PR middle-end/45073
679         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
680         SSA updating on being in SSA form.
681
682 2010-07-26  Richard Guenther  <rguenther@suse.de>
683
684         PR middle-end/45056
685         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
686
687 2010-07-26  Richard Guenther  <rguenther@suse.de>
688
689         PR tree-optimization/45071
690         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
691         adjust op->opcode.
692
693 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
694
695         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
696         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
697         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
698         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
699         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
700         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
701         save_r31, return_r31, save_interrupt, return_interrupt,
702         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
703         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
704         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
705         new ABI requirements.
706         (save_r6_r9, L_callt_save_r6_r9): Remove.
707         * config/v850/predicates.md (even_reg_operand, disp23_operand,
708         const_float_1_operand const_float_0_operand): New Predicates.
709         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
710         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
711         * config/v850/t-v850: Update multilibs for new target variants.
712         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
713         * config/v850/t-v850e: Likewise.
714         * config/v850/v850.c (v850_issue_rate): New.
715         (v850_strict_argument_naming): New.
716         (function_arg): Modify to generate a different ABI.
717         (print_operand): Update case 'z' to support float modes.
718         (output_move_single): Modify to generate appropriate and better
719         assembly.
720         (v850_float_z_comparison_operator, v850_select_cc_mode,
721         v850_float_nz_comparison_operator,  v850_gen_float_compare,
722         v850_gen_compare): New functions to support comparison of float values.
723         (ep_memory_offset): Add support for V850E2 targets.
724         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
725         (INTERRUPT_REGPARM_NUM): Remove.
726         (compute_register_save_size): Add extra case to save/restore long call.
727         (use_prolog_function): New function to support prologue.
728         (expand_prologue): Add support for V850E2 targets and modified
729         as per the current ABI requirements.
730         (expand_epilogue): Likewise.
731         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
732         (construct_save_jarl): Likewise.
733         (construct_dispose_instruction): Update as per the current ABI
734         requirements.
735         (construct_prepare_instruction): Likewise.
736         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
737         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
738         (CPP_SPEC): Updated to support v850e2 targets.
739         (STRICT_ALIGNMENT): Modified.
740         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
741         (FIXED_REGISTERS): Likewise.
742         (CALL_USED_REGISTERS): Likewise.
743         (CONDITIONAL_REGISTER_USAGE): Updated.
744         (HARD_REGNO_MODE_OK): Updated.
745         (reg_class): Updated to add even registers.
746         (REG_CLASS_NAMES): Likewise.
747         (REG_CLASS_CONTENTS): Likewise.
748         (REGNO_REG_CLASS): Updated for CC registers.
749         (REG_CLASS_FROM_LETTER): Added support for even registers.
750         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
751         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
752         ARG_POINTER_REGNUM): Updated.
753         (FUNCTION_ARG_ADVANCE): Define.
754         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
755         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
756         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
757         (GO_IF_LEGITIMATE_ADDRESS): Updated.
758         (SELECT_CC_MODE): Define.
759         (REGISTER_NAMES): Updated to add psw and fcc registers.
760         (ADDITIONAL_REGISTER_NAMES): Updated.
761         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
762         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
763         * config/v850/v850.md (define_constants): Define new constants.
764         (type): Update store,bit1,macc,div,fpu and single attributes.
765         (cpu): New attribute.
766         (cc): Add set_z attribute.
767         (unsign23byte_load, sign23byte_load, unsign23hword_load,
768         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
769         23word_store): New instructions for 23-bit displacement load and store.
770         (movqi_internal, movhi_internal): Update the attributes.
771         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
772         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
773         the attributes.
774         (v850_tst1): Modified using CC_REGNUM.
775         (tstsi): Remove.
776         (cmpsi): Modified as define_expand from define_insn.
777         (cmpsi_insn, cmpsf, cmpdf): New instructions.
778         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
779         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
780         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
781         one_cmplsi2): Clobber the CC_REGNUM register.
782         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
783         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
784         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
785         (setf_insn, set_z_insn, set_nz_insn): New instructions for
786         v850e2v3 target.
787         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
788         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
789         targets.
790         (sasf_1, sasf_2): Remove.
791         (sasf): New instruction.
792         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
793         targets. CC_REGNUM register is clobbered and attributes are
794         updated.
795         (branch_z_normal, branch_z_invert, branch_nz_normal,
796         branch_nz_invert): New branch related instructions.
797         (jump): Updated the attributes.
798         (switch): Update to support new targets. CC_REGNUM register is
799         clobbered and attributes are updated.
800         (call_internal_short, call_internal_long, call_value_internal_short,
801         call_value_internal_long): Updated the attributes.
802         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
803         clobbered and attributes are updated.
804         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
805         Update to support new targets. CC_REGNUM register is clobbered.
806         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
807         instructions.
808         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
809         are updated.
810         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
811         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
812         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
813         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
814         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
815         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
816         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
817         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
818         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
819         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
820         point instructions defined for V850e2v3 target.
821         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
822         Add support for V850E2 targets and CC_REGNUM register is clobbered.
823         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
824         support for new targets.
825         * config/v850/v850-modes.def: New file.
826         * config/v850/v850.opt(mstrict-align): Remove.
827         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
828         mv850e2v3): New command line options for V850.
829         * config.gcc: Update the newly added files.
830         * doc/invoke.texi: Update the newly added command line options for
831         V850 target.
832
833 2010-07-26  Richard Guenther  <rguenther@suse.de>
834
835         PR tree-optimization/45052
836         * ipa-pure-const.c (check_stmt): Check volatileness.
837
838 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
839
840         PR target/44707
841         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
842         * config/sparc/sparc.c: Include reload.h.
843         (legitimize_tls_address): Rename into...
844         (sparc_legitimize_tls_address): ...this.
845         (legitimize_pic_address): Rename into...
846         (sparc_legitimize_pic_address): ...this.
847         (sparc_expand_move): Adjust to above renaming.
848         (sparc_tls_referenced_p): Likewise.
849         (sparc_legitimize_tls_address): Likewise.
850         (sparc_legitimize_pic_address): Likewise.
851         (sparc_legitimize_address): Likewise.
852         (sparc_output_mi_thunk): Likewise.
853         (sparc_legitimize_reload_address): New global function.  Recognize
854         (lo_sum (high ...) ...) patterns generated by earlier passes.
855         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
856
857 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
858
859         PR target/44484
860         * config/sparc/predicates.md (memory_reg_operand): Delete.
861         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
862         (*sync_compare_and_swap): Encode the address form in the pattern.
863         (*sync_compare_and_swapdi_v8plus): Likewise.
864
865 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
866
867         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
868         Streamline paragraph on compatibility with the system compiler.
869
870 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
871
872         PR middle-end/45035
873         * alias.c (true_dependence_1): Fix thinko in merge of old
874         true_dependence and canon_true_dependence.
875
876 2010-07-23  Jan Hubicka  <jh@suse.cz>
877
878         * lto-streamer-out.c (write_symbol): Fix visibilities of external
879         references.
880
881 2010-07-23  Le-Chun Wu  <lcwu@google.com>
882
883         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
884         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
885         and an unnecessary assignment.
886         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
887         self-assign warning.
888         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
889         unnecessary self-init.
890
891 2010-07-23  Richard Guenther  <rguenther@suse.de>
892
893         PR lto/43071
894         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
895         for -flto and -fwhopr.
896
897 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
898
899         PR target/41943
900         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
901         (stmp-int-hdrs): Prefix/postfix headers by include_next.
902         * config.gcc (user_headers_inc_next_pre): New.
903         (user_headers_inc_next_post): Likewise.
904         (*-w64-mingw*): Use for float.h post-fixing, and for
905         stddef.h/stdarg.h pre-fixing by include_next.
906         * configure.ac (user_headers_inc_next_post): New.
907         (user_headers_inc_next_pre): New.
908         * configure: Regenerated.
909
910 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
911
912         * configure.ac: Don't disable TLS on Solaris 8/9 by default
913         Set tga_func for Solaris 2/x86 resp. SPARC.
914         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
915         (LIB_THREAD_LDFLAGS_SPEC): Define.
916         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
917         * configure: Regenerate.
918         * config.in: Regenerate.
919         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
920         -pthread, -threads, LIB_TLS_SPEC with -pthread.
921         * doc/install.texi (Specific, *-*-solaris2*): Document use of
922         alternate thread libraries on Solaris 8.
923         Document TLS patch requirements.
924         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
925         Document tls.
926
927         PR target/18788
928         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
929         -shared.
930
931 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
932
933         * tree.h (struct tree_base): Add nameless_flag bitfield.
934         (TYPE_NAMELESS, DECL_NAMELESS): Define.
935         * omp-low.c (create_omp_child_function, scan_omp_parallel,
936         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
937         DECL_ARTIFICIAL where needed.
938         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
939         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
940         has DECL_NAMELESS set.
941
942 2010-07-23  Martin Jambor  <mjambor@suse.cz>
943
944         PR tree-optimization/44915
945         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
946         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
947         (analyze_function): Likewise.
948
949 2010-07-23  Martin Jambor  <mjambor@suse.cz>
950
951         PR tree-optimization/44914
952         * tree-sra.c (sra_modify_function_body): Return true if CFG was
953         changed, add purging dead eh edges.
954         (ipa_sra_modify_function_body): Return true if CFG was changed,
955         simplify purging dead eh edges.
956         (modify_function): Return true if CFG was changed.
957         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
958         was changed.
959         (ipa_early_sra): Likewise.
960
961 2010-07-23  Jie Zhang  <jie@codesourcery.com>
962
963         PR target/44290
964         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
965         if "naked".
966         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
967         false if ! tree_versionable_function_p.
968
969 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
970
971         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
972         * ipa-pure-const.c (special_builtlin_state): Remove
973         BUILT_IN_ARGS_INFO case.
974         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
975         * builtins.c (expand_builtin): Likewise.
976         (expand_builtin_args_info): Remove.
977         * doc/tm.texi (__builtin_args_info): Remove.
978         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
979         * doc/tm.text.in: Likewise.
980
981 2010-07-23  Richard Guenther  <rguenther@suse.de>
982
983         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
984         (lto_symtab_merge_decls_2): Likewise.
985         * tree-ssa.c (useless_type_conversion_p): Likewise.
986         * lto-streamer-in.c (input_gimple_stmt): Likewise.
987         * gimple.c (gtc_visited2, gtc_ob2): Remove.
988         (struct type_pair_d): Make same_p an array indexed by mode.
989         Update comment.
990         (lookup_type_pair): Update initialization.
991         (struct sccs): Adjust same_p type.
992         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
993         Adjust.
994         (print_gimple_types_stats): Likewise.
995         * gimple.h (enum gtc_mode): New.
996         (gimple_types_compatible_p): Adjust prototype.
997
998 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
999
1000         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
1001         again after processing insn.
1002
1003 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1004
1005         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
1006         proper words when !tree_versionable_function_p.
1007
1008 2010-07-23  Richard Guenther  <rguenther@suse.de>
1009
1010         PR tree-optimization/45037
1011         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
1012
1013 2010-07-23  Jie Zhang  <jie@codesourcery.com>
1014
1015         * doc/extend.texi: Remove IP2K from the description of naked attribute.
1016         Add MCORE instead.
1017
1018 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1019
1020         PR lto/44992
1021         * lto-opts.c (lto_write_options): Add NULL file_data argument to
1022         lto_get_section_name.
1023         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
1024         * lto-streamer-out.c (produce_asm): Likewise.
1025         (copy_function): Likewise.
1026         (produce_symtab): Likewise.
1027         (produce_asm_for_decls): Likewise.
1028         * lto-streamer.c (lto_get_section_name): Add file_data argument.
1029         Rewrite to add random postfix to LTO sections.
1030         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
1031         (lto_get_section_name): Add file_data argument to prototype.
1032
1033 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1034
1035         * lto-section-in.c (lto_section_name): Synchronize names
1036         with lto_get_section_name.
1037
1038 2010-07-10  Andi Kleen  <ak@linux.intel.com>
1039
1040         * lto-opts.c (lto_read_file_options): Check for missing section.
1041
1042 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1043
1044         * ira.c (check_allocation): Correctly handle the case where an allocno
1045         with two objects was allocated to a single reg.
1046
1047 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
1048
1049         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
1050         (is_widening_mult_p): Likewise.
1051         (convert_to_widen): Use them.
1052         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
1053         well as integer ones.
1054
1055 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
1056
1057         * alias.c (true_dependence_1): New function, merged version of
1058         true_dependence and canon_true_dependence.
1059         (true_dependence): Simplify.
1060         (canon_true_dependence): Simplify.
1061
1062 2010-07-22  Richard Henderson  <rth@redhat.com>
1063
1064         PR target/45027
1065         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
1066         of V4SFmode for the SSE saves; increase stack alignment if needed.
1067         (ix86_gimplify_va_arg): Don't increase stack alignment here.
1068
1069 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
1070
1071         PR bootstrap/45028
1072         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
1073         call cprop_find_used_regs again via note_uses.
1074
1075 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
1076
1077         * alias.c (get_alias_set): Fix formatting issues.
1078
1079 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
1080
1081         PR middle-end/44878
1082         * stmt.c (expand_value_return):  Call promote_function_mode with
1083         a for_return argument of 2 when returning by reference.
1084
1085 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
1086
1087         PR debug/45024
1088         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
1089         unit DIE if we can find the scope DIE.
1090
1091 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1092
1093         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
1094         changed.  Initialize OBJECT_SUBWORD.
1095         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
1096         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
1097         all callers changed.
1098         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
1099         (finish_allocno): Likewise.
1100         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
1101         (remove_low_level_allocnos): Likewise.
1102         (update_bad_spill_attribute): Likewise.
1103         (setup_min_max_allocno_live_range_point): Likewise.
1104         (sort_conflict_id_map): Likewise.
1105         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
1106         (ior_hard_reg_conflicts): New function.
1107         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
1108         (compress_conflict_vecs): Iterate over objects, not allocnos.
1109         (ira_add_live_range_to_object): New function.
1110         (object_range_compare_func): Renamed from allocno_range_compare_func.
1111         All callers changed.
1112         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
1113         subobjects, widen the min/max range of the lowest-order object to
1114         potentially include all other such low-order objects.
1115         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
1116         (check_allocation): Likewise.  Use more fine-grained tests for register
1117         conflicts.
1118         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
1119         allocno subobjects.
1120         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
1121         choices about which bits to set in each set.  Don't use
1122         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
1123         using the multiple sets we computed.
1124         (push_allocno_to_stack): Iterate over allocno subobjects.
1125         (all_conflicting_hard_regs_coalesced): New static function.
1126         (setup_allocno_available_regs_num): Use it.
1127         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
1128         subobjects.
1129         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
1130         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
1131         by ALLOCNO_NUM_OBJECTS.
1132         (calculate_spill_cost): Likewise.
1133         (color_pass): Express if statement in a more normal way.
1134         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
1135         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
1136         (setup_slot_coalesced_allocno_live_ranges): Likewise.
1137         (allocno_reload_assign): Likewise.
1138         (ira_reassign_pseudos): Likewise.
1139         (fast_allocation): Likewise.
1140         * ira-conflicts.c (build_conflict_bit_table): Likewise.
1141         (print_allocno_conflicts): Likewise.
1142         (ira_build_conflicts): Likewise.
1143         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
1144         callers changed.  Test subword 0 of each allocno for conflicts.
1145         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
1146         callers changed.  Iterate over allocno subobjects.
1147         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
1148         * ira-int.h (struct ira_allocno): New member: num_objects.
1149         Rename object to objects and change it into an array.
1150         (ALLOCNO_OBJECT): Add new argument N.
1151         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
1152         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
1153         (ior_hard_reg_conflicts): Declare.
1154         (ira_add_live_range_to_object): Declare.
1155         (ira_allocno_object_iterator): New.
1156         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
1157         (FOR_EACH_ALLOCNO_OBJECT): New macro.
1158         * ira-lives.c (objects_live): Renamed from allocnos_live; all
1159         uses changed.
1160         (allocnos_processed): New sparseset.
1161         (make_object_born): Renamed from make_allocno_born; take an
1162         ira_object_t argument.  All callers changed.
1163         (make_object_dead): Renamed from make_allocno_dead; take an
1164         ira_object_t argument.  All callers changed.
1165         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
1166         All callers changed.
1167         (mark_pseudo_regno_live): Iterate over allocno subobjects.
1168         (mark_pseudo_regno_dead): Likewise.
1169         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
1170         functions.
1171         (mark_ref_live): Detect subword accesses and call
1172         mark_pseudo_regno_subword_live as appropriate.
1173         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
1174         (process_bb_nodes_live): Deal with object-related updates first; set
1175         and test bits in allocnos_processed to avoid computing allocno
1176         statistics more than once.
1177         (create_start_finish_chains): Iterate over objects, not allocnos.
1178         (print_object_live_ranges): New function.
1179         (print_allocno_live_ranges): Use it.
1180         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
1181         and objects_live.
1182
1183 2010-07-22  Richard Guenther  <rguenther@suse.de>
1184
1185         PR lto/42451
1186         * gimple.c (gtc_next_dfs_num): New global.
1187         (struct sccs): Make value a union, add integer same_p member.
1188         (gtc_visit): New function.
1189         (gimple_types_compatible_p_1): New function, split out from ...
1190         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
1191         (iterative_hash_gimple_type): Adjust for sccs change.
1192
1193 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1194
1195         PR tree-optimization/44891
1196         * tree-sra.c: Include gimple-pretty-print.h.
1197         (replace_uses_with_default_def_ssa_name): Renamed to
1198         get_repl_default_def_ssa_name, return the new SSA name instead of
1199         replacing the old one.
1200         (sra_modify_assign): Dump a message when removing a load, if the LHS
1201         is an SSA_NAME, do not do any propagation, just set the RHS to a
1202         default definition SSA NAME, type convert if necessary.
1203         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
1204
1205 2010-07-22  Richard Guenther  <rguenther@suse.de>
1206
1207         PR tree-optimization/45017
1208         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
1209         TYPE_PRECISION of integral types in addition to size.
1210
1211 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
1212
1213         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
1214         when no C library is specified.
1215
1216 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1217
1218         * ipa-prop.h (struct ipa_node_params): Updated comment.
1219         (struct ipa_edge_args): Likewise.
1220         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
1221
1222 2010-07-22  Martin Jambor  <mjambor@suse.cz>
1223
1224         * cgraphunit.c (verify_edge_count_and_frequency): New function.
1225         (verify_cgraph_node): Verify frequencies of indirect edges.
1226         * tree-inline.c (tree_function_versioning): Update frequencies of
1227         indirect edges.
1228
1229 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1230
1231         PR target/43698
1232         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
1233         Set *arm_rev to be predicable.
1234
1235 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
1236
1237         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
1238         (LINK_COMMAND_SPEC_A): New.
1239         (DSYMUTIL): New.
1240         (DSYMUTIL_SPEC): New.
1241         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
1242         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
1243
1244 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
1245
1246         * calls.c (load_register_parameters): Move check for zero
1247         sized items so that only the call to
1248         mem_overlaps_already_clobbered_arg_p () is protected.
1249
1250 2010-07-22  Jan Hubicka  <jh@suse.cz>
1251
1252         * ipa-pure-const.c (varying_state): Break out from ...
1253         (get_function_state): ... here; always return varying_state
1254         when state would be NULL otherwise.
1255         (remove_node_data): Do not free varying state.
1256
1257 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
1258
1259         PR bootstrap/44970
1260         PR middle-end/45009
1261         * postreload.c: Include "target.h".
1262         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
1263         into account.
1264         (fixup_debug_insns): Don't copy the rtx.
1265         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
1266         Don't copy when replacing.  Call fixup_debug_insns in the case where
1267         we merged one add with another.
1268         (reload_combine_recognize_pattern): Fail if there aren't any uses.
1269         Try harder to determine whether we're picking a valid index register.
1270         Don't set store_ruid for an insn we're going to scan in the
1271         next iteration.
1272         (reload_combine): Remove unused code.
1273         (reload_combine_note_use): When updating use information for
1274         an old insn, ignore a use that occurs after store_ruid.
1275         * Makefile.in (postreload.o): Update dependencies.
1276
1277         * function.c (record_hard_reg_sets): Restrict the previous change
1278         to cases where the incoming nominal mode is the same as the
1279         incoming promoted mode and everything happens in MODE_INT.
1280
1281 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
1282
1283         PR debug/45015
1284         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
1285         ASM_OPERANDS_OUTPUT_IDX.
1286         (adjust_insn): For inline asm with multiple sets ensure first
1287         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
1288         the insn.
1289
1290 2010-07-21  Richard Henderson  <rth@redhat.com>
1291
1292         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
1293         comparison for avoiding xmm register saves.  Emit the xmm register
1294         saves explicitly.
1295         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
1296         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
1297         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
1298         Remove patterns and the associated splitters.
1299
1300 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
1301
1302         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
1303         and imagine parts of a complex, so that they can have the same
1304         base and fall into the same group.
1305
1306 2010-07-21  Richard Guenther  <rguenther@suse.de>
1307
1308         PR lto/45018
1309         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
1310         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
1311         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
1312
1313 2010-07-21  Martin Jambor  <mjambor@suse.cz>
1314
1315         PR tree-optimization/44900
1316         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
1317         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
1318
1319 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
1320
1321         PR middle-end/44738
1322         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
1323
1324 2010-07-21  Richard Guenther  <rguenther@suse.de>
1325
1326         PR middle-end/45013
1327         * tree-ssa.c (useless_type_conversion_p): Dispatch to
1328         gimple_types_compatible_p only when in lto.
1329         * gimple.c (gimple_types_compatible_p): Use canonical types
1330         to speed up comparison.
1331
1332 2010-07-21  Richard Guenther  <rguenther@suse.de>
1333
1334         * tree-flow.h (referenced_var): Move define ...
1335         * tree-flow-inline.h (referenced_var): ... here as an inline
1336         function.  Assert here ...
1337         * tree-dfa.c (referenced_var_lookup): ... instead of here.
1338         * tree-ssa.c (maybe_optimize_var): Check if the variable
1339         is in referenced vars.
1340         (execute_update_addresses_taken): Remove old broken check.
1341         * gimple-pretty-print.c (pp_points_to_solution): Use
1342         referenced_var_lookup.
1343         * tree-into-ssa.c (dump_decl_set): Likewise.
1344
1345 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
1346
1347         PR debug/45003
1348         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
1349         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
1350         ZERO_EXTEND here.
1351
1352 2010-07-20  Richard Henderson  <rth@redhat.com>
1353
1354         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
1355
1356 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
1357
1358         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
1359         computing the sum of the stack pointer and a large constant.
1360         * config/arm/constraints.md (M): Remove superfluous parentheses.
1361         (Pc): New constraint.
1362
1363 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
1364
1365         PR debug/45006
1366         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
1367         operand's type if exp is tcc_unary class tree.
1368
1369 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
1370
1371         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
1372         Reverse sense of if_then_else condition.
1373
1374 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
1375
1376         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
1377         * config/rs6000/rs6000.c (rs6000_override_options): Set
1378         rs6000_block_move_inline_limit appropriately.
1379         (expand_block_move): Use rs6000_block_move_inline_limit.
1380         * doc/invoke.texi (mblock-move-inline-limit): Document.
1381
1382 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
1383
1384         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
1385         FROM and TO.  All callers changed.  Don't look for tracked uses,
1386         just scan the RTL for DEBUG_INSNs and substitute.
1387         (reload_combine_recognize_pattern): Call fixup_debug_insns.
1388         (reload_combine): Ignore DEBUG_INSNs.
1389
1390 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
1391
1392         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
1393         depth to 8 from 5.
1394
1395         PR debug/45003
1396         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
1397         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
1398         instead of the result's type.
1399
1400 2010-07-20  Richard Guenther  <rguenther@suse.de>
1401
1402         PR tree-optimization/44977
1403         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
1404         SSA form.
1405
1406 2010-07-20  Richard Guenther  <rguenther@suse.de>
1407
1408         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
1409         (lto_symtab_merge_decls_2): Likewise.
1410         * gimple.h (gimple_types_compatible_p): Declare.
1411         * gimple.c (gimple_queue_type_fixup): Remove.
1412         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
1413         (gimple_compatible_complete_and_incomplete_type_p): New function.
1414         (gimple_types_compatible_p): Adjust.
1415         (gimple_register_type): Remove type fixup code.
1416         (print_gimple_types_stats): Adjust.
1417         (free_gimple_type_tables): Likewise.
1418         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
1419         * tree-ssa.c (useless_type_conversion_p): Likewise.
1420
1421 2010-07-20  Richard Guenther  <rguenther@suse.de>
1422
1423         PR middle-end/44971
1424         PR middle-end/44988
1425         * tree-ssa.c (maybe_optimize_var): New function split out from ...
1426         (execute_update_addresses_taken): ... here.
1427         (non_rewritable_mem_ref_base): Likewise.
1428         (execute_update_addresses_taken): Do not iterate over all referenced
1429         vars but just all local decls and parms.
1430         Properly check call and asm arguments and rewrite call arguments.
1431
1432 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
1433
1434         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
1435         to top level.
1436         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
1437         definitions ...
1438         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
1439         New macro.
1440         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
1441
1442 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
1443
1444         * gengtype.c (start_root_entry): New function, split out from
1445         write_root.  Check whether V is null and raise an error if so.
1446         (write_field_root): Check for V being null.  Don't raise an error here;
1447         set V to null instead.
1448         (write_root): Update comment above function.  Use start_root_entry.
1449
1450 2010-07-19  Xinliang David Li  <davidxl@google.com>
1451
1452         PR testsuite/44932
1453         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
1454         def edges.
1455         (find_uninit_use): Add dump.
1456         (is_use_properly_guarded): Ditto.
1457         (warn_uninitialized_phi): Ditto.
1458         (execute_late_warn_uninitialized): Ditto.
1459
1460 2010-07-19  Richard Guenther  <rguenther@suse.de>
1461
1462         PR middle-end/44941
1463         * expr.c (emit_block_move_hints): Move zero size check first.
1464         Move asserts to more useful places.
1465         * calls.c (load_register_parameters): Check for zero size.
1466
1467 2010-07-19  Richard Henderson  <rth@redhat.com>
1468
1469         * tree-optimize.c (execute_all_early_local_passes): New.  Change
1470         cgraph_state here ...
1471         (execute_early_local_optimizations): ... not here.  Remove.
1472         (pass_early_local_passes, pass_all_early_optimizations): Update.
1473
1474 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
1475
1476         * postreload.c (reload_combine_closest_single_use): Ignore the
1477         number of uses for DEBUG_INSNs.
1478         (fixup_debug_insns): New static function.
1479         (reload_combine_recognize_const_pattern): Use it.  Don't let the
1480         main loop be affected by DEBUG_INSNs.
1481         Really disallow moving adds past a jump insn.
1482         (reload_combine_recognize_pattern): Don't update use_ruid here.
1483         (reload_combine_note_use): Do it here.
1484         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
1485
1486 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
1487
1488         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
1489         of a loop.
1490         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
1491
1492 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
1493
1494         * config/i386/darwin.h: Define darwin_emit_branch_islands.
1495         (TARGET_MACHO_BRANCH_ISLANDS): New.
1496         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
1497         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
1498         default value.
1499         * config/i386/i386.c (output_pic_addr_const): Do not emit
1500         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
1501         (x86_output_mi_thunk): Adjust symbol creation.
1502         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
1503         Remove out of date comment.
1504         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
1505         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
1506         (DARWIN_GENERATE_ISLANDS): Ditto.
1507         (output_call):  Do not emit branch islands unless
1508         darwin_emit_branch_islands is set.
1509         * config/darwin.c: Declare darwin_emit_branch_islands.
1510         (machopic_indirect_data_reference): Do not emit unless
1511         darwin_emit_branch_islands is set.
1512         (darwin_override_options): Set darwin_emit_branch_islands
1513         where it is needed.
1514         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
1515
1516 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1517
1518         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1519         sse_runtime, sse2_runtime.
1520
1521 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
1522
1523         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
1524         low half of a single-register SCmode return value before ORing
1525         it with the high half.
1526         * config/mips/mips16.S (MERGE_GPRf): Likewise.
1527
1528 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1529
1530         PR target/44805
1531         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
1532         on all targets.
1533
1534 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
1535
1536         PR target/42235
1537         * postreload.c (reload_cse_move2add): Return bool, true if anything.
1538         changed.  All callers changed.
1539         (move2add_use_add2_insn): Likewise.
1540         (move2add_use_add3_insn): Likewise.
1541         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
1542         reload_combine.
1543         (RELOAD_COMBINE_MAX_USES): Bump to 16.
1544         (last_jump_ruid): New static variable.
1545         (struct reg_use): New members CONTAINING_MEM and RUID.
1546         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
1547         (reload_combine_split_one_ruid, reload_combine_split_ruids,
1548         reload_combine_purge_insn_uses, reload_combine_closest_single_use
1549         reload_combine_purge_reg_uses_after_ruid,
1550         reload_combine_recognize_const_pattern): New static functions.
1551         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
1552         is true for our reg and that we have available index regs.
1553         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
1554         callers changed.  Use them to initialize fields in struct reg_use.
1555         (reload_combine): Initialize last_jump_ruid.  Be careful when to
1556         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
1557         Call reload_combine_recognize_const_pattern.
1558         (reload_combine_note_store): Update REAL_STORE_RUID field.
1559
1560 2010-07-16  Jason Merrill  <jason@redhat.com>
1561
1562         * Makefile.in (opts-common.o): Depend on options.h.
1563
1564 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
1565
1566         * tree.c (build_common_builtin_nodes): Use build_function_type_list
1567         instead of build_function_type.
1568         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
1569         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1570
1571 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
1572
1573         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
1574         do all the work.
1575         (rs6000_emit_int_cmove): Use function pointers for insn generation.
1576         Don't force values into registers unnecessarily.
1577         (output_isel): Assert that we're not given conditions we can't handle.
1578         Delete corresponding code.
1579         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
1580         scc_comparison_operator constraint.  Permit 0 for the consequent
1581         operand.  Permit any GPR for the alternative operand.
1582         (isel_unsigned_<mode>): Likewise.
1583
1584 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
1585
1586         PR target/44942
1587         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
1588         argument to const_tree.
1589         * config/i386/i386.c (function_arg_advance): If padding needs to be
1590         inserted before argument, increment cum->words by number of padding
1591         words as well.
1592         (contains_aligned_value_p): Change argument to const_tree.
1593         (ix86_function_arg_boundary): Change second argument to const_tree.
1594
1595 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
1596
1597         PR target/42235
1598         * function.c (record_hard_reg_sets): New static function.
1599         (assign_parm_setup_reg): If an optab for extending exists and the
1600         generated code clobbbers no hard regs, emit the insn directly and
1601         create a REG_EQUIV note.
1602
1603 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1604
1605         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
1606         TREE_CHAIN.
1607         * c-typeck.c (push_init_level): Likewise.
1608         (process_init_element): Likewise.
1609
1610 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
1611
1612         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
1613         (integer_three_node): Add.
1614         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
1615         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
1616         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
1617         of call build_int_cst.
1618         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
1619         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
1620         (find_interesting_uses_address): Ditto.
1621         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
1622         * tree-eh.c (lower_eh_constructs_2): Ditto.
1623         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
1624         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
1625         * expmed.c (expand_divmod): Ditto.
1626         * tree-mudflap.c (mx_register_decls): Ditto.
1627         * varasm.c (array_size_for_constructor): Ditto.
1628         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
1629         * c-parser.c (c_parser_postfix_expression): Ditto.
1630
1631 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
1632
1633         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
1634         New static variables.
1635         (reload_combine_recognize_pattern): New static function, broken out
1636         of reload_combine.
1637         (reload_combine): Use it.  Only initialize first_index_reg and
1638         last_index_reg once.
1639
1640 2010-07-15  Richard Henderson  <rth@redhat.com>
1641
1642         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
1643         when done.
1644
1645 2010-07-15  Jan Hubicka  <jh@suse.cz>
1646
1647         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
1648         comdats for broken gold.
1649         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
1650
1651 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1652
1653         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
1654
1655 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
1656
1657         * tree.h (DECL_CHAIN): Define.
1658         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
1659         * c-decl.c: Likewise.
1660         * c-parser.c: Likewise.
1661         * c-typeck.c: Likewise.
1662         * cfgexpand.c: Likewise.
1663         * cgraph.c: Likewise.
1664         * cgraphunit.c: Likewise.
1665         * combine.c: Likewise.
1666         * config/alpha/alpha.c: Likewise.
1667         * config/arm/arm.c: Likewise.
1668         * config/frv/frv.c: Likewise.
1669         * config/i386/i386.c: Likewise.
1670         * config/i386/winnt-cxx.c: Likewise.
1671         * config/ia64/ia64.c: Likewise.
1672         * config/iq2000/iq2000.c: Likewise.
1673         * config/mep/mep.c: Likewise.
1674         * config/mips/mips.c: Likewise.
1675         * config/pa/som.h: Likewise.
1676         * config/rs6000/rs6000.c: Likewise.
1677         * config/s390/s390.c: Likewise.
1678         * config/sh/sh.c: Likewise.
1679         * config/sh/symbian-cxx.c: Likewise.
1680         * config/sparc/sparc.c: Likewise.
1681         * config/spu/spu.c: Likewise.
1682         * config/stormy16/stormy16.c: Likewise.
1683         * config/vxworks.c: Likewise.
1684         * config/xtensa/xtensa.c: Likewise.
1685         * coverage.c: Likewise.
1686         * dbxout.c: Likewise.
1687         * dwarf2out.c: Likewise.
1688         * emit-rtl.c: Likewise.
1689         * expr.c: Likewise.
1690         * function.c: Likewise.
1691         * gimple-low.c: Likewise.
1692         * gimple-pretty-print.c: Likewise.
1693         * gimplify.c: Likewise.
1694         * integrate.c: Likewise.
1695         * ipa-inline.c: Likewise.
1696         * ipa-prop.c: Likewise.
1697         * ipa-split.c: Likewise.
1698         * ipa-struct-reorg.c: Likewise.
1699         * ipa-type-escape.c: Likewise.
1700         * langhooks.c: Likewise.
1701         * lto-cgraph.c: Likewise.
1702         * omp-low.c: Likewise.
1703         * stor-layout.c: Likewise.
1704         * tree-cfg.c: Likewise.
1705         * tree-complex.c: Likewise.
1706         * tree-dfa.c: Likewise.
1707         * tree-dump.c: Likewise.
1708         * tree-inline.c: Likewise.
1709         * tree-mudflap.c: Likewise.
1710         * tree-nested.c: Likewise.
1711         * tree-object-size.c: Likewise.
1712         * tree-pretty-print.c: Likewise.
1713         * tree-sra.c: Likewise.
1714         * tree-ssa-live.c: Likewise.
1715         * tree-ssa-loop-niter.c: Likewise.
1716         * tree-ssa-math-opts.c: Likewise.
1717         * tree-ssa-reassoc.c: Likewise.
1718         * tree-ssa-sccvn.c: Likewise.
1719         * tree-ssa-structalias.c: Likewise.
1720         * tree-tailcall.c: Likewise.
1721         * tree-vrp.c: Likewise.
1722         * tree.c: Likewise.
1723         * var-tracking.c: Likewise.
1724         * varasm.c: Likewise.
1725
1726 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1727
1728         PR target/44877
1729         * config/spu/spu.c (spu_expand_builtin_1): Allow references
1730         (as well as pointers) as argument to mask_for_load builtins.
1731
1732 2010-07-15  Richard Guenther  <rguenther@suse.de>
1733
1734         PR tree-optimization/44946
1735         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
1736         with accessing only padding properly.
1737
1738 2010-07-15  Jan Hubicka  <jh@suse.cz>
1739
1740         * ipa.c (function_and_variable_visibility): Variables marked as used
1741         should not be localized.
1742
1743 2010-07-15  Jan Hubicka  <jh@suse.cz>
1744
1745         * cgraph.c: Include lto-streamer.h
1746         (change_decl_assembler_name): Work when assembler name hash is at place.
1747         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
1748         be sure to rename it to avoid name clash.
1749         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
1750         Localize hidden symbols only when locally defined.
1751
1752 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
1753
1754         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
1755
1756 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
1757             Kevin F. Quinn  <kevquinn@gentoo.org>
1758
1759         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
1760         * common.opt: Add -Wtrampolines.
1761         * doc/invoke.texi: Add -Wtrampolines.
1762
1763 2010-07-15  Jie Zhang  <jie@codesourcery.com>
1764
1765         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
1766         cortex_a8_issue_ls.
1767
1768 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
1769
1770         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
1771         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
1772
1773 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1774
1775         * config/spu/spu.c (reg_names): Remove prototype.
1776         (call_used_regs): Likewise.
1777
1778 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
1779
1780         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
1781         "unused" with attribute "used".
1782         (__JCR_END__): Likewise.
1783         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
1784         "used" attribute.
1785         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
1786
1787 2010-07-14  Richard Guenther  <rguenther@suse.de>
1788
1789         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
1790         (maybe_fixup_decls): Likewise.
1791         (input_gimple_stmt): Do not fixup anything.
1792         * lto-streamer-out.c (output_gimple_stmt): Make sure all
1793         non-automatic variable uses are wrapped inside a MEM_REF.
1794
1795 2010-07-14  Richard Henderson  <rth@redhat.com>
1796
1797         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
1798         for functions.
1799         * varasm.c (assemble_variable): Remove early exit for functions;
1800         assert that we're given a variable.
1801
1802 2010-07-14  Jie Zhang  <jie@codesourcery.com>
1803
1804         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
1805         cortex_a8_default when neon_type is not none.
1806
1807 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1808
1809         * lower-subreg.c (subreg_context): New static bitmap.
1810         (decompose_multiword_subregs): Allocate and free it.
1811         (find_decomposable_subregs): Set a bit in it for a register that
1812         occurs in a subreg that changes mode but not size.
1813         (can_decompose_p): Test it instead of non_decomposable_context.
1814
1815 2010-07-14  Richard Guenther  <rguenther@suse.de>
1816
1817         PR tree-optimization/44824
1818         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
1819         is_gimple_mem_ref_addr.
1820         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
1821         non-decl_address_invariant_p addresses.
1822
1823 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1824
1825         * reload.c (find_reloads): Revert code to penalize small register
1826         classes that was brought in with the IRA merge.
1827
1828 2010-07-14  Richard Guenther  <rguenther@suse.de>
1829
1830         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
1831         as base of ARRAY_REFs.
1832
1833 2010-07-14  Richard Guenther  <rguenther@suse.de>
1834
1835         PR middle-end/44930
1836         * tree-pretty-print.c (do_niy): Do not print a newline.
1837
1838 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
1839
1840         * ira-int.h (struct ira_object): New.
1841         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
1842         (struct ira_allocno): Remove members min, max,
1843         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
1844         conflict_allocnos_num and conflict_vec_p.  Add new member object.
1845         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
1846         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
1847         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
1848         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
1849         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
1850         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
1851         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
1852         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
1853         an ira_object_t rather than ira_allocno_t.  All uses changed.
1854         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
1855         contains a vector of ira_object_t; all uses changed.
1856         (ira_objects_num): Declare variable.
1857         (ira_create_allocno_object): Declare function.
1858         (ira_conflict_vector_profitable_p): Adjust prototype.
1859         (ira_allocate_conflict_vec): Renamed from
1860         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
1861         (ira_allocate_object_conflicts): Renamed from
1862         ira_allocate_allocno_conflicts; first arg now ira_object_t.
1863         (struct ira_object_iterator): New.
1864         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
1865         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
1866         to conflict_vec_p.  All uses changed.
1867         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
1868         Changed to take into account that conflicts are now tracked for
1869         objects.
1870         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
1871         Args changed to accept ira_object_t.  All uses changed.
1872         (allocnos_conflict_p): New static function.
1873         (collected_conflict_objects): Renamed from collected_allocno_objects;
1874         now a vector of ira_object_t.  All uses changed.
1875         (build_conflict_bit_table): Changed to take into account that
1876         conflicts are now tracked for objects.
1877         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
1878         (print_allocno_conflicts, ira_build_conflicts): Likewise.
1879         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
1880         setup_allocno_left_conflicts_size, allocno_reload_assign,
1881         fast_allocation): Likewise.
1882         * ira-lives.c (make_hard_regno_born, make_allocno_born)
1883         process_single_reg_class_operands, process_bb_node_lives): Likewise.
1884         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
1885         Likewise.
1886         * ira-build.c (ira_objects_num): New variable.
1887         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
1888         contains a vector of ira_object_t; all uses changed.
1889         (ira_object_id_map_vec): Corresponding change.
1890         (object_pool): New static variable.
1891         (initiate_allocnos): Initialize it.
1892         (finish_allocnos): Free it.
1893         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
1894         New functions.
1895         (ira_create_allocno): Don't set members that were removed.
1896         (ira_set_allocno_cover_class): Don't change conflict hard regs.
1897         (merge_hard_reg_conflicts): Changed to take into account that
1898         conflicts are now tracked for objects.
1899         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
1900         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
1901         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
1902         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
1903         setup_min_max_conflict_allocno_ids, ):  Likewise.
1904         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
1905         to ira_object_t; all callers changed.
1906         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
1907         to ira_object_t, all callers changed.
1908         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
1909         to ira_object_t, all callers changed.
1910         (conflict_check, curr_conflict_check_tick): Renamed from
1911         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
1912         changed.
1913         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
1914         arg changed to ira_object_t, all callers changed.
1915         (create_cap_allocno): Call ira_create_allocno_object.
1916         (finish_allocno): Free the corresponding object.
1917         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
1918         callers changed.  Adjusted for dealing with objects.
1919         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
1920         dealing with objects.
1921         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
1922
1923         * ira-int.h (struct live_range): Rename allocno member to object
1924         and change type to ira_object_t.
1925         (struct ira_object): New member live_ranges.
1926         (struct ira_allocno): Remove member live_ranges.
1927         (ALLOCNO_LIVE_RANGES): Remove.
1928         (OBJECT_LIVE_RANGES): New macro.
1929         (ira_create_live_range, ira_copy_live_range_list,
1930         ira_merge_live_range_list, ira_live_ranges_intersect_p,
1931         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
1932         * ira-build.c (ira_create_object): Initialize live ranges here.
1933         (ira_create_allocno): Not here.
1934         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
1935         changed to ira_object_t, all callers changed.
1936         (copy_live_range): Rename from copy_allocno_live_range, all callers
1937         changed.
1938         (ira_copy_live_range_list): Rename from
1939         ira_copy_allocno_live_range_list, all callers changed.
1940         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
1941         all callers changed.
1942         (ira_live_ranges_intersect_p): Rename from
1943         ira_allocno_live_ranges_intersect_p, all callers changed.
1944         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
1945         callers changed.
1946         (ira_finish_live_range_list): Rename from
1947         ira_finish_allocno_live_range_list, all callers changed.
1948         (change_object_in_range_list): Rename from change_allocno_in_range_list,
1949         last arg changed to ira_object_t, all callers changed.
1950         (finish_allocno): Changed to expect live ranges in the allocno's object.
1951         (move_allocno_live_ranges, copy_allocno_live_ranges,
1952         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
1953         ira_flattening, ira_build): Likewise.
1954         * ira-color.c (allocnos_have_intersected_live_ranges_p,
1955         slot_coalesced_allocno_live_ranges_intersect,
1956         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
1957         * ira-conflicts.c (build_conflict_bit_table): Likewise.
1958         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
1959         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
1960         make_allocno_dead, create_start_finish_chains,
1961         remove_some_program_points_and_update_live_ranges,
1962         ira_debug_live_range_list): Likewise.
1963
1964         * ira-int.h (ira_object_conflict_iterator): Rename from
1965         ira_allocno_conflict_iterator.
1966         (ira_object_conflict_iter_init): Rename from
1967         ira_allocno_conflict_iter_init, second arg changed to
1968         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
1969         FOR_EACH_ALLOCNO_CONFLICT.
1970         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
1971         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
1972         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
1973         * ira-conflicts.c (print_allocno_conflicts): Likewise.
1974
1975 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
1976
1977         PR other/44874
1978         * tree-dump.c (dump_options): Add enumerate_locals entry.
1979         Add TDF_NOID exclusion to all entry.
1980         * tree-dump.h (dump_enumerated_decls): Declare.
1981         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
1982         Don't display type uid.
1983         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
1984         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
1985         * tree-ssa-live.c: Include gimple.h.
1986         (numbered_tree_d): New struct.
1987         (numbered_tree): New typedef.
1988         (DEF_VEC_O (numbered_tree): New.
1989         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
1990         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
1991         (dump_enumerated_decls): Likewise.
1992         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
1993         debug info and flag_dump_final_insns, call dump_enumerated_decls.
1994         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
1995         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
1996
1997 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
1998
1999         * expmed.h (MAX_BITS_PER_WORD): Move to...
2000         * defaults.h (MAX_BITS_PER_WORD): ...here.
2001
2002 2010-07-13  DJ Delorie  <dj@redhat.com>
2003
2004         * config/h8300/h8300.c (h8300_init_once): Default to
2005         -fstrict_volatile_bitfields.
2006
2007         * config/sh/sh.c (sh_override_options): Default to
2008         -fstrict_volatile_bitfields.
2009
2010         * config/rx/rx.c (rx_option_override): New.
2011
2012         * config/m32c/m32c.c (m32c_override_options): Default to
2013         -fstrict_volatile_bitfields.
2014
2015 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
2016
2017         * tree.h (build_function_call_expr): Delete.
2018         (build_call_expr_loc_array): New function.
2019         (build_call_expr_loc_vec): New function.
2020         * tree-flow.h (struct omp_region): Change type of ws_args field
2021         to a VEC.
2022         * builtins.c (build_function_call_expr): Delete.
2023         (build_call_expr_loc_array): New function.
2024         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
2025         (build_call_expr): Likewise.
2026         (build_call_expr_loc_vec): New function.
2027         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
2028         build_function_call_expr.
2029         * expr.c (emutls_var_address): Likewise.
2030         * varasm.c (emutls_common_1): Likewise.
2031         * omp-low.c (expand_omp_atomic_mutex): Likewise.
2032         (expand_omp_taskreg): Adjust for new type of region->ws_args.
2033         (get_ws_args_for): Return a VEC instead of a tree.
2034         (expand_parallel_call): Call build_call_expr_loc_vec instead of
2035         build_function_call_expr.
2036         * stor-layout.c (self_referential_size): Likewise.
2037
2038 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
2039
2040         PR testsuite/44701
2041         * recog.c (constrain_operands): Allow side-effects in memory
2042         operands if either < or > constraint is used, rather than if
2043         both < and > is used.
2044
2045 2010-07-13  Richard Guenther  <rguenther@suse.de>
2046
2047         PR middle-end/44911
2048         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
2049         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
2050         without name.
2051
2052 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2053
2054         PR target/44761
2055         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
2056         to variable emited.
2057         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
2058         * config/sh/sh.md (symGOT_load): Likewise.
2059         (symDTPOFF2reg): Likewise.
2060         (symTPOFF2reg): Likewise.
2061
2062 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2063
2064         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
2065         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
2066
2067 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2068
2069         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
2070         explanation.
2071         Find ucontext_t * on Solaris 11.
2072         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
2073         Handle new Solaris 11 __sighndlr patterns.
2074
2075 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
2076
2077         PR debug/44901
2078         * vec.h (VEC_block_remove): Fix comment.
2079         * tree-ssa-live.c (remove_unused_locals): Don't use
2080         VEC_unordered_remove on local_decls, instead replace a single
2081         vector element in each iteration if at least one element had
2082         to be removed and VEC_truncate at the end.
2083         * omp-low.c (expand_omp_taskreg): Likewise.
2084
2085 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2086
2087         * c-decl.c (finish_function): Fix typo in comment.
2088
2089 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
2090
2091         PR bootstrap/44921
2092         * postreload.c (move2add_use_add3_insn): Silence gcc warning
2093         on min_regno.
2094
2095 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
2096
2097         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
2098         (simplify_stmt_using_ranges): Use it.
2099
2100 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2101
2102         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
2103         member.  Do not mark as GTY(()).
2104         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
2105         (spu_builtin_decls): New static variable.
2106         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
2107         (spu_init_builtins): Likewise.
2108         (spu_builtin_mul_widen_even): Likewise.
2109         (spu_builtin_mul_widen_odd): Likewise.
2110         (spu_builtin_mask_for_load): Likewise.
2111         (spu_builtin_vec_perm): Likewise.
2112         * config/spu/spu-c.c: Include "target.h".
2113         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
2114         of using spu_builtins[].fndecl.
2115
2116 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2117
2118         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
2119         imply -minterlink-mips16.
2120
2121 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2122
2123         * config/mips/mips.h (mips16_globals): Declare.
2124         (SWITCHABLE_TARGET): Define.
2125         * config/mips/mips.c: Include target-globals.h.
2126         (mips16_globals): New variable.
2127         (mips_set_mips16_mode): Use save_target_globals and
2128         restore_target_globals instead of target_reinit.
2129
2130 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2131
2132         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
2133         to say that the function can be called more than once.
2134         * target-globals.c (save_target_globals): Call init_reg_sets.
2135
2136 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2137
2138         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
2139         * bb-reorder.h: New file.
2140         * bb-reorder.c (default_target_bb_reorder): New variable.
2141         (this_target_bb_reorder): New conditional variable.
2142         (uncond_jump_length): Redefine as a macro.
2143         * target-globals.h (this_target_bb_reorder): Declare.
2144         (target_globals): Add a bb_reorder field.
2145         (restore_target_globals): Copy the bb_reorder field to
2146         this_target_bb-reorder.
2147         * target-globals.c: Include bb-reorder.h.
2148         (default_target_globals): Initialize the bb_reorder field.
2149         (save_target_globals): Likewise.
2150
2151 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2152
2153         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
2154         * gcse.h: New file.
2155         * gcse.c: Include gcse.h.
2156         (default_target_gcse): New variable.
2157         (this_target_gcse): New conditional variable.
2158         (can_copy): Redefine as a macro.
2159         (can_copy_init_p): New macro.
2160         (can_copy_p): Remove can_copy_init_p.
2161         * target-globals.h (this_target_gcse): Declare.
2162         (target_globals): Add a gcse field.
2163         (restore_target_globals): Copy the gcse field to this_target_gcse.
2164         * target-globals.c: Include gcse.h.
2165         (default_target_globals): Initialize the gcse field.
2166         (save_target_globals): Likewise.
2167
2168 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2169
2170         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
2171         and x_ira_prohibited_mode_move_regs_initialized_p.
2172         (ira_prohibited_mode_move_regs): Redefine as a macro.
2173         * ira.c (ira_prohibited_mode_move_regs): Delete.
2174         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
2175
2176 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2177
2178         * reload.h (target_reload): Add x_cached_reg_save_code and
2179         x_cached_reg_restore_code.
2180         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
2181         Redefine as macros.
2182
2183 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2184
2185         * Makefile.in (target-globals.o): Depend on builtins.h.
2186         * builtins.h: New file.
2187         * builtins.c: Include builtins.h.
2188         (default_target_builtins): New variable.
2189         (this_target_builtins): New conditional variable.
2190         (apply_args_mode, apply_result_mode): Redefine as macros.
2191         * target-globals.h (this_target_builtins): Declare.
2192         (target_globals): Add a builtins field.
2193         (restore_target_globals): Copy the builtins field to
2194         this_target_builtins.
2195         * target-globals.c: Include builtins.h.
2196         (default_target_globals): Initialize the builtins field.
2197         (save_target_globals): Likewise.
2198
2199 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2200
2201         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
2202         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
2203         from expmed.c.
2204         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
2205         (alg_hash, alg_hash_used_p): New macros.
2206         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
2207         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
2208         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
2209
2210 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2211
2212         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
2213         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
2214         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
2215         (this_op_costs, costs_classes): Redefine as macros.
2216         (record_reg_classes): Don't take op_costs as a parameter.
2217         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
2218         (scan_one_insn): Update call to record_operand_costs.
2219
2220 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2221
2222         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
2223         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
2224         (target_ira_int): New structure.
2225         (default_target_ira_int): Declare.
2226         (this_target_ira_int): Declare as a variable or define as a macro.
2227         (ira_reg_mode_hard_regset, ira_register_move_cost)
2228         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
2229         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
2230         (prohibited_class_mode_regs, ira_important_classes_num)
2231         (ira_important_classes, ira_reg_class_intersect)
2232         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
2233         (ira_reg_class_union): Redefine as macros.
2234         * ira.h (target_ira): New structure.
2235         (default_target_ira): Declare.
2236         (this_target_ira): Declare as a variable or define as a macro.
2237         (ira_available_class_regs, ira_hard_regno_cover_class)
2238         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
2239         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
2240         (ira_class_hard_regs_num): Redefine as macros.
2241         * ira.c (default_target_ira, default_target_ira_int): New variables.
2242         (this_target_ira, this_target_ira_int): New conditional variables.
2243         (ira_reg_mode_hard_regset, ira_memory_move_cost)
2244         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
2245         (ira_class_subset_p): Delete.
2246         (no_unit_alloc_regs): Redefine as a macro.
2247         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
2248         (ira_class_hard_regs_num, ira_class_hard_reg_index)
2249         (ira_available_class_regs): Delete.
2250         (alloc_reg_class_subclasses): Redefine as a macro.
2251         (ira_reg_class_cover_size, ira_reg_class_cover)
2252         (ira_important_classes_num, ira_important_classes)
2253         (ira_important_class_nums, ira_class_translate): Delete.
2254         (cover_class_order): Document the variable's lifetime.
2255         (reorder_important_classes): Don't set ira_important_class_nums.
2256         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
2257         (ira_reg_class_super_classes, ira_reg_class_union)
2258         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
2259         Delete.
2260         (setup_reg_class_nregs): Don't set ira_max_regs.
2261         (prohibited_class_mode_regs): Delete.
2262         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
2263         (target_globals): Add ira and ira_int fields.
2264         (restore_target_globals): Copy the ira field to this_target_ira
2265         and the ira_int field to this_target_ira_int.
2266         * target-globals.c: Include ira-int.h.
2267         (default_target_globals): Initialize the ira and ira_int fields.
2268         (save_target_globals): Likewise.
2269
2270 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2271
2272         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
2273         * cfgloop.h (target_cfgloop): New structure.
2274         (default_target_cfgloop): Declare.
2275         (this_target_cfgloop): Declare as a variable or define as a macro.
2276         (target_avail_regs, target_clobbered_regs, target_res_regs)
2277         (target_reg_cost, target_spill_cost): Redefine as macros.
2278         * cfgloopanal.c (default_target_cfgloop): New variable.
2279         (this_target_cfgloop): New conditional variable.
2280         (target_avail_regs, target_clobbered_regs, target_res_regs)
2281         (target_reg_cost, target_spill_cost): Delete.
2282         * target-globals.h (this_target_cfgloop): Declare.
2283         (target_globals): Add a cfgloop field.
2284         (restore_target_globals): Copy the cfgloop field to
2285         this_target_cfgloop.
2286         * target-globals.c: Include cfgloop.h.
2287         (default_target_globals): Initialize the cfgloop field.
2288         (save_target_globals): Likewise.
2289
2290 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2291
2292         * regs.h (target_regs): Add x_direct_load, x_direct_store and
2293         x_float_extend_from_mem.
2294         (direct_load, direct_store, float_extend_from_mem): New macros.
2295         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
2296
2297 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2298
2299         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
2300         (target-globals.o): Depend on $(LIBFUNCS_H).
2301         * libfuncs.h: Include hashtab.h.
2302         (libfunc_entry): Moved from optabs.c.
2303         (target_libfuncs): New structure.
2304         (default_target_libfuncs): Declare.
2305         (this_target_libfuncs): Declare as a variable or define as a macro.
2306         (libfunc_table): Redefine as a macro.
2307         * optabs.c (default_target_libfuncs): New variable.
2308         (this_target_libfuncs): New conditional variable.
2309         (libfunc_table): Delete.
2310         (libfunc_entry): Moved to optabs.h.
2311         (libfunc_hash): Redefine as a macro.
2312         (hash_libfunc, eq_libfunc): Fix comments.
2313         (init_optabs): Use libfunc_hash to detect cases where the function
2314         has already been called.  Clear the hash table instead of
2315         recreating it.
2316         * target-globals.h (this_target_libfuncs): Declare.
2317         (target_globals): Add a libfuncs field.
2318         (restore_target_globals): Copy the libfuncs field to
2319         this_target_libfuncs.
2320         * target-globals.c: Include libfuncs.h.
2321         (default_target_globals): Initialize the libfuncs field.
2322         (save_target_globals): Likewise.
2323
2324 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2325
2326         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
2327         in all dependency lists.
2328
2329 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2330
2331         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
2332         * optabs.h (target_optabs): New structure.
2333         (default_target_optabs): Declare.
2334         (this_target_optabs): Declare as a variable or define as a macro.
2335         (optab_table, convert_optab_table, direct_optab_table): Redefine
2336         as macros.
2337         * optabs.c (default_target_optabs): New variable.
2338         (this_target_optabs): New conditional variable.
2339         (optab_table, convert_optab_table, direct_optab_table): Delete.
2340         * target-globals.h (this_target_optabs): Declare.
2341         (target_globals): Add a optabs field.
2342         (restore_target_globals): Copy the optabs field to
2343         this_target_optabs.
2344         * target-globals.c: Include expr.h and optabs.h.
2345         (default_target_globals): Initialize the optabs field.
2346         (save_target_globals): Likewise.
2347
2348 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2349
2350         * flags.h (target_flagstate): Add x_flag_excess_precision.
2351         (flag_excess_precision): Redefine as a macro.
2352         * toplev.c (flag_excess_precision): Delete.
2353
2354 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2355
2356         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
2357         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
2358         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
2359         (no_caller_save_reg_set): Redefine as a macro.
2360         * reload.h (target_reload): Add x_caller_save_initialized_p and
2361         x_regno_save_mode.
2362         (caller_save_initialized_p): Redefine as a macro.
2363         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
2364         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
2365         (regno_save_mode): Redefine as a macro.
2366
2367 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2368
2369         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
2370         * expmed.h: New file.
2371         * expmed.c (default_target_costs): New variable.
2372         (this_target_costs): New conditional variable.
2373         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
2374         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
2375         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
2376         * target-globals.h (this_target_expmed): Declare.
2377         (target_globals): Add a expmed field.
2378         (restore_target_globals): Copy the expmed field to
2379         this_target_expmed.
2380         * target-globals.c: Include expmed.h.
2381         (default_target_globals): Initialize the expmed field.
2382         (save_target_globals): Likewise.
2383
2384 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2385
2386         * Makefile.in (target-globals.o): Depend on reload.h.
2387         * reload.h (target_reload): New structure.
2388         (default_target_reload): Declare.
2389         (this_target_reload): Declare as a variable or define as a macro.
2390         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
2391         * reload1.c (default_target_reload): New variable
2392         (this_target_reload): New conditional variable.
2393         (indirect_symref_ok, double_reg_address_ok): Delete.
2394         (spill_indirect_levels): Redefine as a macro.
2395         * target-globals.h (this_target_reload): Declare.
2396         (target_globals): Add a reload field.
2397         (restore_target_globals): Copy the reload field to
2398         this_target_reload.
2399         * target-globals.c: Include hard-reg-set.h.
2400         (default_target_globals): Initialize the reload field.
2401         (save_target_globals): Likewise.
2402
2403 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2404
2405         * rtl.h (target_rtl): Add x_static_reg_base_value.
2406         * alias.c (static_reg_base_value): Redefine as a macro.
2407
2408 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2409
2410         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
2411         (GTFILES): Remove reginfo.c.
2412         * rtl.h (target_rtl): Add x_top_of_stack.
2413         (top_of_stack): New macro.
2414         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
2415         (top_of_stack): Delete.
2416
2417 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2418
2419         * regs.h (target_regs): Add x_hard_regs_of_mode,
2420         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
2421         x_may_move_out_cost and x_last_mode_for_init_move_cost.
2422         (have_regs_of_mode, contains_reg_of_mode, move_cost)
2423         (may_move_in_cost, may_move_out_cost): Redefine as macros.
2424         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
2425         (may_move_in_cost, may_move_out_cost): Delete.
2426         (last_mode_for_init_move_cost): Redefine as a macro.
2427
2428 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2429
2430         * hard-reg-set.h (target_hard_regs): New structure.
2431         (default_target_hard_regs): Declare.
2432         (this_target_hard_regs): Declare as a variable or define as a macro.
2433         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
2434         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
2435         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
2436         (reg_class_size, reg_class_subclasses, reg_class_subunion)
2437         (reg_class_superunion, reg_names): Redefine as macros.
2438         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
2439         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
2440         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
2441         (reg_class_contents, reg_class_size, reg_class_subclasses)
2442         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
2443         (default_target_hard_regs): New variable
2444         (this_target_hard_regs, initial_call_really_used_regs)
2445         (initial_reg_alloc_order): New conditional variables.
2446         (initial_reg_names): New variable.
2447         (init_reg_sets): Assert that initial_call_really_used_regs,
2448         initial_reg_alloc_order and initial_reg_names
2449         are all the same size as their variable counterparts.  Use them to
2450         initialize those counterparts.
2451         * target-globals.h (this_target_hard_regs): Declare.
2452         (target_globals): Add a hard_regs field.
2453         (restore_target_globals): Copy the hard_regs field to
2454         this_target_hard_regs.
2455         * target-globals.c: Include hard-reg-set.h.
2456         (default_target_globals): Initialize the hard_regs field.
2457         (save_target_globals): Likewise.
2458
2459 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2460
2461         * Makefile.in (target-globals.o): Depend on $(RTL_H).
2462         * rtl.h (target_rtl): New structure.
2463         (default_target_rtl): Declare.
2464         (this_target_rtl): Declare as a variable or define as a macro.
2465         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
2466         Redefine as macros.
2467         * emit-rtl.c (default_target_rtl): New variable.
2468         (this_target_rtl): New conditional variable.
2469         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
2470         (return_address_pointer_rtx): Delete.
2471         (initial_regno_reg_rtx): New macro.
2472         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
2473         (init_emit_regs): Likewise.
2474         * target-globals.h (this_target_rtl): Declare.
2475         (target_globals): Add a rtl field.
2476         (restore_target_globals): Copy the rtl field to this_target_rtl.
2477         * target-globals.c: Include rtl.h.
2478         (default_target_globals): Initialize the rtl field.
2479         (save_target_globals): Likewise.
2480
2481 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2482
2483         * Makefile.in (target-globals.o): Depend on $(REGS_H).
2484         * regs.h (target_reg_modes): New structure.
2485         (default_target_reg_modes): Declare.
2486         (this_target_reg_modes): Declare as a variable or define as a macro.
2487         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
2488         * reginfo.c (default_target_reg_modes): New variable.
2489         (this_target_reg_modes): New conditional variable.
2490         (hard_regno_nregs, reg_raw_mode): Delete.
2491         * target-globals.h (this_target_regs): Declare.
2492         (target_globals): Add a regs field.
2493         (restore_target_globals): Copy the regs field to this_target_regs.
2494         * target-globals.c: Include regs.h.
2495         (default_target_globals): Initialize the regs field.
2496         (save_target_globals): Likewise.
2497
2498 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
2499
2500         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
2501         * doc/tm.texi: Regenerate.
2502         * Makefile.in (OBJS-common): Add target-globals.o.
2503         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
2504         and target-globals.h.
2505         (target-globals.o): New rule.
2506         (GTFILES): Include $(srcdir)/target-globals.h.
2507         * defaults.h (SWITCHABLE_TARGET): Define.
2508         * gengtype.c (open_base_files): Add target-globals.h to the
2509         list of includes.
2510         * target-globals.h: New file.
2511         * target-globals.c: Likewise.
2512
2513         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
2514         * flags.h (target_flag_state): New structure.
2515         (default_target_flag_state): Declare.
2516         (this_target_flag_state): Declare as a variable or define as a macro.
2517         (align_loops_log): Redefine as a macro.
2518         (align_loops_max_skip, align_jumps_log): Likewise.
2519         (align_jumps_max_skip, align_labels_log): Likewise.
2520         (align_labels_max_skip, align_functions_log): Likewise.
2521         * toplev.c (default_target_flag_state): New variable.
2522         (this_target_flag_state): New conditional variable.
2523         (align_loops_log): Delete.
2524         (align_loops_max_skip, align_jumps_log): Likewise.
2525         (align_jumps_max_skip, align_labels_log): Likewise.
2526         (align_labels_max_skip, align_functions_log): Likewise.
2527         * target-globals.h (this_target_flag_state): Declare.
2528         (target_globals): Add a flag_state field.
2529         (restore_target_globals): Copy the flag_state field to
2530         this_target_flag_state.
2531         * target-globals.c: Include flags.h.
2532         (default_target_globals): Initialize the flag_state field.
2533         (save_target_globals): Likewise.
2534
2535 2010-07-12  Jie Zhang  <jie@codesourcery.com>
2536
2537         * postreload.c (reg_symbol_ref[]): New.
2538         (move2add_use_add2_insn): New.
2539         (move2add_use_add3_insn): New.
2540         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
2541         (move2add_note_store): Likewise.
2542
2543 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
2544
2545         PR rtl-optimization/44752
2546         * genautomata.c (main): Don't emit an empty file even if there
2547         is no automaton.
2548
2549 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2550
2551         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
2552         ix86_solaris_return_in_memory.
2553         * config/i386-protos.h: Reflect this.
2554         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
2555         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
2556         Move ...
2557         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
2558
2559 2010-07-12  Jie Zhang  <jie@codesourcery.com>
2560
2561         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
2562         align the stack when it's going to be saved.
2563
2564 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2565
2566         PR pch/14940
2567         * config/host-solaris.c (mmap_fixed): New function.
2568         (sol_gt_pch_get_address): Use it.
2569         (sol_gt_pch_use_address): Likewise.
2570
2571 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2572
2573         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
2574         pentiumpro on Solaris 8 and 9/x86.
2575         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
2576         Document SSE/SSE2 support.
2577         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
2578
2579 2010-07-12  Andi Kleen  <ak@linux.intel.com>
2580
2581         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
2582         instead of gcc_assert to print better error message for multiple
2583         prevailing defs.
2584
2585 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
2586
2587         * config/i386/i386.c (ix86_asm_output_function_label): Change format
2588         string placeholder from 0x%x to %#x.
2589         (ix86_code_end): Use putc to output '\n'.
2590         (ix86_print_operand) <case ';'>: Use putc to output ';'.
2591
2592 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
2593
2594         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
2595         in directive -export.
2596
2597 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
2598
2599         * reginfo.h (reg_classes_intersect_p): Change arguments type to
2600         reg_class_t.
2601         * rtl.h (reg_classes_intersect_p): Adjust prototype.
2602
2603         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
2604         Remove macros.
2605         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
2606         rs6000_memory_move_cost): Remove
2607         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
2608         TARGET_MEMORY_MOVE_COST): Define.
2609         (rs6000_register_move_cost): Make static. Change arguments type from
2610         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
2611         (rs6000_memory_move_cost): Make static. Change arguments type from
2612         'enum reg_class' to reg_class_t.
2613
2614 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
2615
2616         PR middle-end/42505
2617         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
2618         lookup code into....
2619         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
2620         new functions.
2621         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
2622         * cfgloopanal.c (target_clobbered_regs): Define.
2623         (init_set_costs): Initialize target_clobbered_regs.
2624         (estimate_reg_pressure_cost): Add call_p argument.  When true,
2625         adjust the number of available registers to exclude the
2626         call-clobbered registers.
2627         * cfgloop.h (target_clobbered_regs): Declare.
2628         (estimate_reg_pressure_cost): Adjust declaration.
2629         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
2630         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
2631         (determine_set_costs): Dump target_clobbered_regs.
2632         (loop_body_includes_call): New function.
2633         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
2634         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
2635         call_p flag through.
2636         (best_gain_for_invariant): Likewise.
2637         (find_invariants_to_move): Likewise.
2638         (move_single_loop_invariants): Likewise, using already-computed
2639         has_call field.
2640
2641 2010-07-10  Richard Guenther  <rguenther@suse.de>
2642             Joern Rennecke  <joern.rennecke@embecosm.com>
2643
2644         PR debug/44832
2645         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
2646         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
2647         unless they have DECL_IGNORED_P set.
2648
2649 2010-07-10  Richard Guenther  <rguenther@suse.de>
2650
2651         PR lto/44889
2652         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
2653         helper function.
2654         (gimple_types_compatible_p): Similar to pointed-to
2655         types allow and merge a mix of complete and incomplete aggregate.
2656         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
2657         (iterative_hash_gimple_type): Adjust for that.
2658
2659 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
2660
2661         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
2662
2663 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
2664
2665         PR objc/44140
2666         * config/darwin.c (output_objc_section_asm_op): Save and restore
2667         section when outputting ObjC section list.
2668
2669 2010-07-09  Jan Hubicka  <jh@suse.cz>
2670
2671         * lto-streamer-out.c (produce_symtab): Do not write alias
2672         cgraph/varpool nodes.
2673
2674 2010-07-09  Jan Hubicka  <jh@suse.cz>
2675
2676         * tree-inline.c (declare_return_variable): Fix ICE while
2677         inlining DECL_BY_VALUE function not in SSA form
2678
2679 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
2680
2681         PR tree-optimization/44576
2682         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
2683         New.  Pull out from is_loop_prefetching_profitable to implement
2684         the trip count to ahead ratio heuristic.
2685         (mem_ref_count_reasonable_p): New.  Pull out from
2686         is_loop_prefetching_profitable to implement the instruction to
2687         memory reference ratio heuristic.  Also consider not reasonable if
2688         the memory reference count is above a threshold (to avoid
2689         explosive compilation time.
2690         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
2691         is_loop_prefetching_profitable to implement the instruction to
2692         prefetch ratio heuristic.
2693         (is_loop_prefetching_profitable): Removed.
2694         (loop_prefetch_arrays): Distribute the cost analysis across the
2695         function to allow early exit of the prefetch analysis.
2696         is_loop_prefetching_profitable is splitted into three functions,
2697         with each one called as early as possible.
2698         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
2699         number of memory references in a loop is considered too many.
2700
2701 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
2702
2703         * reload.c (find_reloads): Don't clear badop if we have a winreg
2704         alternative, but not win, and the class only has fixed regs.
2705         * hard-reg-set.h (class_only_fixed_regs): Declare.
2706         * reginfo.c (class_only_fixed_regs): New array.
2707         (init_reg_sets_1): Initialize it.
2708         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
2709         discourage alternatives using the stack pointer.
2710
2711         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
2712
2713         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
2714
2715         * config/arm/arm.md (cbranchqi4): Fix array size.
2716         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
2717         calculating length.
2718
2719 2010-07-09  Richard Guenther  <rguenther@suse.de>
2720
2721         * gimple.c (struct type_fixup_s): New struct and VEC type.
2722         (gimple_register_type_fixups): New static global.
2723         (gimple_queue_type_fixup): New function.
2724         (gimple_types_compatible_p): Queue type fixups instead of
2725         applying them here.
2726         (gimple_register_type): Apply queued fixups for the
2727         canonical type.  Empty the type fixup queue.
2728
2729 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
2730
2731         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
2732         * configure: Regenerate.
2733         * config.in: Ditto.
2734
2735 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
2736             Denys Vlasenko  <dvlasenk@redhat.com>
2737             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2738
2739         PR tree-optimization/28632
2740         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
2741         (extract_range_from_binary_expr): Further optimize
2742         BIT_AND_EXPR and BIT_IOR_EXPR.
2743
2744 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
2745
2746         * tree-if-conv.c (fold_or_predicates): New.
2747         (add_to_predicate_list): Call it.
2748
2749 2010-07-09  Richard Guenther  <rguenther@suse.de>
2750
2751         PR middle-end/44890
2752         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
2753         if base is a pointer.
2754         * tree-cfg.c (verify_expr): Update MEM_REF checking.
2755
2756 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
2757
2758         PR target/44877
2759         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
2760         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
2761         builtin mask for load/store builtins.
2762
2763 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
2764
2765         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
2766         for "lock addl".
2767         * configure: Regenerate.
2768         * config/i386/i386.c (ix86_print_operand) <case ';'>:
2769         Remove TARGET_MACHO.
2770
2771 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
2772
2773         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
2774         default ISA flags.
2775         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
2776
2777 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
2778
2779         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
2780
2781 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2782
2783         * config/picochip/picochip.md (commsTestPort): Emit more
2784         efficient sequence for tstport instruction.
2785
2786 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
2787
2788         * config/i386/i386.c (ix86_veclib_handler): Make static.
2789
2790 2010-07-09  Richard Guenther  <rguenther@suse.de>
2791
2792         PR tree-optimization/44852
2793         * tree-ssa-alias.c: Include toplev.h for exact_log2.
2794         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
2795         in MEM_REF.
2796         (indirect_refs_may_alias_p): Likewise.
2797         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
2798
2799 2010-07-09  Richard Guenther  <rguenther@suse.de>
2800
2801         PR tree-optimization/44882
2802         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
2803         sets do conflict.
2804         (vectorizable_load): Likewise.
2805
2806 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
2807
2808         PR target/40657
2809         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
2810         All callers changed.
2811         Handle the case when we're called for the epilogue.
2812         (thumb_unexpanded_epilogue): Use it.
2813         (thumb1_expand_epilogue): Likewise.
2814
2815 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
2816
2817         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
2818         both ranges are range_int_cst_p with non-negative minimum,
2819         try harder to derive smaller range.
2820
2821 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2822
2823         * genrecog.c: Include diagnostic-core.h before toplev.h.
2824         * genoutput.c: Likewise.
2825         * genextract.c: Likewise.
2826         * genautomata.c: Likewise.
2827         * genemit.c: Likewise.
2828         * genpeep.c: Likewise.
2829         * genattrtab.c: Likewise.
2830         * genconditions.c: Likewise.
2831         * genpreds.c: Likewise.
2832
2833 2010-07-08  Andi Kleen  <ak@linux.intel.com>
2834
2835         * lto-section-in.c (lto_section_name): Add missing comma.
2836
2837 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
2838
2839         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
2840         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
2841         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
2842         (ia64_override_options): Rename to...
2843         (ia64_option_override): ... this one. Make static.
2844
2845 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2846
2847         PR middle-end/44843
2848         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
2849         pointed-to type of the offset in a MEM_REF to compute the alignment.
2850
2851 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
2852
2853         * final.c (final_scan_insn): Replace
2854         TARGET_UNWIND_INFO macro check by unwind_emit
2855         hook NULL check.
2856         * targhooks.c (default_unwind_emit): Removed.
2857         * targhooks.h (default_unwind_emit): Likewise.
2858         * target.def (unwind_emit): Set default value to NULL.
2859
2860         * config/i386/i386-protos.h (ix86_asm_output_function_label):
2861         New prototype.
2862         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
2863         for NULL fntype argument and allow 64-bit targets.
2864         (ix86_asm_output_function_label): New function.
2865         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
2866         (ix86_handle_fndecl_attribute): Likewise.
2867         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
2868         * doc/doc/tm.texi: Regenerated.
2869         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
2870         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
2871         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
2872         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
2873         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
2874         * config/elfos.h: Likewise.
2875         * config/i386/cygming.h: Likewise.
2876         * config/netbsd-aout.h: Likewise.
2877         * config/openbsd.h: Likewise.
2878         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
2879         by ix86_asm_output_function_label function call.
2880         * varasm.c (assemble_start_function): Use
2881         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
2882
2883 2010-07-08  Jan Hubicka  <jh@suse.cz>
2884
2885         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
2886         New function.
2887         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
2888         Declare.
2889         * ipa-cp.c (ipcp_estimate_growth): Use it.
2890         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
2891         Likewise.
2892
2893 2010-07-08  Jan Hubicka  <jh@suse.cz>
2894
2895         * tree-inline.c (declare_return_variable): Allocate annotation for new
2896         temporary.
2897
2898 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
2899
2900         PR tree-optimization/44710
2901         * tree-if-conv.c (parse_predicate): New.
2902         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
2903         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
2904
2905 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
2906
2907         * common.opt (ftree-loop-if-convert): New flag.
2908         * doc/invoke.texi (ftree-loop-if-convert): Documented.
2909         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
2910         when flag_tree_loop_if_convert is set.
2911
2912 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
2913
2914         * config/i386/i386.c: Use short syntax for function calls
2915         through function pointers.
2916         * config/i386/i386.md: Ditto.
2917
2918 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2919
2920         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
2921
2922 2010-07-08  Richard Guenther  <rguenther@suse.de>
2923
2924         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
2925         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
2926
2927 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
2928
2929         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
2930         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
2931         (loc_list_from_tree): Likewise.
2932         (output_loc_operands): Handle outputting DW_OP_const[48]u
2933         with loc->dtprel set.
2934         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
2935
2936 2010-07-08  Jan Hubicka  <jh@suse.cz>
2937
2938         * ipa.c: Include pointer-set.h
2939         (cgraph_externally_visible_p): New attribute ALIASED;
2940         when in LTO, hidden symbols are local unless they are aliased.
2941         (function_and_variable_visibility): Compute aliased nodes;
2942         handle LTO and hidden symbol on functions and vars.
2943         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
2944         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
2945
2946 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2947
2948         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
2949         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2950         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2951         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2952         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
2953         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
2954         (ix86_gen_probe_stack_range): Likewise.
2955         (override_options): Set them.
2956         (ix86_target_stack_probe): New function.
2957         (ix86_compute_frame_layout): Force use of push instructions to
2958         save registers if stack checking with probes is enabled.
2959         (get_scratch_register_on_entry): New function.
2960         (release_scratch_register_on_entry): Likewise.
2961         (ix86_adjust_stack_and_probe): Likewise.
2962         (output_adjust_stack_and_probe): Likewise.
2963         (ix86_emit_probe_stack_range): Likewise.
2964         (output_probe_stack_range): Likewise.
2965         (ix86_expand_prologue): Emit stack checking code if static built-in
2966         stack checking is enabled.
2967         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
2968         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
2969         (output_adjust_stack_and_probe): Likewise.
2970         (output_probe_stack_range): Likewise.
2971         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
2972         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
2973         TARGET_STACK_PROBE.
2974         (allocate_stack_worker_64): Likewise.
2975         (allocate_stack): Likewise.
2976         (adjust_stack_and_probe): New insn.
2977         (probe_stack_range): Likewise.
2978
2979 2010-07-08  Richard Guenther  <rguenther@suse.de>
2980
2981         PR tree-optimization/44831
2982         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
2983         a MEM_REF preserving TBAA info of the original dereference.
2984         Dereference the original pointer if the address is not invariant.
2985         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
2986         at least one invariant address that we are going to dereference.
2987
2988 2010-07-08  Richard Guenther  <rguenther@suse.de>
2989
2990         PR tree-optimization/44861
2991         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
2992         information when building MEM_REFs.
2993         (vectorizable_load): Likewise.
2994         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
2995
2996 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
2997
2998         * config/sol2-c.c: Do not include diagnostic-core.h.
2999
3000 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3001
3002         PR bootstrap/44768
3003         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
3004         with respect to current_function_decl. Pass decl of the function.
3005         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
3006         * ipa-inline.c (compute_inline_parameters): Pass decl to
3007         estimated_stack_frame_size.
3008
3009 2010-07-08  Richard Guenther  <rguenther@suse.de>
3010
3011         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
3012         New function.
3013         (valueize_refs): Call it.
3014
3015 2010-07-08  Richard Guenther  <rguenther@suse.de>
3016
3017         PR rtl-optimization/44838
3018         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
3019         SSA form do not use pointer equivalence.
3020
3021 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
3022
3023         * dwarf2out.c (AT_linkage_name): Delete.
3024         (add_linkage_attr): New function.
3025         (add_linkage_name): Call it to emit the linkage attribute.
3026         (dwarf2out_finish): Likewise.
3027         (move_linkage_attr): Explicitly accept both attribute variants.
3028
3029 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3030
3031         * toplev.h: Do not include diagnostic-core.h.
3032         Include diagnostic-core.h in every file that includes toplev.h.
3033         * c-tree.h: Do not include toplev.h.
3034         * pretty-print.h: Update comment.
3035         * Makefile.in: Update dependencies.
3036         * alias.c: Include diagnostic-core.h in every file that includes
3037         toplev.h.
3038         * attribs.c: Likewise.
3039         * auto-inc-dec.c: Likewise.
3040         * bb-reorder.c: Likewise.
3041         * bt-load.c: Likewise.
3042         * caller-save.c: Likewise.
3043         * calls.c: Likewise.
3044         * cfg.c: Likewise.
3045         * cfganal.c: Likewise.
3046         * cfgbuild.c: Likewise.
3047         * cfgcleanup.c: Likewise.
3048         * cfghooks.c: Likewise.
3049         * cfgloop.c: Likewise.
3050         * combine.c: Likewise.
3051         * config/alpha/alpha.c: Likewise.
3052         * config/arc/arc.c: Likewise.
3053         * config/arm/arm.c: Likewise.
3054         * config/arm/pe.c: Likewise.
3055         * config/avr/avr.c: Likewise.
3056         * config/bfin/bfin.c: Likewise.
3057         * config/cris/cris.c: Likewise.
3058         * config/crx/crx.c: Likewise.
3059         * config/darwin-c.c: Likewise.
3060         * config/darwin.c: Likewise.
3061         * config/fr30/fr30.c: Likewise.
3062         * config/frv/frv.c: Likewise.
3063         * config/h8300/h8300.c: Likewise.
3064         * config/host-darwin.c: Likewise.
3065         * config/i386/i386.c: Likewise.
3066         * config/i386/netware.c: Likewise.
3067         * config/i386/nwld.c: Likewise.
3068         * config/i386/winnt-cxx.c: Likewise.
3069         * config/i386/winnt-stubs.c: Likewise.
3070         * config/i386/winnt.c: Likewise.
3071         * config/ia64/ia64-c.c: Likewise.
3072         * config/ia64/ia64.c: Likewise.
3073         * config/iq2000/iq2000.c: Likewise.
3074         * config/lm32/lm32.c: Likewise.
3075         * config/m32c/m32c-pragma.c: Likewise.
3076         * config/m32c/m32c.c: Likewise.
3077         * config/m32r/m32r.c: Likewise.
3078         * config/m68hc11/m68hc11.c: Likewise.
3079         * config/m68k/m68k.c: Likewise.
3080         * config/mcore/mcore.c: Likewise.
3081         * config/mep/mep-pragma.c: Likewise.
3082         * config/mep/mep.c: Likewise.
3083         * config/mmix/mmix.c: Likewise.
3084         * config/mn10300/mn10300.c: Likewise.
3085         * config/moxie/moxie.c: Likewise.
3086         * config/pa/pa.c: Likewise.
3087         * config/pdp11/pdp11.c: Likewise.
3088         * config/picochip/picochip.c: Likewise.
3089         * config/rs6000/rs6000-c.c: Likewise.
3090         * config/rs6000/rs6000.c: Likewise.
3091         * config/rx/rx.c: Likewise.
3092         * config/s390/s390.c: Likewise.
3093         * config/score/score.c: Likewise.
3094         * config/score/score3.c: Likewise.
3095         * config/score/score7.c: Likewise.
3096         * config/sh/sh.c: Likewise.
3097         * config/sh/symbian-base.c: Likewise.
3098         * config/sh/symbian-c.c: Likewise.
3099         * config/sh/symbian-cxx.c: Likewise.
3100         * config/sol2-c.c: Likewise.
3101         * config/sol2.c: Likewise.
3102         * config/sparc/sparc.c: Likewise.
3103         * config/spu/spu.c: Likewise.
3104         * config/stormy16/stormy16.c: Likewise.
3105         * config/v850/v850-c.c: Likewise.
3106         * config/v850/v850.c: Likewise.
3107         * config/vax/vax.c: Likewise.
3108         * config/vxworks.c: Likewise.
3109         * config/xtensa/xtensa.c: Likewise.
3110         * convert.c: Likewise.
3111         * cse.c: Likewise.
3112         * cselib.c: Likewise.
3113         * dbgcnt.c: Likewise.
3114         * dbxout.c: Likewise.
3115         * ddg.c: Likewise.
3116         * dominance.c: Likewise.
3117         * emit-rtl.c: Likewise.
3118         * explow.c: Likewise.
3119         * expmed.c: Likewise.
3120         * fixed-value.c: Likewise.
3121         * fold-const.c: Likewise.
3122         * fwprop.c: Likewise.
3123         * gcse.c: Likewise.
3124         * ggc-common.c: Likewise.
3125         * ggc-page.c: Likewise.
3126         * ggc-zone.c: Likewise.
3127         * gimple-low.c: Likewise.
3128         * gimplify.c: Likewise.
3129         * graph.c: Likewise.
3130         * haifa-sched.c: Likewise.
3131         * ifcvt.c: Likewise.
3132         * implicit-zee.c: Likewise.
3133         * integrate.c: Likewise.
3134         * ira-build.c: Likewise.
3135         * ira-color.c: Likewise.
3136         * ira-conflicts.c: Likewise.
3137         * ira-costs.c: Likewise.
3138         * ira-lives.c: Likewise.
3139         * ira.c: Likewise.
3140         * lists.c: Likewise.
3141         * loop-doloop.c: Likewise.
3142         * loop-iv.c: Likewise.
3143         * lto-opts.c: Likewise.
3144         * lto-symtab.c: Likewise.
3145         * main.c: Likewise.
3146         * modulo-sched.c: Likewise.
3147         * optabs.c: Likewise.
3148         * params.c: Likewise.
3149         * plugin.c: Likewise.
3150         * postreload-gcse.c: Likewise.
3151         * postreload.c: Likewise.
3152         * predict.c: Likewise.
3153         * profile.c: Likewise.
3154         * real.c: Likewise.
3155         * regcprop.c: Likewise.
3156         * reginfo.c: Likewise.
3157         * regmove.c: Likewise.
3158         * reorg.c: Likewise.
3159         * resource.c: Likewise.
3160         * rtl.c: Likewise.
3161         * rtlanal.c: Likewise.
3162         * sched-deps.c: Likewise.
3163         * sched-ebb.c: Likewise.
3164         * sched-rgn.c: Likewise.
3165         * sdbout.c: Likewise.
3166         * sel-sched-dump.c: Likewise.
3167         * sel-sched-ir.c: Likewise.
3168         * simplify-rtx.c: Likewise.
3169         * stmt.c: Likewise.
3170         * stor-layout.c: Likewise.
3171         * store-motion.c: Likewise.
3172         * targhooks.c: Likewise.
3173         * tree-cfg.c: Likewise.
3174         * tree-cfgcleanup.c: Likewise.
3175         * tree-dump.c: Likewise.
3176         * tree-eh.c: Likewise.
3177         * tree-inline.c: Likewise.
3178         * tree-nomudflap.c: Likewise.
3179         * tree-object-size.c: Likewise.
3180         * tree-optimize.c: Likewise.
3181         * tree-outof-ssa.c: Likewise.
3182         * tree-phinodes.c: Likewise.
3183         * tree-profile.c: Likewise.
3184         * tree-ssa-ccp.c: Likewise.
3185         * tree-ssa-coalesce.c: Likewise.
3186         * tree-ssa-live.c: Likewise.
3187         * tree-ssa-loop-niter.c: Likewise.
3188         * tree-ssa-loop-prefetch.c: Likewise.
3189         * tree-ssa-loop.c: Likewise.
3190         * tree-ssa-structalias.c: Likewise.
3191         * tree-ssa-uninit.c: Likewise.
3192         * tree-ssa.c: Likewise.
3193         * tree-vect-data-refs.c: Likewise.
3194         * tree-vect-loop-manip.c: Likewise.
3195         * tree-vect-loop.c: Likewise.
3196         * tree-vect-patterns.c: Likewise.
3197         * tree-vect-stmts.c: Likewise.
3198         * tree-vrp.c: Likewise.
3199         * varasm.c: Likewise.
3200         * vec.c: Likewise.
3201         * web.c: Likewise.
3202         * xcoffout.c: Likewise.
3203
3204 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
3205
3206         * gengtype.c (write_field_root): New function.
3207         (write_root): Use it.
3208
3209 2010-07-07  Wei Guozhi  <carrot@google.com>
3210
3211         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
3212         of lowest bits to lshift/compare): Add a missing line.
3213
3214 2010-07-07  Wei Guozhi  <carrot@google.com>
3215
3216         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
3217         of lowest bits to lshift/compare): New.
3218
3219 2010-07-07  Tom Tromey  <tromey@redhat.com>
3220
3221         * doc/tm.texi: Update.
3222         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
3223         Add @hook.
3224         * target.def (want_debug_pub_sections): New hook.
3225         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
3226         * dwarf2out.c (add_pubname_string): Check
3227         targetm.want_debug_pub_sections.
3228         (add_pubname): Likewise.
3229         (add_pubtype): Likewise.
3230
3231 2010-07-07  Jie Zhang  <jie@codesourcery.com>
3232
3233         * genautomata.c (output_automata_list_min_issue_delay_code):
3234         Correctly decompress min_issue_delay.
3235
3236 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3237
3238         PR rtl-optimization/44404
3239         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
3240         possible, use reg_overlap_mentioned_p instead.
3241
3242 2010-07-07  Duncan Sands  <baldrick@free.fr>
3243
3244         PR middle-end/41355
3245         * tree.c (build_function_type_skip_args): Copy the original type using
3246         build_distinct_type_copy rather than copy_node.
3247
3248 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3249
3250         PR target/44850
3251         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
3252         revision 161876.
3253         (ix86_expand_prologue): Likewise.
3254         (ix86_handle_fndecl_attribute): Likewise.
3255         (ix86_asm_declare_function_name): Likewise.
3256         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3257         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3258         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
3259         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
3260         * doc/extend.texi: Likewise.
3261
3262 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3263
3264         PR target/44844
3265         * config/i386/i386.md (rdrand<mode>): Changed to expand to
3266         retry if the carry flag isn't valid.
3267         (rdrand<mode>_1): New.
3268
3269 2010-07-07  Richard Guenther  <rguenther@suse.de>
3270
3271         PR middle-end/44790
3272         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
3273         for expanding the constant offset for MEM_REFs.
3274
3275 2010-07-07  Richard Guenther  <rguenther@suse.de>
3276
3277         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
3278         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
3279         * gimple.h (is_gimple_operand): Remove.
3280         * gimple.c (is_gimple_operand): Likewise.
3281         (walk_gimple_op): Fix wi->val_only setting for calls.
3282         * tree-cfg.c (verify_gimple_call): Fix argument validation.
3283         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
3284         invalid gimple calls.
3285
3286 2010-07-06  Jan Hubicka  <jh@suse.cz>
3287
3288         * lto-cgraph.c (output_cgraph): Add missing declaration.
3289
3290 2010-07-06  Jan Hubicka  <jh@suse.cz>
3291
3292         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
3293         partition.
3294
3295 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
3296
3297         * doc/gimple.texi (GIMPLE_DEBUG): Document.
3298         * doc/rtl.texi (Debug Information): New node.
3299         (NOTE_INSN_VAR_LOCATION): Document.
3300         (debug_insn): Likewise.
3301         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
3302
3303 2010-07-07  Jan Hubicka  <jh@suse.cz>
3304
3305         With parts by Richard Guenther.
3306
3307         PR middle-end/44813
3308         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
3309         for functions passed by reference.
3310         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
3311         in memory when passed by reference.
3312         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
3313         beggining.
3314         * ipa-split.c (split_function): Cleanup way return value is passed;
3315         handle SSA DECL_BY_REFERENCE retvals.
3316         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
3317         DECL_BY_REFERENCE is set.
3318         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
3319         find_what_p_points_to): Handle RESULT_DECL.
3320         * tree-inline.c (declare_return_variable): Get new entry_block argument;
3321         when passing by reference ensure that RESULT_DECL is gimple_val.
3322         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
3323         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
3324
3325 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
3326
3327         PR rtl-optimization/44787
3328         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
3329         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
3330
3331 2010-07-06  Jan Hubicka  <jh@suse.cz>
3332
3333         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
3334         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
3335         with body can prevail.
3336         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
3337         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
3338         * cgraph.c (cgraph_get_node_or_alias): New function.
3339         * cgraph.h (cgraph_get_node_or_alias): Declare.
3340
3341 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
3342
3343         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
3344         support.
3345         (ix86_expand_prologue): Likewise.
3346         (ix86_handle_fndecl_attribute): Likewise.
3347         (ix86_asm_declare_function_name): New function for
3348         ASM_DECLARE_FUNCTION_NAME.
3349         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
3350         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
3351         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
3352         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
3353         * doc/extend.texi: Adjust documentation about ms_hook_prologue
3354         attribute.
3355
3356 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
3357
3358         * config/i386/i386.md (immediate_operand): New mode attribute.
3359
3360         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
3361         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
3362         using P mode iterator.
3363         (pro_epilogue_adjust_stack_di_2): Rename from
3364         pro_epilogue_adjust_stack_rex64_2.
3365
3366         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
3367
3368 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
3369
3370         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
3371         through gen_mov_insv_1 function pointer.
3372         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
3373         gen_truncxf<mode>2 through gen_truncxf function pointer.
3374         (remainder<mode>3): Ditto.
3375         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
3376         (allocate_stack): Call gen_allocate_stack_worker_64 or
3377         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
3378         function pointer.
3379         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
3380         function pointer.
3381
3382 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
3383
3384         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
3385         operand constraint instead of <r><i>m.
3386
3387 2010-07-06  Richard Guenther  <rguenther@suse.de>
3388
3389         PR middle-end/44828
3390         * convert.c (convert_to_integer): Watch out for overflowing
3391         MULT_EXPR as well.
3392
3393 2010-07-05  Jan Hubicka  <jh@suse.cz>
3394
3395         * lto-streamer.c (write_symbol_vec): Rename to ...
3396         (write_symbol) ... this one; write only symbol given and when
3397         present in cache. Sanity check that what is defined is present
3398         in cgraph/varpool with body/finalized decl.
3399         (write_symbols_of_kind): Remove.
3400         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
3401         pairs to produce symtab.
3402         (produce_asm_for_decls): Update call of produce_symtab; don't do so
3403         when doing WPA streaming.
3404
3405 2010-07-05  Jan Hubicka  <jh@suse.cz>
3406
3407         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
3408         function is still available to fold into.
3409
3410 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
3411
3412         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
3413         * function.h (struct_function): Change type of local_decls field
3414         to a VEC.
3415         (add_local_decl): New function.
3416         (FOR_EACH_LOCAL_DECL): New macro.
3417         * cfgexpand.c (init_vars_expansion): Adjust for new type of
3418         cfun->local_decls.
3419         (estimated_stack_frame_size): Likewise.
3420         (expand_used_vars): Likewise.
3421         * cgraphbuild.c (build_cgraph_edges): Likewise.
3422         * function.c (instantiate_decls_1): Likewise.
3423         * ipa-struct-reorg.c (build_data_structure): Likewise.
3424         * ipa-type-escape.c (analyze_function): Likewise.
3425         * lto-streamer-in.c (input_function): Likewise.
3426         * lto-streamer-out.c (output_function): Likewise.
3427         * tree-ssa-live.c (remove_unused_locals): Likewise.
3428         * tree.c (free_lang_data_in_decl): Likewise.
3429         (find_decls_types_in_node): Likewise.
3430         * omp-low.c (remove_exit_barrier): Likewise.
3431         (expand_omp_taskreg): Likewise.
3432         (list2chain): Rename to...
3433         (vec2chain): ...this.  Adjust.
3434         * cgraphunit.c (assemble_thunk): Call add_local_decl.
3435         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
3436         * gimple-low.c (record_vars_into): Likewise.
3437         * tree-inline.c (remap_decls): Likewise.
3438         (declare_return_variable): Likewise.
3439         (declare_inline_vars): Likewise.
3440         (copy_forbidden): Adjust for new type of cfun->local_decls.
3441         (add_local_variables): New function.
3442         (expand_call_inline): Call it.
3443         (tree_function_versioning): Likewise.
3444
3445 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3446
3447         AVX Programming Reference (June, 2010)
3448         * config/i386/cpuid.h (bit_F16C): New.
3449         (bit_RDRND): Likewise.
3450         (bit_FSGSBASE): Likewise.
3451
3452         * config/i386/i386-builtin-types.def: Add
3453         "DEF_FUNCTION_TYPE (UINT16)", function types for
3454         float16 <-> float conversions and
3455         "DEF_FUNCTION_TYPE (VOID, UINT64)".
3456
3457         * config/i386/i386-c.c (ix86_target_macros_internal): Support
3458         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
3459         OPTION_MASK_ISA_F16C.
3460
3461         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
3462         (OPTION_MASK_ISA_RDRND_SET): Likewise.
3463         (OPTION_MASK_ISA_F16C_SET): Likewise.
3464         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
3465         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
3466         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
3467         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
3468         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
3469         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
3470         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
3471         (override_options): Handle them.
3472         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
3473         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
3474         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
3475         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
3476         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
3477         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
3478         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
3479         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
3480         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
3481         (bdesc_args): Likewise.
3482         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
3483         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
3484         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
3485         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
3486         Handle non-memory store.
3487
3488         * config/i386/i386.h (TARGET_FSGSBASE): New.
3489         (TARGET_RDRND): Likewise.
3490         (TARGET_F12C): Likewise.
3491
3492         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
3493         (UNSPEC_VCVTPS2PH): Likewise.
3494         (UNSPECV_RDFSBASE): Likewise.
3495         (UNSPECV_RDGSBASE): Likewise.
3496         (UNSPECV_WRFSBASE): Likewise.
3497         (UNSPECV_WRGSBASE): Likewise.
3498         (UNSPECV_RDRAND): Likewise.
3499         (rdfsbase<mode>): Likewise.
3500         (rdgsbase<mode>): Likewise.
3501         (wrfsbase<mode>): Likewise.
3502         (wrgsbase<mode>): Likewise.
3503         (rdrand<mode>): Likewise.
3504
3505         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
3506
3507         * config/i386/immintrin.h (_rdrand_u16): New.
3508         (_rdrand_u32): Likewise.
3509         (_readfsbase_u32): Likewise.
3510         (_readfsbase_u64): Likewise.
3511         (_readgsbase_u32): Likewise.
3512         (_readgsbase_u64): Likewise.
3513         (_writefsbase_u32): Likewise.
3514         (_writefsbase_u64): Likewise.
3515         (_writegsbase_u32): Likewise.
3516         (_writegsbase_u64): Likewise.
3517         (_rdrand_u64): Likewise.
3518         (_cvtsh_ss): Likewise.
3519         (_mm_cvtph_ps): Likewise.
3520         (_mm256_cvtph_ps): Likewise.
3521         (_cvtss_sh): Likewise.
3522         (_mm_cvtps_ph): Likewise.
3523         (_mm256_cvtps_ph): Likewise.
3524
3525         * config/i386/sse.md (vcvtph2ps): New.
3526         (*vcvtph2ps_load): Likewise.
3527         (vcvtph2ps256): Likewise.
3528         (vcvtps2ph): Likewise.
3529         (*vcvtps2ph): Likewise.
3530         (*vcvtps2ph_store): Likewise.
3531         (vcvtps2ph256): Likewise.
3532
3533         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
3534
3535         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
3536
3537 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
3538
3539         PR bootstrap/44512
3540         * genenums.c (main): Output include of insn-constants.h
3541         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
3542
3543 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
3544
3545         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
3546         (override_options): Initialize it.
3547         (ix86_expand_prologue): Use it.
3548
3549 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
3550
3551         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
3552
3553 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
3554
3555         * double-int.h (fit_double_type): Remove declaration.
3556         * double-int.c (fit_double_type): Remove function.
3557         * tree.h (int_fits_type_p): Adjust prototype.
3558         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
3559         instead of fit_double_type.
3560         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
3561         instead of fit_double_type and build_int_cst_wide.
3562         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
3563         instead of fit_double_type and build_int_cst_wide.
3564         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
3565         of fit_double_type.
3566
3567 2010-07-05  Jan Hubicka  <jh@suse.cz>
3568
3569         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
3570         in_other_partition.
3571         * lto-cgraph.c (referenced_from_other_partition_p,
3572         reachable_from_other_partition_p): Use in_other_partition flags.
3573         (output_node, output_varpool_node): COMDAT nodes always have private
3574         copies and thus are never used from other partition.
3575
3576 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
3577
3578         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
3579         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
3580         * config/ia64/ia64.c Include reload.h.
3581         (ia64_memory_move_cost): New function.
3582         (TARGET_MEMORY_MOVE_COST): Define.
3583         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
3584         memory_move_cost.
3585
3586 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3587
3588         PR middle-end/42505
3589         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
3590         comments about cost model.
3591         (try_add_cand_for):  Add second strategy for choosing initial set
3592         based on original IVs, controlled by ORIGINALP argument.
3593         (get_initial_solution): Add ORIGINALP argument.
3594         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
3595         (find_optimal_iv_set): Try two different strategies for choosing
3596         the IV set, and return the one with lower cost.
3597
3598 2010-07-05  Richard Guenther  <rguenther@suse.de>
3599
3600         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
3601
3602 2010-07-05  Richard Guenther  <rguenther@suse.de>
3603
3604         * tree.c (reference_alias_ptr_type): New function.
3605         * tree.h (reference_alias_ptr_type): Declare.
3606         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
3607         allow non-TARGET_MEM_REF new refs.
3608         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
3609         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
3610         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
3611         (create_mem_ref): Get alias pointer type.  Adjust calls to
3612         create_mem_ref_raw.
3613         (maybe_fold_tmr): Likewise.
3614         * tree-flow.h (create_mem_ref): Adjust prototype.
3615
3616 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
3617
3618         PR c++/44808
3619         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
3620         *from_p is VAR_DECL.
3621
3622 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
3623
3624         * tree.h (build_call_list): Remove.
3625         * tree.c (build_call_list): Remove.
3626
3627 2010-07-05  Richard Guenther  <rguenther@suse.de>
3628
3629         * double-int.h (double_int_sub): Declare.
3630         * double-int.c (double_int_sub): New function.
3631         * dwarf2out.c (field_byte_offset): Use it.
3632         * fixed-value.c (do_fixed_add): Likewise.
3633         (do_fixed_multiply): Likewise.
3634         (do_fixed_divide): Likewise.
3635         * tree-predcom.c (add_ref_to_chain): Likewise.
3636         (determine_roots_comp): Likewise.
3637         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
3638
3639 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
3640
3641         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
3642         implementations.
3643
3644 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
3645
3646         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
3647         * arm-modes.def (CC_NOTB): Don't define.
3648         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
3649         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
3650         (LTUGEU): New code_iterator.
3651         (cnb, optab): New corresponding code_attrs.
3652         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
3653         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
3654         using LTUGEU.
3655         (addsi3_carryin_shift_<optab>): Likewise.
3656         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
3657         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
3658         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
3659         (subsi3_compare): Renamed from subsi3_compare0_c.
3660         Change CC_NOTB to CC.
3661         (arm_subsi3_insn): Allow constants for operand 0.
3662         (compare_scc peephole for eq case): New.
3663         (compare_scc splitters): Change CC_NOTB to CC.
3664
3665 2010-07-05  Richard Guenther  <rguenther@suse.de>
3666
3667         * tree-ssa-loop-im.c (for_each_index): Do not handle
3668         ALIGN_INDIRECT_REF.
3669         (gen_lsm_tmp_name): Likewise.
3670         * tree-dump.c (dequeue_and_dump): Likewise.
3671         * tree-pretty-print.c (dump_generic_node): Likewise.
3672         (op_code_prio): Likewise.
3673         (op_symbol_code): Likewise.
3674         * tree.c (staticp): Likewise.
3675         (build1_stat): Likewise.
3676         * tree.h (INDIRECT_REF_P): Likewise.
3677         * fold-const.c (maybe_lvalue_p): Likewise.
3678         (operand_equal_p): Likewise.
3679         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
3680         (ao_ref_init_from_vn_reference): Likewise.
3681         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
3682         (find_interesting_uses_address): Likewise.
3683         * dwarf2out.c (loc_list_from_tree): Likewise.
3684         * gimplify.c (gimplify_expr): Likewise.
3685         * tree-eh.c (tree_could_trap_p): Likewise.
3686         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3687         * cfgexpand.c (expand_debug_expr): Likewise.
3688         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
3689         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
3690         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
3691         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
3692         * tree-ssa-operands.c (get_expr_operands): Likewise.
3693         * expr.c (safe_from_p): Likewise.
3694         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
3695         * tree-vect-data-refs.c (vect_setup_realignment): Build
3696         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
3697         * tree-vect-stmts.c (vectorizable_load): Likewise.
3698         * tree.def (ALIGN_INDIRECT_REF): Remove.
3699
3700 2010-07-05  Richard Guenther  <rguenther@suse.de>
3701
3702         PR tree-optimization/44784
3703         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
3704         for inserted stmts.
3705         (find_or_generate_expression): Fix SCCVN insertion check.
3706
3707 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
3708
3709         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
3710         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
3711         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
3712         directives.
3713
3714 2010-07-05  Ira Rosen  <irar@il.ibm.com>
3715
3716         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
3717         statements that are not vectorized.
3718         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
3719         in INSIDE_COST.
3720
3721 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
3722
3723         PR bootstrap/44820
3724         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
3725
3726 2010-07-05  Richard Guenther  <rguenther@suse.de>
3727
3728         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
3729         RESULT_DECLs properly.
3730
3731 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
3732
3733         PR rtl-optimization/44695
3734         * config/i386/i386.md (extract_code): Removed.
3735         (<u>divmodqi4): Likewise.
3736         (divmodqi4): New.
3737         (udivmodqi4): Likewise.
3738         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
3739         (udivmodhiqi3): Likewise.
3740
3741 2010-07-04  Jan Hubicka  <jh@suse.cz>
3742
3743         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
3744
3745 2010-07-04  Jan Hubicka  <jh@suse.cz>
3746
3747         * cgraphunit.c (init_cgraph): Only initialize dump file if it
3748         is not already initialized.
3749
3750 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
3751
3752         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
3753         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
3754         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
3755         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
3756         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
3757         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
3758         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
3759         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
3760         (sync_new_nand_optab): Redefine as macros.
3761         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
3762         Delete.
3763         (direct_optab_index): New enum.
3764         (direct_optab_d): New structure.
3765         (direct_optab): New typedef.
3766         (direct_optab_table): Declare.
3767         (direct_optab_handler, set_direct_optab_handler): New functions.
3768         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
3769         (sync_lock_release_optab): New macros.
3770         * optabs.c (direct_optab_table): New variable.
3771         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
3772         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
3773         cmpstr_optab and cmpstrn_optab.
3774         (emit_conditional_move): Likewise for movcc_optab.
3775         (can_conditionally_move_p): Likewise for movcc_gen_code.
3776         (init_insn_codes): Clear direct_optab_table.
3777         (init_optabs): Don't initialize the new "direct optabs" here.
3778         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
3779         vcond_gen_code.
3780         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
3781         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
3782         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
3783         (expand_sync_operation): Likewise other sync_*_optabs.
3784         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
3785         to sync_compare_and_swap_optab.
3786         (expand_sync_lock_test_and_set): Use direct_optab_handler for
3787         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
3788         to the names of both.
3789         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
3790         cmpstr_optab and cmpstrn_optab.
3791         (expand_builtin_lock_release): Likewise sync_lock_release.
3792         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
3793         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
3794         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
3795         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
3796         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
3797         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
3798         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
3799         (sync_lock_test_and_set, sync_lock_release): Delete.
3800         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
3801         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
3802         * genopinit.c (optabs): Use set_direct_optab_handler for the new
3803         macro optabs.
3804         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
3805         the "optab" local variable.  Use direct_optab_handler for optab and
3806         sync_compare_and_swap_optab.
3807         * reload1.c (reload_in_optab, reload_out_optab): Delete.
3808         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
3809         reload_in_optab and reload_out_optab.
3810         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
3811         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
3812         * config/pa/pa.c (pa_secondary_reload): Likewise.
3813         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
3814         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
3815         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
3816         (VMSupportsCS8_builtin): Likewise.
3817
3818 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
3819
3820         * optabs.h (optab_handlers): Change type of insn_code to int.
3821         (optab_handler, set_optab_handler, convert_optab_handler)
3822         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
3823         CODE_FOR_nothing".
3824         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
3825         (init_insn_codes): Zero both the above arrays.
3826         (init_optabs): Never call init_insn_codes first time around.
3827
3828 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
3829
3830         * optabs.h (optab_handler, convert_optab_handler): Turn into
3831         inline functions that return an insn code.
3832         (set_optab_handler, set_convert_optab_handler): New functions.
3833         * builtins.c: Replace optab_handler(X)->insn_code with
3834         optab_handler or set_optab_handler thoughout.  Likewise
3835         convert_optab_handler(X)->insn_code with convert_optab_handler
3836         and set_convert_optab_handler.
3837         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
3838         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
3839         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
3840         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
3841         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
3842         config/spu/spu.c: Likewise.
3843
3844 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3845
3846         PR target/44531
3847         * config.gcc (sh*-*-*): Use regular expressions instead of
3848         the 'i' modifier for sed substitutions.
3849
3850 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
3851
3852         * gimple.c (gimple_body): Comments added.
3853
3854 2010-07-04  Richard Guenther  <rguenther@suse.de>
3855
3856         PR middle-end/44809
3857         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
3858         of an INDIRECT_REF.
3859
3860 2010-07-04  Richard Guenther  <rguenther@suse.de>
3861
3862         PR tree-optimization/44479
3863         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
3864         extra SSA name copy statements which preserves points-to
3865         information.
3866         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
3867         Copy points-to information for all pointers.  Properly handle
3868         MEM_REFs.
3869         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
3870         copy statements.
3871         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
3872         dependency.
3873
3874 2010-07-04  Richard Guenther  <rguenther@suse.de>
3875
3876         PR middle-end/44785
3877         * tree-inline.c (initialize_inlined_parameters): Do not
3878         re-use pointer-map slot over remap_type call.
3879
3880 2010-07-04  Richard Guenther  <rguenther@suse.de>
3881
3882         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
3883
3884 2010-07-04  Richard Guenther  <rguenther@suse.de>
3885
3886         PR tree-optimization/44656
3887         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
3888         again after value-replacing in the defintions lhs.
3889
3890 2010-07-04  Ira Rosen  <irar@il.ibm.com>
3891             Revital Eres  <eres@il.ibm.com>
3892
3893         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
3894         Document new arguments.
3895         * doc/tm.texi: Regenerate.
3896         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
3897         Handle unaligned store.
3898         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
3899         * target.def (builtin_vectorization_cost): Add new arguments.
3900         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
3901         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
3902         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
3903         (vect_vfa_segment_size): Fix indentation.
3904         * tree-vectorizer.h (struct _vect_peel_info): New.
3905         (struct _vect_peel_extended_info): New.
3906         (struct _loop_vec_info): Add new field for peeling hash table and a
3907         macro for its access.
3908         (VECT_MAX_COST): Define.
3909         (vect_get_load_cost): Declare.
3910         (vect_get_store_cost, vect_get_known_peeling_cost,
3911         vect_get_single_scalar_iteraion_cost): Likewise.
3912         (vect_supportable_dr_alignment): Add new argument.
3913         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
3914         field.
3915         (destroy_loop_vec_info): Free peeling hash table.
3916         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
3917         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
3918         vect_analyze_slp. Fix indentation.
3919         (vect_get_single_scalar_iteraion_cost): New function.
3920         (vect_get_known_peeling_cost): Likewise.
3921         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
3922         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
3923         statement. Move outside cost calculation inside unknown peeling case.
3924         Call vect_get_known_peeling_cost for known amount of peeling.
3925         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
3926         reference to the print message of forced alignment.
3927         (vect_verify_datarefs_alignment): Update call to
3928         vect_supportable_dr_alignment.
3929         (vect_get_data_access_cost): New function.
3930         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
3931         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
3932         vect_peeling_hash_choose_best_peeling): Likewise.
3933         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
3934         to store all the accesses in the loop and find best possible access to
3935         align using peeling for known alignment case. For unknown alignment
3936         check if stores are preferred or if peeling is worthy.
3937         (vect_find_same_alignment_drs): Analyze pairs of loads too.
3938         (vect_supportable_dr_alignment): Add new argument and check aligned
3939         accesses according to it.
3940         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
3941         (cost_for_stmt): Call vect_get_stmt_cost.
3942         (vect_model_simple_cost): Likewise.
3943         (vect_model_store_cost): Call vect_get_stmt_cost. Call
3944         vect_get_store_cost to calculate the cost of the statement.
3945         (vect_get_store_cost): New function.
3946         (vect_model_load_cost): Call vect_get_stmt_cost. Call
3947         vect_get_load_cost to calculate the cost of the statement.
3948         (vect_get_load_cost): New function.
3949         (vectorizable_store): Update call to vect_supportable_dr_alignment.
3950         (vectorizable_load): Likewise.
3951         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
3952         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
3953         arguments. Handle unaligned store.
3954         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
3955         (rs6000_builtin_support_vector_misalignment): Return true for word and
3956         double word alignments for VSX.
3957         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
3958         vect_supportable_dr_alignment and builtin_vectorization_cost.
3959
3960 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3961
3962         PR target/44597
3963         * config/pa/predicates.md (prefetch_cc_operand): Remove.
3964         (prefetch_nocc_operand): Likewise.
3965         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
3966         (prefetch_20): New insn.
3967         (prefetch_cc): Remove.
3968         (prefetch_nocc): Likewise.
3969
3970 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3971
3972         * expr.c (vector_mode_valid_p): Move to c-common.c.
3973         * expr.h (vector_mode_valid_p): Do not declare here.
3974         * system.h: Poison GCC_EXPR_H in front-ends.
3975         * Makefile.in: Update dependencies.
3976
3977 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3978
3979         PR target/44705
3980         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
3981
3982 2010-07-03  Jan Hubicka  <jh@suse.cz>
3983
3984         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
3985         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
3986         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
3987         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
3988         Likewise.
3989
3990         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
3991         Update timevars.V
3992         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
3993         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
3994         TV_IPA_LTO_DECL_OUT): New.
3995         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
3996
3997 2010-07-03  Jan Hubicka  <jh@suse.cz>
3998
3999         * ipa-inline.c (update_edge_key): Break out from ...
4000         update_callers_keys): ... here;
4001         (update_callee_keys): Update only the edges from caller to callee.
4002         (update_all_calle_keys): Do what update_calle_keys did.
4003         (decide_inlining_of_small_functions): Avoid recomputing of all
4004         callees when badness increase.
4005
4006 2010-07-03  Jie Zhang  <jie@codesourcery.com>
4007
4008         * config/arm/arm.c (arm_attr_length_move_neon): New.
4009         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
4010         * config/arm/neon.md (define_mode_attr V_slen): Remove.
4011         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
4012         to compute length attribute.
4013
4014 2010-07-03  Jie Zhang  <jie@codesourcery.com>
4015
4016         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
4017         as predicate for operand 1 and remove its constraint.
4018         * config/arm/predicates.md (vfp_register_operand): New.
4019         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
4020         (*push_fp_multi): Likewise.
4021
4022 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
4023
4024         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
4025
4026 2010-07-03  Jan Hubicka  <jh@suse.cz>
4027
4028         * config/i386/i386.c (override_options): Revert accidental commit.
4029
4030 2010-07-02  Le-Chun Wu  <lcwu@google.com>
4031
4032         PR c++/44128
4033         * doc/invoke.texi: Update documentation of -Wshadow.
4034
4035 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
4036             Julian Brown  <julian@codesourcery.com>
4037             Sandra Loosemore <sandra@codesourcery.com>
4038
4039         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
4040         comparisons.  Adjust to take both operands.
4041         (arm_select_cc_mode): Handle DImode comparisons.
4042         (arm_gen_compare_reg): Generate a scratch register for DImode
4043         comparisons which require one.  Use xor for Thumb equality checks.
4044         (arm_const_double_by_immediates): New.
4045         (arm_print_operand): Allow 'Q' and 'R' for constants.
4046         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
4047         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
4048         arm_canonicalize_comparison.
4049         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
4050         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
4051         prototype.
4052         (arm_const_double_by_immediates): Declare.
4053         * config/arm/constraints.md (Di): New constraint.
4054         * config/arm/predicates.md (arm_immediate_di_operand)
4055         (arm_di_operand, cmpdi_operand): New.
4056         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
4057         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
4058         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
4059         (cstoredi4): Handle non-Cirrus also.
4060
4061 2010-07-02  Julian Brown  <julian@codesourcery.com>
4062             Sandra Loosemore <sandra@codesourcery.com>
4063
4064         PR target/43703
4065         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
4066         (smax<mode>3): Disable for NEON float modes when
4067         flag_unsafe_math_optimizations is false.
4068         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
4069         (*mul<mode>3_neon)
4070         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
4071         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
4072         for NEON float modes when flag_unsafe_math_optimizations is false.
4073         (quad_halves_<code>v4sf): Only enable if
4074         flag_unsafe_math_optimizations is true.
4075         * doc/invoke.texi (ARM Options): Add note about floating point
4076         vectorization requiring -funsafe-math-optimizations.
4077
4078 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
4079             Julian Brown  <julian@codesourcery.com>
4080
4081         * config/arm/neon.md (UNSPEC_VABA): Delete.
4082         (UNSPEC_VABAL): Delete.
4083         (UNSPEC_VABS): Delete.
4084         (UNSPEC_VMUL_N): Delete.
4085         (adddi3_neon): New.
4086         (subdi3_neon): New.
4087         (mul<mode>3add<mode>_neon): Make the pattern named.
4088         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
4089         (neon_vadd<mode>): Replace with define_expand, and move the remaining
4090         unspec parts...
4091         (neon_vadd<mode>_unspec): ...to this.
4092         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
4093         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
4094         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
4095         (neon_vaba<mode>): Rewrite in terms of vabd.
4096         (neon_vabal<mode>): Rewrite in terms of vabdl.
4097         (neon_vabs<mode>): Rewrite without unspec.
4098         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
4099         (*arm_subdi3): Likewise.
4100         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
4101         No_op attribute to disable assembly output checks.
4102         * config/arm/arm_neon.h: Regenerated.
4103         * doc/arm-neon-intrinsics.texi: Regenerated.
4104
4105 2010-07-02  Jan Hubicka  <jh@suse.cz>
4106
4107         * ipa-split.c (split_function): For aggregate values, set the return
4108         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
4109         *<retval> = fncall.part ().
4110         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
4111
4112 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
4113
4114         * config/arm/neon.md (UNSPEC_VAND): Delete.
4115         (UNSPEC_VBIC): Delete.
4116         (UNSPEC_VCLZ): Delete.
4117         (UNSPEC_VCNT): Delete.
4118         (UNSPEC_VEOR): Delete.
4119         (UNSPEC_VORN): Delete.
4120         (UNSPEC_VORR): Delete.
4121         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
4122         core registers too.
4123         (anddi3_neon): Likewise.
4124         (orndi3_neon): Likewise.
4125         (bicdi3_neon): Likewise.
4126         (xordi3_neon): Likewise.
4127         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
4128         rid of unspec and handle unused operand.
4129         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
4130         * config/arm/predicates.md (imm_for_neon_logic_operand):
4131         Require TARGET_NEON.
4132         (imm_for_neon_inv_logic_operand): Likewise.
4133         * config/arm/arm.md (define_split for logical_binary_operator):
4134         Disable for NEON registers.
4135         (anddi3): Add new define_expand, and rename the insn.  Disable
4136         this insn for NEON, where anddi3_neon now applies.
4137         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
4138         (iordi3): As for anddi3.
4139         (xordi3): Likewise.
4140         * config/arm/neon.ml (Vand): Split DImode variants and mark them
4141         as No_op to disable testing for exact instruction match.
4142         (Vorr): Likewise.
4143         (Veor): Likewise.
4144         (Vbic): Likewise.
4145         (Vorn): Likewise.
4146         * config/arm/arm_neon.h: Regenerated.
4147         * doc/arm-neon-intrinsics.texi: Regenerated.
4148
4149 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4150
4151         * expr.h (emit_stack_probe): Declare.
4152         * explow.c (emit_stack_probe): Make global.
4153         (anti_adjust_stack_and_probe): Fix comments.
4154         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
4155         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4156         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
4157         * config/sparc/sparc.c: Include except.h.
4158         (sparc_emit_probe_stack_range): New function.
4159         (output_probe_stack_range): Likewise.
4160         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
4161         built-in stack checking is enabled.
4162         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
4163         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
4164         (probe_stack_range): New insn.
4165
4166 2010-07-02  Richard Guenther  <rguenther@suse.de>
4167
4168         PR target/43958
4169         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
4170         for argument alignment.
4171
4172 2010-07-02  Jan Hubicka  <jh@suse.cz>
4173
4174         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
4175         walk backwards from entry_bb to check only those basic block of header
4176         that might lead to execution of split part.
4177         (consider_split) ... here.
4178         (find_return_bb): Allow assignment in return BB.
4179         (find_retval): New.
4180         (split_function): Fix name of cloned function; take care of updating
4181         return value in return_bb containing move.
4182
4183 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
4184
4185         PR target/44771
4186         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
4187         used variable insn.
4188
4189 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
4190
4191         * implicit-zee.c (combine_reaching_defs): Fix long lines.
4192         (is_set_with_extension_DI): Delete.
4193         (struct zero_extend_info): New structure.
4194         (add_removable_zero_extend): New function.
4195         (find_removable_zero_extends): Use note_stores to find SETs.
4196         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
4197
4198 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
4199
4200         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
4201         is_miss_rate_acceptable. Pull total_positions computation
4202         out of the loops.  Early return if miss_positions exceeds
4203         the acceptable threshold.
4204         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
4205         is_miss_rate_acceptable after renaming of compute_miss_rate.
4206
4207 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
4208
4209         PR middle-end/44576
4210         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
4211         of 1000) for miss rate if the address diference is greater than or
4212         equal to the cache line size (the two reference will never hit the
4213         same cache line).
4214
4215 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
4216
4217         PR target/42835
4218         * config/arm/arm-modes.def (CC_NOTB): New mode.
4219         * config/arm/arm.c (get_arm_condition_code): Handle it.
4220         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
4221         * config/arm/arm.md (subsi3_compare0_c): New pattern.
4222         (compare_scc): Now a define_and_split.  Add a number of extra
4223         splitters before it.
4224
4225         PR target/42172
4226         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
4227         and ZERO_EXTEND.
4228         (arm_rtx_costs_1): Likewise.
4229         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
4230         * config/arm/arm.md (is_arch6): New attribute.
4231         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
4232         extendqisi2): Tighten the code somewhat, avoiding invalid
4233         RTL to occur in the expander patterns.
4234         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
4235         (thumb1_zero_extendhisi2_v6): Delete.
4236         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
4237         (thumb1_extendhisi2_v6): Delete.
4238         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
4239         (thumb1_extendqisi2_v6): Delete.
4240         (zero_extendhisi2 for register input splitter): New.
4241         (zero_extendqisi2 for register input splitter): New.
4242         (thumb1_extendhisi2 for register input splitter): New.
4243         (extendhisi2 for register input splitter): New.
4244         (extendqisi2 for register input splitter): New.
4245         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
4246         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
4247         and add support for a register alternative requiring a split.
4248         (thumb1_zero_extendqisi2): Likewise.
4249         (arm_zero_extendqisi2): Likewise.
4250         (arm_extendhisi2): Likewise.
4251         (arm_extendqisi2): Likewise.
4252
4253 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
4254
4255         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
4256         instead of an unspec.
4257         (neon_expand_vector_init): Likewise.
4258         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
4259         (UNSPEC_VDUP_LANE): Delete.
4260         (UNSPEC VDUP_N): Delete.
4261         (UNSPEC_VGET_HIGH): Delete.
4262         (UNSPEC_VGET_LANE): Delete.
4263         (UNSPEC_VGET_LOW): Delete.
4264         (UNSPEC_VMVN): Delete.
4265         (UNSPEC_VSET_LANE): Delete.
4266         (V_double_vector_mode): New.
4267         (vec_set<mode>_internal): Make code emitted match that for the
4268         corresponding intrinsics.
4269         (vec_setv2di_internal): Likewise.
4270         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
4271         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
4272         (neon_vset_lane<mode>): Combine double and quad patterns and
4273         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
4274         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
4275         (neon_vdup_n<mode>): Rewrite RTL without unspec.
4276         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
4277         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
4278         with neon_vdup_lanev2di, adjusting the pattern from the latter
4279         to be predicable for consistency.
4280         (neon_vdup_lane<mode>_internal): New.
4281         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
4282         to avoid using an unspec.
4283         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
4284         (neon_vdup_lanev2di): Turn into a define_expand.
4285         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
4286         (neon_vget_high<mode>): Replace with....
4287         (neon_vget_highv16qi): New pattern using canonical RTL.
4288         (neon_vget_highv8hi): Likewise.
4289         (neon_vget_highv4si): Likewise.
4290         (neon_vget_highv4sf): Likewise.
4291         (neon_vget_highv2di): Likewise.
4292         (neon_vget_low<mode>): Replace with....
4293         (neon_vget_lowv16qi): New pattern using canonical RTL.
4294         (neon_vget_lowv8hi): Likewise.
4295         (neon_vget_lowv4si): Likewise.
4296         (neon_vget_lowv4sf): Likewise.
4297         (neon_vget_lowv2di): Likewise.
4298
4299         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
4300         test for this emitting vmov.
4301         (Vset_lane): Likewise.
4302         (Vdup_n): Likewise.
4303         (Vmov_n): Likewise.
4304
4305         * doc/arm-neon-intrinsics.texi: Regenerated.
4306
4307 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
4308
4309         * config/arm/neon.md (vec_extractv2di): Correct error in register
4310         numbering to reconcile with neon_vget_lanev2di.
4311
4312 2010-07-02  Richard Guenther  <rguenther@suse.de>
4313
4314         * tree-ssa-structalias.c (pt_solution_set_var): New function.
4315         * tree-ssa-alias.h (pt_solution_set_var): Declare.
4316         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
4317         points-to information.
4318
4319 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
4320
4321         * config/s390/s390.c (override_options): Adopt prefetching
4322         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
4323
4324 2010-07-02  Jan Hubicka  <jh@suse.cz>
4325
4326         * df-problems.c (df_kill_notes): Do not collect dead  notes.
4327         (df_set_note): Just call add_reg_note.
4328         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
4329         df_create_unused_note): Do not deal with lists of old notes.
4330         (df_note_bb_compute): Likewise.
4331
4332 2010-07-02  Richard Guenther  <rguenther@suse.de>
4333
4334         * tree-ssa-structalias.c (find_func_aliases): Handle
4335         pointer alignment via BIT_AND_EXPR.
4336         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
4337
4338 2010-07-02  Richard Guenther  <rguenther@suse.de>
4339
4340         * tree-data-ref.c (initialize_data_dependence_relation): Handle
4341         mismatching number of dimensions properly.
4342
4343 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4344
4345         PR target/44707
4346         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
4347         (lo_sum (high ...) ...) patterns generated by earlier passes.
4348
4349 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4350
4351         * doc/install.texi (Prerequisites): Document Perl requirement on
4352         Solaris 2.
4353         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
4354
4355 2010-07-02  Richard Guenther  <rguenther@suse.de>
4356
4357         PR middle-end/44777
4358         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
4359
4360 2010-07-02  Jan Hubicka  <jh@suse.cz>
4361
4362         PR middle-end/44706
4363         * predict.c (predict_paths_for_bb): Handle case when control dependence
4364         BB has only abnormal edges.
4365
4366 2010-07-02  Richard Guenther  <rguenther@suse.de>
4367
4368         PR tree-optimization/44748
4369         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
4370         the embedded conversion in MEM_REFs.
4371
4372 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
4373
4374         * reload.c: Include toplev.h.
4375         * recog.c:  Likewise.
4376         * Makefile.in: Adjust dependencies.
4377
4378 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
4379
4380         PR debug/44694
4381         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
4382         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
4383
4384 2010-07-01  Richard Guenther  <rguenther@suse.de>
4385
4386         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
4387         types for offsets.
4388
4389 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
4390
4391         PR target/44732
4392         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
4393         Fix argument types.
4394
4395 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
4396
4397         PR target/44727
4398         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
4399         Make sure operand 0 dies.
4400
4401 2010-07-01  Richard Guenther  <rguenther@suse.de>
4402
4403         PR middle-end/42834
4404         PR middle-end/44468
4405         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
4406         * doc/generic.texi (References to storage): Document MEM_REF.
4407         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
4408         (print_call_name): Likewise.
4409         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
4410         (build_simple_mem_ref_loc): New function.
4411         (mem_ref_offset): Likewise.
4412         * tree.h (build_simple_mem_ref_loc): Declare.
4413         (build_simple_mem_ref): Define.
4414         (mem_ref_offset): Declare.
4415         * fold-const.c: Include tree-flow.h.
4416         (operand_equal_p): Handle MEM_REF.
4417         (build_fold_addr_expr_with_type_loc): Likewise.
4418         (fold_comparison): Likewise.
4419         (fold_unary_loc): Fold
4420         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
4421         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
4422         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
4423         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
4424         (ptr_deref_may_alias_ref_p_1): Likewise.
4425         (ao_ref_base_alias_set): Properly differentiate base object for
4426         offset and TBAA.
4427         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
4428         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
4429         (indirect_refs_may_alias_p): Likewise.
4430         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
4431         chasing code.
4432         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
4433         (call_may_clobber_ref_p_1): Likewise.
4434         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
4435         * expr.c (expand_assignment): Handle MEM_REF.
4436         (store_expr): Handle MEM_REFs from STRING_CSTs.
4437         (store_field): If expanding a MEM_REF of a non-addressable
4438         decl use bitfield operations.
4439         (get_inner_reference): Handle MEM_REF.
4440         (expand_expr_addr_expr_1): Likewise.
4441         (expand_expr_real_1): Likewise.
4442         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
4443         * alias.c (ao_ref_from_mem): Handle MEM_REF.
4444         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
4445         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
4446         (dr_analyze_indices): Likewise.
4447         (dr_analyze_alias): Likewise.
4448         (object_address_invariant_in_loop_p): Likewise.
4449         * gimplify.c (mark_addressable): Handle MEM_REF.
4450         (gimplify_cond_expr): Build MEM_REFs.
4451         (gimplify_modify_expr_to_memcpy): Likewise.
4452         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
4453         (gimple_fold_indirect_ref): Adjust.
4454         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
4455         * tree.def (MEM_REF): New tree code.
4456         * tree-dfa.c: Include toplev.h.
4457         (get_ref_base_and_extent): Handle MEM_REF.
4458         (get_addr_base_and_unit_offset): New function.
4459         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
4460         * gimple-fold.c (may_propagate_address_into_dereference): Handle
4461         MEM_REF.
4462         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
4463         accesses if the array has just one dimension.  Remove always true
4464         parameter.  Do not require type compatibility here.
4465         (maybe_fold_offset_to_component_ref): Remove.
4466         (maybe_fold_stmt_indirect): Remove.
4467         (maybe_fold_reference): Remove INDIRECT_REF handling.
4468         Fold back to non-MEM_REF.
4469         (maybe_fold_offset_to_address): Simplify.  Deal with type
4470         mismatches here.
4471         (maybe_fold_reference): Likewise.
4472         (maybe_fold_stmt_addition): Likewise.  Also handle
4473         &ARRAY + I in addition to &ARRAY[0] + I.
4474         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
4475         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
4476         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
4477         * tree-ssa.c (useless_type_conversion_p): Make most pointer
4478         conversions useless.
4479         (warn_uninitialized_var): Handle MEM_REF.
4480         (maybe_rewrite_mem_ref_base): New function.
4481         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
4482         to SSA form.
4483         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
4484         INDIRECT_REF handling.
4485         (copy_tree_body_r): Handle MEM_REF.
4486         * gimple.c (is_gimple_addressable): Adjust.
4487         (is_gimple_address): Likewise.
4488         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
4489         invariant base are invariant.
4490         (is_gimple_min_lval): Adjust.
4491         (is_gimple_mem_ref_addr): New function.
4492         (get_base_address): Handle MEM_REF.
4493         (count_ptr_derefs): Likewise.
4494         (get_base_loadstore): Likewise.
4495         * gimple.h (is_gimple_mem_ref_addr): Declare.
4496         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
4497         * tree-cfg.c (verify_address): New function, split out from ...
4498         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
4499         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
4500         INDIRECT_REFs.
4501         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
4502         INDIRECT_REF.  Allow conversions.
4503         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
4504         a register does not change its size.
4505         (verify_types_in_gimple_reference): Verify MEM_REF.
4506         (verify_gimple_assign_single): Disallow INDIRECT_REF.
4507         Handle MEM_REF.
4508         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
4509         New.
4510         (mark_address_taken): Handle MEM_REF.
4511         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
4512         (get_asm_expr_operands): Pass opf_not_non_addressable.
4513         (get_expr_operands): Handle opf_[not_]non_addressable.
4514         Handle MEM_REF.  Remove INDIRECT_REF handling.
4515         * tree-vrp.c (check_array_ref): Handle MEM_REF.
4516         (search_for_addr_array): Likewise.
4517         (check_array_bounds): Likewise.
4518         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
4519         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
4520         (ref_always_accessed_p): Likewise.
4521         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
4522         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
4523         Handle MEM_REF.
4524         * cgraphbuild.c (mark_load): Properly check for NULL result
4525         from get_base_address.
4526         (mark_store): Likewise.
4527         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
4528         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
4529         handling for MEM_REF.
4530         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
4531         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
4532         * builtins.c (stabilize_va_list_loc): Use the function ABI
4533         valist type if we couldn't canonicalize the argument type.
4534         Always dereference with the canonical va-list type.
4535         (maybe_emit_free_warning): Handle MEM_REF.
4536         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
4537         memmove to memcpy.
4538         * builtins.c (fold_builtin_memory_op): Use ref-all types
4539         for all memcpy foldings.
4540         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
4541         (build_outer_var_ref): Likewise.
4542         (scan_omp_1_op): Likewise.
4543         (lower_rec_input_clauses): Likewise.
4544         (lower_lastprivate_clauses): Likewise.
4545         (lower_reduction_clauses): Likewise.
4546         (lower_copyprivate_clauses): Likewise.
4547         (expand_omp_atomic_pipeline): Likewise.
4548         (expand_omp_atomic_mutex): Likewise.
4549         (create_task_copyfn): Likewise.
4550         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
4551         Remove old union trick.  Initialize constant offsets.
4552         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
4553         INDIRECT_REF.  Init base_alias_set properly.
4554         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
4555         (vn_reference_fold_indirect): Adjust for MEM_REFs.
4556         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
4557         for ARRAY_REFs.
4558         (may_insert): Remove.
4559         (visit_reference_op_load): Do not test may_insert.
4560         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
4561         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
4562         a field to store the constant offset this op applies.
4563         (run_scc_vn): Adjust prototype.
4564         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
4565         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
4566         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
4567         bother about volatile qualifiers on pointers.
4568         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
4569         * tree-ssa-loop-ivopts.c
4570         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
4571         (strip_offset_1): Likewise.
4572         (find_interesting_uses_address): Replace INDIRECT_REF handling with
4573         MEM_REF handling.
4574         (get_computation_cost_at): Likewise.
4575         * ipa-pure-const.c (check_op): Handle MEM_REF.
4576         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
4577         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
4578         and constants.
4579         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
4580         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
4581         (eliminate_local_variables_1): Likewise.
4582         (create_call_for_reduction_1): Likewise.
4583         (create_loads_for_reductions): Likewise.
4584         (create_loads_and_stores_for_name): Likewise.
4585         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
4586         (ssa_accessed_in_tree): Handle MEM_REF.
4587         (ssa_accessed_in_assign_rhs): Likewise.
4588         (update_type_size): Likewise.
4589         (analyze_accesses_for_call_stmt): Likewise.
4590         (analyze_accesses_for_assign_stmt): Likewise.
4591         (transform_access_sites): Likewise.
4592         (transform_allocation_sites): Likewise.
4593         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
4594         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
4595         not handle INDIRECT_REF.
4596         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
4597         (cond_store_replacement): Likewise.
4598         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4599         MEM_REF, no not handle INDIRECT_REFs.
4600         (insert_into_preds_of_block): Properly initialize avail.
4601         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
4602         for ARRAY_REFs.  Properly handle reference lookups that
4603         require a bit re-interpretation.
4604         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
4605         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
4606         (build_ref_for_offset_1): Remove.
4607         (build_ref_for_offset): Build MEM_REFs.
4608         (gate_intra_sra): Disable for now.
4609         (sra_ipa_modify_expr): Handle MEM_REF.
4610         (ipa_early_sra_gate): Disable for now.
4611         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
4612         MEM_REF handling.
4613         (disqualify_base_of_expr): Likewise.
4614         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
4615         MEM_REF handling.
4616         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
4617         Use mem_ref_offset.  Remove bogus folding.
4618         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
4619         (make_fancy_name_1): Add support for MEM_REF.
4620         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
4621         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
4622         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
4623         (compute_complex_ancestor_jump_func): Likewise.
4624         (ipa_analyze_virtual_call_uses): Likewise.
4625         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
4626         INDIRECT_REF folding with more generalized MEM_REF folding.
4627         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
4628         (forward_propagate_addr_into_variable_array_index): Also handle
4629         &ARRAY + I in addition to &ARRAY[0] + I.
4630         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
4631         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
4632         creates assignments with overlap.
4633         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
4634         (get_frame_field): Likewise.
4635         (get_nonlocal_debug_decl): Likewise.
4636         (convert_nonlocal_reference_op): Likewise.
4637         (struct nesting_info): Add mem_refs pointer-set.
4638         (create_nesting_tree): Allocate it.
4639         (convert_local_reference_op): Insert to be folded mem-refs.
4640         (fold_mem_refs): New function.
4641         (finalize_nesting_tree_1): Perform defered folding of mem-refs
4642         (free_nesting_tree): Free the pointer-set.
4643         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
4644         (vectorizable_load): Likewise.
4645         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
4646         (propagate_with_phi): Likewise.
4647         * tree-object-size.c (addr_object_size): Handle MEM_REFs
4648         instead of INDIRECT_REFs.
4649         (compute_object_offset): Handle MEM_REF.
4650         (plus_stmt_object_size): Handle MEM_REF.
4651         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
4652         for &MEM_REF.
4653         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
4654         (symbol_marked_for_renaming): Likewise.
4655         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
4656         (fold-const.o): Add $(TREE_FLOW_H).
4657         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
4658         (find_func_clobbers): Likewise.
4659         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
4660         (decompose_access): Likewise.
4661         (replace_field_acc): Likewise.
4662         (replace_field_access_stmt): Likewise.
4663         (insert_new_var_in_stmt): Likewise.
4664         (get_stmt_accesses): Likewise.
4665         (reorg_structs_drive): Disable.
4666         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
4667         (ix86_canonical_va_list_type): Likewise.
4668
4669 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
4670
4671         PR other/44566
4672         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
4673         * target.def (struct gcc_target): Replace enum reg_class with
4674         reg_class_t in hook argument / return types.
4675         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
4676         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
4677         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
4678         * targhooks.h (default_branch_target_register_class): Likewise.
4679         (default_ira_cover_classes, default_secondary_reload): Likewise.
4680         (default_memory_move_cost, default_register_move_cost): Likewise.
4681         * targhooks.c (default_branch_target_register_class): Likewise.
4682         (default_ira_cover_classes, default_secondary_reload): Likewise.
4683         (default_memory_move_cost, default_register_move_cost): Likewise.
4684         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
4685         * bt-load.c (branch_target_load_optimize): Likewise.
4686         * ira.c (setup_cover_and_important_classes): Likewise.
4687         * ira-costs.c (copy_cost): Likewise.
4688         * reload1.c (emit_input_reload_insns): Likewise.
4689         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
4690         * config/frv/frv.c (frv_secondary_reload): Likewise.
4691         * config/s390/s390.c (s390_secondary_reload): Likewise.
4692         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
4693         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
4694         (ix86_register_move_cost): Likewise.
4695         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
4696         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
4697         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
4698         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
4699         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
4700         (rs6000_ira_cover_classes): Likewise.
4701         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
4702         * config/picochip/picochip-protos.h (picochip_secondary_reload):
4703         Likewise.
4704         * config/pa/pa.c (pa_secondary_reload): Likewise.
4705         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
4706         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
4707         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
4708         * doc/tm.texi: Regenerate.
4709
4710 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
4711
4712         PR bootstrrap/44726
4713         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
4714         use.
4715         (build_alias_set_optimal_p): Likewise.
4716         (build_base_obj_set_for_drs): Likewise.
4717
4718 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
4719
4720         * target.def: Remove comment about licensing problems of function
4721         declarations.
4722
4723         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
4724         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
4725         * doc/tm.texi: Regenerate.
4726
4727         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
4728         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
4729
4730         * target.def (enum_va_list_p): Use DEFHOOK.
4731         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
4732         Rename ptype to ptree.
4733         * doc/tm.texi: Regenerate.
4734
4735         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
4736         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
4737         * doc/tm.texi: Regenerate.
4738
4739         * target.def (memory_move_cost): Use DEFHOOK.
4740         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
4741         Rename regclass AKA class to rclass.
4742         * doc/tm.texi: Regenerate.
4743
4744         * target.def (pragma_parse): Use DEFHOOK.
4745         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
4746         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
4747         * doc/tm.texi: Regenerate.
4748
4749         * target.def (pass_by_reference): Use DEFHOOK.
4750         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
4751         * doc/tm.texi: Regenerate.
4752
4753         * target.def (resolve_overloaded_builtin): Rename params to arglist.
4754         Use DEFHOOK.
4755         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
4756         * doc/tm.texi: Regenerate.
4757
4758         * target.def (return_pops_args): Use DEFHOOK.
4759         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
4760         Rename stack-size to size.
4761         * doc/tm.texi: Regenerate.
4762
4763         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
4764         last-sched_cycle to last_clock, cur_cycle to clock.
4765         * doc/tm.texi.in: Use @hook.
4766         * doc/tm.texi: Regenerate.
4767
4768         * target.def (print_operand, print_operand_address): Update comment.
4769         (print_operand_punct_valid_p): Likewise.
4770
4771 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4772
4773         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
4774         to rtl.h.
4775         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
4776         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
4777         * rtl-error.h: New.
4778         * regrename.c: Do not include toplev.h. Include rtl-error.h.
4779         * rtl-error.c: Likewise.
4780         * reload.c: Likewise.
4781         * recog.c:  Likewise.
4782         * sel-sched.c: Likewise.
4783         * function.c: Likewise.
4784         * reg-stack.c: Likewise.
4785         * cfgrtl.c: Likewise.
4786         * reload1.c: Likewise.
4787         * final.c: Include rtl-error.
4788         * Makefile.in: Adjust dependencies.
4789
4790 2010-06-30  Jan Hubicka  <jh@suse.cz>
4791
4792         PR middle-end/PR44706
4793         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
4794         to return the value.
4795
4796 2010-06-30  Michael Matz  <matz@suse.de>
4797
4798         PR bootstrap/44699
4799         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
4800         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
4801         a gimple reg, attach the original VDEF to the last store in the
4802         sequence.
4803
4804 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
4805
4806         PR other/44034
4807         * config/darwin.c (darwin_override_options): Use renamed
4808         targetm.asm_out.emit_unwind_label.
4809
4810 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
4811
4812         PR tree-optimization/39799
4813         * tree-inline.c (remap_ssa_name): Initialize variable only if
4814         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
4815
4816 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
4817
4818         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
4819
4820 2010-06-30  Richard Guenther  <rguenther@suse.de>
4821
4822         PR target/44722
4823         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
4824         against oscillation with reverse peephole2.
4825
4826 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
4827
4828         PR target/44721
4829         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
4830         Fix last commit.
4831
4832 2010-06-30  Nick Clifton  <nickc@redhat.com>
4833
4834         * config/rx/rx-modes.def: New file.
4835         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
4836         (CC_REGNUM): Define.
4837         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
4838         register.
4839         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
4840         (SELECT_CC_MODE): Define.
4841         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
4842         (reg:CC CC_REG) instead of (cc0).
4843         (attr "cc"): Delete.
4844         (cbranchsi4): Do not split compare and branch here. Instead move
4845         it to...
4846         (cbranchsi4_<code>): ... here.  New patterns.
4847         (cmpsi): Call rx-compare_redundant to find out if it is necessary
4848         to emit the compare instruction.
4849         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
4850         cc_status flags.
4851         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
4852         FIRST_PSEUDO_REGNUM.
4853         (rx_expand_prologue, rx_expand_epilogue): Likewise.
4854         (rx_notice_update_cc): Delete.
4855         (rx_cc_modes_compatible): New function.
4856         (flags_needed_for_conditional): New function.
4857         (flags_from_mode): New function.
4858         (rx_compare_redundant): New function - scans backwards through
4859         insn list to find out if condition flags are already set correctly.
4860         (TARGET_CC_MODES_COMPATIBLE): Define.
4861         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
4862
4863         * config/rx/rx.h (BRANCH_COST): Define.
4864         (REGISTER_MOVE_COST): Define.
4865         * config/rx/predicates (rx_source_operand): Allow all constant types.
4866         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
4867         (tstsi4): New pattern.
4868         * config/rx/rx.c (rx_memory_move_cost): Define.
4869         (TARGET_MEMORY_MOVE_COST): Define.
4870
4871 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4872
4873         * tree.h (block_may_fallthru): Declare here.
4874         * tree-flow.h (block_may_fallthru): Do not declare here.
4875         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
4876         bitmap.h
4877         * Makefile.in (c-typeck.o): Update dependencies.
4878
4879 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR debug/44694
4882         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
4883         * cselib.c (cfa_base_preserved_regno): New static variable.
4884         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
4885         of REGNO (cfa_base_preserved_val->locs->loc).
4886         (cselib_preserve_cfa_base_value): Add regno argument, set
4887         cfa_base_preserved_regno to it.
4888         (cselib_invalidate_regno): Allow removal of registers other than
4889         cfa_base_preserved_regno from cfa_base_preserved_val.
4890         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
4891         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
4892         of MEM addresses, if not on LHS.
4893         (reverse_op): Don't add reverse ops for cfa_base_rtx.
4894         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
4895
4896 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
4897
4898         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
4899         static variables.
4900         (peep2_buf_position): New static function.
4901         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
4902         peephole2_optimize): Use it.
4903         (peep2_attempt, peep2_update_life): New static functions, broken out
4904         of peephole2_optimize.
4905         (peep2_fill_buffer): New static function.
4906         (peephole2_optimize): Change the main loop to try to fill the buffer
4907         with the maximum number of insns before matching them against
4908         peepholes.  Use a forward scan.  Remove special case for targets with
4909         conditional execution.
4910         * genrecog.c (change_state): Delete dead code.
4911         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
4912         Rewrite so as not to expect the second insn to have had a peephole
4913         applied yet.
4914
4915 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
4916
4917         * genhooks.c (emit_findices): Cast field precision to int.
4918         (emit_documentation): Likewise.
4919
4920 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
4921
4922         PR tree-optimization/43801
4923         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
4924         if old_decl was DECL_ONE_ONLY.
4925
4926         PR debug/44668
4927         * dwarf2out.c (add_accessibility_attribute): New function.
4928         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
4929         instead of adding DW_AT_accessibility manually.
4930         (gen_enumeration_type_die, gen_struct_or_union_type_die,
4931         gen_typedef_die): Use it.
4932
4933 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
4934
4935         * vmsdbgout.c (full_name): Just output the file name if not native.
4936
4937 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
4938
4939         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
4940         (funcnam_table): New static table.
4941         (funcnum_table): New static table.
4942         (write_rtnbeg): Write value saved in funcnum_table.
4943         (write_rtnend): Write value saved in funcnum_table.
4944         (vmsdbgout_begin_function): Save current function info in
4945         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
4946         (vmsdbgout_finish): Iterate over funcnum_table.
4947
4948 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
4949
4950         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
4951         (vmsdbgout_type_decl): Declare
4952         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
4953         (FUNC_EPILOGUE_LABEL): New macro
4954         (vmsdbgout_begin_epilogue): New function.
4955         (vmsdbgout_type_decl): New function.
4956
4957 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
4958
4959         * vmsdbg.h: Update copyright.
4960
4961 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
4962
4963         * vmsdbg.h (DST_K_TBG): New DST constant.
4964         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
4965         (write_modbeg): Cast module_language to avoid warning.
4966         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
4967
4968 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
4969
4970         PR other/44034
4971         * target.def, doc/tm.texi.in, genhooks.c: New files.
4972         * target.h: Instead of defining individual hook members,
4973         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
4974         include target.def.
4975         * target-def.h: Instead of defining individual hook initializers,
4976         include target-hooks-def.h.
4977         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
4978         targetm.live_on_entry -> targetm.extra_live_on_entry
4979         targetm.sched.md_finish ->targetm.sched.finish
4980         targetm.sched.md_init -> targetm.sched.init
4981         targetm.sched.md_init_global -> targetm.sched.init_global
4982         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
4983         targetm.asm_out.except_table_label ->
4984           targetm.asm_out.emit_except_table_label
4985         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
4986         targetm.target_help -> targetm.help
4987         targetm.vectorize.builtin_support_vector_misalignment ->
4988           targetm.vectorize.support_vector_misalignment
4989         targetm.file_start_app_off -> targetm.asm_file_start_app_off
4990         targetm.file_start_file_directive ->
4991          targetm.asm_file_start_file_directive
4992         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
4993         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
4994         * gcc/config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
4995         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
4996           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
4997         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
4998           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
4999         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
5000         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
5001         * Makefile.in (TARGET_H): Depend on target.def.
5002         (TARGET_DEF_H): Depend on target-hooks-def.h.
5003         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
5004         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
5005         * doc/tm.texi: Regenerate.
5006
5007         * Makefile.in (s-tm-texi): Remove stray tab / rule.
5008
5009         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
5010         (targetm.sched.init): Likewise.
5011
5012 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
5013
5014         PR bootstrap/44713
5015         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
5016         (function_arg_advance_32): Const-ify TYPE parameter.
5017         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
5018         (ix86_function_arg_advance): Change type of NAMED to bool.
5019         (function_arg_32): Const-ify CUM and TYPE parameters.
5020         (function_arg_64): Likewise.  Change type of NAMED to bool.
5021         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
5022         to bool.
5023         (ix86_function_arg): Change type of NAMED to bool.
5024         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
5025         last argument as a bool.
5026
5027 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
5028
5029         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
5030         (OVERRIDE_OPTIONS): Add note of obsolescence.
5031         Replace references with references to TARGET_OPTION_OVERRIDE.
5032         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
5033          the macro).
5034         * targhooks.c (default_target_option_override): New function.
5035         * targhooks.h (default_target_option_override): Declare.
5036         * target.h (struct gcc_target): Add override member to
5037         target_option member.
5038         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
5039         targetm.target_option.override call.
5040         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
5041         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
5042
5043 2010-06-29  Jan Hubicka  <jh@suse.cz>
5044
5045         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
5046
5047 2010-06-29  Jan Hubicka  <jh@suse.cz>
5048
5049         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
5050         unreachable.
5051         (rebuild_frequencies): New function.
5052         * predict.h (rebuild_frequencies): Declare.
5053         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
5054         entry block and edge reaching new_entry.
5055         (tree_function_versioning): When doing partial cloning, rebuild
5056         frequencies when done.
5057         * passes.c (execute_function_todo): Use rebild_frequencies.
5058
5059 2010-06-29  Richard Guenther  <rguenther@suse.de>
5060
5061         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
5062         * tree-flow.h (enum noalias_state): Remove.
5063         (struct var_ann_d): Remove noalias_state member.
5064
5065 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
5066
5067         PR target/43902
5068         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
5069         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
5070         (maddhidi4): Likewise.
5071
5072         Revert parts of the change for PR25130.
5073         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
5074         MEM_ALIAS_SET.
5075
5076 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
5077
5078         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
5079         targetm.calls.function_incoming_arg, and
5080         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
5081         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
5082         * target.h (struct gcc_target): Add function_arg_advance,
5083         function_arg, and function_incoming_arg fields.
5084         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
5085         (TARGET_FUNCTION_INCOMING_ARG): Define.
5086         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
5087         and TARGET_FUNCTION_INCOMING_ARG.
5088         * targhooks.h (default_function_arg_advance): Declare.
5089         (default_function_arg, default_function_incoming_arg): Declare.
5090         * targhooks.c (default_function_arg_advance): New function.
5091         (default_function_arg, default_function_incoming_arg): New function.
5092         * config/i386/i386.c (function_arg_advance): Rename to...
5093         (ix86_function_arg_advance): ...this.  Make static.
5094         (function_arg): Rename to...
5095         (ix86_function_arg): ...this.  Make static.
5096         (TARGET_FUNCTION_ARG_ADVANCE): Define.
5097         (TARGET_FUNCTION_ARG): Define.
5098         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
5099         (FUNCTION_ARG): Delete.
5100         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
5101         (function_arg): Delete prototype.
5102
5103 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
5104
5105         * reginfo.c (init_reg_sets_1): Adjust comments.
5106         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
5107         * calls.c (prepare_call_address): Likewise.
5108         (emit_call_1): Use targetm.calls.return_pops_args.
5109         (expand_call): Likewise.
5110         * function.c (assign_parms): Likewise.
5111         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
5112         * target.h (struct gcc_target) [struct calls]: Add
5113         return_pops_args field.
5114         * targhooks.h (default_return_pops_args): Declare.
5115         * targhooks.c (default_return_pops_args): Define.
5116         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
5117         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
5118         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
5119         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
5120         documentation.
5121         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
5122         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
5123         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
5124         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
5125         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
5126         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
5127         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
5128         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
5129         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
5130         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
5131         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
5132         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
5133         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
5134         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
5135         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
5136         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
5137         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
5138         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
5139         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
5140         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
5141         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
5142         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
5143         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
5144         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
5145         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
5146         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
5147         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
5148         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
5149         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
5150         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
5151         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
5152         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
5153         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
5154         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
5155         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
5156         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
5157         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
5158         * config/i386/i386.c (ix86_return_pops_args): Make static.
5159         Constify arguments.
5160         (TARGET_RETURN_POPS_ARGS): Define.
5161         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
5162         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
5163         (TARGET_RETURN_POPS_ARGS): Define.
5164         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
5165         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
5166         (TARGET_RETURN_POPS_ARGS): Define.
5167
5168 2010-06-29  Richard Guenther  <rguenther@suse.de>
5169
5170         PR middle-end/44667
5171         * tree-inline.c (initialize_inlined_parameters): Make sure
5172         to remap the inlined parameter variable substitutions types.
5173
5174 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
5175
5176         PR rtl-optimization/44659
5177         * combine.c (make_compound_operation) <SUBREG>: Do not return the
5178         result of force_to_mode if it partially re-expanded the compound.
5179
5180 2010-06-28  Jan Hubicka  <jh@suse.cz>
5181
5182         PR middle-end/44671
5183         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
5184         RESULT_DECL.
5185
5186 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
5187
5188         * double-int.h (force_fit_type_double): Remove declaration.
5189         * double-int.c (force_fit_type_double): Move to tree.c.
5190         * tree.h (force_fit_type_double): Declare.
5191         * tree.h (force_fit_type_double): Moved from double-int.c. Use
5192         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
5193         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
5194         * convert.c (convert_to_pointer): Adjust call to
5195         force_fit_type_double.
5196         * tree-vrp.c (extract_range_from_assert,
5197         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
5198         * fold-const.c: Update comment.
5199         (int_const_binop, fold_convert_const_int_from_int,
5200         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
5201         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
5202         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
5203         round_up_loc): Adjust call to force_fit_type_double.
5204
5205 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5206
5207         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
5208
5209 2010-06-28  Martin Jambor  <mjambor@suse.cz>
5210
5211         * tree-sra.c (convert_callers): New parameter, change fndecls of
5212         recursive calls.
5213         (modify_function): Pass the old decl to convert_callers.
5214
5215 2010-06-28  Martin Jambor  <mjambor@suse.cz>
5216
5217         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
5218         ipa_check_create_node_params and ipa_initialize_node_params with
5219         checking asserts they are not necessary.
5220
5221 2010-06-28  Jan Hubicka  <jh@suse.cz>
5222
5223         PR tree-optimization/44687
5224         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
5225
5226 2010-06-28  Martin Jambor  <mjambor@suse.cz>
5227
5228         PR c++/44535
5229         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
5230         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
5231         instead of BINFO_BASE_BINFO.
5232
5233 2010-06-28  Michael Matz  <matz@suse.de>
5234
5235         PR middle-end/44592
5236         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
5237         proper VDEF chain for intermediate stores in the sequence.
5238
5239 2010-06-28  Jan Hubicka  <jh@suse.cz>
5240
5241         PR tree-optimization/44357
5242         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
5243         uninlinable functions.
5244
5245 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
5246
5247         * config.gcc (powerpc*-*-*): Handle titan.
5248         * config/rs6000/rs6000.c (titan_cost): New costs.
5249         (rs6000_override_options): Add "titan" to processor_target_table.
5250         Add Titan to branch alignment logic.
5251         Correctly set rs6000_cost for titan.
5252         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
5253         * config/rs6000/titan.md: New file.
5254         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
5255
5256 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
5257
5258         * tree-browser.c (TB_history_stack): Convert to a VEC.
5259         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
5260         (TB_history_prev): Likewise.
5261
5262 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
5263
5264         * vec.h (vec_heap_free): Add parentheses around free.
5265
5266 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
5267
5268         * system.h: Poison GCC_EXCEPT_H for front-end files.
5269
5270         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
5271         langhook.
5272         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
5273         Define to NULL by default.
5274         * except.h: Define GCC_EXCEPT_H.
5275         (doing_eh): Remove prototype.
5276         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
5277         (lang_protect_cleanup_actions): Remove.
5278         * except.c (lang_protect_cleanup_actions): Remove.
5279         (doing_eh): Remove.
5280         (gen_eh_region): Don't check doing_eh here.
5281         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
5282         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
5283         instead of lang_protect_cleanup_actions.
5284         * omp-low.c (maybe_catch_exception): Likewise.
5285         * Makefile.in: Update dependencies.
5286
5287 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
5288
5289         * cgraph.h (struct varpool_node): new used_from_object_file flag.
5290         (struct cgraph_local_info): new used_from_object_file flag.
5291         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
5292         (cgraph_clone_node): initialize used_from_object_file.
5293         (cgraph_create_virtual_clone): initialize used_from_object_file.
5294         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
5295         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
5296         when compiling with -fwhole-program.
5297         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
5298         internal resolver.
5299         * ipa.c (function_and_variable_visibility): Set externally_visible
5300         flag of varpool_node if used_from_object_file flag is set.
5301         (cgraph_externally_visible_p): check used_from_object_file flag.
5302         * doc/invoke.texi (-fwhole-program option): Change description of
5303         externally_visible attribute accordingly.
5304         * doc/extend.texi (externally_visible): Ditto.
5305
5306 2010-06-27  Jan Hubicka  <jh@suse.cz>
5307
5308         * params.def (max-inline-insns-auto): Default to 40.
5309         * doc/invoke.texi (max-inline-insns-auto): Document the change.
5310
5311 2010-06-27  Jan Hubicka  <jh@suse.cz>
5312
5313         PR middle-end/44671
5314         PR middle-end/44686
5315         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
5316         signature change.
5317         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
5318         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
5319
5320 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
5321
5322         * target.h (struct gcc_target): Add register_move_cost field.
5323         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
5324         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
5325         * targhooks.c (default_register_move_cost): New function.
5326         * targhooks.h (default_register_move_cost): Declare function.
5327         * defaults.h (REGISTER_MOVE_COST): Delete.
5328         * ira-int.h (ira_register_move_cost): Update comment.
5329         * ira.c (ira_register_move_cost): Update comment.
5330         * reload.h (register_move_cost): Declare.
5331         * reginfo.c (register_move_cost): New function.
5332         (move_cost): Update comment.
5333         (init_move_cost, memory_move_secondary_cost): Replace
5334         REGISTER_MOVE_COST with register_move_cost.
5335         * postreload.c (reload_cse_simplify_set): (Ditto.).
5336         * reload.c (find_valid_class, find_reloads): (Ditto.).
5337         * reload1.c (choose_reload_regs): (Ditto.).
5338         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
5339         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
5340         * doc/md.texi (can_create_pseudo_p): Update documentation.
5341
5342         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
5343         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
5344         * config/i386/i386.h (ix86_memory_move_cost): Make static.
5345         (TARGET_MEMORY_MOVE_COST): Define.
5346
5347         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
5348         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
5349         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
5350         (TARGET_MEMORY_MOVE_COST): Define.
5351
5352 2010-06-27  Richard Guenther  <rguenther@suse.de>
5353
5354         PR tree-optimization/44683
5355         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
5356         false edge from the inverted condition.
5357
5358 2010-06-27  Richard Guenther  <rguenther@suse.de>
5359
5360         PR middle-end/44684
5361         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
5362         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
5363         for register LHS.  Or non-store assignments.
5364
5365 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
5366
5367         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
5368         (sparc_emit_set_const64): Likewise.  Remove disabled code.
5369         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
5370         (sparc_emit_set_const64): Likewise.
5371
5372 2010-06-26  Catherine Moore  <clm@codesourcery.com>
5373
5374         * config/mips/mips.md (alu_type): New attribute.
5375         (type): Infer type from alu_type.
5376         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
5377         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
5378         *subsi3_extended, negsi2, negdi2, *low<mode>,
5379         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
5380         xor<mode>3, *nor<mode>3,
5381         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
5382         *zero_extendhi_truncqi):  Set alu_type instead of type.
5383
5384 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
5385
5386         * config/alpha/alpha.c (alpha_need_linkage): Adjust
5387         splay_tree_new_ggc call.
5388         (alpha_use_linkage): Likewise.
5389
5390 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
5391
5392         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
5393         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
5394         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
5395         (static_specs): Remove switches_need_spaces.
5396         (process_command, do_self_spec): Hardcode handling "-o" instead of
5397         checking switches_need_spaces.
5398         * system.h (SWITCHES_NEED_SPACES): Poison.
5399
5400 2010-06-26  Richard Guenther  <rguenther@suse.de>
5401
5402         PR tree-optimization/44393
5403         * tree-loop-distribution.c (generate_loops_for_partition): Fix
5404         stmt removal and VOP renaming.
5405         (generate_memset_zero): Remove redundant stmt updating.
5406         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
5407         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
5408
5409 2010-06-26  Jan Hubicka  <jh@suse.cz>
5410
5411         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
5412         edges comming from header are equivalent.
5413         (visit_bb): Handle PHIs correctly.
5414         * tree-inline.c (copy_phis_for_bb): Be able to copy
5415         PHI from entry edge.
5416         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
5417
5418 2010-06-26  Richard Guenther  <rguenther@suse.de>
5419
5420         PR middle-end/44674
5421         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
5422         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
5423
5424 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
5425
5426         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
5427         add_infile, alloc_switch): New.
5428         (process_command): Remove variable lang_n_infiles.  Process
5429         options in a single pass.  Use new functions for allocating
5430         infiles and switches arrays.  Properly skip operands of
5431         -Xpreprocessor and -Xassembler.
5432
5433 2010-06-26  Jan Hubicka  <jh@suse.cz>
5434
5435         PR middle-end/44671
5436         * cgraphunit.c (cgraph_function_versioning): Remove wrong
5437         cgraph_make_decl_local call; fix typo copying RTL data.
5438
5439 2010-06-25  DJ Delorie  <dj@redhat.com>
5440
5441         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
5442         (m32c_output_aligned_common): Likewise.
5443         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
5444         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
5445         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
5446         (m32c_register_pragmas): Register it.
5447         * config/m32c/m32c.c (m32c_get_pragma_address): New.
5448         (m32c_insert_attributes): Set #pragma address decls volatile.
5449         (pragma_entry_eq): New.
5450         (pragma_entry_hash): New.
5451         (m32c_note_pragma_address): New.
5452         (m32c_get_pragma_address): New.
5453         (m32c_output_aligned_common): New.
5454         * doc/extend.texi: Document the new pragma.
5455
5456         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
5457         also.
5458         * config/m32c/predicates.md (m32c_any_operand): Check the code
5459         instead of memory_operand so as to allow matching volatile MEMs.
5460         (m32c_nonimmediate_operand): Likewise.
5461         (mra_operand): Allow volatiles.
5462
5463 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
5464
5465         PR debug/44610
5466         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
5467         address if the offset is unknown.
5468
5469 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
5470
5471         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
5472         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
5473         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
5474         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
5475         to ia64_start_function. Invoke it.
5476         * config/ia64/ia64.c (ia64_start_function): Call new function
5477         dwarf2out_vms_debug_main_pointer.
5478
5479 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
5480
5481         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
5482         statements computing the true predicate.
5483
5484 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
5485
5486         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
5487         to boolean_true_node.
5488         (reset_bb_predicate): New.
5489         (predicate_bbs): Call reset_bb_predicate.
5490
5491 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
5492
5493         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
5494         (tree_if_conversion): Returns true when something has been changed.
5495         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
5496         changed something.
5497
5498 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
5499
5500         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
5501         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
5502         * tree-if-conv.c: Include dbgcnt.h.
5503         (tree_if_conversion): Use if_conversion_tree to count the number of
5504         if-convertible loops.
5505
5506 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
5507
5508         * common.opt (fprefetch-loop-arrays): Re-define
5509         -fprefetch-loop-arrays as a tri-state option with the initial
5510         value of -1.
5511         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
5512         pass only when flag_prefetch_loop_arrays > 0.
5513         * toplev.c (process_options): Note that, with tri-states,
5514         flag_prefetch_loop_arrays>0 means prefetching is enabled.
5515         * config/i386/i386.c (override_options): Enable prefetching at -O3
5516         for a set of CPUs that sw prefetching is helpful.
5517         (software_prefetching_beneficial_p): New.  Return TRUE if software
5518         prefetching is beneficial for the given CPU.
5519
5520 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
5521
5522         PR rtl-optimization/44326
5523         * implicit-zee.c (find_removable_zero_extends): Replace
5524         INSN_P with NONDEBUG_INSN_P.
5525
5526 2010-06-25  Martin Jambor  <mjambor@suse.cz>
5527
5528         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
5529         (struct ipa_node_params): Removed the modification_analysis_done flag.
5530         (ipa_is_param_modified): Removed.
5531         (ipa_analyze_node): Declare.
5532         (ipa_compute_jump_functions): Remove declaration.
5533         (ipa_count_arguments): Likewise.
5534         (ipa_detect_param_modifications): Likewise.
5535         (ipa_analyze_params_uses): Likewise.
5536         * ipa-prop.c (struct param_analysis_info): New type.
5537         (visit_store_addr_for_mod_analysis): Removed.
5538         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
5539         moved down in the file.
5540         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
5541         (ipa_count_arguments): Made static.
5542         (mark_modified): New function.
5543         (is_parm_modified_before_call): New function.
5544         (compute_pass_through_member_ptrs): New parameter parms_info, call
5545         is_parm_modified_before_call instead of ipa_is_param_modified.
5546         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
5547         it to compute_pass_through_member_ptrs.
5548         (ipa_compute_jump_functions): New parameter parms_info, pass it to
5549         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
5550         on the callee if it is analyzed.  Made static.
5551         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
5552         is_parm_modified_before_call instead of ipa_is_param_modified.
5553         (ipa_analyze_call_uses): New parameter parms_info, pass it to
5554         ipa_analyze_indirect_call_uses.
5555         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
5556         ipa_analyze_call_uses.
5557         (ipa_analyze_params_uses): New parameter parms_info, pass it to
5558         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
5559         (ipa_analyze_node): New function.
5560         (ipa_print_node_params): Do not dump the modified flag.
5561         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
5562         it.  Do not stream the modified parameter flag.
5563         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
5564         it.  Do not stream the modified parameter flag.
5565         * ipa-cp.c (ipcp_analyze_node): Removed.
5566         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
5567         with only a call to ipa_analyze_node.
5568         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
5569         node with only a call to ipa_analyze_node.
5570
5571 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5572
5573         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
5574
5575 2010-06-25  Jan Hubicka  <jh@suse.cz>
5576
5577         * tree-pass.h (pass_split_functions): Declare.
5578         * opts.c (decode_options): Enable function splitting at -O2
5579         * timevar.def (TV_IPA_FNSPLIT): New macro.
5580         * ipa-split.c: New file.
5581         * common.opt (-fpartial-inlining): New flag.
5582         * Makefile.in (ipa-split.o): New object file.
5583         * passes.c (init_optimization_passes): Add ipa-split.
5584         * params.def (partial-inlining-entry-probability): New parameters.
5585         * doc/invoke.texi (-fpartial-inlining): New.
5586
5587 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5588
5589         PR 44665
5590         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
5591         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
5592         (gimplify_expr): Likewise.
5593
5594 2010-06-25  Martin Jambor  <mjambor@suse.cz>
5595
5596         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
5597         statements instead of bailing out on them.
5598         (ipa_analyze_indirect_call_uses): Do not require that loads from the
5599         parameter are in the same BB as the condition.  Update comments.
5600
5601 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
5602
5603         PR middle-end/43866
5604         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
5605         true or always false, return NULL_TREE.
5606         (tree_unswitch_single_loop): Optimize conditions even when reaching
5607         max-unswitch-level parameter.  If num > 0, optimize first all conditions
5608         using entry checks, then do still reachable block discovery and consider
5609         only conditions in still reachable basic blocks in the loop.
5610
5611         PR tree-optimization/44539
5612         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
5613         the call doesn't have LHS, but has VDEF.
5614
5615 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
5616
5617         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
5618         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
5619         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
5620         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
5621         * system.h (MODIFY_TARGET_NAME): Poison.
5622
5623 2010-06-25  Alan Modra  <amodra@gmail.com>
5624
5625         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
5626         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
5627         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5628         CMODEL_LARGE as default.
5629         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
5630         (offsettable_ok_by_alignment): Delete.
5631         (rs6000_emit_move): Remove mcmodel=medium optimization.
5632
5633 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
5634
5635         With large parts from Jim Wilson:
5636         PR target/43902
5637         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
5638         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
5639         * optabs.c (optab_for_tree_code): Likewise.
5640         (expand_widen_pattern_expr): Likewise.
5641         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
5642         out of execute_optimize_widening_mul.
5643         (convert_plusminus_to_widen): New function.
5644         (execute_optimize_widening_mul): Use the two new functions.
5645         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
5646         Remove code to generate widening multiply-accumulate.  Add support
5647         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
5648         * gimple-pretty-print.c (dump_ternary_rhs): New function.
5649         (dump_gimple_assign): Call it when appropriate.
5650         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
5651         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
5652         (expand_gimple_stmt_1): Likewise.
5653         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
5654         WIDEN_MULT_MINUS_EXPR.
5655         * tree-ssa-operands.c (get_expr_operands): Likewise.
5656         * tree-inline.c (estimate_operator_cost): Likewise.
5657         * gimple.c (extract_ops_from_tree_1): Renamed from
5658         extract_ops_from_tree.  Add new arg for a third operand; fill it.
5659         (gimple_build_assign_stat): Support operations with three operands.
5660         (gimple_build_assign_with_ops_stat): Likewise.
5661         (gimple_assign_set_rhs_from_tree): Likewise.
5662         (gimple_assign_set_rhs_with_ops_1): Renamed from
5663         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
5664         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
5665         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
5666         WIDEN_MULT_MINUS_EXPR.
5667         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
5668         (extract_ops_from_tree_1): Adjust declaration.
5669         (gimple_assign_set_rhs_with_ops_1): Likewise.
5670         (gimple_build_assign_with_ops): Pass NULL for last operand.
5671         (gimple_build_assign_with_ops3): New macro.
5672         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
5673         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
5674         functions.
5675         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
5676         (verify_gimple_assign): Call it.
5677         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
5678         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
5679         functions for dealing with three-operand statements.
5680         * tree.c (commutative_ternary_tree_code): New function.
5681         * tree.h (commutative_ternary_tree_code): Declare it.
5682         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
5683         ternary statements.
5684         (gimple_assign_nonzero_warnv_p): Likewise.
5685         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
5686         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
5687         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
5688         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
5689         (struct hashtable_expr): New member ternary in the union.
5690         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
5691         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
5692         (iterative_hash_hashable_expr): Likewise.
5693         (print_expr_hash_elt): Handle EXPR_TERNARY.
5694         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
5695         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
5696         statements.  Handle GIMPLE_TERNARY_RHS.
5697
5698 2010-06-25  Jan Hubicka  <jh@suse.cz>
5699
5700         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
5701
5702 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
5703
5704         PR c/44517
5705         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
5706         parameters are not good.
5707         (c_parser_parameter_declaration): Error unknown type name if the type
5708         name can't start declaration specifiers.
5709
5710 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
5711
5712         * gcc.c (translate_options): Don't mention +e in comment.
5713         (process_command): Don't handle +e specially.
5714
5715 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
5716
5717         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
5718
5719         * ira-build.c (merge_hard_reg_conflicts): New function.
5720         (create_cap_allocno, copy_info_to_removed_store_destinations,
5721         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
5722         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
5723         (remove_unnecessary_allocnos, remove_low_level_allocnos)
5724         copy_nifo_to_removed_store_destination): Use them.
5725         * ira-lives.c (make_hard_regno_born): New function, split out of
5726         make_regno_born.
5727         (make_allocno_born): Likewise.
5728         (make_hard_regno_dead): New function, split out of make_regno_dead.
5729         (make_allocno_dead): Likewise.
5730         (inc_register_pressure): New function, split out of set_allocno_live.
5731         (dec_register_pressure): New function, split out of clear_allocno_live.
5732         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
5733         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
5734         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
5735         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
5736         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
5737         mark_pseudo_regno_live.
5738         (process_bb_node_lives): Use mark_pseudo_regno_live,
5739         make_hard_regno_born and make_allocno_dead.
5740         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
5741         set_allocno_live, clear_allocno_live): Delete functions.
5742
5743         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
5744         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
5745         functions.
5746         (ira_flattening): Use ira_parent_allocno.
5747         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
5748         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
5749
5750         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
5751         statement.
5752
5753         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
5754         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
5755         minmax_set_iter_cond, minmax_set_iter_next,
5756         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
5757         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
5758         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
5759         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
5760         uses changed.
5761
5762         * ira-int.h (struct live_range, live_range_t): Renamed from struct
5763         ira_allocno_live_range and allocno_live_range_t; all uses changed.
5764         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
5765         All uses changed.
5766
5767 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
5768
5769         * thumb2.md (thumb2_tlobits_cbranch): Delete.
5770         (peephole2 to convert zero_extract/compare of single bit to
5771          lshift/compare): New.
5772
5773 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
5774
5775         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
5776         recursive call and call to 'int_const_binop'.
5777         (build_range_check, fold_cond_expr_with_comparison, unextend,
5778         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
5779         multiple_of_p): Adjust call to const_binop.
5780
5781 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
5782
5783         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
5784         determine size of XFmode operand.
5785         (XFmode extended DFmode push splitter): Ditto.
5786         (XFmode extended SFmode push splitter): Ditto.
5787
5788 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
5789
5790         PR target/44588
5791         * config/i386/i386.md (extract_code): New.
5792         (<u>divmodqi4): Likewise.
5793         (divmodhiqi3): Likewise.
5794         (udivmodhiqi3): Likewise.
5795         (<u>divqi3): Remvoved.
5796
5797 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
5798
5799         PR middle-end/44492
5800         * recog.h (struct recog_data): Add is_asm field.
5801         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
5802         present in constraints of inline-asm operand and memory operand
5803         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
5804         (extract_insn): Initialize recog_data.is_asm.
5805         * doc/md.texi (Constraints): Document operand side-effect rules.
5806
5807 2010-06-24  Andi Kleen  <ak@linux.intel.com>
5808
5809         * c-parser.c (c_parser_conditional_expression): Call
5810         warn_for_omitted_condop.
5811         * doc/invoke.texi: Document omitted condop warning.
5812
5813 2010-06-24  Nick Clifton<nickc@redhat.com>
5814
5815         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
5816         insn in the sequence is a jump insn before setting its label.
5817
5818 2010-06-24  Alan Modra  <amodra@gmail.com>
5819
5820         * collect2.c (main): Match exactly --version and --help.
5821
5822 2010-06-24  DJ Delorie  <dj@redhat.com>
5823
5824         * config/m32c/m32c-pragma.c: Don't include rtl.h.
5825
5826 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
5827
5828         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
5829         using X87MODEF mode iterator.
5830         (pushsf splitter): Macroize splitter using P mode iterator.
5831         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
5832         mode iterator.
5833
5834         (*movxf_internal): Rename from *movxf_integer.
5835         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
5836         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
5837         (*movdf_internal): Rename from *movdf_integer.
5838         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
5839         (*movsf_internal): Rename from *movdf_1.
5840
5841 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
5842
5843         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
5844         (const_gimple_seq_node): Removed typedefs.
5845
5846         * gimple.h (gimple_seq_node_d, gimple_seq_node)
5847         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
5848
5849 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
5850
5851         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
5852         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
5853         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
5854         and CODE_FOR_vec_extract_lo_v4df.
5855
5856         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
5857         Changed to define_insn_and_split.
5858         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
5859         (vec_extract_lo_v16hi): Likewise.
5860         (vec_extract_lo_v32qi): Likewise.
5861         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
5862         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
5863
5864 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
5865
5866         PR target/44640
5867         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
5868         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
5869         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
5870         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
5871         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
5872
5873         PR target/44640
5874         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
5875
5876         PR other/44644
5877         * df-core.c (struct df): Rename to df_d.
5878         * df.h (struct df): Likewise.
5879         * dse.h (struct df): Remove forward declaration.
5880         * recog.h (struct insn_data): Rename to:
5881         (struct_insn_data_d).  Adjusted all users.
5882
5883 2010-06-23  Arnaud Charlet  <charlet@adacore.com
5884
5885         PR ada/22220
5886         * doc/install.texi: Update requirements to build GNAT.
5887
5888 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
5889
5890         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
5891         enum type.
5892         (m68k_sched_attr_opx_type): Remove unreachable return.
5893         (m68k_sched_attr_opy_type): Likewise.
5894         (m68k_sched_attr_size): Likewise.
5895         (sched_get_opxy_mem_type): Likewise.
5896         (m68k_sched_attr_op_mem): Likewise.
5897
5898 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
5899
5900         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
5901         new statement and adjust VDEF only if necessary.  Remove superfluous
5902         call to maybe_clean_or_replace_eh_stmt.
5903         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
5904         copy the flags.
5905         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
5906         * tree-inline.c (copy_bb): ...and not there.
5907
5908 2010-06-22  Cary Coutant  <ccoutant@google.com>
5909
5910         * dwarf2out.c (is_nested_in_subprogram): New function.
5911         (should_move_die_to_comdat): Use it.
5912         (copy_ancestor_tree): Don't mark DIEs here.
5913         (copy_decls_walk): Start walk from root of newly-added tree;
5914         mark DIEs here instead.
5915
5916 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
5917
5918         * config/i386/i386.md (unit): Also check sseishft1.
5919
5920 2010-06-22  Jan Hubicka  <jh@suse.cz>
5921
5922         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
5923         enabled.
5924
5925 2010-06-22  Jan Hubicka  <jh@suse.cz>
5926
5927         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
5928         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
5929         Return true if something changed.
5930         * df.h (df_confluence_function_n): Return bool.
5931         * df-core.c (df_worklist_propagate_forward,
5932         df_worklist_propagate_backward): Track changes and ages.
5933         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
5934         track ages.
5935         * dse.c (dse_confluence_n): Return always true.
5936
5937 2010-06-22  Jan Hubicka  <jh@suse.cz>
5938
5939         * bitmap.c (bitmap_clear_bit): Micro optimize.
5940
5941 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
5942
5943         * config/i386/i386.md (SWI1248x): New mode iterator.
5944         (SWI48x): Ditto.
5945         (SWI12): Ditto.
5946         (SWI24): Ditto.
5947
5948         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
5949         SWI1248x mode iterator.
5950         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
5951         using SWI124 mode iterator.
5952         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
5953         mode iterator.
5954         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
5955         *pushdi2_prologue_rex64 using P mode iterator.
5956         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
5957         using SWI48 mode iterator.
5958         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
5959         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
5960         using SWI1248x mode iterator.
5961         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
5962         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
5963         SWI48 mode iterator.
5964         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
5965         iterator.
5966         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
5967         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
5968         SWI12 mode iterator.
5969         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
5970         SWI12 mode iterator.
5971         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
5972         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
5973         SWI24 mode iterator.
5974         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
5975         SWI48 mode iterator.
5976         (mov<mode>_insn_1): New expander.
5977         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
5978         using SWI48x mode iterator.
5979
5980         (*movoi_internal_avx): Rename from *movoi_internal.
5981         (*movti_internal_rex64): Rename from *movti_rex64.
5982         (*movti_internal_sse): Rename from *movti_sse.
5983         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
5984         (*movdi_internal): Rename from *movdi_2.
5985         (*movsi_internal): Rename from *movsi_1.
5986         (*movhi_internal): Rename from *movhi_1.
5987         (*movqi_internal): Rename from *movqi_1.
5988
5989         (insv): Update the call to gen_movsi_insv_1 for rename.
5990         * config/i386/i386.c (promote_duplicated_reg): Ditto.
5991
5992 2010-06-22  Jan Hubicka  <jh@suse.cz>
5993
5994         * passes.c (execute_function_todo): Move call of statistics_fini_pass
5995         to ...
5996         (execute_todo) ... this one.
5997
5998 2010-06-22  Alan Modra  <amodra@gmail.com>
5999
6000         PR target/44364
6001         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
6002         * caller-save.c (insert_restore, insert_save): Use non-validate
6003         form of adjust_address.
6004
6005 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6006
6007         PR target/39690
6008         * config/pa/pa.c (override_options): Disable
6009         -freorder-blocks-and-partition.
6010
6011 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
6012
6013         PR target/44615
6014         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
6015
6016         * config/i386/i386.md (type): Add sseishft1
6017
6018         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
6019         (ppro_insn_load): Likewise.
6020         (ppro_insn_store): Likewise.
6021         (ppro_insn_both): Likewise.
6022
6023         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
6024         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
6025         for type.
6026         (*vec_extractv2di_1_avx): Likewise.
6027         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
6028         type.  Remove atom_unit.
6029         (*vec_extractv2di_1_sse2): Likewise.
6030
6031 2010-06-21  DJ Delorie  <dj@redhat.com>
6032
6033         * diagnostic.h (diagnostic_classification_change_t): New.
6034         (diagnostic_context): Add history and push/pop list.
6035         (diagnostic_push_diagnostics): Declare.
6036         (diagnostic_pop_diagnostics): Declare.
6037         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
6038         from pragmas in a history chain instead of the global table.
6039         (diagnostic_push_diagnostics): New.
6040         (diagnostic_pop_diagnostics): New.
6041         (diagnostic_report_diagnostic): Scan history chain to find state
6042         of diagnostics as of the diagnostic location.
6043         * opts.c (set_option): Pass UNKNOWN_LOCATION to
6044         diagnostic_classify_diagnostic.
6045         (enable_warning_as_error): Likewise.
6046         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
6047         use in the history chain.
6048         * doc/extend.texi: Document pragma GCC diagnostic changes.
6049
6050 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
6051
6052         * dwarf2out.c (add_linkage_name): New function.  Don't add
6053         anything to DW_TAG_member DIEs.
6054         (add_name_and_src_coords_attributes): Use it.
6055         (gen_variable_die): Call it for C++ static data members if
6056         specification is DW_TAG_member.
6057
6058         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
6059         C++ char16_t and char32_t.
6060
6061         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
6062         * genattrtab.c: Include vecprim.h.
6063         (cached_attrs, cached_attr_count, attrs_seen_once,
6064         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
6065         attrs_cached_after): New variables.
6066         (find_attrs_to_cache): New function.
6067         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
6068         (write_test_expr): Add attrs_cached argument, return it too,
6069         attempt to cache non-const attributes used more than once in
6070         a single case handling.
6071         (write_attr_get): Use find_attrs_to_cache, for caching candidates
6072         emit cached_* variables.  Adjust write_attr_set callers.
6073         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
6074         to find attributes that should be cached in this block.  Adjust
6075         write_test_expr callers.
6076         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
6077         callers.
6078         (make_automaton_attrs): Adjust write_test_expr caller.
6079
6080         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
6081         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
6082         (make_automaton_attrs): If find_tune_attr returns non-NULL,
6083         write separate internal_dfa_insn_code_* and insn_default_latency_*
6084         functions for each attribute's value and emit init_sched_attrs
6085         function and function pointers.
6086         * genattr.c (const_attrs, reservations): New variables.
6087         (gen_attr): Add const attributes to const_attrs vector.
6088         (check_tune_attr, find_tune_attr): New functions.
6089         (main): Add reservations to reservations vector.  If find_tune_attr
6090         returns true, add prototype for init_sched_attrs and make
6091         internal_dfa_insn_code and insn_default_latency function pointers,
6092         otherwise define init_sched_attrs as dummy macro.
6093         * cfgexpand.c: Include insn-attr.h.
6094         (gimple_expand_cfg): Call init_sched_attrs.
6095
6096         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
6097
6098         PR target/44575
6099         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
6100         va_arg from a set of register save slots into a temporary,
6101         if the container is bigger than type size, do the copying
6102         using smaller mode or using memcpy.
6103
6104         PR bootstrap/44426
6105         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
6106         prototype.
6107         (sel_print_to_dot): Remove macro.
6108         (sel_print): Likewise.  New prototype.
6109         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
6110         (sel_print): New function.
6111
6112 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6113
6114         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
6115         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
6116
6117 2010-06-21  Nick Clifton  <nickc@redhat.com>
6118
6119         * config/rx/rx.h (PTRDIFF_TYPE): Define.
6120         (SMALL_REGISTER_CLASS): Define (to zero).
6121         (PRINT_OPERAND): Delete.
6122         (PRINT_OPERAND_ADDRESS): Delete.
6123         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
6124         (rx_print_operand_address): Delete prototype.
6125         * config/rx/rx.c (rx_print_operand): Make static.
6126         Allow %H and %L to handle CONST_DOUBLEs.
6127         (rx_print_operand_address): Make static.
6128         (rx_gen_move_template): Rename local variable 'template' to
6129         out_template.
6130         (rx_function_arg): Do not pass unknown sized objects in registers.
6131         (TARGET_PRINT_OPERAND): Define.
6132         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6133
6134 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
6135
6136         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
6137
6138 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
6139
6140         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
6141         stack-alignment for simple leaf-functions.
6142
6143 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
6144
6145         * doc/install.texi: Document bootstrap-lto.
6146
6147 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
6148
6149         PR debug/44248
6150         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
6151         (input_function): Drop them here, if VTA is disabled.
6152
6153 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
6154
6155         PR target/44546
6156         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
6157         New predicate.
6158         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
6159         ix86_swapped_fp_comparsion_operator instead of
6160         ix86_fp_comparison_operator.
6161
6162         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
6163         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
6164         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
6165         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
6166         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
6167         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
6168
6169 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
6170
6171         PR other/32998
6172         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
6173         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
6174         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
6175         (decode_cmdline_option): Update for this return value.  Set
6176         orig_option_with_args_text field.  Set arg field for unknown
6177         options.  Make static.
6178         (decode_cmdline_options_to_array): New.
6179         (prune_options): Update handling of find_opt return value.
6180         * opts.c (read_cmdline_option): Take decoded option.  Return void.
6181         (read_cmdline_options): Take decoded options.
6182         (decode_options): Add parameters for decoded options.  Use
6183         decode_cmdline_options_to_array.  Use decoded options for -O
6184         scan.  Use integral_argument for -O parameters.  Update call to
6185         read_cmdline_options.
6186         (enable_warning_as_error): Update handling of find_opt return value.
6187         * opts.h: Update comment on unknown options.
6188         (struct cl_decoded_option): Update comments on opt_index and arg.
6189         Add orig_option_with_args_text.
6190         (decode_cmdline_option): Remove.
6191         (decode_cmdline_options_to_array): Declare.
6192         (decode_options): Update prototype.
6193         * toplev.c (save_argv): Remove.
6194         (save_decoded_options, save_decoded_options_count): New.
6195         (read_integral_parameter): Remove.
6196         (print_switch_values): Use decoded options.
6197         (toplev_main): Don't set save_argv.  Update call to decode_options.
6198         * toplev.h (read_integral_parameter): Remove.
6199         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
6200
6201 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
6202
6203         PR target/44072
6204         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
6205         immediate.
6206         * constraints.md (Pw, Px): New constraints.
6207         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
6208
6209 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
6210
6211         * config/i386/sse.md (fma4modesuffixf4): Removed.
6212         (ssemodesuffixf2s): Likewise.
6213         (ssemodesuffixf4): Likewise.
6214         (ssemodesuffixf2c): Likewise.
6215         (ssescalarmodesuffix2s): Likewise.
6216         (avxmodesuffixf2c): Likewise.
6217         (ssemodesuffix): New.
6218         (ssescalarmodesuffix): Likewise.
6219         Update patterns with ssemodesuffix and ssescalarmodesuffix.
6220
6221 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
6222
6223         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
6224
6225 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6226
6227         * stor-layout.c (debug_rli): Remove unused local variables.
6228
6229 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
6230
6231         PR rtl-optimization/40900
6232         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
6233         original expression for later reuse.
6234         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
6235         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
6236
6237 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
6238
6239         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
6240         double_int_fits_in_uhwi_p): Implement as static inline.
6241         (double_int_xor): New inline function.
6242         (double_int_lrotate, double_int_rrotate, double_int_max,
6243         double_int_umax, double_int_smax, double_int_min, double_int_umin,
6244         double_int_smin): Declare.
6245         (lrotate_double, rrotate_double): Remove declaration.
6246         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
6247         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
6248         (double_int_lrotate, double_int_rrotate, double_int_max,
6249         double_int_umax, double_int_smax, double_int_min, double_int_umin,
6250         double_int_smin): New function.
6251         * fold-const.c (int_const_binop): Clean up, use double_int_*
6252         functions.
6253         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
6254         double_int_* and immed_double_int_const functions.
6255
6256 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
6257
6258         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
6259         * function.c (types_used_by_cur_var_decl): Likewise.
6260         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
6261
6262 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
6263
6264         * tree.h (record_layout_info): Change type of pending_statics field
6265         to a VEC.
6266         * stor-layout.c (start_record_layout): Store NULL into
6267         pending_statics.
6268         (debug_rli): Call debug_vec_tree instead of debug_tree.
6269         (place_field): Likewise.
6270         (finish_record_layout): Likewise.
6271
6272 2010-06-18  Alan Modra  <amodra@gmail.com>
6273
6274         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
6275
6276 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6277
6278         PR target/43740
6279         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
6280         for SET source operand from SET destination operand.
6281
6282 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
6283
6284         PR rtl-optimization/39871
6285         * reload1.c (init_eliminable_invariants): For flag_pic, disable
6286         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
6287         (function_invariant_p): Rule out a plus of frame or arg pointer with
6288         a SYMBOL_REF.
6289         * ira.c (find_reg_equiv_invariant_const): Likewise.
6290
6291 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
6292
6293         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
6294         print_operand_address and puts to output the operand for CONST.
6295
6296 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
6297
6298         PR debug/44572
6299         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
6300         hook.
6301
6302 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6303
6304         * v850-protos.h (print_operand): Delete.
6305         (print_operand_address): Delete.
6306         * v850.h (PRINT_OPERAND): Delete.
6307         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6308         (PRINT_OPERAND_ADDRESS): Delete.
6309         * v850.c (print_operand_address): Rename to...
6310         (v850_print_operand_address): ...this.  Make static. Call
6311         v850_print_operand.
6312         (print_operand): Rename to...
6313         (v850_print_operand): ...this.  Make static.  Call
6314         v850_print_operand_address.
6315         (v850_print_operand_punct_valid_p): New function.
6316         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6317         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6318
6319 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6320
6321         * config/sh/sh-protos.h (print_operand): Delete.
6322         (print_operand_address): Delete.
6323         * config/sh/sh.h (PRINT_OPERAND): Delete.
6324         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6325         (PRINT_OPERAND_ADDRESS): Delete.
6326         * config/sh/sh.c (sh_print_operand_address): Make static.
6327         (sh_print_operand): Make static.  Call sh_print_operand_address
6328         and sh_print_operand.
6329         (sh_print_operand_punct_valid_p): New function.
6330         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6331         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6332
6333 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6334
6335         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
6336         (mcore_print_operand_address): Delete.
6337         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
6338         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6339         (PRINT_OPERAND_ADDRESS): Delete.
6340         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
6341         (mcore_print_operand): Make static.
6342         (mcore_print_operand_punct_valid_p): New function.
6343         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
6344         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
6345
6346 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6347
6348         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
6349         (print_operand_address): Delete.
6350         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
6351         (PRINT_OPERAND_ADDRESS): Delete.
6352         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
6353         static.
6354         (m68hc11_print_operand): Make static.
6355         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
6356
6357 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6358
6359         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
6360         (m32r_print_operand_address): Delete.
6361         * config/m32r/m32r.h (m32r_punct_chars): Delete.
6362         (PRINT_OPERAND): Delete.
6363         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6364         (PRINT_OPERAND_ADDRESS): Delete.
6365         * config/m32r/m32r.c (m32r_punct_chars): Make static.
6366         (m32r_print_operand_address): Make static.
6367         (m32r_print_operand): Make static.
6368         (m32r_print_operand_punct_valid_p): New function.
6369         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
6370         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6371
6372 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6373
6374         * config/iq2000/iq2000-protos.h (print_operand): Delete.
6375         (print_operand_address): Delete.
6376         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
6377         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6378         (PRINT_OPERAND_ADDRESS): Delete.
6379         (iq2000_print_operand_punct): Delete.
6380         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
6381         (iq2000_print_operand_address): Make static.
6382         (iq2000_print_operand): Make static.
6383         (iq2000_print_operand_punct_valid_p): New function.
6384         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
6385         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6386
6387 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6388
6389         * config/frv/frv-protos.h (frv_print_operand): Delete.
6390         (frv_print_operand_address): Delete.
6391         * config/frv/frv.h (PRINT_OPERAND): Delete.
6392         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6393         (PRINT_OPERAND_ADDRESS): Delete.
6394         * config/frv/frv.c (frv_print_operand_address): Make static.
6395         (frv_print_operand): Make static.
6396         (frv_print_operand_punct_valid_p): New function.
6397         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
6398         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6399
6400 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
6401
6402         * tree.h (vec_member): Declare.
6403         * tree.c (vec_member): Define.
6404
6405 2010-06-17  Richard Guenther  <rguenther@suse.de>
6406
6407         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
6408         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
6409
6410 2010-06-17  Richard Guenther  <rguenther@suse.de>
6411
6412         * tree-inline.c (declare_return_variable): Remove bogus code.
6413
6414 2010-06-17  Richard Guenther  <rguenther@suse.de>
6415
6416         * gimplify.c (gimplify_bind_expr): Always promote complex
6417         and vector variables to registers if possible.
6418
6419 2010-06-17  Richard Guenther  <rguenther@suse.de>
6420
6421         * expr.c (get_inner_reference): Use double_int for bit_offset
6422         calculation.
6423
6424 2010-06-16  DJ Delorie  <dj@redhat.com>
6425
6426         * common.opt (-fstrict-volatile-bitfields): new.
6427         * doc/invoke.texi: Document it.
6428         * fold-const.c (optimize_bit_field_compare): For volatile
6429         bitfields, use the field's type to determine the mode, not the
6430         field's size.
6431         * expr.c (expand_assignment): Likewise.
6432         (get_inner_reference): Likewise.
6433         (expand_expr_real_1): Likewise.
6434         * expmed.c (store_fixed_bit_field): Likewise.
6435         (extract_bit_field_1): Likewise.
6436         (extract_fixed_bit_field): Likewise.
6437
6438 2010-06-16  Richard Guenther  <rguenther@suse.de>
6439
6440         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
6441
6442 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
6443
6444         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
6445         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
6446         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
6447         * debug.c: Likewise.
6448         * sdbout.c: Likewise.
6449         * vmsdbgout.c: Likewise.
6450         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
6451         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
6452         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
6453         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
6454         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
6455         * dwarf2out.c (dw_fde_struct): New fields
6456         dw_fde_vms_{end,begin}_prologue.
6457         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
6458         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
6459         (dwarf2out_vms_end_prologue): New function.
6460         (dwarf2out_vms_begin_epilogue): New function.
6461         (dw_val_struct): New value dw_val_class_vms_delta.
6462         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
6463         begin_epilogue for VMS.
6464         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
6465         new static functions.
6466         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
6467         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
6468         static functions.
6469         (print_die): New case dw_val_class_vms_delta.
6470         (attr_checksum): Likewise.
6471         (same_dw_val_p: Likewise.
6472         (size_of_die): Likewise.
6473         (value_format): Likewise.
6474         (output_die): Likewise.
6475         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
6476         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
6477         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
6478         dwarf2out_cfi_begin_epilogue
6479         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
6480
6481 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
6482
6483         * config/cris/cris-protos.h (cris_print_operand): Delete.
6484         (cris_print_operand_address): Delete.
6485         * config/cris/cris.h (PRINT_OPERAND): Delete.
6486         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6487         (PRINT_OPERAND_ADDRESS): Delete.
6488         * config/cris/cris.c (cris_print_operand_address): Make static.
6489         (cris_print_operand): Make static.
6490         (cris_print_operand_punct_valid_p): New function.
6491         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
6492         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6493
6494 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
6495
6496         * config/arm/arm-protos.h (arm_print_operand): Delete.
6497         (arm_print_operand_address): Delete.
6498         * config/arm/arm.h (PRINT_OPERAND): Delete.
6499         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
6500         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
6501         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
6502         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
6503         (arm_print_operand): Make static.
6504         (arm_print_operand_punct_valid_p): New function.
6505         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
6506         (TARGET_PRINT_OPERAND_ADDRESS): Define.
6507
6508 2010-06-16  Nick Clifton  <nickc@redhat.com>
6509
6510         * config/rx/constraints.md (NEGint4): New constraint.
6511         * config/rx/rx.md (attr cc): Add set_zsc.
6512         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
6513         initialised.
6514         (cmpsf): Likewise.
6515         (call_internal): Clobber the cc0 register.
6516         (call_value_internal): Likewise.
6517         (cstoresi4): Likewise.
6518         (movsieq): Likewise.
6519         (movsine): Likewise.
6520         (addsi3): Add alternative to handle small negative constants.
6521         (sunsi3): Likewise.
6522         (addsi3): Do not set the O bit in the cc0 register.
6523         (adddi3): Likewise.
6524         (subsi3): Likewise.
6525         (subdi3): Likewise.
6526         (andsi3): Reorder alternatives to prefer shorter forms.
6527         (mulsi3): Likewise.
6528         (iorsi3): Likewise.
6529         (negsi2): Note that the cc0 flags are set.
6530         (rotlsi3): Note that only the Z and S bits are set in cc0.
6531         (lshrsi3): Likewise.
6532         (ashlsi3): Likewise.
6533         (subsf3): Use %Q for the MEM operand.
6534         (fix_truncsfsi2): Likewise.
6535         (floatsisf2): Likewise.
6536         (bitset): Remove early clobber from destination.
6537         (bitset_in_memory): Likewise.
6538         (lrintsf2): Clobber the cc0 register.
6539         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
6540         (rx_print_operand): Handle %N.
6541
6542 2010-06-16  Jan Hubicka  <jh@suse.cz>
6543
6544         * df-core.c (df_compact_blocks): Free problem_temps vector.
6545
6546 2010-06-16  Martin Jambor  <mjambor@suse.cz>
6547
6548         PR tree-optimization/43905
6549         * tree-sra.c: Include tree-inline.h.
6550         (create_abstract_origin): Removed.
6551         (modify_function): Version the call graph node instead of creating
6552         abstract origins and dealing with same_body aliases.
6553         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
6554         function is versionable.
6555         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
6556
6557 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
6558
6559         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
6560         (CHOOSE_DYNAMIC_LINKER): Update.
6561
6562 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
6563
6564         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
6565         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
6566         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
6567         *prefetch_3dnow_rex.
6568
6569 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
6570
6571         * target.h (struct asm_out):Add declare_constant_name field.
6572         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
6573         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
6574         * output.h (default_asm_declare_constant_name): Declare.
6575         (assemble_label): Update prototype.
6576         * varasm.c (assemble_constant_contents): Use
6577         targetm.asm_out.declare_constant_name target hook.
6578         (assemble_label): Add 'file' argument.
6579         (default_asm_declare_constant_name): New function.
6580         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
6581         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
6582         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
6583
6584         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
6585         * config/darwin.c (darwin_asm_declare_constant_name): New function.
6586         (machopic_output_indirection): Update assemble_label argument list.
6587         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
6588         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
6589
6590 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
6591
6592         PR middle-end/44391
6593         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6594         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
6595
6596 2010-06-15  Richard Guenther  <rguenther@suse.de>
6597
6598         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
6599
6600 2010-06-15  Paul Brook  <paul@codesourcery.com>
6601
6602         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
6603         hard-float ABI.
6604
6605 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
6606
6607         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
6608         don't get a vector type for output.
6609
6610 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
6611
6612         PR fortran/44536
6613         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
6614         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
6615         (LANG_HOOKS_DECLS): Add it.
6616         * gimplify.c (omp_notice_variable): Call
6617         lang_hooks.decls.omp_report_decl.
6618
6619 2010-06-15  Martin Jambor  <mjambor@suse.cz>
6620
6621         PR lto/44464
6622         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
6623         on the newly dead SSA name.
6624
6625 2010-06-15  Alan Modra  <amodra@gmail.com>
6626
6627         * doc/invoke.texi: Add mcmodel to powerpc options.
6628         * configure.ac: Add HAVE_LD_LARGE_TOC test.
6629         * configure: Regenerate.
6630         * config.in: Regenerate.
6631         * config/rs6000/linux64.opt (mcmodel): New.
6632         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
6633         (TARGET_CMODEL, SET_CMODEL): Define.
6634         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
6635         select CMODEL_MEDIUM default.
6636         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
6637         (TARGET_CMODEL): Define default.
6638         * config/rs6000/rs6000.c (cmodel): New variable.
6639         (rs6000_explicit_options): Add cmodel field.
6640         (rs6000_handle_option): Handle -mcmodel.
6641         (create_TOC_reference): Add largetoc_reg param.  Generate high,
6642         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
6643         (rs6000_delegitimize_address): Recognise new toc reference rtl
6644         and minimal-toc rtl.
6645         (rs6000_legitimize_reload_address): Handle new toc references.
6646         (print_operand_address): Handle legitimate_constant_pool_address_p
6647         match before lo_sum.
6648         (rs6000_eliminate_indexed_memrefs): Tidy.
6649         (rs6000_emit_move): Tweak threshold for inlining constants.
6650         Keep rs6000_emit_allocate_stack large stack frame offsets
6651         loaded into r0 inline.
6652         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
6653         (tocrel_base, tocrel_offset): New variables.
6654         (toc_relative_expr_p): Set them here.
6655         (print_operand_address): Skip over any offset on constant pool address.
6656         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
6657         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
6658         (offsettable_ok_by_alignment): New function.
6659         (rs6000_emit_move): Address suitably aligned local symbol_refs
6660         relative to the toc pointer for -mcmodel=medium.
6661         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
6662         strict param.  Allow lo_sum version of addressing.  Verify reg
6663         used for -mminimal-toc and -mcmodel != small.  Update all callers.
6664         * config/rs6000/constraints.md: Update for above change.
6665         * config/rs6000/predicates.md: Likewise.
6666         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
6667         code.
6668         (tls_gd): Split for -mcmodel=medium/large.
6669         (tls_gd_high, tls_gd_low): New.
6670         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
6671         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
6672         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
6673         (largetoc_high, largetoc_low): New.
6674         (cmptf_internal2): Add clobber.
6675         * config/rs6000/rs6000-protos.h: Update.
6676
6677 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
6678
6679         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
6680         true if no prefetch is going to be generated for a given group.
6681         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
6682         estimate the prefetch_count.
6683         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
6684         prefetch count by considering the unroll_factor and prefetch_mod
6685         for is_loop_prefetching_profitable.
6686
6687 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
6688
6689         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
6690         anything if the argument is not a MEM.
6691
6692 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
6693
6694         PR debug/43650
6695         PR debug/44181
6696         PR debug/44247
6697         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
6698         debug stmts.
6699         (canonicalize_loop_ivs): Likewise.
6700
6701 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
6702
6703         PR debug/43656
6704         * haifa-sched.c (setup_insn_reg_pressure_info,
6705         update_register_pressure): Reject debug insns.
6706         (ready_sort): Don't setup reg pressure for debug insns.
6707         (schedule_insn): Don't update reg pressure for debug insns.
6708
6709 2010-06-14  Richard Guenther  <rguenther@suse.de>
6710
6711         * lto-streamer.c (cached_bp): Remove.
6712         (bitpack_delete): Likewise.
6713         (bitpack_create): Likewise.
6714         (bp_get_next_word): Likewise.
6715         (bp_pack_value, bp_unpack_value): Move ...
6716         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
6717         Re-implement.
6718         (struct bitpack_d): Likewise.
6719         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
6720         New inline functions.
6721         * lto-streamer-out.c (lto_output_bitpack): Remove.
6722         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
6723         (pack_value_fields): Adjust.
6724         (lto_write_tree): Likewise.
6725         (output_gimple_stmt): Likewise.
6726         (output_function): Likewise.
6727         * lto-streamer-in.c (input_gimple_stmt): Adjust.
6728         (input_function): Likewise.
6729         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
6730         (lto_input_bitpack): Remove.
6731         (lto_materialize_tree): Adjust.
6732         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
6733         * lto-cgraph.c (lto_output_edge): Adjust.
6734         (lto_output_node): Likewise.
6735         (lto_output_varpool_node): Likewise.
6736         (lto_output_ref): Likewise.
6737         (input_node): Likewise.
6738         (input_varpool_node): Likewise.
6739         (input_ref): Likewise.
6740         (input_edge): Likewise.
6741         (output_node_opt_summary): Likewise.
6742         (input_node_opt_summary): Likewise.
6743         * ipa-pure-const.c (pure_const_write_summary): Likewise.
6744         (pure_const_read_summary): Likewise.
6745         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
6746         (ipa_read_indirect_edge_info): Likewise.
6747         (ipa_write_node_info): Likewise.
6748         (ipa_read_node_info): Likewise.
6749
6750 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
6751
6752         PR target/44534
6753         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
6754         (vec_extract_lo_v16hi): Likewise.
6755         (vec_extract_lo_v32qi): Likewise.
6756
6757 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
6758
6759         PR bootstrap/44426
6760         * tree.h (build_call_expr): Don't define as vararg macro, instead
6761         add a prototype.
6762         * builtins.c (build_call_nofold): Remove.
6763         (expand_builtin_int_roundingfn, expand_builtin_pow,
6764         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
6765         expand_builtin_memset_args, expand_builtin_strcmp,
6766         expand_builtin_strncmp, expand_builtin_memory_chk): Use
6767         build_call_nofold_loc instead of build_call_nofold.
6768         (build_call_expr): New function.
6769
6770         PR tree-optimization/44508
6771         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
6772         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
6773         don't eliminate trivially dead stmts.
6774         * tree-vrp.c (vrp_finalize): Pass false as last argument
6775         to substitute_and_fold.
6776         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
6777         to substitute_and_fold.
6778         * tree-ssa-ccp.c (ccp_finalize): Likewise.
6779
6780         PR bootstrap/44509
6781         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
6782
6783 2010-06-14  Ira Rosen  <irar@il.ibm.com>
6784
6785         PR tree-optimization/44507
6786         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
6787         to build initial vector for BIT_AND_EXPR.
6788         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
6789
6790 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
6791
6792         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
6793         adjust z10prop set_attr.
6794
6795 2010-06-13  Jan Hubicka  <jh@suse.cz>
6796
6797         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
6798         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
6799         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
6800         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
6801         datastructure checks into checking asserts.
6802         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
6803         * tree-ssa-sccvn.c (VN_INFO): Likewise.
6804         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
6805         df_ref_create_structure): Likewise.
6806         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
6807         pool_free): Use gcc_checking_assert.
6808         * alias.c (get_alias_set): Likewise.
6809         * var-tracking.c (variable_htab_free, shared_hash_copy,
6810         canonicalize_values_mark, variable_merge_over_cur): Likewise.
6811         * lto-streamer.c (bp_unpack_value): Likewise.
6812
6813 2010-06-13  Richard Guenther  <rguenther@suse.de>
6814
6815         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
6816         Do not stream but initialize TYPE_CANONICAL to NULL.
6817         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
6818         * gimple.c (gimple_types_compatible_p): Disregard
6819         TYPE_STRUCTURAL_EQUALITY_P.
6820         (gimple_register_type): Use TYPE_CANONICAL as cache.
6821         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
6822         before registering common types.
6823         * config/i386/i386.c (ix86_function_arg_boundary): Do not
6824         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
6825         * tree.h (TYPE_CANONICAL): Clarify documentation.
6826
6827 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
6828
6829         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6830         LIBCALL_VALUE): Remove macros.
6831         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
6832         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6833         TARGET_FUNCTION_VALUE_REGNO_P): Define.
6834         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
6835         (ia64_function_value): Make static. Handle receiving the function
6836         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
6837
6838 2010-06-12  Jan Hubicka  <jh@suse.cz>
6839
6840         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
6841         at correct place.
6842
6843 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
6844
6845         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
6846
6847 2010-06-12  Jan Hubicka  <jh@suse.cz>
6848
6849         * df-core.c (df_clear_bb_info): New function.
6850         (df_set_blocks): bb_info is always allocated.
6851         (df_get_bb_info): Use block_info_elt_size.
6852         (df_set_bb_info): Likewise.
6853         (df_compact_blocks): Update for new block_info.
6854         (grow_bb_info): New function.
6855         * df-problems.c (df_grow_bb_info): Move to df-core.c
6856         (df_rd_set_bb_info): Remove.
6857         (df_rd_free_bb_info): Do not free block pool.
6858         (df_rd_alloc): Do not create pool, use check for
6859         obstack presence instead of NULL pointer for new blocks.
6860         (df_rd_free): DO not free alloc pool; clear block_info.
6861         (problem_RD): Add size of block info structure.
6862         (df_lr_set_bb_info): Remove.
6863         (df_lr_free_bb_info): Do not free block pool.
6864         (df_lr_alloc): Do not create pool, use check for
6865         obstack presence instead of NULL pointer for new blocks.
6866         (df_lr_free): DO not free alloc pool; clear block_info.
6867         (problem_LR): Add size of block info structure.
6868         (df_live_set_bb_info): Remove.
6869         (df_live_free_bb_info): Do not free block pool.
6870         (df_live_alloc): Do not create pool, use check for
6871         obstack presence instead of NULL pointer for new blocks.
6872         (df_live_free): DO not free alloc pool; clear block_info.
6873         (problem_LIVE): Add size of block info structure.
6874         (problem_CHAIN): Add size of block info structure.
6875         (df_byte_lr_set_bb_info): Remove.
6876         (df_byte_lr_free_bb_info): Do not free block pool.
6877         (df_byte_lr_alloc): Do not create pool, use check for
6878         obstack presence instead of NULL pointer for new blocks.
6879         (df_byte_lr_free): DO not free alloc pool; clear block_info.
6880         (problem_BYTE_LR): Add size of block info structure.
6881         (problem_NOTE): Add size of block info structure.
6882         (df_byte_MD_set_bb_info): Remove.
6883         (df_byte_MD_free_bb_info): Do not free block pool.
6884         (df_byte_MD_alloc): Do not create pool, use check for
6885         obstack presence instead of NULL pointer for new blocks.
6886         (df_byte_MD_free): DO not free alloc pool; clear block_info.
6887         (problem_BD): Add size of block info structure.
6888         * df-scan.c (df_scan_free_internal): Free block pool.
6889         (df_scan_set_bb_info): Remove.
6890         (df_scan_free_bb_info): Check for artificial_defs instead
6891         of bb_info being non-NULL.
6892         (df_scan_alloc): DO not create df_scan_block pool.
6893         (problem_SCAN): Set size of block info.
6894         (df_bb_refs_record): Do not allocate bb_info.
6895         * df.h (df_problem): Add block_info_elt_size.
6896         (struct dataflow): Change block_info to void *.
6897         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
6898         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
6899         in-line structures.
6900
6901 2010-06-12  Jan Hubicka  <jh@suse.cz>
6902
6903         PR tree-optimize/44485
6904         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
6905         containing use of return value of noreturn function.
6906
6907 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
6908
6909         * targhooks.c (default_function_value): Don't use
6910         FUNCTION_OUTGOING_VALUE.
6911         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
6912         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
6913
6914 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
6915
6916         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
6917         Add crtfastmath.o to extra_parts.
6918         * config/mips/crtfastmath.c: New.
6919         * config/mips/linux.h (ENDFILE_SPEC): New.
6920
6921 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
6922
6923         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
6924         old_type in parameter.
6925         (gcc_type_for_value): Update call to gcc_type_for_interval.
6926         (compute_type_for_level_1): Renamed compute_type_for_level.
6927         Update call to gcc_type_for_interval.
6928
6929 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
6930
6931         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
6932         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
6933
6934 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
6935
6936         * opts-common.c: Include options.h.
6937         (integral_argument): Move from opts.c.
6938         (decode_cmdline_option): New.  Based on read_cmdline_option.
6939         * opts.c (integral_argument): Move to opts-common.c.
6940         (read_cmdline_option): Move most contents to
6941         decode_cmdline_option.  Use %qs in diagnostics.
6942         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
6943         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
6944         decode_cmdline_option): New.
6945
6946 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
6947
6948         PR target/44481
6949         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
6950         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
6951         (partiysi2_cmp): Ditto.
6952         (*partiyhi2_cmp): Ditto.
6953         (*parityqi2_cmp): Remove.
6954
6955 2010-06-11  Jan Hubicka  <jh@suse.cz>
6956
6957         * bitmap.h (bmp_iter_next_bit): New.
6958         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
6959
6960 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
6961             Eric Botcazou  <ebotcazou@adacore.com>
6962
6963         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
6964         computed cost.
6965
6966 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
6967
6968         * config/i386/i386.md (unspec): New define_c_enum.
6969         (unspecv): Ditto.
6970
6971 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
6972
6973         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
6974
6975 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
6976
6977         PR middle-end/44483
6978         * tree-if-conv.c (bb_predicate_s): New struct.
6979         (bb_predicate_p): New.
6980         (bb_has_predicate): New.
6981         (bb_predicate): New.
6982         (set_bb_predicate): New.
6983         (bb_predicate_gimplified_stmts): New.
6984         (set_bb_predicate_gimplified_stmts): New.
6985         (add_bb_predicate_gimplified_stmts): New.
6986         (init_bb_predicate): New.
6987         (free_bb_predicate): New.
6988         (is_predicated): Use bb_predicate.
6989         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
6990         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
6991         before processing their successors.
6992         (clean_predicate_lists): Removed.
6993         (find_phi_replacement_condition): Use bb_predicate.
6994         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
6995         computations.
6996         (insert_gimplified_predicates): New.
6997         (combine_blocks): Call insert_gimplified_predicates.
6998         (tree_if_conversion): Call free_bb_predicate instead of
6999         clean_predicate_lists.
7000
7001 2010-10-11  Paul Brook  <paul@codesourcery.com>
7002
7003         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
7004         * config/arm/arm.c (all_architectures): Change v7e-m default to
7005         cortexm4.
7006         * config/arm/arm-cores.def: Add cortex-m4.
7007         * config/arm/arm-tune.md: Regenerate.
7008
7009 2010-06-11  Jan Hubicka  <jh@suse.cz>
7010
7011         * ipa-pure-const.c (special_builtlin_state): New function.
7012         (check_call): Use it instead of special casign BUILT_IN_RETURN.
7013         (propagate_pure_const): Use it.
7014
7015 2010-06-11  Jan Hubicka  <jh@suse.cz>
7016
7017         * df-problems.c (df_live_scratch): Convert to bitmap_head.
7018         (df_live_alloc): Initialize df_live_scratch when initializing
7019         problem_data.
7020         (df_live_transfer_function): Update uses of df_live_scratch.
7021         (df_live_free): Free problem_data; clear df_live_scratch before
7022         releasing the obstack.
7023         (df_md_free): Free problem data.
7024
7025 2010-06-11  Jan Hubicka  <jh@suse.cz>
7026
7027         * doc/invoke.texi (Wsuggest-attribute): Document.
7028         (Wmissing-noreturn): Remove.
7029         * ipa-pure-const.c (warn_function_noreturn): New function.
7030         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
7031         warn_missing_noreturn.
7032         * common.opt (Wsuggest-attribute=noreturn): New.
7033         * tree-flow.h (warn_function_noreturn): Declare.
7034         * tree-cfg.c (execute_warn_function_noreturn): Use
7035         warn_function_noreturn.
7036         (gate_warn_function_noreturn): New.
7037         (pass_warn_function_noreturn): Update.
7038
7039 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7040
7041         * c-typeck.c (handle_warn_cast_qual): Add loc
7042         parameter. Improve warning message.
7043         (build_c_cast): Pass location to handle_warn_cast_qual.
7044
7045 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
7046
7047         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
7048         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
7049         insn mnemonic.
7050         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
7051
7052 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
7053
7054         Fix bootstap on mips
7055         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
7056         be naming typedefs.
7057
7058 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
7059
7060         * system.h (helper_const_non_const_cast): New inline for
7061         gcc version <= 4.0.
7062         (CONST_CAST2): For gcc version <= 4.0 use
7063         new helper to do const/non-const casting.
7064
7065 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7066
7067         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
7068         * Makefile.in (OBJS-common): Include insn-enums.o.
7069         (insn-enums.o): New rule.
7070         (simple_generated_c): Add insn-enums.c.
7071         (build/genenums.o): New rule.
7072         (genprogmd): Add "enums".
7073         * genconstants.c (print_enum_type): Declare a C string array
7074         for each enum.
7075         * genenums.c: New file.
7076         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
7077         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
7078         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
7079
7080 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7081
7082         * doc/md.texi (define_enum_attr): Document.
7083         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
7084         * read-md.h (lookup_enum_type): Declare.
7085         * read-md.c (lookup_enum_type): New function.
7086         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
7087         * genattrtab.c (attr_desc): Add an enum_name field.
7088         (evaluate_eq_attr): Take the associated attribute as argument.
7089         Get the enum prefix from the enum_name field, if defined.
7090         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
7091         (simplify_test_exp): Pass attr to evaluate_eq_attr.
7092         (add_attr_value): New function, split out from...
7093         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
7094         (write_test_expr): Pass attr to evaluate_eq_attr.
7095         (write_attr_get): Use the enum_name as the enum tag, if defined.
7096         (write_attr_valueq): Use the enum_name as a prefix, if defined.
7097         (find_attr): Initialize enum_name.
7098         (main): Handle DEFINE_ENUM_ATTR.
7099         * gensupport.c (process_rtx): Likewise.
7100         * config/mips/mips.h (mips_tune_attr): Delete.
7101         * config/mips/mips.md (cpu): Use define_attr_enum.
7102
7103 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7104
7105         * doc/md.texi (define_c_enum, define_enum): Document.
7106         * read-md.h (md_constant): Add a parent_enum field.
7107         (enum_value, enum_type): New structures.
7108         (upcase_string, traverse_enum_types): Declare.
7109         * read-md.c (enum_types): New variable.
7110         (upcase_string, add_constant): New functions.
7111         (handle_constants): Don't create the hash table here.
7112         Use add_constant.
7113         (traverse_md_constants): Don't check for a null md_constants.
7114         (decimal_string, handle_enum, traverse_enum_types): New functions.
7115         (read_md_files): Initialize md_constants and md_enums.
7116         * genconstants.c (print_md_constant): Ignore info argument.
7117         Only print constants that belong to no enum.
7118         (print_enum_type): New function.
7119         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
7120         for each defined enum type.
7121         * config/mips/mips.md (processor): New define_enum.
7122         (unspec): New define_c_enum.
7123         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
7124         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
7125         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
7126         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
7127         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
7128         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
7129         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
7130         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
7131         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
7132         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
7133         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
7134         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
7135         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
7136         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
7137         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
7138         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
7139         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
7140         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
7141         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
7142         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
7143         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
7144         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
7145         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
7146         (UNSPEC_RDDSP): Move to mips-dsp.md.
7147         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
7148         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
7149         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
7150         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
7151         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
7152         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
7153         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
7154         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
7155         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
7156         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
7157         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
7158         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
7159         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
7160         Moved to mips-dspr2.md.
7161         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
7162         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
7163         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
7164         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
7165         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
7166         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
7167         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
7168         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
7169         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
7170         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
7171         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
7172         UNSPEC_LOONGSON_PSADBH)
7173         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
7174         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
7175         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
7176         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
7177         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
7178         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
7179         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
7180         (cpu): Update comment.
7181         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
7182         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
7183         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
7184         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
7185         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
7186         UNSPEC_LOONGSON_PCMPEQ)
7187         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
7188         UNSPEC_LOONGSON_PINSR_0)
7189         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
7190         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
7191         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
7192         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
7193         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
7194         UNSPEC_LOONGSON_PSADBH)
7195         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
7196         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
7197         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
7198         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
7199         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
7200         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
7201         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
7202         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
7203         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
7204         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
7205         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
7206         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
7207         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
7208         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
7209         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
7210         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
7211         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
7212         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
7213         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
7214         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
7215         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
7216         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
7217         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
7218         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
7219         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
7220         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
7221         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
7222         (UNSPEC_RDDSP): Moved from mips.md.
7223         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
7224         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
7225         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
7226         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
7227         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
7228         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
7229         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
7230         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
7231         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
7232         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
7233         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
7234         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
7235         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
7236         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
7237         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
7238         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
7239         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
7240         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
7241         (UNSPEC_SCC): Moved from mips.md.
7242         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
7243         "processor_type" to "processor".
7244         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
7245         * config/mips/mips.h (processor_type): Delete.
7246         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
7247         "processor_type" to "processor".
7248
7249 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7250
7251         * configure.ac (tm_include_list): Add insn-constants.h.
7252         * configure: Regenerate.
7253         * Makefile.in (GTM_H): Move insn-constants.h here from...
7254         (TM_H): ...here.
7255         * mkconfig.sh: Remove special handling for insn-constants.h.
7256
7257 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7258
7259         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
7260         (BUILD_MD): ...this new variable.
7261         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
7262         that include the old contents of simple_generated_h and
7263         simple_generated_c.
7264         (simple_generated_h, simple_generated_c): Include them.  Add
7265         insn-constants.h.
7266         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
7267         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
7268         Remove these dependencies from the main rule and include
7269         insn-conditions.md in the command line only if it appears
7270         in the dependency list.
7271         (insn-constants.h, s-constants): Delete.
7272         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
7273         or gensupport.h.
7274         (build/genmddeps.o): Likewise.
7275         (genprogrtl): New variable that contains everything from genprogmd
7276         except mddeps and constants.
7277         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
7278         depend on $(BUILD_MD)
7279         (genprog): New variable.  Make these programs depend on
7280         $(BUILD_ERRORS).
7281         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
7282         (main): Use read_md_files instead of init_rtx_reader_args.
7283         * genconstants.c: As for genmddeps.c.
7284         * read-md.h (read_skip_construct): Declare.
7285         * read-md.c (read_skip_construct): New function.
7286         (handle_file): Allow a null handle_directive, skipping the
7287         construct if so.
7288         (parse_include): Update the comment accordingly.
7289
7290 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7291
7292         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
7293         * genmddeps.c: Include read-md.h.
7294         (main): Call init_rtx_reader_args instead of init_md_reader_args.
7295         * genattr.c (main): Likewise.
7296         * genattrtab.c (main): Likewise.
7297         * genautomata.c (main): Likewise.
7298         * gencodes.c (main): Likewise.
7299         * genconditions.c (main): Likewise.
7300         * genconfig.c (main): Likewise.
7301         * genconstants.c (main): Likewise.
7302         * genemit.c (main): Likewise.
7303         * genextract.c (main): Likewise.
7304         * genflags.c (main): Likewise.
7305         * genopinit.c (main): Likewise.
7306         * genoutput.c (main): Likewise.
7307         * genpeep.c (main): Likewise.
7308         * genrecog.c (main): Likewise.
7309         * genpreds.c (main): Likewise.
7310         * gensupport.h (in_fname): Move to read-md.h.
7311         (init_md_reader_args_cb): Rename to...
7312         (init_rtx_reader_args_cb): ...this and return a bool.
7313         (init_md_reader_args): Rename to...
7314         (init_rtx_reader_args): ...this and return a bool.
7315         (include_callback): Move to read-md.h.
7316         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
7317         (file_name_list, first_dir_md_include): Move to read-md.c
7318         (first_bracket_include): Delete unused variable.
7319         (last_dir_md_include): Move to read-md.c.
7320         (process_include): Delete, moving code to read-md.c:handle_include.
7321         (process_rtx): Don't handle INCLUDE.
7322         (save_string): Delete.
7323         (rtx_handle_directive): New function.
7324         (init_md_reader_args_cb): Rename to...
7325         (init_rtx_reader_args_cb): ...this and return a boolean success value.
7326         Use read_md_args.
7327         (init_md_reader_args): Rename to...
7328         (init_rtx_reader_args): ...this and return a boolean success value.
7329         * rtl.def (INCLUDE): Delete.
7330         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
7331         argument.
7332         * read-rtl.c (read_conditions): Don't gobble ')' here.
7333         (read_mapping): Likewise.
7334         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
7335         Handle top-level non-rtx constructs here rather than in read_rtx_1.
7336         Store the whole queue in *X.  Remove call to init_md_reader.
7337         (read_rtx_1): Rename to...
7338         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
7339         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
7340         here.
7341         (read_nested_rtx): New function.  Handle (nil) here rather than
7342         in read_rtx_code.
7343         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
7344         gobble ')' here.
7345         * read-md.h (directive_handler_t): New type.
7346         (in_fname, include_callback): Moved from read-md.h.
7347         (read_constants, init_md_reader): Delete.
7348         (read_md_files): Declare.
7349         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
7350         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
7351         from gensupport.c.
7352         (read_constants): Rename to...
7353         (handle_constants): ...this.  Don't gobble ')' here.
7354         (handle_include, handle_file, handle_toplevel_file)
7355         (parse_include): New functions, mostly taken from gensupport.c.
7356         (init_md_reader): Subsume into...
7357         (read_md_files): ...this new function.
7358
7359 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7360
7361         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
7362         (unread_char): Decrement read_md_lineno after putting back '\n'.
7363         * read-md.c (fatal_with_file_and_line): Push back any characters
7364         that we decide not to add to the context.
7365         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
7366         fatal_expected_char in cases where '/' ends a line (for example).
7367         (read_name): Don't increment read_md_lineno here.
7368         (read_escape): Likewise.
7369         (read_quoted_string): Likewise.
7370         (read_braced_string): Likewise.
7371
7372 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7373
7374         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
7375         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
7376         * genconstants.c: Include read-md.h.
7377         * read-rtl.c (md_constants): Move to read-md.c.
7378         (md_name): Move to read-md.h.
7379         (initialize_iterators): Use leading_string_hash instead of def_hash
7380         and leading_string_eq_p instead of def_name_eq_p.
7381         (read_name): Move to read-md.c.
7382         (def_hash, def_name_eq_p): Delete.
7383         (read_constants, traverse_md_constants): Move to read-md.c.
7384         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
7385         * read-md.h: Include hashtab.h.
7386         (md_name): Moved from read-rtl.c.
7387         (md_constant): Moved from read-md.h.
7388         (leading_string_hash, leading_string_eq_p, read_name)
7389         (read_constants, traverse_md_constants): Declare.
7390         * read-md.c (md_constants): Moved from read-rtl.c.
7391         (leading_string_hash, leading_string_eq_p): New functions.
7392         (read_name, read_constants, traverse_md_constants): Moved from
7393         read-rtl.c.
7394
7395 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7396
7397         * read-rtl.c (md_name): New structure.
7398         (read_name): Take an md_name instead of a buffer pointer.
7399         Use the "string" field instead of strcpy when expanding constants.
7400         (read_constants): Remove the tmp_char argument.  Update the calls
7401         to read_name, using two local name buffers instead of the tmp_char
7402         argument.  Merge the constant-creation code.
7403         (read_conditions): Remove the tmp_char argument.  Update the calls
7404         to read_name, using a local name buffer instead of the tmp_char
7405         argument.
7406         (read_mapping): Replace tmp_char variable with a local name buffer.
7407         Update the calls to read_name.
7408         (read_rtx_1): Likewise.  Update the calls to read_constants and
7409         read_conditions.
7410
7411 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7412
7413         * Makefile.in (build/read-md.o): Depend on errors.h.
7414         * read-md.h (error_with_line): Declare.
7415         * read-md.c: Include errors.h.
7416         (message_with_line_1): New function, extracted from...
7417         (message_with_line): ...here.
7418         (error_with_line): New function.
7419         * genattrtab.c: If a call to message_with_line is followed by
7420         "have_error = 1;", replace both statements with a call to
7421         error_with_line.
7422         * genoutput.c: Likewise.
7423         * genpreds.c: Likewise.
7424         * genrecog.c: If a call to message_with_line is followed by
7425         "error_count++;", replace both statements with a call to
7426         error_with_line.
7427         (errorcount): Delete.
7428         (main): Don't check it.
7429         * gensupport.c: If a call to message_with_line is followed by
7430         "errors = 1;", replace both statements with a call to error_with_line.
7431         (errors): Delete.
7432         (process_define_cond_exec): Check have_error instead of errors.
7433         (init_md_reader_args_cb): Likewise.  Don't set errors.
7434
7435 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7436
7437         * read-md.h (read_md_file): Declare.
7438         (read_char, unread_char): New functions.
7439         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
7440         (read_quoted_string, read_string): Remove FILE * argument.
7441         * read-md.c (read_md_file): New variable.
7442         (read_md_filename, read_md_lineno): Update comments and remove
7443         unnecessary initialization.
7444         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
7445         (read_escape, read_quoted_string, read_braced_string, read_string):
7446         Remove FILE * argument.  Update calls accordingly, using read_char
7447         and unread_char instead of getc and ungetc.
7448         * rtl.h (read_rtx): Remove FILE * argument.
7449         * read-rtl.c (iterator_group): Remove FILE * argument from
7450         "find_builtin".
7451         (iterator_traverse_data): Remove "infile" field.
7452         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
7453         (add_mapping, read_name, read_constants, read_conditions)
7454         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
7455         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
7456         Remove file arguments from all calls, using read_char and unread_char
7457         instead of getc and ungetc.
7458         * gensupport.c (process_include): Preserve read_md_file around
7459         the include.  Set read_md_file to the handle of the included file.
7460         Update call to read_rtx.
7461         (init_md_reader_args_cb): Set read_md_file to the handle of the file
7462         and remove local FILE *.  Update calls to read_rtx.
7463
7464 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7465
7466         * read-md.h (read_rtx_lineno): Rename to...
7467         (read_md_lineno): ...this.
7468         (read_rtx_filename): Rename to...
7469         (read_md_filename): ...this.
7470         (copy_rtx_ptr_loc): Rename to...
7471         (copy_md_ptr_loc): ...this.
7472         (print_rtx_ptr_loc): Rename to...
7473         (print_md_ptr_loc): ...this.
7474         * read-md.c: Likewise.  Update references after renaming.
7475         (string_obstack): Replace RTL with MD in comment.
7476         (set_rtx_ptr_loc): Rename to...
7477         (set_md_ptr_loc): ...this.
7478         (get_rtx_ptr_loc): Rename to...
7479         (get_md_ptr_loc): ...this.
7480         * genconditions.c: Update references after renaming.
7481         * genemit.c: Likewise.
7482         * genoutput.c: Likewise.
7483         * genpreds.c: Likewise.
7484         * gensupport.c: Likewise.
7485         * read-rtl.c: Likewise.
7486
7487 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
7488
7489         * Makefile.in (READ_MD_H): New variable.
7490         (BUILD_RTL): Add build/read-md.o.
7491         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
7492         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
7493         (build/genattrtab.o, build/genconditions.o build/genemit.o)
7494         (build/genextract.o, build/genflags.o, build/genoutput.o)
7495         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
7496         (build/read-md.o): New rule.
7497         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
7498         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
7499         * coretypes.h: ...here.
7500         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
7501         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
7502         * genattr.c: Include read-md.h.
7503         * genattrtab.c: Likewise.
7504         * genconditions.c: Likewise.
7505         * genemit.c: Likewise.
7506         * genextract.c: Likewise.
7507         * genflags.c: Likewise.
7508         * genoutput.c: Likewise.
7509         * genpreds.c: Likewise.
7510         * genrecog.c: Likewise.
7511         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
7512         (join_c_conditions, print_c_condition, read_rtx_filename)
7513         (read_rtx_lineno): Move to read-md.h.
7514         * read-rtl.c: Include read-md.h.
7515         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
7516         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
7517         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
7518         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
7519         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
7520         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
7521         (read_braced_string, read_string): Move to read-md.c.
7522         (read_rtx): Move some initialization to init_md_reader and call
7523         init_md_reader here.
7524         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
7525         Move to read-md.h.
7526         * gensupport.c: Include read-md.h.
7527         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
7528         * read-md.h, read-md.c: New files.
7529
7530 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
7531
7532         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
7533         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7534         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
7535         * config/moxie/moxie.c (moxie_function_value): Make static.
7536         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
7537         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7538
7539 2010-06-10  Martin Jambor  <mjambor@suse.cz>
7540
7541         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
7542         * dbgcnt.def (tree_sra): New counter.
7543         * tree-sra.c: Include dbgcnt.h.
7544         (gate_intra_sra): Check tree_sra debug counter.
7545
7546 2010-06-10  Martin Jambor  <mjambor@suse.cz>
7547
7548         PR tree-optimization/44258
7549         * tree-sra.c (build_access_subtree): Return false iff there is a
7550         partial overlap.
7551         (build_access_trees): Likewise.
7552         (analyze_all_variable_accesses): Disqualify candidates if
7553         build_access_trees returns true for them.
7554
7555 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
7556
7557         PR debug/41371
7558         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
7559         tail-recurse into canonical node.  Fast-forward over
7560         non-canonical VALUEs.
7561
7562 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
7563
7564         PR boostrap/44470
7565         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
7566         (*addsi_1_zext) <TYPE_LEA>: Likewise.
7567         (add lea splitter): Likewise.
7568         (add_zext lea splitter): Likewise.
7569
7570 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
7571
7572         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
7573
7574 2010-06-10  Jan Hubicka  <jh@suse.cz>
7575
7576         * df-problems.c (df_live_problem_data): Add live_bitmaps.
7577         (df_live_alloc): Initialize problem data and live_osbtacks.
7578         (df_live_finalize): Remove obstack, problem data; do not
7579         clear all bitmaps.
7580         (df_live_top_dump, df_live_bottom_dump): Do not dump old
7581         data when not allocated.
7582         (df_live_verify_solution_start): Do not allocate problem data.
7583         (df_live_verify_solution_end): Check if out is allocated.
7584         (struct df_md_problem_data): New structure.
7585         (df_md_alloc): Allocate problem data.
7586         (df_md_free): Free problem data; do not clear bitmaps.
7587
7588 2010-06-10  Jan Beulich  <jbeulich@novell.com>
7589
7590         PR bootstrap/37304
7591         * configure.ac: Replace $() with ${} when intending to expand
7592         variables rather than invoking commands.
7593         * configure: Re-generate.
7594
7595 2010-06-10  Jan Hubicka  <jh@suse.cz>
7596
7597         PR rtl-optimization/44460
7598         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
7599         TYPE_NEEDS_CONSTRUCTING sanity check.
7600
7601 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
7602
7603         * doc/include/fdl.texi: Move to GFDL version 1.3.
7604
7605         * doc/cpp.texi: Move to GFDL version 1.3.
7606         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
7607         * doc/gccint.texi: Move to GFDL version 1.3.
7608         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
7609         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
7610         * doc/invoke.texi: Move to GFDL version 1.3.
7611
7612 2010-06-09  Jan Hubicka  <jh@suse.cz>
7613
7614         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
7615         Break out from ...
7616         (propagate) ... here; swap the order.
7617
7618 2010-06-09  Jan Hubicka  <jh@suse.cz>
7619
7620         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
7621         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
7622         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
7623         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
7624
7625 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
7626
7627         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
7628         Do not the gather memory reference in the outer loop if the step
7629         is not a constant.
7630
7631 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
7632
7633         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
7634         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
7635         8 to 4.  Minor change of the related comments.
7636
7637 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
7638
7639         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
7640         the scev analysis when the variable is not used outside the loop
7641         in a close phi node: call compute_overall_effect_of_inner_loop.
7642
7643 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
7644
7645         * graphite-sese-to-poly.c (single_pred_cond): Renamed
7646         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
7647         (build_sese_conditions_before): Renamed call to single_pred_cond.
7648         (build_sese_conditions_after): Same.
7649
7650 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
7651
7652         * graphite-poly.h: Fix comments and indentation.
7653         * graphite-sese-to-poly.c: Same.
7654         (build_sese_conditions_before): Compute stmt and gbb only when needed.
7655         * tree-chrec.c: Fix comments and indentation.
7656         (tree-ssa-loop-niter.c): Same.
7657
7658 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
7659
7660         PR rtl-optimization/42461
7661         * dce.c (deletable_insn_p): Return true for const or pure calls again.
7662         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
7663
7664 2010-06-09  Jan Hubicka  <jh@suse.cz>
7665
7666         * bitmap.c (bitmap_and): Walk array forward.
7667         (bitmap_and_compl_into): Likewise.
7668         (bitmap_xor): Likewise.
7669         (bitmap_xor_into):  Likewise.
7670         (bitmap_equal_p): Likewise.
7671         (bitmap_intersect_p): Likewise.
7672         (bitmap_intersect_compl_p): Likewise.
7673         (bitmap_ior_and_into): Likewise.
7674         (bitmap_elt_copy): Likewise.
7675         (bitmap_and_compl): Likewise.
7676         (bitmap_elt_ior): Likewise.
7677
7678 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
7679
7680         * opts-common.c (prune_options): Ensure replacement argv array
7681         is correctly terminated by a NULL entry.
7682
7683 2010-06-09  Jan Hubicka  <jh@suse.cz>
7684
7685         * cgraph.h (varpool_first_static_initializer,
7686         varpool_next_static_initializer): Make checking only when
7687         checking enabled.
7688         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
7689         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
7690         gcc_assert to gcc_checking_assert.
7691         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
7692         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
7693         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
7694         op_iter_init_phiuse, op_iter_init_phidef,
7695         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
7696         gcc_checking_assert.
7697         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
7698         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
7699         partition_is_global, live_on_entry, live_on_exit,
7700         live_merge_and_clear): Likewise.
7701         * system.h (gcc_checking_assert): New macro.
7702         * gimple.h (set_bb_seq): Use gcc_checking_assert.
7703
7704 2010-06-09  Jason Merrill  <jason@redhat.com>
7705
7706         * Makefile.in (TAGS): Collect tags info from c-family.
7707
7708 2010-06-09  Jan Hubicka  <jh@suse.cz>
7709
7710         * gimple.h (gcc_gimple_checking_assert): New macro.
7711         (gimple_set_def_ops, gimple_set_use_ops,
7712         gimple_set_vuse, gimple_set_vdef,
7713         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
7714         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
7715         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
7716         gimple_asm_output_op, gimple_asm_output_op_ptr,
7717         gimple_asm_set_output_op, gimple_asm_clobber_op,
7718         gimple_asm_set_clobber_op, gimple_asm_label_op,
7719         gimple_asm_set_label_op, gimple_try_set_kind,
7720         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
7721         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
7722         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
7723         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
7724         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
7725         gimple_omp_for_set_initial, gimple_omp_for_final,
7726         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
7727         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
7728         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
7729         conditional with ENABLE_GIMPLE_CHECKING.
7730         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
7731
7732 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
7733
7734         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
7735         (get_computation_cost_at): Use it.
7736         (determine_use_iv_cost_condition): Likewise.
7737         (determine_iv_cost): Likewise.
7738
7739 2010-06-09  Richard Guenther  <rguenther@suse.de>
7740
7741         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
7742         replace constants.
7743
7744 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
7745
7746         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
7747
7748 2010-06-09  Martin Jambor  <mjambor@suse.cz>
7749
7750         PR tree-optimization/44423
7751         * tree-sra.c (dump_access): Dump also grp_assignment_read.
7752         (analyze_access_subtree): Pass negative allow_replacements to children
7753         if the current type is scalar.
7754
7755 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
7756
7757         PR testsuite/42843
7758         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
7759         * doc/plugins.texi (Plugin license check): Update information
7760         on type of plugin_is_GPL_compatible.
7761         * Makefile.in (PLUGINCC): Define as $(COMPILER).
7762         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
7763
7764 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
7765
7766         * config/arm/arm.c (thumb2_reorg): New function.
7767         (arm_reorg): Call it.
7768         * config/arm/thumb2.md (define_peephole2 for flag clobbering
7769         arithmetic operations): Delete.
7770
7771 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
7772
7773         PR target/44067
7774         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
7775         e500v2 target.
7776
7777 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
7778
7779         PR plugins/44459
7780         * gcc-plugin.h: Encapsulate all declarations in extern "C".
7781
7782 2010-06-08  Jan Hubicka  <jh@suse.cz>
7783
7784         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
7785         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
7786
7787 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
7788
7789         PR tree-optimization/39874
7790         PR middle-end/28685
7791         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
7792         Declare.
7793         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
7794         same_bool_result_p): New.
7795         (and_var_with_comparison, and_var_with_comparison_1,
7796         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
7797         (or_var_with_comparison, or_var_with_comparison_1,
7798         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
7799         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
7800         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
7801         of combine_comparisons.
7802         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
7803
7804 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
7805
7806         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
7807         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7808         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
7809         pdp11_function_value_regno_p): New functions.
7810         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
7811         TARGET_FUNCTION_VALUE_REGNO_P): Define.
7812
7813 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
7814
7815         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
7816         Thumb-2 in the MINUS case.
7817
7818 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7819
7820         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
7821
7822         * doc/gty.texi (GTY Options): Document typed GC allocation and
7823         variable_size GTY option.
7824
7825         * ggc-internal.h: New.
7826
7827         * ggc.h: Update copyright year.
7828         (digit_string): Move to stringpool.c.
7829         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
7830         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
7831         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
7832         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
7833         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
7834         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
7835         (ggc_force_collect, ggc_get_size, ggc_statistics)
7836         (ggc_print_common_statistics): Move to ggc-internal.h.
7837         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
7838         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
7839         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
7840         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
7841         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
7842         (ggc_alloc_zone_pass_stat): Remove.
7843         (ggc_internal_alloc_stat, ggc_internal_alloc)
7844         (ggc_internal_cleared_alloc_stat): New.
7845         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
7846         (ggc_internal_vec_alloc_stat)
7847         (ggc_internal_cleared_vec_alloc_stat)
7848         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
7849         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
7850         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
7851         (ggc_cleared_alloc_ptr_array_two_args): New.
7852         (htab_create_ggc, splay_tree_new_ggc): Redefine.
7853         (ggc_splay_alloc): Change the type of the first argument to
7854         enum gt_types_enum.
7855         (ggc_alloc_string): Make macro.
7856         (ggc_alloc_string_stat): New.
7857         (ggc_strdup): Redefine.
7858         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
7859         (ggc_alloc_rtvec_sized): New.
7860         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
7861         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
7862         (ggc_internal_cleared_alloc_zone_stat)
7863         (ggc_internal_zone_alloc_stat)
7864         (ggc_internal_zone_cleared_alloc_stat)
7865         (ggc_internal_zone_vec_alloc_stat)
7866         (ggc_alloc_zone_rtx_def_stat)
7867         (ggc_alloc_zone_tree_node_stat)
7868         (ggc_alloc_zone_cleared_tree_node_stat)
7869         (ggc_alloc_cleared_gimple_statement_d_stat): New.
7870
7871         * ggc-common.c: Include ggc-internal.h.
7872         (ggc_internal_cleared_alloc_stat): Rename from
7873         ggc_alloc_cleared_stat.
7874         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
7875         (ggc_calloc): Remove.
7876         (ggc_cleared_alloc_htab_ignore_args): New.
7877         (ggc_cleared_alloc_ptr_array_two_args): New.
7878         (ggc_splay_alloc): Add obj_type parameter.
7879         (init_ggc_heuristics): Formatting fixes.
7880
7881         * ggc-none.c: Update copyright year.
7882         (ggc_alloc_stat): Rename to ggc_alloc_stat.
7883         (ggc_alloc_cleared_stat): Rename to
7884         ggc_internal_cleared_alloc_stat.
7885         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
7886
7887         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
7888         Remove references to ggc_alloc in comments.
7889         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
7890         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
7891         (new_ggc_zone, destroy_ggc_zone): Remove.
7892         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
7893
7894         * ggc-zone.c: Include ggc-internal.h.  Remove references to
7895         ggc_alloc in comments.
7896         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
7897         (ggc_internal_alloc_zone_pass_stat): New.
7898         (ggc_internal_cleared_alloc_zone_stat): New.
7899         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
7900         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
7901         (new_ggc_zone, destroy_ggc_zone): Remove.
7902
7903         * stringpool.c: Update copyright year.  Include ggc-internal.h
7904         (digit_vector): Make static.
7905         (digit_string): Moved from ggc.h.
7906         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
7907         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
7908
7909         * Makefile.in (GGC_INTERNAL_H): New.
7910         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
7911         $(GGC_INTERNAL_H) to dependencies.
7912
7913         * gentype.c: Update copyright year.
7914         (walk_type): Accept variable_size GTY option.
7915         (USED_BY_TYPED_GC_P): New macro.
7916         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
7917         whitespace at the end of strings.
7918         (get_type_specifier, variable_size_p): New functions.
7919         (alloc_quantity, alloc_zone): New enums.
7920         (write_typed_alloc_def): New function.
7921         (write_typed_struct_alloc_def): Likewise.
7922         (write_typed_typed_typedef_alloc_def): Likewise.
7923         (write_typed_alloc_defns): Likewise.
7924         (output_typename, write_splay_tree_allocator_def): Likewise.
7925         (write_splay_tree_allocators): Likewise.
7926         (main): Call write_typed_alloc_defns and
7927         write_splay_tree_allocators.
7928
7929         * lto-streamer.h (lto_file_decl_data_ptr): New.
7930
7931         * passes.c (order): Define using cgraph_node_ptr.
7932
7933         * strinpool.c (struct string_pool_data): Declare nested_ptr using
7934         ht_identifier_ptr.
7935
7936         * gimple.h (union gimple_statement_d): Likewise.
7937
7938         * rtl.h (struct rtx_def): Likewise.
7939         (struct rtvec_def): Likewise.
7940
7941         * tree.h (union tree_node): Likewise.
7942
7943         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
7944
7945         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
7946
7947         * tree-scalar-evolution.c (scev_initialize): Likewise.
7948
7949         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
7950
7951         * dwarf2asm.c (dw2_force_const_mem): Likewise.
7952
7953         * omp-low.c (lower_omp_critical): Likewise.
7954
7955         * bitmap.h (struct bitmap_head_def): Update comment to not
7956         reference ggc_alloc.
7957
7958         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
7959
7960         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
7961
7962         * ipa-prop.c (duplicate_ggc_array): Rename to
7963         duplicate_ipa_jump_func_array.  Use typed GC allocation.
7964         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
7965
7966         * gimple.c (gimple_alloc_stat): Use
7967         ggc_alloc_cleared_gimple_statement_d_stat.
7968
7969         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
7970
7971         * tree.c (make_node_stat): Use
7972         ggc_alloc_zone_cleared_tree_node_stat.
7973         (make_tree_vec_stat): Likewise.
7974         (build_vl_exp_stat): Likewise.
7975         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
7976         (make_tree_binfo_stat): Likewise.
7977         (tree_cons_stat): Likewise.
7978
7979         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
7980         (shallow_copy_rtx_stat): Likewise.
7981         (make_node_stat): Likewise.
7982
7983         * lto-symtab.c: Fix comment.
7984
7985         * tree-cfg.c (create_bb): Update comment to not reference
7986         ggc_alloc_cleared.
7987         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
7988
7989         * varpool.c (varpool_node): Use typed GC allocation.
7990         (varpool_extra_name_alias): Likewise.
7991
7992         * varasm.c (emutls_decl): Likewise.
7993         (get_unnamed_section): Likewise.
7994         (get_noswitch_section): Likewise.
7995         (get_section): Likewise.
7996         (get_block_for_section): Likewise.
7997         (build_constant_desc): Likewise.
7998         (create_constant_pool): Likewise.
7999         (force_const_mem): Likewise.
8000
8001         * tree.c (build_vl_exp_stat): Likewise.
8002         (build_real): Likewise.
8003         (build_string): Likewise.
8004         (decl_debug_expr_insert): Likewise.
8005         (decl_value_expr_insert): Likewise.
8006         (type_hash_add): Likewise.
8007         (build_omp_clause): Likewise.
8008
8009         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
8010
8011         * tree-ssa.c (init_tree_ssa): Likewise.
8012
8013         * tree-ssa-structalias.c (heapvar_insert): Likewise.
8014
8015         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
8016
8017         * tree-ssa-loop-niter.c (record_estimate): Likewise.
8018
8019         * tree-ssa-alias.c (get_ptr_info): Likewise.
8020
8021         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
8022
8023         * tree-phinodes.c (allocate_phi_node): Likewise.
8024
8025         * tree-iterator.c (tsi_link_before): Likewise.
8026         (tsi_link_after): Likewise.
8027
8028         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
8029
8030         * tree-dfa.c (create_var_ann): Likewise.
8031
8032         * tree-cfg.c (create_bb): Likewise.
8033
8034         * toplev.c (alloc_for_identifier_to_locale): Likewise.
8035         (general_init): Likewise.
8036
8037         * stringpool.c (stringpool_ggc_alloc): Likewise.
8038         (gt_pch_save_stringpool): Likewise.
8039
8040         * sese.c (if_region_set_false_region): Likewise.
8041
8042         * passes.c (do_per_function_toporder): Likewise.
8043
8044         * optabs.c (set_optab_libfunc): Likewise.
8045         (set_conv_libfunc): Likewise.
8046
8047         * lto-symtab.c (lto_symtab_register_decl): Likewise.
8048
8049         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
8050         (input_eh_region): Likewise.
8051         (input_eh_lp): Likewise.
8052         (make_new_block): Likewise.
8053         (unpack_ts_real_cst_value_fields): Likewise.
8054
8055         * lto-section-in.c (lto_new_in_decl_state): Likewise.
8056
8057         * lto-cgraph.c (input_node_opt_summary): Likewise.
8058
8059         * loop-init.c (loop_optimizer_init): Likewise.
8060
8061         * lambda.h (lambda_vector_new): Likewise.
8062
8063         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
8064
8065         * ira.c (update_equiv_regs): Likewise.
8066
8067         * ipa.c (cgraph_node_set_new): Likewise.
8068         (cgraph_node_set_add): Likewise.
8069         (varpool_node_set_new): Likewise.
8070         (varpool_node_set_add): Likewise.
8071
8072         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
8073         (duplicate_ipa_jump_func_array): Likewise.
8074         (ipa_read_node_info): Likewise.
8075
8076         * ipa-cp.c (ipcp_create_replace_map): Likewise.
8077
8078         * integrate.c (get_hard_reg_initial_val): Likewise.
8079
8080         * gimple.c (gimple_alloc_stat): Likewise.
8081         (gimple_build_omp_for): Likewise.
8082         (gimple_seq_alloc): Likewise.
8083         (gimple_copy): Likewise.
8084
8085         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
8086         (gsi_insert_after_without_update): Likewise.
8087
8088         * function.c (add_frame_space): Likewise.
8089         (insert_temp_slot_address): Likewise.
8090         (assign_stack_temp_for_type): Likewise.
8091         (allocate_struct_function): Likewise.
8092         (types_used_by_var_decl_insert): Likewise.
8093
8094         * except.c (init_eh_for_function): Likewise.
8095         (gen_eh_region): Likewise.
8096         (gen_eh_region_catch): Likewise.
8097         (gen_eh_landing_pad): Likewise.
8098         (add_call_site): Likewise.
8099
8100         * emit-rtl.c (get_mem_attrs): Likewise.
8101         (get_reg_attrs): Likewise.
8102         (start_sequence): Likewise.
8103         (init_emit): Likewise.
8104
8105         * dwarf2out.c (new_cfi): Likewise.
8106         (queue_reg_save): Likewise.
8107         (dwarf2out_frame_init): Likewise.
8108         (new_loc_descr): Likewise.
8109         (find_AT_string): Likewise.
8110         (new_die): Likewise.
8111         (add_var_loc_to_decl): Likewise.
8112         (clone_die): Likewise.
8113         (clone_as_declaration): Likewise.
8114         (break_out_comdat_types): Likewise.
8115         (new_loc_list): Likewise.
8116         (loc_descriptor): Likewise.
8117         (add_loc_descr_to_each): Likewise.
8118         (add_const_value_attribute): Likewise.
8119         (tree_add_const_value_attribute): Likewise.
8120         (add_comp_dir_attribute): Likewise.
8121         (add_name_and_src_coords_attributes): Likewise.
8122         (lookup_filename): Likewise.
8123         (store_vcall_insn): Likewise.
8124         (dwarf2out_init): Likewise.
8125
8126         * dbxout.c (dbxout_init): Likewise.
8127
8128         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
8129
8130         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
8131
8132         * config/score/score7.c (score7_output_external): Likewise.
8133
8134         * config/score/score3.c (score3_output_external): Likewise.
8135
8136         * config/s390/s390.c (s390_init_machine_status): Likewise.
8137
8138         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
8139         (rs6000_init_machine_status): Likewise.
8140         (output_toc): Likewise.
8141
8142         * config/pa/pa.c (pa_init_machine_status): Likewise.
8143         (get_deferred_plabel): Likewise.
8144
8145         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
8146
8147         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
8148
8149         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
8150
8151         * config/mep/mep.c (mep_init_machine_status): Likewise.
8152         (mep_note_pragma_flag): Likewise.
8153
8154         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
8155
8156         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
8157
8158         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
8159
8160         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
8161         (i386_pe_maybe_record_exported_symbol): Likewise.
8162
8163         * config/i386/i386.c (get_dllimport_decl): Likewise.
8164         (ix86_init_machine_status): Likewise.
8165         (assign_386_stack_local): Likewise.
8166
8167         * config/frv/frv.c (frv_init_machine_status): Likewise.
8168
8169         * config/darwin.c (machopic_indirection_name): Likewise.
8170
8171         * config/cris/cris.c (cris_init_machine_status): Likewise.
8172
8173         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
8174
8175         * config/avr/avr.c (avr_init_machine_status): Likewise.
8176
8177         * config/arm/arm.c (arm_init_machine_status): Likewise.
8178
8179         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
8180         (alpha_need_linkage): Likewise.
8181         (alpha_use_linkage): Likewise.
8182
8183         * cgraph.c (cgraph_allocate_node): Likewise.
8184         (cgraph_create_edge_1): Likewise.
8185         (cgraph_create_indirect_edge): Likewise.
8186         (cgraph_add_asm_node): Likewise.
8187
8188         * cfgrtl.c (init_rtl_bb_info): Likewise.
8189
8190         * cfgloop.c (alloc_loop): Likewise.
8191         (rescan_loop_exit): Likewise.
8192
8193         * cfg.c (init_flow): Likewise.
8194         (alloc_block): Likewise.
8195         (unchecked_make_edge): Likewise.
8196
8197         * c-parser.c (c_parse_init): Likewise.
8198         (c_parse_file): Likewise.
8199
8200         * c-decl.c (bind): Likewise.
8201         (record_inline_static): Likewise.
8202         (push_scope): Likewise.
8203         (make_label): Likewise.
8204         (lookup_label_for_goto): Likewise.
8205         (finish_struct): Likewise.
8206         (finish_enum): Likewise.
8207         (c_push_function_context): Likewise.
8208
8209         * bitmap.c (bitmap_element_allocate): Likewise.
8210         (bitmap_gc_alloc_stat): Likewise.
8211
8212         * alias.c (record_alias_subset): Likewise.
8213         (init_alias_analysis): Likewise.
8214
8215 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
8216
8217         * fold-const.c (fold_comparison): Remove redundant parenthesis.
8218         * tree-inline.c (expand_call_inline): Pass translated return value of
8219         cgraph_inline_failed_string to diagnostic function.
8220
8221 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
8222             Shujing Zhao  <pearly.zhao@oracle.com>
8223
8224         PR c/37724
8225         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
8226         implicit bad conversions is initialization.
8227         (error_init): Use gmsgid instead of msgid for argument name and change
8228         the call for error.
8229         (pedwarn_init): Use gmsgid instead of msgid for argument name and
8230         change the call for pedwarn.
8231         (warning_init): Use gmsgid instead of msgid for argument name and
8232         change the call for warning.
8233
8234 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
8235
8236         * config/mips/mips-protos.h (mips_print_operand): Delete.
8237         (mips_print_operand_address): Delete.
8238         * config/mips/mips.h (mips_print_operand_punct): Delete.
8239         (PRINT_OPERAND): Delete.
8240         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8241         (PRINT_OPERAND_ADDRESS): Delete.
8242         * config/mips/mips.c (mips_print_operand_punct): Make static.
8243         (mips_print_operand_address): Make static.
8244         (mips_print_operand): Make static.  Call
8245         mips_print_operand_punct_valid_p.
8246         (mips_print_operand_punct_valid_p): New function.
8247         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8248         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8249
8250 2010-06-07  Jan Hubicka  <jh@suse.cz>
8251
8252         PR middle-end/44454
8253         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
8254         are allocated.
8255
8256 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
8257
8258         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
8259         name of RECORD.
8260
8261 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8262
8263         * doc/sourcebuild.texi (Effective-Target Keywords, Other
8264         attributes): Document gas.
8265
8266 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
8267
8268         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
8269         <TYPE_LEA>: Split instruction.
8270         <default>: Remove alternative 2 handling.
8271         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
8272         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
8273         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
8274
8275         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
8276         (ashift_zext lea splitter): Use DImode for multiplication.
8277
8278         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
8279         to generate addition.
8280
8281 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
8282
8283         * common.opt (fira-verbose): Use Var.
8284         (fpcc-struct-return): Use Init instead of VarExists.
8285         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
8286         toplev.c.
8287         * flags.h (flag_signed_char, flag_short_enums,
8288         flag_pcc_struct_return, flag_ira_verbose,
8289         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
8290         * toplev.c (flag_detailed_statistics, flag_signed_char,
8291         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
8292         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
8293         * toplev.h (flag_crossjumping, flag_if_conversion,
8294         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
8295         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
8296         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
8297         flag_cprop_registers, time_report, flag_ira_loop_pressure,
8298         flag_ira_coalesce, flag_ira_move_spills,
8299         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
8300
8301 2010-06-07  Jan Hubicka  <jh@suse.cz>
8302
8303         * df-core.c (df_analyze_problem): Do verification after allocation.
8304
8305         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
8306         (df_lr_alloc): Initialize problem data; move bitmaps to
8307         lr_bitmaps obstack.
8308         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
8309         (df_lr_verify_solution_start): Do not initialize problem data;
8310         allocate bitmaps in lr_bitmaps.
8311         (df_lr_verify_solution_end): Do not free problem data.
8312
8313 2010-06-07  Jan Hubicka  <jh@suse.cz>
8314
8315         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
8316         if caller is noreturn.
8317         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
8318         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
8319         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
8320         * ipa-pure-const.c (check_decl): Add IPA parameter.
8321         (state_from_flags): New function.
8322         (better_state, worse_state): New functions.
8323         (check_call): When in IPA mode, do not care about callees.
8324         (check_load, check_store): Update.
8325         (check_ipa_load, check_ipa_store): New.
8326         (check_stmt): When in IPA mode, use IPA checkers.
8327         (analyze_function): Use state_from_flags.
8328         (propagate): Check indirect edges and references.
8329
8330 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
8331
8332         PR rtl-optimization/44404
8333         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
8334         of count_occurrences to see if it's safe to modify mem_insn.
8335
8336 2010-06-07  Richard Guenther  <rguenther@suse.de>
8337
8338         * gimplify.c (gimplify_cleanup_point_expr): For empty body
8339         and EH-only cleanup drop the cleanup instead of inserting it
8340         unconditionally.
8341
8342 2010-06-07  Ira Rosen  <irar@il.ibm.com>
8343
8344         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
8345         documentation.
8346         * targhooks.c (default_builtin_vectorization_cost): New function.
8347         * targhooks.h (default_builtin_vectorization_cost): Declare.
8348         * target.h (enum vect_cost_for_stmt): Define.
8349         (builtin_vectorization_cost): Change argument and comment.
8350         * tree-vectorizer.h: Remove cost model macros.
8351         * tree-vect-loop.c: Include target.h.
8352         (vect_get_cost): New function.
8353         (vect_estimate_min_profitable_iters): Replace cost model macros with
8354         calls to vect_get_cost.
8355         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
8356         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
8357         default implementation.
8358         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
8359         calls to target hook builtin_vectorization_cost.
8360         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
8361         Likewise.
8362         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
8363         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
8364         implementation to return costs.
8365         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
8366         * config/spu/spu.h: Remove vectorizer cost model macros.
8367         * config/i386/i386.h: Likewise.
8368         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
8369         a call to target hook builtin_vectorization_cost.
8370
8371 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
8372
8373         PR target/44319
8374         * config/i386/i386.c (override_options): Turn zee pass on for level 2
8375         and above and defer till target is known.
8376         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
8377         turn off otherwise.
8378
8379 2010-05-25  Jan Hubicka  <jh@suse.cz>
8380
8381         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
8382         (df_compact_blocks): Likewise.
8383         * df.h (struct df): Turn hardware_regs_used,
8384         regular_block_artificial_uses, eh_block_artificial_uses,
8385         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
8386         bitmap_head.
8387         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
8388         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
8389         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
8390         df_scan_blocks, df_insn_delete, df_insn_rescan,
8391         df_insn_rescan_debug_internal, df_insn_rescan_all,
8392         df_process_deferred_rescans, df_process_deferred_rescans,
8393         df_notes_rescan, df_get_call_refs, df_get_call_refs,
8394         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
8395         df_record_entry_block_defs, df_record_exit_block_uses,
8396         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
8397         df_scan_verify): Update.
8398
8399 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
8400
8401         PR c++/44188
8402         * c-common.c (is_typedef_decl): Move this definition ...
8403         * tree.c (is_typedef_decl): ... here.
8404         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
8405         * c-common.h (is_typedef_decl): Move this declaration ...
8406         * tree.h (is_typedef_decl): ... here.
8407         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
8408         * dwarf2out.c (is_naming_typedef_decl): New function.
8409         (gen_tagged_type_die): Split out of ...
8410         (gen_type_die_with_usage): ... this function. When an anonymous
8411         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
8412         is emitted for the typedef.
8413         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
8414         anonymous tagged types.
8415
8416 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8417
8418         PR c/20000
8419         * c-decl.c (grokdeclarator): Delete warning.
8420
8421 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
8422
8423         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
8424         newly built CALL_EXPR.
8425         * tree-profile.c (tree_profiling): Don't profile functions produced
8426         for built-in stuff.
8427
8428 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
8429
8430         PR bootstrap/44427
8431         PR bootstrap/44428
8432         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
8433         endianness-independent.
8434
8435 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
8436
8437         * c-common.c: Move to c-family/.
8438         * c-common.def: Likewise.
8439         * c-common.h: Likewise.
8440         * c-cppbuiltin.c: Likewise.
8441         * c-dump.c: Likewise.
8442         * c-format.c: Likewise.
8443         * c-format.h : Likewise.
8444         * c-gimplify.c: Likewise.
8445         * c-lex.c: Likewise.
8446         * c-omp.c: Likewise.
8447         * c.opt: Likewise.
8448         * c-opts.c: Likewise.
8449         * c-pch.c: Likewise.
8450         * c-ppoutput.c: Likewise.
8451         * c-pragma.c: Likewise.
8452         * c-pragma.h: Likewise.
8453         * c-pretty-print.c: Likewise.
8454         * c-pretty-print.h: Likewise.
8455         * c-semantics.c: Likewise.
8456         * stub-objc.c: Likewise.
8457
8458         * gengtype.c (get_file_langdir): Special-case files in c-family/.
8459         (get_output_file_with_visibility): Fix name for c-common.h.
8460         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
8461
8462         * c-tree.h: Update include path for moved files.
8463         * c-lang.c: Likewise.
8464         * c-lang.h: Likewise.
8465         * c-parser.c: Likewise.
8466         * c-convert.c: Likewise.
8467         * c-decl.c: Likewise.
8468         * c-objc-common.c: Likewise.
8469         * configure.ac: Make sure c-family/ exists in the build directory.
8470         * configure: Regenerate.
8471         * Makefile.in: Update paths for moved files.  Regroup files per
8472         location and update dependencies.  Move generated_files down after
8473         ALL_GTFILES_H.
8474
8475         * config/spu/spu-c.c: Update paths for moved files.
8476         * config/mep/mep-pragma.c: Likewise.
8477         * config/darwin-c.c: Likewise.
8478         * config/i386/msformat-c.c: Likewise.
8479         * config/i386/i386-c.c: Likewise.
8480         * config/avr/avr-c.c: Likewise.
8481         * config/sol2-c.c: Likewise.
8482         * config/ia64/ia64-c.c: Likewise.
8483         * config/rs6000/rs6000-c.c: Likewise.
8484         * config/arm/arm.c: Likewise.
8485         * config/arm/arm-c.c: Likewise.
8486         * config/h8300/h8300.c: Likewise.
8487         * config/v850/v850-c.c: Likewise.
8488
8489         * config/t-darwin: Fix dependencies for moved files.
8490         * config/t-sol2: Fix dependencies for moved files.
8491         * config/mep/t-mep: Fix dependencies for moved files.
8492         * config/ia64/t-ia64: Fix dependencies for moved files.
8493         * config/rs6000/t-rs6000: Fix dependencies for moved files.
8494         * config/v850/t-v850: Fix dependencies for moved files.
8495         * config/v850/t-v850e: Fix dependencies for moved files.
8496
8497         * config/m32c/m32c-pragma.c
8498
8499         * po/exgettext: Look in c-family/ also.
8500
8501 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
8502
8503         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
8504         (mark_control_dependent_edges_necessary): Call it instead of marking
8505         the last statement manually.
8506         (propagate_necessity): Likewise.
8507
8508 2010-06-05  Jan Hubicka  <jh@suse.cz>
8509
8510         * basic-block.h (compute_dominance_frontiers): Updated.
8511         (compute_idf): Likewise.
8512
8513         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
8514         for dominance frontiers.
8515         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
8516         (insert_updated_phi_nodes_for): Likewise.
8517         (update_ssa): Likewise.
8518         * cfganal.c (compute_dominance_frontiers_1): Likewise.
8519         (compute_dominance_frontiers): Likewise.
8520         (compute_idf): Likewise.
8521         * df-problems.c (df_md_local_compute): Likewise.
8522
8523 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
8524
8525         * target.h (struct gcc_target): Add memory_move_cost field.
8526         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
8527         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
8528         * targhooks.c (default_memory_move_cost): New function.
8529         * targhooks.h (default_memory_move_cost): Declare function.
8530         * reload.h (memory_move_cost): Declare.
8531         (memory_move_secondary_cost): Change type of 'in' argument to bool.
8532         * reginfo.c (memory_move_cost): New function.
8533         (memory_move_secondary_cost): Change type of 'in' argument to bool.
8534         * ira.h (ira_memory_move_cost): Update comment.
8535         * ira.c (ira_memory_move_cost): Update comment.
8536         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
8537         with memory_move_cost.
8538         * postreload.c (reload_cse_simplify_set): (Ditto.).
8539         * reload1.c (choose_reload_regs): (Ditto.).
8540         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
8541         (MEMORY_MOVE_COST):  Revise documentation.
8542
8543         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
8544         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
8545         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
8546         type of 'in' argument to bool.
8547         (TARGET_MEMORY_MOVE_COST): Define.
8548
8549 2010-06-05  Jan Hubicka  <jh@suse.cz>
8550
8551         * ipa-pure-const.c (propagate): Fix typo in handling of functions
8552         that cannot return.  Be more careful when merging the results with
8553         previously known ones.
8554
8555 2010-06-05  Matthias Klose  <doko@ubuntu.com>
8556
8557         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
8558         function to add the -iplugindir option.
8559         (find_plugindir_spec_function): Add new declaration and function.
8560         (static_spec_func): Use it for "find-plugindir".
8561
8562 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
8563
8564         PR c++/44361
8565         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
8566         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
8567         statement expression.
8568
8569 2010-06-05  Jan Hubicka  <jh@suse.cz>
8570
8571         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
8572         (df_rd_problem_data): Convert sparse_invalidated_by_call,
8573         dense_invalidated_by_call to bitmap head.
8574         (df_rd_alloc, df_rd_bb_local_compute_process_def,
8575         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
8576         df_rd_start_dump, df_lr_verify_transfer_functions,
8577         df_live_verify_transfer_functions, df_chain_create_bb,
8578         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
8579         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
8580         df_simulate_one_insn_forwards, df_md_alloc,
8581         df_md_bb_local_compute_process_def,
8582         df_md_bb_local_compute_process_def, df_md_local_compute,
8583         df_md_transfer_function df_md_free): Update.
8584
8585 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
8586
8587         PR c/44322
8588         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
8589         target type for ADDR_EXPR; require no changes to qualifiers except
8590         for function types.
8591         * c-tree.h (c_build_type_variant): Remove.
8592
8593 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
8594
8595         * genautomata.c (get_excl_set): Do work per element, not per char.
8596         (check_presence_pattern_sets): Similar.
8597         (check_absence_pattern_sets): Similar.
8598
8599 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
8600
8601         * genautomata.c (curr_state_pass_num): Delete.
8602         (min_issue_delay_pass_states): Delete.
8603         (min_issue_delay): Delete.
8604         (initiate_min_issue_delay_pass_states): Delete.
8605         (output_min_issue_delay_table): Compute min_issue_delay_vect
8606         using a breadth-first search variant.
8607         (output_tables): Don't call initiate_min_issue_delay_pass_states.
8608
8609 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
8610
8611         PR boostrap/44421
8612         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
8613         (df_byte_lr_bb_local_compute): Likewise.
8614
8615 2010-06-03  Jason Merrill  <jason@redhat.com>
8616
8617         Implement noexcept operator (5.3.7)
8618         * c-common.c (c_common_reswords): Add noexcept.
8619         * c-common.h (enum rid): Add RID_NOEXCEPT.
8620
8621 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
8622
8623         * config/darwin-driver.c (darwin_default_min_version): Use
8624         GCC-specific formats in diagnostics.
8625         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
8626         diagnostics.
8627         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
8628         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
8629         eval_spec_function, handle_braces, process_brace_body, main,
8630         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
8631         getenv_spec_function, compare_version_strings,
8632         version_compare_spec_function): Use GCC-specific formats in
8633         diagnostics.
8634
8635 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
8636
8637         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
8638         that operand 0 and operand 1 are equal.
8639         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
8640         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
8641         and operand 1 are equal.
8642         <default>: Ditto.  Remove ??? comment.
8643         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
8644         and operand 1 are equal.
8645         <default>: Ditto.  Remove ??? comment.
8646         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
8647         are equal.
8648         (*add<mode>_4) <default>: Ditto.
8649         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
8650
8651 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
8652
8653         * config/i386/i386-protos.h (ix86_print_operand): Declare.
8654         * config/i386/i386.c (ix86_print_operand): Make non-static.
8655         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
8656         * output.h (output_operand): Declare.
8657         * final.c (output_operand): Make non-static.
8658
8659 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
8660
8661         PR rtl-optimization/44013
8662         * sched-deps.c (add_dependence_list_and_free): Don't free lists
8663         when processing debug insns.
8664
8665         PR debug/41371
8666         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
8667         recursing.  Check that recursion is bounded.  Rename inner var
8668         to avoid hiding incoming argument.
8669
8670 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
8671
8672         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
8673         operands[2] == 255.
8674         (*addqi_3): Ditto.
8675         (*addqi_4): Ditto.
8676         (*addqi_5): Ditto.
8677         (*addqi_ext_1_rex64): Ditto.
8678         (*addqi_ext_1): Ditto.
8679
8680         (*addqi_4): Check for incdec_operand in QImode.
8681
8682         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
8683         using SWI mode iterator.
8684         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
8685         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
8686         mode iterator.
8687         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
8688         using SWI mode iterator.
8689
8690 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8691
8692         PR c/25880
8693         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
8694         * c-format.c (gcc_diag_flag_specs): Add hash.
8695         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
8696         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
8697         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
8698         pp_c_cv_qualifiers. Handle qualifiers spelling here.
8699         (pp_c_type_qualifier_list): Call the function above.
8700         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
8701         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
8702         (WARN_FOR_QUALIFIERS): New macro.
8703         (convert_for_assignment): Use it.
8704
8705 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
8706
8707         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
8708
8709 2010-06-04  Jan Hubicka  <jh@suse.cz>
8710
8711         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
8712         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
8713         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
8714         DF_BYTE_LR_OUT): Update for embedded bitmaps.
8715         * fwprop.c (single_def_use_enter_block): Likewise.
8716         * ddg.c (create_ddg_dep_from_intra_loop_link,
8717         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
8718         * loop-iv.c (latch_dominating_def): Likewise.
8719         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
8720         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
8721         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
8722         df_rd_transfer_function, df_rd_top_dump,
8723         df_rd_bottom_dump): Update.
8724         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
8725         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
8726         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
8727         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
8728         df_lr_verify_solution_start, df_lr_verify_solution_end,
8729         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
8730         df_live_free_bb_info, df_live_alloc, df_live_reset,
8731         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
8732         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
8733         df_live_verify_solution_start, df_live_verify_solution_end,
8734         df_live_verify_transfer_functions, df_chain_create_bb,
8735         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
8736         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
8737         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
8738         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
8739         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
8740         df_byte_lr_transfer_function, df_byte_lr_top_dump,
8741         df_byte_lr_bottom_dump, df_create_unused_note,
8742         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
8743         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
8744         df_md_transfer_function, df_md_init, df_md_confluence_0,
8745         df_md_confluence_n,
8746         df_md_top_dump, df_md_bottom_dump): Update.
8747         (struct df_lr_problem_data): Embedd bitmap headers.
8748
8749 2010-06-04  Jan Hubicka  <jh@suse.cz>
8750
8751         * dce.c (dce_process_block): Do not re-scan already marked
8752         instructions.
8753
8754 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
8755
8756         PR rtl-optimization/39871
8757         PR rtl-optimization/40615
8758         PR rtl-optimization/42500
8759         PR rtl-optimization/42502
8760         * ira.c (init_reg_equiv_memory_loc: New function.
8761         (ira): Call it twice.
8762         * reload.h (calculate_elim_costs_all_insns): Declare.
8763         * ira-costs.c: Include "reload.h".
8764         (regno_equiv_gains): New static variable.
8765         (init_costs): Allocate it.
8766         (finish_costs): Free it.
8767         (ira_costs): Call calculate_elim_costs_all_insns.
8768         (find_costs_and_classes): Take estimated elimination costs
8769         into account.
8770         (ira_adjust_equiv_reg_cost): New function.
8771         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
8772         * reload1.c (init_eliminable_invariants, free_reg_equiv,
8773         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
8774         (elim_bb): New static variable.
8775         (reload): Move code out of here into init_eliminable_invariants and
8776         free_reg_equiv.  Call them.
8777         (calculate_elim_costs_all_insns): New function.
8778         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
8779         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
8780         but call note_reg_elim_costly if we turned a valid memory address
8781         into an invalid one.
8782         * Makefile.in (ira-costs.o): Depend on reload.h.
8783
8784 2010-06-04  Julian Brown  <julian@codesourcery.com>
8785
8786         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
8787         for pool ranges.
8788
8789 2010-06-04  Richard Guenther  <rguenther@suse.de>
8790
8791         PR lto/41584
8792         * cgraph.h (struct varpool_node): Add lto_file_data field.
8793         * lto-cgraph.c (input_varpool_node): Initialize it.
8794
8795 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
8796
8797         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
8798         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
8799         predicate in "type" attribute calculation.
8800         (*addsi_1_zext): Ditto.
8801         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
8802         (*addsi_2_zext): Ditto.
8803         (*add<mode>_3): Ditto.
8804         (*addsi_3_zext): Ditto.
8805         (*add<mode>_5): Ditto.
8806
8807 2010-06-03  Jan Hubicka  <jh@suse.cz>
8808
8809         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
8810         of bitmap_bit_p.
8811         * cfganal.c (compute_dominance_frontiers_1): Likewise.
8812
8813 2010-06-03  Jan Hubicka  <jh@suse.cz>
8814
8815         * df-problems.c (df_create_unused_note, df_note_bb_compute):
8816         micro-optimize the checks when to add new note.
8817
8818 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
8819
8820         * final.c (output_asm_insn): Call
8821         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
8822         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
8823         (output_address): Call targetm.asm_out.print_operand_address.
8824         Update comments.
8825         * target.h (struct gcc_target): Add print_operand,
8826         print_operand_address, and print_operand_punct_valid_p fields.
8827         * targhooks.h (default_print_operand): Declare.
8828         (default_print_operand_address): Declare.
8829         (default_print_operand_punct_valid_p): Declare.
8830         * targhooks.c (default_print_operand): Define.
8831         (default_print_operand_address): Define.
8832         (default_print_operand_punct_valid_p): Define.
8833         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
8834         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
8835         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
8836         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
8837         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
8838         * vmsdbgout.c (addr_const_to_string): Update comment.
8839         * config/i386/i386.c (print_operand): Rename to...
8840         (ix86_print_operand): ...this.  Make static.
8841         (print_operand_address): Rename to...
8842         (ix86_print_operand_address): ...this.  Make static.  Call
8843         ix86_print_operand instead of PRINT_OPERAND.
8844         (ix86_print_operand_punct_valid_p): New function.
8845         (TARGET_PRINT_OPERAND): Define.
8846         (TARGET_PRINT_OPERAND_ADDRESS): Define.
8847         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
8848         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
8849         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
8850         (PRINT_OPERAND): Delete.
8851         (PRINT_OPERAND_ADDRESS): Delete.
8852         * config/i386/i386-protos.h (print_operand): Delete prototype.
8853         (print_operand_address): Delete prototype.
8854
8855 2010-06-03  Richard Guenther  <rguenther@suse.de>
8856
8857         PR tree-optimization/44403
8858         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
8859         Preserve pointer qualifiers.
8860         (vect_create_data_ref_ptr): Likewise.
8861
8862 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
8863
8864         PR c++/44294
8865         * defaults.h (MAX_FIXED_MODE_SIZE): New.
8866
8867         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
8868
8869 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
8870
8871         PR debug/44375
8872         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
8873         return false if merging the bbs would lead to goto_locus
8874         location being lost from the IL.
8875
8876 2010-06-03  Jan Hubicka  <jh@suse.cz>
8877             Jakub Jelinek  <jakub@redhat.com>
8878
8879         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
8880         set->regs[i] is NULL or has just one entry.
8881
8882 2010-06-03  Jan Hubicka  <jh@suse.cz>
8883
8884         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
8885         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
8886
8887 2010-06-03  Paul Brook  <paul@codesourcery.com>
8888
8889         * config/arm/arm.c (FL_TUNE): Define.
8890         (arm_default_cpu, arm_cpu_select): Remove.
8891         (all_cores): Populate core field.
8892         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
8893         (arm_find_cpu): New function.
8894         (arm_handle_option): Lookup cpu/architecture names.
8895         (arm_override_options): Cleanup mcpu/march/mtune handling.
8896         (arm_file_start): Ditto.
8897
8898 2010-06-03  Alan Modra  <amodra@gmail.com>
8899
8900         PR target/44169
8901         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
8902         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
8903         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
8904         (rs6000_emit_load_toc_table): Likewise.
8905
8906 2010-06-02  Jan Hubicka  <jh@suse.cz>
8907
8908         * passes.c (init_optimization_passes): Put ipa reference
8909         after ipa pure-const.
8910
8911 2010-06-02  Jan Hubicka  <jh@suse.cz>
8912
8913         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
8914         calls_read_all and calls_write_all.
8915         (get_reference_optimization_summary): Fix formatting.
8916         (is_proper_for_analysis): Check that decl is not readonly.
8917         (propagate_bits): Check CONST/PURE/noreturn flags.
8918         (ipa_init): Move all_module_statics to optimization_summary_obstack.
8919         (analyze_function): Ignore indirect edges.
8920         (copy_global_bitmap): For all module statics, do nothing.
8921         (generate_summary): Do not print calls_read_all/calls_write_all.
8922         (read_write_all_from_decl): Take node as argument; check
8923         cgraph_node_cannot_return.
8924         (propagate): Reorganize read_all/write_all computation;
8925         check indirect edges; check ecf flags; use all_module_statics
8926         in the results; do not free all_module_statics.
8927         (stream_out_bitmap): Handle all_module_statics.
8928         (ipa_reference_write_optimization_summary): Likewise; use
8929         varpool/cgraph encoders to get boundaries.
8930         (ipa_reference_read_optimization_summary): Read in all_module_statics;
8931         use it when possible.
8932
8933 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
8934
8935         PR target/44218
8936         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
8937         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
8938
8939         * doc/extend.texi (powerpc builtins): Document vec_recip,
8940         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
8941
8942         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
8943         (rs6000_emit_swrsqrt): Ditto.
8944         (rs6000_emit_swdivsf): Delete.
8945         (rs6000_emit_swdivdf): Ditto.
8946         (rs6000_emit_swrsqrtsf): Ditto.
8947
8948         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
8949         describe the reciprocal estimate support for each type.
8950         (recip_options): Map -mrecip=<opt> into option bits.
8951         (gen_2arg_fn_t): New typedef for binary rtx gen function.
8952         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
8953         reciprocal estimate instructions.
8954         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
8955         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
8956         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
8957         cost information if -mdebug=cost or -mdebug=reg.
8958         (rs6000_override_options): Set -mrecip-precision for power6, and
8959         power7 machines.  If -mvsx or -mdfp, enable various options that
8960         came in previous instruction set ISAs, unless the option was
8961         explicitly disabled by the command line option.  Parse
8962         -mrecip=<opt> options.
8963         (rs6000_builtin_vectorized_function): Add support for vectorizing
8964         the reciprocal estimate builtins and expansions.
8965         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
8966         (bdesc_2arg): Add reciprocal estimate builtins.
8967         (bdesc_1arg): Add reciprocal square root estimate builtins.
8968         (rs6000_expand_builtin): Rewrite to use a switch statement,
8969         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
8970         (rs6000_init_builtins): Create declarations for reciprocal
8971         estimate builtins.
8972         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
8973         sized, prefer traditional floating point registers, if integer
8974         vector types, prefer altivec registers.  Don't actually look at
8975         the memory address any more.
8976         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
8977         builtins.
8978         (rs6000_load_constant_and_splat): New helper function to load up
8979         the constant for reciprocal estimate instructions.
8980         (rs6000_emit_madd): New helper function for generating
8981         multiply/add type instructions, based on the current switches.
8982         (rs6000_emit_msub): Ditto.
8983         (rs6000_emit_mnsub): Ditto.
8984         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
8985         replace a divide with a reciprocal estimate and fixup, adding
8986         support for machines with high precision and vectors.
8987         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
8988         low precision machines.
8989         (rs6000_emit_swdiv): New common function to be called to replace a
8990         division with reciprocal estimate and fixup.
8991         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
8992         for double and vector types.  Add support for high precision machines.
8993
8994         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
8995         the reciprocal estimate instructions can be generated.
8996         (TARGET_FRE): Ditto.
8997         (TARGET_FRSQRTES): Ditto.
8998         (TARGET_FRSQRTE): Ditto.
8999         (RS6000_RECIP_*): New macros for reciprocal estimate support.
9000
9001         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
9002         square root estimate on vectors.
9003         (re<mode>2): New insn for reciprocal division estimate on vectors.
9004
9005         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
9006         New builtin.
9007         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
9008         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
9009         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
9010         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
9011         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
9012         (RS6000_BUILTIN_RSQRT): Ditto.
9013         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
9014         floating point builtin.
9015
9016         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9017         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
9018         __RECIP_PRECISION__ based on the command line switches.
9019         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
9020
9021         * config/rs6000/rs6000.opt (-mrecip): Document add support for
9022         replacing division instructions with reciprocal estimate and fixup.
9023         (-mrecip=<opt>): New option.
9024         (-mrecip-precision): Ditto.
9025
9026         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
9027         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
9028         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
9029         precision scalar.
9030
9031         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
9032         (UNSPEC_VREFP): Ditto.
9033         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
9034         conterparts with regard to support of -mno-fused-madd and -ffast-math.
9035         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
9036         reciprocal estimate instructions to be generated.
9037         (altivec_vrefp): Ditto.
9038
9039         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
9040         estimate support.
9041         (rreg): New mode attribute for reciprocal estimate support.
9042         (recip<mode>3): New insn for division using reciprocal estimate
9043         and fixup builtins.
9044         (divide define_split): New define_split to convert floating point
9045         division to use reciprocal estimate if the user used the
9046         appropriate options and the split is run when we can add new
9047         pseudo registers for the fixup.
9048         (rsqrt<mode>2): New insn for reciprocal square root support.
9049         (recipsf3): Move into recip<mode>3.
9050         (recipdf3): Ditto.
9051         (fres): Use TARGET_FRES.
9052         (rsqrtsf2): Move into rsqrt<mode>2.
9053         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
9054         (copysignsf3): Add support for VSX.
9055         (fred): Use TARGET_FRE.
9056         (fred_fpr): Ditto.
9057         (rsqrtdf_internal1): New function for frsqrte instruciton.
9058
9059         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
9060         (vec_rsqrt): Ditto.
9061
9062 2010-06-03  Richard Guenther  <rguenther@suse.de>
9063
9064         PR middle-end/44291
9065         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
9066         (set_user_assembler_libfunc): Likewise.
9067
9068 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
9069
9070         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
9071         defaults.h.
9072         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
9073         to defaults.h
9074         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
9075         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
9076         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
9077         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
9078         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
9079         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
9080         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
9081         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
9082         * defaults.h: Updated for above mentioned changes.
9083
9084 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
9085
9086         * c-common.c: Remove header include of tm_p.h.
9087         * Makefile.in (c-common.o): Remove TM_P_H dependency.
9088
9089 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
9090
9091         * tree.h (struct tree_decl_map): New type.
9092         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
9093         (tree_decl_map_hash): New prototype.
9094         (debug_expr_for_decl, value_expr_for_decl): Change into
9095         tree_decl_map hashtab from tree_map.
9096         (init_ttree): Adjust initialization.
9097         (tree_decl_map_hash): New function.
9098         (decl_debug_expr_lookup, decl_debug_expr_insert,
9099         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
9100
9101 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9102
9103         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
9104         linker emulations.
9105         * configure: Regenerate.
9106         * config.in: Regenerate.
9107
9108         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
9109         (X86_64_EMULATION): Define.
9110         (TARGET_LD_EMULATION): Use them.
9111
9112         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
9113         (SPARC64_EMULATION): Define.
9114         (LINK_ARCH_SPEC): Use them.
9115
9116 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
9117
9118         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
9119         smallest_mode_for_size for computing the precision types of new
9120         graphite IVs.  Do not call lang_hooks.types.type_for_size.
9121
9122 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
9123
9124         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
9125         information.
9126         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
9127
9128 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
9129
9130         PR middle-end/44363
9131         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
9132         return false instead.
9133
9134 2010-06-02  Jan Hubicka  <jh@suse.cz>
9135
9136         PR middle-end/44295
9137         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
9138         create new cgraph node to check callee.
9139
9140 2010-06-02  Richard Guenther  <rguenther@suse.de>
9141
9142         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
9143
9144 2010-06-02  Richard Guenther  <rguenther@suse.de>
9145
9146         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
9147         (lto_wrapper_cleanup): ... this.  Do not exit.
9148         (fatal): Adjust.  Exit here.
9149         (fatal_perror): Likewise.
9150         (fatal_signal): New function.
9151         (main): Set up signal handlers to cleanup temporary files.
9152         * Makefile.in (lto-wrapper.o): Adjust dependencies.
9153
9154 2010-06-02  Richard Guenther  <rguenther@suse.de>
9155
9156         PR tree-optimization/44377
9157         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
9158
9159 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9160
9161         * config/s390/2097.md (z10_fhex): Remove insn reservation.
9162         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
9163         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
9164         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
9165         instruction.
9166         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
9167
9168 2010-06-02  Jan Hubicka  <jh@suse.cz>
9169
9170         * bitmap.c (bitmap_descriptor): Add search_iter.
9171         (bitmap_find_bit): Increment it.
9172         (print_statistics): Print it.
9173
9174 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
9175
9176         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
9177         instead of gimple_build_call_vec.  Delete unnecessary local variable.
9178
9179 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
9180
9181         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
9182         change from yesterday.
9183
9184 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
9185
9186         * c-ada-spec.c: Clean up redundant includes.
9187
9188 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
9189
9190         * gimplify.c: Do not include except.h and optabs.h.
9191         (gimplify_body): Do not initialize RTL profiling.
9192         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
9193         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
9194         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
9195         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
9196         langhooks.h.
9197
9198         * tree-pretty-print.h: Include pretty-print.h.
9199         * gimple-pretty-print.h: Include pretty-print.h.
9200
9201         * tree-pretty-print.c: Do not include diagnostic.h.
9202         * tree-vrp.c: Likewise.
9203         * tree-tailcall.c: Likewise
9204         * tree-scalar-evolution.c: Likewise
9205         * tree-ssa-dse.c: Likewise
9206         * tree-chrec.c: Likewise
9207         * tree-ssa-sccvn.c: Likewise
9208         * tree-ssa-copyrename.c: Likewise
9209         * tree-nomudflap.c: Likewise
9210         * tree-call-cdce.c: Likewise
9211         * tree-stdarg.c: Likewise
9212         * tree-ssa-math-opts.c: Likewise
9213         * tree-nrv.c: Likewise
9214         * tree-ssa-sink.c: Likewise
9215         * tree-browser.c: Likewise
9216         * tree-ssa-loop-ivcanon.c: Likewise
9217         * tree-ssa-loop.c: Likewise
9218         * tree-parloops.c: Likewise
9219         * tree-ssa-address.c: Likewise
9220         * tree-ssa-ifcombine.c: Likewise
9221         * tree-if-conv.c: Likewise
9222         * tree-data-ref.c: Likewise
9223         * tree-affine.c: Likewise
9224         * tree-ssa-phiopt.c: Likewise
9225         * tree-ssa-coalesce.c: Likewise
9226         * tree-ssa-pre.c: Likewise
9227         * tree-ssa-live.c: Likewise
9228         * tree-predcom.c: Likewise
9229         * tree-ssa-forwprop.c: Likewise
9230         * tree-ssa-dce.c: Likewise
9231         * tree-ssa-ter.c: Likewise
9232         * tree-ssa-loop-prefetch.c: Likewise
9233         * tree-optimize.c: Likewise
9234         * tree-ssa-phiprop.c: Likewise
9235         * tree-object-size.c: Likewise
9236         * tree-outof-ssa.c: Likewise
9237         * tree-ssa-structalias.c: Likewise
9238         * tree-switch-conversion.c: Likewise
9239         * tree-ssa-reassoc.c: Likewise
9240         * tree-ssa-operands.c: Likewise
9241         * tree-vectorizer.c: Likewise
9242         * tree-vect-data-refs.c: Likewise
9243         * tree-vect-generic.c: Likewise
9244         * tree-vect-stmts.c: Likewise
9245         * tree-vect-patterns.c: Likewise
9246         * tree-vect-slp.c: Likewise
9247         * tree-vect-loop.c: Likewise
9248         * tree-ssa-loop-ivopts.c: Likewise
9249         * tree-ssa-loop-im.c: Likewise
9250         * tree-ssa-loop-niter.c: Likewise
9251         * tree-ssa-loop-unswitch.c: Likewise
9252         * tree-ssa-loop-manip.c: Likewise
9253         * tree-ssa-loop-ch.c: Likewise
9254         * tree-dump.c: Likewise
9255         * tree-complex.c: Likewise
9256
9257         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
9258         * tree-ssa-uninit.c: Likewise
9259         * tree-ssa-threadupdate.c: Likewise
9260         * tree-ssa-uncprop.c: Likewise
9261         * tree-ssa-ccp.c: Likewise
9262         * tree-ssa-dom.c: Likewise
9263         * tree-ssa-propagate.c: Likewise
9264         * tree-ssa-alias.c: Likewise
9265         * tree-dfa.c: Likewise
9266         * tree-cfgcleanup.c: Likewise
9267         * tree-sra.c: Likewise
9268         * tree-ssa-copy.c: Likewise
9269         * tree-ssa.c: Likewise
9270         * tree-profile.c: Likewise
9271         * tree-cfg.c: Likewise
9272         * tree-ssa-threadedge.c: Likewise
9273         * tree-vect-loop-manip.c: Likewise
9274
9275         * tree-inline.c: Do not include diagnostic.h and expr.h.
9276         Include rtl.h.
9277         (copy_decl_for_dup_finish): Do not use NULL_RTX.
9278
9279         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
9280         * tree-loop-distribution.c: Likewise.
9281
9282 2010-06-01  Jan Hubicka  <jh@suse.cz>
9283
9284         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
9285
9286 2010-06-01  Jan Hubicka  <jh@suse.cz>
9287
9288         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
9289         remove return value.
9290         (split_bbs_on_noreturn_calls) .... here.
9291         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
9292         * tree-flow.h (fixup_noreturn_call): New.
9293
9294 2010-06-01  Jan Hubicka  <jh@suse.cz>
9295
9296         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
9297
9298 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
9299
9300         * tree.h (build_nt_call_list): Delete.
9301         * tree.c (build_nt_call_list): Delete.
9302
9303 2010-06-01  Jan Hubicka  <jh@suse.cz>
9304
9305         * fwprop.c: Make emit-rtl.h include last.
9306         * rtlanal.c: Include emit-rtl.h.
9307         * genautomata.c: Output emit-rtl include into insn-automata.c
9308         * df-scan.c: Include emit-rtl.h.
9309         * haifa-sched.c: Indlude emit-rtl.h.
9310         * mode-switching.c: Indlude emit-rtl.h.
9311         * graph.c: Indlude emit-rtl.h.
9312         * sel-sched.c: Include emit-rtl.h.
9313         * sel-sched-ir.c: Include emit-rtl.h.
9314         * ira-build.c: Include emit-rtl.h.
9315         * emit-rtl.c (first_insn, last_insn): Remove defines.
9316         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
9317         Move to emit-rtl.h.
9318         (set_new_first_and_last_insn, get_last_insn_anywhere,
9319         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
9320         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
9321         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
9322         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
9323         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
9324         Use accessor functions.
9325         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
9326          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
9327         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
9328         mem_expr_equal_p): Move here from rtl.h.
9329         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
9330         Move here from emit-rtl.c; make inline.
9331         * cfglayout.h: Include emit-rtl.h.
9332         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
9333          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
9334         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
9335         mem_expr_equal_p, get_insns, set_first-insn,
9336         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
9337         * reg-stack.c: Include emit-rtl.h.
9338         * dce.c: Likewise.
9339
9340 2010-06-01  Jan Hubicka  <jh@suse.cz>
9341
9342         * cgraph.h (tree_function_versioning): Update prototype.
9343         (cgraph_function_versioning): Update prototype.
9344         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
9345         bitmap.
9346         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
9347         (cgraph_materialize_clone, save_inline_function_body): Update use of
9348         tree_function_versioning.
9349         * tree-inline.c (copy_bb): Look for previous copied block to link
9350         after; fix debug output.
9351         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
9352         (copy_body): Likewise.
9353         (expand_call_inline): Update use of copy_body.
9354         (tree_function_versioning): Update use of copy body; accept
9355         blocks_to_copy and new_entry.
9356
9357 2010-06-01  Jan Hubicka  <jh@suse.cz>
9358
9359         * gegenrtl.c: Remove unnecesary prototypes.
9360         (gendecl): Remove.
9361         (gendef): Produce static inline.
9362         (gencode): Remove.
9363         (main): Do not decode parameters; generate header only.
9364         * Makefile.in (genrtl.c): Remove.
9365
9366 2010-06-01  Jan Hubicka  <jh@suse.cz>
9367
9368         * tree-switch-conversion.c (build_one_array): Make it readonly.
9369
9370 2010-06-01  Richard Guenther  <rguenther@suse.de>
9371
9372         * optabs.c (init_optabs): Guard all accesses to reinit.
9373         * ipa-pure-const.c (propagate): Fix another typo.
9374         * opts.c (common_handle_option): Split assignment to bool.
9375         * c-opts.c (c_common_handle_option): Likewise.
9376
9377 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
9378             Matthew Gingell  <gingell@adacore.com>
9379
9380         * doc/invoke.texi: Mention -fdump-ada-spec.
9381         * tree-dump.c (dump_files): Add ada-spec.
9382         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
9383         * tree-pass.h (tree_dump_index): Add TDI_ada.
9384         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
9385         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
9386         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
9387         * c-decl.c: Include c-ada-spec.h.
9388         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
9389         functions.
9390         (c_write_global_declarations): Add handling of -fdump-ada-spec.
9391         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
9392         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
9393         * c-ada-spec.h, c-ada-spec.c: New files.
9394
9395 2010-06-01  Richard Guenther  <rguenther@suse.de>
9396
9397         PR lto/43853
9398         * ipa-pure-const.c (get_function_state): Hand back varying state
9399         if we do not have one.
9400         (has_function_state): New function.
9401         (duplicate_node_data): Adjust.
9402         (remove_node_data): Likewise.
9403         (pure_const_write_summary): Likewise.
9404         (propagate): Likewise.  Fix typo.
9405
9406 2010-06-01  Jan Hubicka  <jh@suse.cz>
9407
9408         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
9409         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
9410         (execute_all_ipa_transforms): Do not play with the states.
9411
9412 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
9413
9414         * config/arm/t-linux-androideabi: New.
9415         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
9416
9417 2010-06-01  Jan Hubicka  <jh@suse.cz>
9418
9419         * tree-inline.c (estimate_num_insns): For stdarg functions look
9420         into call statement to count cost of argument passing.
9421
9422 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
9423
9424         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
9425         argument for fprintf.
9426         (ix86_output_addr_diff_elt): Likewise.
9427         (x86_function_profiler): Likewise.
9428         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
9429         (LPREFIX): Likewise.
9430         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
9431
9432 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
9433
9434         PR target/44338
9435         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
9436         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
9437         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
9438         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
9439         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
9440         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
9441         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
9442         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
9443         TARGET_FUSED_MADD.
9444
9445 2010-05-31  Jan Hubicka  <jh@suse.cz>
9446
9447         * tree.h (tree_range_check_failed): Declare noreturn.
9448
9449 2010-05-31  Jan Hubicka  <jh@suse.cz>
9450
9451         * gimple.c (gimple_call_builtin_p): New function.
9452         * gimple.h (gimple_call_builtin_p): Declare.
9453         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
9454         to exit.
9455         (execute_warn_function_return): BUILT_IN_RETURN is return.
9456         (split_critical_edges): Return edges are not critical.
9457         (is_ctrl_altering_stmt): Builtin_in_return is altering.
9458         (gimple_verify_flow_info): Handle built_in_return.
9459         (execute_warn_function_return): Handle built_in_return.
9460         * ipa-pure-const.c (check_call): Ignore builtin_return.
9461
9462 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
9463
9464         PR middle-end/44337
9465         * expr.c (expand_assignment): Don't store anything for out-of-bounds
9466         array accesses with non-MEM.
9467
9468         PR tree-optimization/44182
9469         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
9470         newly needs to end a bb is followed by debug stmts, instead return
9471         true from the function at the end.
9472         (maybe_move_debug_stmts_to_successors): New function.
9473         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
9474
9475 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
9476
9477         PR target/44161
9478         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
9479
9480 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
9481
9482         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
9483         for nested functions in non-optimized compilation.
9484
9485 2010-05-31  Richard Guenther  <rguenther@suse.de>
9486
9487         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
9488
9489 2010-05-30  Jan Hubicka  <jh@suse.cz>
9490
9491         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
9492
9493 2010-05-30  Richard Guenther  <rguenther@suse.de>
9494
9495         PR lto/42975
9496         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
9497         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
9498         no longer needed.
9499
9500 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
9501
9502         * config/darwin.c (output_objc_section_asm_op): Add comment.
9503         (name_needs_quotes): Add '_' to list of valid comment chars.
9504         (machopic_output_function_base_name): Remove unneeded quotes.
9505         (darwin_encode_section_info): Adjust asm whitespace.
9506         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
9507         (ASM_OUTPUT_LOCAL): Ditto.
9508         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
9509         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
9510         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
9511
9512 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9513
9514         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
9515         RS6000_OUTPUT_BASENAME unconditionally.
9516         (rs6000_output_function_epilogue): Likewise.
9517
9518 2010-05-30  Jan Hubicka  <jh@suse.cz>
9519
9520         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
9521         nodes.
9522
9523 2010-05-30  Richard Guenther  <rguenther@suse.de>
9524
9525         * tree-cfg.c (verify_gimple_assign_single): Implement
9526         verification for COND_EXPR rhs.
9527
9528 2010-05-30  Jan Hubicka  <jh@suse.cz>
9529
9530         * cgraph.h (cgraph_dump_file): Declare.
9531         * cgraphunit.c (cgraph_dump_file): Export.
9532         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
9533
9534 2010-05-30  Jan Hubicka  <jh@suse.cz>
9535
9536         * dwarf2out.c (reference_to_unused,
9537         premark_types_used_by_global_vars_helper): Avoid creation of new
9538         varpool nodes.
9539
9540 2010-05-30  Jan Hubicka  <jh@suse.cz>
9541
9542         * cgraph.h (cgraph_node_cannot_return,
9543         cgraph_edge_cannot_lead_to_return): New functions.
9544         * cgraph.c (cgraph_node_cannot_return,
9545         cgraph_edge_cannot_lead_to_return): Use them.
9546         * ipa-pure-const.c (pure_const_names): New static var.
9547         (check_call): Handle calls not leading to return.
9548         (pure_const_read_summary): Dump info read.
9549         (propagate): Dump info about propagation process; ignore side effects
9550         of functions not leading to exit; fix handling of pure functions.
9551
9552 2010-05-30  Jan Hubicka  <jh@suse.cz>
9553
9554         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
9555         for tail call epilogues.
9556
9557 2010-05-30  Jan Hubicka  <jh@suse.cz>
9558
9559         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
9560         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
9561         dump files.
9562
9563 2010-05-29  Jan Hubicka  <jh@suse.cz>
9564
9565         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
9566         node; remove references in node we no longer keep in cgrpah but need
9567         body of.
9568
9569 2010-05-29  Jan Hubicka  <jh@suse.cz>
9570
9571         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
9572
9573 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9574
9575         PR target/44165
9576         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
9577
9578 2010-05-29  Jan Hubicka  <jh@suse.cz>
9579
9580         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
9581         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
9582         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
9583         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
9584         debug_names_replaced_by, debug_update_ssa): Likewise.
9585         * sbitmap.c (debug_sbitmap): Likewise.
9586         * genrecog.c (debug_decision, debug_decision_list): Likewise.
9587         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
9588         debug_tree_chain): Likewise.
9589         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
9590         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
9591         * optabs.c (debug_optab_libfuncs): Likewise.
9592         (verify_loop_closed_ssa): Likewise.
9593         * value-prof.c (verify_histograms): Likewise.
9594         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
9595         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
9596         * cfghooks.c (verify_flow_info): Likewise.
9597         * fold-const.c (debug_fold_checksum): Likewise.
9598         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
9599         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
9600         Likewise.
9601         * omega.c (debug_omega_problem): Likewise.
9602         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
9603         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
9604         * dominance.c (verify_dominators, debug_dominance_info,
9605         debug_dominance_tree): Likewise.
9606         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
9607         * df_regno_debug, df_ref_debug,
9608         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
9609         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
9610         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
9611         * sel-sched.c (debug_state): Likewise.
9612         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
9613         Likewise.
9614         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
9615         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
9616         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
9617         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
9618         Likewise.
9619         * c-pretty-print.c (debug_c_tree): Likewise.
9620         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
9621         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
9622         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
9623         * ebitmap.c (debug_ebitmap): Likewise.
9624         * function.c (debug_find_var_in_block_tree): Likewise.
9625         * print-rtl.c (debug_rtx): Likewise.
9626         (debug_rtx_count): Likewise.
9627         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
9628         * stor-layout.c (debug_rli): Likewise.
9629         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
9630         * tree-data-ref.c (debug_data_references,
9631         debug_data_dependence_relations, debug_data_reference,
9632         debug_data_dependence_relation, debug_rdg_vertex,
9633         debug_rdg_component, debug_rdg): Likewise.
9634         * tree-affine.c (debug_aff): Likewise.
9635         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
9636         Likewise.
9637         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
9638         * emit-rtl.c (verify_rtl_sharing): Likewise.
9639         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
9640         debug_value_expressions): Likewise.
9641         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
9642         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
9643         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
9644         * cfglayout.c (verify_insn_chain): Likewise.
9645         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
9646         debug_clast_stmt, debug_generated_program): Likewise.
9647         * ggc-page.c (debug_print_page_list): Likewise.
9648         * tree-ssa-ter.c (debug_ter): Likewise.
9649         * graphite-dependences.c (debug_pddr): Likewise.
9650         * sched-deps.c (debug_ds): Likewise.
9651         * tree-ssa.c (verify_ssa): Likewise.
9652         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
9653         debug_scattering_functions, debug_iteration_domains, debug_pdr,
9654         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
9655         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
9656         * tree-inline.c (debug_find_tree): Likewise.
9657         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
9658         debug_ppl_powerset_matrix): Likewise.
9659         * var-tracking.c (debug_dv): Likewise.
9660         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
9661         * cfgloop.c (verify_loop_structure): Likewise.
9662         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
9663         * c-common.c (verify_sequence_points): Likewise.
9664         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
9665         debug_candidates, debug_rgn_dependencies): Likewise.
9666         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
9667         * debug_constraint_graph, debug_solution_for_var,
9668         debug_sa_points_to_info): Likewise.
9669         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
9670         Likewie.
9671         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
9672         debug_loops, debug_loop, debug_loop_num): Likewise.
9673         * passes.c (debug_pass): Likewise.
9674         (dump_properties): Likewise; add cfglayout property.
9675         (debug_properties): Likewise.
9676         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
9677         * varpool.c (debug_varpool): Likewise.
9678         * regcprop.c (debug_value_data): Likewise.
9679         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
9680         debug_immediate_uses_for): Likewise.
9681
9682 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9683
9684         PR bootstrap/44315
9685         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
9686         Filter out insn-flags.h.
9687
9688 2010-05-29  Jan Hubicka  <jh@suse.cz>
9689
9690         * cgraph.h (struct varpool_node_set_def,
9691         struct cgraph_node_set_def): Remove unused AUX pointer.
9692         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
9693         VEC_empty macro.
9694
9695 2010-05-29  Jan Hubicka  <jh@suse.cz>
9696
9697         PR middle-end/44324
9698         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
9699
9700 2010-05-29  Richard Guenther  <rguenther@suse.de>
9701
9702         * lto-streamer.c (cached_bp): New global variable.
9703         (bitpack_create): Return the cached bitpack, if available.
9704         (bitpack_delete): Clear and cache the bitpack, if appropriate.
9705         (bp_pack_value): Remove redundant asserts.
9706
9707 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
9708
9709         PR middle-end/44306
9710         * tree-if-conv.c (is_true_predicate): New.
9711         (is_predicated): Use is_true_predicate.
9712         (add_to_predicate_list): Same.  Do not use unshare_expr.
9713         (add_to_dst_predicate_list): Same.
9714
9715 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
9716
9717         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
9718         field on edges.
9719         (predicate_bbs): Same.
9720         (clean_predicate_lists): Same.
9721         (find_phi_replacement_condition): Do not AND the predicate from
9722         edge->aux.
9723
9724 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
9725
9726         PR bootstrap/44315
9727         * Makefile.in (build/gencondmd.o): Add a missing `\'.
9728
9729 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9730
9731         PR target/44261
9732         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
9733         (negdf2): Adjust expander pattern and use negdf2_slow.
9734         (negsf2): Likewise.
9735
9736 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
9737
9738         * basic-block.h (struct control_flow_graph): Move last_label_uid field
9739         up.
9740         * df.h (struct df_base_ref): Move regno field up.
9741         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
9742         * expr.h (struct separate_ops): Move location field up.
9743         * optabs.h (struct optab_d): Move libcall_basename field down.
9744         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
9745         * config/i386/i386.h (struct machine_function): Convert call_abi field
9746         into a bitfield.  Move cfa field to the end of the structure.
9747
9748 2010-05-29  Jan Hubicka  <jh@suse.cz>
9749
9750         * varpool.c (varpool_get_node): Fix lookup.
9751
9752 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
9753
9754         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
9755         RTL specific prototypes with #ifdef RTX_CODE.
9756         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
9757         * config/spu/t-spu-elf: Fix dependencies.
9758
9759         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
9760
9761 2010-05-29  Mike Stump  <mikestump@comcast.net>
9762
9763         PR bootstrap/44315
9764         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
9765         TM_H when building to avoid dependency loops.
9766
9767 2010-05-29  Jan Hubicka  <jh@suse.cz>
9768
9769         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
9770         refs and body; not the whole node for masters of materialized clones.
9771
9772 2010-05-29  Mike Stump  <mikestump@comcast.net>
9773
9774         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
9775
9776 2010-05-29  Jan Hubicka  <jh@suse.cz>
9777
9778         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
9779         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
9780         use of clone_function_name.
9781         * cgraph.h (cgraph_create_virtual_clone,
9782         cgraph_function_versioning): update prototypes.
9783         (clone_function_name): Declare.
9784         * ipa-cp.c (ipcp_insert_stage): Update call of
9785         cgraph_create_virtual_clone.
9786         * omp-low.c (create_omp_child_function_name): Use
9787         cgraph_create_virtual_clone.
9788         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
9789         (cgraph_function_versioning): Take SUFFIX argument; produce new name
9790         and make decl local.
9791
9792 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
9793
9794         * vec.h: Include statistics.h
9795         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
9796         with VEC_H.
9797
9798 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
9799
9800         * c-lex.c: Do not include c-tree.h.
9801         * c-pretty-print.c: Likewise.
9802         * c-opts.c: Likewise.
9803         * c-gimplify.c: Likewise.
9804         * c-common.c: Likewise.
9805         * c-dump.c: Likewise.  Include c-common.h.
9806
9807 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
9808
9809         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
9810         before including diagnostic-core.h.
9811         (c_cpp_error): New prototype moved from c-tree.h.
9812         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
9813         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
9814         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
9815         (c_cpp_error): Prototype moved to c-common.h.
9816         * Makefile.in: Update dependency for C_COMMON_H.
9817
9818 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
9819
9820         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
9821         * c-common.c (c_register_addr_space): Remove here.
9822         * c-decl.c (c_register_addr_space): Re-add here.
9823
9824 2010-05-28  Mike Stump  <mikestump@comcast.net>
9825
9826         * config/darwin-c.c: Remove c-tree.h include.
9827
9828 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
9829
9830         * gcc.c: Include diagnostic.h.
9831         (error_count): Remove.  All users changed to use errorcount.
9832         (programname): Remove.  All users changed to use progname.
9833         (fancy_abort, internal_error, fatal_error, error, warning, inform,
9834         fnotice): Remove.
9835         (execute): Don't include "Internal error" and bug reporting
9836         information in argument of internal_error call.
9837         (process_command): Don't increment error_count after calling
9838         perror_with_name.
9839         (input_filename): Rename to gcc_input_filename.  All users
9840         changed.
9841         (main): Call diagnostic_initialize.  Register delete_temp_files
9842         with atexit.  Use seen_error to test for errors.
9843         * gcc.h: Include diagnostic-core.h.
9844         (fatal_error, error, warning): Remove.
9845         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
9846         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
9847         (gcc.o): Update dependencies.
9848
9849 2010-05-28  Jeff Law  <law@redhat.com>
9850
9851         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
9852         functions.
9853         * ira.h (ira_bad_reload_regno): Declare
9854         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
9855
9856         * ira-color.c (update_curr_costs): Free updated hard reg costs.
9857         (ira_reassign_conflict_allocnos): Remove bogus asserts.
9858         (allocno_reload_assign): Likewise.
9859
9860 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
9861
9862         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
9863         build1_stat.
9864
9865 2010-05-28  Richard Guenther  <rguenther@suse.de>
9866
9867         PR lto/44312
9868         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
9869         Stream fixed-point constants mode.
9870         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
9871         and TYPE_PRECISION.
9872         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
9873         Stream fixed-point constants mode.
9874         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
9875         and TYPE_PRECISION.
9876
9877 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
9878
9879         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
9880         only place it was called from.
9881         (number_of_latch_executions): Do not return chrec_dont_know when the
9882         may_be_zero is a runtime condition: instead, return a COND_EXPR
9883         including the may_be_zero condition.
9884         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
9885         of nb_iterations.
9886         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
9887         COND_EXPRs.
9888
9889 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
9890
9891         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
9892         generate COND_EXPRs for degenerate_phi_result.
9893
9894 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
9895
9896         PR middle-end/44293
9897         * tree-if-conv.c (if_convertible_loop_p): Check the
9898         if-convertibility of phi nodes in non predicated BBs.
9899
9900 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
9901
9902         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
9903
9904 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
9905
9906         PR driver/15303
9907         * gcc.c (inform, warning, inform): New functions.
9908         (fatal_ice): Rename to internal_error; change cmsgid parameter to
9909         gmsgid.  All callers changed.
9910         (notice): Rename to fnotice; add parameter fp.  All callers changed.
9911         (fatal_error): Rename to fatal_signal.  All users changed.
9912         (fatal): Rename to fatal_error; change cmsgid parameter to
9913         gmsgid.  All callers changed.
9914         (process_command): Use warning instead of error for warnings.
9915         (end_going_arg): Don't use _() around argument of error.
9916         (do_spec_1): Use inform for message from %n specs.  Use warning
9917         instead of error for warnings.
9918         (main): Use inform for comparison messages.  Use warning for
9919         message about unused linker input.
9920         (error): Increment error_count.  Print "error: ".
9921         * gcc.h (fatal): Change to fatal_error.
9922         (warning): Declare.
9923         * config/darwin-driver.c (darwin_default_min_version): Use warning
9924         instead of fprintf for warnings.
9925         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
9926
9927 2010-05-28  Julian Brown  <julian@codesourcery.com>
9928
9929         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
9930         (*thumb2_addsi3_compare0_scratch): New.
9931         * config/arm/constraints.md (Pv): New.
9932         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
9933         for ARM mode only.
9934         (*addsi3_compare0_scratch): Likewise.
9935
9936 2010-05-28  Jan Hubicka  <jh@suse.cz>
9937
9938         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
9939         check.
9940         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
9941         only on local statics.
9942
9943 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
9944
9945         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
9946
9947 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
9948
9949         PR bootstrap/44314
9950         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
9951         (OPTION_GLIBC): Define.
9952
9953 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
9954
9955         PR debug/41048
9956         * dwarf2out.c (double_int_type_size_in_bits): New function.
9957         (round_up_to_align): Change first argument and return value to
9958         double_int.
9959         (field_byte_offset): Work internally on double_ints.
9960
9961         PR target/43636
9962         * builtins.c (expand_movstr): Use a temporary pseudo instead
9963         of target even when target is not NULL and not const0_rtx, but
9964         fails movstr predicate.
9965         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
9966
9967 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
9968
9969         * final.c (rest_of_clean_state): Use %m in errors instead of
9970         strerror (errno).
9971         * gengtype.c (read_input_list, close_output_files): Use xstrerror
9972         instead of strerror.
9973         * toplev.c (process_options): Use %m in errors instead of strerror
9974         (errno).
9975         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
9976         (errno).
9977
9978 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
9979
9980         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
9981         (ix86_canonical_va_list_type): Make static.  Add declaration.
9982         (ix86_enum_va_list): Make static.  Reindent.
9983         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
9984         (ix86_canonical_va_list_type): Ditto.
9985         (ix86_enum_va_list): Ditto.
9986
9987 2010-05-28  Richard Guenther  <rguenther@suse.de>
9988
9989         * lto-wrapper.c (run_gcc): With -save-temps generate a
9990         user-visible ltrans filename.  Fixup ltrans unit numbering.
9991
9992 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
9993
9994         * c-common.c (c_common_nodes_and_builtins): Replace use
9995         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
9996         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
9997         to ix86_enum_va_list.
9998         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
9999         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
10000         (TARGET_ENUM_VA_LIST_P): Add hook description.
10001         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
10002         * target.h (gcc_target): Add enum_va_list hook.
10003
10004         PR bootstrap/44299
10005         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
10006         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
10007         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
10008
10009 2010-05-28  Alan Modra  <amodra@gmail.com>
10010
10011         PR target/44266
10012         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
10013         emit_library_call machinery to set up __tls_get_addr calls.
10014
10015 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10016
10017         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
10018
10019 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
10020
10021         Revert fix for PR c++/44188
10022         * c-common.c (is_typedef_decl): Revert the moving of  this
10023         definition ...
10024         * tree.c (is_typedef_decl): ... here.
10025         (typdef_variant_p): Revert the moving of this  definition
10026         here from gcc/cp/tree.c.
10027         * c-common.h (is_typedef_decl): Revert the moving of this
10028         declaration ...
10029         * tree.h (is_typedef_decl): ... here.
10030         (typedef_variant_p): Revert the moving of this  declaration here
10031         from gcc/cp/cp-tree.h
10032         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
10033         (gen_tagged_type_die): Revert the splitting out of ...
10034         (gen_type_die_with_usage): ... this function. Revert the anonymous
10035         tagged type handling.
10036         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
10037         typedefs naming anonymous tagged types.
10038
10039 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
10040
10041         * config/rs6000/rs6000-modes.def (PSImode): Delete.
10042
10043 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
10044
10045         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
10046         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
10047         throughout.
10048         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
10049         "xer" to "ca".
10050         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
10051         XER_REGS to CA_REGS throughout.
10052         * config/rs6000/rs6000.h: Same.
10053         (ADDITIONAL_REGISTER_NAMES): Add "xer".
10054         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
10055         that mode_iterator "P" is the size for arithmetic carries as well.
10056         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
10057
10058 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
10059
10060         PR bootstrap/44255
10061         * combine.c (struct rtx_subst_pair): Define unconditionally.
10062         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
10063         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
10064         Call make_compound_operation on pair->to.
10065         (propagate_for_debug): Don't call make_compound_operation here.
10066         Always use simplify_replace_fn_rtx.
10067
10068 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
10069
10070         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
10071         * config/xtensa/xtensa.c (override_options): Check
10072           TARGET_FORCE_NO_PIC and set flag_pic.
10073         * config/xtensa/xtensa.opt: Document -mforce-no-pic
10074
10075 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
10076
10077         PR bootstrap/44299
10078         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
10079         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
10080
10081 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
10082
10083         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
10084         toplev.h.
10085         * diagnostic.c: Don't include toplev.h.
10086         (progname): Define.  Moved from toplev.c.
10087         (seen_error): New function.
10088         * diagnostic.h: Include diagnostic-core.h.
10089         (diagnostic_t, emit_diagnostic): Don't declare here.
10090         * toplev.c (progname): Move to toplev.c.
10091         (emit_debug_global_declarations, compile_file, finalize,
10092         do_compile, toplev_main): Use seen_error.
10093         * toplev.h: Include diagnostic-core.h.
10094         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
10095         internal_error, warning, warning_at, error, error_n, error_at,
10096         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
10097         verbatim, fnotice, progname): Move to diagnostic-core.h.
10098         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
10099         (expand_builtin_expect): Use seen_error.
10100         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
10101         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
10102         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
10103         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
10104         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
10105         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
10106         errorcount for errors.
10107         * c-opts.c (c_common_finish): Use seen_error.
10108         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
10109         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
10110         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
10111         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
10112         (get_coverage_counts): Use seen_error.
10113         * dwarf2out.c (dwarf2out_finish): Use seen_error.
10114         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
10115         gimplify_body): Use seen_error.
10116         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
10117         * ipa-pure-const.c (gate_pure_const): Use seen_error.
10118         * ipa-reference.c (gate_reference): Use seen_error.
10119         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
10120         * lambda-code.c: Include diagnostic-core.h instead of
10121         diagnostic.h.
10122         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
10123         * lto-compress.c: Include diagnostic-core.h instead of
10124         diagnostic.h.
10125         * lto-section-in.c: Include diagnostic-core.h instead of
10126         diagnostic.h.
10127         * lto-streamer-out.c: Include diagnostic-core.h instead of
10128         diagnostic.h.
10129         * lto-streamer.c: Include diagnostic-core.h instead of
10130         diagnostic.h.
10131         (gate_lto_out): Use seen_error.
10132         * matrix-reorg.c: Include diagnostic-core.h instead of
10133         diagnostic.h.
10134         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
10135         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
10136         (gate_expand_omp, lower_omp_1): Use seen_error.
10137         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
10138         (rest_of_decl_compilation, rest_of_type_compilation,
10139         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
10140         * tree-cfg.c (label_to_block_fn): Use seen_error.
10141         * tree-inline.c (optimize_inline_calls): Use seen_error.
10142         * tree-mudflap.c (mudflap_finish_file): Use
10143         seen_error.
10144         * tree-optimize.c (gate_all_optimizations,
10145         gate_all_early_local_passes, gate_all_early_optimizations): Use
10146         seen_error.
10147         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
10148         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
10149         (varpool_remove_unreferenced_decls,
10150         varpool_assemble_pending_decls): Use seen_error.
10151         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
10152         (TOPLEV_H, DIAGNOSTIC_H): Update.
10153         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
10154         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
10155         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
10156         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
10157         coverage.o, lambda-code.o): Update dependencies.
10158
10159 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
10160
10161         PR c++/44188
10162         * c-common.c (is_typedef_decl): Move this definition ...
10163         * tree.c (is_typedef_decl): ... here.
10164         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
10165         * c-common.h (is_typedef_decl): Move this declaration ...
10166         * tree.h (is_typedef_decl): ... here.
10167         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
10168         * dwarf2out.c (is_naming_typedef_decl): New function.
10169         (gen_tagged_type_die): Split out of ...
10170         (gen_type_die_with_usage): ... this function. When an anonymous
10171         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
10172         is emitted for the typedef.
10173         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
10174         anonymous tagged types.
10175
10176 2010-05-27  Jason Merrill  <jason@redhat.com>
10177
10178         * print-tree.c (debug_vec_tree): New fn.
10179         (print_vec_tree): New fn.
10180         * tree.h: Declare them.
10181         * gdbinit.in (pvt): New command.
10182
10183         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
10184
10185         * gdbinit.in (pdd): New command.
10186
10187 2010-05-27  Jan Hubicka  <jh@suse.cz>
10188
10189         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
10190         (update_caller_keys): Return early if there are no callers;
10191         only update fibheap when decresing the key.
10192         (update_callee_keys): Avoid recursion.
10193         (decide_inlining_of_small_functions): When badness does not match;
10194         re-insert into fibheap.
10195
10196 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
10197
10198         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
10199         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
10200         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
10201         (ALL_HOST_OBJS): Now a union of the above two.
10202         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
10203         all files in ALL_HOST_FRONTEND_OBJS.
10204         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
10205
10206         * c-common.c: Pretend to be a backend file by undefining
10207         IN_GCC_FRONTEND (still need rtl.h here).
10208
10209 2010-05-27  Jan Hubicka  <jh@suse.cz>
10210
10211         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
10212         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
10213
10214 2010-05-27  Jan Hubicka  <jh@suse.cz>
10215
10216         * sched-ebb.c: Rename struct deps to struct deps_desc.
10217         * ddg.c: Likewise.
10218         * sel-sched-ir.c: Likewise.
10219         * sched-deps.c: Likewise.
10220         * sched-int.h: Likewise.
10221         * sched-rgn.c: Likewise.
10222
10223 2010-05-27  Jon Beniston  <jon@beniston.com>
10224
10225         PR 43726
10226         * config/lm32/lm32.h: Remove definition of
10227         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
10228
10229 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
10230
10231         PR lto/44230
10232         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
10233
10234 2010-05-27  Richard Guenther  <rguenther@suse.de>
10235
10236         PR tree-optimization/44284
10237         * tree-vect-stmts.c (vectorizable_assignment): Handle
10238         sign-changing conversions as simple copy.
10239
10240 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
10241
10242         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
10243         Bionic C library.
10244         (__gthread_active_p): Check for pthread_create if compiling against
10245         Bionic C library.
10246
10247 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
10248
10249         Support compilation for Android platform.  Reimplement -mandroid.
10250
10251         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
10252         (*android*): Set ANDROID_DEFAULT.
10253         (arm*-*-linux*): Include linux-android.h.
10254         (arm*-*-eabi*): Don't include previous -mandroid implementation.
10255         * config/arm/eabi.h: Remove, move Android-specific parts ...
10256         * config/linux-android.h: ... here.  New file.
10257         * config/arm/eabi.opt: Rename to ...
10258         * config/linux-android.opt: ... this.
10259         (mandroid): Allow -mno-android option.  Initialize based on
10260         ANDROID_DEFAULT.
10261         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
10262         Move logic to corresponding LINUX_TARGET_* macros.
10263         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
10264         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
10265         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
10266         Android definitions.
10267         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
10268         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
10269         Document.
10270
10271 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
10272
10273         Add support for Bionic C library
10274
10275         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
10276         macro.
10277         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
10278         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
10279
10280         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
10281         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
10282         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
10283         to support multiple C libraries.  Handle Bionic.
10284         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
10285         (BIONIC_DYNAMIC_LINKER64): Define.
10286         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
10287         Update.
10288         (TARGET_HAS_SINCOS): Enable for Bionic.
10289
10290         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
10291         the last option specified on command line take effect.
10292         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
10293         (mbionic): New.
10294         (mglibc, muclibc): Update.
10295
10296         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
10297         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
10298         DEFAULT_LIBC.
10299
10300         * doc/invoke.texi (-mglibc, -muclibc): Update.
10301         (-mbionic): Document.
10302
10303 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10304
10305         * c-common.h (c_register_addr_space): Add prototype.
10306         (ADDR_SPACE_KEYWORD): Remove.
10307         * c-common.c (c_register_addr_space): New function.
10308         (c_addr_space_name): Reimplement.
10309         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
10310
10311         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
10312         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
10313
10314         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
10315         Remove TARGET_ADDR_SPACE_KEYWORDS.
10316
10317 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
10318
10319         * input.c: New file.
10320         * input.h (main_input_filename): Move declaration to toplev.h.
10321         * toplev.c (input_location, line_table): Move to input.c
10322         * toplev.h (main_input_filename): Move declaration from input.h.
10323         * tree.c (expand_location): Move to input.c.
10324         * Makefile.in (OBJS-common): Add input.o.
10325         (input.o): Add dependencies.
10326
10327 2010-05-27  Richard Guenther  <rguenther@suse.de>
10328
10329         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
10330         for non-existant files.
10331         (fork_execute): Mark args_name file as deleted.
10332
10333 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
10334
10335         PR bootstrp/44287
10336         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
10337         (narrow_signed_type): Likewise.
10338
10339 2010-05-26  Jan Hubicka  <jh@suse.cz>
10340
10341         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
10342         edge only when checking is enabled; check using former_clone_of;
10343         check inline clones too.
10344         (cgraph_materialize_clone): Record former_clone_of pointer.
10345         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
10346         combining redirections; dump args_to_skip bitmap
10347         (cgraph_materialize_all_clones): Do no redirection here.
10348         * ipa-inline.c (inline_transform): Do redirection here.
10349         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
10350         cheking only).
10351
10352 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
10353
10354         * config/avr/avr-c.c: Do not include regs.h.
10355         Include cpplib.h for cpp_define and tree.h for c-common.h.
10356         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
10357         * config/avr/t-avr: Fix dependencies for avr-c.o.
10358
10359 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
10360
10361         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
10362         string instead of SYMBOL_REF rtx.
10363         * rtl.h (set_stack_check_libfunc): Move prototype from here...
10364         * libfuncs.h: ...to here.  Adjust for explow.c change.
10365
10366 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
10367
10368         * pretty-print.c: Don't include ggc.h.
10369         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
10370         (identifier_to_locale): Use them for allocation.
10371         * pretty-print.h (identifier_to_locale_alloc,
10372         identifier_to_locale_free): Declare.
10373         * toplev.c (alloc_for_identifier_to_locale): New.
10374         (general_init): Set identifier_to_locale_alloc and
10375         identifier_to_locale_free.
10376         * Makefile.in (pretty-print.o): Update dependencies.
10377
10378 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
10379
10380         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
10381         pointer types if they have different alignment or mode.
10382
10383 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
10384
10385         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
10386         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
10387         * config/sparc/sparc-protos.h (function_value): Remove declaration.
10388         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
10389         sparc_function_value_regno_p): New functions.
10390         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
10391         TARGET_FUNCTION_VALUE_REGNO_P): Define.
10392         (function_value): Rename to...
10393         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
10394         argument to 'outgoing'.
10395         (function_arg_record_value, function_arg_union_value,
10396         function_arg_vector_value): Update comment.
10397
10398 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
10399
10400         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
10401         (fde_needed_for_eh_p): New predicate.
10402         (output_call_frame_info): Use it throughout to decide whether FDEs
10403         are needed for EH purpose.
10404         (dwarf2out_begin_prologue): Reorder assignments.
10405
10406 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10407
10408         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
10409         special case loop->header.
10410         (is_predicated): New.
10411         (if_convertible_loop_p): Call it.
10412
10413 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10414
10415         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
10416         iterator in parameter.  Do not generate code during the analysis.
10417         (tree_if_convert_cond_stmt): Removed.
10418         (tree_if_convert_stmt): Removed.
10419         (predicate_bbs): New.
10420         (if_convertible_loop_p): Call predicate_bbs.
10421         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
10422         now contains all the analysis part.
10423
10424 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10425
10426         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
10427         statements in the analysis part.
10428         (tree_if_convert_stmt): Update comment.
10429         (remove_conditions_and_labels): New.
10430         (combine_blocks): Call remove_conditions_and_labels.
10431         (tree_if_conversion): Update comment.
10432
10433 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10434
10435         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
10436         than 2 predecessors or more than 2 successors.
10437
10438 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10439
10440         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
10441         of loops in which the data dependence analysis fails.
10442
10443 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10444
10445         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
10446         CDI_POST_DOMINATORS.
10447         (tree_if_conversion): Same.
10448
10449 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10450
10451         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
10452
10453 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
10454
10455         * tree-if-conv.c: Update copyright years.  Fix comments.
10456         Fix indentation.
10457
10458 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
10459
10460         * builtin-types.def (BT_INT128): New primitive type.
10461         (BT_UINT128): Likewise.
10462         * c-common.c (c_common_r): Add __int128 keyword.
10463         (c_common_type_for_size): Handle __int128.
10464         (c_common_type_for_mode): Likewise.
10465         (c_common_signed_or_unsigned_type): Likewise.
10466         (c_common_nodes_and_builtins): Add builtin type
10467         if target supports 128-bit integer scalar.
10468         * c-common.h (enum rid): Add RID_INT128.
10469         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
10470         if target supports 128-bit integer scalar.
10471         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
10472         (finish_declspecs): Likewise.
10473         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
10474         (c_token_starts_declspecs): Likewise.
10475         (c_parser_declspecs): Likewise.
10476         (c_parser_attributes): Likewise.
10477         (c_parser_objc_selector): Likewise.
10478         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
10479         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
10480         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
10481         * tree.c (make_or_reuse_type): Likewise.
10482         (make_unsigned_type): Likewise.
10483         (build_common_tree_nodes_2): Likewise.
10484         * tree.h (enum integer_type_kind): Add itk_int128 and
10485         itk_unsigned_int128.
10486         (int128_integer_type_node): New define.
10487         (int128_unsigned_type_node): New define.
10488         * doc/extend.texi: Add documentation about __int128 type.
10489
10490 2010-05-26  Richard Guenther  <rguenther@suse.de>
10491
10492         * tree-ssa-sccvn.c (copy_nary): Adjust.
10493         (copy_phis): Rename to ...
10494         (copy_phi): ... this.  Adjust.
10495         (copy_references): Rename to ...
10496         (copy_reference): ... this.  Adjust.
10497         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
10498         result into the valid table.
10499
10500 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
10501
10502         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
10503         insn-config.h, insn-codes.h, recog.h, and optabs.h.
10504
10505 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10506
10507         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
10508
10509 2010-05-26  Richard Guenther  <rguenther@suse.de>
10510
10511         * opts.c (common_handle_option): Handle OPT_Ofast.
10512
10513 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
10514
10515         * diagnostic.c: Don't include opts.h.
10516         (permissive_error_option): Define.
10517         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
10518         for classify_diagnostic.  Don't use memset for
10519         classify_diagnostic.  Initialize new and recently added fields.
10520         (diagnostic_classify_diagnostic): Use context->n_opts instead of
10521         N_OPTS.
10522         (diagnostic_report_diagnostic): Pass context parameter to
10523         diagnostic_report_warnings_p.  Use option_enabled and option_name
10524         hooks from context.
10525         (emit_diagnostic): Use permissive_error_option.
10526         (permerror): Likewise.
10527         * diagnostic.h: Don't include options.h.
10528         (struct diagnostic_context): Add n_opts, opt_permissive,
10529         inhibit_warnings, warn_system_headers, option_enabled and
10530         option_name fields.  Change classify_diagnostic to a pointer.
10531         * opts-diagnostic.h: New file.
10532         * opts.c: Include opts-diagnostic.h.
10533         (common_handle_option): Set global_dc fields for -Wfatal-errors,
10534         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
10535         (option_name): New function.
10536         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
10537         (c_common_handle_option): Set global_dc->permissive for
10538         -fpermissive.
10539         * c-common.c (c_cpp_error): Save and restore
10540         global_dc->warn_system_headers, not variable warn_system_headers.
10541         * toplev.c: Include opts-diagnostic.h.
10542         (general_init): Update call to diagnostic_initialize.  Set
10543         global_dc->show_column, global_dc->option_enabled and
10544         global_dc->option_name.
10545         (process_options): Don't set global_dc fields here.
10546         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
10547         (diagnostic.o, opts.o, toplev.o): Update dependencies.
10548
10549 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10550
10551         * config/picochip/picochip.md (movsi): Split a movsi from a
10552         const after reload.
10553
10554 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10555
10556         * ggc-zone.c: Update copyright year.
10557         (poison_region): Mark memory for Valgrind as undefined before
10558         memset () call and inaccessible afterwards.
10559         (ggc_pch_total_size): Change type of i to int.
10560
10561 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10562
10563         * ggc-common.c (ggc_free_overhead): Allow empty slot.
10564
10565 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
10566
10567         * ggc-common.c: Update copyright year.
10568         (ggc_rlimit_bound): Remove prototype.  Compile only if
10569         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
10570         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
10571         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
10572         (ggc_min_heapsize_heuristic): Likewise.
10573
10574 2010-05-26  Richard Guenther  <rguenther@suse.de>
10575
10576         PR rtl-optimization/44164
10577         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
10578         no-common access-path disambiguation.
10579         (indirect_ref_may_alias_decl_p): Adjust.
10580         (indirect_refs_may_alias_p): Likewise.
10581         (refs_may_alias_p_1): Likewise.
10582
10583 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
10584
10585         * c-typeck.c: Do not include expr.h.
10586
10587 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
10588
10589         * rtl.h (decl_default_tls_model): Move prototype from here...
10590         * output.h: ...to here.
10591         * c-decl.c: Do not include rtl.h.
10592         * c-pragma.c: Likewise.
10593         * c-parser.c: Likewise.
10594         * c-gimplify.c: Likewise.  And also not hard-reg-set.
10595         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
10596         FIXME note for it.  Add a FIXME note for expr.h.
10597         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
10598         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
10599         defined.
10600
10601 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
10602
10603         PR target/44199
10604         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
10605         or total_size is larger than red zone size for non-V4 ABI, emit a
10606         stack_tie resp. frame_tie insn before stack pointer restore.
10607         * config/rs6000/rs6000.md (frame_tie): New insn.
10608
10609 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10610
10611         * function.h (struct function): Add can_throw_non_call_exceptions bit.
10612         * lto-streamer-in.c (input_function): Stream it in.
10613         * lto-streamer-out.c (output_function): Stream it out.
10614         * function.c (allocate_struct_function): Set it.
10615         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
10616         for flag_non_call_exceptions.
10617         * cfgbuild.c (control_flow_insn_p): Likewise.
10618         (make_edges): Likewise.
10619         * cfgexpand.c (expand_stack_alignment): Likewise.
10620         * combine.c (distribute_notes): Likewise.
10621         * cse.c (cse_extended_basic_block): Likewise.
10622         * except.c (insn_could_throw_p): Likewise.
10623         * gcse.c (simple_mem): Likewise.
10624         * ipa-pure-const.c (check_call): Likewise.
10625         (check_stmt ): Likewise.
10626         * lower-subreg.c (lower-subreg.c): Likewise.
10627         * optabs.c (emit_libcall_block): Likewise.
10628         (prepare_cmp_insn): Likewise.
10629         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
10630         * postreload.c (rest_of_handle_postreload): Likewise.
10631         * reload1.c (reload_as_needed): Likewise.
10632         (emit_input_reload_insns): Likewise.
10633         (emit_output_reload_insns): Likewise.
10634         (fixup_abnormal_edges): Likewise.
10635         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
10636         * store-motion.c (find_moveable_store): Likewise.
10637         * tree-eh.c (stmt_could_throw_p): Likewise.
10638         (tree_could_throw_p): Likewise.
10639         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
10640         * config/arm/arm.c (arm_expand_prologue): Likewise.
10641         (thumb1_expand_prologue): Likewise.
10642         * config/rx/rx.md (cbranchsf4): Likewise.
10643         (cmpsf): Likewise.
10644         * config/s390/s390.c (s390_emit_prologue): Likewise.
10645         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
10646         (inline_forbidden_into_p): New predicate.
10647         (expand_call_inline): Use it to forbid inlining.
10648         (tree_can_inline_p): Likewise.
10649
10650 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
10651
10652         * config/i386/i386-c.c: Do not include rtl.h.
10653         * config/i386/t-i386: Update dependencies.
10654
10655 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
10656
10657         * attribs.c: Do not include rtl.h.
10658         * Makefile.in: Update dependencies.
10659
10660 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
10661
10662         * double-int.h (double_int_and): New.
10663         * combine.c (try_combine): Clean up, use double_int_* and
10664         immed_double_int_const functions.
10665
10666 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10667
10668         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
10669         stderr to /dev/null instead of grep -q.
10670         * configure: Regenerate.
10671
10672 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
10673
10674         * Makefile.in (EXCEPT_H): Fix typo.
10675
10676 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
10677
10678         * ira-build.c (update_conflict_hard_reg_costs): New.
10679         (ira_build): Call update_conflict_hard_reg_costs.
10680
10681 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
10682
10683         PR debug/41371
10684         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
10685         ENABLE_CHECKING.
10686         (intersect_loc_chains): Walk the s2var's loc_chain together
10687         with s1node chain as long as the locations are equal, don't
10688         call find_loc_in_1pdv in that case.
10689
10690         PR debug/42801
10691         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
10692         (copy_bind_expr): ... instead of here.
10693         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
10694         if the block hasn't been remapped.
10695         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
10696         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
10697
10698 2010-05-25  Richard Guenther  <rguenther@suse.de>
10699
10700         PR middle-end/44069
10701         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
10702         out-of-bounds array accesses.
10703
10704 2010-05-25  Richard Guenther  <rguenther@suse.de>
10705
10706         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
10707         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
10708         (run_gcc): Re-organize to make cleanup easier.
10709
10710 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10711
10712         * config/s390/s390.c (optimization_options): Fix and move the
10713         flag_prefetch_loop_arrays override ...
10714         (override_options): ... here.
10715
10716 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
10717
10718         * diagnostic.c: Don't include plugin.h.
10719         (diagnostic_report_diagnostic): Don't handle plugins specially
10720         here.  Pass context to internal_error callback.
10721         * diagnostic.h (struct diagnostic_context): Add context parameter
10722         to internal_error callback.
10723         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
10724         * plugin.h (struct diagnostic_context): Declare.
10725         (warn_if_plugins, plugins_internal_error_function): Declare.
10726         * toplev.c (general_init): Set global_dc->internal_error.
10727         * Makefile.in (diagnostic.o): Update dependencies.
10728
10729 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
10730
10731         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
10732         * config/rs6000/t-darwin64: New.
10733         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
10734         build crt2.
10735
10736 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
10737
10738         PR 44203
10739         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
10740         match the original (and intended) behaviour before r159557.  This
10741         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
10742         in two ways.
10743
10744 2010-05-25  Richard Guenther  <rguenther@suse.de>
10745
10746         * doc/invoke.texi: Document -Ofast.
10747         * target.h (struct gcc_target): Add handle_ofast.
10748         * target-def.h (TARGET_HANDLE_OFAST): Add.
10749         (TARGET_INITIALIZER): Adjust.
10750         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
10751         * common.opt (Ofast): Add.
10752
10753 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
10754
10755         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
10756         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
10757
10758 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
10759
10760         PR target/43610
10761         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
10762         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
10763         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
10764         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
10765
10766 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
10767
10768         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
10769         DW_OP_minus with negated offset instead of DW_OP_plus.
10770         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
10771
10772 2010-05-25  Wei Guozhi  <carrot@google.com>
10773
10774         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
10775         tst instruction and a new alternative.
10776         * config/arm/constraints.md (Pu): New constraint.
10777
10778 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
10779
10780         * function.c (assign_stack_local_1): Initialize variable
10781         to avoid warning when bootstrapping at -O3.
10782
10783 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
10784
10785         * configure.ac (all_lang_makefiles): Remove everything related to it.
10786         * configure: Regenerate.
10787         * Makefile.in: Fix reference to ada Make-lang.in.
10788         Remove support for LANG_MAKEFILES.
10789
10790 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
10791             Sandra Loosemore  <sandra@codesourcery.com>
10792
10793         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
10794         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
10795         description.  Add arm_neon_fp16_ok.
10796         (Add Options): Add arm_neon and arm_neon_fp16.
10797
10798 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
10799
10800         * diagnostic.c: Don't include flags.h.
10801         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
10802         context parameters.  Check flags in the context passed as a parameter.
10803         (diagnostic_build_prefix): Add context parameter.  Check
10804         show_column flag in context.
10805         (diagnostic_action_after_output): Check fatal_errors flag in context.
10806         (diagnostic_report_current_module): Check show_column flag in context.
10807         (default_diagnostic_starter): Update call to
10808         diagnostic_build_prefix.
10809         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
10810         (emit_diagnostic): Pass context to permissive_error_kind.
10811         (permerror): Pass context to permissive_error_kind.
10812         * diagnostic.h (struct diagnostic_context): Add show_column,
10813         pedantic_errors, permissive and fatal_errors fields.
10814         (diagnostic_build_prefix): Update prototype.
10815         * langhooks.c
10816         * toplev.c (process_options): Set flags in global_dc from
10817         flag_show_column, flag_pedantic_errors, flag_permissive,
10818         flag_fatal_errors.
10819         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
10820         to diagnostic_build_prefix.
10821         * Makefile.in (diagnostic.o): Update dependencies.
10822
10823 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10824
10825         * config/i386/ia32intrin.h (__crc32q): Define only if
10826         __SSE4_2__ is defined.
10827
10828 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
10829
10830         PR target/44132
10831         PR middle-end/43602
10832         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
10833         DECL_VISIBILITY_SPECIFIED.
10834         (emutls_decl): Set DECL_PRESERVE_P and copy
10835         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
10836         (emutls_finalize_control_var): New callback.
10837         (emutls_finish): Finalize emutls control variables.
10838         * toplev.c (compile_file): Move the call to emutls_finish ()
10839         before varpool_assemble_pending_decls ().
10840
10841 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
10842
10843         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
10844         added to the preprocessor condition.
10845
10846 2010-05-24  Paul Brook  <paul@codesourcery.com>
10847
10848         * gengtype-lex.l: Add HARD_REG_SET.
10849         * expr.c (expand_expr_real_1): Record writes to hard registers.
10850         * function.c (rtl_data): Add asm_clobbers.
10851         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
10852         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
10853         Use crtl->asm_clobbers.
10854
10855 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10856
10857         * doc/makefile.texi (Makefile): Mention stages 'profile'
10858         and 'feedback' for profiledbootstrap.
10859
10860 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
10861
10862         PR target/44245
10863         * config/i386/i386.c (def_builtin): Properly check
10864         OPTION_MASK_ISA_64BIT.
10865
10866 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
10867
10868         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
10869         typedefs with different but compatible types.  Allow duplicate
10870         typedefs with the same type except for pedantic non-C1X, but give
10871         warning for variably modified types.
10872         * c-typeck.c (tagged_types_tu_compatible_p,
10873         function_types_compatible_p, type_lists_compatible_p,
10874         comptypes_internal): Add parameter different_types_p; set
10875         *different_types_p for different but compatible types.  All
10876         callers changed.
10877         (comptypes_check_different_types): New.
10878         * c-tree.h (comptypes_check_different_types): Declare.
10879
10880 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
10881
10882         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
10883         * jump.c: Include basic-block.h.
10884         * profile.c: Likewise.
10885         * tree-profile.c: Likewise.
10886         * coverage.c: Likewise.
10887         * basic-block.h (optimize_function_for_size_p): Move to function.h.
10888         (optimize_function_for_speed_p): Likewise.
10889         * function.h (optimize_function_for_size_p,
10890         optimize_function_for_speed_p): Moved here from basic-block.h.
10891         * Makefile.in: Update dependencies.
10892
10893 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10894
10895         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
10896         before calling make; allow override through $MAKE.
10897         * doc/invoke.texi (Optimize Options): Document override.
10898
10899 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
10900
10901         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
10902         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
10903         (rs6000_mode_dependent_address_ptr): Make static.
10904         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
10905         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
10906         Remove.
10907
10908 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
10909
10910         PR target/43869
10911         * config/i386/i386.c: Make sure that the correct regparm is passed.
10912
10913 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
10914
10915         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
10916         * sbitmap.c: ...to here to internalize sbitmap element access.
10917         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
10918         Explain why basic-block.h is included.
10919         * function.h: Include tm.h for CUMULATIVE_ARGS.
10920         * Makefile.in: Update dependencies.
10921
10922 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
10923
10924         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
10925         New core types.
10926         * sbitmap.h (struct sbitmap_def): Do not typedef here.
10927         * sbitmap.c: Include sbitmap.h.
10928         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
10929         hard-reg-set.h.  Split everything related to regsets out from here...
10930         * regset.h: ...to here.  New file.
10931         * df.h: Include regset.h and sbitmap.h.
10932         * tree-flow.h: Likewise.
10933         * cfgloop.h: Likewise.
10934         * except.h: Do not include sbitmap.h.  Include hashtab.h.
10935         * cgraph.h: Include vec.h and function.h.
10936         * reload.h (struct insn_chain): Change types of live_throughout
10937         and dead_or_set from regset_head to bitmap_head.
10938         (compute_use_by_pseudos): Be defined also if regset.h is not included.
10939         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
10940         spilled_regs from regset_head to bitmap_head to avoid dependency
10941         in regset.h.
10942         * sel-sched-ir.h: Include regset.h.
10943         * reload.c: Include df.h before reload.h.
10944         * caller-save.c: Likewise.
10945         * reload1.c: Likewise.
10946         * ira.c: Likewise.
10947         (mark_elimination): Update type of r to bitmap, consistent with
10948         DF_LR_IN.
10949         * dominance.c: Include bitmap.h.
10950         * modulo-sched.c: Include df.h.
10951         * cfganal.c: Include bitmap.h and sbitmap.h.
10952         * cfgbuild.c: Include sbitmap.h.
10953         * lcm.c: Include sbitmap.h.
10954         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
10955         * domwalk.c: Include sbitmap.h, exclude ggc.h.
10956         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
10957         * cselib.c: Include bitmap.h.
10958         * tree-optimize.c: Include regset.h.
10959         * stmt.c: Include bitmap.h.
10960         * Makefile.in: Update dependencies.
10961
10962 2010-05-22  Jan Hubicka  <jh@suse.cz>
10963
10964         * cgraph.h (struct varpool_node): Add same_comdat_group.
10965         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
10966         pointer.
10967         (output_varpool): Update call of lto_output_varpool_node.
10968         (input_varpool): Read same_comdat_group pointer.
10969         (input_varpool_1): Fixup same_comdat_group pointer.
10970         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
10971         group is needed, all are.
10972         * varpool.c (varpool_remove_node): Remove node from same comdat group
10973         linklist too.
10974         (varpool_analyze_pending_decls): Walk same comdat groups.
10975
10976 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
10977
10978         * rtl.h (union rtunion_def): Remove rt_bit member.
10979         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
10980         * print-rtl (print_rtx): Do not print the member.
10981         * gengtype.c (adjust_field_rtx_def): Do not handle it.
10982         * gengenrtl.c (type_from_format): Likewise.
10983         (accessor_from_format): Likewise.
10984
10985 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
10986
10987         * dbgcnt.c: Include toplev.h instead of errors.h.
10988         * ira-emit.c: Don't include errors.h.
10989         * ira.c: Include toplev.h instead of errors.h.
10990         * lto-compress.c: Include toplev.h instead of errors.h.
10991         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
10992         ira.o, dbgcnt.o): Update dependencies.
10993
10994 2010-05-22  Richard Guenther  <rguenther@suse.de>
10995
10996         * gimple.c (gimple_types_compatible_p): Check type qualifications
10997         before merging pointer to complete and pointer to incomplete type.
10998         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
10999         we use our own resolution algorithm.  The gold linker plugin
11000         doesn't do the job we want it to do here.
11001
11002 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
11003
11004         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11005         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11006         (sparc_mode_dependent_address_p): New function.
11007
11008 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
11009
11010         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
11011
11012         * timevar.c: Do not include any core headers.
11013         (timevar_print): De-i18n-ize.
11014         (print_time): Likewise.
11015         * timevar.h (timevar_push, timevar_pop): Make inline functions.
11016
11017 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
11018
11019         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
11020         langhooks-def.h.
11021         (diagnostic_initialize): Initialize x_data not last_function.
11022         (diagnostic_report_current_function): Move to tree-diagnostic.c.
11023         (default_diagnostic_starter): Call
11024         diagnostic_report_current_module not
11025         diagnostic_report_current_function.
11026         (diagnostic_report_diagnostic): Initialize x_data not
11027         abstract_origin.
11028         (verbatim): Likewise.
11029         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
11030         x_data.
11031         (struct diagnostic_context): Change last_function to x_data.
11032         (diagnostic_auxiliary_data): Replace with
11033         diagnostic_context_auxiliary_data and
11034         diagnostic_info_auxiliary_data.
11035         (diagnostic_last_function_changed, diagnostic_set_last_function,
11036         diagnostic_report_current_function): Move to tree-diagnostic.h.
11037         (print_declaration, dump_generic_node, print_generic_stmt,
11038         print_generic_stmt_indented, print_generic_expr,
11039         print_generic_decl, debug_c_tree, dump_omp_clauses,
11040         print_call_name, debug_generic_expr, debug_generic_stmt,
11041         debug_tree_chain, default_tree_printer): Move to
11042         tree-pretty-print.h.
11043         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
11044         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
11045         gimple-pretty-print.h.
11046         * pretty-print.c: Don't include tree.h
11047         (pp_base_format): Don't handle %K here.
11048         (pp_base_tree_identifier): Move to tree-pretty-print.c.
11049         * pretty-print.h (text_info): Change abstract_origin to x_data.
11050         (pp_tree_identifier, pp_unsupported_tree,
11051         pp_base_tree_identifier): Move to tree-pretty-print.h.
11052         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
11053         tree-pretty-print.h: New files.
11054         * tree-pretty-print.c: Include tree-pretty-print.h.
11055         (percent_K_format): New.  Moved from pretty-print.c.
11056         (pp_base_tree_identifier): Move from pretty-print.c.
11057         * c-objc-common.c: Include tree-pretty-print.h.
11058         (c_tree_printer): Handle %K here.
11059         * langhooks.c: Include tree-diagnostic.h.
11060         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
11061         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
11062         (default_tree_printer): Handle %K using percent_K_format.
11063         (general_init): Use default_tree_diagnostic_starter.
11064         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
11065         (free_lang_data): Use default_tree_diagnostic_starter.
11066         * c-pretty-print.c: Include tree-pretty-print.h.
11067         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
11068         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
11069         * dwarf2out.c: Include tree-pretty-print.h.
11070         * except.c: Include tree-pretty-print.h.
11071         * gimple-pretty-print.c: Include tree-pretty-print.h and
11072         gimple-pretty-print.h.
11073         * gimplify.c: Include tree-pretty-print.h.
11074         * graphite-poly.c: Include tree-pretty-print.h and
11075         gimple-pretty-print.h.
11076         * ipa-cp.c: Include tree-pretty-print.h.
11077         * ipa-inline.c: Include gimple-pretty-print.h.
11078         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
11079         * ipa-pure-const.c: Include gimple-pretty-print.h.
11080         * ipa-struct-reorg.c: Include tree-pretty-print.h and
11081         gimple-pretty-print.h.
11082         * ipa-type-escape.c: Include tree-pretty-print.h.
11083         * print-rtl.c: Include tree-pretty-print.h.
11084         * print-tree.c: Include gimple-pretty-print.h.
11085         * sese.c: Include tree-pretty-print.h.
11086         * tree-affine.c: Include tree-pretty-print.h.
11087         * tree-browser.c: Include tree-pretty-print.h.
11088         * tree-call-cdce.c: Include gimple-pretty-print.h.
11089         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
11090         * tree-chrec.c: Include tree-pretty-print.h.
11091         * tree-data-ref.c: Include tree-pretty-print.h and
11092         gimple-pretty-print.h.
11093         * tree-dfa.c: Include tree-pretty-print.h.
11094         * tree-if-conv.c: Include tree-pretty-print.h and
11095         gimple-pretty-print.h.
11096         * tree-inline.c: Include tree-pretty-print.h.
11097         * tree-into-ssa.c: Include tree-pretty-print.h and
11098         gimple-pretty-print.h.
11099         * tree-nrv.c: Include tree-pretty-print.h.
11100         * tree-object-size.c: Include tree-pretty-print.h and
11101         gimple-pretty-print.h.
11102         * tree-outof-ssa.c: Include tree-pretty-print.h and
11103         gimple-pretty-print.h.
11104         * tree-parloops.c: Include tree-pretty-print.h and
11105         gimple-pretty-print.h.
11106         * tree-predcom.c: Include tree-pretty-print.h and
11107         gimple-pretty-print.h.
11108         * tree-scalar-evolution.c: Include tree-pretty-print.h and
11109         gimple-pretty-print.h.
11110         * tree-sra.c: Include tree-pretty-print.h.
11111         * tree-ssa-address.c: Include tree-pretty-print.h.
11112         * tree-ssa-alias.c: Include tree-pretty-print.h.
11113         * tree-ssa-ccp.c: Include tree-pretty-print.h and
11114         gimple-pretty-print.h.
11115         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
11116         * tree-ssa-copy.c: Include tree-pretty-print.h and
11117         gimple-pretty-print.h.
11118         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
11119         * tree-ssa-dce.c: Include tree-pretty-print.h and
11120         gimple-pretty-print.h.
11121         * tree-ssa-dom.c: Include tree-pretty-print.h and
11122         gimple-pretty-print.h.
11123         * tree-ssa-dse.c: Include gimple-pretty-print.h.
11124         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
11125         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
11126         * tree-ssa-live.c: Include tree-pretty-print.h and
11127         gimple-pretty-print.h.
11128         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
11129         gimple-pretty-print.h.
11130         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
11131         gimple-pretty-print.h.
11132         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
11133         gimple-pretty-print.h.
11134         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
11135         gimple-pretty-print.h.
11136         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
11137         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
11138         * tree-ssa-operands.c: Include tree-pretty-print.h and
11139         gimple-pretty-print.h.
11140         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
11141         gimple-pretty-print.h.
11142         * tree-ssa-pre.c: Include tree-pretty-print.h and
11143         gimple-pretty-print.h.
11144         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
11145         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
11146         gimple-pretty-print.h.
11147         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
11148         gimple-pretty-print.h.
11149         * tree-ssa-sink.c: Include gimple-pretty-print.h.
11150         * tree-ssa-ter.c: Include tree-pretty-print.h and
11151         gimple-pretty-print.h.
11152         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
11153         * tree-ssa.c: Include tree-pretty-print.h and
11154         gimple-pretty-print.h.
11155         * tree-stdarg.c: Include gimple-pretty-print.h.
11156         * tree-switch-conversion.c: Include gimple-pretty-print.h.
11157         * tree-tailcall.c: Include tree-pretty-print.h and
11158         gimple-pretty-print.h.
11159         * tree-vect-data-refs.c: Include tree-pretty-print.h and
11160         gimple-pretty-print.h.
11161         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
11162         gimple-pretty-print.h.
11163         * tree-vect-loop.c: Include tree-pretty-print.h and
11164         gimple-pretty-print.h.
11165         * tree-vect-patterns.c: Include gimple-pretty-print.h.
11166         * tree-vect-slp.c: Include tree-pretty-print.h and
11167         gimple-pretty-print.h.
11168         * tree-vect-stmts.c: Include tree-pretty-print.h and
11169         gimple-pretty-print.h.
11170         * tree-vectorizer.c: Include tree-pretty-print.h.
11171         * tree-vrp.c: Include tree-pretty-print.h and
11172         gimple-pretty-print.h.
11173         * value-prof.c: Include tree-pretty-print.h and
11174         gimple-pretty-print.h.
11175         * var-tracking.c: Include tree-pretty-print.h.
11176         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
11177         (tree-diagnostic.o): New dependencies.
11178         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
11179         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
11180         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
11181         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
11182         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
11183         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
11184         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
11185         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
11186         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
11187         tree-ssa-address.o, tree-ssa-loop-niter.o,
11188         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
11189         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
11190         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
11191         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
11192         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
11193         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
11194         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
11195         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
11196         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
11197         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
11198         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
11199         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
11200         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
11201         tree-switch-conversion.o, var-tracking.o, value-prof.o,
11202         cfgexpand.o, pretty-print.o): Update dependencies.
11203
11204 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
11205
11206         * tree-ssa-structalias.c: Remove tm_p.h from include.
11207
11208 2010-05-21  Jeff Law  <law@redhat.com>
11209
11210         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
11211
11212 2010-05-21  Jason Merrill  <jason@redhat.com>
11213
11214         * tree-eh.c (cleanup_is_dead_in): New.
11215         (lower_try_finally): Don't generate a dead cleanup region.
11216         (lower_cleanup): Likewise.
11217
11218 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
11219
11220         PR debug/44223
11221         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
11222         unchain each use from the cyclic next_regno_use chain first.
11223
11224 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
11225
11226         * real: Do not include gmp.h, mpfr.h, and mpc.h.
11227         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
11228         (real_value_negate, real_value_abs): New prototypes.
11229         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
11230         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
11231         new include file for interface between MPFR and REAL_VALUE_TYPE.
11232         * real.c: Include realmpfr.h.
11233         (real_arithmetic2): Remove legacy function.
11234         (real_value_negate): New.
11235         (real_value_abs): New.
11236         (mfpr_from_real, real_from_mpfr): Move from here...
11237         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
11238         * builtins.c: Include realmpfr.h.
11239         * fold-const.c: Include realmpfr.h.
11240         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
11241         (fold_negate_const): Likewise.
11242         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
11243         * toplev.c: Include realmpfr.h.
11244         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
11245         and real_value_negate.
11246         * fixed-value.c (check_real_for_fixed_mode): Likewise.
11247         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
11248         (vfp3_const_double_index): Likewise.
11249         (arm_print_operand): Likewise.
11250         * Makefile.in: Update dependencies.
11251
11252 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11253
11254         * config/s390/s390.c (override_options): Increase the default
11255         of max-completely-peel-times.
11256
11257 2010-05-21  Julian Brown  <julian@codesourcery.com>
11258             Mark Mitchell  <mark@codesourcery.com>
11259
11260         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
11261         sibling calls for Thumb-1.
11262         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
11263         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
11264         Thumb-2.
11265         (*call_insn, *call_value_insn): Don't use for Thumb-2.
11266         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
11267         for Thumb-2.
11268         (return): New expander.
11269         (*arm_return): New name for ARM return insn.
11270         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
11271
11272 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
11273
11274         * config.gcc (sparc64-*-rtems*): New target.
11275
11276 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
11277
11278         * tree.c (build_function_decl_skip_args): Fix grammar.
11279         (build_function_type_list_1): Fix typos, adjust formatting.
11280
11281 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
11282
11283         * tree.h: Include real.h and fixed-value.h as basic datatypes.
11284         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
11285         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
11286         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
11287         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
11288         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
11289         tree-pretty-print.c, tree-loop-distribution.c,
11290         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
11291         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
11292         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
11293         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
11294         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
11295         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
11296         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
11297         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
11298         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
11299         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
11300         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
11301         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
11302         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
11303         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
11304         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
11305         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
11306         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
11307         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
11308         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
11309         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
11310         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
11311         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
11312         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
11313         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
11314         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
11315         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
11316         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
11317         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
11318         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
11319         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
11320         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
11321         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
11322         config/score/score7.c, config/score/score.c, config/arm/arm.c,
11323         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
11324         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
11325         config/bfin/bfin.c: Clean up redundant includes.
11326         * Makefile.in: Update accordingly.
11327
11328 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
11329
11330         PR middle-end/44204
11331         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
11332         statement has no arguments.
11333
11334 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
11335
11336         PR/44139
11337         * varasm.c (emutls_decl): Merge attributes to new decl.
11338
11339 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
11340
11341         PR middle-end/44101
11342         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
11343         around the uniquized constructor if its type requires a conversion.
11344
11345 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
11346
11347         PR debug/44205
11348         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
11349         at -O0 goto_locus of any of the incoming edges differs from
11350         goto_locus of outgoing edge, or gimple_location of any of the
11351         labels differs.
11352
11353 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
11354
11355         * ira.c (ira_non_ordered_class_hard_regs): Define.
11356         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
11357         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
11358         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
11359         cost of unaligned hard regs when allocating multi-reg pseudos.
11360
11361 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
11362
11363         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
11364         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
11365         for TARGET_NO_FLOAT.
11366         * config/mips/mips.c (mips_file_start): Expand conditional expression
11367         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
11368         (mips_override_options): Move -mno-float override -msoft-float and
11369         -mhard-float.
11370         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
11371         Condition(TARGET_SUPPORTS_NO_FLOAT).
11372         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
11373         __mips_no_float here.
11374         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
11375         (TARGET_SUPPORTS_NO_FLOAT): Define.
11376         * config/mips/sdemtk.opt: Delete.
11377
11378 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
11379
11380         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
11381
11382 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
11383
11384         PR target/43733
11385         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
11386         * configure: Regenerate.
11387         * config.in: Regenerate.
11388         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
11389         instead of sahf only for 64bit targets.
11390
11391 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
11392
11393         PR debug/44178
11394         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
11395         setup_ref_regs for DEBUG_INSNs.
11396
11397 2010-05-20  Jan Hubicka  <jh@suse.cz>
11398
11399         PR middle-end/44197
11400         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
11401
11402 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
11403
11404         PR bootstrap/43870
11405         * df-scan.c (df_ref_compare): Stabilize sort.
11406
11407 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
11408
11409         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
11410         argument.  Don't use DW_OP_piece if offset is non-zero,
11411         put offset into second DW_OP_bit_piece argument.
11412         (dw_sra_loc_expr): Adjust callers.  For memory expressions
11413         compute offset.
11414
11415 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
11416
11417         PR target/44202
11418         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
11419         settings for 16-bit-constant "addo" alternative.
11420
11421 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
11422
11423         * config/mips/mips-dsp.md (add<DSPV:mode>3,
11424         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
11425
11426         PR target/43764
11427         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
11428         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
11429         Use it.
11430
11431 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
11432
11433         * diagnostic.c (FLOAT, FFS): Don't undefine.
11434         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
11435         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
11436         include ordering.
11437
11438 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
11439
11440         * combine.c (propagate_for_debug): Call make_compound_operation
11441         on the source value.
11442         (try_combine): When implementing a split chosen by find_split_point,
11443         either copy i2src or set it to null.  Assert that i2src is not null
11444         before substituting into CALL_INSN_FUNCTION_USAGE.
11445
11446 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
11447
11448         * double-int.h (double_int_ior): New function.
11449         * tree.h (build_int_cst_wide_type): Remove.
11450         * tree.c (build_int_cst_wide_type): Remove.
11451         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
11452         of build_int_cst_wide_type.
11453         * stor-layout.c (set_sizetype): (Ditto.).
11454         * dojump.c (do_jump): Use build_int_cstu instead of
11455         build_int_cst_wide_type.
11456
11457 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
11458
11459         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
11460         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
11461         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
11462         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
11463         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
11464         propagate the 'data' argument to copy_tree_r.
11465         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
11466         Propagate 'data' argument to walk_tree.
11467         (copy_if_shared): New function.
11468         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
11469         (unmark_visited): New function.
11470         (unshare_body): Call copy_if_shared instead of doing it manually.
11471         (unvisit_body): Call unmark_visited instead of doing it manually.
11472
11473 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
11474
11475         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
11476         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
11477         * hooks.c: Likewise.
11478         * target-def.h (TARGET_FOLD_BUILTIN): Define to
11479         hook_tree_tree_int_treep_bool_null.
11480         * target.h (struct gcc_target): Update signature of fold_builtin
11481         field.
11482         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
11483         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
11484         instead of the call expression.
11485         (fold_builtin_call_array): Pass n and argarray directly.
11486         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
11487         consing a list.
11488         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
11489         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
11490         `i' and use it in place of `arity'.
11491         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
11492         Dereference `args' directly.
11493         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
11494
11495 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11496
11497         * doc/sourcebuild.texi (Effective-Target Keywords): Document
11498         3dnow, sse3, sse2.
11499         (Directives): Document optional dg-require-effective-target
11500         selector.
11501
11502 2010-05-19  Richard Guenther  <rguenther@suse.de>
11503
11504         PR lto/44196
11505         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
11506
11507 2010-05-19  Richard Guenther  <rguenther@suse.de>
11508
11509         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
11510         * common.opt (fwhopr=): New.
11511         * opts.c (common_handle_option): Handle OPT_fwhopr.
11512         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
11513         * collect2.c (main): Match -fwhopr*.
11514         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
11515         Execute ltrans stage in parallel when jobs is bigger than 1.
11516
11517 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11518
11519         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
11520         pentiumpro on Solaris 8/x86 with Sun as.
11521         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
11522         hidden alias bug.
11523         (gcc_cv_as_ix86_quad): Check for .quad directive.
11524         * configure: Regenerate.
11525         * config.in: Regenerate.
11526         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
11527
11528 2010-05-19  Martin Jambor  <mjambor@suse.cz>
11529
11530         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
11531         also for indirect edges.  Actual printing moved...
11532         (ipa_print_node_jump_functions_for_edge): ...here.
11533         (ipa_compute_jump_functions): Renamed to
11534         ipa_compute_jump_functions_for_edge and made static.
11535         (ipa_compute_jump_functions): New function.
11536         (make_edge_direct_to_target): Check if the number of arguments on
11537         the newly direct edge is the same as the number of parametrs of
11538         the callee.
11539         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
11540         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
11541         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
11542         analysis functions unconditionally, call the new
11543         ipa_analyze_params_uses on the node instead of every edge.
11544
11545 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
11546
11547         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
11548         to tree.
11549         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
11550         also checks for a constant int vs.  non-constant but
11551         loop-invariant steps.
11552         (find_or_create_group): Change the sort algorithm to only consider
11553         steps that are constant ints.
11554         (idx_analyze_ref): Adopt code to handle a tree instead of a
11555         HOST_WIDE_INT for step.
11556         (gather_memory_references_ref): Handle tree instead of int and be
11557         prepared to see a NULL_TREE.
11558         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
11559         prefetches if the step cannot be calculated at compile time.
11560         (issue_prefetch_ref): Issue prefetches for non-constant but
11561         loop-invariant steps.
11562
11563 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
11564
11565         Revert:
11566         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
11567
11568         * tree.h (build_call_list): Remove.
11569         * tree.c (build_call_list): Remove.
11570
11571 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
11572
11573         * tree.h (build_call_list): Remove.
11574         * tree.c (build_call_list): Remove.
11575
11576 2010-05-18  Jan Hubicka  <jh@suse.cz>
11577
11578         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
11579
11580 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
11581
11582         PR rtl-optimization/43332
11583         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
11584
11585 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
11586
11587         * tree.h (build_int_cstu): Implement as static inline.
11588         * tree.c (build_int_cstu): Remove function.
11589         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
11590         sign extended.
11591
11592 2010-05-18  Richard Guenther  <rguenther@suse.de>
11593
11594         PR lto/44143
11595         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
11596         (debug): Initialize from -save-temps.
11597         (collect_execute): Print command-line when verbose.
11598         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
11599         for ltrans invocation.  Produce -dumpbase flag again.
11600         (process_args): Remove.
11601         (main): Simplify.
11602         * collect2.c (maybe_run_lto_and_relink): Only pass object
11603         files to lto-wrapper.
11604         * gcc.c (LINK_COMMAND_SPEC): Likewise.
11605
11606 2010-05-18  Jan Hubicka  <jh@suse.cz>
11607
11608         * opts.c (decode_options): Do not disable whopr at ipa_cp.
11609         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
11610
11611 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
11612
11613         PR lto/44184
11614         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
11615         in a GIMPLE_ASM.
11616         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
11617         in a GIMPLE_ASM.
11618
11619 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
11620
11621         PR debug/41371
11622         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
11623         rtx_equal_p inline.
11624
11625 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
11626
11627         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
11628         lto-macho as lto_binary_reader.
11629
11630         * darwin.c (darwin_asm_named_section): Do not add assembler comment
11631         after .section directive; just print it before the directive instead.
11632
11633 2010-05-17  Jan Hubicka  <jh@suse.cz>
11634
11635         * cgraph.c (cgraph_create_virtual_clone): Only check
11636         versionable_function_p when not in wpa and checking is enabled.
11637         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
11638         there are no more functions to materialize.
11639
11640 2010-05-17  Jan Hubicka  <jh@suse.cz>
11641
11642         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
11643         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
11644         New functions.
11645         (output_cgraph): Call output_cgraph_opt_summary.
11646         (input_cgrpah): Call input_cgraph_opt_summary.
11647         (output_cgraph_opt_summary_p, output_node_opt_summary,
11648         input_node_opt_summary, input_cgraph_opt_section): New functions.
11649         * lto-section-in.c (lto_section_name): Add cgraphopt.
11650         * tree-inline.c (tree_function_versioning): Handle parm_num.
11651         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
11652         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
11653
11654 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
11655
11656         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
11657         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
11658         the insn to prefetch ratio heuristic to loops with known trip count.
11659
11660 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
11661
11662         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
11663         (schedule_prefetches): Do not generate a prefetch if the unroll factor
11664         is far from what is required by the prefetch.
11665
11666 2010-05-17  Jan Hubicka  <jh@suse.cz>
11667
11668         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
11669         (ipcp_estimate_growth): Likewise.
11670         (ipcp_const_param_count): Likewise.
11671         (ipcp_insert_stage): Likewise.
11672         * ipa-prop.c (visit_load_for_mod_analysis): New function.
11673         (visit_store_addr_for_mod_analysis): Set used flag.
11674         (ipa_detect_param_modifications): Set used flag for SSE params;
11675         update use of walk_stmt_load_store_addr_ops.
11676         (ipa_print_node_params): Print used flag.
11677         (ipa_write_node_info): Stream used flag.
11678         (ipa_read_node_info): Likewise.
11679         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
11680         (ipa_is_param_used): New function.
11681         (lto_ipa_fixup_call_notes): Remove unused declaration.
11682
11683 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11684
11685         PR target/44074
11686         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
11687         * configure: Regenerate.
11688         * config.in: Regenerate.
11689         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
11690         !HAVE_AS_IX86_REP_LOCK_PREFIX.
11691         Don't emit whitespace.
11692         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
11693         (*rep_movsi): Likewise.
11694         (*rep_movsi_rex64): Likewise.
11695         (*rep_movqi): Likewise.
11696         (*rep_movqi_rex64): Likewise.
11697         (*rep_stosdi_rex64): Likewise.
11698         (*rep_stossi): Likewise.
11699         (*rep_stossi_rex64): Likewise.
11700         (*rep_stosqi): Likewise.
11701         (*rep_stosqi_rex64): Likewise.
11702         (*cmpstrnqi_nz_1): Use {%;} after repz.
11703         (*cmpstrnqi_nz_rex_1): Likewise.
11704         (*cmpstrnqi_1): Likewise.
11705         (*cmpstrnqi_rex_1): Likewise.
11706         (*strlenqi_1): Use {%;} after repnz.
11707         (*strlenqi_rex_1): Likewise.
11708         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
11709         (*sync_compare_and_swap<mode>): Likewise.
11710         (sync_double_compare_and_swap<mode>): Likewise.
11711         (*sync_double_compare_and_swapdi_pic): Likewise.
11712         (sync_old_add<mode>): Likewise.
11713         (sync_add<mode>): Likewise.
11714         (sync_sub<mode>): Likewise.
11715         (sync_<code><mode>): Likewise.
11716
11717 2010-05-17  Martin Jambor  <mjambor@suse.cz>
11718
11719         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
11720         otr_token and polymorphic.
11721         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
11722         (cgraph_clone_edge): Copy the above fields.
11723         * tree.c (get_binfo_at_offset): New function.
11724         * tree.h (get_binfo_at_offset): Declare.
11725         * ipa-prop.h (enum jump_func_type): Added known_type jump function
11726         type, reordered items, updated comments.
11727         (union jump_func_value): Added base_type field, reordered fields.
11728         (enum ipa_lattice_type): Moved down in the file.
11729         (struct ipa_param_descriptor): New field polymorphic.
11730         (ipa_is_param_polymorphic): New function.
11731         * ipa-prop.c: Include gimple.h and gimple-fold.h.
11732         (ipa_print_node_jump_functions): Print known type jump functions.
11733         (compute_complex_pass_through): Renamed to...
11734         (compute_complex_assign_jump_func): this.
11735         (compute_complex_ancestor_jump_func): New function.
11736         (compute_known_type_jump_func): Likewise.
11737         (compute_scalar_jump_functions): Create known type and complex ancestor
11738         jump functions.
11739         (ipa_note_param_call): New parameter polymorphic, set the corresponding
11740         flag in the call note accordingly.
11741         (ipa_analyze_call_uses): Renamed to...
11742         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
11743         variable var only in the block where it is used.
11744         (ipa_analyze_virtual_call_uses): New function.
11745         (ipa_analyze_call_uses): Likewise.
11746         (combine_known_type_and_ancestor_jfs): Likewise.
11747         (update_jump_functions_after_inlining): Implemented handling of a
11748         number of new jump function types combination.
11749         (print_edge_addition_message): Removed.
11750         (make_edge_direct_to_target): New function.
11751         (try_make_edge_direct_simple_call): Likewise.
11752         (try_make_edge_direct_virtual_call): Likewise.
11753         (update_call_notes_after_inlining): Renamed to...
11754         (update_indirect_edges_after_inlining): this.  Moved edge creation for
11755         indirect calls to try_make_edge_direct_simple_call, also calls
11756         try_make_edge_direct_virtual_call for virtual calls.
11757         (ipa_print_node_params): Changed the header message.
11758         (ipa_write_jump_function): Stream also known type jump functions.
11759         (ipa_read_jump_function): Likewise.
11760         (ipa_write_indirect_edge_info): Stream new fields in
11761         cgraph_indirect_call_info.
11762         (ipa_read_indirect_edge_info): Likewise.
11763         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
11764         GIMPLE_FOLD_H.
11765
11766 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11767
11768         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
11769
11770 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
11771
11772         * tree.h (CALL_EXPR_ARGS): Delete.
11773         (call_expr_arglist): Delete.
11774         * tree.c (call_expr_arglist): Delete.
11775         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
11776         targetm.fold_builtin.
11777         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
11778         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
11779         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
11780         arglist parameter.  Use CALL_EXPR_ARG.
11781         (picochip_expand_builtin_3op): Likewise.
11782         (picochip_expand_builtin_2opvoid): Likewise.
11783         (picochip_expand_array_get): Likewise.
11784         (picochip_expand_array_put): Likewise.
11785         (picochip_expand_array_testport): Likewise.
11786         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
11787         rather than arglist.
11788         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
11789         CALL_EXPR_ARGS.
11790         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
11791         than TREE_VALUE and TREE_CHAIN.
11792         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
11793         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
11794         the arglist.
11795
11796 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
11797
11798         PR bootstrap/42347
11799         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
11800         to have no fallthru edge.
11801
11802         PR middle-end/44102
11803         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
11804         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
11805         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
11806         add BARRIER after previous bb if needed.
11807
11808 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
11809
11810         * tree.c (build_function_type_list_1): Remove bogus assert condition.
11811
11812 2010-05-17  Alan Modra  <amodra@gmail.com>
11813
11814         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
11815         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
11816         with copy_reg rtx param.
11817         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
11818         Correct cases where code for ABI_V4 did not initialise the reg
11819         used to access frame.  Also leave frame_reg_rtx as sp for large
11820         frames that save no regs.
11821
11822 2010-05-17  Martin Jambor  <mjambor@suse.cz>
11823
11824         PR middle-end/44133
11825         * tree-sra.c (create_access_replacement): New parameter rename, mark
11826         the replaement for renaming only when it is true.
11827         (get_access_replacement): Pass true in the rename parameter of
11828         create_access_replacement.
11829         (get_unrenamed_access_replacement): New function.
11830         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
11831         replacement declaration from it.
11832
11833 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
11834
11835         * function.c (try_fit_stack_local, add_frame_space): New static
11836         functions.
11837         (assign_stack_local_1): Use them.  Look for opportunities to use
11838         space previously wasted on alignment.
11839         * function.h (struct frame_space): New.
11840         (struct rtl_data): Add FRAME_SPACE_LIST member.
11841         * reload1.c (something_was_spilled): New static variable.
11842         (alter_reg): Set it.
11843         (reload): Test it in addition to testing if the frame size changed.
11844
11845 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
11846
11847         * config/s390/s390.c: Define sane prefetch settings and activate
11848         flag_prefetch_loop_arrays on -O3.
11849         * config/s390/s390.h: Declare that read can use write prefetch.
11850
11851 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
11852
11853         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
11854         build.
11855
11856 2010-05-16  Jan Hubicka  <jh@suse.cz>
11857
11858         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
11859         function body; do not check stdarg field of struct function.
11860
11861 2010-05-16  Jan Hubicka  <jh@suse.cz>
11862
11863         * cgraph.c (dump_cgraph_node): Dump versionable flag.
11864         * cgraph.h (cgraph_local_info): Add versionable flag.
11865         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
11866         (ipcp_versionable_function_p): Use it.
11867         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
11868         versionable flag.
11869
11870 2010-05-16  Jan Hubicka  <jh@suse.cz>
11871
11872         * cgraph.c (cgraph_clone_node): Take decl argument and insert
11873         clone into hash when it is different from orig.
11874         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
11875         * cgraph.h (cgraph_clone_node): Update prototype.
11876         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
11877         (lto_cgraph_encoder_delete): Delete body map.
11878         (lto_cgraph_encoder_size): Move to header.
11879         (lto_cgraph_encoder_encode_body_p,
11880         lto_set_cgraph_encoder_encode_body): New.
11881         (lto_output_node): Do not take written_decls argument; output clone_of
11882         pointer.
11883         (add_node_to): Add include_body_argument; call
11884         lto_set_cgraph_encoder_encode_body on master of the clone.
11885         (add_references): Update use of add_node_to.
11886         (compute_ltrans_boundary): Likewise.
11887         (output_cgraph): Do not create written_decls bitmap.
11888         (input_node): Take nodes argument; stream in clone_of correctly.
11889         (input_cgraph_1): Update use of input_node.
11890         * lto-streamer-out.c (lto_output): Use encoder info to decide
11891         what bodies to output.
11892         * ipa-inline.c (cgraph_clone_inlined_nodes,
11893         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
11894         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
11895         (lto_cgraph_encoder_size): Define here.
11896         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
11897         Declare.
11898
11899 2010-05-16  Richard Guenther  <rguenther@suse.de>
11900
11901         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
11902         -fipa-type-escape.
11903         * ipa-type-escape.c (gate_type_escape_vars): Run when
11904         -fipa-struct-reorg runs.
11905         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
11906         * common.opt (fipa-type-escape): Remove.
11907
11908 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
11909
11910         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
11911         (decode_options): Likewise.
11912         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
11913
11914 2010-05-16  Jan Hubicka  <jh@suse.cz>
11915
11916         * ipa.c (function_and_variable_visibility): Also bring local all
11917         aliases.
11918
11919 2010-05-16  Richard Guenther  <rguenther@suse.de>
11920
11921         * alias.c (nonoverlapping_memrefs_p): Remove use of
11922         IPA type-escape information.
11923
11924 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
11925
11926         * c-common.c (c_common_reswords): Add _Static_assert for C.
11927         * c-parser.c (c_token_starts_declaration,
11928         c_parser_next_token_starts_declaration,
11929         c_parser_static_assert_declaration_no_semi,
11930         c_parser_static_assert_declaration): New.
11931         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
11932         Handle static assertions if static_assert_ok.
11933         (c_parser_external_declaration, c_parser_declaration_or_fndef,
11934         c_parser_compound_statement_nostart, c_parser_label,
11935         c_parser_for_statement, c_parser_objc_methodprotolist,
11936         c_parser_omp_for_loop): All callers of
11937         c_parser_declaration_or_fndef changed.
11938         (c_parser_struct_declaration): Handle static assertions.
11939         (c_parser_compound_statement_nostart): Use
11940         c_parser_next_token_starts_declaration and
11941         c_token_starts_declaration to detect start of declarations.
11942         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
11943         Likewise.
11944
11945 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
11946
11947         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11948         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11949         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11950         TARGET_FUNCTION_VALUE_REGNO_P): Define.
11951         (mmix_function_outgoing_value): Rename to...
11952         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
11953         (mmix_function_value_regno_p): Make static.
11954         (mmix_libcall_value): New function.
11955         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
11956         mmix_function_value_regno_p): Remove declaration.
11957
11958 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
11959
11960         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
11961         BUILT_IN_ALLOCA if stack checking is enabled.
11962
11963 2010-05-16  Richard Guenther  <rguenther@suse.de>
11964
11965         * var-tracking.c (vars_copy_1): Inline ...
11966         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
11967         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
11968         (variable_merge_over_cur): Adjust.  Merge asserts.
11969         (variable_merge_over_src): Likewise.
11970         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
11971         (variable_post_merge_new_vals): Merge asserts.
11972         (variable_post_merge_perm_vals): Likewise.
11973         (find_mem_expr_in_1pdv): Likewise.
11974         (dataflow_set_different_value): Remove.
11975         (onepart_variable_different_p): Merge asserts.
11976         (variable_different_p): Likewise.
11977         (dataflow_set_different_1): Inline ...
11978         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
11979         (emit_notes_for_differences_1): Merge asserts.
11980
11981 2010-05-16  Richard Guenther  <rguenther@suse.de>
11982
11983         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
11984         * optabs.c (libfunc_decl_hash): Likewise.
11985         * varasm.c (emutls_decl): Likewise.
11986
11987 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
11988
11989         * c-decl.c: Don't include gimple.h.
11990         (merge_decls): Do not copy gimple_body.
11991
11992 2010-05-15  Jason Merrill  <jason@redhat.com>
11993
11994         * c.opt: Add -fnothrow-opt.
11995
11996 2010-05-15  Jan Hubicka  <jh@suse.cz>
11997
11998         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
11999         analyzed.
12000         * passes.c (ipa_write_summaries): Write all analyzed nodes.
12001
12002 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
12003
12004         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
12005         * Makefile.in: Add it.
12006         Fix all other Makefile dependencies for changes below.
12007         * tree.h: Include it instead of defining VEC primitives here.
12008         * gimple.h: Likewise.
12009         * rtl.h: Likewise.
12010         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
12011         * except.h: Include vecir.h, break dependence on tree.h.
12012
12013         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
12014         Move from here...
12015         * tree-iterator.c: ...to here.
12016         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
12017
12018         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
12019         tm_p.h.
12020         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
12021         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
12022         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
12023         tree-mudflap.h, and target.h.
12024         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
12025         predict.h, tree-inline.h, gimple.h, and langhooks.h.
12026         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
12027         Add FIXME for why gimple.h is still included (should be unnecessary
12028         since GCC 4.5 gimplification unit-at-a-time).
12029         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
12030         * c-pragma.c: Add FIXME for why function.h needs to be included just
12031         for cfun, at front-end level.
12032         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
12033         Do not include ggc.h, but include vecprim.h for VEC(char).
12034         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
12035         Explain why target.h is included.
12036         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
12037         Explain why gimple.h is included.
12038         * c-ppoutput.c: Do not include tm.h.
12039         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
12040         * c-parses.c: Explain why rtl.h is included, and that this (and only
12041         this) is also why tm.h must be included.
12042         Do not include except.h.
12043         * c-lang.c: Do not include ggc.h.
12044
12045 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
12046
12047         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
12048
12049 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
12050
12051         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
12052         unions by default if those structs and unions have no tags.  Do
12053         not condition anonymous struct and unions handling on flag_iso.
12054         Allow anonymous structs and unions for C1X.
12055         (finish_struct): Do not diagnose lack of named fields when
12056         anonymous structs and unions present for C1X.  Accept flexible
12057         array members in structure with anonymous structs or unions but no
12058         directly named fields.
12059         * doc/extend.texi (Unnamed Fields): Update.
12060
12061 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
12062
12063         * gimple.h (compare_field_offset): Rename into...
12064         (gimple_compare_field_offset): ...this.
12065         * gimple.c (compare_field_offset): Rename into...
12066         (gimple_compare_field_offset): ...this.  Compare the full access if
12067         the offset is self-referential.
12068         (gimple_types_compatible_p): Adjust for above renaming.
12069         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
12070         DECL_NONADDRESSABLE_P flag of fields before merging them.
12071
12072 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
12073
12074         * tree.h (ctor_to_list): Delete.
12075         * tree.c (ctor_to_list): Delete.
12076
12077 2010-05-15  Jan Hubicka  <jh@suse.cz>
12078
12079         * ipa-reference.c: Include toplev.h
12080         (is_proper_for_analysis): Only add to all_module_statics
12081         if it is allocated.
12082         (write_node_summary_p, stream_out_bitmap,
12083         ipa_reference_write_optimization_summary,
12084         ipa_reference_read_optimization_summary): New.
12085         (struct ipa_opt_pass_d pass_ipa_reference): Add
12086         optimization summary streaming.
12087         * lto-cgraph.c (referenced_from_this_partition_p,
12088         reachable_from_this_partition_p): New functions.
12089         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
12090         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
12091         * opts.c (decode_options): Enable ipa_reference.
12092         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
12093         * lto-streamer.h (referenced_from_this_partition_p,
12094         reachable_from_this_partition_p): Declare.
12095
12096 2010-05-15  Richard Guenther  <rguenther@suse.de>
12097
12098         PR tree-optimization/44038
12099         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
12100         taking the address of a V_C_E of a constant.
12101
12102 2010-05-14  Jan Hubicka  <jh@suse.cz>
12103
12104         * tree.h (memory_identifier_string): Remove.
12105         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
12106         (ipa_reference_global_vars_info_d): Remove statics_not_read and
12107         statics_not_written.
12108         (ipa_reference_optimization_summary_d): New structure.
12109         (ipa_reference_optimization_summary_t): New type and vector.
12110         (ipa_reference_vars_info_d): Embedd structures instead of using
12111         pointers.
12112         (reference_vars_to_consider): Remove out of GGC space.
12113         (module_statics_escape): Remove.
12114         (global_info_obstack): Rename to ...
12115         (optimization_summary_obstack): ... this one.
12116         (initialization_status_t): Remove.
12117         (memory_identifier_string): Remove.
12118         (get_reference_vars_info): Fix indenting.
12119         (set_reference_vars_info): Likewise.
12120         (get_reference_optimization_summary): New.
12121         (set_reference_optimization_summary): New.
12122         (get_global_reference_vars_info): Remove.
12123         (ipa_reference_get_read_global): Remove.
12124         (ipa_reference_get_written_global): Remove.
12125         (ipa_reference_get_not_read_global): Update.
12126         (ipa_reference_get_not_written_global): Update.
12127         (is_proper_for_analysis): Outlaw addressable.
12128         (propagate_bits): Update for new datastructures.
12129         (analyze_variable): Remove.
12130         (init_function_info): Update for new datastructures.
12131         (clean_function_local_data): Remove.
12132         (clean_function): Remove.
12133         (copy_global_bitmap): Use optimizations_summary_obstack.
12134         (duplicate_node_data): Duplicate optimization summary only.
12135         (remove_node_data): Remove optimization summary only.
12136         (generate_summary): Do not analyze variables; do not compute
12137         module_statics_escape; do not prune solutions by it.
12138         (read_write_all_from_decl): Fix typos in comments.
12139         (propagate): Doscover readonly and nonaddressable first;
12140         update for new datastructures; share global bitmaps.
12141         * ipa-reference.h (ipa_reference_get_read_global,
12142         ipa_reference_get_written_global): Remove.
12143         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
12144         * Makefile.in: Remove ipa-refereference from GT files.
12145
12146 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
12147
12148         PR debug/44112
12149         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
12150         for all SYMBOL_REF_DECLs.
12151
12152 2010-05-14  Jan Hubicka  <jh@suse.cz>
12153
12154         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
12155         (varpool_all_refs_explicit_p): New inline function.
12156         * ipa-reference.c: Update comment.
12157         (module_statics_written): Remove.
12158         (get_static_decl): Remove.
12159         (ipa_init): Do not initialize module_statics_written.
12160         (analyze_function): Likewise.
12161         (generate_summary): Likewise; do not compute module_statics_readonly
12162         and do not update variable flags.
12163         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
12164         * ipa.c: Inlucde flags.h
12165         (cgraph_local_node_p): New.
12166         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
12167         promote functions to local.
12168         (ipa_discover_readonly_nonaddressable_vars): New function.
12169         (function_and_variable_visibility): Use cgraph_local_node_p.
12170         * varpool.c (varpool_finalize_decl): Set force_output for
12171         DECL_PRESERVE_P vars.
12172
12173 2010-05-14  Jan Hubicka  <jh@suse.cz>
12174
12175         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
12176
12177 2010-05-14  Richard Guenther  <rguenther@suse.de>
12178
12179         PR tree-optimization/44119
12180         * tree-ssa-pre.c (eliminate): Properly mark replacement of
12181         a PHI node necessary.
12182
12183 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
12184
12185         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
12186
12187 2010-05-14  Jason Merrill  <jason@redhat.com>
12188
12189         PR c++/44127
12190         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
12191         (gimple_call_set_nothrow): New.
12192         * gimple.c (gimple_build_call_from_tree): Call it.
12193         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
12194
12195         PR c++/44127
12196         * gimplify.c (gimplify_seq_add_stmt): No longer static.
12197         * gimple.h: Declare it.
12198         * gimple.c (gimple_build_eh_filter): No ops.
12199
12200 2010-05-14  Jan Hubicka  <jh@suse.cz>
12201
12202         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
12203         nodes already in queue.
12204         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
12205         re-enqueueing node.
12206
12207 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
12208
12209         PR debug/44136
12210         * cfgexpand.c (expand_debug_expr): If non-memory op0
12211         has BLKmode, return NULL.
12212
12213 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
12214
12215         * config.gcc: Add support for --with-cpu option for bdver1.
12216         * config/i386/i386.h (TARGET_BDVER1): New macro.
12217         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
12218         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
12219         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
12220         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
12221         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
12222         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
12223         (processor_type): Add PROCESSOR_BDVER1.
12224         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
12225         processor_type in config/i386/i386.h.
12226         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
12227         movaps <reg, reg> instead of movapd <reg, reg> when replacing
12228         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
12229         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
12230         to emit packed xor instead of packed double/packed integer
12231         xor for SSE and AVX when moving a zero value.
12232         * config/i386/sse.md: Add check for
12233         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
12234         movapd/movdqa for SSE and AVX.
12235         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
12236         single logical operations i.e and, or and xor instead of packed double
12237         logical operations for SSE and AVX.
12238         * config/i386/i386-c.c (ix86_target_macros_internal):
12239         Add PROCESSOR_BDVER1.
12240         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
12241         (has_fma4, has_xop): New.
12242         * config/i386/i386.c (bdver1_cost): New variable.
12243         (m_BDVER1): New macro.
12244         (m_AMD_MULTIPLE): Add m_BDVER1.
12245         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
12246         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
12247         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
12248         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
12249         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
12250         x86_tune_sse_partial_reg_dependency,
12251         x86_tune_sse_unaligned_load_optimal,
12252         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
12253         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
12254         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
12255         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
12256         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
12257         Enable/disable for bdver1.
12258         (processor_target_table): Add bdver1_cost.
12259         (cpu_names): Add bdver1.
12260         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
12261          processor_alias_table.
12262         (ix86_expand_vector_move_misalign): Change.
12263         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
12264         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
12265         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
12266         of movupd/movdqu for SSE and AVX.
12267         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
12268         (ix86_tune_adjust_cost): Add code for bdver1.
12269         (standard_sse_constant_opcode): Add check for
12270         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
12271         of packed double xor for SSE and AVX.
12272
12273 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
12274
12275         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
12276         result to unsigned.
12277
12278 2010-05-14  Tristan Gingold  <gingold@adacore.com>
12279
12280         * toplev.c (default_debug_hooks): Remove this variable.
12281         (process_options): Remove assignments to default_debug_hooks.
12282
12283 2010-05-14  Martin Jambor  <mjambor@suse.cz>
12284
12285         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
12286         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
12287         * langhooks.h (struct lang_hooks_for_decls): Removed field
12288         fold_obj_type_ref.
12289         * tree.c (free_lang_data): Remove assignment to
12290         lang_hooks.fold_obj_type_ref.
12291         * tree.def (OBJ_TYPE_REF): Update comment.
12292
12293 2010-05-14  Richard Guenther  <rguenther@suse.de>
12294
12295         PR tree-optimization/44124
12296         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
12297
12298 2010-05-14  Alan Modra  <amodra@gmail.com>
12299
12300         PR target/44075
12301         * config/rs6000/rs6000.c (struct machine_function): Reorder
12302         fields for better packing.  Add lr_save_state.
12303         (rs6000_ra_ever_killed): Return lr_save_state if set.
12304         (rs6000_emit_eh_reg_restore): Set lr_save_state.
12305
12306 2010-05-13  Jan Hubicka  <jh@suse.cz>
12307
12308         * varpool.c (decide_is_variable_needed): Drop code checking
12309         TREE_SYMBOL_REFERENCED.
12310
12311 2010-05-13  Jan Hubicka  <jh@suse.cz>
12312
12313         * final.c (output_addr_const): Do not call mark_decl_referenced.
12314         * cgraphunit.c (process_function_and_variable_attributes): Use
12315         mark_needed_node dirrectly.
12316         (assemble_thunk): Do not call mark_decl_referenced.
12317
12318 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
12319
12320         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
12321
12322 2010-05-13  Jeff Law  <law@redhat.com>
12323
12324         * ira-conflicts.c (print_allocno_conflicts): New function broken out
12325         from...
12326         (print_conflicts): Call print_allocno_conflicts.
12327
12328 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
12329
12330         PR debug/44104
12331         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
12332         if it is NULL.
12333
12334 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
12335
12336         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
12337         t-mingw-w64 or t-mingw-w32 for multilib configuration.
12338         * config/i386/t-mingw-w32: New.
12339         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
12340
12341 2010-05-13  Martin Jambor  <mjambor@suse.cz>
12342
12343         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
12344         gimple-fold.c).
12345         * gimple-fold.c (get_base_binfo_for_type): New function.
12346         (gimple_get_relevant_ref_binfo): Likewise.
12347         (gimple_fold_obj_type_ref_known_binfo): Likewise.
12348         (gimple_fold_obj_type_ref): Likewise.
12349         (fold_gimple_call): Simplify condition for folding virtual calls
12350         and call gimple_fold_obj_type_ref.
12351         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
12352         (gimple_fold_obj_type_ref_known_binfo): Likewise.
12353
12354 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
12355
12356         * config/rs6000/rs6000-protos.h
12357         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
12358         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
12359         (rs6000_debug_mode_dependent_address)
12360         (rs6000_mode_dependent_address_ptr): Likewise.
12361
12362 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
12363
12364         PR debug/43983
12365         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
12366         by SRA.
12367         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
12368         * tree-sra.c (create_access_replacement): Call unshare_expr before
12369         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
12370         * dwarf2out.c: Include tree-flow.h.
12371         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
12372         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
12373         Handle DW_OP_bit_piece.
12374         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
12375         construct_piece_list, adjust_piece_list): New functions.
12376         (add_var_loc_to_decl): Handle SRA optimized variables.
12377         Adjust for var_loc_note to loc field renaming.
12378         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
12379         in VAR_LOCATION note.
12380         (new_loc_descr_op_bit_piece): New function.
12381         (dw_sra_loc_expr): New function.
12382         (dw_loc_list): Use it.  Don't handle the last range after the
12383         loop, handle it inside of the loop.  Adjust for var_loc_note
12384         to loc field renaming.
12385         (add_location_or_const_value_attribute): Only special case
12386         single entry loc lists if loc is NOTE_P.  Adjust for
12387         var_loc_note to loc field renaming.
12388         (dwarf2out_var_location): Don't set newloc->var_loc_note
12389         and newloc->next here.
12390
12391 2010-05-12  Jan Hubicka  <jh@suse.cz>
12392
12393         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
12394         flag.
12395         * cgraph.h (cgraph_only_called_directly_p,
12396         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
12397         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
12398         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
12399         (assemble
12400         * ipa.c (cgraph_remove_unreachable_nodes): Use
12401         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
12402         flags.
12403         * tree-inline.c (copy_bb): Check address_taken flag.
12404         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
12405         externally_visible flag.
12406
12407 2010-05-12  Jason Merrill  <jason@redhat.com>
12408
12409         PR bootstrap/44048
12410         PR target/44099
12411         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
12412         * sdbout.c (plain_type_1): Likewise.
12413         * dwarf2out.c (is_base_type): Likewise.
12414         (gen_type_die_with_usage): Likewise.  Generate
12415         DW_TAG_unspecified_type for any LANG_TYPE.
12416
12417 2010-05-12  Jan Hubicka  <jh@suse.cz>
12418
12419         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
12420         indrect edges too.
12421         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
12422         (cgraph_clone_edge): Update.
12423         (cgraph_node_remove_callees): Remove indirect calls too.
12424         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
12425         (cgraph_create_indirect_edge): Update prototype.
12426         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
12427         is_proper_for_analysis.
12428         (add_new_function, visited_nodes, function_insertion_hook_holder,
12429         get_local_reference_vars_info, mark_address_taken, mark_address,
12430         mark_load, mark_store, check_asm_memory_clobber, check_call,
12431         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
12432         (ipa_init): Do not initialize visited_nodes;
12433         function_insertion_hook_holder.
12434         (analyze_variable): Rewrite.
12435         (analyze_function): Rewrite.
12436         (copy_local_bitmap): Remove.
12437         (duplicate_node_dat): Do not duplicate local info.
12438         (generate_summary): Simplify to only walk cgraph.
12439         (write_node_summary_p, ipa_reference_write_summary,
12440         ipa_reference_read_summary): Remove.
12441         (propagate): Do not remove function insertion;
12442         generate summary.
12443         (pass_ipa_reference): NULLify summary handling fields.
12444         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
12445         (input_edge): Input ecf_flags.
12446         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
12447         (update_indirect_edges_after_inlining): Ignore edges with unknown
12448         param.
12449
12450 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
12451
12452         * implicit-zee.c: New file.
12453         * tree-pass.h (pass_implicit_zee): Declare.
12454         * passes.c (init_optimization_passes): Add zee pass.
12455         * common.opt (fzee): New flag.
12456         * timevar.def (TV_ZEE): Define.
12457         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
12458         and beyond.
12459         * Makefile.in (implicit-zee.o): Add new build file.
12460
12461 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
12462             Nathan Froyd  <froydnj@codesourcery.com>
12463
12464         * c-common.c (sync_resolve_params): Remove write-only variable.
12465
12466 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
12467
12468         * target.h (struct gcc_target): Add mode_dependent_address_p field.
12469         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
12470         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
12471         * targhooks.c (default_mode_dependent_address_p): New function.
12472         * targhooks.h (default_mode_dependent_address_p): Declare function.
12473         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
12474         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
12475         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
12476         target hook. Change return type to bool.
12477         * recog.h (mode_dependent_address_p): Change return type to bool.
12478
12479 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
12480             Nathan Froyd  <froydnj@codesourcery.com>
12481
12482         * tree-mudflap.c (build_function_type_0, build_function_type_1,
12483         build_function_type_2, build_function_type_3): Remove.
12484         (mudflap_init): Use build_function_type_list.
12485
12486 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
12487             Nathan Froyd  <froydnj@codesourcery.com>
12488
12489         * coverage.c (build_fn_info_value): Call build_constructor instead of
12490         build_constructor_from_list.
12491         (build_ctr_info_value): Likewise.
12492         (build_gcov_info): Likewise.
12493
12494 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
12495
12496         * tree.c (build_constructor): Compute TREE_CONSTANT for the
12497         resultant constructor.
12498         (build_constructor_single): Don't set TREE_CONSTANT.
12499         (build_constructor_from_list): Don't compute TREE_CONSTANT.
12500
12501 2010-05-12  Jan Hubicka  <jh@suse.cz>
12502
12503         * cgraph.h (struct varpool_node): Add aux.
12504         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
12505         * varpool.c (varpool_remove_node): Do not remove initializer.
12506         (varpool_reset_queue): Export.
12507         (varpool_finalize_decl): Volatile vars are forced to be output.
12508         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
12509         replaced decl.
12510         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
12511         process_references, varpool_can_remove_if_no_refs): New functions.
12512         (cgraph_remove_unreachable_nodes): Handle variables too.
12513
12514 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
12515
12516         PR target/44088
12517         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
12518
12519 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
12520
12521         PR middle-end/44085
12522         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
12523         change value of ORT_TASK.
12524         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
12525         (omp_notice_threadprivate_variable): New function.
12526         (omp_notice_variable): Call it for threadprivate variables.
12527         If enclosing ctx is a task, print enclosing task rather than
12528         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
12529         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
12530         if task has untied clause.
12531
12532         PR debug/42278
12533         * dwarf2out.c (base_type_die): Don't add name attribute here.
12534         (modified_type_die): Instead of sizetype use
12535         its underlying original type.  If a DW_TAG_base_type doesn't
12536         have name added, add __unknown__.
12537         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
12538         always call force_type_die instead.
12539
12540 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
12541
12542         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
12543         for __stack_chk_guard.
12544
12545 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
12546
12547         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
12548         don't call start_source_file debug hook here...
12549         (finish_options): ... but here, after outputting predefined and
12550         command line defines and undefs.
12551
12552         PR middle-end/44071
12553         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
12554         no fallthru edge.
12555         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
12556         optimizing away empty bb with no successors, move over its
12557         footer chain to fallthru predecessor.
12558         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
12559         (rtl_split_edge): For asm goto call patch_jump_insn even if
12560         splitting fallthru edge.
12561
12562         PR c++/44059
12563         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
12564         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
12565         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
12566         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
12567         on DW.ref.* decls.
12568
12569         PR c++/44062
12570         * c-parser.c (c_parser_expression): Mark LHS of a comma
12571         expression as read if it is a decl, handled component or
12572         COMPOUND_EXPR with that on the RHS.
12573         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
12574         if it is a decl or handled component.
12575
12576 2010-05-11  Jan Hubicka  <jh@suse.cz>
12577
12578         * lto-symtab.c (lto_symtab_free): New function.
12579         * lto-streamer.h (lto_symtab_free): Declare.
12580
12581 2010-05-11  Jan Hubicka  <jh@suse.cz>
12582
12583         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
12584         that if function is needed it is reachable.
12585         (lto_output_node): See if it the function is reachable or referenced.
12586         (output_cgraph): Update call of lto_output_node.
12587         * lto-streamer.h (reachable_from_other_partition_p): Declare.
12588
12589 2010-05-11  Jan Hubicka  <jh@suse.cz>
12590
12591         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
12592         Mark as used.
12593
12594 2010-05-11  Jan Hubicka  <jh@suse.cz>
12595
12596         PR tree-optimize/44063
12597         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
12598         queue.
12599         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
12600         limits.
12601         (estimate_function_body_sizes): Compute sizes even when disregarding.
12602
12603 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
12604
12605         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
12606
12607 2010-05-11  Jan Hubicka  <jh@suse.cz>
12608
12609         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
12610         into every boundary.
12611
12612 2010-05-11  Jan Hubicka  <jh@suse.cz>
12613
12614         * matrix-reorg.c (matrix_reorg): Rebuild edges.
12615
12616 2010-05-11  Jan Hubicka  <jh@suse.cz>
12617
12618         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
12619         lto_streamer_cache_delete): Put nodes into heap.
12620         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
12621         heap.
12622
12623 2010-05-11  Jan Hubicka  <jh@suse.cz>
12624
12625         * cgraphbuild.c (cgraph_rebuild_references): New.
12626         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
12627         out extern inlines.
12628         * cgraph.h (cgraph_rebuild_references): Declare.
12629         * tree-inline.c (tree_function_versioning): Use it.
12630         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
12631
12632 2010-05-11  Jan Hubicka  <jh@suse.cz>
12633
12634         * cgraph.c: Include ipa-utils.h
12635         (cgraph_create_virtual_clone): Update references.
12636         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
12637
12638 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
12639
12640         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
12641         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
12642         cache size.
12643
12644 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
12645
12646         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
12647
12648 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
12649
12650         * gcc.c (execute): For -### don't quote arguments that
12651         contain just alphanumerics and _/-. characters.
12652         * doc/invoke.texi: Document that change for -###.
12653
12654         PR debug/44023
12655         * df-problems.c (struct dead_debug): Add to_rescan field.
12656         (dead_debug_init): Clear to_rescan field.
12657         (dead_debug_finish): Rescan all debug insns in to_rescan
12658         bitmap and free the bitmap.
12659         (dead_debug_insert_before): Instead of rescanning debug insns
12660         immediately queue their rescanning until dead_debug_finish.
12661         (df_note_bb_compute): After dead_debug_add do continue instead
12662         of break.
12663
12664 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
12665
12666         PR debug/44028
12667         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
12668         clear also INSN_REG_USE_LIST.
12669
12670 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12671
12672         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
12673
12674 2010-05-10  Jan Hubicka  <jh@suse.cz>
12675
12676         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
12677         commited change.
12678
12679 2010-05-10  Jan Hubicka  <jh@suse.cz>
12680
12681         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
12682         Allocate encoders.
12683         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
12684         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
12685         (lto_streamer_cache_create): Init alloc pool.
12686         (lto_streamer_cache_delete): Free alloc pool.
12687         * lto-streamer.h: Include alloc pool.
12688         (lto_streamer_cache_d): Use alloc pool.
12689         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
12690
12691 2010-05-10  Jan Hubicka  <jh@suse.cz>
12692
12693         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
12694         * cgraphbuild.c: Include except.h
12695         (record_type_list, record_eh_tables): New function.
12696         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
12697
12698 2010-05-10  Jan Hubicka  <jh@suse.cz>
12699
12700         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
12701         __frame_dummy_init_array_entry, force_to_data): Attribute as used
12702         rather than unused.
12703
12704 2010-05-10  Michael Matz  <matz@suse.de>
12705
12706         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
12707         (can_reassociate_p): Use FLOAT_TYPE_P.
12708         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
12709         (vect_force_simple_reduction): ... this.
12710         * tree-parloops.c (gather_scalar_reductions): Use
12711         vect_force_simple_reduction.
12712         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
12713         vect_is_simple_reduction, add modify argument, if true rewrite
12714         "a-b" into "a+(-b)".
12715         (vect_is_simple_reduction, vect_force_simple_reduction): New
12716         functions.
12717         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
12718
12719 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
12720             Vladimir Makarov  <vmakarov@redhat.com>
12721
12722         PR rtl-optimization/44012
12723         * ira-build.c (remove_unnecessary_allocnos): Nullify
12724         regno_allocno_map of the removed allocno.
12725
12726 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12727
12728         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
12729         to /dev/null.
12730         * configure: Regenerate.
12731
12732 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12733
12734         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
12735         unused.
12736         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
12737         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
12738         support in Sun ld.
12739         * configure: Regenerate.
12740
12741 2010-05-10  Richard Guenther  <rguenther@suse.de>
12742
12743         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
12744         marked if the entry identifier is marked.
12745
12746 2010-05-10  Richard Guenther  <rguenther@suse.de>
12747
12748         * c-common.c (struct c_common_attributes): Add fnspec attribute.
12749         (handle_fnspec_attribute): New function.
12750         * gimple.h (gimple_call_return_flags): Declare.
12751         (gimple_call_arg_flags): Likewise.
12752         * gimple.c (gimple_call_arg_flags): New function.
12753         (gimple_call_return_flags): Likewise.
12754         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
12755         New argument flags.
12756         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
12757         return value flags.
12758         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
12759         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
12760         main work to ...
12761         (make_heapvar_for): ... this new function.
12762         (handle_rhs_call): Handle fnspec attribute argument specifiers.
12763         (handle_lhs_call): Likewise.
12764         (find_func_aliases): Adjust.
12765
12766 2010-05-10  Richard Guenther  <rguenther@suse.de>
12767
12768         PR tree-optimization/44050
12769         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
12770
12771 2010-05-10  Wei Guozhi  <carrot@google.com>
12772
12773         PR target/42879
12774         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
12775
12776 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
12777
12778         PR c/10676
12779         * c-typeck.c (lookup_field): Take a type directly.  Update
12780         recursive calls.
12781         (build_component_ref): Update call to lookup_field.
12782         (set_init_label): Use lookup_field to find initialized field.
12783         Handle returned list of fields like a sequence of designators.
12784
12785 2010-05-09  Richard Guenther  <rguenther@suse.de>
12786
12787         PR middle-end/44024
12788         * fold-const.c (tree_single_nonzero_warnv_p): Properly
12789         handle &FUNCTION_DECL.
12790
12791 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
12792
12793         PR c/4784
12794         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
12795         structures and unions recursively.
12796         (detect_field_duplicates): Move duplicate detection with a hash to
12797         detect_field_duplicates_hash.  Always use a hash if anonymous
12798         structures or unions are present.
12799         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
12800         give errors.
12801
12802 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
12803
12804         PR target/44046
12805         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
12806         detect Atom, Core 2 and Core i7.
12807
12808 2010-05-09  Richard Guenther  <rguenther@suse.de>
12809
12810         * gcc.c (store_arg): Handle temporary file deletion for
12811         joined arguments.
12812
12813 2010-05-09  Richard Guenther  <rguenther@suse.de>
12814
12815         PR middle-end/44043
12816         * ipa-inline.c (estimate_function_body_sizes): Return after
12817         disregarding inline limits.
12818
12819 2010-05-09  Richard Guenther  <rguenther@suse.de>
12820
12821         * gcc.c (store_arg): Revert last change.
12822
12823 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
12824
12825         PR middle-end/28685
12826         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
12827         (optimize_ops_list): Call it.
12828
12829 2010-05-08  Richard Guenther  <rguenther@suse.de>
12830
12831         PR tree-optimization/44030
12832         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
12833         NECESSARY flag if we propagate from a inserted expression.
12834
12835 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
12836
12837         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
12838         domain types as equal if they are both PLACEHOLDER_EXPRs.
12839
12840 2010-05-08  Richard Guenther  <rguenther@suse.de>
12841
12842         * lto-wrapper.c (run_gcc): Remove linker output from
12843         command line for LTRANS invocation.
12844
12845 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
12846
12847         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
12848         lto-macho as lto_binary_reader.
12849         * target.h (struct gcc_target): New hooks lto_start and lto_end.
12850         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
12851         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
12852         in lto_start and lto_end calls.
12853         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
12854         magic numbers.
12855         (scan_prog_file): Update is_elf_or_coff call.
12856         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
12857
12858         * collect2.c (main): Fix enum comparison.
12859
12860         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
12861         Add prototypes.
12862         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
12863         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
12864         and TARGET_ASM_LTO_END.
12865         * darwin.c: Include obstack.h and lto-streamer.h.
12866         (lto_section_names_offset, lto_section_names_obstack,
12867         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
12868         global variables.
12869         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
12870         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
12871         to a temporary file.
12872         (darwin_asm_lto_end): New function.  Restore asm_out_file.
12873         (darwin_asm_named_section): For LTO sections, replace the name with
12874         the offset of the section name in a string table, and build this
12875         table.
12876         (darwin_file_start): Initialize global vars for LTO support.
12877         (darwin_file_end): If output to asm_out_file was redirected, append it
12878         to the proper asm_out_file here.  Add the section names section.
12879
12880 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
12881
12882         * c-pragma.c (pending_weak_d, pending_weak): New.
12883         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
12884         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
12885         handle_pragma_weak): Update the uses of pending_weaks.
12886
12887 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12888
12889         PR documentation/44016
12890         * doc/standards.texi (Standards): Link to unversioned
12891         cxx0x_status.html page.
12892
12893 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
12894
12895         PR target/43708
12896         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
12897         in addition to TREE_USED, to avoid "set but unused" warnings.
12898
12899 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
12900
12901         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
12902         (is_loop_prefetching_profitable): Do not insert prefetches
12903         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
12904         times the prefetch ahead distance.
12905
12906 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
12907
12908         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
12909         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
12910         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
12911         the unroll_factor.
12912
12913 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
12914
12915         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
12916         a diagnostic info when the insn-to-mem ratio is too small.
12917
12918 2010-05-07  Richard Guenther  <rguenther@suse.de>
12919
12920         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
12921         the linker plugin.
12922         (store_arg): Queue temp_filename for deletion instead of
12923         the whole argument.
12924
12925 2010-05-07  Richard Guenther  <rguenther@suse.de>
12926
12927         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
12928         (run_gcc): Handle LTRANS phase invocation.
12929         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
12930
12931 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
12932
12933         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
12934         this is also meaningful on PARM_DECLs and RESULT_DECLs.
12935
12936 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12937
12938         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
12939
12940 2010-05-07  Richard Guenther  <rguenther@suse.de>
12941
12942         PR tree-optimization/44020
12943         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
12944         code when PRE is not yet initialized.
12945
12946 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12947
12948         * config/mips/dbxmdebug.h: Remove.
12949         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
12950
12951 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
12952
12953         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
12954         with null pointer and also warn about ordered comparison of zero with
12955         pointer if -Wextra.
12956
12957 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
12958
12959         * graphite-blocking.c
12960         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
12961         * graphite-clast-to-gimple.c
12962         (clast_to_gcc_expression): Same.
12963         (precision_for_value): Same.
12964         (precision_for_interval): Same.
12965         (gcc_type_for_interval): Same.
12966         (graphite_create_new_guard): Same.
12967         (compute_bounds_for_level): Same.
12968         (graphite_create_new_loop_guard): Same.
12969         * graphite-interchange.c
12970         (build_linearized_memory_access): Same.
12971         (pdr_stride_in_loop): Same.
12972         (memory_strides_in_loop_1): Same.
12973         (memory_strides_in_loop): Same.
12974         (extend_scattering): Same.
12975         (psct_scattering_dim_for_loop_depth): Same.
12976         (pbb_number_of_iterations): Same.
12977         * graphite-poly.h
12978         (debug_iteration_domains): Same.
12979         * graphite-ppl.c
12980         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
12981         (ppl_set_inhomogeneous_gmp): Same.
12982         (ppl_strip_loop): Same.
12983         (ppl_lexico_compare_linear_expressions): Same.
12984         (ppl_read_polyhedron_matrix): Same.
12985         (ppl_max_for_le_pointset): Same.
12986         * graphite-ppl.h
12987         (ppl_read_polyhedron_matrix): Same.
12988         (tree_int_to_gmp): Same.
12989         (gmp_cst_to_tree): Same.
12990         (ppl_set_inhomogeneous): Same.
12991         (ppl_set_inhomogeneous_tree): Same.
12992         (ppl_set_coef): Same.
12993         (ppl_set_coef_tree): Same.
12994         * graphite-sese-to-poly.c
12995         (build_pbb_scattering_polyhedrons): Same.
12996         (build_scop_scattering): Same.
12997         (scan_tree_for_params_right_scev): Same.
12998         (scan_tree_for_params): Same.
12999         (find_params_in_bb): Same.
13000         (find_scop_parameters): Same.
13001         (add_upper_bounds_from_estimated_nit): Same.
13002         (build_loop_iteration_domains): Same.
13003         (add_condition_to_domain): Same.
13004         (pdr_add_memory_accesses): Same.
13005
13006 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
13007
13008         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
13009         CLooG's value_* macros to their respective mpz_* counterparts.
13010         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
13011         (graphite_create_new_loop_guard): Same.
13012         * graphite-interchange.c (build_linearized_memory_access): Same.
13013         (pdr_stride_in_loop): Same.
13014         (memory_strides_in_loop_1): Same.
13015         (1st_interchange_profitable_p): Same.
13016         * graphite-poly.c (extend_scattering): Same.
13017         (psct_scattering_dim_for_loop_depth): Same.
13018         (pbb_number_of_iterations): Same.
13019         (pbb_number_of_iterations_at_time): Same.
13020         * graphite-poly.h (new_1st_loop): Same.
13021         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
13022         (oppose_constraint): Same.
13023         (insert_constraint_into_matrix): Same.
13024         (ppl_set_inhomogeneous_gmp): Same.
13025         (ppl_set_coef_gmp): Same.
13026         (ppl_strip_loop): Same.
13027         (ppl_lexico_compare_linear_expressions): Same.
13028         (ppl_max_for_le_pointset): Same.
13029         (ppl_min_for_le_pointset): Same.
13030         (ppl_build_realtion): Same.
13031         * graphite-ppl.h (gmp_cst_to_tree): Same.
13032         (ppl_set_inhomogeneous): Same.
13033         (ppl_set_inhomogeneous_tree): Same.
13034         (ppl_set_coef): Same.
13035         (ppl_set_coef_tree): Same.
13036         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
13037         (build_scop_scattering): Same.
13038         (add_value_to_dim): Same.
13039         (scan_tree_for_params_right_scev): Same.
13040         (scan_tree_for_params_int): Same.
13041         (scan_tree_for_params): Same.
13042         (find_params_in_bb): Same.
13043         (find_scop_parameters): Same.
13044         (add_upper_bounds_from_estimated_nit): Same.
13045         (build_loop_iteration_domains): Same.
13046         (create_linear_expr_from_tree): Same.
13047         (add_condition_to_domain): Same.
13048         (pdr_add_memory_accesses): Same.
13049
13050 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
13051             Jason Merrill  <jason@redhat.com>
13052
13053         * c-common.c (c_common_reswords): Add nullptr.
13054         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
13055         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
13056         (gen_type_die_with_usage): Likewise.
13057         * dbxout.c (dbxout_type): Likewise.
13058         * sdbout.c (plain_type_1): Likewise.
13059
13060 2010-05-06  Jason Merrill  <jason@redhat.com>
13061
13062         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
13063         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
13064         ret appropriately.
13065         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
13066
13067         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
13068         stripping WITH_SIZE_EXPR.
13069         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
13070         change.
13071
13072 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13073
13074         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
13075         list of obsolete configurations.
13076         Disabled check for obsolete configurations.
13077         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
13078         Removed support for previous versions.
13079         * config/mips/iris.h: Removed.
13080         * config/mips/iris5.h: Removed.
13081         * config/mips/iris6.h: Merged old iris.h contents.
13082         (TARGET_IRIX): Removed.
13083         (DRIVER_SELF_SPECS): Removed mabi=32.
13084         (IDENT_ASM_OP): Removed undef.
13085         (STARTFILE_SPEC): Removed mabi=32.
13086         (ENDFILE_SPEC): Likewise.
13087         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
13088         (MACHINE_TYPE): Update for IRIX 6.5.
13089         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
13090         TARGET_IRIX by TARGET_IRIX6.
13091         (mips_file_start): Likewise.
13092         (mips_output_external): Remove IRIX 5/6 O32 support.
13093         (mips_output_function_prologue): Likewise.
13094         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
13095         TARGET_IRIX6.
13096         (TARGET_CPU_CPP_BUILTINS): Likewise.
13097         (TARGET_IRIX): Removed.
13098         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
13099         (MULTILIB_DIRNAMES): Removed 32.
13100         (MULTILIB_OSDIRNAMES): Removed ../lib.
13101         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
13102         (Specific, mips-sgi-irix5): Document removal.
13103         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
13104         Remove references to older IRIX 6 releases and the O32 ABI.
13105
13106 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
13107
13108         PR bootstrap/43994
13109         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
13110         instead of DF_REF_REAL_REG.
13111
13112 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
13113
13114         PR target/43888
13115         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
13116         handling to still return true for x64 targets.
13117
13118 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
13119
13120         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
13121
13122 2010-05-06  Jan Hubicka  <jh@suse.cz>
13123
13124         PR tree-optimization/43791
13125         * ipa-inline.c (update_caller_keys): Remove bogus
13126         disregard_inline_limits check.
13127
13128 2010-05-06  Michael Matz  <matz@suse.de>
13129
13130         PR tree-optimization/43984
13131         * tree-ssa-pre.c (inserted_phi_names): Remove.
13132         (inserted_exprs): Change to bitmap.
13133         (create_expression_by_pieces): Set bits, don't append to vector.
13134         (insert_into_preds_of_block): Don't handle inserted_phi_names.
13135         (eliminate): Don't look at inserted_phi_names, remove deleted
13136         insns from inserted_exprs.
13137         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
13138         (init_pre, fini_pre): Allocate and free bitmaps.
13139         (execute_pre): Insert insns on edges before elimination.
13140
13141 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
13142
13143         * tree.c (initializer_zerop): Handle STRING_CST.
13144
13145 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13146
13147         PR 40989
13148         * doc/invoke.texi (Wimplicit): Document as C only.
13149         * opts.c (common_handle_option): Add argument kind.
13150         (handle_option): Rename as read_cmdline_option. Factor out code to...
13151         (handle_option): ... here. New.
13152         (handle_options): Rename as read_cmdline_options.
13153         (decode_options): Update call.
13154         (set_option): Use option index instead of option pointer. Classify
13155         diagnostics correctly.
13156         (enable_warning_as_error): Call handle_option.
13157         * opts.h (set_option): Update declaration.
13158         (handle_option): Declare.
13159         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
13160         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
13161         * c-opts.c (set_Wimplicit): Delete.
13162         (c_family_lang_mask): New static constant.
13163         (c_common_handle_option): Add argument kind. Use handle_option
13164         instead of set_Wimplicit.
13165         (c_common_post_options): warn_implicit and warn_implicit_int
13166         are disabled by default.
13167         * c-common.c (warn_implicit): Do not define here.
13168         * c-common.h (warn_implicit): Do not declare here.
13169         (c_common_handle_option): Update declaration.
13170         * lto-opts.c (lto_reissue_options): Update call to set_option.
13171
13172 2010-05-06  Richard Guenther  <rguenther@suse.de>
13173
13174         PR tree-optimization/43571
13175         * domwalk.c (walk_dominator_tree): Walk the dominator
13176         sons in more optimal order.
13177
13178 2010-05-06  Richard Guenther  <rguenther@suse.de>
13179
13180         PR tree-optimization/43934
13181         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
13182         (stmt_cost): Likewise.
13183         (extract_true_false_args_from_phi): New helper.
13184         (determine_max_movement): For PHI nodes verify we can hoist them
13185         and compute their cost.
13186         (determine_invariantness_stmt): Handle PHI nodes.
13187         (move_computations_stmt): Likewise.  Hoist PHI nodes in
13188         if-converted form using COND_EXPRs.
13189         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
13190         (tree_ssa_lim): Likewise.
13191         * tree-flow.h (tree_ssa_lim): Adjust prototype.
13192         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
13193
13194 2010-05-06  Richard Guenther  <rguenther@suse.de>
13195
13196         PR tree-optimization/43987
13197         * tree-ssa-structalias.c (could_have_pointers): For possibly
13198         address-taken variables force pointers to be recorded.
13199         (create_variable_info_for_1): Likewise.
13200         (push_fields_onto_fieldstack): Pass in wheter all fields
13201         must have pointers.
13202         (find_func_aliases): Query types instead of vars whether
13203         they contain pointers where appropriate.
13204
13205 2010-05-06  Jan Hubicka  <jh@suse.cz>
13206
13207         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
13208         (record_reference, mark_address, mark_load, mark_store): Record
13209         references.
13210         (record_references_in_initializer): Update call of record_references.
13211         (rebuild_cgraph_edges): Remove all references before rebuiding.
13212         * cgraph.c (cgraph_create_node): Clear ref list.
13213         (cgraph_remove_node): Remove references.
13214         (dump_cgraph_node): Dump references.
13215         (cgraph_clone_node): Clone references.
13216         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
13217         (struct cgraph_node, varpool_node): Add ref_lst.
13218         * ipa-ref.c: New file.
13219         * ipa-ref.h: New file.
13220         * ipa-ref-inline.h: New file.
13221         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
13222         (referenced_from_other_partition_p): New function.
13223         (lto_output_varpool_node): Take set arugment; call
13224         referenced_from_other_partition.
13225         (lto_output_ref): New.
13226         (add_references): New.
13227         (output_refs): New.
13228         (output_cgraph): Compute boundary based on references; output refs.
13229         (output_varpool): Accept cgraph_node_set argument.
13230         (input_ref): New.
13231         (input_refs): New.
13232         (input_cgraph): Call input_refs.
13233         * lto-section-in.c (lto_section_name): Add refs.
13234         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
13235         (ipa-ref.o): New file.
13236         * varpool.c (varpool_node): Clear ipa ref list.
13237         (varpool_remove_node): Remove references.
13238         (dump_varpool_node): Dump references.
13239         (varpool_assemble_decl): Only compile finalized ones.
13240         (varpool_extra_name_alias): Initialize ref list.
13241         * lto-streamer.c (lto-get_section_name): Add .refs section.
13242         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
13243         (referenced_from_other_partition_p): Declared.
13244
13245 2010-05-06  Ira Rosen  <irar@il.ibm.com>
13246
13247         PR tree-optimization/43901
13248         * tree-vect-stmts.c (vectorizable_call): Assert that vector
13249         type is not NULL if it's transformation phase, and return
13250         FALSE if it's analysis.
13251         (vectorizable_conversion, vectorizable_operation,
13252         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
13253
13254 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
13255
13256         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
13257         Delete.
13258         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
13259         New define.
13260         * config/mips/mips-protos.h
13261         (mips_small_register_classes_for_mode_p): Delete prototype.
13262
13263 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
13264
13265         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
13266         * config/arm/arm.c (multiple_operation_profitable_p,
13267         compute_offset_order): New static functions.
13268         (load_multiple_sequence, store_multiple_sequence): Use them.
13269         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
13270         memory offsets, not register numbers.
13271         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
13272
13273 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
13274
13275         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
13276         (get_pending_sizes, put_pending_size, put_pending_sizes):
13277         Update the uses of pending_sizes.
13278         * c-decl.c (store_parm_decls): Likewise.
13279         * c-tree.h (struct c_arg_info): Likewise.
13280         * tree.h: Update the prototype for get_pending_sizes and
13281         put_pending_sizes.
13282
13283 2010-05-05  Jason Merrill  <jason@redhat.com>
13284
13285         PR debug/43370
13286         * c-common.c (handle_aligned_attribute): Respect
13287         ATTR_FLAG_TYPE_IN_PLACE.
13288
13289         PR testsuite/43758
13290         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
13291         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
13292         (TARGET_INITIALIZER): Use it.
13293         * c-common.c (attribute_takes_identifier_p): Call it.
13294         * c-common.h: Update prototype.
13295         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
13296         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
13297
13298 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
13299
13300         PR debug/43950
13301         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
13302         DW_ID_down_case for Fortran compilation units.
13303
13304 2010-05-05  Jan Hubicka  <jh@suse.cz>
13305
13306         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
13307         handle aliases.
13308
13309 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
13310
13311         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
13312         a variable-sized RESULT_DECL.
13313
13314 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
13315
13316         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
13317
13318 2010-05-05  Jason Merrill  <jason@redhat.com>
13319
13320         PR c++/43787
13321         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
13322         returns GS_OK.
13323         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
13324
13325 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
13326             Jakub Jelinek  <jakub@redhat.com>
13327
13328         PR debug/43478
13329         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
13330         (dead_debug_init, dead_debug_finish): New functions.
13331         (dead_debug_add, dead_debug_insert_before): Likewise.
13332         (df_note_bb_compute): Initialize a dead_debug object, add dead
13333         debug uses to it, insert debug bind insns before death insns,
13334         reset debug insns that refer to pending uses at the end.
13335         * rtl.h (make_debug_expr_from_rtl): New prototype.
13336         * varasm.c (make_debug_expr_from_rtl): New function.
13337
13338 2010-05-05  Jan Hubicka  <jh@suse.cz>
13339
13340         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
13341         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
13342         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
13343         lto_varpool_encoder_deref, lto_varpool_encoder_size,
13344         lto_varpool_encoder_encode_initializer_p,
13345         lto_set_varpool_encoder_encode_initializer): New functions.
13346         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
13347         call output_varpool.
13348         (input_varpool_node): Do not always set analyzed.
13349         (input_cgraph_1): Return vector of cgraph nodes.
13350         (input_varpool_1): Return vector of varpools.
13351         (input_cgraph): Free the vectors.
13352         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
13353         output only initializers needed.
13354         (lto_output): Only call output_cgraph.
13355         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
13356         * lto-section-out.c (lto_new_out_decl_state): Initialize
13357         state->varpool_node_encoder.
13358         * lto-streamer.h (lto_varpool_encoder_d): New.
13359         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
13360         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
13361         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
13362         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
13363         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
13364         Declare.
13365         (output_varpool, input_varpool): Remove declarations.
13366
13367 2010-05-05  Jan Hubicka  <jh@suse.cz>
13368
13369         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
13370         with body can prevail.
13371
13372 2010-05-05  Jan Hubicka  <jh@suse.cz>
13373
13374         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
13375         size.
13376
13377 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13378
13379         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
13380
13381         * gengtype.h (erro_at_line): Constify pos argument.
13382
13383         * gengtype.c: Include hashtab.h.
13384         (enum gc_used): Document GC_MAYBE_POINTED_TO.
13385         (error_at_line): Constify pos argument.
13386         (do_typedef): Initialize p->opt field.
13387         (get_file_gtfilename): Fix comment typo.
13388         (struct walk_type_data): Constify line field.
13389         (get_output_file_for_structure): New function.
13390         (write_local_func_for_structure): Constify orig_s argument.
13391         Use get_output_file_for_structure.
13392         (write_func_for_structure): Use get_output_file_for_structure.
13393         (INDENT): New define.
13394         (dump_pair, dump_type, dump_type_list, dump_typekind)
13395         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
13396         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
13397         functions.
13398         (seen_types): New variable.
13399         (main): New variable do_dump.  Process "-d" command line option.
13400         Call dump_everything if dump requested.
13401
13402 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
13403
13404         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
13405         in a temporary instead of invoking the macro multiple times.
13406         (track_expr_p): Likewise.
13407
13408 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
13409
13410         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
13411         per new semantics.
13412         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
13413         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
13414         conditions for printing notes.
13415         * common.opt (-Wcoverage-mismatch): Allow negative, default to
13416         true, update documentation.
13417         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
13418
13419 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
13420
13421         PR c/43981
13422         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
13423         on dimen.
13424
13425 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
13426
13427         PR target/43799
13428         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
13429         (*sse_prologue_save_insn1): Likewise.
13430         (SSE prologue save splitter): Likewise.
13431
13432 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
13433
13434         * tree.c (free_lang_data_in_one_sizepos): New inline function.
13435         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
13436         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
13437         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
13438         all decls.  Call it on DECL_FIELD_OFFSET of fields.
13439         (find_decls_types_r): Follow DECL_VALUE_EXPR.
13440         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
13441
13442 2010-05-04  Martin Jambor  <mjambor@suse.cz>
13443
13444         * tree-sra.c (build_access_from_expr_1): The first parameter type
13445         changed to simple tree.
13446         (build_access_from_expr): Likewise, gsi parameter was eliminated.
13447         (scan_assign_result): Renamed to assignment_mod_result, enum elements
13448         renamed as well.
13449         (build_accesses_from_assign): Removed all parameters except for a
13450         simple gimple statement.  Now returns a simple bool.
13451         (scan_function): All non-analysis parts moved to separate functions
13452         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
13453         parameters and updated both callers.
13454         (sra_modify_expr): Removed parameter data.
13455         (sra_modify_function_body): New function.
13456         (perform_intra_sra): Call sra_modify_function_body to modify the
13457         function body.
13458         (replace_removed_params_ssa_names): Parameter data changed into
13459         adjustments vector.
13460         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
13461         changed the parameter dont_convert to convert with the opposite
13462         meaning.
13463         (sra_ipa_modify_assign): Parameter data changed into adjustments
13464         vector, return value changed to bool.
13465         (ipa_sra_modify_function_body): New function.
13466         (sra_ipa_reset_debug_stmts): Updated a comment.
13467         (modify_function): Use ipa_sra_modify_function_body to modify function
13468         body.
13469
13470 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
13471
13472         PR middle-end/43671
13473         * alias.c (true_dependence): Handle the same VALUE in x and mem.
13474         (canon_true_dependence): Likewise.
13475         (write_dependence_p): Likewise.
13476
13477 2010-05-04  Jan Hubicka  <jh@suse.cz>
13478
13479         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
13480         * cgraphbuild.c: Include ipa-utils.h
13481         (record_reference_ctx): New struct.
13482         (record_reference): Simplify to work on initializers; not statements.
13483         (mark_address, mark_load, mark_store): New.
13484         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
13485         walk PHI nodes too.
13486         (record_references_in_initializer): Update use of record_reference.
13487         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
13488         walk PHI nodes too.
13489
13490 2010-05-04  Jan Hubicka  <jh@suse.cz>
13491
13492         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
13493         node will be removed anyway.
13494         (lto_varpool_replace_node): Allow also unanalyzed nodes;
13495         relink aliases of node into prevailing node.
13496         * varpool.c (varpool_remove_node): Remove aliases properly;
13497         when removing node, remove all its aliases too; remove DECL_INITIAL
13498         of removed node; ggc_free the varpool node.
13499
13500 2010-05-04  Richard Guenther  <rguenther@suse.de>
13501
13502         PR tree-optimization/43879
13503         * tree-ssa-structalias.c (alias_get_name): Use
13504         DECL_ASSEMBLER_NAME if available.
13505         (create_function_info_for): Return the varinfo node.
13506         (ipa_pta_execute): Associate same-body aliases and extra names
13507         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
13508
13509 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
13510
13511         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
13512
13513 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
13514
13515         PR bootstrap/43964
13516         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
13517         only if HONOR_REG_ALLOC_ORDER is not defined.
13518
13519 2010-05-04  Richard Guenther  <rguenther@suse.de>
13520
13521         PR tree-optimization/43949
13522         * tree-vrp.c (extract_range_from_binary_expr): Only handle
13523         TRUNC_MOD_EXPR.
13524
13525 2010-04-26  Jason Merrill  <jason@redhat.com>
13526
13527         * c.opt (-fstrict-enums): New.
13528         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
13529
13530 2010-05-03  David Ung  <davidu@mips.com>
13531             James E. Wilson  <wilson@codesourcery.com>
13532
13533         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
13534         emit the trap instruction before the divide for TUNE_74K.
13535
13536 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
13537
13538         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
13539         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
13540         based on the above, for new target hook.
13541
13542         * hooks.c (hook_bool_mode_true): New generic hook.
13543         * hooks.h (hook_bool_mode_true): Add prototype.
13544
13545         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
13546         target hook.
13547         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
13548         target hook, set to hook_bool_mode_false.
13549         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
13550         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
13551         with targetm.small_register_classes_for_mode_p.
13552         (find_reusable_reload): Likewise.
13553         (combine_reloads): Likewise.
13554         * reload1.c (reload_as_needed): Likewise.
13555         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
13556         * ifcvt.c (noce_process_if_block, check_cond_move_block,
13557         dead_or_predicable): Likewise.
13558         * regmove.c (optimize_reg_copy_1): Likewise.
13559         * calls.c (prepare_call_address): Likewise.
13560         (precompute_register_parameters): Likewise.
13561
13562         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
13563         hook definition.
13564         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
13565         implementation of the hook that considers all register classes
13566         small except for SH64.
13567         (sh_override_options): Use the new hook.
13568         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
13569         Add prototype.
13570
13571         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
13572         hook definition.
13573         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
13574         implementation of the hook that considers all register classes
13575         small for THUMB1.
13576         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
13577         Add prototype.
13578
13579         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
13580         hook definition.
13581         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
13582         implementation of the hook that considers all register classes
13583         small for MIPS16.
13584         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
13585         Add prototype.
13586
13587         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
13588         hook definition.
13589         * config/m32c/m32c.h: Likewise.
13590         * config/pdp11/pdp11.h: Likewise.
13591         * config/avr/avr.h: Likewise.
13592         * config/xtensa/xtensa.h: Likewise.
13593         * config/m68hc11/m68hc11.h: Likewise.
13594         * config/mn10300/mn10300.h: Likewise.
13595         * config/mcore/mcore.h: Likewise.
13596         * config/h8300/h8300.h: Likewise.
13597         * config/bfin/bfin.h: Likewise.
13598
13599         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
13600         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
13601
13602 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
13603
13604         * double-int.h (tree_to_double_int): Remove macro.
13605         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
13606         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
13607         (tree_to_double_int): New function.
13608         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
13609         Move ...
13610         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
13611
13612 2010-05-03  Richard Guenther  <rguenther@suse.de>
13613
13614         PR tree-optimization/43971
13615         * tree-ssa-structalias.c (get_constraint_for_1): Fix
13616         constraints in the !flag_delete_null_pointer_checks case.
13617
13618 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
13619
13620         PR debug/43972
13621         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
13622         result mode matches original rtl mode.
13623
13624 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
13625
13626         PR target/43888
13627         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
13628
13629 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
13630
13631         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
13632         when processing flag options.
13633
13634 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
13635
13636         * gcov-iov.c (main): Change format string placeholder
13637         from %#08x to 0x%08x.
13638         * genchecksum.c (dosum): Change format string placeholder
13639         from %#02x to 0x%02x.
13640
13641 2010-05-02  Richard Guenther  <rguenther@suse.de>
13642
13643         PR tree-optimization/43879
13644         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
13645
13646 2010-05-02  Bruno Haible  <bruno@clisp.org>
13647
13648         * doc/extend.texi (Function Attributes): Fix a typo.
13649
13650 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
13651
13652         Revert:
13653         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
13654         placeholder from 0x%x to %#x.
13655         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
13656         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
13657         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
13658         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
13659         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
13660         * config/i386/i386.c (ix86_target_string): Ditto.
13661         * config/i386/i386.c (output_pic_addr_const): Ditto.
13662         (print_operand): Ditto.
13663
13664 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
13665
13666         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
13667         placeholder from 0x%x to %#x.
13668         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
13669         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
13670         (ASM_OUTPUT_DEBUG_DATA): Ditto.
13671         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
13672         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
13673         * optc-gen.awk: Ditto.
13674         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
13675         (HOST_WIDE_INT_PRINT_HEX): Ditto.
13676         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
13677         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
13678
13679 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
13680
13681         * target.h (struct calls): Add function_value_regno_p field.
13682         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
13683         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
13684         * targhooks.c (default_function_value_regno_p): New function.
13685         * targhooks.h (default_function_value_regno_p): Declare function.
13686         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
13687         * builtins.c. (apply_result_size): (Ditto.).
13688         * combine.c. (likely_spilled_retval_p): (Ditto.).
13689         * mode-switching.c. Include 'target.h'.
13690         (create_pre_exit): Use function_value_regno_p hook.
13691         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
13692         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
13693         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
13694
13695         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
13696         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
13697         (ix86_function_value_regno_p): Declare as static, change argument
13698         type to const unsigned int.
13699         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
13700
13701 2010-05-01  Richard Guenther  <rguenther@suse.de>
13702
13703         PR tree-optimization/43949
13704         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
13705         types.
13706         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
13707
13708 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
13709
13710         * rtl.h (CONST_DOUBLE_P): Define.
13711         (rtx_to_double_int): Declare.
13712         * emit-rtl.c (rtx_to_double_int): New function.
13713         * dwarf2out.c (insert_double): New function.
13714         (loc_descriptor, add_const_value_attribute): Clean up, use
13715         rtx_to_double_int and insert_double functions.
13716
13717 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
13718
13719         * doc/extend.texi (Inline): Add missing return keyword to examples.
13720         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
13721         "command-line".
13722
13723 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
13724
13725         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
13726         the variable part of the offset as well.  Use highest_pow2_factor for
13727         all alignment checks.
13728
13729 2010-04-30  Richard Guenther  <rguenther@suse.de>
13730
13731         PR tree-optimization/43879
13732         * tree-ssa-structalias.c (type_could_have_pointers): Functions
13733         can have pointers.
13734
13735 2010-04-30  Jan Hubicka  <jh@suse.cz>
13736
13737         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
13738         varpool.
13739         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
13740
13741 2010-04-30  Jan Hubicka  <jh@suse.cz>
13742
13743         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
13744         New.
13745         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
13746         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
13747         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
13748         cgraph_node_set_needs_ltrans_p): Remove.
13749
13750 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
13751
13752         * sdbout.c: Include vec.h, do not include varray.h.
13753         (deferred_global_decls, sdbout_global_decl,
13754         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
13755         * toplev.c: Do not include varray.h.
13756         (dump_memory_report): Do not dump VARRAY statistics.
13757         * gengtype.c (open_base_file): Ignore varray.h.
13758         * Makefile.in: Update for abovementioned changes.
13759         Remove all traces of varray.c and varray.h.
13760         * varray.c: Remove file.
13761         * varray.h: Remove file.
13762
13763 2010-04-30  Jan Hubicka  <jh@suse.cz>
13764
13765         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
13766         references.
13767
13768 2010-04-30  Jan Hubicka  <jh@suse.cz>
13769
13770         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
13771         needed.
13772
13773 2010-04-30  Richard Guenther  <rguenther@suse.de>
13774
13775         * tree-ssa-structalias.c (get_constraint_for_1): Generate
13776         constraints for CONSTRUCTOR.
13777
13778 2010-04-30  Richard Guenther  <rguenther@suse.de>
13779
13780         PR lto/43946
13781         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
13782         first after all lowering passes.
13783
13784 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
13785
13786         * toplev.c: Include varray.h for statistics dumping.
13787         * tree.h: Do not declare varray_head_tag.
13788         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
13789         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
13790         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
13791         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
13792         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
13793         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
13794         c-common.c, c-common.h, reg-stack.c, basic-block.h,
13795         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
13796         include varray.h.
13797         * Makefile.in: Update for abovementioned changes.
13798
13799 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
13800
13801         PR debug/43942
13802         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
13803
13804 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
13805
13806         * config/picochip/picochip.c (picochip_legitimize_address): Define.
13807         Use this function to do machine-specific conversion.
13808         (picochip_legitimize_reload_address): Likewise.
13809         (picochip_legitimate_address_p): Check valid base register only if
13810         strict.
13811         (picochip_check_conditional_copy): Check for modw only if opnd is
13812         register.
13813         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
13814         to call the function in c.
13815         * config/picochip/picochip-protos.h
13816         (picochip_legitimize_reload_address): Define.
13817         * config/picochip/picochip.md (supported_compare1): Define.
13818
13819 2010-04-30  Jan Hubicka  <jh@suse.cz>
13820
13821         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
13822         (cgraph_global_info): Remove inlined.
13823         (LTO_cgraph_tag_names): Remove.
13824         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
13825         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
13826         simplify cgraph tags and document.
13827         (lto_output_node): Use only LTO_cgraph_unavail_node and
13828         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
13829         for_functions_valid, global info, process and output flags.
13830         (input_overwrite_node): Initialize estimated stack size and
13831         estimated growth.  Do not read flags we no longer store.
13832         (input_node): Likewise do not read info no longer stored.
13833         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
13834         flag.
13835
13836 2010-04-30  Richard Guenther  <rguenther@suse.de>
13837
13838         PR tree-optimization/43879
13839         * tree-ssa-structalias.c (get_constraint_for_1): Properly
13840         handle non-zero initializers.
13841
13842 2010-04-30  Richard Guenther  <rguenther@suse.de>
13843
13844         * builtins.c (fold_builtin_1): Delete free (0).
13845
13846 2010-04-29  Jan Hubicka  <jh@suse.cz>
13847
13848         * gengtype.c (open_base_files): Add lto-streamer.h
13849         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
13850         (pass_ipa_cp): GGC collect.
13851         * toplev. (compile_file): Do not output symbols.
13852         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
13853         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
13854         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
13855         * lto-section-in.c: Include ggc.h
13856         (lto_new_in_decl_state): Alloc in GGC.
13857         (lto_delete_in_decl_state): Likewise.
13858         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
13859         Collect.
13860
13861 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
13862
13863         PR target/42895
13864         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
13865         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
13866         (HONOR_REG_ALLOC_ORDER): Describe new macro.
13867         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
13868         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
13869         account only if HONOR_REG_ALLOC_ORDER is not defined.
13870         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
13871         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
13872
13873 2010-04-29  Jon Grant  <04@jguk.org>
13874
13875         * collect2.c (vflag): Change type from int to bool.
13876         (debug): Likewise.
13877         (helpflag): New global bool.
13878         (main): Set vflag and debug with boolean, not integer truth values.
13879         Accept new "--help" option and output usage text if found.
13880         * collect2.h (vflag): Update prototype.
13881         (debug): Likewise.
13882
13883 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
13884
13885         PR bootstrap/43936
13886         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
13887
13888 2010-04-29  Richard Guenther  <rguenther@suse.de>
13889
13890         PR bootstrap/43935
13891         * plugin.h (invoke_plugin_callbacks): Annotate arguments
13892         with ATTRIBUTE_UNUSED.
13893
13894 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
13895
13896         PR target/43921
13897         * config/i386/i386.c (get_some_local_dynamic_name): Replace
13898         INSN_P with NONDEBUG_INSN_P.
13899         (distance_non_agu_define): Likewise.
13900         (distance_agu_use): Likewise.
13901
13902 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
13903
13904         From Dominique d'Humieres  <dominiq@lps.ens.fr>
13905         PR bootstrap/43858
13906         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
13907         test_set.
13908
13909 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
13910
13911         * plugin.h (invoke_plugin_callbacks): New inline function.
13912         * plugin.c (flag_plugin_added): New global flag.
13913         (add_new_plugin): Initialize above flag.
13914         (invoke_plugin_callbacks): Rename to ...
13915         (invoke_plugin_callbacks_full): ... this.
13916
13917 2010-04-28  Jan Hubicka  <jh@suse.cz>
13918
13919         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
13920         (lto_varpool_replace_node): New.
13921         (lto_symtab_resolve_symbols): Resolve varpool nodes.
13922         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
13923         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
13924         * cgraph.h (varpool_node_ptr): New type.
13925         (varpool_node_ptr): New vector.
13926         (varpool_node_set_def): New structure.
13927         (varpool_node_set): New type.
13928         (varpool_node_set): New vector.
13929         (varpool_node_set_element_def): New structure.
13930         (varpool_node_set_element, const_varpool_node_set_element): New types.
13931         (varpool_node_set_iterator): New type.
13932         (varpool_node): Add prev pointers, add used_from_other_partition,
13933         in_other_partition.
13934         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
13935         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
13936         varpool_get_node, varpool_remove_node): Declare.
13937         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
13938         varpool_node_set_size): New inlines.
13939         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
13940         * tree-pass.h (varpool_node_set_def): Forward declare.
13941         (ipa_opt_pass_d): Summary writting takes vnode sets too.
13942         (ipa_write_optimization_summaries): Update prototype.
13943         * ipa-cp.c (ipcp_write_summary): Update.
13944         * ipa-reference.c (ipa_reference_write_summary): Update.
13945         * lto-cgraph.c (lto_output_varpool_node): New static function.
13946         (output_varpool): New function.
13947         (input_varpool_node): New static function.
13948         (input_varpool_1): New function.
13949         (input_cgraph): Input varpool.
13950         * ipa-pure-const.c (pure_const_write_summary): Update.
13951         * lto-streamer-out.c (lto_output): Update, output varpool too.
13952         (write_global_stream): Kill WPA hack.
13953         (produce_asm_for_decls): Update.
13954         (output_alias_pair_p): Handle variables.
13955         (output_unreferenced_globals): Output only needed partition of varpool.
13956         * ipa-inline.c (inline_write_summary): Update.
13957         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
13958         cgraph.
13959         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
13960         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
13961         varpool_node_set_new, varpool_node_set_add,
13962         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
13963         debug_varpool_node_set): New functions.
13964         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
13965         (execute_one_pass): Process new decls too.
13966         (ipa_write_summaries_2): Pass around vsets.
13967         (ipa_write_summaries_1): Likewise.
13968         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
13969         to add.
13970         (ipa_write_optimization_summaries_1): Pass around vsets.
13971         (ipa_write_optimization_summaries): Likewise.
13972         * varpool.c (varpool_get_node): New.
13973         (varpool_node): Update doubly linked lists.
13974         (varpool_remove_node): New.
13975         (dump_varpool_node): More dumping.
13976         (varpool_enqueue_needed_node): Update doubly linked lists.
13977         (decide_is_variable_needed): Kill ltrans hack.
13978         (varpool_finalize_decl): Kill lto hack.
13979         (varpool_assemble_decl): Skip decls in other partitions.
13980         (varpool_assemble_pending_decls): Update doubly linkes lists.
13981         (varpool_empty_needed_queue): Likewise.
13982         (varpool_extra_name_alias): Likewise.
13983         * lto-streamer.c (lto_get_section_name): Add vars section.
13984         * lto-streamer.h (lto_section_type): Update.
13985         (output_varpool, input_varpool): Declare.
13986
13987 2010-04-28  Mike Stump  <mikestump@comcast.net>
13988
13989         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
13990
13991 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
13992
13993         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
13994         record or union type with RECORD_OR_UNION_TYPE_P predicate.
13995         (lto_input_ts_type_tree_pointers): Likewise.
13996         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
13997         (lto_output_ts_type_tree_pointers): Likewise.
13998
13999 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14000
14001         Uniquization of constants at the Tree level
14002         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
14003         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
14004         bit to the end.
14005         (tree_output_constant_def): Declare.
14006         * gimplify.c (gimplify_init_constructor): When using block copy, first
14007         uniquize the constant constructor on the RHS.
14008         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
14009         DECL_IN_CONSTANT_POOL flag.
14010         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
14011         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
14012         constant pool.
14013         (assemble_variable): Deal with symbols belonging to the tree constant
14014         pool.
14015         (get_constant_section): Add ALIGN parameter and simplify.
14016         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
14017         (assemble_constant_contents): Use the expression of the VAR_DECL.
14018         (output_constant_def_contents): Use the alignment of the VAR_DECL.
14019         (tree_output_constant_def): New global function.
14020         (mark_constant): Use the expression of the VAR_DECL.
14021         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
14022         its expression.
14023         (output_object_block): Likewise and assemble the expression.
14024
14025 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14026
14027         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
14028         hash_tree, eq_tree): New tree hash table.
14029         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
14030         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
14031         lto_orig_address_remove): Reimplement.
14032
14033 2010-04-28  Xinliang David Li  <davidxl@google.com>
14034
14035         PR c/42643
14036         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
14037         (compute_uninit_opnds_pos): New function.
14038         (is_non_loop_exit_postdominating): New function.
14039         (compute_control_dep_chain): New function.
14040         (find_pdom): New function.
14041         (convert_control_dep_chain_into_preds): New function.
14042         (find_predicates): New function.
14043         (find_control_equiv_block): New function.
14044         (collect_phi_def_edges): New function.
14045         (find_def_preds): New function.
14046         (find_dom): New function.
14047         (dump_predicates): New function.
14048         (get_cmp_code): New function.
14049         (is_value_included_in): New function.
14050         (find_matching_predicate_in_rest_chains): New function.
14051         (use_pred_not_overlap_with_undef_path_pred): New function.
14052         (is_use_properly_guarded): New function.
14053         (normalize_cond_1): New function.
14054         (is_and_or_or): New function.
14055         (normalize_cond): New function.
14056         (is_gcond_subset_of): New function.
14057         (is_subset_of_any): New function.
14058         (is_or_set_subset_of): New function.
14059         (is_and_set_subset_of): New function.
14060         (is_norm_cond_subset_of): New function.
14061         (is_pred_expr_subset_of): New function.
14062         (is_pred_chain_subset_of): New function.
14063         (is_included_in): New function.
14064         (is_superset_of): New function.
14065         (find_uninit_use): New function.
14066         (warn_uninitialized_phi): New function.
14067         (compute_possibly_undefined_names): New function.
14068         (ssa_undefined_value_p): New function.
14069         (execute_late_warn_uninitialized): New function.
14070         * tree-ssa.c (ssa_undefined_value_p): Removed.
14071         (warn_uninit): Changed to extern.
14072         (warn_uninitialized_phi): Removed.
14073         (warn_uninitialized_vars): Changed to extern.
14074         (execute_late_warn_uninitialized): Removed
14075         * tree-flow.h: Add new prototypes.
14076         * timevar.def: Add new time variable.
14077         * Makefile.in: Add new build file.
14078
14079 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
14080
14081         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
14082         type if available.
14083
14084 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14085
14086         PR target/22224
14087         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
14088
14089 2010-04-28  Martin Jambor  <mjambor@suse.cz>
14090
14091         * cgraph.h (struct cgraph_node): New field indirect_calls.
14092         (struct cgraph_indirect_call_info): New type.
14093         (struct cgraph_edge): Removed field indirect_call. New fields
14094         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
14095         (cgraph_create_indirect_edge): Declare.
14096         (cgraph_make_edge_direct): Likewise.
14097         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
14098         * ipa-prop.h (struct ipa_param_call_note): Removed.
14099         (struct ipa_node_params): Removed field param_calls.
14100         (ipa_create_all_structures_for_iinln): Declare.
14101         * cgraph.c: Described indirect edges and uids in initial comment.
14102         (cgraph_add_edge_to_call_site_hash): New function.
14103         (cgraph_edge): Search also among the indirect edges, use
14104         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
14105         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
14106         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
14107         site hash.
14108         (initialize_inline_failed): Assign a reason to indirect edges.
14109         (cgraph_create_edge_1): New function.
14110         (cgraph_create_edge): Moved some functionality to
14111         cgraph_create_edge_1.
14112         (cgraph_create_indirect_edge): New function.
14113         (cgraph_edge_remove_callee): Add an assert checking for
14114         non-indirectness.
14115         (cgraph_edge_remove_caller): Special-case indirect edges.
14116         (cgraph_remove_edge): Likewise.
14117         (cgraph_set_edge_callee): New function.
14118         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
14119         (cgraph_make_edge_direct): New function.
14120         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
14121         the declaration of the call statement matches.
14122         (cgraph_node_remove_callees): Special-case indirect edges.
14123         (cgraph_clone_edge): Likewise.
14124         (cgraph_clone_node): Clone also the indirect edges.
14125         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
14126         indirect_call, dump count of indirect_calls edges.
14127         * ipa-prop.c (iinlining_processed_edges): New variable.
14128         (ipa_note_param_call): Create indirect edges instead of
14129         creating notes.  New parameter node.
14130         (ipa_analyze_call_uses): New parameter node, pass it on to
14131         ipa_note_param_call.
14132         (ipa_analyze_stmt_uses): Likewise.
14133         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
14134         (print_edge_addition_message): Work on edges rather than on notes.
14135         (update_call_notes_after_inlining): Likewise, renamed to
14136         update_indirect_edges_after_inlining.
14137         (ipa_create_all_structures_for_iinln): New function.
14138         (ipa_free_node_params_substructures): Do not free notes.
14139         (ipa_edge_duplication_hook): Propagate bits within
14140         iinlining_processed_edges bitmap.
14141         (ipa_node_duplication_hook): Do not duplicate notes.
14142         (free_all_ipa_structures_after_ipa_cp): Renamed to
14143         ipa_free_all_structures_after_ipa_cp.
14144         (free_all_ipa_structures_after_iinln): Renamed to
14145         ipa_free_all_structures_after_iinln.
14146         (ipa_write_param_call_note): Removed.
14147         (ipa_read_param_call_note): Removed.
14148         (ipa_write_indirect_edge_info): New function.
14149         (ipa_read_indirect_edge_info): Likewise.
14150         (ipa_write_node_info): Do not stream notes, do stream information
14151         in indirect edges.
14152         (ipa_read_node_info): Likewise.
14153         (lto_ipa_fixup_call_notes): Removed.
14154         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
14155         * ipa-inline.c (pass_ipa_inline): Likewise.
14156         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
14157         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
14158         * tree-inline.c (copy_bb): Removed an unnecessary double check for
14159         is_gimple_call.
14160         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
14161         edges.
14162         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
14163         (output_cgraph): Stream also indirect edges.
14164         (lto_output_edge): Added capability to stream indirect edges.
14165         (input_edge): Likewise.
14166         (input_cgraph_1): Likewise.
14167         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
14168         of indirect edges.
14169
14170 2010-04-28  Richard Guenther  <rguenther@suse.de>
14171
14172         PR tree-optimization/43879
14173         PR tree-optimization/43909
14174         * tree-ssa-structalias.c (struct variable_info): Add
14175         only_restrict_pointers flag.
14176         (new_var_info): Initialize it.  Increment stats.total_vars here.
14177         (create_function_info_for): Do not increment stats.total_vars here.
14178         (get_function_part_constraint): Fix build with C++.
14179         (insert_into_field_list): Remove.
14180         (push_fields_onto_fieldstack): Properly merge fields.
14181         (create_variable_info_for): Split and simplify.
14182         (create_variable_info_for_1): New piece.
14183         (intra_create_variable_infos): Properly make restrict constraints
14184         from parameters.
14185
14186 2010-04-28  Richard Guenther  <rguenther@suse.de>
14187
14188         PR c++/43880
14189         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
14190
14191 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14192             Jan Hubicka  <hubicka@ucw.cz>
14193
14194         * doc/invoke.texi (-Wsuggest-attribute=const,
14195         -Wsuggest-attribute=pure): Document.
14196         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
14197         (function_always_visible_to_compiler_p,
14198         suggest_attribute, warn_function_pure, warn_function_const):
14199         New functions.
14200         (check_call): Improve debug info.
14201         (analyze_function): Do not check availability.
14202         (add_new_function): Check availability.
14203         (propagate): Output warnings.
14204         (skip_function_for_local_pure_const): New function.
14205         (local_pure_const): Use it; output warnings.
14206         * common.opt (Wsuggest-attribute=const,
14207         Wsuggest-attribute=pure): New.
14208
14209 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
14210
14211         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
14212         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
14213         or DW_CFA_def_cfa_offset{,_sf}.
14214
14215 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
14216
14217         * tree.h: Fix truncated long macros.
14218
14219 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
14220
14221         * collect2.c (TARGET_64BIT): Redefine to target's default.
14222         * tlink.c: Likewise.
14223         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
14224         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
14225         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
14226         for underscoring __USER_LABEL_PREFIX__.
14227         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
14228         (SUB_LINK_ENTRY32): New.
14229         (SUB_LINK_ENTRY64): New.
14230         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
14231         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
14232         (SUB_LINK_ENTRY64): New.
14233         (SUB_LINK_ENTRY): New.
14234         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
14235         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
14236         x64 target is choosen.
14237         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
14238         * configure: Regenerated.
14239         * configure.ac (leading-mingw64-underscores): Option added.
14240
14241 2010-04-27  Jan Hubicka  <jh@suse.cz>
14242
14243         * doc/invoke.texi (-fipa-profile): Document.
14244         * opts.c (decode_options): Enable ipa-profile at -O1.
14245         * timevar.def (TV_IPA_PROFILE): Define.
14246         * common.opt (fipa-profile): Add.
14247         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
14248         flag for clones.
14249         (cgraph_propagate_frequency): Handle only local ones.
14250         * tree-pass.h (pass_ipa_profile): Declare.
14251         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
14252         (pass_ipa_profile): Use TV_IPA_PROFILE.
14253         * ipa.c (ipa_profile): New function.
14254         (gate_ipa_profile): Likewise.
14255         (pass_ipa_profile): New global variable.
14256         * passes.c (pass_ipa_profile): New.
14257
14258 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
14259
14260         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
14261
14262 2010-04-27  Martin Jambor  <mjambor@suse.cz>
14263
14264         PR middle-end/43812
14265         * ipa.c (dissolve_same_comdat_group_list): New function.
14266         (function_and_variable_visibility): Call
14267         dissolve_same_comdat_group_list when comdat group contains external or
14268         newly local nodes.
14269         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
14270         lists are circular and that they contain only DECL_ONE_ONLY nodes.
14271
14272 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
14273
14274         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
14275         (const_hash_1) <VECTOR_CST>: New case.
14276         (compare_constant) <VECTOR_CST>: Likewise.
14277         <ADDR_EXPR>: Deal with LABEL_REFs.
14278         (copy_constant) <VECTOR_CST>: New case.
14279
14280 2010-04-27  Jan Hubicka  <jh@suse.cz>
14281
14282         * cgraph.c (cgraph_propagate_frequency): New function.
14283         * cgraph.h (cgraph_propagate_frequency): Declare.
14284         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
14285         cgraph_propagate_frequency.
14286
14287 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
14288
14289         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
14290
14291 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
14292
14293         PR target/40657
14294         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
14295         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
14296         here to determine which regs to push and how much stack to reserve.
14297
14298 2010-04-27  Jie Zhang  <jie@codesourcery.com>
14299
14300         * doc/gimple.texi (gimple_statement_with_ops): Remove
14301         addresses_taken field.
14302         (gimple_statement_with_memory_ops): Likewise.
14303
14304 2010-04-27  Jan Hubicka  <jh@suse.cz>
14305
14306         * tree-inline.c (eni_inlining_weights): Remove.
14307         (estimate_num_insns): Special case more builtins.
14308
14309 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
14310
14311         PR c/32207
14312         * c-typeck.c (build_binary_op): Move forward check for comparison
14313         pointer with null pointer constant and adjust the diagnostic message.
14314
14315 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
14316
14317         PR lto/42776
14318         * configure.ac (gcc_cv_as_section_has_align): Set if installed
14319         binutils supports extended .section directive needed by LTO, or
14320         warn if older binutils found.
14321         (LTO_BINARY_READER): New AC_SUBST'd variable.
14322         (LTO_USE_LIBELF): Likewise.
14323         * gcc/config.gcc (lto_binary_reader): New target-specific configure
14324         variable.
14325         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
14326         (LTO_USE_LIBELF): Likewise.
14327         * configure: Regenerate.
14328
14329         * collect2.c (is_elf): Rename from this ...
14330         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
14331          object files in addition to ELF-formatted ones.
14332         (scan_prog_file): Caller updated.  Also allow for LTO info marker
14333         symbol to be prefixed or not by an extra underscore.
14334
14335         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
14336         * config/i386/winnt.c: Also #include lto-streamer.h
14337         (i386_pe_asm_named_section): Specify 1-byte section alignment for
14338         LTO named sections.
14339         (i386_pe_asm_output_aligned_decl_common): Add comment.
14340         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
14341
14342 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
14343
14344         PR target/43889
14345         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
14346         Add missing earlyclobber for second alternative.
14347
14348 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
14349
14350         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
14351         bits for artificial defs at the top of the block.
14352         * fwprop.c (single_def_use_enter_block): Don't call it.
14353
14354 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
14355
14356         PR 43715
14357         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
14358         instead of "$gcc_cv_objdump -T".
14359         Use "-undefined dynamic_lookup" on darwin.
14360         * gcc/configure: Regenerate.
14361
14362 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
14363
14364         PR c/43893
14365         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
14366
14367 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
14368
14369         * c-parser.c (struct c_token): Move location field up.
14370         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
14371         (struct c_declspecs): Convert typespec_word, storage_class, and
14372         default_int_p into bitfields.
14373         (struct c_declarator): Move loc field up.
14374
14375 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
14376
14377         * cfgloop.h (struct loop): Move can_be_parallel field up.
14378         * ipa-prop.h (struct ip_node_params): Move bitfields up.
14379         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
14380         down.
14381         (struct iv_cand): Convert pos field into a bitfield.
14382         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
14383         field up.
14384         (struct _stmt_vec_info): Shuffle fields for better packing.
14385
14386 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
14387
14388         * varasm.c (IN_NAMED_SECTION): Remove guard.
14389         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
14390         (IN_NAMED_SECTION_P): ...this.
14391         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
14392         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
14393
14394 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
14395
14396         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
14397         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
14398         of shadowing it.  Fix comments.
14399
14400 2010-04-26  Jan Hubicka  <jh@suse.cz>
14401
14402         * cgraph.c (cgraph_create_node): Set node frequency to normal.
14403         (cgraph_clone_node): Copy function frequency.
14404         * cgraph.h (node_frequency): New enum
14405         (struct cgraph_node): Add.
14406         * final.c (rest_of_clean_state): Update.
14407         * lto-cgraph.c (lto_output_node): Output node frequency.
14408         (input_overwrite_node): Input node frequency.
14409         * tre-ssa-loop-ivopts (computation_cost): Update.
14410         * lto-streamer-out.c (output_function): Do not output function
14411         frequency.
14412         * predict.c (maybe_hot_frequency_p): Update and handle functions
14413         executed once.
14414         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
14415         attribute lookup.
14416         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
14417         (compute_function_frequency): Set noreturn functions to be executed
14418         once.
14419         (choose_function_section): Update.
14420         * lto-streamer-in.c (input_function): Do not input function frequency.
14421         * function.c (allocate_struct_function): Do not initialize function
14422         frequency.
14423         * function.h (function_frequency): Remove.
14424         (struct function): Remove function frequency.
14425         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
14426         (try_update): Update.
14427         * tree-inline.c (initialize_cfun): Do not update function frequency.
14428         * passes.c (pass_init_dump_file): Update.
14429         * i386.c (ix86_compute_frame_layout): Update.
14430         (ix86_pad_returns): Update.
14431
14432 2010-04-26  Jie Zhang  <jie@codesourcery.com>
14433
14434         PR tree-optimization/43833
14435         * tree-vrp.c (range_int_cst_p): New.
14436         (range_int_cst_singleton_p): New.
14437         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
14438         when both operands are constants.  Use range_int_cst_p in
14439         BIT_IOR_EXPR case.
14440
14441 2010-04-26  Jan Hubicka  <jh@suse.cz>
14442
14443         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
14444
14445 2010-04-26  Richard Guenther  <rguenther@suse.de>
14446
14447         PR lto/43080
14448         * gimple.c (gimple_decl_printable_name): Deal gracefully
14449         with a NULL DECL_NAME.
14450
14451 2010-04-26  Richard Guenther  <rguenther@suse.de>
14452
14453         PR lto/42425
14454         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
14455         if emitting debug information and it is either a function
14456         or a namespace decl.
14457
14458 2010-04-26  Ira Rosen  <irar@il.ibm.com>
14459
14460         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
14461         determine if the statement is vectorizable, and a macro to access it.
14462         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14463         Skip statements that can't be vectorized. If the analysis fails,
14464         mark the statement as unvectorizable if vectorizing basic block.
14465         (vect_compute_data_refs_alignment): Likewise.
14466         (vect_verify_datarefs_alignment): Skip statements marked as
14467         unvectorizable. Add print.
14468         (vect_analyze_group_access): Skip statements that can't be
14469         vectorized. If the analysis fails, mark the statement as
14470         unvectorizable if vectorizing basic block.
14471         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
14472         * tree-vect-stmts.c (vectorizable_store): Fix the number of
14473         generated stmts for SLP.
14474         (new_stmt_vec_info): Initialize the new field.
14475         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
14476         statements marked as unvectorizable.
14477
14478 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
14479
14480         * c-common.c (flag_isoc1x): New.
14481         (flag_isoc99): Update comment.
14482         * c-common.h (flag_isoc1x): New.
14483         (flag_isoc99): Update comment.
14484         * c-cppbuiltin.c (builtin_define_float_constants): Also define
14485         __<type>_DECIMAL_DIG__.
14486         * c-opts.c (set_std_c1x): New.
14487         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
14488         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
14489         * c.opt (-std=c1x, -std=gnu1x): New options.
14490         * doc/cpp.texi: Mention -std=c1x.
14491         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
14492         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
14493         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
14494         * doc/standards.texi: Mention C1X.
14495         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
14496         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
14497         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
14498         Define for C1X.
14499
14500 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
14501
14502         * config/i386/gmon-sol2.c (_mcleanup): Change format string
14503         placeholder from 0x%x to %#x.
14504         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
14505         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
14506         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
14507         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
14508         * config/i386/i386.c (ix86_target_string): Ditto.
14509         (output_pic_addr_const): Ditto.
14510         (print_operand): Ditto.
14511
14512 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
14513
14514         * combine.c (find_split_point): Add third argument.  Use it
14515         to find nested multiply-accumulate instructions.  Adjust calls.
14516         (try_combine): Adjust call to find_split_point.
14517
14518 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
14519
14520         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
14521
14522 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
14523
14524         PR tree-optimization/41442
14525         * fold-const.c (merge_truthop_with_opposite_arm): New function.
14526         (fold_binary_loc): Call it.
14527
14528 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14529
14530         * toplev.c (general_init): Set default for fdiagnostics-show-option.
14531         * opts.c (common_handle_option): Allow disabling it.
14532         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
14533
14534 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
14535
14536         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
14537         between modes if both types are integral.
14538
14539 2010-04-23  Richard Guenther  <rguenther@suse.de>
14540
14541         PR tree-optimization/43572
14542         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
14543
14544 2010-04-23  Richard Guenther  <rguenther@suse.de>
14545
14546         PR lto/43455
14547         * tree-inline.c (tree_can_inline_p): Also check compatibility
14548         of return types.
14549
14550 2010-04-23  Martin Jambor  <mjambor@suse.cz>
14551
14552         PR tree-optimization/43846
14553         * tree-sra.c (struct access): New flag grp_assignment_read.
14554         (build_accesses_from_assign): Set grp_assignment_read.
14555         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
14556         (enum mark_read_status): New type.
14557         (analyze_access_subtree): Propagate grp_assignment_read, create
14558         accesses also if both direct_read and root->grp_assignment_read.
14559
14560 2010-04-23  Martin Jambor  <mjambor@suse.cz>
14561
14562         PR middle-end/43835
14563         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
14564         function does not have type attributes.
14565
14566 2010-04-23  Richard Guenther  <rguenther@suse.de>
14567
14568         PR lto/42653
14569         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
14570         of FUNCTION_DECLs.
14571
14572 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14573
14574         * sese.h (create_if_region_on_edge): Remove.
14575
14576         * sese.c (create_if_region_on_edge): Make static.
14577
14578         * tree-inline.c: Do not include ggc.h.
14579
14580         * expr.c: Do not include ggc.h.
14581
14582         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
14583         dependencies.
14584
14585 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
14586
14587         PR target/43744
14588         * config/sh/sh.c (find_barrier): Don't emit a constant pool
14589         in the middle of insns for casesi_worker_2.
14590
14591 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
14592
14593         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
14594
14595 2010-04-22  Ira Rosen  <irar@il.ibm.com>
14596
14597         PR tree-optimization/43842
14598         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
14599         loop unrolling in update of exit phis. Fix comment.
14600         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
14601         least two reduction statements in the loop before starting SLP
14602         analysis.
14603
14604 2010-04-22  Nick Clifton  <nickc@redhat.com>
14605
14606         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
14607
14608 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
14609
14610         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
14611         to simplify a + ~a.
14612
14613 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14614
14615         * tree-parloops.c (loop_parallel_p): New argument
14616         parloop_obstack.  Pass it down.
14617         (parallelize_loops): New variable parloop_obstack.  Initialize it,
14618         pass it down, free it.
14619
14620         * tree-loop-linear.c (linear_transform_loops): Pass down
14621         lambda_obstack.
14622
14623         * tree-data-ref.h (lambda_compute_access_matrices): New argument
14624         of type struct obstack *.
14625
14626         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
14627         scratch_obstack.  Initialize it, pass down, free it.
14628
14629         * lambda.h (lambda_loop_new): Remove.
14630         (lambda_matrix_new, lambda_matrix_inverse)
14631         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
14632         argument of type struct obstack *.
14633
14634         * lambda-trans.c (lambda_trans_matrix_new): New argument
14635         lambda_obstack.  Pass it down, use obstack allocation for ret.
14636         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
14637         it down.
14638
14639         * lambda-mat.c (lambda_matrix_get_column)
14640         (lambda_matrix_project_to_null): Remove.
14641         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
14642         allocation for mat.
14643         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
14644         lambda_obstack.
14645
14646         * lambda-code.c (lambda_loop_new): New function.
14647         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
14648         (lambda_compute_auxillary_space, lambda_compute_target_space)
14649         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
14650         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
14651         (build_access_matrix): New argument lambda_obstack.  Use obstack
14652         allocation for am.
14653         (lambda_compute_step_signs, lambda_compute_access_matrices): New
14654         argument lambda_obstack.  Pass it down.
14655
14656 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
14657
14658         * optabs.h (expand_widening_mult): Declare.
14659
14660 2010-04-22  Richard Guenther  <rguenther@suse.de>
14661
14662         PR tree-optimization/43845
14663         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
14664         lookup the CALL_EXPR function and arguments.
14665
14666 2010-04-22  Nick Clifton  <nickc@redhat.com>
14667
14668         * config/stormy16/stormy16.c
14669         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
14670         * config/stormy16/stormy16.h: Tidy up formatting.
14671         (DONT_USE_BUILTIN_SETJMP): Remove definition.
14672         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
14673         (ineqbranchsi): Delete pattern.
14674         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
14675         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
14676         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
14677         stormy16-lib2-ucmpsi2.c.
14678
14679 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
14680
14681         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
14682         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
14683         extra set merge_set_noclobber, and use it to relax the final test
14684         slightly.
14685         * df.h (df_simulate_find_noclobber_defs): Declare.
14686         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
14687         conditional defs.
14688         (df_simulate_find_noclobber_defs): New function.
14689
14690 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
14691
14692         * config/i386/i386.md: Use {} around multi-line preparation statements.
14693
14694 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
14695
14696         * c-tree.h (push_init_level, pop_init_level, set_init_index)
14697         (process_init_element): New argument of type struct obstack *.
14698
14699         * c-typeck.c (push_init_level, pop_init_level, set_designator)
14700         (set_init_index, set_init_label, set_nonincremental_init)
14701         (set_nonincremental_init_from_string, find_init_member)
14702         (output_init_element, output_pending_init_elements)
14703         (process_init_element): New argument braced_init_obstack.  Pass it
14704         down.
14705         (push_range_stack, add_pending_init): New argument
14706         braced_init_obstack.  Use obstack allocation.
14707
14708         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
14709         braced_init_obstack.  Pass it down.
14710         (c_parser_braced_init): New variables ret, braced_init_obstack.
14711         Initialize obstack, pass it down and finally free it.
14712
14713 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
14714
14715         PR middle-end/29274
14716         * tree-pass.h (pass_optimize_widening_mul): Declare.
14717         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
14718         gate_optimize_widening_mul): New static functions.
14719         (pass_optimize_widening_mul): New.
14720         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
14721         <case MULT_EXPR>: Remove support for widening multiplies.
14722         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
14723         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
14724         simplify_gen_unary rather than directly building extensions.
14725         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
14726         WIDEN_MULT_EXPR.
14727         * expmed.c (expand_widening_mult): New function.
14728         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
14729
14730 2010-04-21  Jan Hubicka  <jh@suse.cz>
14731
14732         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
14733         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
14734         * lto-wpa-fixup.c: Remove.
14735         * Makefile.in (lto-wpa-fixup.o): Remove.
14736         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
14737         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
14738         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
14739
14740 2010-04-21  Jan Hubicka  <jh@suse.cz>
14741
14742         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
14743         add write_optimization_summary, read_optimization_summary.
14744         (ipa_write_summaries_of_cgraph_node_set): Remove.
14745         (ipa_write_optimization_summaries): Declare.
14746         (ipa_read_optimization_summaries): Declare.
14747         * ipa-cp.c (pass_ipa_cp): Update.
14748         * ipa-reference.c (pass_ipa_reference): Update.
14749         * ipa-pure-const.c (pass_ipa_pure_const): Update.
14750         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
14751         Update.
14752         * ipa-inline.c (pass_ipa_inline): Update.
14753         * ipa.c (pass_ipa_whole_program): Update.
14754         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
14755         * passes.c (ipa_write_summaries_1): Do not test wpa.
14756         (ipa_write_optimization_summaries_1): New.
14757         (ipa_write_optimization_summaries): New.
14758         (ipa_read_summaries): Do not test ltrans.
14759         (ipa_read_optimization_summaries_1): New.
14760         (ipa_read_optimization_summaries): New.
14761
14762 2010-04-21  Jan Hubicka  <jh@suse.cz>
14763
14764         * lto-cgraph.c (lto_output_node): Do not output comdat groups
14765         for boundary nodes.
14766         (output_cgraph): Do not arrange comdat groups for boundary nodes.
14767
14768 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
14769
14770         PR debug/40040
14771         * dwarf2out.c (add_name_and_src_coords_attributes): Add
14772         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
14773
14774 2010-04-21  Jan Hubicka  <jh@suse.cz>
14775
14776         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
14777
14778 2010-04-21  Jan Hubicka  <jh@suse.cz>
14779
14780         * varpool.c (decide_is_variable_needed): Variable is always needed
14781         during ltrans.
14782
14783 2010-04-21  Jan Hubicka  <jh@suse.cz>
14784
14785         * opts.c (decode_options): Enable pure-const pass for whopr.
14786
14787 2010-04-21  Jan Hubicka  <jh@suse.cz>
14788
14789         * cgraph.c (dump_cgraph_node): Dump also assembler name.
14790         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
14791         at WPA dumping.
14792         (cgraph_decide_inlining): Do not expect callee to be removed in all
14793         cases.
14794
14795 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
14796
14797         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
14798
14799 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
14800
14801         * config/i386/i386.md (x86_shrd): Add athlon_decode and
14802         amdfam10_decode attributes.
14803
14804 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
14805
14806         PR middle-end/43570
14807         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
14808         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
14809         (lower_copyprivate_clauses): Use private var in outer
14810         context instead of original var.  Make sure the types
14811         are correct for VLAs.
14812
14813 2010-04-21  Richard Guenther  <rguenther@suse.de>
14814
14815         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
14816         to non-pointer objects.
14817
14818 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
14819
14820         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
14821         last chain entry if it starts with the still current label.
14822         (add_location_or_const_value_attribute): Check that
14823         loc_list->first->next is NULL instead of comparing ->first with ->last.
14824         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
14825         to add_var_loc_to_decl.
14826
14827         * dwarf2out.c (output_call_frame_info): For dw_cie_version
14828         >= 4 add also address size and segment size fields into CIE header.
14829
14830         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
14831         long as address size is the same as sizeof (void *) and
14832         segment size is 0.
14833         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
14834         address size or segment size is unexpected, return DW_EH_PE_omit.
14835         (classify_object_over_fdes): If get_cie_encoding returned
14836         DW_EH_PE_omit, return -1.
14837         (init_object): If classify_object_over_fdes returned -1,
14838         pretend there were no FDEs at all.
14839
14840 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
14841
14842         * config/i386/i386.md (bswap<mode>2): Macroize expander from
14843         bswap{si,di}2 using SWI48 mode iterator.
14844         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
14845         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
14846         set modrm attribute of bswap insn to 0 and remove length attribute.
14847         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
14848         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
14849         set mode attribute to <MODE> and remove length attribute.
14850
14851 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
14852
14853         PR rtl-optimization/43520
14854         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
14855         zero available registers.
14856
14857 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14858
14859         * builtins.c (fold_builtin_cproj): Fold more cases.
14860
14861 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14862
14863         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
14864         (fold_builtin_1): Fold builtin cproj.
14865         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
14866         Use ATTR_CONST_NOTHROW_LIST.
14867
14868 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
14869
14870         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
14871         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
14872         ffsi2_no_cmove for !TARGET_CMOVE.
14873         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
14874         (ffssi2): Remove expander.
14875         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
14876         mode iterator.
14877         (ctz<mode>2): Ditto from ctz{si,di}2.
14878         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
14879         mode iterator.
14880         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
14881         mode iterator.
14882
14883 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
14884
14885         * dwarf2out.c (AT_linkage_name): Define.
14886         (clone_as_declaration): Handle DW_AT_linkage_name.
14887         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
14888         of DW_AT_MIPS_linkage_name.
14889         (move_linkage_attr): Likewise.
14890         (dwarf2out_finish): Likewise.
14891
14892 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
14893
14894         PR middle-end/41952
14895         * fold-const.c (fold_comparison): New folding rule.
14896
14897 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
14898
14899         * double-int.h (double_int_setbit): Declare.
14900         * double-int.c (double_int_setbit): New function.
14901         * rtl.h (immed_double_int_const): Declare.
14902         * emit-rtl.c (immed_double_int_const): New function.
14903         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
14904         and immed_double_int_const functions.
14905         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
14906         expand_copysign_bit): (Ditto.).
14907         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
14908         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
14909         * dojump.c (prefer_and_bit_test): (Ditto.).
14910         * expr.c (convert_modes, reduce_to_bit_field_precision,
14911         const_vector_from_tree): (Ditto.).
14912         * expmed.c (mask_rtx, lshift_value): (Ditto.).
14913
14914 2010-04-20  Jan Hubicka  <jh@suse.cz>
14915
14916         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
14917         (dump_cgraph_node): Dump new flags.
14918         * cgraph.h (struct cgraph_node): Add flags
14919         reachable_from_other_partition and in_other_partition.
14920         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
14921         other partition can not be removed.
14922         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
14923         the other partition must be output; silence sanity checking on
14924         leaking functions bodies from other paritition.
14925         * lto-cgraph.c (reachable_from_other_partition_p): New function.
14926         (lto_output_node): Output new flags; do not sanity check that inline
14927         clones are output; drop lto_forced_extern_inline_p code; do not mock
14928         visibility flags at partition boundaries.
14929         (add_node_to): New function.
14930         (output_cgraph): Use it to sort functions so masters appear before
14931         clones.
14932         (input_overwrite_node): Input new flags.
14933         * passes.c (ipa_write_summaries): Do not call
14934         lto_new_extern_inline_states.
14935         * lto-section-out.c (forced_extern_inline,
14936         lto_new_extern_inline_states lto_delete_extern_inline_states,
14937         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
14938         * lto-streamer.h (lto_new_extern_inline_states,
14939         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
14940         lto_forced_extern_inline_p): Kill.
14941
14942 2010-04-20  Richard Guenther  <rguenther@suse.de>
14943
14944         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
14945         from vars that can have pointers.
14946         (process_constraint): Dump useless constraints.
14947
14948 2010-04-20  Richard Guenther  <rguenther@suse.de>
14949
14950         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
14951         (dump_sa_points_to_info): Remove asserts.
14952         (init_base_vars): nothing_id isn't an escape point nor does it
14953         have pointers.
14954
14955 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
14956
14957         * tree.h (TYPE_REF_IS_RVALUE): Define.
14958         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
14959         should_move_die_to_comdat, prune_unused_types_walk): Handle
14960         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
14961         (modified_type_die, gen_reference_type_die): Emit
14962         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
14963         if TYPE_REF_IS_RVALUE and -gdwarf-4.
14964
14965 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14966
14967         PR target/43635
14968         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
14969         calls for -fpic -m31 if they have been sibcall optimized.
14970
14971 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
14972
14973         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
14974         ar.lc fixed and call-used.
14975
14976         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
14977
14978 2010-04-19  Jan Hubicka  <jh@suse.cz>
14979
14980         * opts.c (decode_options): Disable whpr incompatible passes.
14981         * lto/lto.c (lto_1_to_1_map): Skip clones.
14982         (read_cgraph_and_symbols): Do not mark everything as needed.
14983         (do_whole_program_analysis): Do map only after optimizing;
14984         set proper cgraph_state; use passmanager.
14985
14986 2010-04-19  DJ Delorie  <dj@redhat.com>
14987
14988         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
14989         POINTER_PLUS_EXPR and fix them.
14990
14991 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
14992
14993         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
14994         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
14995         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
14996         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
14997         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
14998         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
14999         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
15000         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
15001         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
15002         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
15003         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
15004
15005 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
15006
15007         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
15008         (check_cond_move_block): Likewise.
15009         (cond_move_process_if_block): Likewise.
15010         (noce_find_if_block): Improve formatting.
15011         (find_if_header): Pass 0 to memset and tweak conditions.
15012         (cond_exec_find_if_block): Fix long lines and tweak conditions.
15013
15014 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
15015
15016         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
15017         for -gdwarf-4.
15018
15019         PR middle-end/43337
15020         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
15021         with non-local decl doesn't need chain.
15022
15023 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
15024
15025         * ira-color.c (allocno_reload_assign): Avoid accumulating
15026         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
15027
15028 2010-04-19  Martin Jambor  <mjambor@suse.cz>
15029
15030         * gimple.h (create_tmp_reg): Declare.
15031         * gimplify.c (create_tmp_reg): New function.
15032         (gimplify_return_expr): Use create_tmp_reg.
15033         (gimplify_omp_atomic): Likewise.
15034         (gimple_regimplify_operands): Likewise.
15035         * tree-dfa.c (make_rename_temp): Likewise.
15036         * tree-predcom.c (predcom_tmp_var): Likewise.
15037         (reassociate_to_the_same_stmt): Likewise.
15038         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
15039         (get_replaced_param_substitute): Likewise.
15040         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
15041         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
15042         * tree-ssa-pre.c (get_representative_for): Likewise.
15043         (create_expression_by_pieces): Likewise.
15044         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
15045         (create_tailcall_accumulator): Likewise.
15046
15047 2010-04-19  Martin Jambor  <mjambor@suse.cz>
15048
15049         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
15050         new_stmt.
15051         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
15052
15053 2010-04-19  Richard Guenther  <rguenther@suse.de>
15054
15055         PR tree-optimization/43796
15056         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
15057         from SCEV in the lattice.
15058         (vrp_visit_phi_node): Dump change.
15059
15060 2010-04-19  Richard Guenther  <rguenther@suse.de>
15061
15062         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
15063         * configure: Re-generated.
15064
15065 2010-04-19  Richard Guenther  <rguenther@suse.de>
15066
15067         PR tree-optimization/43783
15068         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
15069         constant ARRAY_REF operands two and three if possible.
15070
15071 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
15072
15073         PR target/43766
15074         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
15075
15076 2010-04-19  Jie Zhang  <jie@codesourcery.com>
15077
15078         PR target/43662
15079         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
15080
15081 2010-04-19  Ira Rosen  <irar@il.ibm.com>
15082
15083         PR tree-optimization/37027
15084         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
15085         and macro to access it.
15086         (vectorizable_reduction): Add argument.
15087         (vect_get_slp_defs): Likewise.
15088         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
15089         statements for possible use in SLP.
15090         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
15091         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
15092         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
15093         add new argument.
15094         (vectorizable_reduction): Likewise.
15095         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
15096         vect_get_slp_defs.
15097         (vectorizable_type_demotion, vectorizable_type_promotion,
15098         vectorizable_store): Likewise.
15099         (vect_analyze_stmt): Update call to vectorizable_reduction.
15100         (vect_transform_stmt): Likewise.
15101         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
15102         (vect_build_slp_tree): Fix indentation. Check that there are no loads
15103         from different interleaving chains in same node.
15104         (vect_slp_rearrange_stmts): New function.
15105         (vect_supported_load_permutation_p): Allow load permutations for
15106         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
15107         inside SLP nodes if necessary.
15108         (vect_analyze_slp_instance): Handle reductions.
15109         (vect_analyze_slp): Try to build SLP instances originating from groups
15110         of reductions.
15111         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
15112         (vect_get_constant_vectors): Create initial vectors for reductions
15113         according to reduction code. Add new argument.
15114         (vect_get_slp_defs): Add new argument, pass it to
15115         vect_get_constant_vectors.
15116         (vect_schedule_slp_instance): Remove SLP tree root statements.
15117
15118 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
15119
15120         * tree.h (ENUM_IS_SCOPED): Define.
15121         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
15122         for ENUM_IS_SCOPED enums.
15123
15124 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
15125
15126         * fold-const.c (fold_comparison): Use ssizetype.
15127         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
15128         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
15129         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
15130         * tree-object-size.c (compute_object_sizes): Use size_type_node.
15131
15132         * tree.h (initialize_sizetypes): Remove parameter.
15133         (build_common_tree_nodes): Remove second parameter.
15134         * stor-layout.c (initialize_sizetypes): Remove parameter.
15135         Always create an unsigned type.
15136         (set_sizetype): Assert that the passed type is unsigned and simplify.
15137         * tree.c (build_common_tree_nodes): Remove second parameter.
15138         Adjust call to initialize_sizetypes.
15139         * c-decl.c (c_init_decl_processing): Remove second argument in call to
15140         build_common_tree_nodes.
15141
15142 2010-04-18  Matthias Klose  <doko@ubuntu.com>
15143
15144         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
15145
15146 2010-04-18  Ira Rosen  <irar@il.ibm.com>
15147
15148         PR tree-optimization/43771
15149         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
15150         load permutation doesn't have gaps.
15151
15152 2010-04-18  Jan Hubicka  <jh@suse.cz>
15153
15154         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
15155         (sse_prologue_save_insn expander): Use new pattern.
15156         (sse_prologue_save_insn1): New pattern and splitter.
15157         (sse_prologue_save_insn): Update to deal also with 64bit aligned
15158         blocks.
15159         * i386.c (setup_incoming_varargs_64): Do not compute jump
15160         destination here.
15161         (ix86_gimplify_va_arg): Update alignment needed.
15162         (ix86_local_alignment): Do not align all local arrays to 128bit.
15163
15164 2010-04-17  Jan Hubicka  <jh@suse.cz>
15165
15166         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
15167
15168 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
15169
15170         * arm.md (negdi2): Remove redundant code to force values into a
15171         register.
15172
15173 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
15174
15175         * arm/bpabi.S: Add EABI alignment attributes to objects.
15176         * arm/bpabi-v6m.S: Likewise.
15177         * arm/crti.asm: Likewise.
15178         * arm/crtn.asm: Likewise.
15179         * arm/lib1funcs.asm: Likewise.
15180         * arm/libunwind.S: Likewise.
15181
15182 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
15183
15184         * arm-protos.h (tune_params): New structure.
15185         * arm.c (current_tune): New variable.
15186         (arm_constant_limit): Delete.
15187         (struct processors): Add pointer to the tune parameters.
15188         (arm_slowmul_tune): New tuning option.
15189         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
15190         (all_cores): Adjust to pick up the tuning model.
15191         (arm_constant_limit): New function.
15192         (arm_override_options): Select the appropriate tuning model.  Delete
15193         initialization of arm_const_limit.
15194         (arm_split_constant): Use the new constant-limit model.
15195         (arm_rtx_costs): Pick up the current tuning model.
15196         * arm.md (is_strongarm, is_xscale): Delete.
15197         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
15198         for Xscale variant architectures.
15199         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
15200
15201 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15202
15203         * config/arm/arm.c (arm_gen_constant): Remove unused variable
15204         can_shift.
15205         (arm_rtx_costs_1): Remove unused variable extra_cost.
15206         (arm_unwind_emit_set): Use variable offset.
15207         (thumb1_output_casesi): Remove unused variable flags.
15208
15209 2010-04-16  Jeff Law  <law@redhat.com>
15210
15211         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
15212         needing assignment rather than doing a two-phase assignment.  Remove
15213         unused variable 'm'.
15214
15215 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
15216
15217         PR bootstrap/43767
15218         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
15219
15220 2010-04-16  Doug Kwan  <dougkwan@google.com>
15221
15222         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
15223         (next_operand_entry_id): New static variable.
15224         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
15225         (add_to_ops_vec): Assigned unique ID to operand entry.
15226         (struct oecount_s): New field ID.
15227         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
15228         (undistribute_ops_list): Assign unique IDs to oecounts.
15229         (init_reassoc): reset next_operand_entry_id.
15230
15231 2010-04-16  Doug Kwan  <dougkwan@google.com>
15232
15233         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
15234         missing left parenthesis.
15235
15236 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
15237
15238         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
15239         *btdi_rex64 using SWI48 mode iterator.
15240         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
15241         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
15242         *jcc_btdi_mask_rex64.
15243
15244 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
15245
15246         * double-int.h (tree_to_double_int): Convert to macro.
15247         * double-int.c (tree_to_double_int): Remove.
15248
15249 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
15250
15251         PR debug/43762
15252         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
15253         with want_address 2 and in case a single element list might be
15254         possible, call it again with want_address 0.
15255
15256 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
15257
15258         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
15259         case 'W' print operands for HI mode.
15260         * config/h8300/h8300.h (Y0, Y2) : New constraints.
15261         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
15262         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
15263         * config/h8300/predicate.md (bit_register_indirect_operand): New.
15264
15265         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
15266
15267         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
15268         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
15269         #xx:3 and #xx:4 mode.
15270
15271         * config/h8300/h8300.md (inverted load with HImode dest): Add
15272         support for H8300SX.
15273
15274         * config/h8300/predicate.md (bit_operand): Allow immediate values that
15275         satisfy 'U' constraint.
15276
15277 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15278
15279         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
15280         * configure: Regenerate.
15281         * config.in: Regenerate.
15282         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
15283         works.
15284
15285 2010-04-16  Richard Guenther  <rguenther@suse.de>
15286
15287         * tree.h (struct tree_decl_minimal): Move pt_uid ...
15288         (struct tree_decl_common): ... here.
15289         (DECL_PT_UID): Adjust.
15290         (SET_DECL_PT_UID): Likewise.
15291         (DECL_PT_UID_SET_P): Likewise.
15292
15293 2010-04-16  Richard Guenther  <rguenther@suse.de>
15294
15295         PR tree-optimization/43572
15296         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
15297         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
15298         * tree-flow.h (is_call_clobbered): Remove.
15299         * tree-flow-inline.h (is_call_clobbered): Likewise.
15300         * tree-dfa.c (dump_variable): Do not dump call clobber state.
15301         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
15302         (execute_return_slot_opt): Adjust.
15303         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
15304         check for call clobbered vars here.
15305         (find_tail_calls): Move tailcall verification to the
15306         proper place.
15307
15308 2010-04-16  Diego Novillo  <dnovillo@google.com>
15309
15310         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
15311
15312 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
15313
15314         PR target/40603
15315         * config/arm/arm.md (cbranchqi4): New pattern.
15316         * config/arm/predicates.md (const0_operand,
15317         cbranchqi4_comparison_operator): New predicates.
15318
15319 2010-04-16  Richard Guenther  <rguenther@suse.de>
15320
15321         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
15322         (dump_gimple_stmt): Likewise.
15323
15324 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
15325
15326         * recog.h (struct recog_data): New field is_operator.
15327         (struct insn_operand_data): New field is_operator.
15328         * recog.c (extract_insn): Set recog_data.is_operator.
15329         * genoutput.c (output_operand_data): Emit code to set the
15330         is_operator field.
15331         * reload.c (find_reloads): Use it rather than testing for an
15332         empty constraint string.
15333
15334         PR target/41514
15335         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
15336         If the previous insn is a cbranchsi4_insn with the same arguments,
15337         omit the compare instruction.
15338
15339         * config/arm/arm.md (addsi3_cbranch): If destination is a high
15340         register, inputs must be low registers and we need a low register
15341         scratch.  Handle alternative 2 like alternative 3.
15342
15343 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
15344
15345         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
15346         don't call get_addr on both.  If one expression is a VALUE and
15347         the other a REG, check VALUE's locs if the REG isn't among them.
15348
15349 2010-04-16  Christian Bruel  <christian.bruel@st.com>
15350
15351         * config/sh/sh.h (sh_frame_pointer_required): New function.
15352         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
15353         (flag_omit_frame_pointer) Set.
15354         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
15355         (rounded_frame_size): Adjust size with outgoing_args_size.
15356         (sh_set_return_address): Must return from stack pointer.
15357         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
15358         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
15359         (ACCUMULATE_OUTGOING_ARGS): Define.
15360         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
15361         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
15362
15363 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
15364
15365         PR target/43471
15366         * config/sh/sh.c (sh_legitimize_reload_address): Use
15367         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
15368         Remove a unneeded check for offset_base.
15369
15370 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
15371
15372         * configure: Regenerated.
15373
15374 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15375
15376         * config/s390/s390.c (s390_call_save_register_used): Switch back
15377         to HARD_REGNO_NREGS.
15378
15379 2010-04-15  Richard Guenther  <rguenther@suse.de>
15380
15381         * alias.c (alias_set_subset_of): Handle alias-set zero
15382         child properly.
15383
15384 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
15385             Julian Brown  <julian@codesourcery.com>
15386
15387         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
15388         alternatives according to use of high and low regs.
15389         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
15390         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
15391         optimizing for size on Thumb-2.
15392
15393 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
15394
15395         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
15396
15397 2010-04-15  Richard Guenther  <rguenther@suse.de>
15398
15399         * tree-ssa-structalias.c (struct variable_info): Add
15400         is_fn_info flag.
15401         (new_var_info): Initialize it.
15402         (dump_constraints): Support printing last added constraints.
15403         (debug_constraints): Adjust.
15404         (dump_constraint_graph): Likewise.
15405         (make_heapvar_for): Check for NULL cfun.
15406         (get_function_part_constraint): New function.
15407         (get_fi_for_callee): Likewise.
15408         (find_func_aliases): Properly implement IPA PTA constraints.
15409         (process_ipa_clobber): New function.
15410         (find_func_clobbers): Likewise.
15411         (insert_into_field_list_sorted): Remove.
15412         (create_function_info_for): Properly allocate vars for IPA mode.
15413         Do not use insert_into_field_list_sorted.
15414         (create_variable_info_for): Properly generate constraints for
15415         global vars in IPA mode.
15416         (dump_solution_for_var): Always dump the solution.
15417         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
15418         (find_what_var_points_to): Adjust.
15419         (pt_solution_set): Change.
15420         (pt_solution_ior_into): New function.
15421         (pt_solution_empty_p): Export.
15422         (pt_solution_includes_global): Adjust.
15423         (pt_solution_includes_1): Likewise.
15424         (pt_solutions_intersect_1): Likewise.
15425         (dump_sa_points_to_info): Check some invariants.
15426         (solve_constraints): Move constraint dumping ...
15427         (compute_points_to_sets): ... here.
15428         (ipa_pta_execute): ... and here.
15429         (compute_may_aliases): Do not re-compute points-to info
15430         locally if IPA info is available.
15431         (ipa_escaped_pt): New global var.
15432         (ipa_pta_execute): Properly implement IPA PTA.
15433         * tree-into-ssa.c (dump_decl_set): Support dumping
15434         decls not in referenced-vars.
15435         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
15436         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
15437         (dump_points_to_solution): Likewise.
15438         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
15439         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
15440         (remap_gimple_stmt): Reset call clobber/use information if necessary.
15441         (copy_decl_to_var): Copy DECL_PT_UID.
15442         (copy_result_decl_to_var): Likewise.
15443         * tree.c (make_node_stat): Initialize DECL_PT_UID.
15444         (copy_node_stat): Copy it.
15445         * tree.h (DECL_PT_UID): New macro.
15446         (SET_DECL_PT_UID): Likewise.
15447         (DECL_PT_UID_SET_P): Likewise.
15448         (struct tree_decl_minimal): Add pt_uid member.
15449         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
15450         (pt_solution_empty_p): Declare.
15451         (pt_solution_set): Adjust.
15452         (ipa_escaped_pt): Declare.
15453         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
15454         * gimple-pretty-print.c (pp_points_to_solution): New function.
15455         (dump_gimple_call): Dump call clobber/use information.
15456         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
15457         * tree-pass.h (TDF_ALIAS): New dump option.
15458         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
15459         * doc/invoke.texi (-fipa-pta): Update documentation.
15460
15461 2010-04-15  Richard Guenther  <rguenther@suse.de>
15462
15463         * Makefile.in (OBJS-common): Add gimple-fold.o.
15464         (gimple-fold.o): New rule.
15465         * tree.h (maybe_fold_offset_to_reference,
15466         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
15467         prototypes ...
15468         * gimple.h: ... here.
15469         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
15470         may_propagate_address_into_dereference): Move prototypes ...
15471         * gimple.h: ... here.
15472         * tree-ssa-ccp.c (get_symbol_constant_value,
15473         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
15474         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
15475         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
15476         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
15477         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
15478         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
15479         gimplify_and_update_call_from_tree): Move ...
15480         * gimple-fold.c: ... here.  New file.
15481         (ccp_fold_builtin): Rename to ...
15482         (gimple_fold_builtin): ... this.
15483         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
15484
15485 2010-04-15  Richard Guenther  <rguenther@suse.de>
15486
15487         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
15488         fit_double_type, force_fit_type_double, add_double_with_sign,
15489         neg_double, mul_double_with_sign, lshift_double, rshift_double,
15490         lrotate_double, rrotate_double, div_and_round_double): Move ...
15491         * double-int.c: ... here.
15492         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
15493         add_double, neg_double, mul_double_with_sign, mul_double,
15494         lshift_double, rshift_double, lrotate_double, rrotate_double,
15495         div_and_round_double): Move prototypes ...
15496         * double-int.h: ... here.
15497
15498 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
15499
15500         PR target/43742
15501         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
15502         matching constraints to ensure inputs match the output.
15503
15504 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
15505
15506         PR target/43742
15507         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
15508         in an input-only operand.
15509
15510 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
15511
15512         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
15513         (double_int_not, double_int_lshift, double_int_rshift): Declare.
15514         (double_int_negative_p): Convert to static inline function.
15515         * double-int.c (double_int_lshift, double_int_lshift): New functions.
15516         (double_int_negative_p): Remove.
15517         * tree.h (lshift_double, rshift_double):
15518         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
15519         * fold-const.c (fold_convert_const_int_from_real,
15520         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
15521         (lshift_double): Change type of arith argument to bool.
15522         (rshift_double): Change type of arith argument to bool. Correct
15523         comment.
15524         * expmed.c (mask_rtx, lshift_value): (Ditto.).
15525
15526 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
15527
15528         PR target/21803
15529         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
15530         at the start and end of the then/else blocks, and omit them from the
15531         conversion.
15532         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
15533         argument; all callers changed.  Pass zero to old_insns_match_p instead.
15534         (flow_find_head_matching_sequence): New function.
15535         (old_insns_match_p): Check REG_EH_REGION notes for calls.
15536         * basic-block.h (flow_find_cross_jump,
15537         flow_find_head_matching_sequence): Declare functions.
15538
15539 2010-04-14  Jason Merrill  <jason@redhat.com>
15540
15541         PR c++/36625
15542         * c-common.c (attribute_takes_identifier_p): New fn.
15543         * c-common.h: Declare it.
15544
15545 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15546
15547         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
15548         splitter condition.
15549         (*udivmod<mode>4): Ditto.
15550
15551 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15552
15553         * config/i386/i386.md (maxmin_int): Rename code attribute from
15554         maxminiprefix and update all users.
15555         (maxmin_float): Ditto from maxminfprefix.
15556         (logic): Ditto from logicprefix.
15557         (absneg_mnemonic): Ditto from absnegprefix.
15558         * config/i386/mmx.md: Update all users of maxminiprefix,
15559         maxminfprefix and logicprefix for rename.
15560         * config/i386/sse.md: Ditto.
15561         * config/i386/sync.md (sync_<code><mode>): Update for
15562         logicprefix rename.
15563
15564 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15565
15566         PR 42966
15567         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
15568         warnings converted to errors.
15569
15570 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15571
15572         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
15573         used insn_type variable.
15574         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
15575         to avoid set-but-not-used warning.
15576
15577 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15578
15579         * df-core.c (df_ref_debug): Change format string placeholder
15580         from 0x%x to %#x.
15581         * dwarf2asm.c (dw2_asm_output_data_raw,
15582         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
15583         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
15584         * dwarf2out.c (output_cfi, output_cfi_directive,
15585         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
15586         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
15587         Ditto.
15588         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
15589         * print-rtl.c (print_rtx): Ditto.
15590
15591 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15592
15593         PR middle-end/42694
15594         * builtins.c (expand_builtin_pow_root): New function to expand pow
15595         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
15596         series of sqrt and cbrt calls under -ffast-math.
15597         (expand_builtin_pow): Call it.
15598
15599 2010-04-14  Michael Matz  <matz@suse.de>
15600
15601         PR tree-optimization/42963
15602         * tree-cfg.c (touched_switch_bbs): New static variable.
15603         (group_case_labels_stmt): New function broken out from ...
15604         (group_case_labels): ... here, use the above.
15605         (start_recording_case_labels): Allocate touched_switch_bbs.
15606         (end_recording_case_labels): Deallocate it, call
15607         group_case_labels_stmt.
15608         (gimple_redirect_edge_and_branch): Remember index of affected BB.
15609
15610 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15611
15612         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
15613         from insn template.
15614
15615 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
15616
15617         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
15618
15619 2010-04-13  Jan Hubicka  <jh@suse.cz>
15620
15621         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
15622         of optimized out static functions.
15623         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
15624         cost computation.  Also sanity check for overflows.
15625         (update_caller_keys): Update cgraph_edge_badness call; properly
15626         update fibheap and sanity check that it is up to date.
15627         (add_new_edges_to_heap): Update cgraph_edge_badness.
15628         (cgraph_decide_inlining_of_small_function): Likewise;
15629         add sanity checking that badness in heap is up to date;
15630         improve dumping of reason; Update badness of calls to the
15631         offline copy of function currently inlined; dump badness
15632         of functions not inlined because of unit growth limits.
15633
15634 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
15635
15636         PR middle-end/32628
15637         * c-common.c (pointer_int_sum): Disregard overflow that occured only
15638         because of sign-extension change when converting to sizetype here...
15639         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
15640
15641         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
15642         the folding to constants.  Remove redundant final conversion.
15643         (fold_binary) <associate>: Do not associate if the re-association of
15644         constants alone overflows.
15645         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
15646         to the end of the list.
15647         (multiple_of_p) <COND_EXPR>: New case.
15648
15649 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15650
15651         * opt-functions.awk (opt_sanitized_name): New.
15652         (opt_enum): New.
15653         * optc-gen.awk: Use it
15654         * opth-gen.awk: Use it.
15655
15656 2010-04-13  Martin Jambor  <mjambor@suse.cz>
15657
15658         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
15659         (sra_modify_assign): Delete stmts loading dead data even if racc has no
15660         children.  Call replace_uses_with_default_def_ssa_name to handle
15661         SSA_NAES on lhs.
15662
15663 2010-04-13  Michael Matz  <matz@suse.de>
15664
15665         PR middle-end/43730
15666         * builtins.c (expand_builtin_interclass_mathfn): Also create
15667         a register if the predicate doesn't match.
15668
15669 2010-04-13  Diego Novillo  <dnovillo@google.com>
15670
15671         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
15672         * c-pch.c: Include timevar.h.
15673         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
15674         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
15675         * ggc-common.c: Include timevar.h.
15676         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
15677         * timevar.def (TV_PCH_SAVE): Define.
15678         (TV_PCH_CPP_SAVE): Define.
15679         (TV_PCH_PTR_REALLOC): Define.
15680         (TV_PCH_PTR_SORT): Define.
15681         (TV_PCH_RESTORE): Define.
15682         (TV_PCH_CPP_RESTORE): Define.
15683
15684 2010-04-13  Michael Matz  <matz@suse.de>
15685
15686         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
15687         into MINUS_EXPRs.
15688         (can_reassociate_p): New function.
15689         (break_up_subtract_bb, reassociate_bb): Use it.
15690
15691 2010-04-13  Richard Guenther  <rguenther@suse.de>
15692
15693         PR bootstrap/43737
15694         * builtins.c (c_readstr): Fix assert.
15695
15696 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
15697
15698         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
15699         when generating cltd insn.
15700
15701         (*ashl<mode>3_1): Remove special handling for register operand 2.
15702         (*ashlsi3_1_zext): Ditto.
15703         (*ashlhi3_1): Ditto.
15704         (*ashlhi3_1_lea): Ditto.
15705         (*ashlqi3_1): Ditto.
15706         (*ashlqi3_1_lea): Ditto.
15707         (*<shiftrt_insn><mode>3_1): Ditto.
15708         (*<shiftrt_insn>si3_1_zext): Ditto.
15709         (*<shiftrt_insn>qi3_1_slp): Ditto.
15710         (*<rotate_insn><mode>3_1): Ditto.
15711         (*<rotate_insn>si3_1_zext): Ditto.
15712         (*<rotate_insn>qi3_1_slp): Ditto.
15713
15714 2010-04-13  Richard Guenther  <rguenther@suse.de>
15715
15716         * tree-ssa-structalias.c (callused_id): Remove.
15717         (call_stmt_vars): New.
15718         (get_call_vi): Likewise.
15719         (lookup_call_use_vi): Likewise.
15720         (lookup_call_clobber_vi): Likewise.
15721         (get_call_use_vi): Likewise.
15722         (get_call_clobber_vi): Likewise.
15723         (make_transitive_closure_constraints): Likewise.
15724         (handle_const_call): Adjust to do per-call call-used handling.
15725         (handle_pure_call): Likewise.
15726         (find_what_var_points_to): Remove general callused handling.
15727         (init_base_vars): Likewise.
15728         (init_alias_vars): Initialize call_stmt_vars.
15729         (compute_points_to_sets): Process call-used and call-clobbered
15730         vars for call statements.
15731         (delete_points_to_sets): Free call_stmt_vars.
15732
15733 2010-04-13  Richard Guenther  <rguenther@suse.de>
15734
15735         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
15736         Only add RW dependence for dependence distance zero.
15737         Adjust maximal vectorization factor according to dependences.
15738         Move alignment handling ...
15739         (vect_find_same_alignment_drs): ... here.  New function.
15740         (vect_analyze_data_ref_dependences): Adjust.
15741         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
15742         (vect_analyze_data_refs): Adjust minimal vectorization factor
15743         according to data references.
15744         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
15745         dependences before determining the vectorization factor.
15746         Analyze alignment after determining the vectorization factor.
15747         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
15748         dependences before alignment.
15749         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
15750         Adjust prototype.
15751         (vect_analyze_data_refs): Likewise.
15752         (MAX_VECTORIZATION_FACTOR): New define.
15753
15754 2010-04-13  Duncan Sands  <baldrick@free.fr>
15755
15756         * except.h (lang_eh_type_covers): Remove.
15757         * except.c (lang_eh_type_covers): Likewise.
15758
15759 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15760             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15761
15762         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
15763         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
15764         UNITS_PER_LONG where it is ABI relevant.
15765         (s390_return_addr_rtx): Likewise.
15766         (s390_back_chain_rtx): Likewise.
15767         (s390_frame_area): Likewise.
15768         (s390_frame_info): Likewise.
15769         (s390_initial_elimination_offset): Likewise.
15770         (save_gprs): Likewise.
15771         (s390_emit_prologue): Likewise.
15772         (s390_emit_epilogue): Likewise.
15773         (s390_function_arg_advance): Likewise.
15774         (s390_function_arg): Likewise.
15775         (s390_va_start): Likewise.
15776         (s390_gimplify_va_arg): Likewise.
15777         (s390_function_profiler): Likewise.
15778         (s390_optimize_prologue): Likewise.
15779         (s390_rtx_costs): Likewise.
15780         (s390_secondary_reload): Likewise.
15781         (s390_promote_function_mode): Likewise.
15782         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
15783         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
15784         registers available.
15785         (s390_unwind_word_mode): New function.
15786         (s390_function_value): Split 64 bit values into register pair if
15787         used as return value.
15788         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
15789         function call parameters.  Handle parallels.
15790         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
15791         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
15792         (DWARF_CIE_DATA_ALIGNMENT): New macro.
15793         (s390_expand_setmem): Remove unused variable src_addr.
15794         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
15795         deal with 64 bit registers.
15796         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
15797         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
15798         (UNITS_PER_LONG): New macro.
15799         * libjava/include/s390-signal.h: Define extended ucontext
15800         structure containing the upper halfs of the 64 bit registers.
15801
15802 2010-04-13  Simon Baldwin  <simonb@google.com>
15803
15804         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
15805
15806 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
15807
15808         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
15809         rvalue on the RHS if the LHS is of a non-renamable type.
15810         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
15811
15812 2010-04-13  Matthias Klose  <doko@ubuntu.com>
15813
15814         * gcc.c (cc1_options): Handle -iplugindir before processing
15815         the cc1 spec. Only add -iplugindir once.
15816         (cpp_unique_options): Add -iplugindir option if -fplugin* options
15817         found.
15818         * common.opt (iplugindir): Remove `Separate' property, initialize.
15819         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
15820         option.
15821         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
15822         (distclean): Remove plugin dir.
15823         * doc/invoke.texi: Document -iplugindir.
15824
15825 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
15826
15827         * doc/plugins.texi (Loading Plugins): Document short
15828         -fplugin=foo option.
15829         (Plugin API): Mention default_plugin_dir_name function.
15830
15831         * gcc.c (find_file_spec_function): Add new declaration.
15832         (static_spec_func): Use it for "find-file".
15833         (find_file_spec_function): Add new function.
15834         (cc1_options): Add -iplugindir option if -fplugin* options found.
15835
15836         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
15837
15838         * plugin.c (add_new_plugin): Updated comment, and handle short
15839         plugin name.
15840         (default_plugin_dir_name): Added new function.
15841
15842         * common.opt (iplugindir): New option to set the plugin directory.
15843
15844 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
15845
15846         * config/i386/i386.md (any_rotate): New code iterator.
15847         (rotate_insn): New code attribute.
15848         (rotate): Ditto.
15849         (SWIM124): New mode iterator.
15850         (<rotate_insn>ti3): New expander.
15851         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
15852         any_rotate code iterator.
15853         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
15854         using any_rotate code iterator and SWIM124 mode iterator.
15855         (ix86_rotlti3): New insn_and_split pattern.
15856         (ix86_rotrti3): Ditto.
15857         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
15858         ix86_rotl{di,ti}3 patterns.
15859         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
15860         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
15861         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
15862         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
15863         code iterator and SWI mode iterator.
15864         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
15865         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
15866         code iterator.
15867         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
15868         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
15869         (bswap rotatert splitter): Add splitter.
15870         (bswap splitter): Macroize splitter using any_rotate code iterator.
15871         Add insn predicate to split only for TARGET_USE_XCHGB or when
15872         optimizing function for size.
15873
15874 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
15875
15876         * config/pa/pa.c (emit_move_sequence): Remove use of
15877         deleted variable flag_argument_noalias.
15878
15879 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15880
15881         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
15882         configurations.
15883         Add to unsupported targets list.
15884         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
15885         sparc*-sun-solaris2.[567]* from target lists.
15886         * configure: Regenerate.
15887         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
15888         removal.
15889         Remove Solaris 7 patch references.
15890         (Specific, sparc-sun-solaris2.7): Removed.
15891         (sparc-sun-solaris2*): Update Solaris 7 example.
15892         (sparc64-*-solaris2*): Likewise.
15893
15894 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15895
15896         * config.build (alpha*-dec-osf4*): Remove.
15897         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
15898         of obsolete configurations.
15899         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
15900         support.
15901         * config/alpha/t-osf4: Renamed to ...
15902         * config/alpha/t-osf5: ... this.
15903         * config/alpha/osf.h: Renamed to ...
15904         * config/alpha/osf5.h: ... this.
15905         Merged old osf5.h contents.
15906         Update comments.
15907         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
15908         (EXTRA_SPECS): Removed.
15909         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
15910         reflect removal of Tru64 UNIX V4.0/V5.0 support.
15911         Document that.
15912
15913 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15914
15915         * doc/contrib.texi (Contributors, Rainer Orth): Update.
15916
15917 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
15918
15919         PR/43702
15920         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
15921         __thiscall convention.
15922
15923 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
15924
15925         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
15926         orig_base.
15927         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
15928
15929 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
15930
15931         * function.c (assign_parms_initialize_all): Add unused attribute
15932         to fntype.
15933
15934 2010-04-12  Richard Guenther  <rguenther@suse.de>
15935
15936         * gsstruct.def (GSS_CALL): New.
15937         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
15938         * gimple.h: Include tree-ssa-alias.h.
15939         (struct gimple_statement_call): New.
15940         (union gimple_statement_struct_d): Add gimple_call member.
15941         (gimple_call_reset_alias_info): Declare.
15942         (gimple_call_use_set): New function.
15943         (gimple_call_clobber_set): Likewise.
15944         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
15945         * gimple.c (gimple_call_reset_alias_info): New function.
15946         (gimple_build_call_1): Call it.
15947         * lto-streamer-in.c (input_gimple_stmt): Likewise.
15948         * tree-inline.c (remap_gimple_stmt): Likewise.
15949         (expand_call_inline): Remove callused handling.
15950         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
15951         * tree-dfa.c (dump_variable): Likewise.
15952         * tree-parloops.c (parallelize_loops): Likewise.
15953         * tree-ssa.c (init_tree_ssa): Likewise.
15954         (delete_tree_ssa): Likewise.
15955         * tree-flow-inline.h (is_call_used): Remove.
15956         * tree-flow.h (struct gimple_df): Remove callused member.
15957         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
15958         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
15959         (ref_maybe_used_by_call_p_1): Simplify.
15960         (call_may_clobber_ref_p_1): Likewise.
15961         * tree-ssa-structalias.c (compute_points_to_sets): Set
15962         the call stmt used and clobbered sets.
15963         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
15964         (find_tail_calls): Verify the tail call.
15965
15966 2010-04-12  Richard Guenther  <rguenther@suse.de>
15967
15968         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
15969         single-iteration always-inline inlining.
15970         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
15971         (cgraph_decide_inlining): Do not handle always-inline specially.
15972         (try_inline): Remove always-inline cycle detection special case.
15973         Do not recurse on always-inlines.
15974         (cgraph_early_inlining): Do not iterate if not optimizing.
15975         (cgraph_gate_early_inlining): remove.
15976         (pass_early_inline): Run unconditionally.
15977         (gate_cgraph_decide_inlining): New function.
15978         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
15979         not inlining or optimizing.
15980         (cgraph_decide_inlining_of_small_functions): Also consider
15981         always-inline functions.
15982         (cgraph_default_inline_p): Return true for nodes which should
15983         disregard inline limits.
15984         (estimate_function_body_sizes): Assume zero size and time for
15985         nodes which are marked as disregarding inline limits.
15986         (cgraph_decide_recursive_inlining): Do not perform recursive
15987         inlining on always-inline nodes.
15988
15989 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
15990
15991         PR bootstrap/43699
15992         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
15993         for exprs satisfying handled_component_p.
15994
15995 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
15996
15997         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
15998         non-constant aggregate elements.
15999
16000         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
16001         is a real initialization.
16002
16003 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
16004
16005         PR c/36774
16006         * c-decl.c (start_function): Move forward check for nested function.
16007
16008 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16009
16010         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
16011         * config/sh/sh.c: Include reload.h.
16012         (sh_legitimize_reload_address): New.
16013         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
16014         sh_legitimize_reload_address.
16015
16016 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
16017
16018         * config/sh/sh.md (*movqi_pop): New insn pattern.
16019         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
16020
16021 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16022
16023         * config/i386/i386.md (any_shiftrt): New code iterator.
16024         (shiftrt_insn): New code attribute.
16025         (shiftrt): Ditto.
16026         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
16027         using any_shiftrt code iterator.
16028         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
16029         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
16030         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
16031         pattern from corresponding peephole2 patterns.
16032         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
16033         using any_shiftrt code iterator.
16034         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
16035         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
16036         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
16037         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
16038         *{ashr,lshr}<mode>3_cmp_zext.
16039         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
16040
16041 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16042
16043         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
16044         scratch register.
16045         (*lshr<mode>3_cconly): Ditto.
16046
16047 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
16048
16049         * config/i386/i386.md (lshr<mode>3): Macroize expander from
16050         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
16051         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
16052         pattern from *lshr{di,ti}3_1 and corresponding splitters using
16053         DWI mode iterator.
16054         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
16055         from corresponding peephole2 patterns.
16056         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
16057         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
16058         and *lshrdi3_1_rex64 using SWI mode iterator.
16059         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
16060         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
16061         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
16062         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
16063         and *lshrdi3_cmp_rex64 using SWI mode iterator.
16064         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
16065         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
16066         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
16067         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
16068         SWI mode iterator.
16069
16070 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
16071
16072         * config/i386/i386.md (ashr<mode>3): Macroize expander from
16073         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
16074         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
16075         pattern from *ashr{di,ti}3_1 and corresponding splitters using
16076         DWI mode iterator.
16077         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
16078         from corresponding peephole2 patterns.
16079         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
16080         (ashrsi3_cvt): Rename from ashrsi3_31.
16081         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
16082         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
16083         and x86_64_shift_adj_3 using SWI48 mode iterator.
16084         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
16085         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
16086         and *ashrdi3_1_rex64 using SWI mode iterator.
16087         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
16088         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
16089         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
16090         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
16091         and *ashrdi3_cmp_rex64 using SWI mode iterator.
16092         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
16093         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
16094         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
16095         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
16096         SWI mode iterator.
16097         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
16098         * config/i386/i386.c (ix86_split_ashr): Update for renamed
16099         x86_shift<mode>_adj_3 expanders.
16100
16101 2010-04-10  Wei Guozhi  <carrot@google.com>
16102
16103         PR target/42601
16104         * config/arm/arm.c (arm_pic_static_addr): New function.
16105         (legitimize_pic_address): Call arm_pic_static_addr when it detects
16106         a static symbol.
16107         (arm_output_addr_const_extra): Output expression for new pattern.
16108         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
16109
16110 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
16111
16112         * ira-costs.c (record_reg_classes): Ignore alternatives that are
16113         not enabled.
16114
16115         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
16116         * web.c: Include "insn-config.h" and "recog.h".
16117         (union_match_dups): New function.
16118         (web_main): Call it.
16119         (union_defs): Don't try to recognize match_dups.
16120
16121         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
16122         if doing so would replace the entire pattern.
16123
16124 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
16125
16126         PR target/43707
16127         PR target/43709
16128         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
16129         and splitter pattern.  Change splitter operand 1 predicate to
16130         nonmemory_operand.
16131
16132 2010-04-09  Martin Jambor  <mjambor@suse.cz>
16133
16134         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
16135         lattices are addresses of CONST_DECLs with the same initial value.
16136         (ipcp_print_all_lattices): Print values of CONST_DECLs.
16137         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
16138
16139 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
16140             Bernd Schmidt  <bernds@codesourcery.com>
16141
16142         * loop-invariant.c (replace_uses): New static function.
16143         (move_invariant_reg): Use it to ensure we can replace the uses.
16144
16145 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
16146
16147         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
16148         function template.
16149         (picochip_override_options): Enable section anchors only above -O1.
16150         (picochip_reorg): Fixed a couple of build warnings.
16151
16152 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16153
16154         * configure.ac (plugin -rdynamic test): Log result.
16155         * configure: Regenerate.
16156         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
16157         (RDYNAMIC_SPEC): Define.
16158         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
16159
16160 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16161
16162         * configure.ac: Determine Sun ld version numbers.
16163         (comdat_group): Restrict GNU ld version checks to gld.
16164         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
16165         (enable_comdat): Support --enable-comdat.
16166         * configure: Regenerate.
16167         * doc/install.texi (Configuration): Document --enable-comdat.
16168
16169 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16170
16171         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
16172         * config/sol2-gld.h: ... here.
16173         * config.gcc (sparc*-*-solaris2*): Reflect this.
16174         (i[34567]86-*-solaris2*): Use it.
16175
16176 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
16177
16178         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
16179         setup_clocks_p.
16180         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
16181
16182 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16183
16184         PR 42965
16185         * diagnostic.c (diagnostic_initialize): Initialize
16186         some_warnings_are_errors.
16187         (diagnostic_finish): New.
16188         (diagnostic_action_after_output): Call it before exiting.
16189         (diagnostic_report_diagnostic): Do not print message here. Set
16190         some_warnings_are_errors.
16191         * diagnostic.h (diagnostic_context): Delete
16192         issue_warnings_are_errors_message. Add some_warnings_are_errors.
16193         (diagnostic_finish): Declare.
16194         * toplev.c (toplev_main): Call it before exit.
16195
16196 2010-04-09  Jason Merrill  <jason@redhat.com>
16197
16198         PR c++/42623
16199         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
16200         for incomplete type.
16201
16202         PR c++/41788
16203         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
16204         based on a warning flag.
16205
16206 2010-04-09  Richard Guenther  <rguenther@suse.de>
16207
16208         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
16209
16210 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
16211
16212         PR bootstrap/43684
16213         * varasm.c (default_assemble_visibility): Wrap vars that are
16214         set, but unused, by targets without GAS.
16215         * config/rs6000/rs6000.c (paired_emit_vector_compare):
16216         Remove set, but unused, vars.
16217         (rs6000_legitimize_tls_address): Likewise.
16218         (altivec_expand_dst_builtin): Likewise.
16219         * config/darwin.c (machopic_classify_symbol): Likewise.
16220         (machopic_indirection_name): Likewise.
16221
16222 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
16223
16224         * config/i386/i386.md (DWI): New mode iterator.
16225         (S): New mode attribute.
16226         (shift_operand): Ditto.
16227         (shift_immediate_operand): Ditto.
16228         (ashl_input_operand): Ditto.
16229         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
16230         using SDWIM mode iterator.
16231         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
16232         pattern from *ashl{di,ti}3_1 and corresponding splitters using
16233         DWI mode iterator.
16234         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
16235         from corresponding peephole2 patterns.
16236         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
16237         and x86_64_shift_adj_1 using SWI48 mode iterator.
16238         (x86_shift<mode>_adj_2): Ditto.
16239         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
16240         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
16241         using SWI48 mode iterator.
16242         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
16243         *ashldi3_cmp_rex64 using SWI mode iterator.
16244         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
16245         *ashldi3_cconly_rex64 using SWI mode iterator.
16246         * config/i386/i386.c (ix86_split_ashl): Update for renamed
16247         x86_shift<mode>_adj_{1,2}.
16248         (ix86_split_ashr): Ditto.
16249         (ix86_split_lshr): Ditto.
16250
16251 2010-04-09  Richard Guenther  <rguenther@suse.de>
16252
16253         * target.h (builtin_conversion): Pass in input and output types.
16254         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
16255         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
16256         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
16257         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
16258
16259         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
16260         Handle AVX modes.
16261         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
16262
16263 2010-04-09  Richard Guenther  <rguenther@suse.de>
16264
16265         PR target/43152
16266         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
16267
16268 2010-04-09  Richard Guenther  <rguenther@suse.de>
16269
16270         * tree-vectorizer.h (struct _stmt_vec_info): Document
16271         that vectype is the type of the LHS.
16272         (supportable_widening_operation, supportable_narrowing_operation):
16273         Get both input and output vector types as arguments.
16274         (vect_is_simple_use_1): Declare.
16275         (get_same_sized_vectype): Likewise.
16276         * tree-vect-loop.c (vect_determine_vectorization_factor):
16277         Set STMT_VINFO_VECTYPE to the vector type of the def.
16278         (vectorizable_reduction): Adjust.
16279         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
16280         Adjust.  Specify the output vector type.
16281         (vect_pattern_recog_1): Adjust.
16282         * tree-vect-stmts.c (get_same_sized_vectype): New function.
16283         (vectorizable_call): Adjust.
16284         (vectorizable_conversion): Likewise.
16285         (vectorizable_operation): Likewise.
16286         (vectorizable_type_demotion): Likewise.
16287         (vectorizable_type_promotion): Likewise.
16288         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
16289         the def.
16290         (vect_is_simple_use_1): New function.
16291         (supportable_widening_operation): Get both input and output
16292         vector types.
16293         (supportable_narrowing_operation): Likewise.
16294         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
16295
16296 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
16297
16298         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
16299         __thiscall and _thiscall as predefined macros.
16300         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
16301         thiscall attribute handling.
16302         (ix86_comp_type_attributes): Likewise.
16303         (ix86_function_regparm): Likewise.
16304         (ix86_return_pops_args): Likewise.
16305         (init_cumulative_args): Likewise.
16306         (find_drap_reg): Likewise.
16307         (ix86_static_chain): Likewise.
16308         (x86_this_parameter): Likewise.
16309         (x86_output_mi_thunk): Likewise.
16310         (ix86_attribute_table): Add description for thiscall attribute.
16311         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
16312         * doc/extend.texi: Add documentation for thiscall.
16313
16314 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16315
16316         PR c++/28584
16317         * c.opt (Wint-to-pointer-cast): Available in C++.
16318         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
16319
16320 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
16321
16322         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
16323         * calls.c (expand_call): Pass the function type to aggregate_value_p.
16324         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
16325         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
16326         function type instead.  Reorder and simplify checks.
16327
16328         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
16329
16330 2010-04-08  Jing Yu  <jingyu@google.com>
16331             Zdenek Dvorak  <ook@ucw.cz>
16332
16333         PR tree-optimization/42720
16334         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
16335         loop unswitch conditions here from ...
16336         (tree_unswitch_single_loop): ... here.
16337
16338 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
16339
16340         * tree-if-conv.c: Fix comments and simplify logic.
16341
16342 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
16343
16344         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
16345         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
16346         (main_tree_if_conversion): Update call to tree_if_conversion.
16347
16348 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16349
16350         PR 42485
16351         * doc/invoke.texi (-b,-V): Delete.
16352         * doc/tm.texi: Do not mention -b.
16353         * gcc.c (display_help): Delete -b and -V.
16354         (process_command): Delete -b and -V.
16355         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
16356
16357 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
16358             Wolfgang Gellerich  <gellerich@de.ibm.com>
16359
16360         Implement target hook for loop unrolling
16361         * target.h (loop_unroll_adjust): Add a new target hook function.
16362         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
16363         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
16364         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
16365         (s390_loop_unroll_adjust): Implement the new target hook for s390.
16366         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
16367         target hook.
16368         (decide_unroll_stupid): Likewise.
16369
16370 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16371
16372         PR target/43643
16373         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
16374
16375 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16376
16377         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
16378         (Specific, *-*-solaris2*): Likewise.
16379         Don't prefer Sun as over GNU as.
16380
16381 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
16382
16383         * config/s390/s390.c (override_options): Adjust the z10 defaults
16384         for max-unroll-times, max-completely-peeled-insns
16385         and max-completely-peel-times.
16386
16387 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16388
16389         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
16390         instructions for z10.
16391         (s390_expand_setmem): Likewise.
16392         (s390_expand_cmpmem): Likewise.
16393
16394 2010-04-08  Richard Guenther  <rguenther@suse.de>
16395
16396         PR tree-optimization/43679
16397         * tree-ssa-pre.c (eliminate): Only propagate copies.
16398
16399 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
16400
16401         PR bootstrap/43681
16402         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
16403         set but not used variable warning.
16404
16405 2010-04-08  Wei Guozhi  <carrot@google.com>
16406
16407         PR target/41653
16408         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
16409         (arm_size_rtx_costs): Call the new function when optimized for size.
16410
16411 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
16412
16413         PR debug/43670
16414         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
16415         op0 is not a MEM, just return NULL instead of assertion
16416         failure.
16417         (discover_nonconstant_array_refs): Don't walk debug stmts.
16418
16419 2010-04-08  Doug Kwan  <dougkwan@google.com>
16420
16421         * configure.ac: Recognize gold and do not use its version number
16422         to test ld features.
16423         * configure: Regenerate.
16424
16425 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
16426
16427         PR middle-end/40815
16428         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
16429         (negate_value): Move code to push elements to broken_up_substracts ...
16430         (eliminate_plus_minus_pair): ... here.  Push operands that have no
16431         negative pair to plus_negates.
16432         (repropagate_negates, init_reassoc, fini_reassoc): Update.
16433
16434 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16435
16436         * doc/install.texi (Configuration): Move description of
16437         --enable-lto, --with-libelf*, --enable-gold from Java section to
16438         general section.
16439
16440         * doc/generic.texi (Working with declarations)
16441         (Function Properties, C and C++ Trees): Fix typos.
16442         * doc/sourcebuild.texi (Top Level): Likewise.
16443
16444 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
16445
16446         PR c/18624
16447         * tree.h (DECL_READ_P): Define.
16448         (struct tree_decl_common): Add decl_read_flag.
16449         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
16450         a set but not used warning.
16451         (merge_decls): Merge DECL_READ_P flag.
16452         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
16453         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
16454         * c-common.c (handle_used_attribute, handle_unused_attribute):
16455         Likewise.
16456         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
16457         New prototypes.
16458         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
16459         New functions.
16460         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
16461         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
16462         c_parser_binary_expression, c_parser_cast_expression,
16463         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
16464         Call default_function_array_read_conversion instead of
16465         default_function_array_conversion where needed.
16466         (c_parser_unary_expression, c_parser_conditional_expression,
16467         c_parser_postfix_expression_after_primary, c_parser_initelt):
16468         Likewise.  Call mark_exp_read where needed.
16469         (c_parser_statement_after_labels, c_parser_asm_operands,
16470         c_parser_typeof_specifier, c_parser_sizeof_expression,
16471         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
16472         where needed.
16473         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
16474         New.
16475         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
16476         (warn_unused_but_set_parameter): Default to warn_unused
16477         && extra_warnings.
16478         * doc/invoke.texi: Document -Wunused-but-set-variable and
16479         -Wunused-but-set-parameter.
16480
16481         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
16482         used count variable.
16483         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
16484         when operandN variables aren't used in the body of the expander
16485         or splitter.
16486         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
16487         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
16488         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
16489         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
16490         FOR_EACH_IMM_USE_ON_STMT): Likewise.
16491         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
16492         * tree.c (PROCESS_ARG): Likewise.
16493
16494 2010-04-07  Simon Baldwin  <simonb@google.com>
16495
16496         * diagnostic.h (diagnostic_override_option_index): New macro to
16497         set a diagnostic's option_index.
16498         * c-tree.h (c_cpp_error): Add warning reason argument.
16499         * opts.c (_warning_as_error_callback): New.
16500         (register_warning_as_error_callback): Store callback for
16501         warnings enabled via enable_warning_as_error.
16502         (enable_warning_as_error): Call callback, minor code tidy.
16503         * opts.h (register_warning_as_error_callback): Declare.
16504         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
16505         response to -Werror=.
16506         (c_common_init_options): Register warning_as_error_callback in opts.c.
16507         * common.opt: Add -Wno-cpp option.
16508         * c-common.c (struct reason_option_codes_t): Map cpp warning
16509         reason codes to gcc option indexes.
16510         * (c_option_controlling_cpp_error): New function, lookup the gcc
16511         option index for a cpp warning reason code.
16512         * (c_cpp_error): Add warning reason argument, call
16513         c_option_controlling_cpp_error for diagnostic_override_option_index.
16514         * doc/invoke.texi: Document -Wno-cpp.
16515
16516 2010-04-07  Richard Guenther  <rguenther@suse.de>
16517
16518         * ipa-reference.c (mark_load): Use get_base_address.
16519         (mark_store): Likewise.
16520
16521         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
16522         inserting GIMPLE_NOPs into the IL.
16523         * tree-ssa-structalias.c (get_constraint_for_component_ref):
16524         Explicitly strip handled components and indirect references.
16525
16526         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
16527         folding address expressions.
16528         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
16529         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
16530         operand_equal_p to compare decls.
16531         (ptr_deref_may_alias_decl_p): Likewise.
16532         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
16533         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
16534         Handle reversed comparison ops.
16535         * tree-sra.c (asm_visit_addr): Use get_base_address.
16536         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
16537         * ipa-reference.c (mark_address): Use get_base_address.
16538
16539 2010-04-07  Richard Guenther  <rguenther@suse.de>
16540
16541         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
16542         Propagate constants everywhere.
16543
16544 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
16545
16546         PR debug/43516
16547         * tree.c (MAX_INT_CACHED_PREC): Define.
16548         (nonstandard_integer_type_cache): New array.
16549         (build_nonstandard_integer_type): Cache results for precision
16550         <= MAX_INT_CACHED_PREC.
16551
16552 2010-04-07  Richard Guenther  <rguenther@suse.de>
16553
16554         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
16555         -fargument-noalias-global, -fargument-noalias-anything): Remove.
16556         * common.opt: Likewise.
16557         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
16558         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
16559         (nonoverlapping_memrefs_p): Likewise.
16560         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
16561         * opts.c (common_handle_option): Handle OPT_fargument_alias,
16562         OPT_fargument_noalias, OPT_fargument_noalias_anything and
16563         OPT_fargument_noalias_global for backward compatibility.
16564
16565 2010-04-07  Richard Guenther  <rguenther@suse.de>
16566
16567         PR tree-optimization/43270
16568         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
16569         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
16570         * tree-ssa-pre.c (phi_translate_1): Adjust.
16571         (fully_constant_expression): Split out vn_reference handling to ...
16572         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
16573         Fold reads from constant strings.
16574         (vn_reference_lookup): Handle fully constant references.
16575         (vn_reference_lookup_pieces): Likewise.
16576         * Makefile.in (expmed.o-warn): Add -Wno-error.
16577
16578 2010-04-07  Martin Jambor  <mjambor@suse.cz>
16579
16580         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
16581
16582 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
16583
16584         PR driver/41594
16585         * gcc.c: Add -static-libstdc++ to list of recognized options.
16586
16587 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16588
16589         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
16590
16591 2010-04-07  Richard Guenther  <rguenther@suse.de>
16592
16593         PR middle-end/42617
16594         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
16595         bases build simple mem attributes to retain points-to information.
16596
16597 2010-04-07  Richard Guenther  <rguenther@suse.de>
16598
16599         PR middle-end/42617
16600         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
16601         preserve points-to related information.
16602
16603 2010-04-07  Richard Guenther  <rguenther@suse.de>
16604
16605         PR middle-end/42617
16606         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
16607         discard plain indirect references.
16608         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
16609         * tree.c (tree_nop_conversion): Likewise.
16610
16611 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
16612
16613         PR debug/43628
16614         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
16615
16616 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
16617
16618         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
16619         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
16620
16621 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
16622
16623         * tree-if-conv.c: Fix indentation and comments.
16624
16625 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
16626
16627         * tree-if-conv.c: Sort static functions in topological order.
16628
16629 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
16630
16631         * tree-if-conv.c: Fix indentation and comments.
16632
16633 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16634
16635         PR middle-end/43519
16636         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
16637         lang_hooks.types.type_for_size instead of
16638         build_nonstandard_integer_type.
16639         When converting an unsigned type to signed, double its precision.
16640         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
16641         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
16642         (graphite_create_new_loop_guard): When ub + 1 wraps around,
16643         use lb <= ub.
16644
16645 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16646
16647         PR middle-end/43519
16648         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
16649         POINTER_PLUS_EXPR for pointer types.
16650
16651 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16652
16653         PR middle-end/43519
16654         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
16655         * graphite-clast-to-gimple.c: Include langhooks.h.
16656         (max_signed_precision_type): New.
16657         (max_precision_type): Takes two types as arguments.
16658         (precision_for_value): New.
16659         (precision_for_interval): New.
16660         (gcc_type_for_interval): New.
16661         (gcc_type_for_value): New.
16662         (gcc_type_for_clast_term): New.
16663         (gcc_type_for_clast_red): New.
16664         (gcc_type_for_clast_bin): New.
16665         (gcc_type_for_clast_expr): Split up into several functions.
16666         (gcc_type_for_clast_eq): Rewritten.
16667         (compute_bounds_for_level): New.
16668         (compute_type_for_level_1): New.
16669         (compute_type_for_level): New.
16670         (gcc_type_for_cloog_iv): Removed.
16671         (gcc_type_for_iv_of_clast_loop): Rewritten.
16672         (graphite_create_new_loop): Compute the lower and upper bound types
16673         with gcc_type_for_clast_expr.
16674         (graphite_create_new_loop_guard): Same.
16675         (find_cloog_iv_in_expr): Removed.
16676         (compute_cloog_iv_types_1): Removed.
16677         (compute_cloog_iv_types): Removed.
16678         (gloog): Do not call compute_cloog_iv_types.
16679         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
16680         GBB_CLOOG_IV_TYPES.
16681         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
16682         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
16683         (GBB_CLOOG_IV_TYPES): Removed.
16684
16685 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16686
16687         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
16688         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
16689         (detect_commutative_reduction): Same.
16690
16691 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16692
16693         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
16694         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
16695         argument.
16696         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
16697         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
16698         (rewrite_commutative_reductions_out_of_ssa): Same.
16699         * passes.c (execute_function_todo): Call verify_ssa for every pass
16700         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
16701         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
16702         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
16703         with an extra argument.
16704         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
16705         verify_ssa only when the extra argument is true.
16706         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
16707         with an extra argument.
16708         (tree_transform_and_unroll_loop): Same.
16709
16710 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
16711
16712         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
16713         for all the passes of the LNO having LOOP_CLOSED_SSA.
16714         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
16715         * tree-loop-distribution.c (pass_loop_distribution): Same.
16716         * tree-pass.h (TODO_verify_loops): Removed.
16717         * tree-ssa-loop.c (pass_tree_loop_init): Same.
16718         (pass_lim): Same.
16719         (pass_tree_unswitch): Same.
16720         (pass_predcom): Same.
16721         (pass_vectorize): Same.
16722         (pass_linear_transform): Same.
16723         (pass_graphite_transforms): Same.
16724         (pass_iv_canon): Same.
16725         (pass_complete_unroll): Same.
16726         (pass_complete_unrolli): Same.
16727         (pass_parallelize_loops): Same.
16728         (pass_loop_prefetch): Same.
16729         (pass_iv_optimize): Same.
16730
16731 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
16732
16733         PR middle-end/32824
16734         * passes.c (init_optimization_passes): Move pass_lim before
16735         pass_copy_prop and pass_dce_loop.
16736
16737 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
16738
16739         PR target/43667
16740         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
16741         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
16742         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
16743         MULTI_* defines for 4 argument vpermil2p* builtins.
16744
16745 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
16746
16747         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
16748         * config/i386/i386.c (x86_maybe_negate_const_int): New.
16749         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
16750         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
16751         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
16752         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
16753         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
16754         Use x86_maybe_negate_const_int to output insn mnemonic.
16755         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
16756         check from instruction predicate.  Update comments.
16757         * config/i386/sync.md (sync_add<mode>): Use
16758         x86_maybe_negate_const_int to output insn mnemonic.
16759
16760 2010-04-06  Jan Hubicka  <jh@suse.cz>
16761
16762         PR tree-optimization/42906
16763         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
16764         IGNORE_SELF argument.  Set visited_control_parents for fully
16765         processed BBs.
16766         (find_obviously_necessary_stmts): Update call of
16767         mark_control_dependent_edges_necessary.
16768         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
16769
16770 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
16771
16772         * config/i386/i386.md: Remove comment about 'e' and 'E'
16773         operand modifier.
16774
16775 2010-04-06  Richard Guenther  <rguenther@suse.de>
16776
16777         PR tree-optimization/43627
16778         * tree-vrp.c (extract_range_from_unary_expr): Widenings
16779         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
16780         not varying.
16781
16782 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
16783
16784         * BASE-VER: Change to 4.6.0.
16785
16786         PR target/43638
16787         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
16788         handling.
16789
16790 2010-04-06  Richard Guenther  <rguenther@suse.de>
16791
16792         PR middle-end/43661
16793         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
16794
16795 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16796
16797         * doc/invoke.texi (Optimize Options): Document that LTO
16798         won't remove object access purely due to incompatible
16799         declarations.
16800
16801 2010-04-04  Matthias Klose  <doko@ubuntu.com>
16802
16803         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
16804         Initialize variable.
16805
16806 2010-04-03  Richard Guenther  <rguenther@suse.de>
16807
16808         PR middle-end/42509
16809         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
16810         require a non-NULL MEM_OFFSET.
16811
16812 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
16813
16814         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
16815         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
16816         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
16817         config/alpha/predicates.md, config/arm/arm.md,
16818         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
16819         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
16820         config/darwin9.h, config/darwin.c, config/darwin.h,
16821         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
16822         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
16823         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
16824         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
16825         config/mips/mips.md, config/mn10300/mn10300.c,
16826         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
16827         config/rs6000/aix.h, config/rs6000/dfp.md,
16828         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
16829         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
16830         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
16831         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
16832         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
16833         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
16834         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
16835         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
16836         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
16837         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
16838         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
16839         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
16840         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
16841         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
16842         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
16843         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
16844         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
16845         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
16846         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
16847         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
16848         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
16849         opt-functions.awk, opth-gen.awk, params.def, passes.c,
16850         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
16851         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
16852         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
16853         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
16854         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
16855         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
16856         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
16857         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
16858         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
16859         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
16860         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
16861         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
16862         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
16863         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
16864
16865 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16866
16867         PR other/43620
16868         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
16869         * aclocal.m4: Regenerate.
16870
16871 2010-04-02  Richard Guenther  <rguenther@suse.de>
16872
16873         PR tree-optimization/43629
16874         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
16875         if we have seen a constant value.
16876
16877 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
16878
16879         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
16880
16881 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
16882
16883         PR target/43469
16884         * arm.c (legitimize_tls_address): Adjust call to
16885         gen_tls_load_dot_plus_four.
16886         (arm_note_pic_base): New function.
16887         (arm_cannot_copy_insn_p): Use it.
16888         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
16889         constraint.
16890
16891 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16892
16893         PR bootstrap/43531
16894
16895         Revert:
16896         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16897
16898         * Makefile.in ($(out_object_file)): Depend on
16899         gt-$(basename $(notdir $(out_file))).h.
16900
16901 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
16902
16903         * config.gcc (lm32-*-rtems*): Add t-lm32.
16904
16905 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
16906
16907         * config.gcc: Add lm32-*-rtems*.
16908         * config/lm32/rtems.h: New file.
16909
16910 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
16911
16912         PR target/42609
16913         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
16914
16915 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
16916
16917         * dwarf2out.c (output_compilation_unit_header): For
16918         -gdwarf-4 use version 4 instead of version 3.
16919         (output_line_info): For version 4 and above emit additional
16920         maximum ops per insn header field.
16921         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
16922
16923         * dwarf2out.c (is_c_family, is_java): Remove.
16924         (lower_bound_default): New function.
16925         (add_bound_info, gen_descr_array_type_die): Use it.
16926
16927 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
16928
16929         PR debug/43325
16930         * dwarf2out.c (gen_variable_die): Allow debug info for variable
16931         re-declaration when it happens in a function.
16932
16933 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
16934
16935         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
16936         (cgraph_remove_function_insertion_hook): Same.
16937         (cgraph_call_function_insertion_hooks): Same.
16938
16939 2010-04-01  Richard Guenther  <rguenther@suse.de>
16940
16941         PR middle-end/43614
16942         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
16943         and TREE_THIS_VOLATILE.
16944         (copy_ref_info): Likewise.
16945         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
16946         * tree.c (build6_stat): Ignore side-effects of all but arg5
16947         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
16948         TARGET_MEM_REF.
16949
16950 2010-04-01  Richard Guenther  <rguenther@suse.de>
16951
16952         PR tree-optimization/43607
16953         * ipa-type-escape.c (check_call): Do not access non-existing
16954         arguments.
16955
16956 2010-04-01  Richard Guenther  <rguenther@suse.de>
16957
16958         PR middle-end/43602
16959         Revert
16960         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
16961                     Jack Howarth  <howarth@bromo.med.uc.edu>
16962
16963         * tree-profile.c (tree_init_ic_make_global_vars): Make static
16964         variables TLS.
16965
16966 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16967
16968         * doc/install.texi (Prerequisites): Document libelf usability on
16969         IRIX 5/6 and Solaris 2.
16970         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
16971         Update GNU as, GNU ld requirements.
16972         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
16973         Document Sun Studio compiler download.
16974         Update and simplify as, ld recommendations.
16975         (Specific, *-*-solaris2.7): Note obsoletion, removal.
16976
16977 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16978
16979         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
16980         with_tune_32 to pentium4.
16981
16982 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
16983
16984         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
16985
16986 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16987
16988         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
16989         obsoletion, removal.
16990         Update IDO URL.
16991         Document GNU as requirement.
16992         Update configure requirements.
16993         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
16994         Recomment IRIX 6.5.18+.
16995         Document IDF/IDL requirement.
16996         Document GNU as requirement.
16997         Document GNU ld bootstrap failure.
16998         Remove freeware.sgi.com reference.
16999
17000 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17001
17002         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
17003         UNIX V4.0, V5.0 obsoletion, removal.
17004         Remove --with-gc=simple reference.
17005         Update VM requirements during bootstrap.
17006         Remove -oldas bootstrap description.
17007         Update binutils reference.
17008         Remove comparison failure note.
17009
17010 2010-03-31  Richard Guenther  <rguenther@suse.de>
17011             Zdenek Dvorak  <ook@ucw.cz>
17012             Sebastian Pop  <sebastian.pop@amd.com>
17013
17014         PR middle-end/43464
17015         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
17016         with multiple arguments.
17017         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
17018
17019 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
17020
17021         * graphite-dependences.c (print_pddr): Call print_pdr with an
17022         extra argument.
17023         * graphite-poly.c (debug_pdr): Add an extra argument for the
17024         verbosity level.
17025         (print_pdr): Same.
17026         (print_pbb_domain): Same.
17027         (print_pbb): Same.
17028         (print_scop_context): Same.
17029         (print_scop): Same.
17030         (print_cloog): Same.
17031         (debug_pbb_domain): Same.
17032         (debug_pbb): Same.
17033         (print_pdrs): Same.
17034         (debug_pdrs): Same.
17035         (debug_scop_context): Same.
17036         (debug_scop): Same.
17037         (debug_cloog): Same.
17038         (print_scop_params): Same.
17039         (debug_scop_params): Same.
17040         (print_iteration_domain): Same.
17041         (print_iteration_domains): Same.
17042         (debug_iteration_domain): Same.
17043         (debug_iteration_domains): Same.
17044         (print_scattering_function): Same.
17045         (print_scattering_functions): Same.
17046         (debug_scattering_function): Same.
17047         (debug_scattering_functions): Same.
17048         * graphite-poly.h (debug_pdr): Update declaration.
17049         (print_pdr): Same.
17050         (print_pbb_domain): Same.
17051         (print_pbb): Same.
17052         (print_scop_context): Same.
17053         (print_scop): Same.
17054         (print_cloog): Same.
17055         (debug_pbb_domain): Same.
17056         (debug_pbb): Same.
17057         (print_pdrs): Same.
17058         (debug_pdrs): Same.
17059         (debug_scop_context): Same.
17060         (debug_scop): Same.
17061         (debug_cloog): Same.
17062         (print_scop_params): Same.
17063         (debug_scop_params): Same.
17064         (print_iteration_domain): Same.
17065         (print_iteration_domains): Same.
17066         (debug_iteration_domain): Same.
17067         (debug_iteration_domains): Same.
17068         (print_scattering_function): Same.
17069         (print_scattering_functions): Same.
17070         (debug_scattering_function): Same.
17071         (debug_scattering_functions): Same.
17072
17073 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
17074
17075         * graphite-poly.c (print_scattering_function_1): New.
17076         (print_scattering_function): Call it.
17077         (print_scop_params): Remove spaces at the end of lines.
17078         (print_cloog): New.
17079         (debug_cloog): New.
17080         * graphite-poly.h (print_cloog): Declared.
17081         (debug_cloog): Declared.
17082
17083 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
17084
17085         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
17086         in loop->header.
17087         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
17088         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
17089         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
17090         to switch between adding the IV bump in loop->latch or in loop->header.
17091
17092 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
17093
17094         * graphite-poly.c (print_scattering_function): Pretty print following
17095         the scoplib format.
17096         (print_pdr): Same.
17097         (print_pbb_domain): Same.
17098         (dump_gbb_cases): Same.
17099         (dump_gbb_conditions): Same.
17100         (print_pdrs): Same.
17101         (print_pbb): Same.
17102         (print_scop_params): Same.
17103         (print_scop_context): Same.
17104         (print_scop): Same.
17105         (print_pbb_body): New.
17106         (lst_indent_to): New.
17107         (print_lst): Start new lines with a #.
17108         * graphite-poly.h (pbb_bb): New.
17109         (pbb_index): Use pbb_bb.
17110         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
17111         disjuncts.
17112         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
17113
17114 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
17115
17116         * dwarf2out.c (size_of_die): For -gdwarf-4 use
17117         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
17118         and 0 instead of 1 for dw_val_class_flag.
17119         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
17120         dw_val_class_range_list, dw_val_class_loc_list,
17121         dw_val_class_lineptr and dw_val_class_macptr, use
17122         DW_FORM_flag_present for dw_val_class_flag and
17123         DW_FORM_exprloc for dw_val_class_loc.
17124         (output_die): For -gdwarf-4 print dw_val_class_loc
17125         size as uleb128 instead of 1 or 2 bytes and don't print
17126         anything for dw_val_class_flag.
17127
17128         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
17129         instead of cselib_lookup following by tweaking locs->setting_insn.
17130
17131         PR bootstrap/43596
17132         * cselib.c (cselib_process_insn): Clear cselib_current_insn
17133         even before returning from label, setjmp call or volatile asm
17134         handling.
17135
17136 2010-03-31  Richard Guenther  <rguenther@suse.de>
17137
17138         PR middle-end/43600
17139         * cgraphunit.c (cgraph_output_in_order): Do not allocate
17140         temporary data on stack.
17141
17142 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17143
17144         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
17145         (PUSHSECTION_ASM_OP): Remove.
17146         (POPSECTION_ASM_OP): Remove.
17147         (PUSHSECTION_FORMAT): Remove.
17148         * config/sol2.h (PUSHSECTION_FORMAT): Define.
17149         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
17150         * config/sol2.c (solaris_output_init_fini): Use it.
17151
17152 2010-03-31  Jie Zhang  <jie@codesourcery.com>
17153
17154         PR 43574
17155         * opt-functions.awk (var_type_struct): Use signed char type
17156         for simple variables.
17157
17158 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17159
17160         * config/sol2.c: Include output.h.
17161         (solaris_assemble_visibility): New function.
17162         * config/t-sol2 (sol2.o): Add output.h dependency.
17163         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
17164         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
17165         Redefine.
17166
17167 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
17168
17169         PR target/43580
17170         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
17171         V2SImode or XFmode on PRE_DEC.
17172
17173         PR debug/43557
17174         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
17175         BLKmode.
17176
17177 2010-03-31  Jie Zhang  <jie@codesourcery.com>
17178
17179         PR 43562
17180         * reload.h (caller_save_initialized_p): Declare.
17181         * toplev.c (backend_init_target): Don't call
17182         init_caller_save but set caller_save_initialized_p to false.
17183         * caller-save.c (caller_save_initialized_p): Define.
17184         (init_caller_save): Check caller_save_initialized_p.
17185         * ira.c (ira): Call init_caller_save if flag_caller_saves.
17186
17187 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17188
17189         PR target/39048
17190         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
17191         and soft-fp/t-softfp to tmake_file.
17192         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
17193         (LIBGCC2_TF_CEXT): Define.
17194         (TF_SIZE): Define.
17195
17196 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
17197
17198         PR debug/42977
17199         * cselib.c (n_useless_values): Document handling of debug locs.
17200         (n_useless_debug_values, n_debug_values): New variables.
17201         (new_elt_loc_list): Don't add to debug values, keep count.
17202         (promote_debug_loc): New.
17203         (cselib_reset_table): Zero new variables.
17204         (entry_and_rtx_equal_p): Promote debug locs.
17205         (discard_useless_locs): Increment n_useless_debug_values for
17206         debug values.
17207         (remove_useless_values): Adjust n_useless_values and n_debug_values
17208         with n_useless_debug_values.
17209         (add_mem_for_addr): Promote debug locs.
17210         (cselib_lookup_mem): Likewise.
17211         (cselib_lookup_addr): Renamed to...
17212         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
17213         (cselib_log_lookup): ... this.  Turn into...
17214         (cselib_lookup_addr): ... new wrapper.
17215         (cselib_lookup_from_insn): New.
17216         (cselib_invalidate_regno): Increment n_useless_debug_values for
17217         debug values.
17218         (cselib_invalidate_mem): Likewise.
17219         (cselib_process_insn): Take n_deleted and n_debug_values into
17220         account to guard remove_useless_value call.
17221         (cselib_finish): Zero n_useless_debug_values.
17222         * cselib.h (cselib_lookup_from_insn): Declare.
17223         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
17224         (sched_analyze_2): Likewise.
17225
17226 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
17227
17228         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
17229         functions.
17230         (adjust_mems): Replace narrowing SUBREG of expression containing
17231         just PLUS, MINUS, MULT and ASHIFT of registers and constants
17232         with operations in the narrower mode.
17233
17234         PR debug/43593
17235         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
17236         regs_invalidated_by_call instead all call_used_reg_set registers.
17237
17238 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
17239
17240         PR middle-end/43430
17241         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
17242         pointer comparisons with types_compatible_p.
17243         * tree-vect-stmts.c (vectorizable_call): Same.
17244         (vectorizable_condition): Same.
17245
17246 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17247
17248         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
17249         stack check if the mask would be zero.
17250
17251 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
17252             Jack Howarth  <howarth@bromo.med.uc.edu>
17253
17254         * tree-profile.c (tree_init_ic_make_global_vars): Make static
17255         variables TLS.
17256
17257 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
17258
17259         PR other/25232
17260         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
17261         and __unordtf2.
17262         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
17263         Include ___unordxf2 and ___unordtf2.
17264         * config/i386/libgcc-glibc.ver: Do not define inheritance from
17265         GCC_4.4.0 here.
17266
17267 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
17268
17269         * config/lm32/t-lm32: New file.
17270         * config.gcc: Use the above file when targetting lm32.
17271
17272 2010-03-28  Duncan Sands  <baldrick@free.fr>
17273
17274         * Makefile.in (PLUGIN_HEADERS): Add except.h.
17275
17276 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
17277
17278         PR middle-end/43431
17279         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
17280         Improve vectorization cost model diagnostic.
17281
17282 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
17283
17284         PR middle-end/43436
17285         * tree-vect-data-refs.c (vect_analyze_data_refs): When
17286         compute_data_dependences_for_loop returns false, early exit
17287         and output an extra diagnostic for the failed data reference
17288         analysis.
17289
17290 2010-03-29  Richard Guenther  <rguenther@suse.de>
17291
17292         PR tree-optimization/43560
17293         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
17294         (can_sm_ref_p): Treat stores to readonly locations as trapping.
17295
17296 2010-03-29  Jie Zhang  <jie@codesourcery.com>
17297
17298         PR 43564
17299         * toplev.c (process_options): Set optimization_default_node
17300         and optimization_current_node.
17301         * opts.c (decode_options): Don't set optimization_default_node
17302         and optimization_current_node.
17303
17304 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
17305
17306         * config/rtems.h: Abandon -qrtems_debug.
17307
17308 2010-03-28  Jan Hubicka  <jh@suse.cz>
17309
17310         PR tree-optimization/43505
17311         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
17312         map should not be copied.
17313
17314 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17315
17316         PR middle-end/41674
17317         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
17318         cdtors, set DECL_PRESERVE_P.
17319         * ipa.c (cgraph_externally_visible_p): Return true if declaration
17320         should be preseved.
17321
17322 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
17323
17324         PR tree-optimization/43528
17325         * stor-layout.c (place_field): Check that constant fits into
17326         unsigned HWI when skipping calculation of MS bitfield layout.
17327
17328 2010-03-27  Jan Hubicka  <jh@suse.cz>
17329
17330         PR middle-end/43391
17331         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
17332         notice_global_symbol work.
17333
17334 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
17335
17336         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
17337         instead of dwarf2out_decl.
17338         (struct var_loc_node): Remove section_label field.
17339         (dwarf2out_function_decl): New function.
17340         (dwarf2out_var_location): Don't set section_label field.
17341         (dwarf2out_begin_function): Don't empty decl_loc_table here.
17342
17343 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
17344
17345         PR tree-optimization/43544
17346         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
17347         First argument for builtin vectorized function hook is now a
17348         tree to be able to distinguish between machine specific and
17349         standard builtins.
17350         * targhooks.c (default_builtin_vectorized_function): Ditto.
17351         * targhooks.h (default_builtin_vectorized_function): Ditto.
17352         * target.h (struct gcc_target): Ditto.
17353         * tree-vect-stmts.c (vectorizable_function): Ditto.
17354         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
17355         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
17356         Ditto.
17357
17358 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
17359
17360         PR c/43381
17361         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
17362         nested binding iff it is a FUNCTION_DECL.
17363         (store_parm_decls_newstyle): Pass nested=true to bind for
17364         FUNCTION_DECLs amongst parameters.
17365
17366 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
17367
17368         * var-tracking.c (vt_expand_loc_callback): Don't run
17369         cselib_expand_value_rtx_cb in dummy mode if
17370         cselib_dummy_expand_value_rtx_cb returned false.
17371
17372         * var-tracking.c (emit_note_insn_var_location): For one part
17373         notes with offset 0, don't add EXPR_LIST around the location.
17374         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
17375         add_location_or_const_value_attribute): Adjust for that change.
17376
17377         PR debug/43540
17378         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
17379         into first operand and location into second.
17380         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
17381         dw_cfi_oprnd_loc for DW_CFA_expression.
17382         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
17383         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
17384         assume first argument is regnum and second argument is location.
17385
17386 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
17387
17388         PR target/42113
17389         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
17390         of scratch register to DImode.  Split to DImode comparison operator.
17391         Use SImode subreg of scratch register in the multiplication.
17392         (*cmp_sadd_sidi): Ditto.
17393         (*cmp_ssub_si): Ditto.
17394         (*cmp_ssub_sidi): Ditto.
17395
17396 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
17397
17398         PR target/43524
17399         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
17400         Remove invalid assert and wrong comment.
17401
17402 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
17403
17404         PR debug/43516
17405         * flags.h (final_insns_dump_p): New extern.
17406         * final.c (final_insns_dump_p): New variable.
17407         (rest_of_clean_state): Set it before -fdump-final-insns=
17408         dumping, clear afterwards.
17409         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
17410         MEM_ALIAS_SET on MEMs.
17411
17412 2010-03-26  David S. Miller  <davem@davemloft.net>
17413
17414         * configure.ac: Fix sparc GOTDATA_OP bug check.
17415         * configure: Rebuild.
17416
17417 2010-03-26  Alan Modra  <amodra@gmail.com>
17418
17419         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
17420
17421 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17422
17423         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
17424         TLS_SECTION_ASM_FLAG.
17425
17426 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
17427
17428         PR bootstrap/43511
17429         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
17430         Clear first_function_block_is_cold.
17431
17432         PR c/43385
17433         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
17434         argument if the argument is truth_value_p.
17435
17436 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
17437
17438         * config/rs6000/constraints.md: Update copyright year for my changes.
17439
17440         PR target/43484
17441         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
17442         used in reg+reg addressing, swap registers.
17443
17444 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
17445
17446         PR debug/43293
17447         * target.h (struct gcc_target): Add code_end hook.
17448         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
17449         if not yet defined.
17450         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
17451         * toplev.c (compile_file): Call targetm.asm_out.code_end
17452         hook before unwind info/debug info output.
17453         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
17454         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
17455         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
17456         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
17457         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
17458         * config/i386/i386.c (ix86_file_end): Renamed to...
17459         (ix86_code_end): ... this.  Make static.  Don't call
17460         file_end_indicate_exec_stack.  Emit unwind info using
17461         final_start_function/final_end_function.
17462         (darwin_x86_file_end): Remove.
17463         (TARGET_ASM_CODE_END): Define.
17464         * config/i386/i386.h (TARGET_ASM_FILE_END,
17465         NEED_INDICATE_EXEC_STACK): Don't define.
17466         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
17467         (TARGET_ASM_FILE_END): Define to darwin_file_end.
17468         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
17469         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
17470
17471         PR target/43498
17472         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
17473         at the beginning and final_end_function at the end.
17474         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
17475
17476 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17477
17478         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
17479         and Sun as TLS syntax.
17480         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
17481         * configure: Regenerate.
17482         * config.in: Regenerate.
17483         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
17484         (default_elf_asm_named_section): Use it.
17485         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
17486         (i386_output_dwarf_dtprel): Likewise.
17487         (output_addr_const_extra): Likewise.
17488         (output_pic_addr_const): Lowercase @GOTTPOFF.
17489         (output_addr_const_extra): Likewise.
17490         (output_pic_addr_const): Lowercase @GOTNTPOFF.
17491         (output_addr_const_extra): Likewise.
17492         (output_pic_addr_const): Lowercase @INDNTPOFF.
17493         (output_addr_const_extra): Likewise.
17494         (output_pic_addr_const): Lowercase @NTPOFF.
17495         (output_addr_const_extra): Likewise.
17496         (output_pic_addr_const): Lowercase @TPOFF.
17497         (output_addr_const_extra): Likewise.
17498         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
17499         (*tls_global_dynamic_64): Likewise.
17500         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
17501         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
17502
17503         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
17504         (ASM_OUTPUT_TLS_COMMON): Use it.
17505         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
17506
17507         PR target/38118
17508         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
17509         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
17510         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
17511         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
17512         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
17513         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
17514
17515 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17516
17517         * config/i386/i386.c (override_options): Don't accept
17518         -mtls-dialect=sun any longer.
17519         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
17520         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
17521         (*tls_local_dynamic_base_32_sun): Likewise.
17522         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
17523
17524 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
17525
17526         PR debug/43508
17527         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
17528         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
17529
17530         PR debug/43479
17531         * ira.c (adjust_cleared_regs): New function.
17532         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
17533
17534         PR debug/19192
17535         PR debug/43479
17536         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
17537         from gimple_block.
17538         * expr.c (expand_expr_real): Restore previous
17539         curr_insn_source_location and curr_insn_block after
17540         expand_expr_real_1 call.
17541         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
17542         instead of expand_expr_real_1.
17543
17544 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
17545
17546         PR rtl-optimization/43413
17547         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
17548         hard regs too.
17549
17550 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
17551
17552         PR target/43348
17553         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
17554         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
17555
17556 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
17557
17558         * config/i386/i386.c (ix86_target_string): Add -mfma.
17559         Fix a typo in comment.
17560
17561 2010-03-22  Mike Stump  <mikestump@comcast.net>
17562
17563         PR target/23071
17564         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
17565         Don't overly align based upon packed packed fields.
17566
17567 2010-03-22  Jason Merrill  <jason@redhat.com>
17568
17569         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
17570         Use () rather than [], and move before the element type.
17571
17572 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17573
17574         * doc/configfiles.texi (Configuration Files): Removed
17575         fixinc/Makefile*, intl/Makefile.*.
17576         * doc/makefile.texi: Fixed markup. Abstract from version
17577         control system used.
17578         (Makefile): Removed obsolete gcc/java/parse.y example.
17579         * doc/sourcebuild.texi: Likewise.
17580         (Top Level): Added config, gnattools, libdecnumber, libgcc,
17581         libgomp, libssp.  Removed fastjar.
17582         (Miscellaneous Docs): Clarify location.
17583         Added COPYING3, COPYING3.LIB.
17584         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
17585
17586 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17587
17588         PR target/38085
17589         * config/i386/i386.c (x86_function_profiler)
17590         [!NO_PROFILE_COUNTERS]: Fix typo.
17591         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
17592         instead of callq.
17593
17594 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
17595             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17596
17597         * doc/sourcebuild.texi (Test Directives): Split into six
17598         subsections, with most of the current text in new subsections
17599         Directives, Selectors, and Final Actions.
17600         (Directives): Split list of test directives into multiple
17601         subsubsections.
17602         (Selectors): Describe use and syntax of selectors.
17603         (Effective-Target Keywords): Describe all existing keywords.
17604         (Add Options): Describe features for dg-add-options.
17605         (Require Support): Describe variants of dg-require-support.
17606         (Final Actions): Describe commands to use in dg-final.
17607
17608 2010-03-22  Michael Matz  <matz@suse.de>
17609
17610         PR middle-end/43475
17611         * recog.c (validate_replace_rtx_group): Replace also in
17612         REG_EQUAL and REG_EQUIV notes.
17613
17614 2010-03-22  Richard Guenther  <rguenther@suse.de>
17615
17616         PR tree-optimization/43390
17617         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
17618         sure vector extracts are type correct.
17619
17620 2010-03-22  Richard Guenther  <rguenther@suse.de>
17621
17622         PR middle-end/40106
17623         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
17624         x * sqrt (x) even when optimizing for size if the target
17625         has native support for sqrt.
17626
17627 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
17628
17629         * varasm.c (make_decl_rtl_for_debug): Also clear
17630         flag_mudflap for the duration of make_decl_rtl call.
17631
17632         PR debug/43443
17633         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
17634         locs from preserved VALUEs.
17635
17636 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17637
17638         PR middle-end/42718
17639         * pa.md (movmemsi): Set align to one if zero.
17640         (movmemdi): Likewise.
17641
17642 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
17643
17644         PR target/42321
17645         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
17646         with their corresponding prologue pushes.
17647
17648 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
17649
17650         PR target/43156
17651         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
17652         at the begining or end.
17653         (spu_expand_epilogue): Likewise.
17654
17655 2010-03-20  Richard Guenther  <rguenther@suse.de>
17656
17657         PR rtl-optimization/43438
17658         * combine.c (make_extraction): Properly zero-/sign-extend an
17659         extraction of the low part of a CONST_INT.  Also handle
17660         CONST_DOUBLE.
17661
17662 2010-03-19  Mike Stump  <mikestump@comcast.net>
17663
17664         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
17665         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
17666         (override_options): Use SUBTARGET32_DEFAULT_CPU.
17667
17668 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
17669
17670         PR c/43211
17671         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
17672         an error.
17673
17674 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
17675
17676         PR rtl-optimization/42258
17677         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
17678         use that may match DEF.
17679
17680         PR target/40697
17681         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
17682         the cost of loading the constant rather than assuming
17683         COSTS_N_INSNS (1).
17684         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
17685         outer code is AND, do the same tests as the andsi3 expander and
17686         return COSTS_N_INSNS (1) if and is cheap.
17687
17688         * optabs.c (avoid_expensive_constant): Fix formatting.
17689
17690 2010-03-19  Michael Matz  <matz@suse.de>
17691
17692         PR c++/43116
17693         * attribs.c (decl_attributes): When rebuilding a function pointer
17694         type use the same qualifiers as the original pointer type.
17695
17696 2010-03-19  Martin Jambor  <mjambor@suse.cz>
17697
17698         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
17699         and is_gimple_ip_invariant_address.
17700
17701 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17702
17703         Revert
17704         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17705
17706         * config/arm/arm.c (arm_override_options): Turn off
17707         flag_dwarf2_cfi_asm for AAPCS variants.
17708
17709 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17710
17711         PR target/43399
17712         * config/arm/arm.c (emit_multi_reg_push): Update comments.
17713         Use PRE_MODIFY instead of PRE_DEC.
17714         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
17715         (vfp_emit_fstmd): Likewise.
17716
17717 2010-03-19  Michael Matz  <matz@suse.de>
17718
17719         PR target/43305
17720         * builtins.c (expand_builtin_interclass_mathfn,
17721         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
17722         if that fails.
17723
17724 2010-03-19  Richard Guenther  <rguenther@suse.de>
17725
17726         PR tree-optimization/43415
17727         * tree-ssa-pre.c (phi_translate): Split out worker to ...
17728         (phi_translate_1): ... this.
17729         (phi_translate): Move all caching here.  Cache all NARY
17730         and REFERENCE translations.
17731
17732 2010-03-19  David S. Miller  <davem@davemloft.net>
17733
17734         With help from Eric Botcazou.
17735         * config/sparc/sparc.c: Include dwarf2out.h.
17736         (emit_pic_helper): Delete.
17737         (pic_helper_symbol_name): Delete.
17738         (pic_helper_emitted_p): Delete.
17739         (pic_helper_needed): New.
17740         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
17741         (get_pc_thunk_name): New.
17742         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
17743         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
17744         Set pic_helper_needed to true.  Don't call emit_pic_helper.
17745         (sparc_expand_prologue): Update load_pic_register call.
17746         (sparc_output_mi_thunk): Likewise.
17747         (sparc_file_end): Emit a hidden comdat symbol for the PIC
17748         thunk if possible.  Output CFI information as needed.
17749
17750 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17751             Jack Howarth  <howarth@bromo.med.uc.edu>
17752
17753         PR target/36399
17754         * config/i386/i386.h: Fix ABI on darwin x86-32.
17755
17756 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
17757
17758         * tree.h: Declare make_decl_rtl_for_debug.
17759         * varasm.c (make_decl_rtl_for_debug): New.
17760         * dwarf2out.c (rtl_for_decl_location): Call it.
17761         * cfgexpand.c (expand_debug_expr): Call it.
17762
17763 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
17764
17765         PR bootstrap/43399
17766         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
17767         mem_mode.
17768
17769         PR bootstrap/43403
17770         * var-tracking.c (vt_init_cfa_base): Do nothing if
17771         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
17772
17773 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
17774
17775         PR debug/42873
17776         * var-tracking.c (canonicalize_vars_star): New.
17777         (dataflow_post_merge_adjust): Use it.
17778
17779 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
17780
17781         PR debug/43058
17782         * var-tracking.c (non_suitable_const): New function.
17783         (add_uses): For DEBUG_INSNs with constants, don't record any
17784         value, instead just the constant value itself.
17785         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
17786         is not VAR_LOC_UNKNOWN_P, set var to the constant.
17787         (emit_notes_in_bb): Likewise.
17788         (emit_note_insn_var_location): For onepart variables if
17789         cur_loc is a VOIDmode constant, use DECL_MODE.
17790
17791 2010-03-18  Martin Jambor  <mjambor@suse.cz>
17792
17793         PR middle-end/42450
17794         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
17795         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
17796         all non-clones.  Moved call redirection...
17797         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
17798         (cgraph_materialize_all_clones): Dispose of all
17799         combined_args_to_skip bitmaps.
17800         (verify_cgraph_node): Do not check for edges pointing to wrong
17801         nodes in inline clones.
17802         * tree-inline.c (copy_bb): Call
17803         cgraph_redirect_edge_call_stmt_to_callee.
17804         * ipa.c (cgraph_remove_unreachable_nodes): Call
17805         cgraph_node_remove_callees even when there are used clones.
17806
17807 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
17808
17809         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
17810
17811 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
17812
17813         PR target/43383
17814         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
17815         for 32bit.
17816
17817 2010-03-18  Michael Matz  <matz@suse.de>
17818
17819         PR middle-end/43419
17820         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
17821         into sqrt(x) if we need to preserve signed zeros.
17822
17823 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
17824             Eric Botcazou  <ebotcazou@adacore.com>
17825
17826         PR rtl-optimization/43360
17827         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
17828         note if we don't know its invariant status.
17829
17830 2010-03-18  Michael Matz  <matz@suse.de>
17831
17832         PR tree-optimization/43402
17833         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
17834         PHI chains of ssa names registered for update.
17835
17836 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
17837
17838         PR target/42427
17839         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
17840         non-offsettable and pre_modify update addressing.
17841         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
17842         and "2" alternatives "#".
17843         (*movdd_softfloat32): Make all alternatives "#";
17844         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
17845         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
17846         (*movdf_softfloat32): Make all alternatives "#";
17847         (movdi): Use the new DIFD mode iterator to create a common splitter
17848         for movdi, movdf and movdd patterns.
17849
17850 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
17851
17852         * common.opt (dumpdir): Remove redundant tab.
17853
17854 2010-03-17  Martin Jambor  <mjambor@suse.cz>
17855
17856         PR tree-optimization/43347
17857         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
17858         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
17859
17860 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
17861
17862         PR rtl-optimization/42216
17863         * regrename.c (create_new_chain): New function, broken out from...
17864         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
17865         appending a use to an empty chain.
17866         (build_def_use): Remove previous changes that convert OP_INOUT to
17867         OP_OUT operands; instead detect the case where an OP_INOUT operand
17868         uses a previously untracked register and create an empty chain for it.
17869
17870 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17871
17872         * doc/extend.texi (Function Attributes): Rewrite unfinished
17873         sentence in ms_abi documentation.
17874
17875 2010-03-17  Alan Modra  <amodra@gmail.com>
17876
17877         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
17878         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
17879         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
17880         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
17881
17882 2010-03-16  Richard Henderson  <rth@redhat.com>
17883
17884         PR middle-end/43365
17885         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
17886         (lower_try_finally): Save and restore eh_seq around the expansion
17887         of the try-finally.
17888
17889 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
17890
17891         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
17892         statements before splitting block.
17893
17894 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17895
17896         * doc/sourcebuild.texi (Testsuites): Fix markup.
17897         Use pathnames relative to gcc/testsuite.
17898         (Test Directives): Move description of how timeout is determined.
17899         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
17900         (C Tests): Correct gcc.misc-tests directory.
17901         Framework tests now live in gcc.test-framework.
17902
17903 2010-03-16  Richard Guenther  <rguenther@suse.de>
17904
17905         PR middle-end/43379
17906         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
17907         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
17908
17909 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
17910             Alexandre Oliva  <aoliva@redhat.com>
17911
17912         PR tree-optimization/42917
17913         * lambda-code.c (remove_iv): Skip debug statements.
17914         (lambda_loopnest_to_gcc_loopnest): Likewise.
17915         (not_interesting_stmt): Debug statements are not interesting.
17916
17917 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
17918
17919         PR debug/43051
17920         PR debug/43092
17921         * cselib.c (cselib_preserve_constants,
17922         cfa_base_preserved_val): New static variables.
17923         (preserve_only_constants): New function.
17924         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
17925         clear its REG_VALUES.  If cselib_preserve_constants, don't
17926         empty the whole hash table, but preserve there VALUEs with constants,
17927         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
17928         (cselib_preserve_cfa_base_value): New function.
17929         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
17930         (cselib_init): Change argument to int bitfield.  Set
17931         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
17932         is in it.
17933         (cselib_finish): Clear cselib_preserve_constants and
17934         cfa_base_preserved_val.
17935         * cselib.h (enum cselib_record_what): New enum.
17936         (cselib_init): Change argument to int.
17937         (cselib_preserve_cfa_base_value): New prototype.
17938         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
17939         * dse.c (dse_step1): Likewise.
17940         * cfgcleanup.c (thread_jump): Likewise.
17941         * sched-deps.c (sched_analyze): Likewise.
17942         * gcse.c (local_cprop_pass): Likewise.
17943         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
17944         If FN is non-NULL, call the callback always and whenever it returns
17945         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
17946         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
17947         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
17948         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
17949         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
17950         * var-tracking.c: Include recog.h.
17951         (bb_stack_adjust_offset): Remove.
17952         (vt_stack_adjustments): Don't call it, instead just gather the
17953         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
17954         (adjust_stack_reference): Remove.
17955         (compute_cfa_pointer): New function.
17956         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
17957         (struct adjust_mem_data): New type.
17958         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
17959         functions.
17960         (get_address_mode): New function.
17961         (replace_expr_with_values): Use it.
17962         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
17963         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
17964         (adjust_sets): Remove.
17965         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
17966         Use get_address_mode.
17967         (get_adjusted_src): Remove.
17968         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
17969         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
17970         (add_with_sets): Don't call adjust_sets.
17971         (fp_setter, vt_init_cfa_base): New functions.
17972         (vt_initialize): Change return type to bool.  Move most of pool etc.
17973         initialization to the beginning of the function from end.  Pass
17974         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
17975         If !frame_pointer_needed, call vt_stack_adjustment before mos
17976         vector is filled, call vt_init_cfa_base if argp/framep has been
17977         eliminated to sp.  If frame_pointer_needed and argp/framep has
17978         been eliminated to hard frame pointer, set
17979         hard_frame_pointer_adjustment and call vt_init_cfa_base after
17980         encountering fp setter in the prologue.  For MO_ADJUST, call
17981         log_op_type before pusing the op into mos vector, not afterwards.
17982         Call adjust_insn before cselib_process_insn/add_with_sets,
17983         call cancel_changes (0) afterwards.
17984         (variable_tracking_main_1): Adjust for vt_initialize calling
17985         vt_stack_adjustments and returning whether it succeeded or not.
17986
17987 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
17988
17989         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
17990         debug statements.
17991
17992 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
17993
17994         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
17995         has been set.
17996         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
17997         drap_reg has not been set.
17998
17999 2010-03-15  Michael Matz  <matz@suse.de>
18000
18001         PR middle-end/43300
18002         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
18003         use it to expand block copies.
18004         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
18005         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
18006         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
18007
18008 2010-03-15  Richard Guenther  <rguenther@suse.de>
18009
18010         PR tree-optimization/43367
18011         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
18012         elimination check.
18013
18014 2010-03-15  Richard Guenther  <rguenther@suse.de>
18015
18016         PR tree-optimization/43317
18017         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
18018
18019 2010-03-15  Martin Jambor  <mjambor@suse.cz>
18020
18021         PR tree-optimization/43141
18022         * tree-sra.c (create_abstract_origin): New function.
18023         (modify_function): Call create_abstract_origin.
18024
18025 2010-03-15  Chris Demetriou  <cgd@google.com>
18026
18027         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
18028         wasn't copied.
18029
18030 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18031
18032         PR middle-end/43354
18033         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
18034         call insert_out_of_ssa_copy for default definitions.
18035
18036 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18037
18038         * graphite-clast-to-gimple.c (my_long_long): Defined.
18039         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
18040         * graphite-sese-to-poly.c (my_long_long): Defined.
18041         (scop_ivs_can_be_represented): Use it.
18042
18043 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18044
18045         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
18046         graphite-max-bbs-per-function, and loop-block-tile-size.
18047         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
18048         with "maximum".
18049         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
18050
18051 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18052
18053         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
18054         forward declaration.
18055         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
18056         (add_upper_bounds_from_estimated_nit): New.
18057         (build_loop_iteration_domains): Use it.
18058
18059 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18060
18061         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
18062
18063 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18064
18065         PR middle-end/43306
18066         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
18067         should be an INTEGER_CST.  Also handle CASE_CONVERT.
18068
18069 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18070
18071         * graphite.c (graphite_initialize): To bound the number of bbs per
18072         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
18073         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
18074         * doc/invoke.texi: Document it.
18075
18076 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18077
18078         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
18079         * graphite-sese-to-poly.h (build_poly_scop): Same.
18080
18081 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
18082
18083         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
18084         the number of parameters in the scop.  Use as an upper bound
18085         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
18086         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
18087         * doc/invoke.texi: Document it.
18088
18089 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
18090
18091         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
18092         * doc/c-tree.texi: Remove.
18093         * doc/generic.texi: Merge c-tree.texi here.
18094         * doc/gccint.texi (Trees): Remove menu entry.
18095         (c-tree.texi): Remove @include.
18096         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
18097         * doc/languages.texi (Reading RTL): Ditto.
18098
18099 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
18100
18101         PR target/42869
18102         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
18103
18104 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
18105
18106         PR middle-end/42431
18107         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
18108         code added to work around reload clobbering CONST insns.
18109
18110 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
18111
18112         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
18113         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
18114         (cselib_preserve_only_values): Remove retain argument, don't
18115         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
18116         * cselib.h (cselib_preserve_only_values): Remove retain argument.
18117         * var-tracking.c (micro_operation): Move insn field before union.
18118         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
18119         (struct variable_tracking_info_def): Remove n_mos field, change
18120         mos into a vector of micro_operations.
18121         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
18122         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
18123         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
18124         changing into a vector.
18125         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
18126         come before all other uops generated by add_stores.
18127         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
18128         argument removal.
18129         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
18130         a vector.  Run just one pass over the bbs instead of separate counting
18131         and computation phase.
18132         (vt_finalize): Free VTI (bb)->mos vector instead of array.
18133
18134         PR debug/43329
18135         * tree-inline.c (remap_decls): Put old_var rather than origin_var
18136         into *nonlocalized_list vector.
18137         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
18138         even if origin is non-NULL.
18139         (gen_variable_die): Likewise.
18140         (process_scope_var): Don't change origin.
18141         (gen_decl_die): Likewise.
18142         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
18143         before adding new edges instead of after it, fix moving over
18144         debug stmts.
18145
18146 2010-03-11  David S. Miller  <davem@davemloft.net>
18147
18148         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
18149         of four.
18150         * configure: Rebuild.
18151
18152 2010-03-11  Martin Jambor  <mjambor@suse.cz>
18153
18154         PR tree-optimization/43257
18155         * tree.c (assign_assembler_name_if_neeeded): New function.
18156         (free_lang_data_in_cgraph): Assembler name assignment moved to the
18157         above new function.
18158         * tree.h (assign_assembler_name_if_neeeded): Declare.
18159         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
18160         the function if needed.
18161
18162 2010-03-11  Chris Demetriou  <cgd@google.com>
18163
18164         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
18165         include/stdint-gcc.h, and include/stdint.h world-readable.
18166
18167 2010-03-11  Richard Guenther  <rguenther@suse.de>
18168
18169         PR tree-optimization/43255
18170         * tree-vrp.c (process_assert_insertions_for): Do not insert
18171         asserts for trivial conditions.
18172
18173 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18174
18175         PR tree-optimization/43280
18176         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
18177         generation.  Move calculation of size out of the if branch.
18178         (find_bswap): Modify compare number generation.
18179
18180 2010-03-11  Richard Guenther  <rguenther@suse.de>
18181
18182         PR lto/43200
18183         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
18184         (input_gimple_stmt): Fixup handled component types during
18185         operand read.  Also fix up decls in ADDR_EXPRs.
18186
18187 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
18188
18189         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
18190         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
18191
18192 2010-03-10  Jan Hubicka  <jh@suse.cz>
18193
18194         PR c/43288
18195         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
18196         * varasm.c (get_variable_section): Don't do that here...
18197         (make_decl_rtl): ... and here.
18198         (do_assemble_alias): Produce decl RTL.
18199         (assemble_alias): Likewise.
18200
18201 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
18202
18203         PR debug/43290
18204         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
18205         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
18206         of fde->vdrap_reg.
18207         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
18208         (based_loc_descr): Only express drap or vdrap regno based expressions
18209         using DW_OP_fbreg when not optimizing.
18210         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
18211         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
18212         REG_CFA_SET_VDRAP note.
18213
18214 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
18215
18216         PR tree-optimization/43236
18217         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
18218         error in calculation of base address in reverse iteration case.
18219         (generate_builtin): Take number of latch executions if the statement
18220         is in the latch.
18221
18222 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
18223
18224         PR middle-end/42859
18225         * tree-eh.c: Include pointer-set.h.
18226         (lower_eh_dispatch): Filter out duplicate case labels and
18227         remove the unneeded edge when the label is unused.  Return
18228         true when some edges are removed.
18229         (execute_lower_eh_dispatch): When any lowering resulted in
18230         removing an edge, also delete unreachable blocks.
18231
18232 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
18233
18234         PR bootstrap/43287
18235         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
18236         UNSPEC_MACHOPIC_OFFSET.
18237
18238 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
18239
18240         PR target/43294
18241         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
18242         (m68k_delegitimize_address): New function.
18243
18244 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
18245
18246         PR debug/43299
18247         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
18248
18249         PR debug/43299
18250         * var-tracking.c (adjust_sets): New function.
18251         (count_with_sets, add_with_sets): Use it.
18252         (get_adjusted_src): New inline function.
18253         (add_stores): Use it.
18254
18255         PR debug/43304
18256         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
18257         call cselib_dummy_expand_value_rtx_cb instead of
18258         cselib_expand_value_rtx_cb.
18259
18260         PR debug/43293
18261         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
18262         * config/i386/i386.c: Include debug.h and dwarf2out.h.
18263         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
18264         and .cfi_endproc around the pic thunks.
18265         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
18266         all queued unwind info register saves are saved before the call.
18267         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
18268         considered as sp-=4 for unwind info and the pop as sp+=4 which
18269         also clobbers dest, but doesn't actually restore it.
18270
18271         PR debug/43290
18272         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
18273         RTX_FRAME_RELATED_P.
18274
18275 2010-03-09  Jie Zhang  <jie@codesourcery.com>
18276
18277         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
18278         whitespaces in output template.
18279
18280 2010-03-09  Jie Zhang  <jie@codesourcery.com>
18281
18282         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
18283         out array boundary.
18284
18285 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
18286
18287         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
18288         builtins.exp in a separate job.
18289
18290 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18291
18292         * graphite-sese-to-poly.c (add_param_constraints): Use
18293         lower_bound_in_type and upper_bound_in_type.
18294
18295 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18296
18297         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
18298         instead of unsigned_type_node.
18299
18300 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18301             Reza Yazdani  <reza.yazdani@amd.com>
18302
18303         PR middle-end/43065
18304         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
18305         on pointer type parameters.
18306
18307 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
18308
18309         PR middle-end/42644
18310         PR middle-end/42130
18311         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
18312         handle conversions from pointer to integers.
18313         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
18314         induction variable, to be able to work with code generated by CLooG.
18315         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
18316         (build_poly_scop): Bail out if we cannot codegen a loop.
18317
18318 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
18319
18320         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
18321         code generation with gloog_error.
18322
18323 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18324
18325         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
18326         Call fold_convert on all the returned values.
18327         (expand_scalar_variables_expr): Pass to
18328         expand_scalar_variables_ssa_name the type of the resulting expression.
18329
18330 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18331
18332         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
18333         ppl_min_for_le_pointset.
18334         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
18335         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
18336
18337 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18338
18339         * graphite-dependences.c (map_into_dep_poly): Removed.
18340         (dependence_polyhedron_1): Use combine_context_id_scat.
18341
18342 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18343
18344         * graphite-poly.h (struct poly_scattering): Add layout documentation.
18345         (struct poly_bb): Same.
18346         (combine_context_id_scat): New.
18347
18348 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18349
18350         PR middle-end/42326
18351         * sese.c (name_defined_in_loop_p): Return false for default
18352         definitions.
18353
18354 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18355
18356         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
18357         and clean up the logic.
18358
18359 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
18360
18361         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
18362         early return.
18363
18364 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
18365
18366         * var-tracking.c (remove_cselib_value_chains): Define only for
18367         ENABLE_CHECKING.
18368         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
18369         delete_slot_part, emit_notes_for_differences_1): Don't call
18370         remove_cselib_value_chains here.
18371         (set_slot_part, emit_notes_for_differences_2): Don't call
18372         add_cselib_value_chains here.
18373         (preserved_values): New vector.
18374         (preserve_value): New function.
18375         (add_uses, add_stores, vt_add_function_parameters): Use it
18376         instead of cselib_preserve_value.
18377         (changed_values_stack): New vector.
18378         (check_changed_vars_0): New function.
18379         (check_changed_vars_1, check_changed_vars_2): Use it.
18380         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
18381         changed_values_stack VALUEs.
18382         (vt_emit_notes): For all preserved_values call
18383         add_cselib_value_chains.  If ENABLE_CHECKING call
18384         remove_cselib_value_chains before verifying value_chains is empty.
18385         Initialize and free changed_values_stack.
18386         (vt_initialize): Initialize preserved_values.
18387         (vt_finalize): Free preserved_values.
18388
18389 2010-03-08  Richard Guenther  <rguenther@suse.de>
18390
18391         PR tree-optimization/43269
18392         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
18393         region detection.
18394
18395 2010-03-08  Martin Jambor  <mjambor@suse.cz>
18396
18397         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
18398         (ipa_is_param_called): Removed.
18399         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
18400         (ipa_print_node_params): Do not print the called flag.
18401         (ipa_write_node_info): Do not stream the called flag.
18402         (ipa_read_node_info): Likewise.
18403
18404 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
18405
18406         PR debug/43176
18407         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
18408         * cselib.c (struct expand_value_data): Add dummy field.
18409         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
18410         dummy to false.
18411         (cselib_dummy_expand_value_rtx_cb): New function.
18412         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
18413         any rtl.
18414         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
18415         * var-tracking.c: Include pointer-set.h.
18416         (variable): Change n_var_parts to char from int.  Add
18417         cur_loc_changed and in_changed_variables fields.
18418         (variable_canonicalize): Remove.
18419         (shared_var_p): New inline function.
18420         (unshare_variable): Maintain cur_loc_changed and
18421         in_changed_variables fields.  If var was in changed_variables,
18422         replace it there with new_var.  Just copy cur_loc instead of
18423         resetting it to something else.
18424         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
18425         (dataflow_set_union): Don't call variable_canonicalize.
18426         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
18427         of their DEBUG_EXPR_TREE_DECLs.
18428         (canonicalize_loc_order_check): Verify that cur_loc is NULL
18429         and in_changed_variables and cur_loc_changed is false.
18430         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
18431         and cur_loc_changed.  Don't update cur_loc here.
18432         (variable_merge_over_src): Don't call variable_canonicalize.
18433         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
18434         removing loc that is equal to cur_loc, clear cur_loc,
18435         set cur_loc_changed and ensure variable_was_changed is called.
18436         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
18437         compare pointers in cur_loc check, if it is equal to loc,
18438         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
18439         (variable_different_p): Remove compare_current_location argument,
18440         don't compare cur_loc.
18441         (dataflow_set_different_1): Adjust variable_different_p caller.
18442         (variable_was_changed): If dv had some var in changed_variables
18443         already, reset in_changed_variables flag for it and propagate
18444         cur_loc_changed over to the new variable.  On empty var
18445         always set cur_loc_changed.  Set in_changed_variables on whatever
18446         var is added to changed_variables.
18447         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
18448         Use shared_var_p.  When removing loc that is equal to cur_loc,
18449         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
18450         end, don't set it to something else, just call variable_was_changed.
18451         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
18452         loc being removed, clear cur_loc and set cur_loc_changed.
18453         Set cur_loc_changed if all locations have been removed.
18454         (struct expand_loc_callback_data): New type.
18455         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
18456         allocated.  Always create SUBREGs if simplify_subreg failed.
18457         Prefer to use cur_loc, when that fails and still in
18458         changed_variables (and seen first time) recompute it.  Set
18459         cur_loc_changed of variables which had to change cur_loc and
18460         compute elcd->cur_loc_changed if any of the subexpressions used
18461         had to change cur_loc.
18462         (vt_expand_loc): Adjust to pass arguments in
18463         expand_loc_callback_data structure.
18464         (vt_expand_loc_dummy): New function.
18465         (emitted_notes): New variable.
18466         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
18467         that weren't used for any other decl in current
18468         emit_notes_for_changes call call vt_expand_loc_dummy to update
18469         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
18470         first loc_chain location if NULL before.  Always use just
18471         cur_loc instead of first loc_chain location.  When cur_loc_changed
18472         is false, when not --enable-checking=rtl just don't emit any note.
18473         When rtl checking, compute the note and assert it is the same
18474         as previous note.  Clear cur_loc_changed and in_changed_variables
18475         at the end before removing from changed_variables.
18476         (check_changed_vars_3): New function.
18477         (emit_notes_for_changes): Traverse changed_vars to call
18478         check_changed_vars_3 on each changed var.
18479         (emit_notes_for_differences_1): Clear cur_loc_changed and
18480         in_changed_variables.  Recompute cur_loc of new_var.
18481         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
18482         (vt_emit_notes): Initialize and destroy emitted_notes.
18483
18484 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
18485
18486         PR rtl-optimization/42220
18487         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
18488         Use verify_reg_tracked to determine if we should use OP_OUT rather
18489         than OP_INOUT.
18490         (build_def_use): If we see an in-out operand for a register that we
18491         know nothing about, treat is an output if possible, fail the block if
18492         not.
18493
18494 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
18495
18496         PR debug/42897
18497         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
18498         permanently.
18499
18500 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
18501
18502         PR debug/42897
18503         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
18504         uses of relevant DEFs that are dead outside the loop too.
18505
18506 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
18507
18508         * var-tracking.c (dataflow_set_merge): Swap src and src2.
18509         Reverted:
18510         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
18511         PR debug/41371
18512         * var-tracking.c (values_to_unmark): New variable.
18513         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
18514         values_to_unmark vector.  Moved body to...
18515         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
18516         instead queue it into values_to_unmark vector.
18517         (vt_find_locations): Free values_to_unmark vector.
18518
18519 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
18520
18521         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
18522         (site.exp): Export them when plugins are enabled.
18523
18524 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
18525
18526         PR middle-end/42326
18527         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
18528         that contain scevs.
18529         (chrec_fold_multiply): Same.
18530
18531 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
18532
18533         PR c/43248
18534         * c-decl.c (build_compound_literal): Return early if init is
18535         an error_mark_node.
18536
18537 2010-03-04  Martin Jambor  <mjambor@suse.cz>
18538
18539         PR tree-optimization/43164
18540         PR tree-optimization/43191
18541         * tree-sra.c (type_consists_of_records_p): Reject records with
18542         zero-size bit-fields at the end.
18543
18544 2010-03-04  Mike Stump  <mikestump@comcast.net>
18545
18546         * Makefile.in (TAGS): Remove *.y.
18547
18548 2010-03-04  Richard Guenther  <rguenther@suse.de>
18549
18550         PR tree-optimization/40761
18551         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
18552         in reverse order.
18553         (my_rev_post_order_compute): New function.
18554         (init_pre): Call it.
18555
18556 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
18557
18558         PR middle-end/43209
18559         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
18560         decrease the cost of an IV candidate when the cost is infinite.
18561
18562 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18563
18564         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
18565         Use '3DNow!' for the extension of that name, ensure normal space
18566         after the string.
18567         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
18568
18569 2010-03-03  Jeff Law  <law@redhat.com>
18570
18571         * PR middle-end/32693
18572         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
18573         than gen_rtx_SUBREG.
18574         (extract_bit_field_1): Likewise.
18575
18576 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
18577
18578         * doc/sourcebuild.texi (Test directives): Document that arguments
18579         include-opts and exclude-opts are now optional for dg-skip-if,
18580         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
18581
18582 2010-03-03  Jason Merrill  <jason@redhat.com>
18583
18584         PR c++/12909
18585         * cgraph.h (varpool_node): Add extra_name field.
18586         * varpool.c (varpool_extra_name_alias): New.
18587         (varpool_assemble_decl): Emit extra name aliases.
18588         (varpool_mark_needed_node): Look past an extra name alias.
18589         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
18590         * lto-streamer-in.c (lto_input_tree): Read it.
18591         * lto-streamer-out.c (output_unreferenced_globals): Write it.
18592
18593 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
18594
18595         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
18596         (sparc*-*-solaris2*): ...this.
18597
18598 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
18599
18600         PR debug/43229
18601         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
18602         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
18603         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
18604         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
18605
18606         PR debug/43237
18607         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
18608         fallthrough to default handling, just with want_address 0 instead of 2.
18609         For single element lists, add_AT_loc directly, otherwise create an
18610         artificial variable DIE and stick location list to it.
18611
18612         PR debug/43177
18613         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
18614         (VAL_EXPR_HAS_REVERSE): Define.
18615         (reverse_op): New function.
18616         (add_stores): For reversible operations add an extra MO_VAL_USE.
18617
18618 2010-03-02  Jason Merrill  <jason@redhat.com>
18619
18620         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
18621
18622 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
18623
18624         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
18625         (sparc64-*-linux*): Likewise.
18626         (sparc64-*-solaris2*): Include assembler files before linker ones.
18627         (sparc-*-solaris2*): Simplify and reorder to match previous case.
18628         * config/sparc/gas.h: Delete.
18629         * config/sparc/sol2-64.h: Add copyright notice.
18630         * config/sparc/sol2-gas-bi.h: Likewise.
18631         * config/sparc/sol2-gld.h: Likewise.
18632         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
18633         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
18634         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
18635         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
18636         (sparc_elf_asm_named_section): Rename into...
18637         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
18638
18639 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
18640
18641         * config/alpha/alpha.c (override_options): Fix -mtune error message.
18642
18643 2010-03-02  Jeff Law  <law@redhat.com>
18644
18645         PR middle-end/42431
18646         * reload1.c (rtx_p, substitute_stack): Declare.
18647         (substitute): Record addresses of changed rtxs.
18648         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
18649         Restore the original rtx when complete.
18650         (reload): Free subsitute_stack when complete.
18651
18652 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
18653
18654         * doc/gccint.texi (menu): Add Testsuites as a chapter.
18655         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
18656         new chapter.
18657         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
18658         LTO Testing, gcov Testing, profopt Testing, compat Testing,
18659         Torture Tests): Change from subsection to section.
18660
18661 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
18662             Steven Bosscher  <steven@gcc.gnu.org>
18663
18664         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
18665         instead of bb.
18666
18667 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
18668
18669         PR middle-end/42640
18670         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
18671         the assignment from the new induction variable to the assignment
18672         of the value from the original loop PHI function.
18673
18674 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
18675             Daniel Jacobowitz  <dan@codesourcery.com>
18676
18677         * doc/sourcebuild.texi (Test directives): Clarify options to
18678         dg-skip-if.
18679
18680 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18681
18682         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
18683         Disable cfi directives unless GCC and gas agree on using read-only
18684         .eh_frame sections for 64-bit.
18685         * configure: Regenerate.
18686
18687 2010-03-01  Richard Guenther  <rguenther@suse.de>
18688
18689         PR tree-optimization/43220
18690         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
18691         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
18692
18693 2010-03-01  Richard Guenther  <rguenther@suse.de>
18694             Martin Jambor  <mjambor@suse.cz>
18695
18696         PR middle-end/41250
18697         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
18698         gimplified parameters.
18699
18700 2010-03-01  Christian Bruel  <christian.bruel@st.com>
18701
18702         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
18703
18704 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
18705
18706         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
18707
18708 2010-03-01  Richard Guenther  <rguenther@suse.de>
18709
18710         PR middle-end/43213
18711         * expr.c (expand_assignment): Use the alias-oracle to tell
18712         if the rhs aliases the result decl.
18713
18714 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18715
18716         PR pch/14940
18717         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
18718         to sol_gt_pch_get_address.
18719         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
18720         64-bit, SPARC and x86.
18721         (sol_gt_pch_get_address): New function.
18722
18723 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
18724
18725         * toplev.h (inform_n, error_n): Declare.
18726         * diagnostic.c (inform_n, error_n): New function.
18727
18728 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
18729
18730         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
18731         has no rtl yet when processing local_decls, queue it and recheck
18732         if deferred stack allocation hasn't assigned it rtl.
18733
18734 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
18735
18736         * config/sh/sh.c (unspec_bbr_uid): New.
18737         (gen_block_redirect): Use it instead of INSN_UID.
18738         (gen_far_branch): Likewise.
18739
18740 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
18741
18742         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
18743         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
18744
18745 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18746
18747         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
18748         (Warning Options): -Wno-conversion-null is valid for
18749         Objective-C++ as well.
18750         * doc/tm.texi (Named Address Spaces): Likewise.
18751         * doc/plugins.texi (Plugins): Replace TABs with spaces.
18752         * doc/tree-ssa.texi (Tree SSA): Likewise.
18753
18754 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
18755
18756         PR bootstrap/43202
18757         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
18758         by default.  Don't set the default arch for
18759         i[34567]86-*-darwin*|x86_64-*-darwin*.
18760
18761 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
18762
18763         PR bootstrap/43202
18764         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
18765         default.  Set the default 32bit/64bit archs with $with_arch
18766         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
18767
18768 2010-02-27  Richard Guenther  <rguenther@suse.de>
18769
18770         PR tree-optimization/43186
18771         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
18772         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
18773         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
18774         unroller iterations.
18775
18776 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
18777
18778         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
18779         required and i[34567]86-*-* targets don't support 64bit ISA.
18780
18781 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
18782
18783         PR ada/43096
18784         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
18785         the same alias set.
18786
18787 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
18788
18789         * config.gcc: Set the default arch at least to Prescott for
18790         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
18791         if SSE math is enabled.
18792
18793 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18794
18795         * diagnostic.c (diagnostic_initialize): Update.
18796         (diagnostic_report_diagnostic): Test inhibit_notes_p for
18797         informative notes.
18798         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
18799         (diagnostic_inhibit_notes): New.
18800         * toplev.c (process_options): inhibit notes with -fcompare-debug.
18801
18802 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18803
18804         PR c/20631
18805         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
18806         * doc/standards.texi: Likewise.
18807         * doc/extend.texi: Likewise.
18808         * doc/trouble.texi: Likewise.
18809         * doc/cppopts.texi: Likewise.
18810         * doc/install.texi: Likewise.
18811         * c.opt (std=c90,std=gnu90): New options.
18812         * c-opts.c (c_common_handle_option): Handle them.
18813
18814 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18815
18816         PR c/24577
18817         * c-decl.c (undeclared_variable): Use an informative note.
18818
18819 2010-02-26  Richard Guenther  <rguenther@suse.de>
18820
18821         PR tree-optimization/43186
18822         * gimple.h (gimple_fold): Remove.
18823         * gimple.c (gimple_fold): Remove.  Inline into single user ...
18824         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
18825         Try harder for conditions.
18826
18827 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
18828
18829         PR debug/43190
18830         * function.c (used_types_insert): Don't skip through named pointer
18831         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
18832         and it is different from the main variant's type.
18833
18834 2010-02-26  Nick Clifton  <nickc@redhat.com>
18835
18836         * config/rx/rx.md (sminsi3): Remove bogus alternative.
18837
18838 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
18839
18840         * config.gcc: Support --with-fpmath=sse for x86.
18841
18842         * config/i386/ssemath.h: New.
18843
18844         * doc/install.texi (--with-fpmath=sse): Documented.
18845
18846 2010-02-26  Richard Guenther  <rguenther@suse.de>
18847
18848         PR tree-optimization/43188
18849         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
18850         vector types of over-aligned element type.
18851
18852 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
18853
18854         PR target/43175
18855         * config/i386/i386.c (expand_vec_perm_blend): Use correct
18856         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
18857
18858 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
18859
18860         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
18861
18862 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
18863
18864         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
18865         * var-tracking.c: Include diagnostic.h.
18866         (debug_dv): New function.
18867         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
18868
18869         PR debug/43160
18870         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
18871         (add_value_chain, add_value_chains, remove_value_chain,
18872         remove_value_chains): Handle DEBUG_EXPRs.
18873         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
18874
18875         PR debug/43161
18876         * regcprop.c (struct queued_debug_insn_change): New type.
18877         (struct value_data_entry): Add debug_insn_changes field.
18878         (struct value_data): Add n_debug_insn_changes field.
18879         (debug_insn_changes_pool): New variable.
18880         (free_debug_insn_changes, apply_debug_insn_changes,
18881         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
18882         (kill_value_one_regno): Call free_debug_insn_changes if needed.
18883         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
18884         fields.
18885         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
18886         changes for them.
18887         (copyprop_hardreg_forward_1): Don't call apply_change_group for
18888         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
18889         changes, call cprop_find_used_regs via note_stores.
18890         (copyprop_hardreg_forward): When copying vd from predecessor
18891         which has any queued DEBUG_INSN changes, make sure the pointers are
18892         cleared.  At the end call df_analyze and then if there are any
18893         DEBUG_INSN changes queued at the end of some basic block for still
18894         live registers, apply them.
18895         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
18896
18897 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
18898
18899         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
18900         (arm*-*-*): Ditto.
18901
18902 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
18903
18904         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
18905         targets.  Set the default with_cpu/with_arch from arch/cpu.
18906         Allow x86-64 and native for with_cpu/with_arch.
18907
18908 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
18909
18910         * ebitmap.c: Change calls to verify_popcount with calls to
18911         sbitmap_verify_popcount.
18912         (ebitmap_clear_bit): Fixed map->cacheindex test and
18913         map>cache update when bit clearing results in an empty
18914         element.
18915
18916 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
18917
18918         PR target/43154
18919         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
18920         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
18921         and support both V2DF and V2DI modes.
18922         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
18923         support both V2DF and V2DI modes.
18924         (general): Delete trailing whitespace from a few patterns.
18925
18926         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18927         V2DF/V2DI interleave high/low builtins.
18928
18929         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
18930         new VSX builtins.
18931
18932         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
18933         interleave high/low functions.
18934
18935 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
18936
18937         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
18938         #pragma extern_prefix.
18939
18940 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
18941
18942         PR debug/43166
18943         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
18944         BLKmode, assert op0 is a MEM and just adjust its mode.
18945
18946         PR debug/43165
18947         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
18948         if bitpos isn't multiple of mode's bitsize.
18949
18950 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18951
18952         * c.opt (-ftemplate-depth=): New.
18953         (-ftemplate-depth-): Deprecate.
18954         * optc-gen.awk: Handle -ftemplate-depth=.
18955         * opth-gen.awk: Likewise.
18956         * c-opts.c (c_common_handle_option): Likewise.
18957         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
18958
18959 2010-02-24  Jason Merrill  <jason@redhat.com>
18960
18961         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
18962
18963 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18964
18965         * cfg.c (alloc_aux_for_block): Remove inline.
18966         (alloc_aux_for_edge): Likewise.
18967
18968 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18969
18970         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
18971
18972 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18973
18974         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
18975         * config/i386/sol2-gas.h: New file.
18976         * config.gcc (i[34567]86-*-solaris2*): Use it.
18977
18978 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18979
18980         PR c/43128
18981         * c-typeck.c (ep_convert_and_check): New.
18982         (build_conditional_expr): Use it.
18983         (build_binary_op): Likewise.
18984
18985 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
18986
18987         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
18988
18989         PR debug/43150
18990         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
18991         bounds even for -O+.
18992         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
18993         expr needs to have DECL_NAME set.
18994
18995 2010-02-24  Nick Clifton  <nickc@redhat.com>
18996
18997         * config/mep/mep.c: Include gimple.h.
18998         (mep_function_uses_sp): Delete unused function.
18999         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
19000         parameters.  Use unsigned integers to count args.  Return a
19001         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
19002
19003 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
19004
19005         PR target/43107
19006         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
19007         greater or equal to nelt instead of 2 * nelt.
19008         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
19009         with nelt - 1.
19010
19011 2010-02-23  Jason Merrill  <jason@redhat.com>
19012
19013         PR debug/42800
19014         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
19015         in cfun->local_decls even if they have register types.
19016
19017         PR c++/42837
19018         * stor-layout.c (place_field): Don't warn about unnecessary
19019         DECL_PACKED if the type is packed.
19020
19021 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
19022
19023         PR target/43139
19024         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
19025         GOTOFF relocs, even when the base reg isn't pic pointer.
19026
19027 2010-02-23  Michael Matz  <matz@suse.de>
19028
19029         PR debug/43077
19030         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
19031         (expand_gimple_basic_block): Generate and use debug temps if there
19032         are debug uses left after the last real use of TERed ssa names.
19033         Unlink debug immediate uses when they are expanded.
19034
19035 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19036
19037         PR 43123
19038         * config/i386/i386.c (override_options): Reorganise to provide
19039         better error messages.
19040
19041 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19042
19043         PR middle-end/43083
19044         * graphite-scop-detection.c (create_single_exit_edge): Move
19045         the call to find_single_exit_edge to....
19046         (create_sese_edges): ...here.  Don't handle multiple edges
19047         exiting the function.
19048         (build_graphite_scops): Don't handle multiple edges
19049         exiting the function.
19050
19051 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19052
19053         PR middle-end/43097
19054         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
19055         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
19056
19057 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
19058
19059         PR middle-end/43026
19060         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
19061
19062 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19063
19064         PR c++/43126
19065         * c-typeck.c (convert_arguments): Print declaration location.
19066         * c-common.c (validate_nargs): Rename as
19067         builtin_function_validate_nargs.
19068         (check_builtin_function_arguments): Update.
19069
19070 2010-02-22  Richard Guenther  <rguenther@suse.de>
19071
19072         PR lto/43045
19073         * tree-inline.c (declare_return_variable): Use the type of
19074         the call stmt lhs if available.
19075
19076 2010-02-22  Duncan Sands  <baldrick@free.fr>
19077
19078         * passes.c (register_pass): Always consider all pass lists when
19079         ref_pass_instance_number is zero.
19080
19081 2010-02-22  Richard Guenther  <rguenther@suse.de>
19082
19083         PR tree-optimization/42749
19084         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
19085         parameter.  Do arithmetic in the original type.
19086         (update_accumulator_with_ops): Likewise.
19087         (adjust_accumulator_values): Adjust.
19088
19089 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19090
19091         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
19092         (QI to BLKmode splitter): New splitter.
19093
19094 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
19095
19096         * config/i386/i386.c (initial_ix86_tune_features): Turn on
19097         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
19098
19099 2010-02-22  Richard Guenther  <rguenther@suse.de>
19100
19101         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
19102
19103 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
19104
19105         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
19106         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
19107         ($(T)crti.o, $(T)crtn.o): Remove rules.
19108
19109 2010-02-21  Tobias Burnus  <burnus@net-b.de>
19110
19111         PR fortran/35259
19112         * doc/invoke.texi (-fassociative-math): Document that this
19113         option is automatically enabled for Fortran.
19114
19115 2010-02-20  David S. Miller  <davem@davemloft.net>
19116
19117         * configure.ac: Test if linker and assembler properly support
19118         GOTDATA_OP relocations.
19119         * configure: Rebuild.
19120         * config.in: Likewise.
19121         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
19122         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
19123         (movsi_high_pic): Likewise.
19124         (movdi_lo_sum_pic): Likewise.
19125         (movdi_high_pic): Likewise.
19126         (movsi_pic_gotdata_op): New pattern.
19127         (movdi_pic_gotdata_op): Likewise.
19128         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
19129         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
19130
19131 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
19132
19133         PR target/43067
19134         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
19135         attribute to ssemul.
19136         (xop_mulv2div2di3_high): Ditto.
19137
19138 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19139
19140         PR c++/35669
19141         * c.opt (Wconversion-null): New option.
19142         * doc/invoke.texi (Wconversion-null): Document.
19143
19144 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19145
19146         * common.opt (Wlarger-than-): Add Undocumented.
19147
19148 2010-02-19  Mike Stump  <mikestump@comcast.net>
19149
19150         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
19151
19152 2010-02-19  Jason Merrill  <jason@redhat.com>
19153
19154         PR target/40332
19155         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
19156         * configure: Likewise.
19157
19158 2010-02-20  Alan Modra  <amodra@gmail.com>
19159
19160         PR middle-end/42344
19161         * cgraph.h (cgraph_make_decl_local): Declare.
19162         * cgraph.c (cgraph_make_decl_local): New function.
19163         (cgraph_make_node_local): Use it.
19164         * cgraphunit.c (cgraph_function_versioning): Likewise.
19165         * ipa.c (function_and_variable_visibility): Likewise.
19166
19167 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
19168
19169         PR bootstrap/43121
19170         * except.c (sjlj_emit_function_enter): Don't call
19171         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
19172         directly.
19173         * rtl.h (add_reg_br_prob_note): Remove prototype.
19174
19175 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19176
19177         PR 41779
19178         * c-common.c (conversion_warning): Remove widening conversions
19179         before checking the conversion of integers to reals.
19180
19181 2010-02-19  Mike Stump  <mikestump@comcast.net>
19182
19183         PR middle-end/43125
19184         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
19185
19186         PR objc/43061
19187         * cgraphunit.c (process_function_and_variable_attributes): Check
19188         DECL_PRESERVE_P instead of looking up attribute "used".
19189         * ipa-pure-const.c (check_decl): Likewise.
19190         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
19191         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
19192         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
19193         instead of attribute "used".
19194         * config/sol2-c.c (solaris_pragma_init): Likewise.
19195         (solaris_pragma_fini): Likewise.
19196
19197 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
19198
19199         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
19200         Use XCNEW instead of xcalloc.
19201         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
19202         XNEW instead of xmalloc.
19203         (get_fields): Use XNEWVEC instead of xmalloc.
19204
19205         PR debug/43084
19206         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
19207         populate vars array.
19208         (create_new_general_access): For debug stmts just reset value.
19209         (get_stmt_accesses): For accesses within debug stmts just record them
19210         using add_access_to_acc_sites instead of preventing the peeling or
19211         counting them as accesses.
19212
19213         PR middle-end/42233
19214         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
19215
19216 2010-02-19  Richard Guenther  <rguenther@suse.de>
19217
19218         PR tree-optimization/42916
19219         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
19220         instructions.
19221
19222 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
19223
19224         * configure.ac: Replace all uses of changequote in macro arguments
19225         with proper quoting.
19226
19227 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
19228
19229         PR middle-end/42233
19230         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
19231
19232 2010-02-19  Richard Guenther  <rguenther@suse.de>
19233
19234         PR tree-optimization/42944
19235         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
19236         test for aliasing with errno.
19237
19238 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
19239
19240         PR middle-end/42233
19241         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
19242         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
19243         * dojump.c: Include output.h.
19244         (inv): New inline function.
19245         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
19246         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
19247         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
19248         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
19249         argument, pass it down to other calls.
19250         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
19251         add REG_BR_PROB note to the conditional jump.
19252         * cfgexpand.c (add_reg_br_prob_note): Removed.
19253         (expand_gimple_cond): Don't call it, add the probability
19254         as last argument to jumpif_1/jumpifnot_1.
19255         * Makefile.in (dojump.o): Depend on output.h.
19256         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
19257         callers.
19258         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
19259         * stmt.c (do_jump_if_equal): Likewise.
19260         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
19261         * loop-unswitch.c (compare_and_jump_seq): Likewise.
19262         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
19263         Likewise.
19264         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
19265         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
19266         jumpifnot_1 callers.
19267         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
19268         callers.
19269         (store_expr): Adjust jumpifnot caller.
19270         (store_constructor): Adjust jumpif caller.
19271
19272         PR middle-end/42233
19273         * gimplify.c (gimple_boolify): For __builtin_expect call
19274         gimple_boolify also on its first argument.
19275
19276 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
19277
19278         * configure.ac (gnu-unique-object): Wrap regexps using [] in
19279         changequote block.
19280         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
19281         * configure: Regenerated.
19282
19283 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19284
19285         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
19286         lang_hooks.types_compatible_p instead of comptypes.
19287
19288 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
19289
19290         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
19291         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
19292         if __prefer_thumb__ is defined.
19293
19294 2010-02-18  Martin Jambor  <mjambor@suse.cz>
19295
19296         PR tree-optimization/43066
19297         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
19298         array with zero-sized element type.
19299
19300 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
19301
19302         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
19303         rtx, allocate struct var_loc_node here and return it to the
19304         caller, and only if it is actually needed.
19305         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
19306         move it earlier and return immediately if it returns NULL.
19307
19308 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
19309
19310         * config/sparc/gas.h: New file.  Restore
19311         TARGET_ASM_NAMED_SECTION to its ELF default.
19312         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
19313         check !HAVE_GNU_AS.
19314         * config/sparc/sparc.c (sparc_elf_asm_named_section):
19315         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
19316         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
19317         after sparc/sysv4.h.
19318
19319 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
19320
19321         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
19322
19323 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
19324
19325         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
19326         patterns from predicated pattern.
19327
19328 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
19329
19330         PR target/43103
19331         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
19332         for insn mnemonic suffix.
19333
19334 2010-02-17  Richard Guenther  <rguenther@suse.de>
19335
19336         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
19337         to loop PHI nodes.
19338
19339 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
19340
19341         PR debug/42918
19342         * caller-save.c (save_call_clobbered_regs): If BB ends with
19343         a DEBUG_INSN, move any notes in between last real insn and the last
19344         DEBUG_INSN after the last DEBUG_INSN.
19345
19346 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
19347
19348         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
19349         Fix return type.  Fix argument type.  Explain meaning of return value.
19350
19351 2010-02-16  Richard Guenther  <rguenther@suse.de>
19352
19353         PR tree-optimization/41043
19354         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
19355         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
19356         statements ...
19357         (vrp_visit_phi_node): ... but only for loop PHI nodes.
19358
19359 2010-02-16  Ira Rosen  <irar@il.ibm.com>
19360
19361         PR tree-optimization/43074
19362         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
19363         * tree-vect-loop.c (vect_analyze_loop_operations): Add
19364         vectorizable cycles in hybrid SLP check.
19365         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
19366
19367 2010-02-16  Richard Guenther  <rguenther@suse.de>
19368
19369         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
19370         (true_dependence): If memrefs_conflict_p computes must-alias
19371         trust it.  Move TBAA check after offset-based disambiguation.
19372         (canon_true_dependence): Likewise.
19373
19374 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
19375
19376         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
19377         * doc/invoke.texi: Document it.
19378         * var-tracking.c: Include toplev.h and params.h.
19379         (vt_find_locations): Return bool indicating success.  Compute
19380         hash sizes unconditionally.  Check new parameter, report.
19381         (variable_tracking_main_1): Check vt_find_locations results and
19382         retry.  Renamed from...
19383         (variable_tracking_main): ... this.  New wrapper to preserve
19384         flag_var_tracking_assignments.
19385         * Makefile.in (var-tracking.o): Adjust dependencies.
19386
19387 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
19388             Jakub Jelinek  <jakub@redhat.com>
19389
19390         PR target/42854
19391         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
19392         if weak_import attribute is present.
19393         * config/darwin.c (machopic_select_section): Likewise.
19394
19395 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
19396
19397         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
19398         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
19399         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
19400         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
19401
19402         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
19403         types.
19404
19405         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
19406         Fix argument types.
19407
19408         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
19409         Rewrite text to refer to the names.
19410
19411 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
19412
19413         * config/i386/i386-builtin-types.def
19414         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
19415         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
19416         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
19417         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
19418         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
19419         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
19420         IX86_BUILTIN_VPERMIL2PS256.
19421         (MULTI_ARG_4_DF2_DI_I): Defined.
19422         (MULTI_ARG_4_DF2_DI_I1): Defined.
19423         (MULTI_ARG_4_SF2_SI_I): Defined.
19424         (MULTI_ARG_4_SF2_SI_I1): Defined.
19425         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
19426         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
19427         __builtin_ia32_vpermil2ps256.
19428         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
19429         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
19430         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
19431         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
19432         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
19433         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
19434         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
19435         CODE_FOR_xop_vpermil2v8sf3.
19436         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
19437         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
19438         * config/i386/xopintrin.h (_mm_permute2_pd): New.
19439         (_mm256_permute2_pd): New.
19440         (_mm_permute2_ps): New.
19441         (_mm256_permute2_ps): New.
19442
19443 2010-02-15  Nick Clifton  <nickc@redhat.com>
19444
19445         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
19446         boolean parameters.  Use emit_jump_insn when emitting a pop
19447         instruction containing a return insn.
19448         (push): Use 'true' rather than '1' as second parameter to F.
19449         (h8300_expand_prologue): Likewise.
19450         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
19451         (h8300_expand_epilogue): Likewise.
19452
19453 2010-02-15  Richard Guenther  <rguenther@suse.de>
19454
19455         PR middle-end/43068
19456         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
19457         if that is zero.
19458
19459 2010-02-15  Nick Clifton  <nickc@redhat.com>
19460
19461         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
19462         delta.
19463
19464 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
19465
19466         * intl.c (fake_ngettext): New function.
19467         * intl.h (fake_ngettext): Declare.
19468         (ngettext): Define macro.
19469         * collect2.c (notice_translated): New function.
19470         (main): Use notice_translated and ngettext.
19471         * collect2.h (notice_translated): Declare.
19472
19473 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
19474
19475         * reorg.c (delete_computation): Comment fixes.
19476         * caller-save.c (setup_save_areas): Idem.
19477         * sel-sched-dump.c (dump_lv_set): Idem.
19478         * rtl.def: Idem.
19479
19480 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19481
19482         * config/s390/s390.c (s390_sched_init): New function.
19483         (TARGET_SCHED_INIT): Target hook defined.
19484
19485 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
19486             Jack Howarth  <howarth@bromo.med.uc.edu>
19487             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
19488
19489         PR target/42982
19490         Partial revert of unintended change in fix for PR41605.
19491         * config/darwin.h: Fix typo.
19492         * config/darwin9.h: Same.
19493
19494 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
19495
19496         * c-pch.c (pch_init): Clear v.
19497
19498 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
19499
19500         PR middle-end/42930
19501         * graphite-scop-detection.c (graphite_can_represent_scev): Call
19502         graphite_can_represent_init for MULT_EXPR.
19503
19504 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
19505
19506         PR middle-end/42914
19507         PR middle-end/42530
19508         * graphite-sese-to-poly.c (remove_phi): New.
19509         (translate_scalar_reduction_to_array): Call remove_phi.
19510
19511 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
19512
19513         PR middle-end/42771
19514         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
19515         * graphite-clast-to-gimple.h (gloog): Update declaration.
19516         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
19517         * graphite-poly.h (struct poly_bb): Add missing comments.
19518         (struct scop): Add poly_scop_p field.
19519         (POLY_SCOP_P): New.
19520         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
19521         * graphite.c (graphite_transform_loops): Build the polyhedral
19522         representation for each scop before code generation.
19523         * sese.c (rename_variables_in_operand): Removed.
19524         (rename_variables_in_expr): Return the renamed expression.
19525         (rename_sese_parameters): New.
19526         * sese.h (rename_sese_parameters): Declared.
19527
19528 2010-02-11  Richard Guenther  <rguenther@suse.de>
19529
19530         PR tree-optimization/42998
19531         * tree-ssa-pre.c (create_expression_by_pieces): Treat
19532         POINTER_PLUS_EXPR properly.
19533
19534 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
19535             Changpeng Fang  <changpeng.fang@amd.com>
19536
19537         PR middle-end/40886
19538         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
19539         the cost of an IV candidate when the IV is used in a test against zero.
19540
19541         * gcc.dg/tree-ssa/ivopts-3.c: New.
19542
19543 2010-02-11  Richard Guenther  <rguenther@suse.de>
19544
19545         PR lto/41664
19546         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
19547         pointer-vs-decl case by swapping refs.  Handle some cases
19548         of pointer-vs-decl disambiguations more conservatively.
19549         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
19550         to false after expanding.
19551
19552 2010-02-11  Richard Guenther  <rguenther@suse.de>
19553
19554         PR driver/43021
19555         * gcc.c (process_command): Handle LTO file@offset case more
19556         appropriately.
19557
19558 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
19559
19560         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
19561         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
19562         of DEBUG_INSNs.
19563         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
19564
19565         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
19566         if MEM's mode size isn't DWARF2_ADDR_SIZE.
19567         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
19568         Optimize eq/ne comparisons when both arguments are known to be
19569         zero-extended.
19570         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
19571         Don't mask operands unnecessarily if they are known to be already
19572         zero-extended.
19573
19574 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
19575
19576         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
19577         instead of loop.
19578
19579 2010-02-10  Richard Guenther  <rguenther@suse.de>
19580
19581         PR tree-optimization/43017
19582         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
19583         for wrapping signed arithmetic.
19584
19585 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
19586
19587         PR debug/43010
19588         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
19589         if no debug info should be emitted for it.
19590
19591 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
19592
19593         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
19594         note when flag_exceptions is set.
19595
19596 2010-02-10  Duncan Sands  <baldrick@free.fr>
19597
19598         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
19599
19600 2010-02-10  Richard Guenther  <rguenther@suse.de>
19601
19602         PR c/43007
19603         * tree.c (get_unwidened): Handle constants.
19604         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
19605
19606 2010-02-10  Martin Jambor  <mjambor@suse.cz>
19607
19608         PR lto/42985
19609         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
19610         check for variable argument counts independently.
19611
19612 2010-02-10  Christian Bruel  <christian.bruel@st.com>
19613
19614         PR target/42841
19615         * config/sh/sh.c (find_barrier): Increase length for non delayed
19616         conditional branches.
19617
19618 2010-02-10  Christian Bruel  <christian.bruel@st.com>
19619
19620         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
19621
19622 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
19623
19624         * builtins.c (set_builtin_user_assembler_name): Also handle
19625         ffs if int is smaller than word.
19626
19627 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
19628
19629         PR middle-end/42973
19630         * ira-conflicts.c (get_dup): Remove.
19631         (process_reg_shuffles): Add new parameter.  Use it as an
19632         additional guard for copy generation.
19633         (add_insn_allocno_copies): Rewrite.
19634
19635 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
19636
19637         * common.opt (fsched2-use-traces): Preserved for backward
19638         compatibility.
19639         * doc/invoke.texi: Remove the documentation about option
19640         -fsched2-use-traces.
19641         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
19642         flag_sched2_use_traces.
19643         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
19644         the backward compatibility flag section.
19645
19646 2010-02-09  Richard Guenther  <rguenther@suse.de>
19647
19648         PR tree-optimization/43008
19649         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
19650         make HEAP variables initialized from global memory if they
19651         are not known builtin functions.
19652         (find_func_aliases): Adjust.
19653
19654 2010-02-09  Richard Guenther  <rguenther@suse.de>
19655
19656         PR tree-optimization/43000
19657         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
19658         arithmetic manually.
19659
19660 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
19661
19662         PR tree-optimization/42931
19663         * tree-loop-linear.c (try_interchange_loops): Don't call
19664         double_int_mul if estimated_loop_iterations failed.
19665
19666 2010-02-08  Martin Jambor  <mjambor@suse.cz>
19667
19668         PR middle-end/42898
19669         * tree-sra.c (build_accesses_from_assign): Do not mark in
19670         should_scalarize_away_bitmap if stmt has volatile ops.
19671         (sra_modify_assign): Do not process assigns piecemeal if if stmt
19672         has volatile ops.
19673
19674 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
19675
19676         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
19677
19678 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
19679
19680         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
19681         before the pattern.
19682
19683 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
19684
19685         PR middle-end/42946
19686         * df-core.c (df_finish_pass): Change type of saved_flags to int.
19687
19688 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
19689
19690         PR middle-end/42988
19691         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
19692         to unknown_dependence.
19693         (graphite_legal_transform_dr): Handle the unknown_dependence.
19694         (graphite_carried_dependence_level_k): Same.
19695
19696 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
19697
19698         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
19699
19700 2010-02-07  Richard Guenther  <rguenther@suse.de>
19701
19702         PR middle-end/42991
19703         * expr.c (get_inner_reference): Always initialize *pbitsize.
19704
19705 2010-02-07  Richard Guenther  <rguenther@suse.de>
19706
19707         PR middle-end/42956
19708         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
19709         new ARRAY_REFs on variable size element or minimal index arrays.
19710         Complete.
19711         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
19712         gimple_fold_indirect_ref.
19713
19714 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
19715
19716         PR target/42957
19717         * arm.c (arm_override_options): Just return if the user has specified
19718         an invalid fpu name.
19719
19720 2010-02-03  Jason Merrill  <jason@redhat.com>
19721
19722         PR c++/42870
19723         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
19724         i386_pe_maybe_record_exported_symbol.
19725
19726 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
19727
19728         PR target/42924
19729         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
19730         (pa_delegitimize_address): New function.
19731
19732 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
19733
19734         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
19735         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
19736
19737 2010-02-05  Richard Guenther  <rguenther@suse.de>
19738
19739         PR lto/42762
19740         * lto-streamer-in.c (get_resolution): Deal with references
19741         to undefined functions.
19742
19743 2010-02-05  Richard Guenther  <rguenther@suse.de>
19744
19745         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
19746         (fold_const_aggregate_ref): Likewise.
19747         (ccp_fold_stmt): Substitute loads.
19748         (maybe_fold_reference): Verify types before substituting.
19749         Unshare properly.
19750         (fold_gimple_assign): Unshare properly.
19751         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
19752
19753 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
19754
19755         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
19756         for rs6000_gen_cell_microcode.
19757
19758 2010-02-04  Richard Guenther  <rguenther@suse.de>
19759
19760         PR rtl-optimization/42952
19761         * dse.c (const_or_frame_p): Remove MEM handling.
19762
19763 2010-02-04  Nick Clifton  <nickc@redhat.com>
19764
19765         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
19766         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
19767         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
19768         (mn10300_asm_output_mi_thunk): New function.
19769         (mn10300_can_output_mu_thunk): New function.
19770         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
19771         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
19772         (FUNCTION_ARG): Delete incorrect comment.
19773
19774 2010-02-03  Jason Merrill  <jason@redhat.com>
19775
19776         PR c++/40138
19777         * fold-const.c (operand_equal_p): Handle erroneous types.
19778
19779 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
19780
19781         * config/h8300/h8300.md (can_delay): Fix attibute condition.
19782
19783 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
19784
19785         PR rtl-optimization/42941
19786         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
19787         of xmalloc.
19788
19789 2010-02-03  Jason Merrill  <jason@redhat.com>
19790
19791         PR c++/35652
19792         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
19793
19794 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
19795
19796         PR debug/42896
19797         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
19798         (cselib_reset_table): Renamed from...
19799         (cselib_reset_table_with_next_value): ... this.
19800         (cselib_get_next_uid): Renamed from...
19801         (cselib_get_next_unknown_value): ... this.
19802         * cselib.c (next_uid): Renamed from...
19803         (next_unknown_value): ... this.
19804         (cselib_clear_table): Adjust.
19805         (cselib_reset_table): Adjust.  Renamed from...
19806         (cselib_reset_table_with_next_value): ... this.
19807         (cselib_get_next_uid): Adjust.  Renamed from...
19808         (cselib_get_next_unknown_value): ... this.
19809         (get_value_hash): Use hash.
19810         (cselib_hash_rtx): Likewise.
19811         (new_cselib_val): Adjust.  Set and dump uid.
19812         (cselib_lookup_mem): Pass next_uid as hash.
19813         (cselib_subst_to_values): Likewise.
19814         (cselib_log_lookup): Dump uid.
19815         (cselib_lookup): Pass next_uid as hash.  Adjust.
19816         (cselib_process_insn): Adjust.
19817         (cselib_init): Initialize next_uid.
19818         (cselib_finish): Adjust.
19819         (dump_cselib_table): Likewise.
19820         * dse.c (canon_address): Dump value uid.
19821         * print-rtl.c (print_rtx): Print value uid.
19822         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
19823         (dvuid): New type.
19824         (dv_uid): New function, sort of renamed from...
19825         (dv_htab_hash): ... this, reimplemented in terms of it and...
19826         (dv_uid2hash): ... this.  New.
19827         (variable_htab_eq): Drop excess assertions.
19828         (tie_break_pointers): Removed.
19829         (canon_value_cmp): Compare uids.
19830         (variable_post_merge_New_vals): Print uids.
19831         (vt_add_function_parameters): Adjust.
19832         (vt_initialize): Reset table.  Adjust.
19833
19834 2010-02-03  Richard Guenther  <rguenther@suse.de>
19835
19836         PR tree-optimization/42944
19837         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
19838         (call_may_clobber_ref_p_1): Likewise.  Properly handle
19839         malloc and calloc clobbering errno.
19840
19841 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
19842
19843         * doc/invoke.texi: Fix name of sched1 dump.
19844
19845         * opts.c (decode_options): Set flag_tree_switch_conversion
19846         only conditionally on optimize >= 2.
19847
19848         * gcse.c: Assorted comment fixes in pass description.
19849
19850 2010-02-03  Anthony Green  <green@moxielogic.com>
19851
19852         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
19853         nop padding in order to maintain alignment of storage location of
19854         target function address.
19855         (moxie_trampoline_init): Store target function address at newly
19856         aligned location.
19857         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
19858         to 32.
19859         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
19860
19861 2010-02-03  Richard Guenther  <rguenther@suse.de>
19862
19863         PR middle-end/42927
19864         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
19865
19866 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19867
19868         * config.gcc: Reenable check for obsolete targets.
19869         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
19870         mips-sgi-irix6.[0-4]*.
19871
19872 2010-02-02  Nick Clifton  <nickc@redhat.com>
19873
19874         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
19875         constant size of 4 as being the same as 0.
19876         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
19877         can take values in the range 0..4.
19878
19879 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
19880
19881         PR java/41991
19882         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
19883         as _darwin10_Unwind_FindEnclosingFunction().
19884         * libgcc-libsystem.ver: New.
19885
19886 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
19887
19888         PR target/41399
19889         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
19890         implicitly set registers.
19891
19892 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
19893
19894         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
19895         (arm_override_options): Allow automatic selection of the thread
19896         pointer register if thumb2.
19897         (legitimize_pic_address): Improve code sequences for Thumb2.
19898         (arm_call_tls_get_addr): Likewise.
19899         (legitimize_tls_address): Likewise.
19900         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
19901         (pic_load_addr_32bit): ... this.  New named pattern.
19902         * thumb2.md (pic_load_addr_thumb2): Delete.
19903         (pic_load_dot_plus_four): Delete.
19904         (tls_load_dot_plus_four): New named pattern.
19905
19906 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19907
19908         PR libgomp/29986
19909         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
19910         Document fix for TLS bug.
19911
19912 2010-01-31  Richard Guenther  <rguenther@suse.de>
19913
19914         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
19915         conservatively correct.
19916
19917 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19918
19919         PR target/42850
19920         Revert:
19921         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19922
19923         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
19924
19925 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19926
19927         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
19928
19929 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
19930
19931         * config.gcc: Adjust order of makefile fragments for mingw targets.
19932
19933 2010-01-31  Richard Guenther  <rguenther@suse.de>
19934
19935         PR middle-end/42898
19936         * gimplify.c (gimplify_init_constructor): For volatile LHS
19937         initialize a temporary.
19938
19939 2010-01-31  Matthias Klose  <doko@ubuntu.com>
19940
19941         * configure.ac: Fix __stack_chk_fail check for cross builds configured
19942         --with-headers
19943         * configure: Regenerate.
19944
19945 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
19946
19947         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
19948         the same alias set and their sizes different constantness.
19949         (aliasing_component_refs_p): Revert 2009-10-24 change.
19950
19951 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19952
19953         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
19954         unused.
19955
19956 2010-01-29  Richard Guenther  <rguenther@suse.de>
19957
19958         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
19959         Assert we successfully updated the call.
19960
19961 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
19962
19963         PR rtl-optimization/42889
19964         * df.h (df_set_bb_dirty_nonlr): New prototype.
19965         * df-core.c (df_set_bb_dirty_nonlr): New function.
19966         * df-scan.c (df_insn_rescan): Call it instead of
19967         df_set_bb_dirty for DEBUG_INSNs.
19968
19969 2010-01-29  Richard Guenther  <rguenther@suse.de>
19970
19971         PR middle-end/37448
19972         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
19973         quadratic behavior in most cases.
19974
19975 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
19976
19977         PR target/42891
19978         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
19979         in the call to gen_x86_movsicc_0_m1.
19980
19981 2010-01-28  Richard Guenther  <rguenther@suse.de>
19982
19983         PR tree-optimization/42871
19984         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
19985
19986 2010-01-28  Richard Guenther  <rguenther@suse.de>
19987
19988         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
19989         into call arguments.
19990
19991 2010-01-28  Richard Guenther  <rguenther@suse.de>
19992
19993         PR middle-end/42883
19994         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
19995         the forwarder if the destination is an EH landing pad.
19996
19997 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
19998
19999         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
20000         block list passed to gimple_duplicate_sese_tail.
20001         (parallelize_loops): Avoid parallelization when the function
20002         has_nonlocal_label.
20003         Avoid parallelization when the preheader is IRREDUCIBLE.
20004         Try to optimize when estimated_loop_iterations_int is unresolved.
20005         Add the loop's location to the dump file.
20006         * tree-cfg.c (add_phi_args_after_redirect): Remove.
20007         (gimple_duplicate_sese_tail): Remove the check for the latch.
20008         Redirect nexits to the exit block.
20009         Remove handling of the incoming edges to the latch.
20010         Redirect the backedge from the copied latch to the exit bb.
20011
20012 2010-01-28  Michael Matz  <matz@suse.de>
20013
20014         PR target/42881
20015         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
20016         Wrap force_reg into a sequence, emit it before user.
20017
20018 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
20019
20020         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
20021         (arm_rev): New.
20022         (arm_legacy_rev): Likewise.
20023         (thumb_legacy_rev): Likewise.
20024
20025 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
20026
20027         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
20028         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
20029         on MEM's address failed, try avoid_constant_pool_reference and
20030         recurse if it returned something different.
20031         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
20032         address, try avoid_constant_pool_reference and recurse if it
20033         returned something different.
20034         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
20035         address and avoid_constant_pool_reference returned something
20036         different, don't set have_address.
20037
20038 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
20039
20040         PR debug/42861
20041         * var-tracking.c (val_store): Add modified argument, obey it.
20042         Adjust callers.
20043         (count_uses): Move down logging of main.
20044         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
20045         don't need resolution.
20046         (emit_notes_in_bb): Likewise.
20047
20048 2010-01-27  Richard Guenther  <rguenther@suse.de>
20049
20050         PR middle-end/42878
20051         * tree-inline.c (remap_decl): Delay remapping of SSA name
20052         default definitions until we need them.
20053
20054 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
20055
20056         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
20057         (rs6000_delegitimize_address): New function.
20058
20059         * config/s390/s390.c (s390_delegitimize_address): Call
20060         delegitimize_mem_from_attrs.
20061
20062         PR middle-end/42874
20063         * tree-inline.c (cannot_copy_type_1): Removed.
20064         (copy_forbidden): Don't forbid copying of functions containing
20065         records/unions with variable length fields.
20066
20067 2010-01-27  Christian Bruel  <christian.bruel@st.com>
20068
20069         Revert:
20070         PR target/42841
20071         * config/sh/sh.c (find_barrier): Increase length for non delayed
20072         conditional branches.
20073
20074 2010-01-27  Matthias Klose  <doko@ubuntu.com>
20075
20076         * configure.ac (gnu-unique-object): Fix ldd version check.
20077         * configure: Regenerate.
20078
20079 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20080
20081         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
20082         HAVE_GNU_AS value.
20083         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
20084         Test for HAVE_GNU_AS value.
20085
20086 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20087
20088         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
20089         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
20090         INT64_TYPE): Define.
20091         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
20092         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
20093         INT_LEAST64_TYPE): Define.
20094         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
20095         UINT_LEAST64_TYPE): Define.
20096         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
20097         INT_FAST64_TYPE): Define.
20098         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
20099         UINT_FAST64_TYPE): Define.
20100         (INTMAX_TYPE, UINTMAX_TYPE): Define.
20101         (INTPTR_TYPE, UINTPTR_TYPE): Define.
20102         (SIG_ATOMIC_TYPE): Define.
20103
20104 2010-01-26  Richard Guenther  <rguenther@suse.de>
20105
20106         * df-scan.c (df_scan_set_bb_info): Remove assert.
20107         (df_insn_rescan_debug_internal): Merge asserts.
20108         (df_install_ref): Likewise.
20109         (df_mark_reg): Use bitmap_set_range.
20110         (df_hard_reg_used_p): Remove assert.
20111         (df_hard_reg_used_count): Likewise.
20112
20113 2010-01-26  Richard Guenther  <rguenther@suse.de>
20114
20115         PR rtl-optimization/42685
20116         * web.c (web_main): Ignore DEBUG_INSNs.
20117
20118 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
20119
20120         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
20121
20122         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
20123         Fix types of fndecl and arglist parameters.
20124
20125 2010-01-26  Richard Guenther  <rguenther@suse.de>
20126
20127         PR middle-end/42806
20128         * tree-eh.c (unsplit_eh): Skip debug insns.
20129
20130 2010-01-26  Richard Guenther  <rguenther@suse.de>
20131
20132         PR tree-optimization/42250
20133         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
20134
20135 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
20136
20137         PR fortran/42866
20138         * omp-low.c (expand_omp_sections): Only use single_pred if
20139         l2_bb is single_pred_p.
20140
20141 2010-01-25  Christian Bruel  <christian.bruel@st.com>
20142
20143         PR target/42841
20144         * config/sh/sh.c (find_barrier): Increase length for non delayed
20145         conditional branches.
20146         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
20147
20148 2010-01-24  David S. Miller  <davem@davemloft.net>
20149
20150         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
20151         define if not using GAS.
20152         * config/sparc/sparc.c (sparc_elf_asm_named_section):
20153         Likewise.  Delete SECTION_MERGE code, which is only applicable
20154         when using GAS.
20155
20156 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
20157
20158         PR c++/42748
20159         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
20160         mangling of va_list in system headers.
20161
20162 2010-01-23  Toon Moene  <toon@moene.org>
20163
20164         * tree-predcom.c (combine_chains): Return NULL, not false.
20165
20166 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
20167
20168         * tree-loop-distribution.c (distribute_loop): Fix declaration and
20169         initialization of variable res to agree with return type.
20170
20171 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
20172
20173         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
20174         * tree-sra.c: Add include of expr.h.
20175
20176 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
20177
20178         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
20179         insert the debug stmt on the single non-EH edge from the stmt.
20180
20181 2010-01-22  Richard Henderson  <rth@redhat.com>
20182
20183         PR tree-opt/42833
20184         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
20185         the RHS until after generate_subtree_copies has insertted its
20186         code before the current statement.
20187
20188 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
20189
20190         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
20191
20192         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
20193
20194 2010-01-21  Martin Jambor  <mjambor@suse.cz>
20195
20196         PR tree-optimization/42585
20197         * tree-sra.c (struct access): New field grp_total_scalarization.
20198         (dump_access): Dump the new field.
20199         (should_scalarize_away_bitmap): New variable.
20200         (cannot_scalarize_away_bitmap): Likewise.
20201         (sra_initialize): Allocate new bitmaps.
20202         (sra_deinitialize): Free new bitmaps.
20203         (create_access_1): New function.
20204         (create_access): Parts moved to create_access_1.
20205         (type_consists_of_records_p): New function.
20206         (completely_scalarize_record): Likewise.
20207         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
20208         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
20209         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
20210         access.
20211         (analyze_all_variable_accesses): Completely scalarize small eligible
20212         records.
20213
20214 2010-01-21  Martin Jambor  <mjambor@suse.cz>
20215
20216         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
20217
20218 2010-01-21  Andrew Haley  <aph@redhat.com>
20219
20220         * gcc.c (process_command): Move lang_specific_driver before
20221         setting cc_libexec_prefix.
20222
20223 2010-01-21  Richard Guenther  <rguenther@suse.de>
20224
20225         PR middle-end/19988
20226         * fold-const.c (negate_expr_p): Pretend only negative
20227         real constants are easily negatable.
20228
20229 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
20230             Jason Merrill  <jason@redhat.com>
20231
20232         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
20233         (TYPE_TRANSPARENT_AGGR): this, for union and record.
20234         * calls.c (initialize argument_information): Handle it.
20235         * c-common.c (handle_transparent_union_attribute): Use new name.
20236         * c-decl.c (finish_struct): Ditto.
20237         * c-typeck.c (type_lists_compatible_p): Ditto.
20238         (convert_for_assignment): Use new name and also handle record.
20239         * function.c (aggregate_value_p): Handle it.
20240         (pass_by_reference): Ditto.
20241         (assign_parm_data_types): Ditto.
20242         * print-tree.c (print_node): Ditto.
20243         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
20244         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
20245         * tree.c (first_field): New fn.
20246
20247 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
20248
20249         PR target/42818
20250         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
20251         even when linking statically, for now.
20252
20253 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
20254
20255         PR debug/42715
20256         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
20257         without a cselib val.
20258         (count_uses): Accept MO_VAL_SET with no val on stores.
20259         (add_stores): Likewise.
20260
20261 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
20262
20263         * var-tracking.c (check_value_val): Add a compile time assertion.
20264         (dv_is_decl_p): Simplify.
20265         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
20266         gcc_assert if ENABLE_CHECKING.
20267
20268 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
20269
20270         PR debug/42782
20271         * var-tracking.c: Include tree-flow.h.
20272         (mem_dies_at_call): New.
20273         (dataflow_set_preserve_mem_locs): Use it.
20274         (dataflow_set_remove_mem_locs): Likewise.
20275         (dump_var): Renamed from dump_variable.  Adjust all callers.
20276         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
20277         * Makefile.in (var-tracking.o): Adjust deps.
20278
20279 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
20280
20281         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
20282
20283 2010-01-20  Richard Guenther  <rguenther@suse.de>
20284
20285         PR tree-optimization/42717
20286         * tree-ssa-dce.c (get_live_post_dom): Remove.
20287         (forward_edge_to_pdom): Take an arbitrary edge to copy
20288         degenerate PHI args from.
20289         (remove_dead_stmt): Use the first post-dominator even if it
20290         does not contain live statements as redirection destination.
20291
20292 2010-01-20  Richard Guenther  <rguenther@suse.de>
20293
20294         * tree-inline.c (estimate_num_insns): Handle EH builtins.
20295
20296 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
20297
20298         * sel-sched.c (create_speculation_check): Remove set but not used
20299         variable twin.
20300         (try_transformation_cache): Remove set but not used variable ds.
20301         (calculate_privileged_insns): Remove set but not used variables
20302         cur_insn and min_spec_insn.
20303         (find_best_expr): Remove set but not used variable avail_n.
20304         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
20305         variable e.
20306         * cgraphunit.c (assemble_thunk): Remove set but not used variable
20307         false_label.
20308         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
20309         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
20310         new_scop_exit_edge.
20311
20312 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
20313
20314         PR bootstrap/42786
20315         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
20316         cpu types.  Add support for *-sse3 cpu types.
20317         (x86_64-*-*): Ditto.
20318
20319 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
20320
20321         PR middle-end/42803
20322         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
20323         argument, call initializer_constant_valid_p_1 instead of
20324         initializer_constant_valid_p, pass CACHE to it, return NULL
20325         immediately if first call returns NULL.
20326         (initializer_constant_valid_p_1): New function.
20327         (initializer_constant_valid_p): Use it.
20328
20329 2010-01-20  Thomas Quinot  <quinot@adacore.com>
20330
20331         * tree.def (PLACEHOLDER_EXPR): Fix comment.
20332
20333 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
20334
20335         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
20336         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
20337         (loc_list_from_tree): Don't handle unsigned division.  Handle
20338         signed modulo using DW_OP_{over,over,div,mul,minus}.
20339         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
20340         modulo instead of signed.
20341
20342 2010-01-20  DJ Delorie  <dj@redhat.com>
20343
20344         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
20345         (Fpa): Pass it
20346         (h8300_emit_stack_adjustment): Propogate it.
20347         (push): Pass it.
20348         (h8300_expand_prologue): Likewise.
20349         (h8300_expand_epilogue): Likewise.
20350
20351 2010-01-19  Michael Matz  <matz@suse.de>
20352
20353         PR tree-optimization/41783
20354         * tree-data-ref.c (toplevel): Include flags.h.
20355         (dump_data_dependence_relation):  Also dump the inputs if the
20356         result will be unknown.
20357         (split_constant_offset_1): Look through some conversions.
20358         * tree-predcom.c (determine_roots_comp): Restart a new chain if
20359         the offset from last element is too large.
20360         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
20361         (reassociate_to_the_same_stmt): Handle vector registers.
20362         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
20363         (e.g. conversions).
20364         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
20365         wide_prolog_niters argument, emit widening instructions.
20366         (vect_do_peeling_for_alignment): Adjust caller, use widened
20367         variant of the iteration cound.
20368         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
20369
20370 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20371
20372         PR target/38697
20373         * config/arm/neon-testgen.m (emit_automatics): New parameter
20374         features. Adjust for Fixed_return_reg feature.
20375         (test_intrinsic): Call emit_automatics with new feature.
20376         * config/arm/neon.ml: Update copyright years.
20377         (features): New Fixed_return_reg feature.
20378         (ops): Update feature for Vget_low.
20379
20380 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
20381
20382         PR tree-optimization/42719
20383         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
20384         stmt uses.
20385
20386         PR debug/42728
20387         * fwprop.c (all_uses_available_at): Return false if def_set dest
20388         is a REG that is used in def_insn.
20389
20390 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
20391
20392         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
20393
20394         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
20395         Add argument names.
20396
20397         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
20398
20399         * target.h (struct gcc_target) <secondary_reload>: Change type
20400         of last argument to secondary_reload_info *.
20401
20402 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
20403
20404         PR target/42774
20405         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
20406         memory references with unaligned offsets.  Remove CQImode handling.
20407         (unaligned_memory_operand): Return 1 for memory references with
20408         unaligned offsets.  Remove CQImode handling.
20409
20410 2010-01-18  Richard Guenther  <rguenther@suse.de>
20411
20412         PR middle-end/39954
20413         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
20414         builtin calls.
20415
20416 2010-01-18  Richard Guenther  <rguenther@suse.de>
20417
20418         PR tree-optimization/42781
20419         * tree-ssa-structalias.c (find_what_var_points_to): Skip
20420         restrict processing only if the original variable was artificial.
20421
20422 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
20423
20424         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
20425         find number of popped argument bytes.
20426
20427         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
20428         Fix the text that describes the return value for invalid insns.
20429
20430         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
20431
20432         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
20433         Clarify what 'cost of the -dependence' is.  Fix quoting.
20434
20435         * toplev.c (default_get_pch_validity): Rename argument to "sz".
20436         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
20437
20438 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
20439
20440         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
20441         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
20442
20443 2010-01-17  Richard Guenther  <rguenther@suse.de>
20444
20445         PR middle-end/42248
20446         * function.c (split_complex_args): Take a VEC to modify.
20447         (assign_parms_augmented_arg_list): Build a VEC instead of
20448         a chain of PARM_DECLs.
20449         (assign_parms_unsplit_complex): Take a VEC of arguments.
20450         Do not fixup unmodified parms.
20451         (assign_parms): Deal with the VEC.
20452         (gimplify_parameters): Likewise.
20453
20454 2010-01-17  Richard Guenther  <rguenther@suse.de>
20455
20456         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
20457         node existence check.
20458         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
20459         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
20460         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
20461         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
20462         (gimple_execute_on_growing_pred): Likewise.
20463
20464 2010-01-17  Richard Guenther  <rguenther@suse.de>
20465
20466         PR tree-optimization/42773
20467         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
20468         (compute_antic_aux): Likewise.
20469         (compute_partial_antic_aux): Likewise.
20470
20471 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
20472
20473         PR debug/42767
20474         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
20475         and US_TRUNCATE.
20476
20477 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
20478
20479         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
20480         appearance.
20481
20482         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
20483         Fix markup for strict argument.
20484
20485         (TARGET_SCHED_REORDER2): Fix argument types.
20486
20487         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
20488         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
20489
20490         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
20491         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
20492
20493         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
20494         Add argument name.
20495
20496         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
20497         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
20498         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
20499         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
20500         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
20501
20502         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
20503
20504         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
20505
20506         (TARGET_ASM_RELOC_RW_MASK): Add return type.
20507         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
20508
20509         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
20510
20511         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
20512         Use prototype.
20513
20514         (TARGET_ASM_NAMED_SECTION): Fix argument list.
20515
20516         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
20517         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
20518
20519         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
20520
20521         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
20522
20523         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
20524         referring to it.  Fix language.
20525
20526         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
20527
20528         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
20529
20530         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
20531
20532         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
20533
20534         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
20535         '@var{stream}.  Remove stray 'and'.
20536
20537         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
20538
20539         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
20540
20541         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
20542
20543         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
20544         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
20545
20546         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
20547         Fix description of return value.
20548         Rename argument "sz" to "len."
20549
20550         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
20551         Clarify meaning of 'true' return value.
20552
20553         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
20554
20555         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
20556         rep_mode versus mode_rep.
20557
20558         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
20559
20560         (TARGET_BUILTIN_DECL): Fix name.
20561
20562         (TARGET_COMMUTATIVE_P): Fix type of first argument.
20563
20564         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
20565
20566         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
20567
20568         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
20569
20570         (TARGET_RELAXED_ORDERING): Use @deftypevr.
20571
20572         (TARGET_GET_DRAP_RTX): Note that this is a hook.
20573         Clarify language.
20574
20575         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
20576         Rename argument tm_fn to md_fn.
20577
20578         (TARGET_OPTION_PRINT): Fix argument list.
20579
20580 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
20581
20582         PR target/42664
20583         * config/i386/i386.c (ix86_fixup_binary_operands):
20584         Revert FMA4 fixup of operands.
20585
20586 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20587
20588         PR gcc/42525
20589         * Makefile.in (write_entries_to_file, install-plugin):
20590         Use \012 instead of \n with tr.
20591
20592 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
20593
20594         * configure.ac (HAVE_AS_REF): New C macro.
20595         * configure: Regenerate.
20596         * config.in: Likewise.
20597         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
20598         if HAVE_AS_REF.
20599         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
20600         if HAVE_AS_REF.
20601
20602 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
20603
20604         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
20605
20606         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
20607
20608         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
20609
20610         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
20611
20612         (TARGET_IN_SMALL_DATA_P): Fix argument type.
20613
20614         (TARGET_BINDS_LOCAL_P): Fix argument type.
20615
20616         (TARGET_ASM_FILE_END): Use prototype.
20617
20618         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
20619
20620         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
20621
20622         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
20623
20624         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
20625
20626         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
20627         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
20628
20629         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
20630         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
20631
20632         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
20633         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
20634         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
20635         (TARGET_ADDR_SPACE_CONVERT): Likewise.
20636
20637         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
20638
20639         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
20640
20641         (TARGET_INIT_BUILTINS): Use prototype.
20642
20643         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
20644         Put 'const char *' in braces.  Fix parameter types.
20645         (TARGET_INVALID_CONVERSION): Fix parameter types.
20646         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
20647         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
20648
20649         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
20650         Fix argument type.
20651
20652         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
20653
20654         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
20655
20656 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
20657
20658         * doc/tm.texi (TARGET_HELP): Fix return type.
20659
20660         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
20661         in braces.  Fix argument types.
20662
20663         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
20664
20665         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
20666
20667         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
20668
20669         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
20670         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
20671
20672         (TARGET_MANGLE_TYPE): Fix argument types.
20673
20674         (TARGET_IRA_COVER_CLASSES): Use prototype.
20675
20676         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
20677
20678         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
20679
20680         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
20681
20682         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
20683
20684         (TARGET_CALLEE_COPIES): Fix argument types.
20685
20686         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
20687
20688         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
20689
20690         (TARGET_FUNCTION_VALUE): Fix argument types.
20691
20692         (TARGET_RETURN_IN_MSB): Fix argument type.
20693
20694         (TARGET_RETURN_IN_MEMORY): Fix argument types.
20695
20696         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
20697
20698         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
20699
20700         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
20701         agree with return type.
20702
20703         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
20704
20705 2010-01-15  Jing Yu  <jingyu@google.com>
20706
20707         PR rtl-optimization/42691
20708         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
20709         a pseudo to a constant and are merged, and adjust comments.
20710
20711 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20712
20713         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
20714
20715 2010-01-15  Richard Guenther  <rguenther@suse.de>
20716
20717         PR middle-end/42739
20718         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
20719         labels of computed or non-local gotos to the destination.
20720         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
20721         landing pad label is the first label.
20722
20723 2010-01-15  Richard Guenther  <rguenther@suse.de>
20724
20725         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
20726
20727 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
20728
20729         PR target/42747
20730         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
20731         to allow generation of the xssqrtdp instruction on power7.
20732         (sqrtdf2_fpr): Ditto.
20733
20734 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
20735
20736         PR middle-end/42674
20737         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
20738         functions with noreturn attribute.
20739
20740         PR c++/42608
20741         * varasm.c (declare_weak): Add weak attribute to decl if it
20742         doesn't have one already.
20743         (assemble_external): Only add decls to weak_decls if they also
20744         have weak attribute.
20745
20746 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
20747
20748         * var-tracking.c (var_reg_delete): Don't delete the association
20749         between REGs and values or one-part variables if the register
20750         isn't clobbered.
20751
20752 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
20753
20754         PR debug/42657
20755         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
20756         because its first operand is a non-localized variable.
20757
20758 2010-01-14  Martin Jambor  <mjambor@suse.cz>
20759
20760         PR tree-optimization/42706
20761         * tree-sra.c (encountered_recursive_call): New variable.
20762         (encountered_unchangable_recursive_call): Likewise.
20763         (sra_initialize): Initialize both new variables.
20764         (callsite_has_enough_arguments_p): New function.
20765         (scan_function): Call decl and flags check only for IPA-SRA, check
20766         whether there is a recursive call and whether it has enough arguments.
20767         (all_callers_have_enough_arguments_p): New function.
20768         (convert_callers): Look for recursive calls only when
20769         encountered_recursive_call is set.
20770         (ipa_early_sra): Bail out either if
20771         !all_callers_have_enough_arguments_p or
20772         encountered_unchangable_recursive_call.
20773
20774 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20775
20776         * sel-sched.c: Add 2010 to copyright years.
20777         * sel-sched-ir.c: Likewise.
20778         * sel-sched-ir.h: Likewise.
20779
20780 2010-01-14  Martin Jambor  <mjambor@suse.cz>
20781
20782         PR tree-optimization/42714
20783         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
20784         constructors specially.
20785
20786 2010-01-14  Andi Kleen  <ak@linux.intel.com>
20787
20788         * config/i386/drivers-i386.c (detect_caches_intel):
20789         Add l2sizekb parameter and fill in.
20790         (host_detect_local_cpu): Add l2sizekb, fill in.
20791         Add Atom small cache heuristic.
20792
20793 2010-01-14  Andi Kleen  <ak@linux.intel.com>
20794
20795         * config/i386/drivers-i386.c (detect_caches_cpuid4):
20796         Add level3 parameter and fill in.
20797         (detect_caches_intel): Handle level3 cache.
20798
20799 2010-01-14  Andi Kleen  <ak@linux.intel.com>
20800
20801         * config/i386/drivers-i386.c (host_detect_local_cpu):
20802         Fix core duo detection.
20803
20804 2010-01-14  Andi Kleen  <ak@linux.intel.com>
20805
20806         * config/i386/drivers-i386.c (host_detect_local_cpu):
20807         Fix Atom detection.
20808
20809 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20810
20811         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
20812         (rs6000_variable_issue_1): this.  Use...
20813         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
20814
20815 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20816
20817         * sel-sched-ir.c (sel_restore_other_notes): Rename to
20818         sel_restore_notes.  Update all callers.  Call reemit_notes
20819         for all insns.
20820
20821 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20822
20823         PR rtl-optimization/42246
20824         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
20825         loops.
20826
20827 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20828
20829         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
20830         all successors is the same as number of successors in current region.
20831
20832 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20833
20834         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
20835         to rename is not separable.  Otherwise check that its LHS is not NULL.
20836
20837 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20838
20839         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
20840
20841 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20842
20843         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
20844         available registers when failed to discover LHS register class.
20845         Fix indentation.  Update comment.
20846
20847 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20848             Alexander Monakov  <amonakov@ispras.ru>
20849
20850         PR rtl-optimization/42389
20851         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
20852         to can_issue_more.
20853         (advance_state_on_fence): Likewise.
20854         (sel_target_adjust_priority): Print debug output only when
20855         sched_verbose >= 4, not 2.
20856         (get_expr_cost): Do not issue all unique insns on the next cycle.
20857         (fill_insns): Initialize can_issue_more from the value saved
20858         with the fence.
20859         * sel-sched-ir.c (flist_add): New parameter issue_more.
20860         Init FENCE_ISSUE_MORE with it.
20861         (merge_fences): Likewise.
20862         (init_fences): Update call to flist_add.
20863         (add_to_fences, add_clean_fence_to_fences)
20864         (add_dirty_fence_to_fences): Likewise.
20865         (move_fence_to_fences): Update call to merge_fences.
20866         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
20867         sched groups.
20868         * sel-sched-ir.h (struct _fence): New field issue_more.
20869         (FENCE_ISSUE_MORE): New accessor macro.
20870
20871 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20872
20873         PR rtl-optimization/42388
20874         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
20875         that have no predecessors nor successors.  Do not call move_bb_info
20876         for empty blocks outside of current region.
20877
20878 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20879
20880         PR rtl-optimization/42294
20881         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
20882         * sel-sched.c (move_exprs_to_boundary): Transitively add all
20883         originators' originators.
20884
20885 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
20886
20887         PR rtl-optimization/39453
20888         PR rtl-optimization/42246
20889         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
20890         for pipelining_p.
20891         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
20892
20893 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20894             Alexander Monakov  <amonakov@ispras.ru>
20895
20896         PR middle-end/42245
20897         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
20898         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
20899         argument.  Update all callers.
20900         (tidy_control_flow): ... and here.  Recompute topological order
20901         of basic blocks in region if necessary.
20902         (sel_redirect_edge_and_branch): Change return type.  Return true
20903         if topological order might have been invalidated.
20904         (purge_empty_blocks): Export and move from...
20905         * sel-sched.c (purge_empty_blocks): ... here.
20906         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
20907         (maybe_tidy_empty_bb): Delete prototype.
20908         (purge_empty_blocks): Declare.
20909
20910 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
20911
20912         PR rtl-optimization/42249
20913         * sel-sched.c (try_replace_dest_reg): When chosen register
20914         and original register is the same, do not bail out early, but
20915         still check all original insns for validity of replacing destination
20916         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
20917         in this case.
20918
20919 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
20920
20921         PR c/42721
20922         Port from no-undefined-overflow branch:
20923         2009-03-09  Richard Guenther  <rguenther@suse.de>
20924
20925         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
20926
20927 2010-01-14  Richard Guenther  <rguenther@suse.de>
20928
20929         PR lto/42665
20930         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
20931
20932 2010-01-14  Ira Rosen  <irar@il.ibm.com>
20933
20934         PR tree-optimization/42709
20935         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
20936         as scalar type in creation of constant vector operand.
20937
20938 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20939
20940         PR testsuite/42414
20941         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
20942         (check-parallel-%): Match `testsuite' directory component only
20943         at the end.
20944
20945 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
20946
20947         PR translation/39521
20948         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
20949         strings with _().
20950
20951 2010-01-13  Richard Guenther  <rguenther@suse.de>
20952
20953         PR tree-optimization/42730
20954         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
20955         offset zero.
20956
20957 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
20958
20959         PR target/pr42542
20960         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
20961         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
20962         them signed.
20963
20964 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
20965
20966         * config/bfin/libgcc-bfin.ver: Regenerate based on current
20967         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
20968         ___umulsi3_highpart.
20969
20970         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
20971         rather than schedule_insns if the pass is enabled.
20972
20973 2010-01-13  Martin Jambor  <mjambor@suse.cz>
20974
20975         PR tree-optimization/42704
20976         * tree-sra.c (sra_modify_assign): Do not delete assignments to
20977         SSA_NAMEs.
20978
20979 2010-01-13  Martin Jambor  <mjambor@suse.cz>
20980
20981         PR tree-optimization/42703
20982         * tree-sra.c (analyze_access_subtree): Check that we can build a
20983         reference to the original data within the aggregate.
20984
20985 2010-01-13  Richard Guenther  <rguenther@suse.de>
20986
20987         PR tree-optimization/42705
20988         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
20989
20990 2010-01-13  Richard Guenther  <rguenther@suse.de>
20991
20992         PR middle-end/42716
20993         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
20994
20995 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
20996
20997         PR debug/41371
20998         * var-tracking.c (values_to_unmark): New variable.
20999         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
21000         values_to_unmark vector.  Moved body to...
21001         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
21002         instead queue it into values_to_unmark vector.
21003         (vt_find_locations): Free values_to_unmark vector.
21004
21005 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
21006
21007         * config/s390/s390.c (override_options): Set
21008         default of max-pending-list-length to 256
21009
21010 2010-01-13  Richard Guenther  <rguenther@suse.de>
21011
21012         PR lto/42678
21013         * tree-pass.h (PROP_gimple_lcx): New.
21014         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
21015         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
21016         before the final cleanup_eh.
21017         (dump_properties): Dump PROP_gimple_lcx.
21018         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
21019         (tree_lower_complex_O0): Remove.
21020         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
21021         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
21022         tree_lower_complex, schedule TODO_update_ssa.
21023         * lto-streamer-out.c (output_function): Stream the functions
21024         properties.
21025         * lto-streamer-in.c (input_function): Likewise.
21026         (lto_read_body): Do not override them here.
21027
21028 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
21029
21030         PR c/42708
21031         * c-typeck.c (build_c_cast): Fold value cast to union type before
21032         wrapping it in a CONSTRUCTOR.
21033
21034 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
21035
21036         PR rtl-optimization/42699
21037         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
21038         involved.
21039
21040 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21041
21042         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
21043         SUBTARGET_WARN_UNUSED_SPEC): Move ...
21044         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
21045         SUBTARGET_WARN_UNUSED_SPEC): ... here
21046         * config/mips/iris5.h (LIBGCC_SPEC): Define.
21047
21048 2010-01-12  Julian Brown  <julian@codesourcery.com>
21049
21050         * config/arm/neon-schedgen.ml (Utils): Don't try to
21051         open missing module.
21052         (find_with_result): New.
21053
21054 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
21055
21056         PR debug/42662
21057         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
21058         sharing when canonicalizing ({lt,ge}u (plus a b) b).
21059
21060         PR tree-optimization/42645
21061         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
21062         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
21063         decl_map, set processing_debug_stmt to -1 and return name without
21064         any remapping.
21065
21066 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
21067
21068         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
21069         binutils version, and reword target configuration description.
21070
21071 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
21072
21073         * config/avr/avr.h (LINKER_NAME): Remove.
21074
21075 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
21076
21077         PR target/42416
21078         * config/rs6000/rs6000.c (rs6000_override_options): On targets
21079         that support VSX, warn for -mno-altivec if vsx is not disabled,
21080         and disable vsx.
21081
21082 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
21083             Shujing Zhao  <pearly.zhao@oracle.com>
21084
21085         PR translation/42469
21086         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
21087         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
21088         character between option name and help text.
21089         * c.opt (imultilib): Likewise.
21090
21091 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
21092
21093         * lto-streamer-out.c (output_unreferenced_globals): Output static
21094         variables.
21095
21096 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
21097
21098         PR rtl-optimization/42621
21099         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
21100         optimizing for size.
21101         (duplicate_computed_gotos): Remove now-redundant check.
21102
21103 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
21104
21105         PR target/37454
21106         * configure.ac: Save and restore LDFLAGS and LIBS
21107         * configure: Regenerate.
21108
21109 2010-01-10  Richard Guenther  <rguenther@suse.de>
21110
21111         PR middle-end/42667
21112         * builtins.c (fold_builtin_strlen): Add type argument and
21113         convert the resulting length to it.
21114         (fold_builtin_1): Adjust.
21115
21116 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
21117
21118         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
21119         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
21120         1 insn.
21121         (num_insns_constant_wide): Adjust for that change.
21122
21123 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21124
21125         PR debug/42631
21126         * web.c (union_defs): Add used argument, to combine uses of
21127         uninitialized regs.
21128         (entry_register): Adjust type and tests of used argument.
21129         (web_main): Widen used for new use.  Pass it to union_defs.
21130         * df.h (union_defs): Adjust prototype.
21131
21132 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21133
21134         PR debug/42630
21135         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
21136         uses in new incoming argument.  Free body.
21137         (reset_debug_uses_in_loop): New.
21138         (analyze_insn_to_expand_var): Call the latter if the former found
21139         anything.  Fix whitespace.  Reject invalid dest overlaps before
21140         going through all insns in the loop.
21141
21142 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21143
21144         PR debug/42629
21145         * haifa-sched.c (dying_use_p): Debug insns don't count.
21146
21147 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21148
21149         PR middle-end/42363
21150         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
21151         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
21152         (verify_gimple_call): Reject LHS in noreturn calls.
21153
21154 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21155
21156         PR debug/42604
21157         PR debug/42395
21158         * tree-vect-loop-manip.c (adjust_info): New type.
21159         (adjust_vec): New pointer to vector.
21160         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
21161         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
21162         (slpeel_update_phis_for_duplicate_loop): Use them.
21163         (slpeel_update_phi_nodes_for_guard1): Likewise.
21164         (slpeel_update_phi_nodes_for_guard2): Likewise.
21165         (slpeel_tree_peel_loop_to_edge): Likewise.
21166         (vect_update_ivs_after_vectorizer): Likewise.
21167
21168 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21169
21170         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
21171         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
21172
21173 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
21174
21175         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
21176         bogus uninitialized warning.
21177
21178 2010-01-09  Richard Guenther  <rguenther@suse.de>
21179
21180         PR middle-end/42512
21181         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
21182         the evolution is compatible with the initial condition.
21183
21184 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
21185
21186         * gcc.c (process_command): Update copyright notice dates.
21187         * gcov.c (print_version): Likewise.
21188         * gcov-dump.c (print_version): Likewise.
21189         * mips-tfile.c (main): Likewise.
21190         * mips-tdump.c (main): Likewise.
21191
21192 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
21193
21194         PR target/41885
21195         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
21196         (rotlhi3): Delete.
21197         (rotlhi3_8): Delete.
21198         (rotlsi3): Delete.
21199         (rotlsi3_8): Delete.
21200         (rotlsi3_16): Delete.
21201         (rotlsi3_24): Delete.
21202         (rotl<mode>3): New.
21203         (*rotw<mode>3): New.
21204         (*rotb<mode>3): New.
21205         * config/avr/avr.c (avr_rotate_bytes): New function.
21206         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
21207
21208 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
21209
21210         PR target/37454
21211         * configure.ac: Modify -rdynamic check.
21212         * configure: Regenerate.
21213
21214 2010-01-08  DJ Delorie  <dj@redhat.com>
21215
21216         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
21217         register popping order.
21218
21219 2010-01-08  Richard Guenther  <rguenther@suse.de>
21220
21221         PR lto/42528
21222         * c.opt (fsigned-char): Also let LTO handle this option.
21223         (funsigned-char): Likewise.
21224
21225 2010-01-07  Richard Guenther  <rguenther@suse.de>
21226
21227         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
21228         (gimple_op): Likewise.
21229         (gimple_op_ptr): Likewise.
21230         (gimple_assign_set_lhs): Remove gcc_assert.
21231         (gimple_assign_set_rhs1): Likewise.
21232         (gimple_assign_set_rhs2): Likewise.
21233         (gimple_call_set_lhs): Likewise.
21234         (gimple_call_set_fn): Likewise.
21235         (gimple_call_set_fndecl): Likewise.
21236         (gimple_call_fndecl): Likewise.
21237         (gimple_call_return_type): Likewise.
21238         (gimple_call_set_chain): Likewise.
21239         (gimple_call_num_args): Likewise.
21240         (gimple_call_set_arg): Likewise.
21241         (gimple_cond_set_code): Likewise.
21242         (gimple_cond_set_lhs): Likewise.
21243         (gimple_cond_set_rhs): Likewise.
21244         (gimple_cond_set_true_label): Likewise.
21245         (gimple_cond_set_false_label): Likewise.
21246         (gimple_label_set_label): Likewise.
21247         (gimple_goto_set_dest): Likewise.
21248         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
21249         (gimple_debug_bind_get_value): Likewise.
21250         (gimple_debug_bind_get_value_ptr): Likewise.
21251         (gimple_debug_bind_set_var): Likewise.
21252         (gimple_debug_bind_set_value): Likewise.
21253         (gimple_debug_bind_reset_value): Likewise.
21254         (gimple_debug_bind_has_value_p): Likewise.
21255         (gimple_return_retval_ptr): Remove gcc_assert.
21256         (gimple_return_retval): Likewise.
21257         (gimple_return_set_retval): Likewise.
21258         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
21259         (safe_referenced_var_iterator): Remove.
21260         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
21261         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
21262         (fill_referenced_var_vec): Remove.
21263         (first_readonly_imm_use): Remove redundant gcc_assert.
21264         (phi_arg_index_from_use): Combine gcc_asserts.
21265         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
21266         (first_imm_use_stmt): Remove redundant gcc_assert.
21267         * tree-cfg.c (verify_gimple_call): Verify function and chain
21268         operands.  Verify arguments.
21269         (verify_types_in_gimple_stmt): Verify condition code and labels.
21270
21271 2010-01-07  Richard Guenther  <rguenther@suse.de>
21272
21273         PR tree-optimization/42641
21274         * sese.c (rename_map_elt_info): Use the SSA name version, do
21275         not hash pointers.
21276
21277 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
21278
21279         PR tree-optimization/42625
21280         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
21281         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
21282
21283 2010-01-07  Duncan Sands  <baldrick@free.fr>
21284
21285         * Makefile.in (PLUGIN_HEADERS): Add version.h.
21286
21287 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
21288
21289         PR target/42511
21290         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
21291         note itself is not function_invariant_p.
21292
21293 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
21294
21295         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
21296         Do not add the DF_NOTE problem.
21297         * store-motion.c (execute_rtl_store_motion): Likewise.
21298
21299 2010-01-07  Martin Jambor  <mjambor@suse.cz>
21300
21301         PR tree-optimization/42157
21302         * tree-sra.c (compare_access_positions): Stabilize sort if both
21303         accesses have integer types, return zero immediately if they are the
21304         same.
21305
21306 2010-01-06  Richard Henderson  <rth@redhat.com>
21307
21308         PR middle-end/41883
21309         * haifa-sched.c (add_to_note_list): Merge into ...
21310         (concat_note_lists): ... here, and ...
21311         (unlink_other_notes, rm_other_notes): Merge into...
21312         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
21313         NOTE_INSN_EPILOGUE_BEG.
21314
21315 2010-01-06  Richard Guenther  <rguenther@suse.de>
21316
21317         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
21318         not inline regular functions into always-inline functions.
21319
21320 2010-01-06  Nick Clifton  <nickc@redhat.com>
21321
21322         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
21323         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
21324         used together.
21325         (OVERRIDE_OPTIONS): Delete.
21326         (OPTIMIZATION_OPTIONS): Define.
21327         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
21328         * config/rx/rx.c (rx_handle_option): Issue an error message if
21329         -mcpu=rx200 and -fpu are used together.
21330         (rx_set_optimization_options): New function.  Issue an error
21331         message if an optimization attribute attempts to reset the FPU/
21332         math optimization pairing.
21333         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
21334         * config/rx/rx.opt: Set the default to 32-bit doubles.
21335         * config/rx/t-rx: Add multilibs for -nofpu option.
21336         * doc/invoke.texi: Update documentation of RX options.
21337
21338 2010-01-06  Richard Guenther  <rguenther@suse.de>
21339
21340         * tree-ssa-pre.c (name_to_id): New global.
21341         (alloc_expression_id): Simplify SSA name handling.
21342         (lookup_expression_id): Likewise.
21343         (init_pre): Zero name_to_id.
21344         (fini_pre): Free it.
21345
21346 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
21347
21348         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
21349
21350 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
21351
21352         PR target/42542
21353         * config/i386/sse.md (smaxv2di3): New.
21354         (umaxv2di3): Likewise.
21355         (sminv2di3): Likewise.
21356         (uminv2di3): Likewise.
21357
21358 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21359
21360         PR target/42564
21361         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
21362         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
21363         (legitimize_tls_address): Likewise.
21364         (sparc_tls_referenced_p): Likewise.
21365         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
21366         and adjust calls to legitimize_pic_address.
21367         (legitimate_constant_p) Use sparc_tls_referenced_p.
21368         (legitimate_pic_operand_p): Likewise.
21369         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
21370         (sparc_tls_symbol_ref_1): Delete.
21371         (sparc_tls_referenced_p): Make static, recognize specific patterns.
21372         (legitimize_tls_address): Make static, handle CONST patterns.
21373         (legitimize_pic_address): Make static, remove unused parameter and
21374         adjust recursive calls.
21375         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
21376         and adjust call to legitimize_pic_address.
21377         (sparc_output_mi_thunk): Likewise.
21378
21379 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
21380             H.J. Lu  <hongjiu.lu@intel.com>
21381
21382         PR target/42542
21383         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
21384         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
21385         operands to make them signed.
21386
21387         Revert:
21388         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
21389
21390         PR target/42542
21391         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
21392         GTU to GT for V4SI and V2DI.
21393
21394         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
21395         (umin<mode>3): Removed.
21396         (uminv8hi3): New.
21397         (uminv4si3): Likewise.
21398
21399 2010-01-05  Martin Jambor  <mjambor@suse.cz>
21400
21401         PR tree-optimization/42462
21402         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
21403         current_function_decl to helper functions and macros.
21404
21405 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21406
21407         PR bootstrap/41771
21408         * flags.h: Don't include real.h.
21409         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
21410         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
21411         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
21412         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
21413         * dominance.c: Update copyright.
21414         * gimple.c (walk_gimple_op): Remove inline.
21415         * tree-ssa-reassoc.c: Include real.h.
21416         * Makefile.in (FLAGS_H): Remove $(REAL_H).
21417         (tree-ssa-reassoc.o): Depend on $(REAL_H).
21418
21419 2010-01-05  Nick Clifton  <nickc@redhat.com>
21420
21421         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
21422         register to push into the stack frame when the accumulator has to
21423         be saved during interrupts.
21424
21425 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
21426
21427         * doc/invoke.texi: Remove the documentation about option
21428         -Wunreachable-code.
21429         * common.opt (Wunreachable-code):  Preserved for backward
21430         compatibility.
21431         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
21432         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
21433         the backward compatibility flag section.
21434
21435 2010-01-05  Richard Guenther  <rguenther@suse.de>
21436
21437         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
21438
21439 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
21440
21441         PR other/42611
21442         * cfgexpand.c (expand_one_var): Diagnose too large variables.
21443
21444         PR tree-optimization/42508
21445         * tree-sra.c (convert_callers): Check for recursive call
21446         by comparing cgraph nodes instead of decls.
21447         (modify_function): Call ipa_modify_formal_parameters also
21448         on all same_body aliases.
21449
21450         * cgraphunit.c (cgraph_materialize_all_clones): Compare
21451         cgraph nodes when checking for same_body aliases.
21452
21453 2010-01-05  Richard Guenther  <rguenther@suse.de>
21454
21455         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
21456         allocation and lookup.
21457         (get_or_alloc_expr_for_constant): Likewise.
21458         (phi_translate): Sink allocation.
21459
21460 2010-01-04  Richard Guenther  <rguenther@suse.de>
21461
21462         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
21463         a new entry only if needed.
21464         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
21465         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
21466         hashtable lookup.
21467         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
21468         the result array.
21469         (phi_translate): Handle CONSTANTs early.
21470
21471 2010-01-04  Martin Jambor  <mjambor@suse.cz>
21472
21473         PR tree-optimization/42398
21474         * tree-sra.c (struct access): Removed flag grp_different_types.
21475         (dump_access): Do not dump the removed flag.
21476         (sort_and_splice_var_accesses): Do not set the removed flag.
21477         (sra_modify_expr): Check for type compatibility directly.
21478
21479 2010-01-04  Martin Jambor  <mjambor@suse.cz>
21480
21481         PR tree-optimization/42366
21482         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
21483         edges with variable number of parameters.
21484         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
21485         flag instead of asserting it.
21486         (ipa_read_node_info): Read uses_analysis_done flag.
21487
21488 2010-01-04  Richard Guenther  <rguenther@suse.de>
21489
21490         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
21491         iterative_hash_* as intended.
21492         (vn_reference_compute_hash): Likewise.  Simplify hashing
21493         SSA names.
21494         (vn_reference_lookup_2): Likewise.
21495         (vn_nary_op_compute_hash): Likewise.
21496         (vn_phi_compute_hash): Likewise.
21497         (expressions_equal_p): Remove strange code.
21498         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
21499         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
21500         (bitmap_insert_into_set_1): Take value-id as parameter.
21501         (add_to_value): Pass it.
21502         (bitmap_insert_into_set): Likewise.
21503         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
21504
21505 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
21506
21507         PR driver/42442
21508         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
21509         (do_self_spec): For switches with SWITCH_IGNORE set set also
21510         SWITCH_IGNORE_PERMANENTLY.
21511         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
21512         of SWITCH_IGNORE.
21513
21514 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
21515
21516         * lto-streamer-out.c (output_unreferenced_globals): Output the full
21517         tree of an unreferenced global var.
21518
21519 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
21520
21521         PR target/42542
21522         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
21523         GTU to GT for V4SI and V2DI.
21524
21525         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
21526         (umin<mode>3): Removed.
21527         (uminv8hi3): New.
21528         (uminv4si3): Likewise.
21529
21530 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
21531
21532         PR lto/42581
21533         * collect2.c (main): Turn on trace in collect2 if -v is passed
21534         to gcc with LTO.
21535
21536 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
21537
21538         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
21539         description of expression operand.
21540
21541 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
21542
21543         * configure.ac: Add install-html to target_list for Make-hooks.
21544         * configure: Regenerate.
21545         * fortran/Make-lang.in (F95_HTMLFILES): New.
21546         (fortran.html): Use it.
21547         (fortran.install-html): New.
21548         * Makefile.in (install-html): Add lang.install-html.
21549         * java/Make-lang.in (JAVA_HTMLFILES): New.
21550         (java.html): Use it.
21551         (java.install-html): New.
21552         * objc/Make-lang.in (objc.install-html): New.
21553         * objcp/Make-lang.in (obj-c++.install-html): New.
21554         * cp/Make-lang.in (c++.install-html): New.
21555         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
21556         * lto/Make-lang.in (lto.install-html): New.
21557
21558 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21559
21560         PR lto/42520
21561         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
21562
21563 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
21564
21565         PR rtl-optimization/41862
21566         * store-motion.c (store_killed_in_insn, compute_store_table,
21567         remove_reachable_equiv_notes, replace_store_insn,
21568         build_store_vectors): Ignore all DEBUG_INSNs.
21569
21570 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21571
21572         PR lto/41564
21573         * common.opt: Add dumpdir.
21574
21575         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
21576         isn't specified.
21577         (option_map): Add --dumpdir.
21578
21579         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
21580
21581         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
21582
21583         * opts.c (decode_options): Try dump_dir_name first if
21584         dump_base_name isn't an absolute path.
21585         (common_handle_option): Handle OPT_dumpdir.
21586
21587         * toplev.c (dump_dir_name): New.
21588         (print_switch_values): Also ignore -dumpdir.
21589
21590         * toplev.h (dump_dir_name): New.
21591
21592 2010-01-03  Richard Guenther  <rguenther@suse.de>
21593
21594         PR tree-optimization/42589
21595         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
21596         double-word expansion of bswap32.
21597
21598 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
21599
21600         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
21601         with BLOCK_FOR_INSN.
21602         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
21603         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
21604         noce_process_if_block): Likewise.
21605         * gcse.c (compute_local_properties, insert_expr_in_table,
21606         insert_set_in_table, canon_list_insert, find_avail_set,
21607         pre_insert_copy_insn): Likewise.
21608
21609         * basic-block.h (BLOCK_NUM): Move from here...
21610         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
21611
21612 2010-01-03  Richard Guenther  <rguenther@suse.de>
21613
21614         PR tree-optimization/42438
21615         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
21616         contains_may_not_return_call flag.
21617         (BB_MAY_NOTRETURN): New.
21618         (valid_in_sets): Trapping nary operations are not valid
21619         in blocks that may not return.
21620         (insert_into_preds_of_block): Remove check for trapping expressions.
21621         (compute_avail): Compute also BB_MAY_NOTRETURN.
21622
21623 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
21624
21625         * doc/invoke.texi: Add 2010 to copyright years.
21626
21627 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21628
21629         * config/sparc/sparc.c: Fix formatting nits.
21630
21631 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
21632             Alexander Monakov  <amonakov@ispras.ru>
21633
21634         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
21635
21636 2010-01-02  Richard Guenther  <rguenther@suse.de>
21637
21638         PR middle-end/42577
21639         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
21640         (simplify_switch_using_ranges): Mark to be removed edges
21641         as non-executable.
21642
21643 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21644
21645         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21646
21647         * collect2.c (scan_libraries): Add missing argument in call to
21648         scan_prog_file.
21649
21650 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
21651
21652         PR target/42448
21653         * config/alpha/predicates.md (aligned_memory_operand): Return false
21654         for CQImode.
21655         (unaligned_memory_operand): Return true for CQImode.
21656         * config/alpha/alpha.c (get_aligned_mem): Assert that location
21657         doesn not cross aligned SImode word boundary.
21658
21659 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
21660
21661         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
21662         Remove.
21663         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
21664         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
21665
21666 2010-01-02  Richard Guenther  <rguenther@suse.de>
21667
21668         PR lto/41597
21669         * toplev.c (compile_file): Emit LTO marker properly.  Change
21670         it to __gnu_lto_v1.
21671         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
21672
21673 2010-01-01  Richard Guenther  <rguenther@suse.de>
21674
21675         PR debug/42455
21676         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
21677
21678 2010-01-01  Richard Guenther  <rguenther@suse.de>
21679
21680         PR c/42570
21681         * c-decl.c (grokdeclarator): For zero-size arrays force
21682         structural equality checks as layout_type does.
21683
21684 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
21685
21686         * builtins.c: Update copyright to 2010.
21687
21688 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
21689
21690         PR lto/42531
21691         * lto-streamer-out.c (produce_asm): Revert the last change.
21692         (copy_function): Likewise.
21693
21694         * lto-streamer.c (lto_get_section_name): Skip any leading
21695         asterisk in name.
21696
21697 2010-01-01  Richard Guenther  <rguenther@suse.de>
21698
21699         PR middle-end/42559
21700         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
21701         for LABEL_DECLs.
21702
21703 \f
21704 Copyright (C) 2010 Free Software Foundation, Inc.
21705
21706 Copying and distribution of this file, with or without modification,
21707 are permitted in any medium without royalty provided the copyright
21708 notice and this notice are preserved.