re PR testsuite/51128 (New LTO failures)
[gcc.git] / gcc / ChangeLog
1 2011-12-05 Vladimir Makarov <vmakarov@redhat.com>
2
3 PR other/50775
4 * ira-int.h (struct ira_object): Remove add_data.
5 (OBJECT_ADD_DATA): Remove.
6
7 * ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
8 initialization.
9
10 * ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
11 allocno_hard_regs_t, allocno_hard_regs.
12 (object_hard_regs_node_t, object_hard_regs_node): Rename to
13 allocno_hard_regs_node_t and allocno_hard_regs_node.
14 (struct allocno_color_data): Add new member last_process. Move
15 profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
16 from object_color_data.
17 (object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
18 Remove.
19 (curr_allocno_process): New static variable.
20 (object_hard_regs_eq, object_hard_regs_htab): Rename to
21 allocno_hard_regs_eq and allocno_hard_regs_htab.
22 (init_object_hard_regs, finish_object_hard_regs): Rename to
23 init_allocno_hard_regs and finish_allocno_hard_regs.
24 (object_hard_regs_compare, object_hard_regs_node_t): Rename to
25 allocno_hard_regs_compare and allocno_hard_regs_node_t.
26 (create_new_object_hard_regs_node): Rename to
27 create_new_allocno_hard_regs_node.
28 (add_new_object_hard_regs_node_to_forest): Rename to
29 add_new_allocno_hard_regs_node_to_forest.
30 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
31 Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
32 (setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
33 (remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
34 (enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
35 Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
36 (object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
37 allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
38 (object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
39 allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
40 (object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
41 (setup_object_hard_regs_subnode_index): Rename to
42 setup_allocno_hard_regs_subnode_index.
43 (get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
44 (form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
45 (finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
46 (finish_object_hard_regs_nodes_forest): Rename to
47 finish_allocno_hard_regs_nodes_forest.
48 (setup_left_conflict_sizes_p): Use allocno data instead of object
49 ones. Process conflict allocnos once.
50 (update_left_conflict_sizes_p): Use allocno data instead of object
51 ones. Change prototype signature.
52 (empty_profitable_hard_regs): Use allocno data instead of object
53 ones.
54 (setup_profitable_hard_regs): Ditto.
55 (get_conflict_profitable_regs): Rename to
56 get_conflict_and_start_profitable_regs. Use allocno data for
57 profitable regs calculation.
58 (check_hard_reg_p): Change prototype signature. Check profitable
59 regs for allocno not the objects.
60 (assign_hard_reg): Process conflict allocnos only once for
61 updating conflict costs.
62 (setup_allocno_available_regs_num): Use allocno data instead of
63 object ones. Modify debug output.
64 (color_pass): Remove initialization and finalization of object
65 color data.
66
67 2011-12-05 Kazu Hirata <kazu@codesourcery.com>
68
69 PR target/51408
70 * config/arm/arm.md (*minmax_arithsi): Always require the else
71 clause in the MINUS case.
72
73 2011-12-05 Richard Guenther <rguenther@suse.de>
74
75 PR tree-optimization/50904
76 * tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
77 (MEM_ANALYZABLE): New.
78 (memory_references): Remove clobbered_vops and vop_ref_map
79 members, add all_refs_stored_in_loop member.
80 (memref_free): Adjust.
81 (mem_ref_alloc): Likewise.
82 (gather_mem_refs_stmt): Do not record clobbers, instead
83 record refs for unanalyzable stmts.
84 (gather_mem_refs_in_loops): Do not propagate clobbers.
85 (struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
86 record_vop_access, get_vop_accesses, get_vop_stores,
87 add_vop_ref_mapping): Remove.
88 (create_vop_ref_mapping_loop): Adjust to simply record all
89 stores.
90 (analyze_memory_references): Adjust.
91 (refs_independent_p): Check for not analyzable refs.
92 (can_sm_ref_p): Likewise.
93 (ref_indep_loop_p_1): Simplify.
94 (tree_ssa_lim_finalize): Adjust.
95
96 * tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
97 rather than magic constants. Assign zero cost to PAREN_EXPR
98 and SSA_NAME copies. Assign cost proportional to the vector
99 size for vector constructors.
100
101 2011-12-05 Richard Guenther <rguenther@suse.de>
102
103 * tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
104 * tree-ssa-alias.c (ao_ref_init): Initialize it.
105 (ao_ref_init_from_ptr_and_size): Likewise.
106 (refs_may_alias_p_1): Two volatile accesses conflict.
107 (ref_maybe_used_by_call_p_1): Likewise.
108 (call_may_clobber_ref_p_1): Likewise.
109 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
110 volatile_p field.
111
112 2011-12-05 Richard Guenther <rguenther@suse.de>
113
114 * tree-ssa.c (verify_ssa): Verify SSA names in the loop
115 over all SSA names. Remove SSA operand checking, call
116 verify_ssa_operands.
117 * tree-ssa-operands.h (verify_ssa_operands): Declare.
118 * tree-ssa-operands.c (verify_ssa_operands): New function.
119
120 2011-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
121
122 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
123 * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
124 * config/arm/constraints.md ("Dt"): New constraint.
125 * config/arm/predicates.md
126 (const_double_vcvt_power_of_two_reciprocal): New.
127 * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
128 (*arm_combine_vcvt_f32_u32): New.
129
130 2011-12-05 Richard Guenther <rguenther@suse.de>
131
132 * cgraph.c (cgraph_create_edge_1): Initialize
133 call_stmt_cannot_inline_p from the stmt if possible.
134 (cgraph_make_edge_direct): Likewise.
135 * gimple-streamer-in.c (input_gimple_stmt): Do not
136 call gimple_call_set_cannot_inline.
137 * gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
138 values.
139 (gimple_call_set_cannot_inline): Remove.
140 (gimple_call_cannot_inline_p): Likewise.
141 * ipa-inline-analysis.c (initialize_inline_failed): Look
142 at the edge call_stmt_cannot_inline_p flag.
143 * ipa-inline.c (can_inline_edge_p): Likewise.
144 (early_inliner): Only update the edge flag.
145 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
146 (ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
147 * cgraphunit.c (assemble_thunk): Likewise.
148 * gimple-fold.c (gimple_fold_call): Likewise.
149
150 * tree.h (CALL_CANNOT_INLINE_P): Remove.
151 * tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
152 * builtins.c (expand_builtin_alloca): With -fmudflap do not expand
153 alloca calls inline.
154 * cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
155 * gimple.c (gimple_build_call_from_tree): Do not read
156 CALL_CANNOT_INLINE_P.
157 * gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
158
159 2011-12-05 Jakub Jelinek <jakub@redhat.com>
160 Eric Botcazou <ebotcazou@adacore.com>
161
162 PR middle-end/51323
163 PR middle-end/50074
164 * calls.c (internal_arg_pointer_exp_state): New variable.
165 (internal_arg_pointer_based_exp_1,
166 internal_arg_pointer_exp_scan): New functions.
167 (internal_arg_pointer_based_exp): New function.
168 (mem_overlaps_already_clobbered_arg_p): Use it.
169 (expand_call): Free internal_arg_pointer_exp_state.cache vector
170 and clear internal_arg_pointer_exp_state.scan_start.
171
172 2011-12-04 Kaz Kojima <kkojima@gcc.gnu.org>
173
174 * config/sh/linux.h (TARGET_DEFAULT): Add MASK_SOFT_ATOMIC.
175 * config/sh/sync.md: New file.
176 * config/sh/sh.md: Include sync.md.
177 * config/sh/sh.opt (msoft-atomic): New option.
178 * doc/invoke.texi (SH Options): Document it.
179
180 2011-12-04 Nathan Sidwell <nathan@acm.org>
181
182 * gcov-io.h (struct gcov_info): Replace trailing array with
183 pointer to array.
184 * profile.c (branch_prob): Only call renamed
185 coverage_begin_function once.
186 * coverage.h (coverage_begin_output): Rename to ...
187 (coverage_begin_function): ... here.
188 * coverage.c (struct function_list): Rename to ...
189 (struct coverage_data): ... this. Update all uses.
190 (gcov_info_var, gcov_fn_info_type, gcov_fn_info_ptr_type): New
191 globals.
192 (bbg_file_opened, bbg_function_announced): Remove.
193 (get_coverage_counts): Adjust message.
194 (coverage_begin_ouput): Rename to ...
195 (coverage_begin_function): ... here. Move file opening to
196 coverage_init. Adjust for being called only once.
197 (coverage_end_function): Remove bbg file and inhibit further
198 output here on error.
199 (build_info_type): Adjust for change to pointer to array.
200 (build_info): Receive array of function pointers and adjust.
201 (create_coverage): Break into ...
202 (coverage_obj_init, coverage_obj_fn, coverage_obj_finish):
203 ... these, and adjust.
204 (coverage_init): Open the notes file here. Tidy.
205 (coverage_finish): Call coverage_obj_init etc.
206
207 2011-12-04 Ira Rosen <ira.rosen@linaro.org>
208
209 PR middle-end/51285
210 * tree-vect-loop.c (vect_create_epilog_for_reduction): Create exit
211 phi nodes for outer loop in case of double reduction.
212
213 2011-12-04 Jérémie Detrey <Jeremie.Detrey@loria.fr>
214
215 PR target/51393
216 * config/i386/avxintrin.h (_mm256_insert_epi64): Declare second
217 parameter as long long.
218
219 2011-12-04 Richard Sandiford <rdsandiford@googlemail.com>
220
221 PR middle-end/51351
222 * optabs.c (init_sync_libfuncs): Use "or" rather than "ior"
223 in the external names.
224
225 2011-12-03 Jack Howarth <howarth@bromo.med.uc.edu>
226
227 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Pass -no_pie for
228 non-PIC code when targeting 10.7 or later.
229
230 2011-12-03 Iain Sandoe <iains@gcc.gnu.org>
231
232 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
233 Darwin >= 10.
234 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
235 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
236
237 2011-12-03 Jakub Jelinek <jakub@redhat.com>
238
239 * fold-const.c (fold_unary_loc): Fold VEC_UNPACK_LO_EXPR,
240 VEC_UNPACK_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
241 VEC_UNPACK_FLOAT_HI_EXPR with VECTOR_CST argument.
242 (fold_binary_loc): Fold VEC_PACK_TRUNC_EXPR,
243 VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR
244 and VEC_WIDEN_MULT_HI_EXPR with VECTOR_CST arguments.
245
246 PR debug/50317
247 * tree-ssa.c (target_for_debug_bind): Also allow is_gimple_reg_type
248 vars that aren't referenced.
249 (tree-ssa-live.c (remove_unused_locals): Don't clear TREE_ADDRESSABLE
250 of unreferenced local vars.
251 * cfgexpand.c (expand_debug_expr): For DEBUG_IMPLICIT_PTR allow also
252 TREE_ADDRESSABLE vars that satisfy target_for_debug_bind.
253
254 2011-12-03 Anatoly Sokolov <aesok@post.ru>
255
256 * config/arm/arm.h (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove.
257 * config/arm/arm-protos.h (aapcs_libcall_value): Remove.
258 * config/arm/arm.c (TARGET_FUNCTION_VALUE_REGNO_P): Define.
259 (arm_libcall_value_1, arm_function_value_regno_p): New function.
260 (arm_function_value, arm_libcall_value): Use arm_libcall_value_1.
261 (aapcs_libcall_value): Make static.
262 (arm_libcall_value): Add static qualifier.
263
264 2011-12-02 Jakub Jelinek <jakub@redhat.com>
265
266 PR target/51387
267 * config/i386/sse.md (mul<mode>3 with VI1_AVX2 iterator): For
268 V32QImode use { 0,2,..,14,32,34,..,46,16,18,..,30,48,50,..,62 }
269 permutation instead of extract even permutation.
270
271 2011-12-02 Nathan Sidwell <nathan@acm.org>
272
273 * gcov.c (struct arc_info): Add is_throw field.
274 (struct (block_info): Add exceptional field, reduce flags size to
275 account for it.
276 (struct function_info): Add has_catch field.
277 (struct line_info): Add unexceptional field.
278 (process_file): Call find_exception_blocks if necessary.
279 (read_graph_file): Adjust. Note if an exceptional edge is seen.
280 (find_exception_blocks): New.
281 (add_line_counts): Set line's unexceptional flag if not
282 exceptional.
283 (output_branch_count): Note exceptional arcs, lines and blocks.
284 * gcov-dump.c (tag_arcs): Decode arc flags.
285 * doc/gcov.texi: Document '=====' lines.
286
287 2011-12-02 Anatoly Sokolov <aesok@post.ru>
288
289 * config/ia64/ia64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
290 PRINT_OPERAND_PUNCT_VALID_P): Remove macros.
291 * config/ia64/ia64-protos.h (ia64_print_operand,
292 ia64_print_operand_address): Remove.
293 * config/ia64/ia64.c (TARGET_PRINT_OPERAND,
294 TARGET_PRINT_OPERAND_ADDRESS, TARGET_PRINT_OPERAND_PUNCT_VALID_P):
295 Define.
296 (ia64_print_operand_punct_valid_p): New function.
297 (ia64_print_operand, ia64_print_operand_address): Make static.
298
299 2011-12-02 Michael Meissner <meissner@the-meissners.org>
300
301 PR target/51390
302 * config/rs6000/rs6000.c (def_builtin): Use the correct field to
303 figure out the function's attributes.
304 (struct builtin_description): Mark mask field as const since we no
305 longer need to modify it for SPE and PAIRED builtins.
306
307 2011-12-02 Joseph Myers <joseph@codesourcery.com>
308
309 Revert:
310
311 2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
312
313 PR rtl-opt/37451
314 * loop-doloop.c (doloop_modify): New argument zero_extend_p and
315 zero extend count after the correction to it is done.
316 (doloop_optimize): Update call to doloop_modify, don't zero extend
317 count before call.
318
319 2008-11-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
320
321 PR rtl-opt/37782
322 * loop-doloop.c (doloop_modify): Add from_mode argument that says what
323 mode count is in.
324 (doloop_optimize): Update call to doloop_modify.
325
326 2011-12-02 Richard Guenther <rguenther@suse.de>
327
328 PR lto/47259
329 * ipa.c (varpool_externally_visible_p): Register variables
330 are always externally visible.
331
332 2011-12-02 Sameera Deshpande <sameera.deshpande@arm.com>
333
334 * gimple-pretty-print.c (dump_gimple_call): Dereference fn only if
335 non-NULL.
336
337 2011-12-02 Martin Jambor <mjambor@suse.cz>
338
339 PR tree-optimization/50622
340 * tree-sra.c (load_assign_lhs_subreplacements): Force gimple operand
341 if both lacc and racc are grp_partial_lhs.
342
343 2011-12-01 Kaz Kojima <kkojima@gcc.gnu.org>
344
345 PR target/50814.
346 * config/sh/sh.c (expand_ashiftrt): Handle TARGET_SH2A same as
347 TARGET_SH3.
348 (shl_sext_kind): Likewise.
349 * config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Likewise.
350 * config/sh/sh.md (ashlsi3_sh2a, ashrsi3_sh2a, lshrsi3_sh2a): Remove.
351 (ashlsi3_std): Handle TARGET_SH2A same as TARGET_SH3.
352 (ashlsi3): Likewise.
353 (ashrsi3_d): Likewise.
354 (lshrsi3_d): Likewise.
355 (lshrsi3): Likewise.
356
357 2011-12-01 Diego Novillo <dnovillo@google.com>
358
359 PR bootstrap/51346
360 * ipa-inline.c (can_inline_edge_p): If the edge E has a statement,
361 use the statement's inline indicator instead of E's.
362 Remove consistency check.
363
364 2011-12-01 Diego Novillo <dnovillo@google.com>
365
366 PR bootstrap/51346
367 Revert
368
369 2011-11-29 Diego Novillo <dnovillo@google.com>
370
371 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
372 Update field call_stmt_cannot_inline_p from call
373 graph edge, if needed.
374 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
375
376 2011-12-01 Nathan Sidwell <nathan@acm.org>
377
378 PR gcov-profile/51113
379 * coverage.c (build_var): Keep coverage variables static.
380
381 2011-12-01 Jakub Jelinek <jakub@redhat.com>
382
383 PR tree-optimization/51356
384 * tree-vect-patterns.c (vect_recog_bool_pattern): Give up if
385 vectype doesn't have VECTOR_MODE_P.
386
387 PR debug/50317
388 * tree-ssa-dce.c (remove_dead_stmt): Add a debug stmt when removing
389 as unnecessary a store to a variable with gimple reg type.
390 * tree-ssa-live.c (remove_unused_locals): Clear TREE_ADDRESSABLE bit
391 on local unreferenced variables.
392 * cfgexpand.c (expand_gimple_basic_block): Don't emit DEBUG_INSNs
393 for !target_for_debug_bind variables.
394
395 2011-12-01 Patrick Marlier <patrick.marlier@gmail.com>
396
397 PR middle-end/51273
398 * cgraph.h (cgraph_call_node_duplication_hooks): Declare.
399 * cgraph.c (cgraph_call_node_duplication_hooks): Make global.
400 * cgraphunit.c (cgraph_copy_node_for_versioning): Call it.
401
402 2011-12-01 Andrew Pinski <apinski@cavium.com>
403
404 PR lto/51198
405 * tree.c (free_lang_data_in_decl): Clear FIELD_DECL's
406 DECL_INITIAL also.
407
408 2011-12-01 Jakub Jelinek <jakub@redhat.com>
409
410 PR tree-optimization/51246
411 * tree-predcom.c (replace_ref_with): Handle also clobber on the rhs.
412
413 PR rtl-optimization/51014
414 * loop-unroll.c (apply_opt_in_copies): Ignore label DEBUG_INSNs
415 both from bb and orig_bb.
416
417 2011-12-01 Joern Rennecke <joern.rennecke@embecosm.com>
418
419 PR tree-optimization/50802
420 * tree-vrp.c (simplify_conversion_using_ranges): Rewrite test
421 considering what happens to ranges during sign changes and/or
422 intermediate narrowing conversions.
423
424 2011-11-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
425
426 PR middle-end/50283
427 * config/pa/pa.md (in_branch_delay): Disallow frame related insns.
428 (in_nullified_branch_delay): Likewise.
429 (in_call_delay): Likewise.
430
431 2011-11-30 Richard Henderson <rth@redhat.com>
432
433 * predict.c (expr_expected_value_1): Assume compare-and-swap builtin
434 boolean return is true.
435
436 2011-11-30 Jakub Jelinek <jakub@redhat.com>
437
438 PR rtl-optimization/51044
439 * dse.c (emit_inc_dec_insn_before): Ensure new_insn is an instruction
440 rather than just insn body.
441
442 PR target/50725
443 * function.c (thread_prologue_and_epilogue_insns): If
444 stack_realign_drap, add drap_reg to SET_UP_BY_PROLOGUE
445 regset.
446
447 PR middle-end/51089
448 * tree-eh.c (cleanup_empty_eh_merge_phis): Add check to
449 avoid creating duplicate edges here.
450 (cleanup_empty_eh_unsplit): And remove it in the caller.
451
452 2011-11-30 Andrew Pinski <apinski@cavium.com>
453
454 PR c/51321
455 * c-parser.c (c_parser_postfix_expression): Check groktypename results
456 before looking at the main variant.
457
458 2011-11-30 Jakub Jelinek <jakub@redhat.com>
459
460 PR rtl-optimization/48721
461 * sched-deps.c (sched_analyze_insn): For SIBLING_CALL_P set
462 reg_pending_barrier to TRUE_BARRIER.
463
464 PR rtl-optimization/48721
465 * sched-ebb.c (begin_move_insn): Insert empty unreachable
466 block after BARRIER if insn is followed by it.
467
468 2011-11-30 Richard Henderson <rth@redhat.com>
469
470 * config/sparc/sparc-opts.h (enum sparc_memory_model_type): New.
471 * config/sparc/sparc.opt (mmemory-model=): New option.
472 * doc/invoke.texi (Sparc Options): Document it.
473 * config/sparc/sparc.c (sparc_option_override): Provide default
474 for sparc_memory_model.
475 (sparc_emit_membar_for_model): Omit barrier combinations that are
476 implied by the memory model.
477
478 2011-11-30 Richard Henderson <rth@redhat.com>
479
480 * config/sparc/sync.md (I124MODE): New mode iterator.
481 (memory_barrier): Remove.
482 (atomic_exchangesi): New.
483 (swapsi): Rename from *swapsi.
484 (atomic_test_and_set<I124MODE>): New.
485 (ldstubqi): Rename from *ldstubqi, merge with expander.
486 (ldstub<I24MODE>): Rename from *ldstub<I24MODE>, merge with expander.
487 (sync_lock_test_and_setsi): Remove.
488 (sync_lock_test_and_set<I12MODE>): Remove.
489
490 2011-11-30 Richard Henderson <rth@redhat.com>
491
492 * config/sparc/constraints.md ("w"): New.
493 * config/sparc/predicates.md (mem_noofs_operand): New.
494 * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Make static.
495 Generate the boolean result of the atomic_compare_exchange.
496 (sparc_expand_compare_and_swap): New.
497 * config/sparc/sync.md (atomic_compare_and_swap<I>): New.
498 (atomic_compare_and_swap<I48MODE>_1): Rename from
499 *sync_compare_and_swap<I48MODE>, use mem_noofs_operand.
500 (*atomic_compare_and_swapdi_v8plus): Rename from
501 *sync_compare_and_swapdi_v8plus, use mem_noofs_operand.
502 (sync_compare_and_swap<I12MODE>): Remove.
503 (sync_compare_and_swap<I48MODE>): Remove.
504
505 2011-11-30 Richard Henderson <rth@redhat.com>
506
507 * config/sparc/predicates.md (register_or_v9_zero_operand): New.
508 * config/sparc/sparc.md (UNSPEC_ATOMIC): New.
509 * config/sparc/sync.md (atomic_load<I>): New.
510 (atomic_loaddi_1, atomic_store<I>, atomic_storedi_1): New.
511
512 2011-11-30 Richard Henderson <rth@redhat.com>
513
514 * config/sparc/predicates.md (zero_or_v7_operand): New.
515 * config/sparc/sparc.c (sparc_emit_membar_for_model): New.
516 * config/sparc/sparc-protos.h: Update.
517 * config/sparc/sync.md (mem_thread_fence): New.
518 (memory_barrier): Use sparc_emit_membar_for_model.
519 (membar, *membar_empty, *membar_storestore, *membar_storeload): New.
520 (*membar_v8): Accept and ignore the membar mask.
521 (*membar): Accept and print the membar mask.
522
523 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
524
525 * config/arm/arm.c (arm_issue_rate): Cortex-A15 can triple issue.
526 * config/arm/arm.md (mul64): New attribute.
527 (generic_sched): Cortex-A15 is not scheduled generically.
528 (cortex-a15.md): Include.
529 * config/arm/cortex-a15.md: New machine description.
530 * config/arm/t-arm (MD_INCLUDES): Add cortex-a15.md.
531
532 2011-11-30 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
533
534 * config/arm/t-arm (MD_INCLUDES): Ensure all md files are listed.
535
536 2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
537
538 * doc/tm.texi.in (NEXT_OBJC_RUNTIME): Update macro description.
539 * doc/tm.texi: Regenerate.
540 * flags.h (flag_next_runtime): Remove references.
541 * toplev.c: Likewise.
542 * defaults.h (NEXT_OBJC_RUNTIME): Provide default.
543 * gccspec.c (lang_specific_driver): Adjust use of NEXT_OBJC_RUNTIME.
544 * config/darwin.c (darwin_override_options): Provide default
545 Objective-C abi settings and target conflict checks.
546 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Remove unused
547 code. Adjust indenting.
548
549 2011-11-29 Joseph Myers <joseph@codesourcery.com>
550
551 * config/sh/sh.h (enum reg_class, REG_CLASS_NAMES)
552 (REG_CLASS_CONTENTS): Add NON_SP_REGS.
553 (REGCLASS_HAS_GENERAL_REG): Handle NON_SP_REGS.
554 * config/sh/constraints.md (u): New constraint.
555
556 2011-11-29 Oleg Endo <oleg.endo@t-online.de>
557
558 PR target/51337
559 * config/sh/sh.c (sh_secondary_reload): Add case when FPUL
560 register is being loaded from a pseudo in memory.
561
562 2011-11-29 DJ Delorie <dj@redhat.com>
563
564 * config.gcc (rl78-*-elf): New case.
565 * doc/extend.texi: Add RL78 documentation.
566 * doc/invoke.texi: Likewise.
567 * doc/md.texi: Likewise.
568 * doc/contrib.texi: Add RL78.
569 * doc/install.texi: Add rl78-*-elf.
570 * config/rl78: New directory for the Renesas RL78.
571
572 2011-11-29 Jakub Jelinek <jakub@redhat.com>
573
574 PR tree-optimization/51247
575 * tree-vrp.c (extract_range_from_assert): For signed 1-bit precision
576 types instead of adding 1 subtract -1 and instead of subtracting 1
577 add -1 to avoid overflows.
578
579 2011-11-29 Andrew MacLeod <amacleod@redhat.com>
580
581 PR target/50123
582 * optabs.c (maybe_optimize_fetch_op): New. Look for more optimal
583 instructions for a FECTH_OP or OP_FECTH sequence.
584 (expand_atomic_fetch_op): Call maybe_optimize_fetch_op.
585
586 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
587
588 * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs.
589 (movdi_via_fpu): Remove.
590 (loaddi_via_fpu): New insn pattern.
591 (storedi_via_fpu): Ditto.
592 (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu.
593 (atomic_storedi_fpu): Ditto.
594 * reg-stack.c (get_true_reg): Handle UNSPEC_LDA.
595 (subst_stack_regs_pat): Handle UNSPEC_STA.
596
597 2011-11-29 Uros Bizjak <ubizjak@gmail.com>
598
599 * config/i386/i386.md (*floathi<mode>2_i387_with_temp): Do not
600 allocate scratch memory for alternative 0.
601
602 2011-11-29 Michael Meissner <meissner@linux.vnet.ibm.com>
603
604 * config/rs6000/rs6000-builtins.def: Completely rewrite builtin
605 handling to centralize more of the builtins in this file. Change
606 some builtin enumerations to be more consistant. Use a new mask
607 to hold the current builtins, including SPE and PAIRED builtins
608 which no longer are set via target_flags masks. Add
609 -mdebug=builtin debug support. For power machines, define all
610 Altivec and VSX buitins when the compiler starts, but don't allow
611 the use of a builtin unless the appropriate switch is used, or
612 #pragma GCC target is used to change the options. If the user
613 uses #pragma GCC target, update the appropriate hardware macros.
614 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Ditto.
615 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Ditto.
616 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Ditto.
617 (rs6000_define_or_undefine_macro): Ditto.
618 (rs6000_target_modify_macros): Ditto.
619 (rs6000_cpu_cpp_builtins): Ditto.
620 (altivec_overloaded_builtins): Ditto.
621 (altivec_build_resolved_builtin): Ditto.
622 * config/rs6000/rs6000.c (rs6000_target_modify_macros_ptr): Ditto.
623 (rs6000_builtin_info): Ditto.
624 (def_builtin): Ditto.
625 (enable_mask_for_builtins): Ditto.
626 (DEBUG_FMT_X): Ditto.
627 (rs6000_debug_reg_global): Ditto.
628 (rs6000_builtin_mask_calculate): Ditto.
629 (rs6000_option_override_internal): Ditto.
630 (rs6000_builtin_conversion): Ditto.
631 (rs6000_builtin_vectorized_function): Ditto.
632 (bdesc_3arg): Ditto.
633 (bdesc_dst): Ditto.
634 (bdesc_2arg): Ditto.
635 (builtin_description_predicates): Ditto.
636 (bdesc_altivec_preds): Ditto.
637 (bdesc_spe_predicates): Ditto.
638 (bdesc_spe_evsel): Ditto.
639 (bdesc_paired_preds): Ditto.
640 (bdesc_abs): Ditto.
641 (bdesc_1arg): Ditto.
642 (rs6000_overloaded_builtin_p): Ditto.
643 (rs6000_expand_unop_builtin): Ditto.
644 (bdesc_2arg_spe): Ditto.
645 (spe_expand_builtin): Ditto.
646 (rs6000_invalid_builtin): Ditto.
647 (rs6000_expand_builtin): Ditto.
648 (rs6000_init_builtins): Ditto.
649 (spe_init_builtins): Ditto.
650 (paired_init_builtins): Ditto.
651 (altivec_init_builtins): Ditto.
652 (builtin_function_type): Ditto.
653 (rs6000_common_init_builtins): Ditto.
654 (rs6000_builtin_reciprocal): Ditto.
655 (rs6000_builtin_mask_names): Ditto.
656 (rs6000_pragma_target_parse): Ditto.
657 (rs6000_function_specific_print): Ditto.
658 * config/rs6000/rs6000.h (MASK_DEBUG_BUILTIN): Ditto.
659 (MASK_DEBUG_ALL): Ditto.
660 (TARGET_DEBUG_BUILTIN): Ditto.
661 (TARGET_EXTRA_BUILTINS): Ditto.
662 (REGISTER_TARGET_PRAGMAS): Ditto.
663 (enum rs6000_btc): Ditto.
664 (RS6000_BTC_*): Ditto.
665 (RS6000_BTM_*): Ditto.
666 (enum rs6000_builtins): Ditto.
667 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Ditto.
668 (rs6000_target_modify_macros): Ditto.
669 (rs6000_target_modify_macros_ptr): Ditto.
670
671 * config/rs6000/vector.md (unsfloat<VEC_int><mode>2): Use the
672 standard name for converting vector unsigned values to floating
673 point. Delete the TARGET_VECTORIZE_BUILTIN_CONVERSION hook, which
674 is handled by machine independent code.
675 * config/rs6000/rs6000.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Ditto.
676 (rs6000_builtin_conversion): Ditto.
677
678 2011-11-29 Dodji Seketeli <dodji@redhat.com>
679
680 * tree-diagnostic (struct loc_t): Rename into struct loc_map_pair.
681 (maybe_unwind_expanded_macro_loc): Adjust.
682
683 2011-11-29 David Edelsohn <dje.gcc@gmail.com>
684 Aldy Hernandez <aldyh@redhat.com>
685
686 * trans-mem.c (ipa_tm_create_version_alias): Mangle new_decl
687 if DECL_ONE_ONLY.
688 (ipa_tm_create_version): Same.
689
690 2011-11-29 Bernd Schmidt <bernds@codesourcery.com>
691
692 * haifa-sched.c (recompute_todo_spec): Simplify and correct the
693 code checking for a clobber of a condition register when deciding
694 whether to predicate.
695
696 2011-11-29 Diego Novillo <dnovillo@google.com>
697
698 * gimple.c (gimple_call_set_cannot_inline): Move from gimple.h.
699 Update field call_stmt_cannot_inline_p from call graph edge, if needed.
700 * gimple.h (gimple_call_set_cannot_inline): Move to gimple.c.
701
702 2011-11-29 Sameera Deshpande <sameera.deshpande@arm.com>
703
704 * config/arm/arm.md (arm_movdi): Update NEG_POOL_RANGE.
705 (movdf_soft_insn): Likewise.
706 * config/arm/fpa.md (thumb2_movdf_fpa): Likewise.
707 * config/arm/neon.md (neon_mov<mode>): Likewise.
708 * config/arm/vfp.md (movdi_vfp): Likewise.
709 (movdi_vfp_cortexa8): Likewise.
710 (movdf_vfp): Likewise.
711
712 2011-11-29 Jakub Jelinek <jakub@redhat.com>
713
714 PR middle-end/50074
715 * expr.c (expand_expr_addr_expr_1): Don't call force_operand for
716 EXPAND_SUM modifier.
717
718 2011-11-29 Ira Rosen <ira.rosen@linaro.org>
719
720 PR tree-optimization/51301
721 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check that
722 the last statement doesn't convert to a bigger type than the original
723 type of the computation.
724
725 2011-11-28 Richard Henderson <rth@redhat.com>
726
727 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
728 Handle overlap between retval and oldval. Always compute boolval
729 from CR0 EQ value.
730
731 2011-11-28 Jakub Jelinek <jakub@redhat.com>
732
733 PR debug/50317
734 * tree-ssa.c (execute_update_addresses_taken): Remove
735 var ={v} {CLOBBER} stmts instead of rewriting them into
736 var_N ={v} {CLOBBER}.
737
738 PR middle-end/50907
739 * function.c (convert_jumps_to_returns): When redirecting an edge
740 succ to EXIT_BLOCK_PTR, clear EDGE_CROSSING flag.
741
742 PR tree-optimization/50078
743 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Copy over
744 TREE_THIS_VOLATILE also from the old to new lhs resp. rhs.
745
746 PR tree-optimization/50682
747 * tree-eh.c (maybe_remove_unreachable_handlers): New function.
748 * tree-flow.h (maybe_remove_unreachable_handlers): New prototype.
749 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call it.
750
751 2011-11-28 Georg-Johann Lay <avr@gjlay.de>
752
753 * doc/extend.texi (AVR Built-in Functions): Add documentation for
754 __builtin_avr_map8 and __builtin_avr_map16.
755
756 * config/avr/avr.md: Document new %t and %T asm output codes.
757 (define_c_enum "unspec"): Add UNSPEC_MAP_BITS.
758 (adjust_len): Add map_bits.
759 (map_bitsqi, map_bitshi): New insns.
760 * config/avr/avr-protos.h (avr_out_map_bits): New.
761 * config/avr/avr-protos.c (print_operand): Implement %t and %T.
762 (adjust_insn_length): Handle ADJUST_LEN_MAP_BITS.
763 (avr_double_int_push_digit): New function.
764 (avr_map, avr_revert_map, avr_swap_map, avr_id_map): New functions.
765 (avr_sig_map, avr_map_hamming_byte): New functions.
766 (avr_out_swap_bits, avr_out_revert_bits, avr_move_bits,
767 avr_out_map_bits): New functions.
768 (enum avr_builtin_id): Add AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
769 (avr_init_builtins): Populate __builtin_avr_map8, __builtin_avr_map16.
770 (bdesc_2arg): Add __builtin_avr_map8, __builtin_avr_map16 ...
771 (avr_expand_builtin): ...and expand them.
772 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
773 __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
774
775 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
776
777 PR target/51278
778 * config/mips/mips.c (mips_rtx_costs): Handle baddu.
779
780 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
781
782 * config/mips/mips.c (mips16_unextended_reference_p): Test for BLKmode.
783
784 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
785
786 * config/mips/mips-protos.h (mips_emit_binary): Declare.
787 * config/mips/mips.c (mips_emit_binary): Make global.
788 (mips_set_mips16_mode): Turn off -mfix-r4000 in MIPS16 mode.
789 (mips_conditional_register_usage): Don't treat LO and HI as
790 register operands in MIPS16 mode.
791 (mips_mulsidi3_gen_fn): Use {u,}mulsidi3_{32,64}bit_mips16
792 for MIPS16 code.
793 * config/mips/predicates.md (muldiv_target_operand): New predicate.
794 (move_operand): Allow hilo_operand.
795 * config/mips/mips.md (mul<mode>3): Explicitly specify LO as the
796 target of MIPS16 multiplies, then move it into the target register.
797 (mul<mode>3_internal, *macc2, *msac2): Use muldiv_target_operand.
798 (<u>mulsidi3_32bit_mips16): New expander.
799 (<u>mulsidi3_32bit): Use muldiv_target_operand.
800 (<u>mulsidi3_32bit_r4000): Disable for ISA_HAS_DSP.
801 (<u>mulsidi3_64bit): Require !TARGET_MIPS16. Split into
802 <u>mulsidi3_64bit_split.
803 (<u>mulsidi3_64bit_mips16): New expander.
804 (<u>mulsidi3_64bit_split): Likewise, using expansions from
805 two previous define_splits.
806 (<u>mulsidi3_64bit_hilo, *muls<u>_di, <u>msubsidi4): Use
807 muldiv_target_operand.
808 (<su>mulsi3_highpart): Use <su>mulsi3_highpart_split for MIPS16 code.
809 (<su>mulsi3_highpart_internal): Require !TARGET_MIPS16.
810 Split into <su>mulsi3_highpart_split.
811 (<su>mulsi3_highpart_split): New expander.
812 (<su>muldi3_highpart): Turn into a define_expand.
813 Use <su>muldi3_highpart_split for MIPS16 code.
814 (<su>muldi3_highpart_internal): Renamed from <su>muldi3_highpart.
815 Require !TARGET_MIPS16. Split into <su>muldi3_highpart_split.
816 (<su>muldi3_highpart_split): New expander.
817 (<u>mulditi3): Explicitly specify LO as the target of MIPS16
818 multiplies, then move it into the target register.
819 (<u>mulditi3_internal, <u>maddsidi4): Use muldiv_target_operand.
820 (divmod<mode>4, udivmod<mode>4): Turn into define_expands.
821 Use <u>divmod<mode>4_split for MIPS16 code, then explicitly
822 move LO into operand 0.
823 (divmod<mode>4_internal, udivmod<mode>4_internal): Renamed
824 from <u>divmod<mode>4. Use muldiv_target_operand.
825 Require !TARGET_MIPS16. Split into <u>divmod<mode>4_split.
826 (<u>divmod<mode>4_split): New expander.
827 (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): Use muldiv_target_operand.
828 (mfhi<GPR:mode>_<HILO:mode>): Use hilo_operand.
829
830 2011-11-27 Richard Sandiford <rdsandiford@googlemail.com>
831
832 * hard-reg-set.h (target_hard_regs): Add x_accessible_reg_set
833 and x_operand_reg_set.
834 (accessible_reg_set, operand_reg_set): New macros.
835 * reginfo.c (init_reg_sets): Initialize accessible_reg_set and
836 operand_reg_set.
837 (saved_accessible_reg_set, saved_operand_reg_set): New variables.
838 (save_register_info): Save them.
839 (restore_register_info): Restore them.
840 (init_reg_sets_1): Limit operand_reg_set to accessible_reg_set.
841 Remove NO_REGS registers from operand_reg_set. Treat members
842 of operand_reg_set as fixed.
843 * recog.c (general_operand): Check operand_reg_set rather than NO_REGS.
844 (register_operand, nonmemory_operand): Likewise.
845 * varasm.c (make_decl_rtl): Always use DECL_MODE as the mode of
846 register variables. Check accessible_reg_set and operand_reg_set.
847 * config/mips/mips.c (mips_conditional_register_usage): Remove
848 inaccessible register from accessible_reg_set, rather than just
849 making them fixed.
850
851 2011-11-27 Gerald Pfeifer <gerald@pfeifer.com>
852
853 * config/pa/pa-linux.h (TARGET_GAS): Remove comment.
854
855 2011-11-26 Richard Henderson <rth@redhat.com>
856
857 * config/arm/arm.c (arm_init_libfuncs): Call init_sync_libfuncs
858 for Linux.
859
860 2011-11-26 Richard Henderson <rth@redhat.com>
861
862 * optabs.c (expand_atomic_fetch_op): Always return result.
863
864 * optabs.c (init_sync_libfuncs_1): Include max in iteration.
865
866 * omp-low.c (expand_omp_atomic): Assume anything aligned to
867 BIGGEST_ALIGNMENT is aligned.
868
869 2011-11-26 Richard Henderson <rth@redhat.com>
870
871 * config/m68k/m68k.md (UNSPECV_CAS_1, UNSPECV_CAS_2): New.
872 (UNSPECV_TAS_1, UNSPECV_TAS_2): New.
873 (I): New mode iterator.
874 (xz): New mode attribute.
875 * config/m68k/sync.md: New file.
876
877 * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New.
878 * config/m68k/m68k.c (m68k_init_sync_libfuncs): New.
879
880 2011-11-26 Nathan Sidwell <nathan@acm.org>
881
882 PR gcov-profile/51297
883 * gcov.c (main): Allocate initial names and sources arrays.
884 (find_source): Don't check for null name or source arrays here.
885
886 2011-11-26 Jakub Jelinek <jakub@redhat.com>
887
888 PR rtl-optimization/49912
889 * cfgrtl.c (rtl_verify_flow_info_1): Ignore also EDGE_PRESERVE bit
890 when counting n_branch.
891
892 2011-11-26 Uros Bizjak <ubizjak@gmail.com>
893
894 * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes.
895
896 2011-11-26 Joern Rennecke <joern.rennecke@embecosm.com>
897
898 PR middle-end/50074
899 * calls.c (mem_overlaps_already_clobbered_arg_p):
900 Return false if no outgoing arguments have been stored so far.
901
902 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
903
904 * config/avr/avr.c (print_operand): Support code = 'i' for CONST_INT.
905
906 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
907
908 PR other/51011
909 * tree.h (is_builtin_name): No longer external.
910 * builtins.c (is_builtin_name): Make static.
911 * varasm.c (incorporeal_function_p): __sync and __atomic external calls
912 are not incorporeal and may need asm label processing.
913
914 2011-11-25 Georg-Johann Lay <avr@gjlay.de>
915
916 PR target/50566
917 * config/avr/avr-protos.h (avr_log_t): Add field .builtin.
918 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
919 Don't bypass TARGET_ALL_DEBUG. Print self-info with ?.
920 (avr_log_vadump): Support %D and %X to print double_int.
921 (avr_double_int_pop_digit): New static function.
922 (avr_dump_double_int_hex): New static function.
923
924 2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com>
925
926 PR target/51287
927 * config/i386/i386.c (distance_non_agu_define_in_bb): Fix insn
928 attr check.
929
930 2011-11-24 Andrew MacLeod <amacleod@redhat.com>
931
932 * optab.c (maybe_emit_atomic_exchange): New. Try to emit an
933 atomic_exchange pattern.
934 (maybe_emit_sync_lock_test_and_set): New. Try to emit an exchange
935 using __sync_lock_test_and_set.
936 (maybe_emit_compare_and_swap_exchange_loop): New. Try to emit an
937 exchange using a compare_and_swap loop.
938 (expand_sync_lock_test_and_set): New. Expand sync_lock_test_and_set.
939 (expand_atomic_test_and_set): New. Expand test_and_set operation.
940 (expand_atomic_exchange): Use new maybe_emit_* functions.
941 (expand_atomic_store): Use new maybe_emit_* functions.
942 * builtins.c (expand_builtin_sync_lock_test_and_set): Call
943 expand_sync_lock_test_and_set routine.
944 (expand_builtin_atomic_exchange): Remove parameter from call.
945 (expand_builtin_atomic_clear): Use atomic_clear pattern if present.
946 (expand_builtin_atomic_test_and_set): Add target and simply call
947 expand_atomic_test_and_set.
948 (expand_builtin): Add target to expand_builtin_atomic_test_and_set.
949 * expr.h (expand_atomic_exchange): Add parameter.
950 (expand_sync_lock_test_and_set): New prototype.
951 (expand_atomic_test_and_set, expand_atomic_clear): New prototypes.
952
953 2011-11-24 H.J. Lu <hongjiu.lu@intel.com>
954
955 PR target/51134
956 * config/i386/i386.h (processor_costs): Revert revision 181357.
957 * config/i386/i386.c (cost models): Likewise.
958 (core_cost): Likewise.
959 (promote_duplicated_reg): Likewise.
960 (promote_duplicated_reg_to_size): Likewise.
961 (processor_target): Likewise.
962 (expand_set_or_movmem_via_loop_with_iter): Likewise.
963 (expand_set_or_movmem_via_loop): Likewise.
964 (emit_strset): Likewise.
965 (expand_movmem_epilogue): Likewise.
966 (expand_setmem_epilogue): Likewise.
967 (expand_movmem_prologue): Likewise.
968 (expand_setmem_prologue): Likewise.
969 (expand_constant_movmem_prologue): Likewise.
970 (expand_constant_setmem_prologue): Likewise.
971 (decide_alg): Likewise.
972 (decide_alignment): Likewise.
973 (ix86_expand_movmem): Likewise.
974 (ix86_expand_setmem): Likewise.
975 (ix86_slow_unaligned_access): Likewise.
976 * config/i386/i386.md (strset): Likewise.
977 * config/i386/sse.md (vec_dupv4si): Likewise.
978 (vec_dupv2di): Likewise.
979
980 2011-11-24 Georg-Johann Lay <avr@gjlay.de>
981
982 * config/avr/avr.md (*rotlhi2.15): Set length to 4.
983
984 2011-11-24 Razya Ladelsky <razya@il.ibm.com>
985
986 * tree-data-ref.c (initialize_data_dependence_relation): Update
987 comment for the self dependence case.
988 (compute_self_dependence): Remove.
989 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove call to
990 compute_self_dependenc.
991
992 2011-11-24 Alan Modra <amodra@gmail.com>
993
994 * c-decl.c (warn_if_shadowing): Don't warn if shadowed
995 identifier is from system header.
996
997 2011-11-23 Jakub Jelinek <jakub@redhat.com>
998
999 PR target/51261
1000 * config/i386/i386.c (decide_alg): Initialize *dynamic_check
1001 even if !optimize.
1002
1003 2011-11-23 Vladimir Makarov <vmakarov@redhat.com>
1004
1005 PR rtl-optimization/48455
1006 * doc/invoke.texi (-fira-region): Document default values.
1007
1008 * flags-types.h (enum ira_region): Add new value
1009 IRA_REGION_AUTODETECT.
1010
1011 * common.opt (fira-region): Set up initial value to
1012 IRA_REGION_AUTODETECT.
1013
1014 * toplev.c (process_options): Set up flag_ira_region depending on
1015 -O options.
1016
1017 * ira.c (ira.c): Remove optimize guard for ira_build.
1018
1019 2011-11-23 Chung-Lin Tang <cltang@codesourcery.com>
1020
1021 PR rtl-optimization/50496
1022 * jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
1023 only after epilogue is created. Add comments.
1024
1025 2011-11-22 Richard Henderson <rth@redhat.com>
1026
1027 * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
1028 Generate the barrier required for the memory model.
1029 (rtx_needs_barrier): Handle UNSPEC_FETCHADD_REL, UNSPEC_CMPXCHG_REL.
1030 * config/ia64/ia64-protos.h: Update.
1031 * config/ia64/ia64.md (UNSPEC_FETCHADD_REL): New.
1032 (UNSPEC_CMPXCHG_REL): New.
1033 * config/ia64/sync.md (mem_thread_fence): New.
1034 (atomic_load<IMODE>, atomic_store<IMODE>): New.
1035 (atomic_compare_and_swap<IMODE>): New.
1036 (cmpxchg_acq_<I124MODE>, cmpxchg_acq_di): New.
1037 (atomic_exchange<IMODE>): New.
1038 (xchg_acq_<IMODE>): Rename from sync_lock_test_and_set<IMODE>.
1039 (atomic_<FETCHOP><IMODE>, atomic_nand<IMODE>): New.
1040 (atomic_fetch_<FETCHOP><IMODE>, atomic_fetch_nand<IMODE>): New.
1041 (atomic_<FETCHOP>_fetch<IMODE>, atomic_nand_fetch<IMODE>): New.
1042 (fetchadd_rel_<I48MODE>): New.
1043 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): Remove.
1044 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): Remove.
1045 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): Remove.
1046 (sync_compare_and_swap<IMODE>): Remove.
1047 (sync_lock_release<IMODE>): Remove.
1048
1049 * config/ia64/ia64.md: Use define_c_enum for UNSPEC_*
1050 and UNSPECV_* constants.
1051
1052 2011-11-22 Tom de Vries <tom@codesourcery.com>
1053
1054 PR rtl-optimization/50764
1055 * sched-deps.c (sched_analyze_insn): Make sure frame-related insns are
1056 not moved past preceding jump.
1057
1058 2011-11-22 Jeff Law <law@redhat.com>
1059
1060 * doc/contrib.texi: Add entry for David Binderman.
1061
1062 2011-11-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1063
1064 * postreload.c (reload_combine): Mark reg_state as invalid at
1065 volatile insns if there has been a use already.
1066
1067 2011-11-21 Aldy Hernandez <aldyh@redhat.com>
1068
1069 * opts.c (finish_options): Do not fail for -fgnu-tm.
1070 * gimple-streamer-out.c (output_gimple_stmt): Handle
1071 GIMPLE_TRANSACTION.
1072 * gimple-streamer-in.c (input_gimple_stmt): Same.
1073 * lto-cgraph.c (input_overwrite_node): Read tm_clone bit.
1074 (lto_output_node): Write tm_clone bit.
1075
1076 2011-11-22 Ian Lance Taylor <iant@google.com>
1077
1078 * doc/install.texi (Configuration): Correct doc of
1079 --enable-build-poststage1-with-cxx: it is not experimental.
1080
1081 2011-11-22 Jakub Jelinek <jakub@redhat.com>
1082
1083 PR tree-optimization/51074
1084 * fold-const.c (fold_binary_loc): Fix up VEC_INTERLEAVE_*_EXPR
1085 handling for BYTES_BIG_ENDIAN.
1086 * optabs.c (can_vec_perm_for_code_p): Likewise.
1087
1088 2011-11-22 Michael Matz <matz@suse.de>
1089
1090 PR other/51125
1091 * trans-mem.c (expand_block_tm): Ignore clobbers.
1092
1093 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1094
1095 * config/darwin.h (ENDFILE_SPEC): New.
1096 (DARWIN_CRT1_SPEC): Add crttms.o.
1097 (STARTFILE_SPEC): Likewise for dynamic libs and bundles.
1098 * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o.
1099
1100 2011-11-22 Michael Matz <matz@suse.de>
1101
1102 PR c++/51264
1103 * tree.c (iterative_hash_expr): Remove break after return.
1104
1105 2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
1106
1107 * target.def (tm_clone_table_section): New hook.
1108 * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define.
1109 * doc/tm.texi: Regenerate.
1110 * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section.
1111 * output.h (default_clone_table_section): New prototype.
1112 * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New.
1113 * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype.
1114 * config/darwin.c (darwin_tm_clone_table_section): New.
1115
1116 2011-11-21 Torvald Riegel <triegel@redhat.com>
1117
1118 * trans-mem.c (diagnose_tm_1): Print an expression instead of a
1119 declaration in error messages for indirect calls.
1120
1121 2011-11-21 David S. Miller <davem@davemloft.net>
1122
1123 * config/sparc/sparc.c (sparc_regmode_natural_size): New function
1124 implementing REGMODE_NATURAL_SIZE taking into consideration vector
1125 modes.
1126 (sparc_modes_tieable_p): Similarly for MODES_TIEABLE_P.
1127 * config/sparc/sparc-protos.h (sparc_regmode_natural_size,
1128 sparc_modes_tieable_p): Declare.
1129 * gcc/config/sparc/sparc.h (REGMODE_NATURAL_SIZE,
1130 MODES_TIEABLE_P): Use new helper functions.
1131
1132 Revert
1133 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1134
1135 PR middle-end/50325
1136 * expmed.c (store_bit_field_1): Use extract_bit_field on big
1137 endian targets if the source cannot be exactly covered by word
1138 mode chunks.
1139
1140 2011-11-21 Jakub Jelinek <jakub@redhat.com>
1141
1142 PR debug/50827
1143 * var-tracking.c (loc_cmp): For ENTRY_VALUEs use ENTRY_VALUE_EXP
1144 macro instead of XEXP.
1145
1146 2011-11-21 Andreas Tobler <andreast@fgznet.ch>
1147
1148 * configure: Regenerate.
1149
1150 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
1151
1152 * config/avr/avr.c (output_reload_in_const): Loading a byte with 0
1153 must not affect cc0.
1154 * config/avr/avr.md (*movhi, *movpsi, *movsi, *movsf): Zero to any
1155 register does not change cc0. Same for any constant to ld-register.
1156
1157 2011-11-21 Uros Bizjak <ubizjak@gmail.com>
1158
1159 * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP,
1160 UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>:
1161 Move from config/i386/i386.md
1162 (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto.
1163 * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU,
1164 UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI,
1165 UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV,
1166 UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW,
1167 UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR,
1168 UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE,
1169 UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST,
1170 UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC,
1171 UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL,
1172 UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP,
1173 UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF,
1174 UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto.
1175 (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH,
1176 UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>:
1177 Ditto.
1178 * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE,
1179 UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto.
1180 (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3,
1181 UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto.
1182 (sse2_lfence): Move from config/i386/sse.md.
1183 (*sse2_lfence): Ditto.
1184 (sse_sfence): Ditto.
1185 (*sse_sfence): Ditto.
1186 (sse2_mfence): Ditto.
1187 (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also
1188 for TARGET_64BIT.
1189 (mem_thread_fence): Use mfence_sse2.
1190
1191 2011-11-21 Georg-Johann Lay <avr@gjlay.de>
1192
1193 * config/avr/avr.h (struct base_arch_s): Add field sfr_offset.
1194 * config/avr/avr-devices.c: Ditto. And initialize it.
1195 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in define
1196 __AVR_SFR_OFFSET__.
1197 * config/avr/avr-protos.h (out_movqi_r_mr, out_movqi_mr_r): Remove.
1198 (out_movhi_r_mr, out_movhi_mr_r): Remove.
1199 (out_movsi_r_mr, out_movsi_mr_r): Remove.
1200 * config/avr/avr.md (*cbi, *sbi): Use %i instead of %m-0x20.
1201 (*insv.io, *insv.not.io): Ditto.
1202 * config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r): Make static.
1203 (print_operand): Implement "%i" to print address as I/O address.
1204 (output_movqi): Clean up call of out_movqi_mr_r.
1205 (output_movhi): Clean up call of out_movhi_mr_r.
1206 (avr_file_start): Use avr_current_arch->sfr_offset instead of
1207 magic -0x20. Use TMP_REGNO, ZERO_REGNO instead of 0, 1.
1208 (avr_out_sbxx_branch): Use %i instead of %m-0x20.
1209 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And make static.
1210 (out_movhi_r_mr, out_movhi_mr_r): Ditto. And use avr_asm_len.
1211 (out_shift_with_cnt): Clean up code: Use avr_asm_len.
1212 (output_movsisf): Use output_reload_insisf for all CONSTANT_P sources.
1213 (avr_out_movpsi): USE avr_out_reload_inpsi for all CONSTANT_P sources.
1214 Clean up call of avr_out_store_psi.
1215 (output_reload_in_const): Don't cut symbols longer than 2 bytes.
1216 (output_reload_insisf): Filter CONST_INT_P or CONST_DOUBLE_P to
1217 try if setting pre-cleared register is advantageous.
1218 (avr_out_plus_1): Use gen_int_mode instead of GEN_INT.
1219
1220 2011-11-20 Joey Ye <joey.ye@arm.com>
1221
1222 * expr.c (expand_expr_real_1): Correctly handle strict volatile
1223 bitfield loads smaller than mode size.
1224
1225 2011-11-20 Richard Henderson <rth@redhat.com>
1226
1227 * config/mips/mips.c (mips_init_libfuncs): Call init_sync_libfuncs.
1228
1229 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
1230
1231 PR target/51235
1232 * config/i386/i386.c (ix86_expand_vcond): Generate TARGET_XOP
1233 patterns for supported mode only.
1234
1235 PR target/51236
1236 * config/i386/i386.c (ix86_expand_builtin)
1237 <IX86_BUILTIN_GATHERALTSIV4DI>: Use CODE_FOR_avx2_gathersiv4di.
1238
1239 2011-11-20 Uros Bizjak <ubizjak@gmail.com>
1240
1241 * config/i386/i386.md (UNSPEC_MOVNTI): Remove.
1242 (UNSPEC_MOVNTQ): New unspec.
1243 * config/i386/mmx.md (sse_movntq): Rename from sse_movntdi.
1244 Use UNSPEC_MOVNTQ instead of UNSPEC_MOVNT.
1245 * config/i386/sse.md (sse2_movnti<mode>): Use UNSPEC_MOVNT instead of
1246 UNSPEC_MOVNTI.
1247 (STORENT_MODE): Add DI and V4DI modes.
1248
1249 2011-11-20 Nathan Sidwell <nathan@acm.org>
1250
1251 PR gcov-profile/51113
1252 * coverage.c (build_var): Propagate visibility for public
1253 decls. Use make_decl_one_only for PIC correctness.
1254
1255 testsuite/
1256 * gcc.misc-tests/gcov-13.c: Check gcovpart-13b coverage
1257 * gcc.misc-tests/gcov-16.c: New.
1258 * gcc.misc-tests/gcov-17.c: New.
1259 * g++.dg/gcov/gcov-8.C: New.
1260 * g++.dg/gcov/gcov-9.C: New.
1261 * g++.dg/gcov/gcov-10.C: New.
1262
1263 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
1264
1265 PR rtl-optimization/51187
1266 * reorg.c (relax_delay_slots): Do not consider a jump useless if there
1267 is a barrier between the jump and its target label.
1268
1269 2011-11-19 Patrick Marlier <patrick.marlier@gmail.com>
1270
1271 PR middle-end/51211
1272 * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
1273
1274 2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
1275
1276 * expmed.c (store_bit_field_1): Revert bogus formatting change.
1277
1278 2011-11-19 Richard Earnshaw <rearnsha@arm.com>
1279
1280 PR target/50493
1281 * config/arm/arm.c (neon_disambiguate_copy): Correctly handle partial
1282 overlap of src and dest operands.
1283
1284 2011-11-19 Iain Sandoe <iains@gcc.gnu.org>
1285
1286 * config/darwin.h (ASM_DEBUG_SPEC): New.
1287 * config/darwin9.h (ASM_DEBUG_SPEC): New.
1288
1289 2011-11-18 Jan Hubicka <jh@suse.cz>
1290
1291 * config/i386/i386.c (atom_cost): Disable SSE loop until alignment
1292 issues are fixed.
1293
1294 2011-11-18 Anatoly Sokolov <aesok@post.ru>
1295
1296 * config/cris/cris.c (cris_function_value_regno_p): Make static.
1297 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1298 * config/cris/cris.h (FUNCTION_VALUE_REGNO_P): Remove.
1299 * config/cris/cris-protos.h (cris_function_value_regno_p): Remove.
1300
1301 2011-11-18 H.J. Lu <hongjiu.lu@intel.com>
1302
1303 PR target/33944
1304 * doc/extend.texi: Document __builtin_ia32_movnti64.
1305
1306 * config/i386/emmintrin.h (_mm_stream_si64): New.
1307
1308 * config/i386/i386-builtin-types.def: Add VOID_FTYPE_PLONGLONG_LONGLONG.
1309
1310 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTI64.
1311 (bdesc_special_args): Update __builtin_ia32_movnti. Add
1312 __builtin_ia32_movnti64.
1313 (ix86_expand_special_args_builtin): Handle
1314 VOID_FTYPE_PLONGLONG_LONGLONG.
1315
1316 * config/i386/i386.md (UNSPEC_MOVNTI): New.
1317
1318 * config/i386/sse.md (sse2_movntsi): Renamed to ...
1319 (sse2_movnti<mode>): This.
1320
1321 2011-11-18 Georg-Johann Lay <avr@gjlay.de>
1322
1323 PR target/49868
1324 * config/avr/avr.h (base_arch_s): Add field n_segments.
1325 (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3,
1326 ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces.
1327 (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines.
1328 (INIT_EXPANDERS): New define.
1329 * config/avr/avr-protos.h (avr_mem_pgmx_p): New.
1330 (avr_init_expanders): New.
1331 (avr_emit_movmemhi, avr_out_movmem): New.
1332 (avr_xload_libgcc_p): New.
1333 * config/avr/avr-c.c (avr_register_target_pragmas): Register
1334 address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx.
1335 (avr_cpu_cpp_builtins): Add built-in defines __PGM1,
1336 __PGM2, __PGM3, __PGM4, __PGM5, __PGMX.
1337 * config/avr/avr-devices.c (avr_arch_types): Set field n_segments.
1338
1339 * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover
1340 3 bits instead of just 1.
1341 (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables.
1342 (progmem_section): Change from section to array of sections.
1343 (progmem_section_prefix): New static variable.
1344 (avr_file_start): Print set for __RAMPZ__
1345 (avr_option_override): Move initialization of RTXes from here...
1346 (avr_init_expanders): ...to this new function.
1347 (avr_pgm_segment): New static function.
1348 (avr_decl_pgm_p): Handle error_mark_node.
1349 (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions.
1350 (avr_out_xload, avr_find_unused_d_reg): New static functions.
1351 (expand_prologue, expand_epilogue): Use rampz_rtx.
1352 (print_operand): Hande CONST_STRING.
1353 (avr_xload_libgcc_p): New static function.
1354 (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM.
1355 (avr_progmem_p): Return 2 for 24-bit flash address space.
1356 (avr_out_sbxx_branch): Clean-up code from ASn macros.
1357 (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's
1358 address and print symbolically.
1359 (avr_asm_named_section, avr_section_type_flags,
1360 avr_encode_section_info, avr_asm_select_section,
1361 avr_addr_space_address_mode, avr_addr_space_pointer_mode,
1362 avr_addr_space_legitimate_address_p, avr_addr_space_convert,
1363 avr_addr_space_legitimize_address): Handle new address spaces.
1364 (avr_output_progmem_section_asm_op): New static function.
1365 (avr_asm_init_sections): Initialize progmem_section[].
1366 (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM.
1367 (avr_const_address_lo16): New static function.
1368 (avr_assemble_integer): Use it to handle 3-byte integers.
1369 (avr_emit_movmemhi, avr_out_movmem): New functions.
1370
1371 * config/avr/predicates.md (nox_general_operand): Handle new
1372 address spaces.
1373 * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM.
1374 (adjust_len): Add xload, movmem.
1375 (SP_ADDR): New define_constants.
1376 (isa): Add "lpm", "lpmx", "elpm", "elpmx".
1377 (enabled): Handle them.
1378 (load<mode>_libgcc): New expander.
1379 (*load.<mode>.libgcc): Rename to load_<mode>_libgcc.
1380 (xload8_A, xload<mode>_A): New insn-and-splits.
1381 (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns.
1382 (mov<mode>): Handle new address spaces.
1383 (movmemhi): Rewrite using avr_emit_movmemhi.
1384 (MOVMEM_r_d): New mode attribute.
1385 (movmem_<mode>, movmem_qi_elpm): New insns.
1386 (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote
1387 C-code. Use label instead of hard-coded instrunction lengths.
1388
1389 2011-11-18 Martin Jambor <mjambor@suse.cz>
1390
1391 PR tree-optimization/50605
1392 * gimple.c (is_gimple_ip_invariant_address): Also handle MEM_REFs
1393 of IPA invariant decls.
1394
1395 2011-11-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1396
1397 * tree-outof-ssa.c (insert_back_edge_copies): Add call to
1398 mark_dfs_back_edges.
1399
1400 2011-11-18 Iain Sandoe <iains@gcc.gnu.org>
1401
1402 PR target/49992
1403 * configure.ac: Remove ranlib special-casing for Darwin.
1404 * configure: Regenerate.
1405
1406 2011-11-18 Uros Bizjak <ubizjak@gmail.com>
1407
1408 PR tree-optimization/51118
1409 * fold-const.c (fold_checksum_tree): Check for TS_TYPED structure
1410 before using TREE_TYPE accessor on expr.
1411
1412 2011-11-17 Jan Hubicka <jh@suse.cz>
1413
1414 PR bootstrap/51134
1415 * i386.c (atom_cost): Fix 32bit memset description.
1416 (expand_set_or_movmem_via_loop_with_iter): Output proper bounds check
1417 for epilogue loops.
1418 (expand_movmem_epilogue): Handle epilogues up to size 15 w/o producing
1419 byte loop.
1420 (decide_alg): sse_loop is not useable wthen SSE2 is disabled;
1421 when not optimizing always use rep movsb or lincall; do not produce
1422 word sized loops when optimizing memset for size (to avoid need
1423 for large constants).
1424 (ix86_expand_movmem): Get into sync with ix86_expand_setmem;
1425 choose unroll factors better; always do 128bit moves when producing
1426 SSE loops; do not produce loopy epilogue when size is too small.
1427 (promote_duplicated_reg_to_size): Do not look into desired alignments
1428 when doing vector expansion.
1429 (ix86_expand_setmem): Track better when promoted value is available;
1430 choose unroll factors more sanely. Output loopy epilogue only
1431 when needed.
1432
1433 2011-11-17 Steve Ellcey <sje@cup.hp.com>
1434
1435 PR middle-end/51144
1436 * output.h (fprint_w): Remove.
1437 * final.c (fprint_w): Remove.
1438 (output_addr_const): Change fprint_w back to fprintf.
1439
1440 2011-11-17 Andrew Pinski <apinski@cavium.com>
1441
1442 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for MIPS.
1443
1444 2011-11-17 Andrew MacLeod <amacleod@redhat.com>
1445
1446 * builtins.c (expand_builtin): Remove 4th parameter representing
1447 weak/strong mode when __atomic_compare_exchange becomes a library call.
1448
1449 2011-11-17 Richard Henderson <rth@redhat.com>
1450
1451 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
1452 new pseudo for target after convert_modes.
1453 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
1454
1455 2011-11-17 Richard Henderson <rth@redhat.com>
1456
1457 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap): Get
1458 new pseudo for target after convert_modes.
1459 (rs6000_expand_atomic_exchange, rs6000_expand_atomic_op): Likewise.
1460
1461 2011-11-17 Richard Henderson <rth@redhat.com>
1462
1463 * builtins.c (expand_builtin_mem_thread_fence): Remove.
1464 (expand_builtin_mem_signal_fence): Remove.
1465 (expand_builtin_atomic_thread_fence): Use expand_mem_thread_fence.
1466 (expand_builtin_sync_synchronize): Likewise.
1467 (expand_builtin_atomic_signal_fence): Use expand_mem_signal_fence.
1468 * optabs.c (expand_asm_memory_barrier): Split out from
1469 expand_builtin_mem_signal_fence.
1470 (expand_mem_thread_fence): New, a combination of code from
1471 expand_builtin_mem_thread_fence and expand_builtin_sync_synchronize.
1472 (expand_mem_signal_fence): Moved and renamed from
1473 expand_builtin_mem_signal_fence.
1474 (expand_atomic_exchange): Use expand_mem_thread_fence.
1475 (expand_atomic_load, expand_atomic_store): Likewise.
1476 * expr.h, optabs.h: Update decls.
1477
1478 2011-11-17 Bin Cheng <bin.cheng@arm.com>
1479
1480 PR rtl-optimization/50663
1481 * cprop.c (implicit_set_indexes): New global variable.
1482 (insert_set_in_table): Add additional parameter and record implicit
1483 set information.
1484 (hash_scan_set): Add additional parameter and pass it to above.
1485 (hash_scan_insn): Pass false to hash_scan_set.
1486 (compute_hash_table_work): Pass true to hash_scan_set.
1487 (compute_cprop_data): Add implicit set to AVIN of block which the
1488 implicit set is recorded for.
1489 (one_cprop_pass): Handle implicit_set_indexes array.
1490
1491 2011-11-17 Michael Matz <matz@suse.de>
1492
1493 PR middle-end/50644
1494 PR middle-end/50741
1495 * tree-ssa-live.c (mark_all_vars_used_1): Recurse only for decls of
1496 current function.
1497 (remove_unused_locals): Ditto.
1498
1499 2011-11-16 Richard Henderson <rth@redhat.com>
1500
1501 * config/alpha/alpha.c (alpha_split_compare_and_swap_12): Copy
1502 ALIAS_SET_MEMORY_BARRIER when creating a new memory.
1503 (alpha_split_atomic_exchange_12): Likewise.
1504 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Likewise.
1505
1506 2011-11-16 Joseph Myers <joseph@codesourcery.com>
1507
1508 * config/i386/i386elf.h (PREFERRED_DEBUGGING_TYPE): Remove.
1509
1510 2011-11-16 David Edelsohn <dje.gcc@gmail.com>
1511
1512 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
1513 Default to minimum alignment if decl is NULL.
1514
1515 2011-11-16 Uros Bizjak <ubizjak@gmail.com>
1516
1517 * config/i386/sse.md (round<mode>2_vec_pack_sfix): Optimize V2DFmode
1518 sequence for AVX.
1519 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
1520
1521 2011-11-16 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1522
1523 * doc/invoke.texi: Document AMD bdver1 and btver1.
1524
1525 2011-11-16 Richard Earnshaw <rearnsha@arm.com>
1526 Bernd Schmidt <bernds@coudesourcery.com>
1527 Sebastian Huber <sebastian.huber@embedded-brains.de>
1528
1529 PR target/49641
1530 * config/arm/arm.c (store_multiple_sequence): Avoid cases where
1531 the base reg is stored iff compiling for Thumb1.
1532
1533 2011-11-16 Razya Ladelsky <razya@il.ibm.com>
1534
1535 PR tree-optimization/49960
1536 * tree-data-ref.c (initialize_data_dependence_relation): Add
1537 initializations.
1538 Remove call to compute_self_dependence.
1539 (compute_affine_dependence): Remove the !DDR_SELF_REFERENCE condition.
1540 (compute_self_dependence): Remove old code. Add call to
1541 compute_affine_dependence.
1542 (compute_all_dependences): Remove call to compute_self_dependence.
1543 Add call to compute_affine_dependence.
1544
1545 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1546
1547 PR middle-end/50325
1548 * expmed.c (store_bit_field_1): Use extract_bit_field on big
1549 endian targets if the source cannot be exactly covered by word
1550 mode chunks.
1551
1552 2011-11-15 Joseph Myers <joseph@codesourcery.com>
1553
1554 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Change STRING_LIMIT to
1555 ELF_STRING_LIMIT.
1556
1557 2011-11-15 Richard Henderson <rth@redhat.com>
1558
1559 * config/alpha/alpha.c (alpha_pre_atomic_barrier): New.
1560 (alpha_post_atomic_barrier): New.
1561 (alpha_split_atomic_op): New memmodel argument; honor it.
1562 (alpha_split_compare_and_swap): Take array of operands. Honor
1563 memmodel; always set bool output
1564 (alpha_expand_compare_and_swap_12): Similarly.
1565 (alpha_split_compare_and_swap_12): Similarly.
1566 (alpha_split_atomic_exchange): Similarly. Rename from
1567 alpha_split_lock_test_and_set.
1568 (alpha_expand_atomic_exchange_12): Similarly. Rename from
1569 alpha_expand_lock_test_and_set_12.
1570 (alpha_split_atomic_exchange_12): Similarly. Rename from
1571 alpha_split_lock_test_and_set_12.
1572 * config/alpha/alpha-protos.h: Update.
1573 * config/alpha/alpha.md (UNSPECV_CMPXCHG): New.
1574 * config/alpha/constraints.md ("w"): New.
1575 * config/alpha/predicates.md (mem_noofs_operand): New.
1576 * config/alpha/sync.md (atomic_compare_and_swap<mode>): Rename from
1577 sync_compare_and_swap<mode>; add the new parameters.
1578 (atomic_exchange<mode>): Update from sync_test_and_set<mode>.
1579 (atomic_fetch_<op><mode>): Update from sync_old_<op><mode>.
1580 (atomic_<op>_fetch<mode>): Update from sync_new_<op><mode>.
1581 (atomic_<op><mode>): Update from sync_<op><mode>.
1582
1583 2011-11-16 Tom de Vries <tom@codesourcery.com>
1584
1585 * tree-ssa-tail-merge.c (replace_block_by): Add frequency of bb2 to bb1.
1586
1587 2011-11-16 Alan Modra <amodra@gmail.com>
1588
1589 PR rtl-optimization/51051
1590 PR bootstrap/51086
1591 * function.c (thread_prologue_and_epilogue_insns): Guard
1592 emitting return with single_succ_p test.
1593
1594 2011-11-15 Joern Rennecke <joern.rennecke@embecosm.com>
1595
1596 * config/epiphany/epiphany.md (mov<mode>cc): Fix code to
1597 get mode from CMP_OP1 if CMP_OP0 is VOIDmode.
1598
1599 2011-11-15 Uros Bizjak <ubizjak@gmail.com>
1600
1601 * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX.
1602 (vec_pack_sfix_trunc_v2df): Ditto.
1603 (vec_pack_sfix_v2df): Ditto.
1604 (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and
1605 avx_vec_concatv8si patterns.
1606 (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and
1607 avx_vec_concatv8si patterns.
1608
1609 2011-11-15 Torvald Riegel <triegel@redhat.com>
1610
1611 * c-parser.c (c_parser_transaction_expression): Require parentheses
1612 when parsing transaction expressions.
1613
1614 2011-11-15 Tristan Gingold <gingold@adacore.com>
1615
1616 * incpath.c (get_added_cpp_dirs): New function.
1617 * incpath.h (get_added_cpp_dirs): Declare.
1618 * config/vms/vms-c.c (vms_c_register_includes): New function.
1619 (vms_std_modules): New variable.
1620 * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define.
1621 (vms_c_register_includes): Declare.
1622
1623 2011-11-15 Tristan Gingold <gingold@adacore.com>
1624
1625 * c-family/c-pragma.h (pragma_extern_prefix): Declare.
1626 * c-family/c-pragma.c (pragma_extern_prefix): Make it public.
1627 * config/vms/vms-c.c (saved_extern_prefix): New variable.
1628 (vms_pragma_extern_prefix): New function.
1629 (vms_c_register_pragma): Register vms_pragma_extern_prefix.
1630
1631 2011-11-15 Georg-Johann Lay <avr@gjlay.de>
1632
1633 PR target/49868
1634 * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces.
1635 (REGISTER_TARGET_PRAGMAS): New define.
1636 * config/avr/avr-protos.h (avr_mem_pgm_p): New.
1637 (avr_load_libgcc_p): New.
1638 (avr_register_target_pragmas): New.
1639 (asm_output_external_libcall): Remove.
1640 (avr_log_t): Add field "progmem". Order alphabetically.
1641 * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem.
1642 * config/avr/avr-c.c (langhooks.h): New include.
1643 (avr_register_target_pragmas): New function. Register address
1644 space __pgm.
1645 (avr_cpu_cpp_builtins): Add built-in define __PGM.
1646
1647 * config/avr/avr.c: Include "c-family/c-common.h".
1648 (TARGET_LEGITIMATE_ADDRESS_P): Remove define.
1649 (TARGET_LEGITIMIZE_ADDRESS): Remove define.
1650 (TARGET_ADDR_SPACE_SUBSET_P): Define to...
1651 (avr_addr_space_subset_p): ...this new static function.
1652 (TARGET_ADDR_SPACE_CONVERT): Define to...
1653 (avr_addr_space_convert): ...this new static function.
1654 (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to...
1655 (avr_addr_space_address_mode): ...this new static function.
1656 (TARGET_ADDR_SPACE_POINTER_MODE): Define to...
1657 (avr_addr_space_pointer_mode): ...this new static function.
1658 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to...
1659 (avr_addr_space_legitimate_address_p): ...this new static function.
1660 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to...
1661 (avr_addr_space_legitimize_address): ...this new static function.
1662 (avr_mode_code_base_reg_class): Handle address spaces.
1663 (avr_regno_mode_code_ok_for_base_p): Ditto.
1664 (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables.
1665 (avr_option_override): Initialize them.
1666 (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop
1667 variables.
1668 (avr_pgm_segment): New static function.
1669 (avr_decl_pgm_p, avr_mem_pgm_p): New static functions.
1670 (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions.
1671 (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call
1672 avr_out_lpm to handle loads from progmem.
1673 (avr_load_libgcc_p): New static function.
1674 (avr_progmem_p): Test if decl is in flash.
1675 (avr_pgm_pointer_const_p): New static function.
1676 (avr_nonconst_pointer_addrspace): New static function.
1677 (avr_pgm_check_var_decl): New static function.
1678 (avr_insert_attributes): Use it. Change error message to report
1679 cause (progmem or address space) when code wants to write to flash.
1680 (avr_section_type_flags): Unset section flag SECTION_BSS for
1681 data in progmem.
1682
1683 * config/avr/predicates.md (nop_general_operand): New predicate.
1684 (nox_general_operand): New predicate.
1685 * config/avr/avr.md (LPM_REGNO): New define_constant.
1686 (load<mode>_libgcc): New expander.
1687 (*load.<mode>.libgcc): New insn.
1688 (mov<mode>): Handle loads from non-generic AS.
1689 (movmemhi): Ditto. Propagate address space information to newly
1690 created MEM.
1691 (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1
1692 to nox_general_operand.
1693 (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to
1694 nop_general_operand.
1695 (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto.
1696 (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto.
1697 (split-lpmx): New split.
1698 (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
1699 *lshrhi3_const, *lshrsi3_const): Indent, unquote C.
1700
1701 2011-11-15 Maxim Kuvyrkov <maxim@codesourcery.com>
1702
1703 * ipa-cp.c (ipa_value_from_jfunc): Make global.
1704 (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead.
1705 (get_indirect_edge_target): Rename, make global.
1706 (devirtualization_time_bonus, estimate_local_effects,)
1707 (ipcp_discover_new_direct_edges): Update.
1708 * ipa-inline-analysis.c (evaluate_conditions_for_edge):
1709 Generalize to also handle types. Rename to ...
1710 (evaluate_properties_for_edge): Use instead of
1711 evaluate_conditions_for_edge.
1712 (estimate_edge_devirt_benefit): New function.
1713 (estimate_calls_size_and_time): Use it.
1714 (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,)
1715 (inline_merge_summary): Update.
1716 (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate
1717 parameter information at the call site and pass it on to subroutines.
1718 * tree-inline.c (estimate_num_insns): Distinguish between direct and
1719 indirect calls.
1720 (init_inline_once): Set size and time costs or indirect calls.
1721 * tree-inline.h (eni_weights): Add indirect_call_cost.
1722
1723 2011-11-15 Tom de Vries <tom@codesourcery.com>
1724
1725 PR tree-optimization/51005
1726 * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to
1727 mark_basic_block_deleted.
1728 (update_worklist): Inline purge_bbs.
1729 (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry)
1730 (delete_block_update_dominator_info): Remove.
1731 (replace_block_by): Remove update_vops parameter. Partially evaluate
1732 for update_vops == false.
1733 (apply_clusters): Remove update_vops parameter. Remove update_vops
1734 argument in replace_block_by call.
1735 (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test.
1736 (tail_merge_optimize): Remove update_vops argument to apply_clusters.
1737 Remove call to purge_bbs. Add calls to calculate_dominance_info and
1738 free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling
1739 update_debug_stmts. Mark vop var for renaming, if necessary.
1740
1741 2011-11-15 Bernd Schmidt <bernds@codesourcery.com>
1742
1743 PR rtl-optimization/51051
1744 * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the
1745 move would cause fallthrough into the exit block.
1746
1747 2011-11-14 Richard Henderson <rth@redhat.com>
1748
1749 * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is
1750 handled.
1751 (emit_store_conditional): Likewise.
1752 (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New.
1753 (rs6000_adjust_atomic_subword): New.
1754 (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New.
1755 (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite
1756 for pre-reload expansion.
1757 (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi,
1758 rs6000_expand_compare_and_swapqhi): Merge into ...
1759 (rs6000_expand_atomic_compare_and_swap): ... here. New function.
1760 rs6000_split_lock_test_and_set; expand immediately. Handle
1761 QImode and HImode.
1762 * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename
1763 from UNSPECV_LWSYNC.
1764 * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove.
1765 (mem_thread_fence): New.
1766 (hwsync): Rename from memory_barrier.
1767 (*hwsync): Rename from *sync_internal.
1768 (lwsync, *lwsync): Mirror hwsync implementation.
1769 (isync): Don't reference memory.
1770 (loadsync): New.
1771 (atomic_load<INT>, atomic_store<INT>): New.
1772 (ATOMIC): New mode iterator.
1773 (load_locked<ATOMIC>): Rename from load_locked_<GPR>.
1774 (store_conditional<ATOMIC>): Rename from store_conditional_<GPR>.
1775 (sync_compare_and_swap<GPR>): Remove.
1776 (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove.
1777 (sync_compare_and_swapqhi_internal): Remove.
1778 (sync_lock_test_and_set<GPR>): Remove.
1779 (sync_<FETCHOP><INT1>): Remove.
1780 (*sync_<FETCHOP>si_internal, *sync_<FETCHOP>di_internal): Remove.
1781 (sync_nand<INT1>, *sync_nand<GPR>_internal): Remove.
1782 (sync_old_<FETCHOP><GPR>): Remove.
1783 (*sync_old_<FETCHOP>si_internal): Remove.
1784 (*sync_old_<FETCHOP>di_internal): Remove.
1785 (sync_old_nand<INT1>): Remove.
1786 (*sync_old_nand<GPR>_internal): Remove.
1787 (sync_new_<FETCHOP><GPR>): Remove.
1788 (*sync_new_<FETCHOP>si_internal): Remove.
1789 (*sync_new_<FETCHOP>di_internal): Remove.
1790 (sync_new_nand<INT1>): Remove.
1791 (*sync_new_nand<GPR>_internal): Remove.
1792 (*atomic_andsi, *atomic_anddi): Remove.
1793 (*sync_addshort_internal, *sync_subshort_internal): Remove.
1794 (*sync_andsi_internal, *sync_boolsi_internal): Remove.
1795 (*sync_boolcshort_internal): Remove.
1796 (sync_lock_release<INT1>): Remove.
1797 (atomic_compare_and_swap<INT1>): New.
1798 (atomic_exchange<INT1>): New.
1799 (atomic_<FETCHOP><INT1>, atomic_nand<INT1>): New.
1800 (atomic_fetch_<FETCHOP><INT1>, atomic_fetch_nand<INT1>): New.
1801 (atomic_<FETCHOP>_fetch<INT1>, atomic_nand_fetch<INT1>): New.
1802
1803 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
1804
1805 * config/i386/sse.md (round<mode>2): Use register_operand for
1806 operand 1 predicate.
1807 (round<mode>2_sfix): Ditto.
1808 (round<mode>2_vec_pack_sfix): Ditto for operand 1 and operand 2.
1809
1810 2011-11-14 Nathan Sidwell <nathan@acm.org>
1811
1812 * gcov.c (canonicalize_name): Protect use of S_ISLNK.
1813
1814 2011-11-14 Jan Hubicka <jh@suse.cz>
1815
1816 PR target/51126
1817 * config/i386/i386.c (core cost model): Correct pasto.
1818
1819 2011-11-14 Uros Bizjak <ubizjak@gmail.com>
1820
1821 * config/i386/sse.md (round<mode>2_sfix): New expander.
1822 (round<mode>2_vec_pack_sfix): Ditto.
1823 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
1824 (<sse4_1>_round<ssemodesuffix>_vec_pack_sfix<avxsizesuffix>): Ditto.
1825 * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND,
1826 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND,
1827 V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types.
1828 * config/i386/i386.c (ix86_builtins): Add
1829 IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and
1830 IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines.
1831 (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256},
1832 __builtin_ia32_roundpd_az_vec_pack_sfix{,256},
1833 __builtin_ia32_{floorps,ceilps}_sfix{,256}and
1834 __builtin_ia32_roundps_az_sfix{,256} descriptions.
1835 (ix86_expand_sse_round_vec_pack_sfix): New.
1836 (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND,
1837 V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and
1838 V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of
1839 CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix,
1840 CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256.
1841 (ix86_builtin_vectorized_function): Handle
1842 BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and
1843 BUILT_IN_{I,L,LL}ROUND{,F}
1844
1845 2011-11-14 Jan Hubicka <jh@suse.cz>
1846
1847 PR middle-end/50598
1848 * cgraph.h (varpool_externally_visible_p): Declare.
1849 (varpool_add_new_variable): Declare.
1850 * tree-emultls.c (get_emutls_init_templ_addr,
1851 new_emutls_decl): Use varpool_add_new_variable.
1852 * ipa.c (varpool_externally_visible_p): Export.
1853 * varpool.c (varpool_add_new_variable): New function.
1854
1855 2011-11-14 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1856 Jan Hubicka <jh@suse.cz>
1857
1858 * config/i386/i386.h (processor_costs): Add second dimension to
1859 stringop_algs array.
1860 * config/i386/i386.c (cost models): Initialize second dimension of
1861 stringop_algs arrays.
1862 (core_cost): New costs based on generic64 costs with updated stringop
1863 values.
1864 (promote_duplicated_reg): Add support for vector modes, add
1865 declaration.
1866 (promote_duplicated_reg_to_size): Likewise.
1867 (processor_target): Set core costs for core variants.
1868 (expand_set_or_movmem_via_loop_with_iter): New function.
1869 (expand_set_or_movmem_via_loop): Enable reuse of the same iters in
1870 different loops, produced by this function.
1871 (emit_strset): New function.
1872 (expand_movmem_epilogue): Add epilogue generation for bigger sizes,
1873 use SSE-moves where possible.
1874 (expand_setmem_epilogue): Likewise.
1875 (expand_movmem_prologue): Likewise for prologue.
1876 (expand_setmem_prologue): Likewise.
1877 (expand_constant_movmem_prologue): Likewise.
1878 (expand_constant_setmem_prologue): Likewise.
1879 (decide_alg): Add new argument align_unknown. Fix algorithm of
1880 strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop
1881 (decide_alignment): Update desired alignment according to chosen move
1882 mode.
1883 (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves.
1884 (ix86_expand_setmem): Likewise.
1885 (ix86_slow_unaligned_access): Implementation of new hook
1886 slow_unaligned_access.
1887 * config/i386/i386.md (strset): Enable half-SSE moves.
1888 * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si.
1889 (vec_dupv2di): Add expand for vec_dupv2di.
1890
1891 2011-11-14 Dimitrios Apostolou <jimis@gmx.net>
1892
1893 PR bootstrap/51094
1894 PR middle-end/51116
1895 * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove.
1896 * varasm.c (default_elf_internal_label): Remove.
1897
1898 2011-11-14 Kai Tietz <ktietz@redhat.com>
1899
1900 * gcov.c (generate_results): Add missing semicolon and correct indent.
1901
1902 2011-11-14 Ira Rosen <ira.rosen@linaro.org>
1903
1904 PR bootstrap/51112
1905 * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype.
1906
1907 2011-11-14 Mingjie Xing <mingjie.xing@gmail.com>
1908
1909 * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes}
1910 to @pxref{Function Attributes}.
1911
1912 2011-11-13 Oleg Endo <oleg.endo@t-online.de>
1913
1914 PR target/50694
1915 * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A):
1916 New macros.
1917 (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options
1918 taking the default configuration into account.
1919
1920 2011-11-13 Jonathan Wakely <jwakely.gcc@gmail.com>
1921
1922 * doc/install.texi (Specific): Fix anchor for
1923 x86_64-*-solaris2.1[0-9]*.
1924
1925 2011-11-13 Nathan Sidwell <nathan@acm.org>
1926
1927 * gcov.c (source_prefix, source_length): New globals.
1928 (flag_relative_only): Likewise.
1929 (print_usage, options, process_args): Update.
1930 (generate_results): Use coverage.name, check
1931 flag_relative_only. Adjust messages.
1932 (find_source): Check source_prefix.
1933 (output_lines): Use coverage.name, adjust messages.
1934 * doc/gcov.texi (Invoking Gcov): Document new options.
1935
1936 2011-11-12 Jason Merrill <jason@redhat.com>
1937
1938 PR c++/51060
1939 * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup.
1940 (gimplify_modify_expr): Don't try to simplify it.
1941
1942 2011-11-12 Dimitrios Apostolou <jimis@gmx.net>
1943
1944 PR bootstrap/51094
1945 * config/elfos.h (STRING_ASM_OP): Define.
1946 * varasm.c (default_elf_asm_output_limited_string): Use it.
1947
1948 PR bootstrap/51094
1949 * gcc/configure.ac: Check for stpcpy declaration.
1950 * system.h: Declare it if not.
1951 * config.in, configure: Regenerate.
1952
1953 2011-11-12 Richard Henderson <rth@redhat.com>
1954
1955 * config/rs6000/rs6000.md (fix_trunc<SFDF>si2_stfiwx): Use
1956 nonimmediate_operand for the destination.
1957 (fixuns_trunc<SFDF>si2_stfiwx): Likewise.
1958
1959 * builtins.c (expand_builtin_compare_and_swap): If target is const0,
1960 don't pass the target to expand_atomic_compare_and_swap.
1961 (expand_builtin_atomic_compare_exchange): Likewise.
1962
1963 * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New.
1964 * config/sh/sh.c (sh_init_sync_libfuncs): New.
1965
1966 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New.
1967 * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default.
1968 * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs.
1969
1970 2011-11-12 Iain Sandoe <iains@gcc.gnu.org>
1971
1972 PR target/45233
1973 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
1974 Only expand a symbol ref. into an access when the entity is defined
1975 in the TU.
1976
1977 2011-11-12 Jan Hubicka <jh@suse.cz>
1978
1979 PR bootstrap/50822
1980 * cgraphunit.c (output_weakrefs): Output really only weakrefs.
1981
1982 2011-11-12 Nathan Sidwell <nathan@acm.org>
1983
1984 * gcov.c (struct name_map): New.
1985 (names, n_names, a_names): New global vars.
1986 (print_usage): Adjust usage.
1987 (generate_results): Canonicalize main file name.
1988 (release_structures): Adjust.
1989 (name_search, name_sort): New callbacks.
1990 (find_source): Look for and create a canonical name.
1991 (canonicalize_name): New.
1992 (make_gcov_file_name): Reimplement and fix mangling.
1993 (mangle_name): New.
1994 * doc/gcov.texi: Update documentation about path preservation.
1995
1996 2011-11-11 David S. Miller <davem@davemloft.net>
1997
1998 * config/sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
1999 * config/sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Delete.
2000
2001 2011-11-11 Jakub Jelinek <jakub@redhat.com>
2002
2003 * config/i386/i386-protos.h (ix86_maybe_emit_epilogue_vzeroupper):
2004 New prototype.
2005 * config/i386/i386.c (ix86_maybe_emit_epilogue_vzeroupper): New
2006 function.
2007 (ix86_expand_epilogue): Use it.
2008 * config/i386/i386.md (return, simple_return): Call it in the
2009 expanders.
2010
2011 PR tree-optimization/51091
2012 * tree-stdarg.c (execute_optimize_stdarg): Ignore TREE_CLOBBER_P
2013 rhs also in the va_list_simple_ptr case.
2014
2015 PR tree-optimization/51058
2016 * tree-vect-slp.c (vect_remove_slp_scalar_calls): New function.
2017 (vect_schedule_slp): Call it.
2018 * tree-vect-stmts.c (vectorizable_call): If slp_node != NULL,
2019 don't replace scalar calls with setting of their lhs to zero here.
2020
2021 PR tree-optimization/51074
2022 * fold-const.c (vec_cst_ctor_to_array, fold_vec_perm): New functions.
2023 (fold_binary_loc): Handle VEC_EXTRACT_EVEN_EXPR,
2024 VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR and
2025 VEC_INTERLEAVE_LOW_EXPR with VECTOR_CST or CONSTRUCTOR operands.
2026 (fold_ternary_loc): Handle VEC_PERM_EXPR with VECTOR_CST or
2027 CONSTRUCTOR operands.
2028 * tree-ssa-propagate.c (valid_gimple_rhs_p): Handle ternary
2029 expressions.
2030 * tree-vect-generic.c (lower_vec_perm): Mask sel_int elements
2031 to 0 .. 2 * elements - 1.
2032
2033 2011-11-11 Richard Henderson <rth@redhat.com>
2034
2035 * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Dump needed.
2036 (dump_gimple_omp_atomic_store): Likewise.
2037 * optabs.c (can_atomic_exchange_p): New.
2038 * optabs.h (can_atomic_exchange_p): Declare.
2039 * omp-low.c (expand_omp_atomic_load): Implement.
2040 (expand_omp_atomic_store): Likewise.
2041 (expand_omp_atomic): Update for new arguments to load/store.
2042
2043 2011-11-11 Eric Botcazou <ebotcazou@adacore.com>
2044
2045 * cprop.c: Adjust outdated comments throughout.
2046 (hash_scan_set): Rename PAT parameter into SET.
2047 (cprop_pavloc): Rename into...
2048 (cprop_avloc): ...this.
2049 (cprop_absaltered): Rename into...
2050 (cprop_kill): ...this.
2051 (alloc_cprop_mem): Adjust for above renaming.
2052 (free_cprop_mem): Likewise.
2053 (compute_cprop_data): Likewise.
2054 (compute_local_properties): Rename TRANSP parameter into KILL and
2055 adjust throughout. Rework comments.
2056 (try_replace_reg): Fix long line.
2057 (cprop_jump): Likewise.
2058 (constprop_register): Fix prototype and take INSN last.
2059 (cprop_insn): Adjust calls to above function. Fix long lines.
2060 (bypass_block): Likewise.
2061 (one_cprop_pass): Likewise.
2062
2063 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
2064
2065 * config/alpha/elf.h (ELF_ASCII_ESCAPES): Rename from ESCAPES.
2066 (ELF_STRING_LIMIT): Rename from STRING_LIMIT.
2067
2068 2011-11-11 Jason Merrill <jason@redhat.com>
2069
2070 * varasm.c (default_elf_asm_output_limited_string): #ifdef
2071 ELF_ASCII_ESCAPES.
2072 (default_elf_asm_output_ascii): Likewise.
2073
2074 2011-11-11 Uros Bizjak <ubizjak@gmail.com>
2075
2076 PR target/50762
2077 * config/i386/constraints.md (j): New address constraint.
2078 * config/i386/predicates.md (lea_address_operand): Redefine as
2079 special predicate.
2080 * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
2081 (*lea_4_zext): Ditto.
2082
2083 2011-11-11 David S. Miller <davem@davemloft.net>
2084
2085 Revert
2086 2011-11-05 David S. Miller <davem@davemloft.net>
2087
2088 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
2089 (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
2090 (*zero_extend_v8qi_<P:mode>_insn,
2091 *zero_extend_v4hi_<P:mode>_insn): New insns.
2092 * config/sparc/sparc.c (vector_init_move_words,
2093 vector_init_prepare_elts, sparc_expand_vector_init_vis2,
2094 sparc_expand_vector_init_vis1): New functions.
2095 (vector_init_bshuffle): Rewrite to handle more cases and make use
2096 of locs[] array prepared by vector_init_prepare_elts.
2097 (vector_init_fpmerge, vector_init_faligndata): Delete.
2098 (sparc_expand_vector_init): Rewrite using new infrastructure.
2099
2100 2011-11-11 Jakub Jelinek <jakub@redhat.com>
2101
2102 * opts-common.c (generate_canonical_option): Free opt_text
2103 it it has been allocated here and not stored anywhere.
2104
2105 * tree-vect-slp.c (vect_free_slp_tree): Also free SLP_TREE_CHILDREN
2106 vector.
2107 (vect_create_new_slp_node): Don't allocate node before checking stmt
2108 type.
2109 (vect_free_oprnd_info): Remove FREE_DEF_STMTS argument, always
2110 free def_stmts vectors and additionally free oprnd_info.
2111 (vect_build_slp_tree): Adjust callers. Call it even if
2112 stop_recursion. If vect_create_new_slp_node or
2113 vect_build_slp_tree fails, properly handle freeing memory.
2114 If it succeeded, clear def_stmts in oprnd_info.
2115
2116 2011-11-11 Dimitrios Apostolou <jimis@gmx.net>
2117
2118 * defaults.h (ASM_OUTPUT_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Expand on
2119 multiple lines for readability.
2120 * output.h (fprint_whex, fprint_w, fprint_ul, sprint_ul): Declare.
2121 (ASM_OUTPUT_LABELREF): Call fputs instead of asm_fprintf.
2122 * dwarf2asm.c (dw2_assemble_integer, dw2_asm_output_data,
2123 dw2_asm_data_uleb128, dw2_asm_delta_uleb128,
2124 dw2_asm_delta_sleb128): Convert fprintf calls to the new functions.
2125 * dwarf2out.c (dwarf2out_source_line): Call fprint_ul instead of
2126 fprintf.
2127 * final.c (fprint_whex, fprint_w, fprint_ul, sprint_ul): New functions
2128 serving as fast replacements for fprintf integer to string conversions.
2129 (sprint_ul_rev): Internal helper for the above.
2130 (output_addr_const) <CONST_INT>: Don't use fprintf.
2131 * varasm.c: Fix some whitespace inconsistencies.
2132 (default_elf_asm_output_limited_string): New.
2133 (default_elf_asm_output_ascii): Likewise.
2134 (default_elf_internal_label): Likewise.
2135 * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Use sprint_ul and
2136 stpcpy instead of sprintf.
2137 (TARGET_ASM_INTERNAL_LABEL): Define as default_elf_internal_label.
2138 (ELF_ASCII_ESCAPES, ELF_STRING_LIMIT): Rename from old ESCAPES and
2139 STRING_LIMIT macros.
2140 (ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII): Call functions that
2141 provide the same functionality.
2142 * config/i386/i386.c (print_reg): Call fprint_ul instead of fprintf.
2143
2144 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
2145
2146 * doc/extend.texi: Document __atomic_test_and_set and __atomic_clear.
2147
2148 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
2149
2150 PR middle-end/51038
2151 * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear.
2152 (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set.
2153 (expand_builtin): Add cases for test_and_set and clear.
2154 * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New.
2155 (BUILT_IN_ATOMIC_CLEAR): New.
2156
2157 2011-11-10 Roberto Agostino Vitillo <ravitillo@lbl.gov>
2158
2159 PR debug/50983
2160 * dwarf2out.c (set_cur_line_info_table): Restore the last is_stmt
2161 value in the current line table.
2162
2163 2011-11-10 Nathan Sidwell <nathan@acm.org>
2164
2165 * gcov.c (struct function_info): Make src an index, not a pointer.
2166 (struct source_info): Remove index and next source fields.
2167 (fn_end): New static var.
2168 (sources_index): Remove.
2169 (sources): Now a pointer to an array, not a list.
2170 (n_sources, a_sources): New.
2171 (process_file): Adjust for changes to read_graph_file. Insert
2172 functions into source lists and check line numbers here.
2173 (generate_results): Only allocate lines for sources with
2174 contents. Adjust for source array.
2175 (release_structures): Likewise.
2176 (find_source): Return source index, adjust for source array.
2177 (read_graph_file): Return function list. Don't insert into source
2178 lists here.
2179 (read_count_file): Take list of functions.
2180 (solve_flow_graph): Reverse the arc lists here.
2181 (add_line_counts): Adjust for source array.
2182
2183 2011-11-10 Jakub Jelinek <jakub@redhat.com>
2184
2185 PR middle-end/51077
2186 * tree-object-size.c (addr_object_size): Check TREE_CODE of
2187 MEM_REF's operand rather than code of the MEM_REF itself.
2188
2189 2011-11-10 Andrew MacLeod <amacleod@redhat.com>
2190
2191 PR rtl-optimization/51040
2192 * optabs.c (expand_atomic_fetch_op): Patchup code for NAND should
2193 be AND followed by NOT.
2194 * builtins.c (expand_builtin_atomic_fetch_op): Patchup code for NAND
2195 should be AND followed by NOT.
2196
2197 2011-11-10 Jakub Jelinek <jakub@redhat.com>
2198
2199 * vec.h (VEC_BASE): If base is at offset 0 in the structure,
2200 use &(P)->base even if P is NULL.
2201
2202 PR rtl-optimization/51023
2203 * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use
2204 val_signbit_known_clear_p for signed comparison narrowing
2205 optimization. Don't check for non-VOIDmode, use
2206 HWI_COMPUTABLE_MODE_P macro.
2207 <case ZERO_EXTEND>: Don't check for non-VOIDmode.
2208 Optimize even when const_op is equal to GET_MODE_MASK (mode),
2209 don't optimize if const_op is negative.
2210
2211 2011-11-10 Richard Guenther <rguenther@suse.de>
2212
2213 PR tree-optimization/51042
2214 * tree-ssa-pre.c (phi_translate_1): Avoid recursing on
2215 self-referential expressions. Refactor code to avoid duplication.
2216
2217 2011-11-10 Richard Guenther <rguenther@suse.de>
2218
2219 PR tree-optimization/51070
2220 * tree-loop-distribution.c (generate_builtin): Do not replace
2221 the loop with a builtin if the partition contains statements which
2222 results are used outside of the loop.
2223 (pass_loop_distribution): Verify and collect.
2224
2225 2011-11-10 Richard Guenther <rguenther@suse.de>
2226
2227 PR tree-optimization/51030
2228 * tree-ssa-phiopt.c (jump_function_from_stmt): New function.
2229 (value_replacement): Use it to handle trivial non-empty
2230 intermediate blocks.
2231
2232 2011-11-10 Richard Guenther <rguenther@suse.de>
2233
2234 PR middle-end/51071
2235 * gimple.c (gimple_has_side_effects): Remove checking code
2236 that doesn't belong here.
2237
2238 2011-11-10 Ira Rosen <ira.rosen@linaro.org>
2239
2240 PR tree-optimization/51058
2241 * tree-vect-slp.c (vect_get_constant_vectors): Handle CALL_EXPR.
2242
2243 2011-11-10 Jakub Jelinek <jakub@redhat.com>
2244
2245 PR tree-optimization/51000
2246 * tree-vect-patterns.c (vect_recog_bool_pattern): If adding
2247 a pattern stmt for a bool store, adjust DR_STMT too.
2248 Don't handle bool conversions to single bit precision lhs.
2249 * tree-vect-stmts.c (vect_remove_stores): If next is a pattern
2250 stmt, remove its related stmt and free its stmt_vinfo.
2251 (free_stmt_vec_info): Free also pattern stmt's vinfo and
2252 pattern def stmt's vinfo.
2253 * tree-vect-loop.c (destroy_loop_vec_info): Don't try to
2254 free pattern stmt's vinfo here.
2255 (vect_transform_loop): When calling vect_remove_stores,
2256 do gsi_next first and don't call gsi_remove. If not strided
2257 store, free stmt vinfo for gsi_stmt (si) rather than stmt.
2258
2259 2011-11-09 Jakub Jelinek <jakub@redhat.com>
2260
2261 PR target/50911
2262 * config/i386/i386.c (expand_vec_perm_interleave2): If d->vmode is
2263 V4SImode, !TARGET_SSE2 and punpck[lh]* is needed, change dremap.vmode
2264 to V4SFmode.
2265
2266 * function.h (requires_stack_frame_p): New prototype.
2267 * function.c (requires_stack_frame_p): No longer static.
2268 * config/i386/i386.c (ix86_finalize_stack_realign_flags): If
2269 stack_realign_fp was just a conservative guess for a function
2270 which doesn't use sp/fp/argp at all, clear frame_pointer_needed
2271 and stack realignment.
2272
2273 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
2274
2275 PR preprocessor/51061
2276 * incpath.c (merge_include_chains): Make sure to not pass null
2277 pointers to free_path.
2278
2279 2011-11-09 Paolo Carlini <paolo.carlini@oracle.com>
2280
2281 * doc/invoke.texi ([Option Summary, C++ Language Options]):
2282 Add -Wzero-as-null-pointer-constant.
2283
2284 2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2285
2286 * config/arm/arm-cores.def: Add -mcpu=cortex-a7.
2287 * config/arm/arm-tables.opt: Regenerate.
2288 * config/arm/arm-tune.md: Likewise.
2289 * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex A-7.
2290 * doc/invoke.texi: Document -mcpu=cortex-a7.
2291
2292 2011-11-09 Richard Guenther <rguenther@suse.de>
2293
2294 Revert
2295 2011-11-09 Richard Guenther <rguenther@suse.de>
2296
2297 * tree-cfg.c (verify_gimple_call): Verify that
2298 gimple_call_cannot_inline_p is returning a conservative
2299 correct result according to gimple_check_call_matching_types.
2300
2301 2011-11-09 Richard Guenther <rguenther@suse.de>
2302
2303 PR tree-optimization/51039
2304 * tree-cfg.c (verify_gimple_call): Verify that
2305 gimple_call_cannot_inline_p is returning a conservative
2306 correct result according to gimple_check_call_matching_types.
2307 * ipa-inline-analysis.c (estimate_function_body_sizes): Remove
2308 code dealing with un-inlinablility.
2309 * gimple-streamer-in.c (input_gimple_stmt): Update the
2310 non-inlinable flag.
2311
2312 2011-11-09 Richard Guenther <rguenther@suse.de>
2313
2314 PR tree-optimization/51039
2315 * tree-inline.c (setup_one_parameter): Always perform a
2316 valid gimple type change.
2317 (declare_return_variable): Likewise.
2318
2319 2011-11-09 Jakub Jelinek <jakub@redhat.com>
2320
2321 * config/rs6000/vector.md (vcondv4sfv4si, vcondv4siv4sf,
2322 vconduv4sfv4si): New patterns.
2323 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Handle
2324 different dest_mode from comparison mode.
2325
2326 2011-11-09 Richard Guenther <rguenther@suse.de>
2327
2328 * gimple-fold.c (canonicalize_constructor_val): Mark
2329 address-taken variables addressable.
2330
2331 2011-11-09 Ira Rosen <ira.rosen@linaro.org>
2332
2333 PR tree-optimization/51015
2334 * tree-vect-loop.c (vect_determine_vectorization_factor): Expect
2335 vectype to be set for pattern def stmts.
2336
2337 2011-11-09 Alan Modra <amodra@gmail.com>
2338
2339 * function.c (bb_active_p): Delete.
2340 (dup_block_and_redirect, active_insn_between): New functions.
2341 (convert_jumps_to_returns, emit_return_for_exit): New functions,
2342 split out from..
2343 (thread_prologue_and_epilogue_insns): ..here. Delete
2344 shadowing variables. Don't do prologue register clobber tests
2345 when shrink wrapping already failed. Delete all last_bb_active
2346 code. Instead compute tail block candidates for duplicating
2347 exit path. Remove these from antic set. Duplicate tails when
2348 reached from both blocks needing a prologue/epilogue and
2349 blocks not needing such.
2350 * ifcvt.c (dead_or_predicable): Test both flag_shrink_wrap and
2351 HAVE_simple_return.
2352 * bb-reorder.c (get_uncond_jump_length): Make global.
2353 * bb-reorder.h (get_uncond_jump_length): Declare.
2354 * cfgrtl.c (rtl_create_basic_block): Comment typo fix.
2355 (rtl_split_edge): Likewise. Warning fix.
2356 (rtl_duplicate_bb): New function.
2357 (rtl_cfg_hooks): Enable can_duplicate_block_p and duplicate_block.
2358 * Makefile.in (function.o): Update dependencies.
2359
2360 2011-11-08 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2361 Georg-Johann Lay <avr@gjlay.de>
2362
2363 * doc/tm.texi.in (MODE_CODE_BASE_REG_CLASS): Add address space
2364 argument.
2365 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2366 * doc/tm.texi: Regenerate.
2367
2368 * config/cris/cris.h (MODE_CODE_BASE_REG_CLASS): Add address
2369 space argument.
2370 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2371 * config/bfin/bfin.h (MODE_CODE_BASE_REG_CLASS): Likewise.
2372 (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
2373 * config/avr/avr.h (MODE_CODE_BASE_REG_CLASS): Add address space
2374 argument.
2375 (REGNO_MODE_CODE_OK_FOR_BASE_P): Ditto.
2376 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
2377 (avr_regno_mode_code_ok_for_base_p): Ditto.
2378 * config/avr/avr.c (avr_mode_code_base_reg_class): Ditto.
2379 (avr_regno_mode_code_ok_for_base_p): Ditto.
2380 (avr_reg_ok_for_addr_p): Pass AS down to
2381 avr_regno_mode_code_ok_for_base_p.
2382
2383 * addresses.h (base_reg_class): Add address space argument.
2384 Pass to MODE_CODE_BASE_REG_CLASS.
2385 (ok_for_base_p_1): Add address space argument. Pass to
2386 REGNO_MODE_CODE_OK_FOR_BASE_P.
2387 (regno_ok_for_base_p): Add address space argument. Pass to
2388 ok_for_base_p_1.
2389
2390 * regrename.c (scan_rtx_address): Add address space argument.
2391 Pass address space to regno_ok_for_base_p and base_reg_class.
2392 Update recursive calls.
2393 (scan_rtx): Pass address space to scan_rtx_address.
2394 (build_def_use): Likewise.
2395 * regcprop.c (replace_oldest_value_addr): Add address space
2396 argument. Pass to regno_ok_for_base_p and base_reg_class.
2397 Update recursive calls.
2398 (replace_oldest_value_mem): Pass address space to
2399 replace_oldest_value_addr.
2400 (copyprop_hardreg_forward_1): Likewise.
2401
2402 * reload.c (find_reloads_address_1): Add address space argument.
2403 Pass address space to base_reg_class and regno_ok_for_base_p.
2404 Update recursive calls.
2405 (find_reloads_address): Pass address space to base_reg_class,
2406 regno_ok_for_base_p, and find_reloads_address_1.
2407 (find_reloads): Pass address space to base_reg_class.
2408 (find_reloads_subreg_address): Likewise.
2409
2410 * ira-costs.c (record_reg_classes): Update calls to base_reg_class.
2411 (ok_for_base_p_nonstrict): Add address space argument. Pass to
2412 ok_for_base_p_1.
2413 (record_address_regs): Add address space argument. Pass to
2414 base_reg_class and ok_for_base_p_nonstrict. Update recursive calls.
2415 (record_operand_costs): Pass address space to record_address_regs.
2416 (scan_one_insn): Likewise.
2417
2418 * caller-save.c (init_caller_save): Update call to base_reg_class.
2419 * ira-conflicts.c (ira_build_conflicts): Likewise.
2420 * reload1.c (maybe_fix_stack_asms): Likewise.
2421
2422 2011-11-08 Michael Matz <matz@suse.de>
2423
2424 * gengtype.c (write_field_root): Avoid out-of-scope access of newv.
2425
2426 * tree-stdarg.c (execute_optimize_stdarg): Accept clobbers.
2427
2428 * tree.h (TREE_CLOBBER_P): New macro.
2429 * gimple.h (gimple_clobber_p): New inline function.
2430 * gimplify.c (gimplify_bind_expr): Add clobbers for all variables
2431 that go out of scope and live in memory.
2432 * tree-ssa-operands.c (get_expr_operands): Transfer volatility also
2433 for constructors.
2434 * cfgexpand.c (decl_to_stack_part): New static variable.
2435 (add_stack_var): Allocate it, and remember mapping.
2436 (fini_vars_expansion): Deallocate it.
2437 (stack_var_conflict_p): Add early outs.
2438 (visit_op, visit_conflict, add_scope_conflicts_1,
2439 add_scope_conflicts): New static functions.
2440 (expand_used_vars_for_block): Don't call add_stack_var_conflict, tidy.
2441 (expand_used_vars): Add scope conflicts.
2442 (expand_gimple_stmt_1): Expand clobbers to nothing.
2443 (expand_debug_expr): Ditto.
2444
2445 * tree-pretty-print.c (dump_generic_node): Dump clobbers nicely.
2446 * tree-ssa-live.c (remove_unused_locals): Remove clobbers that
2447 refer to otherwise unused locals.
2448 * tree-sra.c (build_accesses_from_assign): Ignore clobbers.
2449 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
2450 SSA names aren't necessary.
2451 (propagate_necessity): Accept and ignore constructors on the rhs, tidy.
2452 * gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
2453 * tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
2454 any known value.
2455 * tree-ssa-sccvn.c (vn_reference_lookup_3): Ditto, in particular they
2456 don't zero-initialize something.
2457 * tree-ssa-phiopt.c (cond_if_else_store_replacement_1): Ignore
2458 clobber RHS, we don't want PHI nodes with those.
2459
2460 2011-11-08 Jakub Jelinek <jakub@redhat.com>
2461
2462 * config/i386/i386.c (ix86_preferred_simd_mode): Even for TARGET_AVX
2463 if not TARGET_PREFER_AVX128 return 32-byte integer vectors.
2464
2465 2011-11-08 Richard Guenther <rguenther@suse.de>
2466
2467 PR tree-optimization/51012
2468 * ipa-prop.c (update_indirect_edges_after_inlining): Fixup
2469 non-inlinable state.
2470 * cgraph.c (cgraph_make_edge_direct): Likewise.
2471
2472 2011-11-08 Eric Botcazou <ebotcazou@adacore.com>
2473
2474 PR rtl-optimization/47698
2475 * ifcvt.c (noce_operand_ok): Move around comment.
2476
2477 2011-11-08 Richard Guenther <rguenther@suse.de>
2478
2479 PR lto/50999
2480 * lto-opts.c (append_to_collect_gcc_options): Split out from...
2481 (lto_write_options): ... here. Prepend frontend specific flags.
2482
2483 2011-11-08 Jakub Jelinek <jakub@redhat.com>
2484
2485 * config/i386/sse.md (*avx_vperm2f128<mode>3_nozero): Emit mask
2486 0x12 and 0x20 as vinsert[fi]128 instead of vperm2[fi]128.
2487
2488 * tree-vect-stmts.c (vectorizable_call): Add SLP_NODE argument.
2489 Handle vectorization of SLP calls.
2490 (vect_analyze_stmt): Adjust caller, add call to it for SLP too.
2491 (vect_transform_stmt): Adjust vectorizable_call caller, remove
2492 assertion.
2493 * tree-vect-slp.c (vect_get_and_check_slp_defs): For calls start
2494 with op_idx 3.
2495 (vect_build_slp_tree): Allow CALL_EXPR.
2496
2497 2011-11-08 Richard Guenther <rguenther@suse.de>
2498
2499 * gimple-fold.c (canonicalize_constructor_val): Make sure
2500 we have referenced vars setup before adding to them.
2501
2502 2011-11-07 Richard Henderson <rth@redhat.com>
2503 Aldy Hernandez <aldyh@redhat.com>
2504 Andrew MacLeod <amacleod@redhat.com>
2505 Torvald Riegel <triegel@redhat.com>
2506
2507 Merged from transactional-memory.
2508
2509 * gtm-builtins.def: New file.
2510 * trans-mem.c: New file.
2511 * trans-mem.h: New file.
2512
2513 * opts.c (finish_options): Error out when using -flto and -fgnu-tm.
2514
2515 * config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
2516 (ix86_handle_tm_regparm_attribute, struct bdesc_tm,
2517 ix86_builtin_tm_load, ix86_builtin_tm_store,
2518 ix86_init_tm_builtins): New.
2519 (ix86_init_builtins): Initialize TM builtins.
2520 (struct ix86_attribute_table): Add "*tm regparm".
2521 * config/i386/i386-builtin-types.def (PV2SI): Define.
2522 (PCV2SI): Define.
2523 Define V2SI_FTYPE_PCV2SI.
2524 Define V4SF_FTYPE_PCV4SF.
2525 Define V8SF_FTYPE_PCV8SF.
2526 Define VOID_PV2SI_V2SI.
2527
2528 * doc/invoke.texi (C Dialect Options): Document -fgnu-tm and
2529 tm-max-aggregate-size.
2530 * doc/tm.texi.in: Add TARGET_VECTORIZE_BUILTIN_TM_LOAD and
2531 TARGET_VECTORIZE_BUILTIN_TM_STORE hooks.
2532 * doc/tm.texi: Regenerate.
2533
2534 * attribs.c (apply_tm_attr): New.
2535 (init_attributes): Allow '*' prefix for overrides.
2536 (register_attribute): Likewise.
2537 * builtin-attrs.def (ATTR_TM_TMPURE, ATTR_TM_REGPARM): New.
2538 (ATTR_TM_NOTHROW_LIST, ATTR_TM_TMPURE_NOTHROW_LIST,
2539 ATTR_TM_PURE_TMPURE_NOTHROW_LIST, ATTR_TM_NORETURN_NOTHROW_LIST,
2540 ATTR_TM_CONST_NOTHROW_LIST, ATTR_TMPURE_MALLOC_NOTHROW_LIST,
2541 ATTR_TMPURE_NOTHROW_LIST): New.
2542 * builtin-types.def (BT_FN_I[1248]_VPTR, BT_FN_FLOAT_VPTR,
2543 BT_FN_DOUBLE_VPTR, BT_FN_LDOUBLE_VPTR, BT_FN_VOID_VPTR_I[1248],
2544 BT_FN_VOID_VPTR_FLOAT, BT_FN_VOID_VPTR_DOUBLE,
2545 BT_FN_VOID_VPTR_LDOUBLE, BT_FN_VOID_VPTR_SIZE): New.
2546 * builtins.def: Include gtm-builtins.def. Add comments regarding
2547 transactional memory synchronization.
2548 (DEF_TM_BUILTIN): New.
2549 * c-parser.c (struct c_parser): Add in_transaction.
2550 (c_parser_transaction, c_parser_transaction_expression,
2551 c_parser_transaction_cancel, c_parser_transaction_attributes): New.
2552 (c_parser_attribute_any_word): Split out from c_parser_attributes.
2553 (c_parser_statement_after_labels): Handle RID_TRANSACTION*.
2554 (c_parser_unary_expression): Same.
2555 * c-tree.h (c_finish_transaction): Declare.
2556 * c-typeck.c (c_finish_transaction): New.
2557 (build_function_call_vec): Call tm_malloc_replacement.
2558 * calls.c (is_tm_builtin): New.
2559 (flags_from_decl_or_type): Add ECF_TM_BUILTIN and ECF_TM_PURE.
2560 * cfgbuild.c (make_edges): Add edges for REG_TM notes.
2561 * cfgexpand.c (expand_call_stmt): Call
2562 mark_transaction_restart_calls.
2563 (gimple_expand_cfg): Free the tm_restart map.
2564 (mark_transaction_restart_calls): New.
2565 * cfgrtl.c (purge_dead_edges): Look for REG_TM notes.
2566 * cgraph.c (dump_cgraph_node): Handle tm_clone.
2567 * cgraph.h (struct cgraph_node): Add tm_clone field.
2568 (decl_is_tm_clone): New.
2569 (struct cgraph_local_info): Add tm_may_enter_irr.
2570 (cgraph_copy_node_for_versioning): Declare.
2571 * cgraphunit.c (cgraph_copy_node_for_versioning): Export;
2572 copy analyzed from old version.
2573 * combine.c (distribute_notes): Handle REG_TM notes.
2574 * common.opt: Add -fgnu-tm.
2575 * crtstuff.c (__TMC_LIST__, __TMC_END__): New.
2576 (__do_global_dtors_aux): Deregister clone table.
2577 (frame_dummy): Register clone table.
2578 * emit-rtl.c (try_split): Handle REG_TM. Early return if no function
2579 body.
2580 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_ELSE and
2581 GIMPLE_TRANSACTION.
2582 (gimple_stmt_may_fallthru): Handle GIMPLE_EH_ELSE.
2583 * gimple-pretty-print.c: Include trans-mem.h.
2584 (dump_gimple_fmt): Add %x.
2585 (dump_gimple_call): Dump arguments for calls to _ITM_beginTransaction.
2586 (dump_gimple_eh_else, dump_gimple_transaction): New.
2587 (dump_gimple_stmt): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
2588 * gimple.c (gimple_build_eh_else, gimple_build_transaction): New.
2589 (walk_gimple_seq): Honor removed_stmt. Document usage of removed_stmt
2590 field.
2591 (walk_gimple_op): Handle GIMPLE_TRANSACTION.
2592 (walk_gimple_stmt): Initialize and honor removed_stmt.
2593 Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
2594 (gimple_copy): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
2595 * gimple.def (GIMPLE_TRANSACTION, GIMPLE_EH_ELSE): New.
2596 * gimple.h (struct gimple_statement_eh_else,
2597 gimple_statement_transaction, GTMA_*): New.
2598 (gimple_statement_d): Add gimple_statement_eh_else and
2599 gimple_transaction.
2600 (gimple_build_eh_else, gimple_build_transaction,
2601 gimple_fold_call, diagnose_tm_safe_errors): Declare.
2602 (get_call_expr_in): Remove prototype.
2603 (gimple_has_substatements): Add GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
2604 (gimple_eh_else_n_body, gimple_eh_else_e_body,
2605 gimple_eh_else_set_n_body, gimple_eh_else_set_e_body,
2606 gimple_transaction_body, gimple_transaction_label,
2607 gimple_transaction_label_ptr, gimple_transaction_subcode,
2608 gimple_transaction_set_body, gimple_transaction_set_label,
2609 gimple_transaction_set_subcode): New.
2610 (struct walk_stmt_info): Use BOOL_BITFIELD; add removed_stmt.
2611 * gimplify.c (create_tmp_var_name): Use clean_symbol_name.
2612 (voidify_wrapper_expr): Handle TRANSACTION_EXPR.
2613 (gimplify_transaction): New.
2614 (gimplify_expr): Handle TRANSACTION_EXPR.
2615 * gsstruct.def (GSS_EH_ELSE, GSS_TRANSACTION): New.
2616 * ipa-inline.c (can_inline_edge_p): Do not inline TM safe calling
2617 TM pure functions.
2618 * Makefile.in: Add trans-mem.o and dependencies.
2619 (BUILTINS_DEF): Add gtm-builtins.def.
2620 (gimple-pretty-print.o): Depend on TRANS_MEM_H.
2621 (GTFILES): Add trans-mem.c.
2622 * omp-low.c (WALK_SUBSTMTS): Add GIMPLE_TRANSACTION.
2623 * output.h (record_tm_clone_pair, finish_tm_clone_pairs,
2624 get_tm_clone_pair): Declare.
2625 * params.def (PARAM_TM_MAX_AGGREGATE_SIZE): New.
2626 * passes.c (init_optimization_passes): Place transactional memory
2627 passes.
2628 * print-tree.c (print_node): Dump tm-clone.
2629 * recog.c (peep2_attempt): Handle REG_TM.
2630 * reg-notes.def (TM): New.
2631 * rtlanal.c (alloc_reg_note): Handle REG_TM.
2632 * target.def (builtin_tm_load, builtin_tm_store): New.
2633 * targhooks.c (default_builtin_tm_load_store): New.
2634 * targhooks.h (default_builtin_tm_load_store): Declare.
2635 * timevar.def (TV_TRANS_MEM): New.
2636 * toplev.c (compile_file): Call finish_tm_clone_pairs.
2637 * tree-cfg.c (make_edges): Handle GIMPLE_TRANSACTION.
2638 (cleanup_dead_labels): Handle GIMPLE_TRANSACTION. Avoid unnecessary
2639 writes into the statements to update labels.
2640 (is_ctrl_altering_stmt): Add TM ending statements. Handle
2641 GIMPLE_TRANSACTION.
2642 (verify_gimple_transaction): New.
2643 (verify_gimple_stmt): Handle GIMPLE_TRANSACTION.
2644 (verify_gimple_in_seq_2): Handle GIMPLE_EH_ELSE and GIMPLE_TRANSACTION.
2645 (gimple_redirect_edge_and_branch): Handle TM_TRANSACTION.
2646 (dump_function_to_file): Display [tm-clone] if applicable.
2647 * tree-eh.c (struct_ptr_eq): Make inline and move to tree.h.
2648 (struct_ptr_hash): Same.
2649 (collect_finally_tree): Handle GIMPLE_EH_ELSE.
2650 (replace_goto_queue_1): Likewise.
2651 (get_eh_else): New.
2652 (honor_protect_cleanup_actions): Handle GIMPLE_EH_ELSE.
2653 (lower_try_finally_nofallthru): Likewise.
2654 (lower_try_finally_onedest): Likewise.
2655 (lower_try_finally_copy): Likewise.
2656 (lower_try_finally_switch): Likewise.
2657 (lower_try_finally): Likewise.
2658 (decide_copy_try_finally): Likewise.
2659 (lower_eh_constructs_2): Likewise.
2660 (refactor_eh_r): Likewise.
2661 * tree-flow.h (struct gimple_df): Add tm_restart field.
2662 Define tm_restart_node.
2663 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_TRANSACTION.
2664 (estimate_num_insns): Likewise.
2665 (init_inline_once): Init tm_cost.
2666 * tree-inline.h (struct eni_weights_d): Add tm_cost.
2667 * tree-pass.h (pass_diagnose_tm_blocks, pass_lower_tm, pass_tm_init,
2668 pass_tm_mark, pass_tm_memopt, pass_tm_edges, pass_ipa_tm): Declare.
2669 * tree-pretty-print.c (dump_generic_node): Handle TRANSACTION_EXPR.
2670 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2671 BUILT_IN_TM_MEMSET, BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
2672 Add support for TM vector loads. Add support for TM logging builtins.
2673 (call_may_clobber_ref_p_1): Add support for vector stores.
2674 * tree-ssa-structalias.c (find_func_aliases): Add support for TM
2675 vector stores and loads. Handle BUILT_IN_TM_MEMSET,
2676 BUILT_IN_TM_MEMCPY, BUILT_IN_TM_MEMMOVE.
2677 * tree.c (strip_invariant_refs): Moved from gimple.c to here.
2678 (local_define_builtin): Handle ECF_TM_PURE.
2679 (build_common_builtin_nodes): Set __builtin_eh_pointer to ECF_TM_PURE.
2680 * tree.def (TRANSACTION_EXPR): New.
2681 * tree.h (strip_invariant_refs): Moved from gimple.h to here.
2682 (TRANSACTION_EXPR_BODY, TRANSACTION_EXPR_CHECK,
2683 TRANSACTION_EXPR_OUTER, TRANSACTION_EXPR_RELAXED,
2684 BUILTIN_TM_LOAD_STORE_P, BUILTIN_TM_LOAD_P, BUILTIN_TM_STORE_P,
2685 CASE_BUILT_IN_TM_LOAD, CASE_BUILT_IN_TM_STORE): New.
2686 (ECF_TM_PURE, ECF_TM_BUILTIN): New.
2687 (struct tree_function_decl): Add tm_clone_flag.
2688 (struct_ptr_eq, struct_ptr_hash): New.
2689 (apply_tm_attr): Declare.
2690 (is_tm_safe_or_pure): New.
2691 (build_tm_abort_call, is_tm_safe, is_tm_pure,
2692 is_tm_may_cancel_outer, is_tm_ending_fndecl, record_tm_replacement,
2693 tm_malloc_replacement): Declare.
2694 * varasm.c (tm_clone_hash): New.
2695 (record_tm_clone_pair, finish_tm_clone_pairs, get_tm_clone_pair,
2696 dump_tm_clone_to_vec, dump_tm_clone_pairs, tm_alias_pair_cmp): New.
2697 (struct tm_alias_pair): New. Declare VEC types for object.
2698
2699 2011-11-07 Richard Henderson <rth@redhat.com>
2700
2701 * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
2702 OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
2703 OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
2704 OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
2705 OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
2706 rename from the direct_optab_index enum.
2707 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
2708 sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
2709 sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
2710 sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
2711 sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
2712 from the optab_table, not the direct_optab_table.
2713 (init_sync_libfuncs): Declare.
2714 (can_compare_and_swap_p): Update parameters.
2715 * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
2716 (can_compare_and_swap_p): Add allow_libcall parameter; if true,
2717 test for the legacy compare-and-swap libcall.
2718 (expand_atomic_exchange): Use the legacy test-and-set libcall.
2719 (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
2720 (struct atomic_op_functions): Update for optab type changes.
2721 (maybe_emit_op): Likewise.
2722 (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
2723 * builtins.c (fold_builtin_atomic_always_lock_free): Update call
2724 to can_compare_and_swap_p.
2725 * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
2726 (expand_omp_atomic_pipeline): Likewise.
2727 * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
2728 sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
2729 optabs.
2730 * doc/md.texi (sync_compare_and_swap): Update docs for libcalls.
2731
2732 2011-11-07 Jakub Jelinek <jakub@redhat.com>
2733
2734 * config/i386/i386-bultin-types.def (V8SI_FTYPE_V4DF_V4DF): Add.
2735 * config/i386/i386.c (enum ix86_builtins): Add
2736 IX86_BUILTIN_VEC_PACK_SFIX256.
2737 (bdesc_args): Add __builtin_ia32_vec_pack_sfix256.
2738 (ix86_expand_args_builtin): Handle V8SI_FTYPE_V4DF_V4DF.
2739 (ix86_builtin_vectorized_function): Also vectorize lrint using
2740 256-bit vectors for -mavx.
2741
2742 2011-11-07 Anatoly Sokolov <aesok@post.ru>
2743
2744 * config/cris/constraints.md: New file.
2745 * config/cris/cris.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
2746 CRIS_CONST_OK_FOR_LETTER_P, CONST_OK_FOR_CONSTRAINT_P,
2747 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_MEMORY_CONSTRAINT,
2748 EXTRA_CONSTRAINT, EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R,
2749 EXTRA_CONSTRAINT_T, EXTRA_CONSTRAINT_S, EXTRA_CONSTRAINT_U): Remove.
2750 * config/cris/cris.c: Incule "tm-constrs.h".
2751 (cris_print_operand): Use satisfies_constraint_O.
2752 (cris_normal_notice_update_cc, cris_rtx_costs): Use
2753 satisfies_constraint_I.
2754 (cris_address_cost): Use satisfies_constraint_L.
2755 * config/cris/cris.md: Include "constraints.md".
2756 (*mov_side<mode>, *mov_sidesisf, *mov_side<mode>_mem,
2757 *mov_sidesisf_mem, *clear_side<mode>, *ext_sideqihi,
2758 *ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>,
2759 *extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side,
2760 *extop<mode>si_swap_side): Use satisfies_constraint_N and
2761 satisfies_constraint_J.
2762 (moversideqi movemsideqi mover2side peephole2): Use
2763 satisfies_constraint_N and satisfies_constraint_J.
2764 (andu peephole2): Use satisfies_constraint_I and
2765 satisfies_constraint_O.
2766
2767 2011-11-07 Uros Bizjak <ubizjak@gmail.com>
2768
2769 * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
2770 BUILT_IN_IRINT, BUILT_IN_IRINTF, BUILT_IN_LLRINT and BUILT_IN_LLRINTF.
2771
2772 2011-11-07 Andrew MacLeod <amacleod@redhat.com>
2773
2774 * optabs.c (get_atomic_op_for_code): Fill in optab table at runtime so
2775 SWITCHABLE_TARGET can change the values during compilation.
2776 (expand_atomic_fetch_op): Handle parameter change ripples for
2777 get_atomic_op_for_code call.
2778
2779 2011-11-07 Andrew MacLeod <amacleod@redhat.com>
2780
2781 * doc/extend.texi: Docuemnt behaviour change for __atomic_exchange and
2782 __atomic_store.
2783 * optabs.c (expand_atomic_exchange): Expand to __sync_lock_test_and_set
2784 only when originated from that builtin.
2785 (expand_atomic_store): Expand to __sync_lock_release when originated
2786 from that builtin.
2787 * builtins.c (expand_builtin_sync_lock_test_and_set): Add flag that
2788 expand_atomic_exchange call originated from here.
2789 (expand_builtin_sync_lock_release): Add flag that expand_atomic_store
2790 call originated from here.
2791 (expand_builtin_atomic_exchange): Add origination flag.
2792 (expand_builtin_atomic_store): Add origination flag.
2793 * expr.h (expand_atomic_exchange, expand_atomic_store): Add boolean
2794 parameters to indicate implementation fall back options.
2795
2796 2011-11-07 Georg-Johann Lay <avr@gjlay.de>
2797
2798 * config/avr/avr.c (output_reload_in_const): Can handle CONSTANT_P
2799 now, not only CONST_INT and CONST_DOUBLE.
2800 (output_movqi): Use output_reload_in_const.
2801 (output_reload_inhi): Ditto.
2802 (output_reload_insisf): Move assertion to output_reload_in_const.
2803 (avr_out_reload_inpsi): Ditto.
2804
2805 2011-11-07 Nathan Sidwell <nathan@acm.org>
2806
2807 * gcov.c (object_summary): Replace with ...
2808 (object_runs): ... this.
2809 (process_file): Remove functions with no data.
2810 (generate_results): Ignore files with no lines.
2811 (release_function): New helper, broken out of ...
2812 (release_structures): ... here. Use it.
2813 (read_count_file): Adjust for new data file format.
2814 (output_lines): Use object_runs.
2815 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Obsolete.
2816 (struct gcov_ctr_info): Move definition.
2817 (struct gcov_fn_info): Add key field, use gcov_ctr_info for
2818 trailing array.
2819 (struct gcov_info): Add merge function array, remove mask and
2820 counts. Trailing array is array of pointers to function info.
2821 * coverage.c (struct function_list): Replace counter numbers with
2822 counter arrays. Add fndecl field. GTYify.
2823 (counts_entry): Remove chain workspace.
2824 (functions_head): GTYify.
2825 (prg_n_ctrs): Remove.
2826 (fn_v_ctrs): New.
2827 (tree_ctr_tables): Remove.
2828 (read_counts_file): Cope with blank entries and expect program
2829 summaries before functions. Don't warn on missing entries.
2830 (coverage_counter_alloc): Allocate individual function arrays.
2831 (tree_coverage_counter_ref, tree_coverage_counter_addr): Adjust
2832 for individual function arrays.
2833 (coverage_end_function): GTYify function list object. Finalize
2834 function's counter arrays.
2835 (build_var): New. Create a counter-related variable with
2836 appropriate linkage.
2837 (build_fn_info_type): Adjust for new runtime structure.
2838 (build_fn_info_value): Rename to ...
2839 (build_fn_info): ... here. Build new format data.
2840 (build_ctr_info_type, build_ctr_info_value): Remove.
2841 (build_info_type): New. Build new format data structure.
2842 (build_info): Adjust for new format data.
2843 (create_coverage): Likewise.
2844 * gcov-dump.c (tag_function): Recognize placeholders.
2845
2846 2011-11-07 Georg-Johann Lay <avr@gjlay.de>
2847
2848 * config/avr/constraints.md (Cm2): New constraint for int -2.
2849 * config/avr/avr.md (addqi3): Use it. New alternatives for +/-2.
2850 (*negqihi2): New insn.
2851
2852 2011-11-07 H.J. Lu <hongjiu.lu@intel.com>
2853
2854 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
2855 HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
2856
2857 2011-11-07 Jakub Jelinek <jakub@redhat.com>
2858
2859 * config/i386/i386.c (ix86_expand_builtin): If gather mask
2860 argument is known to have all high bits set, pass pc_rtx as
2861 second argument to the expander instead of op0.
2862 * config/i386/sse.md (*avx2_gathersi<mode>_2,
2863 *avx2_gatherdi<mode>_2): New patterns.
2864 * config/i386/avx2intrin.h (_mm256_i32gather_pd,
2865 _mm256_i64gather_pd, _mm256_i32gather_ps): Set mask using
2866 _mm256_cmp_pd with zero vector arguments and _CMP_EQ_OQ instead of
2867 _mm256_set1_pd.
2868
2869 PR tree-optimization/50789
2870 * tree-vect-stmts.c (process_use): Add force argument, avoid
2871 exist_non_indexing_operands_for_use_p check if true.
2872 (vect_mark_stmts_to_be_vectorized): Adjust callers. Handle
2873 STMT_VINFO_GATHER_P.
2874 (gen_perm_mask): New function.
2875 (perm_mask_for_reverse): Use it.
2876 (reverse_vec_element): Rename to...
2877 (permute_vec_elements): ... this. Add Y and MASK_VEC arguments,
2878 generalize for any permutations.
2879 (vectorizable_load): Adjust caller. Handle STMT_VINFO_GATHER_P.
2880 * target.def (TARGET_VECTORIZE_BUILTIN_GATHER): New hook.
2881 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_GATHER): Document it.
2882 * doc/tm.texi: Regenerate.
2883 * tree-data-ref.c (initialize_data_dependence_relation,
2884 compute_self_dependence): No longer static.
2885 * tree-data-ref.h (initialize_data_dependence_relation,
2886 compute_self_dependence): New prototypes.
2887 * tree-vect-data-refs.c (vect_check_gather): New function.
2888 (vect_analyze_data_refs): Detect possible gather load data refs.
2889 * tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
2890 (STMT_VINFO_GATHER_P): Define.
2891 (vect_check_gather): New prototype.
2892 * config/i386/i386-builtin-types.def: Add types for alternate
2893 gather builtins.
2894 * config/i386/sse.md (AVXMODE48P_DI): Remove.
2895 (VEC_GATHER_MODE): Rename mode_attr to...
2896 (VEC_GATHER_IDXSI): ... this.
2897 (VEC_GATHER_IDXDI, VEC_GATHER_SRCDI): New mode_attrs.
2898 (avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
2899 instead of <VEC_GATHER_MODE>.
2900 (avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
2901 <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
2902 on src and mask operands.
2903 (*avx2_gatherdi<mode>): Likewise. Use VEC_GATHER_MODE iterator
2904 instead of AVXMODE48P_DI.
2905 (avx2_gatherdi<mode>256, *avx2_gatherdi<mode>256): Removed.
2906 * config/i386/i386.c (enum ix86_builtins): Add
2907 IX86_BUILTIN_GATHERALTSIV4DF, IX86_BUILTIN_GATHERALTDIV8SF,
2908 IX86_BUILTIN_GATHERALTSIV4DI and IX86_BUILTIN_GATHERALTDIV8SI.
2909 (ix86_init_mmx_sse_builtins): Create those builtins.
2910 (ix86_expand_builtin): Handle those builtins and adjust expansions
2911 of other gather builtins.
2912 (ix86_vectorize_builtin_gather): New function.
2913 (TARGET_VECTORIZE_BUILTIN_GATHER): Define.
2914
2915 2011-11-07 Uros Bizjak <ubizjak@gmail.com>
2916
2917 * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
2918
2919 2011-11-07 Tristan Gingold <gingold@adacore.com>
2920
2921 * config.gcc (*-*-*vms*): Set c_target_objs, cxx_target_objs.
2922 * config/vms/t-vms: Add vms-c.o rule.
2923 * config/vms/vms-c.c: New file.
2924 * config/vms/vms-protos.h (vms_c_register_pragma): New prototype.
2925 * config/vms/vms.h (REGISTER_TARGET_PRAGMAS): Define.
2926
2927 2011-11-07 Tristan Gingold <gingold@adacore.com>
2928
2929 * config/alpha/vms.h (TARGET_OBJECT_SUFFIX,
2930 TARGET_EXECUTABLE_SUFFIX, TARGET_OS_CPP_BUILTINS,
2931 TARGET_ABI_OPEN_VMS, LONG_TYPE_SIZE, ADA_LONG_TYPE_SIZE,
2932 POINTER_SIZE, POINTERS_EXTEND_UNSIGNED): Move to config/vms/vms.h
2933 (SUBTARGET_OS_CPP_BUILTINS): Define.
2934 (TARGET_DEFAULT): Tune according to POINTER_SIZE.
2935 (MASK_RETURN_ADDR): Define in 64 bit mode.
2936 * config/ia64/vms.h: Likewise.
2937 * config/vms/vms.h: New file.
2938 * config/vms/vms64.h: New file.
2939 * config/alpha/vms64.h: Removed.
2940 * config/ia64/vms64.h: Removed.
2941 * config.gcc (alpha64-dec-*vms*, alpha*-dec-*vms*, ia64-hp-*vms*):
2942 Adjust for above change.
2943
2944 2011-11-07 Enkovich Ilya <ilya.enkovich@intel.com>
2945
2946 PR target/50962
2947 * config/i386/i386-protos.h (ix86_use_lea_for_mov): New.
2948 * config/i386/i386.c (ix86_use_lea_for_mov): Likewise.
2949 * config/i386/i386.md (movsi_internal): Emit lea if profitable.
2950 (movdi_internal_rex64): Likewise.
2951
2952 2011-11-07 Sergey Ostanevich <sergos.gnu@gmail.com>
2953
2954 PR rtl-optimization/47698
2955 * ifcvt.c (noce_operand_ok): Return false for mems with side effects.
2956
2957 2011-11-07 Tristan Gingold <gingold@adacore.com>
2958
2959 * common/config/alpha/alpha-common.c (alpha_option_init_struct):
2960 New function.
2961 (TARGET_OPTION_INIT_STRUCT): Define.
2962 * config/alpha/alpha.c (TARGET_MIN_ANCHOR_OFFSET)
2963 (TARGET_MAX_ANCHOR_OFFSET)
2964 (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Redefine.
2965
2966 2011-11-06 Quentin Neill <quentin.neill@amd.com>
2967
2968 Fix r180999, update ChangeLog
2969 * config.gcc: Add f16cintrin.h.
2970 * config/i386/f16cintrin.h: Add missing endif.
2971
2972 2011-11-06 Sebastian Huber <sebastian.huber@embedded-brains.de>
2973
2974 * config.gcc (arm*-*-rtemseabi*): New target.
2975 * config/arm/rtems-eabi.h: New.
2976 * config/arm/t-rtems-eabi: New.
2977
2978 2011-11-06 David S. Miller <davem@davemloft.net>
2979
2980 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): Delete.
2981 (zero_extend_v8qi_vis, zero_extend_v4hi_vis,
2982 *zero_extend_v8qi_<P:mode>_insn,
2983 *zero_extend_v4hi_<P:mode>_insn): Express using vec_merge
2984 and vec_duplicate instead of using an UNSPEC.
2985
2986 2011-11-07 Alan Modra <amodra@gmail.com>
2987
2988 PR target/30282
2989 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
2990 blockage for ABI_V4.
2991
2992 2011-11-06 Dave Korn <dave.korn.cygwin@gmail.com>
2993
2994 * config/i386/cygwin.h (LIBGCJ_SONAME): Updated to match recent
2995 libgcj version bump.
2996 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
2997
2998 2011-11-06 Eric Botcazou <ebotcazou@adacore.com>
2999
3000 * gcse.c: Adjust outdated comments throughout.
3001 (struct mem_conflict_info): New structure.
3002 (mems_conflict_for_gcse_p): Use it to communicate with caller.
3003 (load_killed_in_block_p): Pass it to note_stores.
3004 (hash_expr): Remove superfluous line break.
3005 (hash_scan_set): Rename PAT parameter into SET.
3006 (hash_scan_insn): Reorder cases.
3007 (canon_list_insert): Fix long line.
3008 (edge_list): Delete.
3009 (prune_expressions): Rename E local variable into EXPR.
3010 (compute_pre_data): Return struct edge_list * object.
3011 (pre_expr_reaches_here_p_work): Fix formatting.
3012 (process_insert_insn): Move around comment.
3013 (pre_edge_insert): Fix long line.
3014 (pre_insert_copies): Likewise.
3015 (gcse_emit_move_after): Swap SRC and DEST parameters.
3016 (pre_delete): Adjust call to gcse_emit_move_after.
3017 (pre_gcse): Take struct edge_list * parameter. Fix long line.
3018 (one_pre_gcse_pass): Use flag_gcse_lm condition for all routines.
3019 Use a local list of edges.
3020 (hoist_code): Fix long line. Adjust call to gcse_emit_move_after.
3021 (pre_ldst_expr_hash): Fix long line.
3022 (free_ldst_mems): Rename into...
3023 (free_ld_motion_mems): ...this.
3024 (first_ls_expr): Delete.
3025 (next_ls_expr): Likewise.
3026 (print_ldst_list): Do not use above two functions.
3027 (simple_mem): Adjust interface.
3028 (compute_ld_motion_mems): Fix formatting.
3029 (update_ld_motion_stores): Reuse local variable.
3030
3031 2011-11-06 Joseph Myers <joseph@codesourcery.com>
3032
3033 * c-decl.c (shadow_tag_warned, grokdeclarator): Handle _Alignas
3034 specifiers.
3035 (build_null_declspecs): Initialize align_log and alignas_p fields.
3036 (declspecs_add_alignas): New.
3037 * c-parser.c (c_token_starts_declspecs): Handle RID_ALIGNAS.
3038 (c_parser_declspecs): Handle _Alignas specifiers.
3039 (c_parser_alignas_specifier): New.
3040 (c_parser_alignof_expression): Diagnose alignof use for non-C1X.
3041 Diagnose _Alignof (expression).
3042 * c-tree.h (struct c_declspecs): Add align_log and alignas_p fields.
3043 (declspecs_add_alignas): Declare.
3044 * ginclude/stddef.h (max_align_t): Define for C1X and C++11.
3045 * ginclude/stdalign.h: New.
3046 * Makefile.in (USER_H): Add stdalign.h.
3047
3048 2011-11-06 Joern Rennecke <joern.rennecke@embecosm.com>
3049
3050 * regset.h (fixed_reg_set_regset): Declare.
3051 * dse.c: Include regset.h .
3052 (struct insn_info): Add member fixed_regs_live.
3053 (note_add_store_info): New typedef.
3054 (note_add_store): New function.
3055 (emit_inc_dec_insn_before): Expect arg to be of type insn_info_t.
3056 Use gen_add3_insn / gen_move_insn.
3057 Check new insn for unwanted clobbers before emitting it.
3058 (check_for_inc_dec): Rename to...
3059 (check_for_inc_dec_1:) ... this. Return bool. Take insn_info
3060 parameter. Changed all callers in file.
3061 (check_for_inc_dec, copy_fixed_regs): New functions.
3062 (scan_insn): Set fixed_regs_live field of insn_info.
3063 * rtl.h (check_for_inc_dec): Update prototype.
3064 * postreload.c (reload_cse_simplify): Take new signature of
3065 check_ind_dec into account.
3066 * reginfo.c (fixed_reg_set_regset): New variable.
3067 (init_reg_sets_1): Initialize it.
3068
3069 2011-11-06 Jakub Jelinek <jakub@redhat.com>
3070
3071 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0 don't remove
3072 any user labels.
3073
3074 2011-11-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3075
3076 * config/pa/pa.c (pa_hpux_init_libfuncs): Rename to pa_init_libfuncs.
3077 Remove dependence of declaration and target define on definition of
3078 HPUX_LONG_DOUBLE_LIBRARY. Update implementation.
3079
3080 2011-11-06 Andrew Macleod <amacleod@redhat.com>
3081 Richard Henderson <rth@redhat.com>
3082 Aldy Hernandez <aldyh@redhat.com>
3083
3084 Merged from cxx-mem-model.
3085
3086 * cppbuiltin.c (define__GNUC__): Define __ATOMIC memory models
3087 * coretypes.h (enum memmodel): New. enumerated memory model type.
3088 * Makefile.in (cppbuiltin.o) Add missing dependency on $(TREE_H)
3089 * genopinit,c (optabs): Add atomic direct optab handlers.
3090 * sync-builtins.def (BUILT_IN_ATOMIC_*): New builtins.
3091 * builtin-types.def (BT_CONST_VOLATILE_PTR,
3092 BT_FN_I{1,2,4,8,16}_CONST_VPTR_INT, BT_FN_VOID_VPTR_INT,
3093 BT_FN_BOOL_VPTR_INT, BT_FN_BOOL_SIZE_CONST_VPTR,
3094 BT_FN_I{1,2,4,8,16}_VPTR_I{1,2,4,8,16}_INT,
3095 BT_FN_VOID_VPTR_I{1,2,4,8,16}_INT, BT_FN_VOID_SIZE_VPTR_PTR_INT,
3096 BT_FN_VOID_SIZE_CONST_VPTR_PTR_INT, BT_FN_VOID_SIZE_VPTR_PTR_PTR_INT,
3097 BT_FN_BOOL_VPTR_PTR_I{1,2,4,8,16}_BOOL_INT_INT): New builtin types.
3098 * expr.h (expand_atomic_*): Add prototypes.
3099 (expand_{bool,val}_compare_and_swap): Remove prototypes.
3100 * c-typeck.c (build_function_call_vec): Don't reprocess __atomic
3101 parameters.
3102 * common.opt (Winvalid-memory-model): New warning flag.
3103 (finline-atomics): New. Flag to disable atomic inlining.
3104 * params.h (ALLOW_LOAD_DATA_RACES): New.
3105 (ALLOW_PACKED_LOAD_DATA_RACES): New.
3106 (ALLOW_PACKED_STORE_DATA_RACES): New.
3107 * params.def (PARAM_ALLOW_LOAD_DATA_RACES): New.
3108 (PARAM_ALLOW_PACKED_LOAD_DATA_RACES): New.
3109 (PARAM_ALLOW_PACKED_STORE_DATA_RACES): New.
3110 * builtins.c (is_builtin_name): Handle __atomic.
3111 (get_memmodel): New. Extract memory model.
3112 (expand_expr_force_mode): New. Factor out common code for ensuring an
3113 integer argument is in the proper mode.
3114 (expand_builtin_sync_operation): Remove ignore param. Always call
3115 expand_atomic_fetch_op instead of the old expanders.
3116 (expand_builtin_compare_and_swap,
3117 expand_builtin_sync_lock_test_and_set): Use expand_expr_force_mode,
3118 call atomic expanders instead of sync expanders.
3119 (expand_builtin_sync_lock_release): Call atomic_store expander.
3120 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
3121 expand_builtin_atomic_store, expand_builtin_atomic_fetch_op): New.
3122 (expand_builtin_atomic_exchange): New.
3123 (fold_builtin_atomic_always_lock_free,
3124 expand_builtin_atomic_always_lock_free,
3125 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
3126 New.
3127 (expand_builtin_mem_thread_fence, expand_builtin_atomic_thread_fence,
3128 expand_builtin_atomic_signal_fence): New.
3129 (expand_builtin_mem_signal_fence): New.
3130 (expand_builtin): Add cases for BUILT_IN_ATOMIC_*.
3131 (fold_builtin_2): Add cases for BUILT_IN_ATOMIC_{IS,ALWAYS}_LOCK_FREE.
3132 * optabs.h (DOI_atomic_*): Define new atomics.
3133 (atomic_*_optab): Define.
3134 (can_compare_and_swap_p, expand_atomic_compare_and_swap): New
3135 prototypes.
3136 * optabs.c (expand_sync_operation, expand_sync_fetch_operation): Remove.
3137 (expand_sync_lock_test_and_set): Remove.
3138 (expand_atomic_load, expand_atomic_store): New.
3139 (expand_atomic_exchange): New.
3140 (expand_atomic_compare_and_swap): New. Implements
3141 atomic_compare_exchange via compare and swap.
3142 (struct atomic_op_functions): Opcode table struct for fetch ops.
3143 (get_atomic_op_for_code): New. Return an opcode table entry.
3144 (maybe_emit_op): New. Try to emit a fetch op.
3145 (expand_atomic_fetch_op): New.
3146 (expand_val_compare_and_swap_1): Remove.
3147 (expand_val_compare_and_swap, expand_bool_compare_and_swap): Remove.
3148 (expand_atomic_compare_and_swap): Rename from
3149 expand_atomic_compare_exchange. Rewrite to return both success and
3150 oldval return values; expand via both atomic and sync optabs.
3151 (can_compare_and_swap_p): New.
3152 (expand_compare_and_swap_loop): Use expand_atomic_compare_and_swap.
3153 (maybe_gen_insn): Handle 7 and 8 operands.
3154 * omp-low.c (expand_omp_atomic_fetch_op): Don't test individual
3155 fetch_op optabs, only test can_compare_and_swap_p. Use __atomic
3156 builtins instead of __sync builtins.
3157 (expand_omp_atomic_pipeline): Use can_compare_and_swap_p.
3158 * doc/extend.texi: Document __atomic built-in functions.
3159 * doc/invoke.texi: Document data race parameters.
3160 * doc/md.texi: Document atomic patterns.
3161 * config/i386/i386.md (UNSPEC_MOVA): New.
3162 (UNSPECV_CMPXCHG): Split into ...
3163 (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2,
3164 UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4): New.
3165 * config/i386/sync.md (ATOMIC): New mode iterator.
3166 (atomic_load<ATOMIC>, atomic_store<ATOMIC>): New.
3167 (atomic_loaddi_fpu, atomic_storedi_fpu, movdi_via_fpu): New.
3168 (mem_thread_fence): Rename from memory_barrier.
3169 Handle the added memory model parameter.
3170 (mfence_nosse): Rename from memory_barrier_nosse.
3171 (sync_compare_and_swap<CASMODE>): Split into ...
3172 (atomic_compare_and_swap<SWI124>): this and ...
3173 (atomic_compare_and_swap<CASMODE>): this. Handle the new parameters.
3174 (atomic_compare_and_swap_single<SWI>): Rename from
3175 sync_compare_and_swap<SWI>; rewrite to use split unspecs.
3176 (atomic_compare_and_swap_double<DCASMODE>): Rename from
3177 sync_double_compare_and_swap<DCASMODE>; rewrite to use split unspecs.
3178 (*atomic_compare_and_swap_doubledi_pic): Rename from
3179 sync_double_compare_and_swapdi_pic; rewrite to use split unspecs.
3180 (atomic_fetch_add<SWI>): Rename from sync_old_add<SWI>; add memory
3181 model parameter.
3182 (*atomic_fetch_add_cmp<SWI>): Similarly.
3183 (atomic_add<SWI>, atomic<any_logic><SWI>): Similarly.
3184 (atomic_sub<SWI>): Similarly. Use x86_maybe_negate_const_int.
3185 (sync_lock_test_and_set<SWI>): Merge with ...
3186 (atomic_exchange<SWI>): ... this.
3187
3188 2011-11-6 Richard Guenther <rguenther@suse.de>
3189
3190 * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
3191
3192 2011-11-06 Ira Rosen <ira.rosen@linaro.org>
3193
3194 * tree-vectorizer.h (vectorizable_condition): Add argument.
3195 * tree-vect-loop.c (vectorizable_reduction): Fail for condition
3196 in SLP. Update calls to vectorizable_condition.
3197 * tree-vect-stmts.c (vect_is_simple_cond): Add basic block info to
3198 the arguments. Pass it to vect_is_simple_use_1.
3199 (vectorizable_condition): Add slp_node to the arguments. Support
3200 vectorization of basic blocks. Fail for reduction in SLP. Update
3201 calls to vect_is_simple_cond and vect_is_simple_use. Support SLP:
3202 call vect_get_slp_defs to get vector operands.
3203 (vect_analyze_stmt): Update calls to vectorizable_condition.
3204 (vect_transform_stmt): Likewise.
3205 * tree-vect-slp.c (vect_create_new_slp_node): Handle COND_EXPR.
3206 (vect_get_and_check_slp_defs): Handle COND_EXPR. Allow pattern
3207 def stmts.
3208 (vect_build_slp_tree): Handle COND_EXPR.
3209 (vect_analyze_slp_instance): Push pattern statements to root node.
3210 (vect_get_constant_vectors): Fix comments. Handle COND_EXPR.
3211
3212 2011-11-05 David S. Miller <davem@davemloft.net>
3213
3214 * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec.
3215 (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders.
3216 (*zero_extend_v8qi_<P:mode>_insn,
3217 *zero_extend_v4hi_<P:mode>_insn): New insns.
3218 * config/sparc/sparc.c (vector_init_move_words,
3219 vector_init_prepare_elts, sparc_expand_vector_init_vis2,
3220 sparc_expand_vector_init_vis1): New functions.
3221 (vector_init_bshuffle): Rewrite to handle more cases and make use
3222 of locs[] array prepared by vector_init_prepare_elts.
3223 (vector_init_fpmerge, vector_init_faligndata): Delete.
3224 (sparc_expand_vector_init): Rewrite using new infrastructure.
3225
3226 2011-11-05 Joern Rennecke <joern.rennecke@embecosm.com>
3227
3228 * config.gcc (epiphany-*-*): New architecture.
3229 (epiphany-*-elf): New configuration.
3230 * config/epiphany, common/config/epiphany : New directories.
3231 * doc/extend.texi (disinterrupt attribute): Add Epiphany.
3232 (interrupt attribute): Add Epiphany.
3233 (long_call, short_call attribute): Add Epiphany.
3234 * doc/invoke.texi (Options): Add Epiphany options.
3235 * doc/md.texi (Machine Constraints): Add Epiphany constraints.
3236 * doc/install.texi (Options specification):
3237 Add --with-stack-offset=@var{num} description.
3238 (host/target specific issues): Add epiphany-*-elf.
3239 * doc/contrib.texi (Contributors): Mention Epiphany port.
3240
3241 2011-11-05 Jakub Jelinek <jakub@redhat.com>
3242
3243 PR tree-optimization/50693
3244 * tree-cfg.c (gimple_can_merge_blocks_p): Allow merging with
3245 non-forced user labels.
3246 (gimple_merge_blocks): Turn non-forced user labels into
3247 debug bind stmt with the label as first operand and reset value.
3248 (gimple_duplicate_bb): Don't duplicate label debug stmts.
3249 * dwarf2out.c (gen_label_die): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
3250 * final.c (final_scan_insn): Likewise.
3251 (rest_of_clean_state): Don't dump NOTE_INSN_DELETED_DEBUG_LABEL.
3252 * var-tracking.c (debug_label_num): New variable.
3253 (delete_debug_insns): Don't delete DEBUG_INSNs for LABEL_DECLs,
3254 instead turn them into NOTE_INSN_DELETED_DEBUG_LABEL notes.
3255 * cfglayout.c (skip_insns_after_block, duplicate_insn_chain): Handle
3256 NOTE_INSN_DELETED_DEBUG_LABEL.
3257 (duplicate_insn_chain): Don't duplicate LABEL_DECL DEBUG_INSNs.
3258 * insn-notes.def (DELETED_DEBUG_LABEL): New note kind.
3259 * print-rtl.c (print_rtx): Handle NOTE_INSN_DELETED_DEBUG_LABEL.
3260 * gengtype.c (adjust_field_rtx_def): Likewise.
3261 * config/i386/i386.c (ix86_output_function_epilogue): For MachO
3262 clear CODE_LABEL_NUMBER of NOTE_INSN_DELETED_DEBUG_LABEL
3263 if their are at the end of function and nop hasn't been emitted.
3264 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Likewise.
3265
3266 2011-11-05 Georg-Johann Lay <avr@gjlay.de>
3267
3268 PR rtl-optimization/50448
3269 * cprop.c (try_replace_reg): Also try to replace uses of FROM that
3270 appear in SET_DEST.
3271
3272 2011-11-05 Peter Dufault <dufault@hda.com>,
3273 Sebastian Huber <sebastian.huber@embedded-brains.de>
3274
3275 * config/rs6000/rtems.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
3276 Extend rs6000_spe handling.
3277
3278 2011-11-05 Ralf Corsépius <ralf.corsepius@rtems.org>
3279
3280 * config/rs6000/t-rtems: Add -mcpu=8540/-mfloat-gprs=double multilib.
3281 Remove -mcpu=601 multilib.
3282 Remove -Dmpc8260 multilib.
3283 * config/rs6000/rtems.h: Allow --float-gprs=... to override grps
3284 on E500 targets.
3285
3286 2011-11-05 Quentin Neill <quentin.neill@amd.com>
3287
3288 Piledriver f16cintrin.h fix.
3289 * config/i386/f16cintrin.h: Contents moved from immintrin.h.
3290 * config/i386/immintrin.h: Include f16cintrin.h.
3291 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add f16cintrin.h.
3292
3293
3294 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
3295
3296 PR c++/50608
3297 * c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
3298 to fold_offsetof.
3299 * c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
3300
3301 2011-11-04 Alan Modra <amodra@gmail.com>
3302
3303 * reload1.c (gen_reload): Don't use REGNO on SUBREGs.
3304 * print-rtl.c (print_rtx): Don't segfault on negative regno.
3305
3306 2011-11-04 David S. Miller <davem@davemloft.net>
3307
3308 PR target/49965
3309 * config/sparc/sparc.c (sparc_expand_conditional_move): Handle the
3310 fact that sparc_emit_float_lib_cmp modifies the comparison in
3311 operands[1].
3312
3313 2011-11-04 Ralf Corsépius <ralf.corsepius@rtems.org>
3314
3315 * config/lm32/t-rtems: New.
3316 * config.gcc (lm32-*-rtems*): Add t-rtems.
3317
3318 2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
3319
3320 PR target/50979
3321 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
3322
3323 2011-11-04 Jiangning Liu <jiangning.liu@arm.com>
3324
3325 PR rtl-optimization/38644
3326 * config/arm/arm.c (thumb1_expand_epilogue): Add memory barrier
3327 for epilogue having stack adjustment.
3328
3329 2011-11-04 Georg-Johann Lay <avr@gjlay.de>
3330
3331 PR target/50931
3332 * config/avr/avr-modes.def: New file defining PSImode.
3333 * config/avr/avr-c.c (__INT24_MAX__, __INT24_MIN__,
3334 __UINT24_MAX__): New built-in defines.
3335 * config/avr/avr.md (adjust_len): Add tstpsi, mov24, reload_in24,
3336 ashlpsi, ashrpsi, lshrpsi.
3337 (QISI, QIDI, HISI, HIDI, MPUSH, rotx, rotsmode): Add PSI.
3338 (MOVMODE): New mode iterator.
3339 (movpsi): New expander.
3340 (movqi, movhi, movsi, movsf, movpsi): Write as one using MOVMODE.
3341 (*reload_inpsi, *movpsi): New insns.
3342 (*reload_inpsi): New RTL peephole.
3343 (addpsi3, *addpsi3_zero_extend.qi, *addpsi3_zero_extend.hi,
3344 *addpsi3_sign_extend.hi): New insns.
3345 (subpsi3, *subpsi3_zero_extend.qi, *subpsi3_zero_extend.hi,
3346 *subpsi3_sign_extend.hi): New insns.
3347 (divmodpsi4, udivmodpsi4): New define insn-and-split.
3348 (*divmodpsi4_call, *udivmodpsi4_call): New insns.
3349 (andpsi3, iorpsi3, xorpsi3): New insns.
3350 (*rotlpsi2.1, *rotlpsi2.23): New insns.
3351 (*rotw<mode>): Insn condition only allow even-sized modes.
3352 (*rotb<mode>): Insn condition allows odd-sized modes.
3353 (ashlpsi3, ashrpsi3, lshrpsi3, *addpsi3.lt0): New insns.
3354 (negpsi2, one_cmplpsi2): New insns.
3355 (extendqipsi2, extendhipsi2, extendpsisi2): New insns.
3356 (zero_extendqipsi2, zero_extendhipsi2, zero_extendpsisi2): New
3357 insn-and-splits.
3358 (*cmppsi, *negated_tstpsi, *reversed_tstpsi): New insns.
3359 (cbranchpsi4): New expander.
3360 * config/avr/constraints.md (Ca3, Co3, Cx3): New constraints.
3361 * config/avr/avr-protos.h (avr_out_tstpsi, avr_out_movpsi,
3362 avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3,
3363 avr_out_reload_inpsi): New prototypes.
3364
3365 * config/avr/avr.c (TARGET_SCALAR_MODE_SUPPORTED_P): Define to...
3366 (avr_scalar_mode_supported_p): ...this new static function.
3367 (avr_asm_len): Always return "".
3368 (avr_out_load_psi, avr_out_store_psi): New static functions.
3369 (avr_out_movpsi, avr_out_reload_inpsi): New functions.
3370 (avr_out_tstpsi): New function.
3371 (avr_out_ashlpsi3, avr_out_ashrpsi3, avr_out_lshrpsi3): New functions.
3372 (avr_out_plus_1, output_reload_in_const): Handle 3-byte types.
3373 (avr_simplify_comparison_p): Ditto.
3374 (adjust_insn_length): Handle ADJUST_LEN_RELOAD_IN24,
3375 ADJUST_LEN_MOV24, ADJUST_LEN_TSTPSI, ADJUST_LEN_ASHLPSI,
3376 ADJUST_LEN_ASHRPSI, ADJUST_LEN_LSHRPSI.
3377 (avr_rtx_costs_1): Report PSI costs.
3378 (avr_libcall_value): Handle odd-sized parameters.
3379 (avr_init_builtin_int24): New static function to define built-in
3380 24-bit types __int24 and __uint24.
3381 (avr_init_builtins): Use it.
3382
3383 2011-11-04 Thomas Doerfler <thomas.doerfler@embedded-brains.de>
3384
3385 PR target/50989
3386 * config/arm/rtems-elf.h, config/arm/t-rtems: Add optional
3387 support for VFP floating point model.
3388
3389 2011-11-04 Tristan Gingold <gingold@adacore.com>
3390
3391 * config/alpha/vms.h (ASM_OUTPUT_DEF): Do not switch section.
3392
3393 2011-11-04 Ira Rosen <ira.rosen@linaro.org>
3394
3395 Unrevert:
3396 2011-10-24 Ira Rosen <ira.rosen@linaro.org>
3397
3398 PR tree-optimization/50730
3399 * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
3400 analysis if encountered unsupported data-ref.
3401
3402 2011-11-04 Jakub Jelinek <jakub@redhat.com>
3403
3404 * config/i386/i386.c (ix86_expand_vector_convert_uns_vsivsf): New
3405 function.
3406 * config/i386/i386-protos.h (ix86_expand_vector_convert_uns_vsivsf):
3407 New prototype.
3408 * config/i386/sse.md (floatuns<sseintvecmodelower><mode>2): Use it.
3409 For floatunsv8siv8sf2 require TARGET_AVX2.
3410
3411 * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): Add
3412 XORP argument. Subtract 0x1p31 instead of 0x1p32. Use normal
3413 signalling comparison instead of non-signalling. Store into
3414 *XORP pseudo holding 0x80000000 integers if 0x1p31 has been
3415 subtracted and 0 otherwise.
3416 * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si):
3417 Adjust prototype.
3418 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Enable
3419 already for TARGET_SSE2. Xor in vector initialized by
3420 ix86_expand_adjust_ufix_to_sfix_si at the end.
3421 (vec_pack_ufix_trunc_<mode>): Likewise.
3422
3423 * tree-vect-stmts.c (vectorizable_conversion): Rewritten to handle
3424 not just FLOAT_EXPR and FIX_TRUNC_EXPR, but also CONVERT_EXPR_CODE_P,
3425 WIDEN_MULT_EXPR and WIDEN_LSHIFT_EXPR to handle what
3426 vectorizable_type_demotion and vectorizable_type_promotion did.
3427 Additionally handle FLOAT_EXPR and FIX_TRUNC_EXPR where the integer
3428 is {,un}signed {char,short}.
3429 (vect_create_vectorized_demotion_stmts): Fix comment typo. For
3430 recursive calls unconditionally use VEC_PACK_TRUNC_EXPR.
3431 Push vec_dest back to the vec_dsts vector at the end.
3432 (vect_create_vectorized_promotion_stmts): Don't recurse, do just
3433 one step. Removed multi_step_cvt, vec_dsts, slp_node and
3434 prev_stmt_info arguments, add vec_dest argument. Push always
3435 into vec_tmp, not just when multi_step_cvt != 0, replace *vec_oprdn0
3436 with vec_tmp at the end after freeing old *vec_oprnd0 vector.
3437 (vectorizable_type_demotion, vectorizable_type_promotion): Removed.
3438 (vect_analyze_stmt): Don't call vectorizable_type_demotion and
3439 vectorizable_type_promotion. Call vectorizable_conversion even
3440 for SLP bb vectorization.
3441 (vect_transform_stmt): Call vectorizable_conversion instead of
3442 vectorizable_type_demotion and vectorizable_type_promotion.
3443 (supportable_widening_operation): Clear *multi_step_cvt first,
3444 simplify c1/c2 computation, free *interm_types vector on failure.
3445 (supportable_narrowing_operation): Clear *multi_step_cvt first,
3446 free *interm_types vector on failure, handle multi-step
3447 FIX_TRUNC_EXPR.
3448
3449 2011-11-04 Tristan Gingold <gingold@adacore.com>
3450
3451 * config/alpha/alpha.c (alpha_write_linkage): Remove fundecl
3452 argument. Conditionally generate crash debug info. Adjust
3453 for alpha_funcs_tree removal.
3454 (machine_function): Add links field.
3455 (alpha_start_function): Conditionally generate crash debug info.
3456 (alpha_end_function): Adjust call to alpha_write_linkage.
3457 (alpha_funcs): Remove.
3458 (links_kind): Remove.
3459 (alpha_links): Remove num, target and lkind field. Add func field.
3460 (alpha_links_tree): Remove.
3461 (alpha_funcs_tree): Remove.
3462 (alpha_need_linkage): Remove.
3463 (alpha_use_linkage): Change prototype. Adjust.
3464 (alpha_write_one_linkage): Use ASM_OUTPUT_INTERNAL_LABEL.
3465 Use SYMBOL_REF_EXTERNAL_P and SYMBOL_REF_LOCAL_P macro.
3466 * config/alpha/alpha-protos.h (alpha_use_linkage): Update.
3467 (alpha_need_linkage): Remove.
3468 * config/alpha/alpha.md: Update calls to alpha_use_linkage.
3469 Adjust calls to alpha_need_linkage.
3470
3471 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
3472
3473 * sched-vis.c (print_value): Handle STRICT_LOW_PART.
3474
3475 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
3476
3477 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
3478 rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
3479 btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
3480
3481 2011-11-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3482
3483 PR target/50978
3484 * config/arm/t-bpabi: New file.
3485 * config.gcc (arm*-*-linux*): Add arm/t-bpabi to tmake_file for
3486 arm*-*-linux-*eabi.
3487 (arm*-*-uclinux*): Add arm/t-bpabi to tmake_file for
3488 arm*-*-uclinux*eabi.
3489 (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi to tmake_file
3490 for arm*-*-eabi*.
3491
3492 2011-11-03 Michael Matz <matz@suse.de>
3493
3494 PR bootstrap/50857
3495 * configure.ac: Check for -fno-exceptions -fno-rtti.
3496 * configure: Regenerate.
3497 * Makefile.in (NOEXCEPTION_FLAGS): New flag.
3498 (ALL_CXXFLAGS): Use it.
3499
3500 2011-11-03 Uros Bizjak <ubizjak@gmail.com>
3501
3502 * config/i386/i386.md: Use {} for multi-line preparation statements.
3503
3504 2011-11-03 Eric Botcazou <ebotcazou@adacore.com>
3505
3506 * config/sparc/sparc.md (movtf_insn_sp32_no_fpu): Consolidate into...
3507 (movtf_insn_sp32): ...this.
3508 (movtf_insn_sp64_no_fpu): Consolidate into...
3509 (movtf_insn_sp64): ...this.
3510 (movtf_insn_sp64_hq): Do not test TARGET_FPU.
3511 * config/sparc/sparc.c (sparc_legitimate_address_p): Likewise.
3512
3513 2011-11-03 Tristan Gingold <gingold@adacore.com>
3514
3515 * config/vms/vms.c (vms_patch_builtins): Fix typo.
3516
3517 2011-11-03 Richard Guenther <rguenther@suse.de>
3518
3519 PR lto/44965
3520 * lto-opts.c: Re-implement.
3521 * lto-streamer.h (lto_register_user_option): Remove.
3522 (lto_read_file_options): Likewise.
3523 (lto_reissue_options): Likewise.
3524 (lto_clear_user_options): Likewise.
3525 (lto_clear_file_options): Likewise.
3526 * opts-global.c (post_handling_callback): Remove.
3527 (set_default_handlers): Do not set post_handling_callback.
3528 (decode_options): Remove LTO specific code.
3529 * lto-wrapper.c (merge_and_complain): New function.
3530 (run_gcc): Read all input file options and
3531 prepend a merged set before the linker driver options.
3532 * gcc.c (driver_post_handling_callback): Remove.
3533 (set_option_handlers): Do not set post_handling_callback.
3534 * opts-common.c (handle_option): Do not call post_handling_callback.
3535 * opts.h (struct cl_option_handlers): Remove post_handling_callback.
3536
3537 2011-11-03 Richard Guenther <rguenther@suse.de>
3538
3539 * collect2.c (main): Guard object_nbr variable with TARGET_AIX_VERSION.
3540
3541 2011-11-03 Martin Jambor <mjambor@suse.cz>
3542
3543 * ipa-prop.c (type_change_info): New fields offset, object,
3544 known_current_type and multiple_types_encountered.
3545 (extr_type_from_vtbl_ptr_store): New function.
3546 (check_stmt_for_type_change): Use it, set multiple_types_encountered if
3547 the result is different from the previous one.
3548 (detect_type_change): Renamed to detect_type_change_1. New parameter
3549 comp_type. Set up new fields in tci, build known type jump
3550 functions if the new type can be identified.
3551 (detect_type_change): New function.
3552 * tree.h (DECL_CONTEXT): Comment new use.
3553
3554 2011-11-03 Richard Guenther <rguenther@suse.de>
3555
3556 PR lto/48217
3557 * lto-wrapper.c (get_options_from_collect_gcc_options): Properly
3558 decode an encoded literal '.
3559
3560 2011-11-03 Tristan Gingold <gingold@adacore.com>
3561
3562 * collect2.c (main): Add support of -f (response file) on AIX.
3563
3564 2011-11-03 Ira Rosen <ira.rosen@linaro.org>
3565
3566 PR tree-optimization/50912
3567 * tree-vectorizer.h (slp_void_p): New.
3568 (struct _slp_tree): Replace left and right with children. Update
3569 documentation.
3570 (struct _slp_oprnd_info): New.
3571 (vect_get_vec_defs): Declare.
3572 (vect_get_slp_defs): Update arguments.
3573 * tree-vect-loop.c (vect_create_epilog_for_reduction): Call
3574 vect_get_vec_defs instead of vect_get_slp_defs.
3575 (vectorizable_reduction): Likewise.
3576 * tree-vect-stmts.c (vect_get_vec_defs): Remove static, add argument.
3577 Update call to vect_get_slp_defs.
3578 (vectorizable_conversion): Update call to vect_get_vec_defs.
3579 (vectorizable_assignment, vectorizable_shift,
3580 vectorizable_operation): Likewise.
3581 (vectorizable_type_demotion): Call vect_get_vec_defs instead of
3582 vect_get_slp_defs.
3583 (vectorizable_type_promotion, vectorizable_store): Likewise.
3584 (vect_analyze_stmt): Fix typo.
3585 * tree-vect-slp.c (vect_free_slp_tree): Update SLP tree traversal.
3586 (vect_print_slp_tree, vect_mark_slp_stmts,
3587 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
3588 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
3589 vect_schedule_slp_instance): Likewise.
3590 (vect_create_new_slp_node): New.
3591 (vect_create_oprnd_info, vect_free_oprnd_info): Likewise.
3592 (vect_get_and_check_slp_defs): Pass information about defs using
3593 oprnds_info, allow any number of operands.
3594 (vect_build_slp_tree): Likewise. Update calls to
3595 vect_get_and_check_slp_defs. Fix comments.
3596 (vect_analyze_slp_instance): Move node creation to
3597 vect_create_new_slp_node.
3598 (vect_get_slp_defs): Allow any number of operands.
3599
3600 2011-11-02 Peter Bergner <bergner@vnet.ibm.com>
3601 Iain Sandoe <iains@gcc.gnu.org>
3602
3603 * config/rs6000/rs6000.c (USE_HIDDEN_LINKONCE): New define.
3604 (get_ppc476_thunk_name): Use it.
3605 (rs6000_code_end): Likewise.
3606 (macho_branch_islands): Fix typo.
3607
3608 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
3609 Jason Merrill <jason@redhat.com>
3610
3611 PR c++/50810
3612 * configure.ac: Add -Wno-narrowing to warning options.
3613 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
3614
3615 2011-11-02 Eric Botcazou <ebotcazou@adacore.com>
3616
3617 PR target/50945
3618 * config/sparc/sparc.md (movsf_insn): Reindent constraints.
3619 (movdf_insn_sp32): Likewise. Remove redundant G constraint.
3620 (movdf_insn_sp64): Likewise.
3621 (DFmode splitter): Do not test TARGET_FPU.
3622 (movtf_insn_sp32): Reindent constraints.
3623 (movtf_insn_sp32_no_fpu): Likewise.
3624 (movtf_insn_sp64): Likewise.
3625 (movtf_insn_sp64_hq): Likewise.
3626 (movtf_insn_sp64_no_fpu): Likewise.
3627
3628 2011-11-02 Paolo Carlini <paolo.carlini@oracle.com>
3629
3630 PR c++/50956
3631 * builtins.c (fold_builtin_memchr): Fix cast.
3632
3633 2011-11-02 Teresa Johnson <tejohnson@google.com>
3634
3635 * config/i386/predicates.md (promotable_binary_operator): Add minus
3636 to the list of promotable operators.
3637
3638 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3639
3640 * gthr-single.h, gthr.h: Move to ../libgcc.
3641 * gthr-aix.h: Move to ../libgcc/config/rs6000.
3642 * gthr-dce.h: Move to ../libgcc/config/pa.
3643 * gthr-lynx.h: Move to ../libgcc/config.
3644 * gthr-mipssde.h: Move to ../libgcc/config/mips.
3645 * gthr-posix.h: Move to ../libgcc/config.
3646 * gthr-rtems.h: Likewise.
3647 * gthr-tpf.h: Move to ../libgcc/config/s390.
3648 * gthr-vxworks.h: Move to ../libgcc/config.
3649 * gthr-win32.h: Move to ../libgcc/config/i386.
3650 * configure.ac (gthread_flags): Remove
3651 (gthr-default.h): Don't create.
3652 (thread_file): Don't substitute.
3653 * configure: Regenerate.
3654 * Makefile.in (GCC_THREAD_FILE): Remove.
3655 (GTHREAD_FLAGS): Remove.
3656 (libgcc.mvars): Remove GTHREAD_FLAGS.
3657 * config/t-vxworks (EXTRA_HEADERS): Remove.
3658
3659 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3660 Paolo Bonzini <bonzini@gnu.org>
3661
3662 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
3663 * configure: Regenerate.
3664 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
3665 (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
3666 (libgcc_tm.h, cs-libgcc_tm.h): Remove.
3667 (clean): Remove libgcc_tm.h
3668 * mkconfig.sh: Don't include libgcc_tm.h in tm.h.
3669 * config.gcc (libgcc_tm_file): Remove.
3670 (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
3671 (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
3672 (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
3673 (avr-*-rtems*): Likewise.
3674 (avr-*-*): Likewise.
3675 (frv-*-elf): Likewise.
3676 (frv-*-*linux*): Likewise.
3677 (h8300-*-rtems*): Likewise.
3678 (h8300-*-elf*): Likewise.
3679 (i[34567]86-*-darwin*): Likewise.
3680 (x86_64-*-darwin*): Likewise.
3681 (rx-*-elf*): Likewise.
3682 (tic6x-*-elf): Likewise.
3683 (tic6x-*-uclinux): Likewise.
3684 (i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
3685
3686 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3687
3688 * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS)
3689 (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA)
3690 (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET)
3691 (INCLUDES_FOR_TARGET): Remove.
3692 (LIBGCC2_CFLAGS): Don't export.
3693 (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify):
3694 Remove.
3695 (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies.
3696 (libgcc.mvars): Likewise.
3697 Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST,
3698 LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS,
3699 TARGET_LIBGCC2_CFLAGS.
3700 Emit GTHREAD_FLAGS.
3701 * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc.
3702 * config/darwin-64.c: Move to ../libgcc/config.
3703 * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c,
3704 config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c,
3705 config/udivmodsi4.c: Move to ../libgcc/config.
3706 * config/gthr-posix.c: Move to ../libgcc/config/alpha.
3707 * config/memcmp.c, config/memcpy.c, config/memmove.c,
3708 config/memset.c: Move to ../libgcc/config.
3709 * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove.
3710 * config/t-freebsd: Remove.
3711 * config/t-freebsd-thread: Move to ../libgcc/config.
3712 * config/t-libgcc-pic: Move to ../libgcc/config.
3713 * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove.
3714 * config/t-linux: Remove.
3715 * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
3716 Remove.
3717 * config/t-openbsd-thread: Move to ../libgcc/config.
3718 * config/t-rtems (LIBGCC2_INCLUDES): Remove.
3719 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove.
3720 * config/t-svr4: Remove.
3721 * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS)
3722 (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove.
3723 * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config.
3724 * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S.
3725 * config/alpha/t-alpha, config/alpha/t-ieee: Remove.
3726 * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove.
3727 * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha.
3728 * config/arm/bpabi.c, config/arm/unaligned-funcs.c,
3729 config/arm/fp16.c, config/arm/linux-atomic.c,
3730 config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm.
3731 * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC)
3732 (TARGET_LIBGCC2_CFLAGS): Remove.
3733 * config/arm/t-bpabi, config/arm/t-linux: Remove.
3734 * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS)
3735 (LIB2FUNCS_STATIC_EXTRA): Remove.
3736 * config/arm/t-netbsd: Remove.
3737 * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC)
3738 (TARGET_LIBGCC2_CFLAGS): Remove.
3739 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove.
3740 * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC)
3741 (TARGET_LIBGCC2_CFLAGS): Remove.
3742 * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS)
3743 (LIBGCC, INSTALL_LIBGCC): Remove.
3744 * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove.
3745 * config/bfin/t-bfin-linux: Likewise.
3746 * config/bfin/t-bfin-uclinux: Likewise.
3747 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
3748 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
3749 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
3750 config/c6x/ltf.c: Move to ../libgcc/config/c6x.
3751 * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove.
3752 * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove.
3753 * config/cris/arit.c: Move to ../libgcc/config/cris.
3754 * config/cris/cris_abi_symbol.c: Remove.
3755 * config/cris/cris.h: Remove obsolete comment.
3756 * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S.
3757 * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC)
3758 ($(LIB2FUNCS_EXTRA)): Remove.
3759 * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC)
3760 (LIBGCC): Remove.
3761 * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
3762 * config/fr30/t-fr30: Remove.
3763 * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
3764 config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c,
3765 config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move
3766 to ../libgcc/config/frv.
3767 * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
3768 (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c)
3769 (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove.
3770 * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
3771 * config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
3772 config/h8300/fixunssfsi.c, config/h8300/parityhi2.c,
3773 config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300.
3774 * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS)
3775 (LIBGCC, INSTALL_LIBGCC): Remove.
3776 * config/i386/gthr-win32.c: Move to ../libgcc/config/i386.
3777 * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove.
3778 * config/i386/t-cygwin: Remove.
3779 * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
3780 (LIB2FUNCS_EXCLUDE): Remove.
3781 * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA)
3782 (LIBGCC, INSTALL_LIBGCC): Remove.
3783 * config/i386/t-gthr-win32: Move to ../libgcc/config/i386.
3784 * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove.
3785 * config/i386/t-mingw-w32: Likewise.
3786 * config/i386/t-mingw-w64: Likewise.
3787 * config/i386/t-openbsd: Likewise.
3788 * config/i386/t-nto: Remove.
3789 * config/ia64/quadlib.c: Move to ../libgcc/config/ia64.
3790 * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
3791 (quadlib.c): Remove.
3792 * config/ia64/t-ia64: Remove comment.
3793 * config/iq2000/lib2extra-funcs.c: Move to
3794 ../libgcc/config/iq2000/lib2funcs.c.
3795 * config/iq2000/t-iq2000: Remove.
3796 * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c.
3797 * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c.
3798 * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove.
3799 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove.
3800 * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC)
3801 (INSTALL_LIBGCC): Remove.
3802 * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k.
3803 * config/m68k/t-floatlib: Remove.
3804 * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove.
3805 * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove.
3806 Fix typo.
3807 (LIBGCC, INSTALL_LIBGCC): Remove.
3808 * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c.
3809 * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c.
3810 * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove.
3811 * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC)
3812 (INSTALL_LIBGCC): Remove.
3813 * config/mips/t-isa3264: Likewise.
3814 * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove.
3815 * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC)
3816 (INSTALL_LIBGCC): Remove.
3817 * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove.
3818 * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC)
3819 (INSTALL_LIBGCC): Remove.
3820 * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS)
3821 (LIB2FUNCS_STATIC_EXTRA): Remove.
3822 * config/mips/vr4120-div.S: Move to ../libgcc/config/mips.
3823 * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove.
3824 * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove.
3825 * config/pa/fptr.c, config/pa/linux-atomic.c: Move to
3826 ../libgcc/config/pa.
3827 * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S.
3828 * config/pa/quadlib.c: Move to ../libgcc/config/pa.
3829 * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove.
3830 * config/pa/t-linux, config/pa/t-linux64: Remove.
3831 * config/pa/t-pa-hpux, config/pa/t-pa-hpux10,
3832 config/pa/t-pa-hpux11, config/pa/t-pa64: Remove.
3833 * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA):
3834 Remove.
3835 * config/picochip/libgccExtras: Move to ../libgcc/config/picochip.
3836 * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET)
3837 (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove.
3838 * config/rs6000/crtresfpr.asm: Move to
3839 ../libgcc/config/rs6000/crtresfpr.S.
3840 * config/rs6000/crtresgpr.asm: Move to
3841 ../libgcc/config/rs6000/crtresgpr.S.
3842 * config/rs6000/crtresxfpr.asm: Move to
3843 ../libgcc/config/rs6000/crtresxfpr.S.
3844 * config/rs6000/crtresxgpr.asm: Move to
3845 ../libgcc/config/rs6000/crtresxgpr.S.
3846 * config/rs6000/crtsavfpr.asm: Move to
3847 ../libgcc/config/rs6000/crtsavfpr.S.
3848 * config/rs6000/crtsavgpr.asm: Move to
3849 ../libgcc/config/rs6000/crtsavgpr.S.
3850 * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000.
3851 * config/rs6000/darwin-fpsave.asm: Move to
3852 ../libgcc/config/rs6000/darwin-fpsave.S.
3853 * config/rs6000/darwin-gpsave.asm: Move to
3854 ../libgcc/config/rs6000/darwin-gpsave.S.
3855 * config/rs6000/darwin-tramp.asm: Move to
3856 ../libgcc/config/rs6000/darwin-tramp.S.
3857 * config/rs6000/darwin-vecsave.asm: Move to
3858 ../libgcc/config/rs6000/darwin-vecsave.S.
3859 * config/rs6000/darwin-world.asm: Move to
3860 ../libgcc/config/rs6000/darwin-world.S.
3861 * config/rs6000/e500crtres32gpr.asm: Move to
3862 ../libgcc/config/rs6000/e500crtres32gpr.S.
3863 * config/rs6000/e500crtres64gpr.asm: Move to
3864 ../libgcc/config/rs6000/e500crtres64gpr.S.
3865 * config/rs6000/e500crtres64gprctr.asm: Move to
3866 ../libgcc/config/rs6000/e500crtres64gprctr.S.
3867 * config/rs6000/e500crtrest32gpr.asm: Move to
3868 ../libgcc/config/rs6000/e500crtrest32gpr.S.
3869 * config/rs6000/e500crtrest64gpr.asm: Move to
3870 ../libgcc/config/rs6000/e500crtrest64gpr.S.
3871 * config/rs6000/e500crtresx32gpr.asm: Move to
3872 ../libgcc/config/rs6000/e500crtresx32gpr.S.
3873 * config/rs6000/e500crtresx64gpr.asm: Move to
3874 ../libgcc/config/rs6000/e500crtresx64gpr.S.
3875 * config/rs6000/e500crtsav32gpr.asm: Move to
3876 ../libgcc/config/rs6000/e500crtsav32gpr.S.
3877 * config/rs6000/e500crtsav64gpr.asm: Move to
3878 ../libgcc/config/rs6000/e500crtsav64gpr.S.
3879 * config/rs6000/e500crtsav64gprctr.asm: Move to
3880 ../libgcc/config/rs6000/e500crtsav64gprctr.S.
3881 * config/rs6000/e500crtsavg32gpr.asm: Move to
3882 ../libgcc/config/rs6000/e500crtsavg32gpr.S.
3883 * config/rs6000/e500crtsavg64gpr.asm: Move to
3884 ../libgcc/config/rs6000/e500crtsavg64gpr.S.
3885 * config/rs6000/e500crtsavg64gprctr.asm: Move to
3886 ../libgcc/config/rs6000/e500crtsavg64gprctr.S.
3887 * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S.
3888 * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA)
3889 (TARGET_LIBGCC2_CFLAGS): Remove.
3890 * config/rs6000/t-aix52: Likewise.
3891 * config/rs6000/t-darwin: Remove.
3892 * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS)
3893 (LIB2FUNCS_EXTRA): Remove.
3894 * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove.
3895 * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove.
3896 * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC)
3897 (INSTALL_LIBGCC): Remove.
3898 * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA)
3899 (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S)
3900 (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC)
3901 (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext))
3902 ($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext))
3903 ($(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove.
3904 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA)
3905 (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove.
3906 * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove.
3907 * config/rs6000/t-vxworks: Remove comment.
3908 * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S.
3909 * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove.
3910 * config/sh/linux-atomic.asm: Move to
3911 ../libgcc/config/sh/linux-atomic.S.
3912 * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove.
3913 * config/sh/t-netbsd: Remove.
3914 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC):
3915 Remove.
3916 * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove.
3917 * config/sparc/t-leon: Likewise.
3918 * config/sparc/t-leon3: Likewise.
3919 * config/sparc/t-linux64: Likewise.
3920 * config/sparc/t-netbsd64: Fix typo.
3921 Remove comment.
3922 * config/spu/divmodti4.c, config/spu/divv2df3.c,
3923 config/spu/float_disf.c, config/spu/float_unsdidf.c,
3924 config/spu/float_unsdisf.c, config/spu/float_unssidf.c,
3925 config/spu/mfc_multi_tag_release.c,
3926 config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c,
3927 config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c,
3928 config/spu/multi3.c: Move to ../libgcc/config/spu.
3929 * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE)
3930 (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC)
3931 (INSTALL_LIBGCC): Remove.
3932 * config/stormy16/stormy16-lib2.c: Move to
3933 ../libgcc/config/stormy16/lib2.c.
3934 * config/stormy16/stormy16-lib2-ashlsi3.c: Move to
3935 ../libgcc/config/stormy16/ashlsi3.c.
3936 * config/stormy16/stormy16-lib2-ashrsi3.c: Move to
3937 ../libgcc/config/stormy16/ashrsi3.c.
3938 * config/stormy16/stormy16-lib2-clzhi2.c: Move to
3939 ../libgcc/config/stormy16/clzhi2.c.
3940 * config/stormy16/stormy16-lib2-cmpsi2.c: Move to
3941 ../libgcc/config/stormy16/cmpsi2.c.
3942 * config/stormy16/stormy16-lib2-ctzhi2.c: Move to
3943 ../libgcc/config/stormy16/ctzhi2.c.
3944 * config/stormy16/stormy16-lib2-divsi3.c: Move to
3945 ../libgcc/config/stormy16/divsi3.c.
3946 * config/stormy16/stormy16-lib2-ffshi2.c: Move to
3947 ../libgcc/config/stormy16/ffshi2.c.
3948 * config/stormy16/stormy16-lib2-lshrsi3.c: Move to
3949 ../libgcc/config/stormy16/lshrsi3.c.
3950 * config/stormy16/stormy16-lib2-modsi3.c: Move to
3951 ../libgcc/config/stormy16/modsi3.c.
3952 * config/stormy16/stormy16-lib2-parityhi2.c: Move to
3953 ../libgcc/config/stormy16/parityhi2.c.
3954 * config/stormy16/stormy16-lib2-popcounthi2.c: Move to
3955 ../libgcc/config/stormy16/popcounthi2.c.
3956 * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to
3957 ../libgcc/config/stormy16/ucmpsi2.c.
3958 * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to
3959 ../libgcc/config/stormy16/udivmodsi4.c.
3960 * config/stormy16/stormy16-lib2-udivsi3.c: Move to
3961 ../libgcc/config/stormy16/udivsi3.c.
3962 * config/stormy16/stormy16-lib2-umodsi3.c: Move to
3963 ../libgcc/config/stormy16/umodsi3.c.
3964 * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16.
3965 * config/v850/t-v850 (INSTALL_LIBGCC): Remove.
3966 * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa.
3967 * config/xtensa/t-elf: Remove.
3968 * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove.
3969 * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread
3970 from tmake_file.
3971 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
3972 *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file.
3973 (*-*-netbsd*): Remove t-libgcc-pic from tmake_file.
3974 (*-*-openbsd*): Likewise.
3975 Remove t-openbsd-thread for posix threads.
3976 (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file.
3977 (alpha*-*-freebsd*): Likewise.
3978 (alpha*-*-netbsd*): Likewise.
3979 (alpha*-*-openbsd*): Likewise.
3980 (alpha64-dec-*vms*): Likewise.
3981 (alpha*-dec-*vms*): Likewise.
3982 (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file.
3983 (arm*-*-linux*): Remove t-linux from tmake_file.
3984 Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi.
3985 (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for
3986 arm*-*-uclinux*eabi.
3987 (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from
3988 tmake_file for arm*-*-eabi*.
3989 (fr30-*-elf): Remove tmake_file.
3990 (hppa*64*-*-linux*): Remove tmake_file.
3991 (hppa*-*-linux*): Likewise.
3992 (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from
3993 tmake_file.
3994 (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file.
3995 (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from
3996 tmake_file.
3997 (i[34567]86-*-elf*): Remove tmake_file.
3998 (x86_64-*-elf*): Likewise.
3999 (i[34567]86-*-nto-qnx*): Likewise.
4000 (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file.
4001 (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32
4002 from tmake_file if using win32 threads.
4003 (iq2000*-*-elf*): Remove tmake-file.
4004 (microblaze*-linux*): Likewise.
4005 (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
4006 (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
4007 (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
4008 (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for
4009 sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd.
4010 (xtensa*-*-elf*): Remove tmake_file.
4011
4012 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4013
4014 * Makefile.in (LIB1ASMSRC): Don't export.
4015 (libgcc.mvars): Don't emit LIB1ASMFUNCS, LIB1ASMSRC.
4016 * config/arm/arm.c: Update lib1funcs.asm filename.
4017 * config/arm/linux-eabi.h: Likewise.
4018 * config/arm/bpabi-v6m.S, config/arm/bpabi.S,
4019 config/arm/ieee754-df.S, config/arm/ieee754-sf.S: Move to
4020 ../libgcc/config/arm.
4021 * config/arm/lib1funcs.asm: Move to ../libgcc/config/arm/lib1funcs.S.
4022 * config/arm/t-arm (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4023 * config/arm/t-arm-elf (LIB1ASMFUNCS): Remove.
4024 * config/arm/t-bpabi: Likewise.
4025 * config/arm/t-linux (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4026 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Remove.
4027 * config/arm/t-strongarm-elf: Likewise.
4028 * config/arm/t-symbian: Likewise.
4029 * config/arm/t-vxworks: Likewise.
4030 * config/arm/t-wince-pe: Likewise.
4031 * config/avr/libgcc.S: Move to ../libgcc/config/avr.
4032 * config/avr/t-avr (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4033 * config/bfin/lib1funcs.asm: Move to ../libgcc/config/bfin/lib1funcs.S.
4034 * config/bfin/t-bfin: Remove.
4035 * config/bfin/t-bfin-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4036 * config/bfin/t-bfin-linux: Likewise.
4037 * config/bfin/t-bfin-uclinux: Likewise.
4038 * config/c6x/lib1funcs.asm: Move to ../libgcc/config/c6x/lib1funcs.S.
4039 * config/c6x/t-c6x-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4040 * config/fr30/lib1funcs.asm: Move to ../libgcc/config/fr30/lib1funcs.S.
4041 * config/fr30/t-fr30 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4042 * config/frv/lib1funcs.asm: Move to ../libgcc/config/frv/lib1funcs.S.
4043 * config/frv/t-frv (CROSS_LIBGCC1, LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4044 * config/h8300/fixunssfsi.c: Update lib1funcs.asm filename.
4045 * config/h8300/lib1funcs.asm: Move to
4046 ../libgcc/config/h8300/lib1funcs.S.
4047 * config/h8300/t-h8300 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4048 * config/i386/cygwin.asm: Move to ../libgcc/config/i386/cygwin.S.
4049 * config/i386/t-cygming (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4050 * config/i386/t-interix: Likewise.
4051 * config/ia64/lib1funcs.asm: Move to ../libgcc/config/ia64/lib1funcs.S.
4052 * config/ia64/t-hpux (LIB1ASMFUNCS, LIBGCC1_TEST): Remove.
4053 * config/ia64/t-ia64 (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4054 * config/iq2000/t-iq2000 (LIBGCC1, CROSS_LIBGCC1): Remove.
4055 * config/m32c/m32c.c: Update m32c-lib1.S filename.
4056 * config/m32c/m32c-lib1.S: Move to ../libgcc/config/m32c/lib1funcs.S.
4057 * config/m32c/t-m32c (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4058 * config/m32r/t-linux (CROSS_LIBGCC1, LIBGCC1, LIBGCC1_TEST): Remove.
4059 * config/m68k/lb1sf68.asm: Move to ../libgcc/config/m68k/lb1sf68.S.
4060 * config/m68k/t-floatlib (LIB1ASMSRC, LIB1ASMFUNCS): New file.
4061 * config/mcore/lib1.asm: Move to ../libgcc/config/mcore/lib1funcs.S.
4062 * config/mcore/t-mcore (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4063 * config/mep/mep-lib1.asm: Move to ../libgcc/config/mep/lib1funcs.S.
4064 * config/mep/t-mep (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4065 * config/mips/mips16.S: Move to ../libgcc/config/mips.
4066 * config/mips/t-libgcc-mips16: Remove.
4067 * config/mips/t-sr71k (LIBGCC1, CROSS_LIBGCC1): Remove.
4068 * config/pa/milli64.S: Move to ../libgcc/config/pa.
4069 * config/pa/t-linux (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
4070 * config/pa/t-linux64: Likewise.
4071 * config/picochip/libgccExtras/fake_libgcc.asm: Move to
4072 ../libgcc/config/picochip/lib1funcs.S.
4073 * config/picochip/t-picochip (LIB1ASMFUNCS, LIB1ASMSRC): Remove.
4074 * config/sh/lib1funcs.asm: Move to ../libgcc/config/sh/lib1funcs.S.
4075 * config/sh/lib1funcs.h: Move to ../libgcc/config/sh.
4076 * config/sh/sh.h: Update lib1funcs.asm filename.
4077 * config/sh/t-linux (LIB1ASMFUNCS_CACHE): Remove.
4078 * config/sh/t-netbsd: Likewise.
4079 * config/sh/t-sh (LIB1ASMSRC, LIB1ASMFUNCS, LIB1ASMFUNCS_CACHE):
4080 Remove.
4081 * config/sh/t-sh64 (LIB1ASMFUNCS): Remove.
4082 * config/sparc/lb1spc.asm: Move to ../libgcc/config/sparc/lb1spc.S.
4083 * config/sparc/lb1spl.asm: Remove.
4084 * config/sparc/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4085 * config/sparc/t-leon: Likewise.
4086 * config/spu/t-spu-elf (LIBGCC1, CROSS_LIBGCC1): Remove.
4087 * config/v850/lib1funcs.asm: Move to ../libgcc/config/v850/lib1funcs.S.
4088 * config/v850/t-v850 (LIB1ASMSRC, LIB1ASMFUNCS): Remove
4089 * config/vax/lib1funcs.asm: Move to ../libgcc/config/vax/lib1funcs.S.
4090 * config/vax/t-linux: Remove.
4091 * config/xtensa/ieee754-df.S, config/xtensa/ieee754-sf.S: Move to
4092 ../libgcc/config/xtensa.
4093 * config/xtensa/lib1funcs.asm: Move to
4094 ../libgcc/config/xtensa/lib1funcs.S.
4095 * config/xtensa/t-xtensa (LIB1ASMSRC, LIB1ASMFUNCS): Remove.
4096 * config.gcc (bfin*-rtems*): Remove bfin/t-bfin from tmake_file.
4097 (bfin*-*): Likewise.
4098 (mips64*-*-linux*, mipsisa64*-*-linux*): Remove
4099 mips/t-libgcc-mips16 from tmake_file.
4100 (mips*-*-linux*): Likewise.
4101 (mips*-sde-elf*): Likewise.
4102 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
4103 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
4104 (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Likewise.
4105 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise.
4106 (mips-*-elf*, mipsel-*-elf*): Likewise.
4107 (mips64-*-elf*, mips64el-*-elf*): Likewise.
4108 (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise.
4109 (mips*-*-rtems*): Likewise.
4110 (mipstx39-*-elf*, mipstx39el-*-elf*): Likewise.
4111 (vax-*-linux*): Remove vax/t-linux from tmake_file.
4112
4113 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4114
4115 * config.gcc (extra_parts): Remove.
4116 (*-*-freebsd*): Remove extra_parts.
4117 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
4118 *-*-gnu*, *-*-kopensolaris*-gnu): Likewise.
4119 (*-*-netbsd*): Remove t-libc-ok, t-netbsd from tmake_file.
4120 Remove extra_parts for *-*-netbsd*1.[7-9]*, *-*-netbsd[2-9]*,
4121 *-*-netbsdelf[2-9]*.
4122 (*-*-openbsd*): Remove t-libc-ok from tmake_file.
4123 (alpha*-*-linux*): Remove extra_parts.
4124 (alpha*-*-freebsd*): Likewise.
4125 (bfin*-linux-uclibc*): Likewise.
4126 (fr30-*-elf): Likewise.
4127 (moxie-*-elf): Likewise.
4128 (moxie-*-uclinux*): Likewise.
4129 (h8300-*-rtems*): Remove h8300/t-elf from tmake_file.
4130 (h8300-*-elf*): Likewise.
4131 (hppa*64*-*-hpux11*): Remove extra_parts.
4132 (i[34567]86-*-elf*): Remove i386/t-i386elf, i386/t-crtstuff from
4133 tmake_file.
4134 (x86_64-*-elf*): Likewise.
4135 (i[34567]86-*-freebsd*): Remove tmake_file.
4136 (x86_64-*-freebsd*): Likewise.
4137 (x86_64-*-netbsd*): Likewise.
4138 (i[34567]86-*-openbsd2.*, i[34567]86-*openbsd3.[0123]): Remove
4139 t-libc-ok from tmake_file.
4140 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4141 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4142 i[34567]86-*-kopensolaris*-gnu): Remove i386/t-crtstuff from
4143 tmake_file.
4144 Remove extra_parts.
4145 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4146 Remove i386/t-crtstuff from tmake_file.
4147 (i[34567]86-*-lynxos*): Likewise.
4148 Remove extra_parts.
4149 (ia64*-*-elf*): Remove extra_parts.
4150 (ia64*-*-freebsd*): Likewise.
4151 (ia64*-*-linux*): Likewise.
4152 (ia64-hp-*vms*): Remove ia64/t-vms from tmake_file.
4153 (m32r-*-elf*): Remove extra_parts.
4154 (m32rle-*-elf*): Likewise.
4155 (m32r-*-rtems*): Likewise.
4156 (m68k-*-elf*, fido-*-elf*): Likewise.
4157 (m68k*-*-openbsd*): Remove t-libc-ok from tmake_file.
4158 (m68k-*-rtems*): Remove extra_parts.
4159 (mep-*-*): Likewise.
4160 (microblaze*-linux*): Likewise.
4161 (mips64*-*-linux*, mipsisa64*-*-linux*): Likewise.
4162 (mips*-*-linux*): Likewise.
4163 (powerpc-*-lynxos*): Likewise.
4164 (s390x-ibm-tpf*): Likewise.
4165 (score-*-elf): Likewise.
4166 Remove tmake_file.
4167 (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*, sh[2346lbe]*-*-linux*,
4168 sh-*-netbsdelf*, shl*-*-netbsdelf*, sh5-*-netbsd*, sh5l*-*-netbsd*,
4169 sh64-*-netbsd*, sh64l*-*-netbsd*): Remove sh/t-elf from tmake_file.
4170 Remove sh/t-superh from tmake_file for sh*-superh-elf.
4171 Remove sh/t-linux64 from tmake_file for sh64*-*-linux*.
4172 (sh-*-rtems*): Remove sh/t-elf from tmake_file.
4173 (sh-wrs-vxworks): Likewise.
4174 (sparc-*-linux*): Remove extra_parts.
4175 (sparc64-*-linux*): Likewise.
4176 (sparc64-*-freebsd*, ultrasparc-*-freebsd*): Likewise.
4177 (xstormy16-*-elf): Likewise.
4178 (xtensa*-*-linux*): Remove xtensa/t-linux from tmake_file.
4179 (am33_2.0-*-linux*): Remove extra_parts.
4180 * configure.ac (extra_parts): Don't substitute.
4181 * configure: Regenerate.
4182 * crtstuff.c: Move to ../libgcc.
4183 * Makefile.in (CRTSTUFF_CFLAGS): Remove.
4184 (EXTRA_PARTS): Remove.
4185 (CRTSTUFF_T_CFLAGS): Remove.
4186 (MOSTLYCLEANFILES): Remove $(EXTRA_PARTS).
4187 (GCC_EXTRA_PARTS): Remove.
4188 (libgcc.mvars): Remove GCC_EXTRA_PARTS, CRTSTUFF_CFLAGS,
4189 CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S.
4190 Emit GCC_CFLAGS, INHIBIT_LIBC_CFLAGS.
4191 ($(T)crtbegin.o, $(T)crtend.o, $(T)crtbeginS.o, $(T)crtendS.o)
4192 ($(T)crtbeginT.o): Remove.
4193 * config/alpha/t-vms (EXTRA_PARTS): Remove.
4194 ($(T)vms-dwarf2.o, $(T)vms-dwarf2eh.o): Remove.
4195 * config/alpha/vms-dwarf2.asm: Move to
4196 ../libgcc/config/alpha/vms-dwarf2.S.
4197 * config/alpha/vms-dwarf2eh.asm: Move to
4198 ../libgcc/config/alpha/vms-dwarf2eh.S.
4199 * config/arm/crti.asm: Move to ../libgcc/config/arm/crti.S.
4200 * config/arm/crtn.asm: Move to ../libgcc/config/arm/crtn.S.
4201 * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Remove.
4202 ($(T)crti.o, $(T)crtn.o): Remove.
4203 * config/arm/t-linux: Remove comment.
4204 * config/arm/t-linux-eabi (EXTRA_MULTILIB_PARTS): Remove.
4205 * config/arm/t-strongarm-elf (EXTRA_MULTILIB_PARTS): Remove.
4206 ($(T)crti.o, $(T)crtn.o): Remove.
4207 * config/arm/t-symbian (EXTRA_MULTILIB_PARTS): Remove.
4208 * config/bfin/crti.s: Move to ../libgcc/config/bfin/crti.S.
4209 * config/bfin/crtn.s: Move to ../libgcc/config/bfin/crtn.S.
4210 * config/bfin/crtlibid.s: Move to ../libgcc/config/bfin/crtlibid.S.
4211 * config/bfin/t-bfin (EXTRA_PARTS): Remove.
4212 ($(T)crti.o, $(T)crtn.o): Remove.
4213 * config/bfin/t-bfin-elf (CRTSTUFF_T_CFLAGS): Remove.
4214 ($(T)crti.o, $(T)crtn.o, $(T)crtlibid.o): Remove
4215 (EXTRA_MULTILIB_PARTS): Remove.
4216 * config/bfin/t-bfin-linux (CRTSTUFF_T_CFLAGS,
4217 EXTRA_MULTILIB_PARTS): Remove.
4218 * config/bfin/t-bfin-uclinux (CRTSTUFF_T_CFLAGS): Remove.
4219 ($(T)crtlibid.o): Remove.
4220 (EXTRA_MULTILIB_PARTS): Remove.
4221 * config/c6x/crti.s: Move to ../libgcc/config/c6x/crti.S.
4222 * config/c6x/crtn.s: Move to ../libgcc/config/c6x/crtn.S.
4223 * config/c6x/t-c6x-elf ($(T)crti.o, $(T)crtn.o): Remove.
4224 (EXTRA_MULTILIB_PARTS): Remove.
4225 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
4226 * config/c6x/t-c6x-uclinux (CRTSTUFF_T_CFLAGS,
4227 CRTSTUFF_T_CFLAGS_S): Remove.
4228 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Remove.
4229 * config/cris/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4230 * config/fr30/crti.asm: Move to ../libgcc/config/fr30/crti.S.
4231 * config/fr30/crtn.asm: Move to ../libgcc/config/fr30/crtn.S.
4232 * config/fr30/t-fr30 ($(T)crti.o, $(T)crtn.o): Remove.
4233 * config/frv/frvbegin.c, config/frv/frvend.c: Move to
4234 ../libgcc/config/frv.
4235 * config/frv/t-frv (EXTRA_MULTILIB_PARTS): Remove.
4236 (FRVSTUFF_CFLAGS, $(T)frvbegin$(objext), $(T)frvend$(objext)): Remove.
4237 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove.
4238 (CRTSTUFF_T_CFLAGS): Remove.
4239 * config/h8300/crti.asm: Move to ../libgcc/config/h8300/crti.S.
4240 * config/h8300/crtn.asm: Move to ../libgcc/config/h8300/crtn.S.
4241 * config/h8300/t-elf: Remove.
4242 * config/i386/cygming-crtbegin.c, config/i386/cygming-crtend.c:
4243 Move to ../libgcc/config/i386.
4244 * config/i386/t-crtstuff: Remove.
4245 * config/i386/t-i386elf: Remove.
4246 * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
4247 * config/i386/t-nto (CRTSTUFF_T_CFLAGS, EXTRA_PARTS): Remove.
4248 * config/ia64/crtbegin.asm: Move to ../libgcc/config/ia64/crtbegin.S.
4249 * config/ia64/crtend.asm: Move to ../libgcc/config/ia64/crtend.S.
4250 * config/ia64/crti.asm: Move to ../libgcc/config/ia64/crti.S.
4251 * config/ia64/crtn.asm: Move to ../libgcc/config/ia64/crtn.S.
4252 * config/ia64/t-vms: Remove.
4253 * config/ia64/vms-crtinit.asm: Move to
4254 ../libgcc/config/ia64/vms-crtinit.S.
4255 * config/m32c/t-m32c (EXTRA_MULTILIB_PARTS): Remove.
4256 * config/m32r/initfini.c: Move to ../libgcc/config/m32r.
4257 * config/m32r/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4258 * config/m32r/t-m32r (CRTSTUFF_T_CFLAGS): Remove.
4259 ($(T)crtinit.o, $(T)crtfini.o): Remove.
4260 (m32rx, m32r2): Remove.
4261 (EXTRA_MULTILIB_PARTS): Remove.
4262 * config/m68k/crti.s: Move to ../libgcc/config/m68k/crti.S.
4263 * config/m68k/crtn.s: Move to ../libgcc/config/m68k/crtn.S.
4264 * config/m68k/t-crtstuff: Remove.
4265 * config/m68k/t-linux (EXTRA_MULTILIB_PARTS): Remove.
4266 * config/m68k/t-m68kelf: Remove.
4267 * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Remove.
4268 * config/mcore/crti.asm: Move to ../libgcc/config/mcore/crti.S.
4269 * config/mcore/crtn.asm: Move to ../libgcc/config/mcore/crtn.S.
4270 * config/mcore/t-mcore ($(T)crti.o, $(T)crtn.o): Remove.
4271 (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
4272 * config/mep/t-mep (CRTSTUFF_CFLAGS): Remove.
4273 (EXTRA_MULTILIB_PARTS): Remove.
4274 * config/microblaze/crti.s: Move to ../libgcc/config/microblaze/crti.S.
4275 * config/microblaze/crtn.s: Move to ../libgcc/config/microblaze/crtn.S.
4276 * config/microblaze/t-microblaze (EXTRA_MULTILIB_PARTS,
4277 EXTRA_PARTS): Remove.
4278 ($(T)crti$(objext), $(T)crtn$(objext)): Remove.
4279 * config/mips/crti.asm: Move to ../libgcc/config/mips/crti.S.
4280 * config/mips/crtn.asm: Move to ../libgcc/config/mips/crtn.S.
4281 * config/mips/t-elf (CRTSTUFF_T_CFLAGS): Remove.
4282 ($(T)crti.o, $(T)crtn.o): Remove.
4283 (EXTRA_MULTILIB_PARTS): Remove.
4284 * config/mips/t-isa3264: Likewise.
4285 * config/mips/t-linux64 (EXTRA_MULTILIB_PARTS): Remove.
4286 * config/mips/t-r3900 (EXTRA_MULTILIB_PARTS): Remove.
4287 (CRTSTUFF_T_CFLAGS): Remove.
4288 * config/mips/t-sde (CRTSTUFF_T_CFLAGS): Remove.
4289 ($(T)crti.o, $(T)crtn.o): Remove.
4290 (EXTRA_MULTILIB_PARTS): Remove.
4291 * config/mips/t-sr71k (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS):
4292 Remove.
4293 ($(T)crti.o, $(T)crtn.o): Remove.
4294 * config/mips/t-st (EXTRA_MULTILIB_PARTS): Remove.
4295 * config/mips/t-vr (CRTSTUFF_T_CFLAGS): Remove.
4296 (EXTRA_MULTILIB_PARTS): Remove.
4297 ($(T)crti.o, $(T)crtn.o): Remove.
4298 * config/mmix/crti.asm: Move to ../libgcc/config/crti.S.
4299 * config/mmix/crtn.asm: Move to ../libgcc/config/crtn.S.
4300 * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Remove.
4301 * config/moxie/crti.asm, config/moxie/crtn.asm: Remove.
4302 * config/pa/stublib.c: Move to libgcc/config/pa.
4303 * config/pa/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4304 * config/pa/t-linux64 (CRTSTUFF_T_CFLAGS_S): Remove.
4305 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS, stublib.c): Remove.
4306 (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
4307 (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
4308 ($(T)libgcc_stub.a): Remove.
4309 * config/pa/t-pa64 (LIBGCCSTUB_OBJS, stublib.c): Remove.
4310 (rfi-stub.o, dfi-stub.o, cxaf-stub.o, jvrc-stub.o)
4311 (pthread_default_stacksize_np-stub.o, pthread_mutex_lock-stub.o)
4312 (pthread_mutex_unlock-stub.o, pthread_once-stub.o)
4313 ($(T)libgcc_stub.a): Remove.
4314 * config/rs6000/eabi-cn.asm: Move to
4315 ../../../libgcc/config/rs6000/eabi-cn.S.
4316 * config/rs6000/eabi-ci.asm: Move to
4317 ../../../libgcc/config/rs6000/eabi-ci.S.
4318 * config/rs6000/sol-ci.asm: Move to
4319 ../../../libgcc/config/rs6000/sol-ci.S.
4320 * config/rs6000/sol-cn.asm: Move to
4321 ../../../libgcc/config/rs6000/sol-cn.S.
4322 * config/rs6000/t-lynx (EXTRA_MULTILIB_PARTS): Remove.
4323 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
4324 * config/rs6000/t-netbsd (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
4325 Remove.
4326 (EXTRA_MULTILIB_PARTS): Remove.
4327 * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Remove.
4328 (ecrti.S, ecrtn.S, ncrti.S, ncrtn.S): Remove.
4329 ($(T)ecrti$(objext), $(T)ecrtn$(objext), $(T)ncrti$(objext),
4330 ($(T)ncrtn$(objext)): Remove.
4331 (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
4332 * config/rs6000/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
4333 * config/rx/t-rx (EXTRA_MULTILIB_PARTS): Remove.
4334 * config/score/crti.asm: Move to ../libgcc/config/score/crti.S.
4335 * config/score/crtn.asm: Move to ../libgcc/config/score/crtn.S.
4336 * config/score/t-score-elf: Remove.
4337 * config/sh/crt1.asm: Move to ../libgcc/config/sh/crt1.S.
4338 * config/sh/crti.asm: Move to ../libgcc/config/sh/crti.S.
4339 * config/sh/crtn.asm: Move to ../libgcc/config/sh/crtn.S.
4340 * config/sh/lib1funcs-4-300.asm: Move to
4341 ../../../libgcc/config/sh/lib1funcs-4-300.S.
4342 * config/sh/lib1funcs-Os-4-200.asm: Move to
4343 ../libgcc/config/sh/lib1funcs-Os-4-200.S.
4344 * config/sh/t-elf: Remove.
4345 * config/sh/t-linux (EXTRA_MULTILIB_PARTS): Remove.
4346 * config/sh/t-linux64: Remove.
4347 * config/sh/t-netbsd (EXTRA_MULTILIB_PARTS): Remove.
4348 * config/sh/t-sh ($(T)crt1.o, $(T)crti.o, $(T)crtn.o): Remove.
4349 (IC_EXTRA_PARTS, OPT_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Remove.
4350 ($(T)ic_invalidate_array_4-100.o)
4351 ($(T)libic_invalidate_array_4-100.a)
4352 ($(T)ic_invalidate_array_4-200.o)
4353 ($(T)libic_invalidate_array_4-200.a, $(T)ic_invalidate_array_4a.o)
4354 ($(T)libic_invalidate_array_4a.a, $(T)sdivsi3_i4i-Os-4-200.o)
4355 ($(T)udivsi3_i4i-Os-4-200.o, $(T)unwind-dw2-Os-4-200.o)
4356 ($(T)libgcc-Os-4-200.a, $(T)div_table-4-300.o)
4357 ($(T)libgcc-4-300.a): Remove.
4358 * config/sh/t-superh: Remove.
4359 * config/sh/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
4360 * config/sparc/t-linux64 (CRTSTUFF_T_CFLAGS): Remove.
4361 * config/spu/cache.S: Move to ../libgcc/config/spu.
4362 * config/spu/cachemgr.c: Move to ../libgcc/config/spu.
4363 * config/spu/t-spu-elf (CRTSTUFF_T_CFLAGS): Remove.
4364 (EXTRA_MULTILIB_PARTS): Remove.
4365 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o, $(T)libgcc_%.a): Remove.
4366 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache32k.o)
4367 ($(T)cache64k.o, $(T)cache128k.o): Remove.
4368 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Remove.
4369 * config/t-libc-ok: Remove.
4370 * config/t-linux (CRTSTUFF_T_CFLAGS_S): Remove.
4371 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Remove.
4372 * config/t-netbsd: Remove.
4373 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Remove.
4374 * config/t-vxworks (EXTRA_MULTILIB_PARTS): Remove.
4375 * config/vms/t-vms (VMS_EXTRA_PARTS): Remove.
4376 ($(T)vcrt0.o, $(T)pcrt0.o): Remove.
4377 * config/vms/vms-ucrt0.c: Move to ../libgcc/config/vms.
4378 * config/xtensa/crti.asm: Move to ../libgcc/config/xtensa/crti.S.
4379 * config/xtensa/crtn.asm: Move to ../libgcc/config/xtensa/crtn.S.
4380 * config/xtensa/t-elf (CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): Remove.
4381 (EXTRA_MULTILIB_PARTS): Remove.
4382 * config/xtensa/t-linux: Remove.
4383 * config/xtensa/t-xtensa ($(T)crti.o, $(T)crtn.o): Remove.
4384
4385 2011-11-02 Uros Bizjak <ubizjak@gmail.com>
4386
4387 * config/i386/i386.c (bdesc_args) [IX86_BUILTIN_CVTTPD2DQ256]: Use
4388 CODE_FOR_fix_truncv4dfv4si2, not CODE_FOR_fix_truncv4sfv4si2.
4389
4390 2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4391
4392 PR translation/45116
4393 * Makefile.in (slibdir): Remove, don't export.
4394 (SHLIB_NM_FLAGS): Remove.
4395 (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
4396 SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
4397 SHLIB_MAPFILES, SHLIB_NM_FLAGS.
4398 (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
4399 (gcc.o): Pass SHLIB instead of SHLIB_LINK.
4400 (gccspec.o): Likewise.
4401 (installdirs): Don't create $(DESTDIR)$(slibdir).
4402 * configure.ac (slibdir): Remove.
4403 * configure: Regenerate.
4404 * libgcc-libsystem.ver: Move to ../libgcc/config.
4405 * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
4406 * config/libgcc-glibc.ver: Move to ../libgcc/config.
4407 * config/t-libunwind (SHLIB_LC): Remove.
4408 * config/t-linux (SHLIB_MAPFILES): Remove.
4409 * config/t-slibgcc-dummy: Rename to config/t-slibgcc.
4410 * config/t-slibgcc-elf-ver: Remove.
4411 * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
4412 ../libgcc/config.
4413 * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
4414 to ../libgcc/config/alpha.
4415 * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
4416 SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
4417 SHLIB_SYMVECX2, SHLIB_LINK): Remove.
4418 * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
4419 * config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
4420 * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
4421 SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
4422 * config/arm/t-symbian (SHLIB_LC): Remove.
4423 * config/bfin/libgcc-bfin.ver: Move to
4424 ../libgcc/config/bfin/libgcc-glibc.ver.
4425 * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
4426 * config/c6x/libgcc-c6xeabi.ver: Move to
4427 ../libgcc/config/c6x/libgcc-eabi.ver.
4428 * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
4429 * config/cris/libgcc.ver: Move to
4430 ../libgcc/config/cris/libgcc-glibc.ver.
4431 * config/cris/t-linux (SHLIB_MAPFILES): Remove.
4432 * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
4433 * config/frv/t-linux (SHLIB_MAPFILES): Remove.
4434 * config/i386/darwin-libgcc.10.4.ver: Move to
4435 ../libgcc/config/i386/libgcc-darwin.10.4.ver.
4436 * config/i386/darwin-libgcc.10.5.ver: Move to
4437 ../libgcc/config/i386/libgcc-darwin.10.5.ver.
4438 * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
4439 * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
4440 SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
4441 SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
4442 SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove.
4443 * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
4444 SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
4445 * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
4446 ../libgcc/config/i386.
4447 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
4448 ../libgcc/config/i386.
4449 * config/i386/t-linux: Move to ../libgcc/config/i386.
4450 * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
4451 * config/i386/t-mingw-w32 (SHLIB_LC): Remove.
4452 * config/i386/t-mingw-w64: Likewise.
4453 * config/i386/t-mingw32: Remove.
4454 * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
4455 to ../libgcc/config/ia64.
4456 * config/ia64/t-glibc: Remove.
4457 * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
4458 * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
4459 * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
4460 SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
4461 * config/ia64/vms_symvec_libgcc_s.opt: Remove.
4462 * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
4463 * config/m32r/t-linux (SHLIB_MAPFILES): Remove.
4464 * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
4465 * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
4466 * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
4467 * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
4468 Move to ../libgcc/config/pa.
4469 * config/rs6000/darwin-libgcc.10.4.ver: Move to
4470 ../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
4471 * config/rs6000/darwin-libgcc.10.5.ver: Move to
4472 ../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
4473 * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
4474 SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
4475 * config/rs6000/t-aix52: Likewise.
4476 * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
4477 ../libgcc/config/sh.
4478 * config/sparc/libgcc-sparc-glibc.ver: Move to
4479 ../libgcc/config/sparc/libgcc-glibc.ver.
4480 * config/sparc/t-linux: Move to ../libgcc/config/sparc.
4481 * config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
4482 * config/xtensa/libgcc-xtensa.ver: Move to
4483 ../libgcc/config/xtensa/libgcc-glibc.ver.
4484 * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
4485 t-slibgcc in tmake_file.
4486 Remove t-slibgcc-nolc-override for *-*-freebsd[34],
4487 *-*-freebsd[34].* with pthreads.
4488 (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
4489 *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
4490 t-slibgcc-elf-ver with t-slibgcc in tmake_file.
4491 (*-*-netbsd*): Likewise.
4492 (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
4493 (*-*-*vms*): Add t-slibgcc to tmake_file.
4494 (alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
4495 (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
4496 tmake_file.
4497 (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
4498 arm*-*-linux-*eabi.
4499 (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
4500 tmake_file.
4501 (crisv32-*-linux*, cris-*-linux*): Likewise.
4502 (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
4503 pa/t-slibgcc-dwarf-ver from tmake_file.
4504 (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
4505 tmake_file.
4506 Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
4507 (hppa*64*-*-hpux11*): Likewise.
4508 (hppa[12]*-*-hpux11*): Likewise.
4509 (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
4510 tmake_file.
4511 (x86_64-*-darwin*): Likewise.
4512 (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
4513 Add t-slibgcc to tmake_file.
4514 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
4515 Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
4516 i[34567]86-w64-*.
4517 Remove i386/t-mingw-pthread from tmake_file.
4518 (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
4519 (ia64*-*-hpux*): Add t-slibgcc to tmake_file.
4520 (ia64-hp-*vms*): Likewise.
4521 (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
4522 tmake_file.
4523 (m32rle-*-linux*): Likewise.
4524 (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
4525 (microblaze*-linux*): Remove t-slibgcc-elf-ver,
4526 t-slibgcc-nolc-override from tmake_file.
4527 (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
4528 tmake_file.
4529 (powerpc-*-darwin*): Likewise.
4530 (powerpc64-*-darwin*): Likewise.
4531 (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
4532 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4533 (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
4534 t-slibgcc to tmake_file.
4535 (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
4536 (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
4537 (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
4538 (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
4539 (sparc-*-linux*): Remove sparc/t-linux from tmake_file.
4540 (sparc64-*-linux*): Likewise.
4541 (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
4542 tmake_file.
4543 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4544 x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
4545 from tmake_file.
4546
4547 2011-11-02 Richard Guenther <rguenther@suse.de>
4548
4549 PR tree-optimization/50902
4550 * tree-vect-stmts.c (vectorizable_load): Properly convert
4551 an invariant initializer element.
4552
4553 2010-11-02 Richard Guenther <rguenther@suse.de>
4554
4555 PR tree-optimization/50890
4556 * gimple.h (gimple_fold_call): Remove.
4557 * gimple-fold.c (fold_stmt_1): Move all call related code to ...
4558 (gimple_fold_call): ... here. Make static. Update the
4559 cannot-inline flag on direct calls.
4560 * ipa-inline.c (early_inliner): Copy the cannot-inline flag
4561 from the statements to the edges.
4562
4563 2011-11-01 Ian Lance Taylor <iant@google.com>
4564
4565 * godump.c (struct macro_hash_value): Define.
4566 (macro_hash_hashval): New static function.
4567 (macro_hash_eq, macro_hash_del): New static functions.
4568 (go_define): Use macro_hash_value to store values in macro_hash.
4569 Replace an old value on a redefinition. Don't print anything to
4570 go_dump_file.
4571 (go_undef): Delete the entry from the hash table.
4572 (go_output_typedef): For an enum, use macro_hash_value, and don't
4573 print anything to go_dump_file.
4574 (go_print_macro): New static function.
4575 (go_finish): Traverse macro_hash with go_print_macro.
4576 (dump_go_spec_init): Update macro_hash creation for macro_hash_value.
4577
4578 2011-11-02 Alan Modra <amodra@gmail.com>
4579
4580 * config/rs6000/rs6000.c (rs6000_code_end): Declare ATTRIBUTE_UNUSED.
4581
4582 2011-11-01 Paolo Carlini <paolo.carlini@oracle.com>
4583
4584 PR c++/44277
4585 * doc/invoke.texi: Document -Wzero-as-null-pointer-constant.
4586
4587 2011-11-01 Andrew Stubbs <ams@codesourcery.com>
4588
4589 * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
4590
4591 2011-11-01 Uros Bizjak <ubizjak@gmail.com>
4592
4593 * config/i386/i386.md (splitters for int-float conversion): Use
4594 SUBREG_REG on SUBREGs in splitter constraints.
4595
4596 2011-11-01 Jakub Jelinek <jakub@redhat.com>
4597
4598 * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
4599 prototype.
4600 * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
4601 function.
4602 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
4603 (ssepackfltmode): New mode attr.
4604 (vec_pack_ufix_trunc_<mode>): New expander.
4605
4606 2011-11-01 Uros Bizjak <ubizjak@gmail.com>
4607
4608 PR target/50940
4609 * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
4610 Compare <ssevecmode>mode to V4SFmode, not V4SImode.
4611
4612 2011-11-01 Peter Bergner <bergner@vnet.ibm.com>
4613
4614 * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
4615 * config/rs6000/476.h: New file.
4616 * config/rs6000/476.opt: Likewise.
4617 * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
4618 (SET_TARGET_LINK_STACK): Likewise.
4619 (TARGET_ASM_CODE_END): Define.
4620 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
4621 TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
4622 (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
4623 code if TARGET_LINK_STACK.
4624 (rs6000_emit_load_toc_table): Likewise.
4625 (output_function_profiler): Likewise
4626 (macho_branch_islands): Likewise
4627 (machopic_output_stub): Likewise
4628 (get_ppc476_thunk_name): New function.
4629 (rs6000_code_end): Likewise.
4630 * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
4631 Convert to a define_expand.
4632 (load_toc_v4_PIC_1_normal): New define_insn.
4633 (load_toc_v4_PIC_1_476): Likewise.
4634 (load_toc_v4_PIC_1b_normal): Likewise.
4635 (load_toc_v4_PIC_1b_476): Likewise.
4636
4637 2011-11-01 Georg-Johann Lay <avr@gjlay.de>
4638
4639 PR target/50910
4640 * config/avr/avr.opt (-mbranch-cost=): New option.
4641 * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
4642 * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
4643 * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
4644 (*addhi3_zero_extend1): Remove % in constraint of operand 1.
4645 (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
4646
4647 2011-11-01 Tom de Vries <tom@codesourcery.com>
4648
4649 PR tree-optimization/50908
4650 * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
4651 before update_vuses, test for 1 predecessor rather than two.
4652 (delete_block_update_dominator_info): New function, part of it factored
4653 out of ...
4654 (replace_block_by): Use delete_block_update_dominator_info. Call
4655 update_vuses after deleting bb1 and updating dominator info, instead of
4656 before.
4657
4658 2011-11-01 David S. Miller <davem@davemloft.net>
4659
4660 * config/sparc/sparc.c (vector_init_faligndata): New function.
4661 (sparc_expand_vector_init): Use it for V4HImode on VIS1.
4662
4663 * config/sparc/sparc.c (sparc_expand_vcond): New function.
4664 * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
4665 * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
4666 (vconduv8qiv8qi): Likewise.
4667
4668 2011-11-01 Alexandre Oliva <aoliva@redhat.com>
4669
4670 PR debug/50869
4671 * cselib.c (cfa_base_preserved_regno): Initialize.
4672 (cselib_expand_value_rtx_1): Don't expand it.
4673 * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
4674 Check it's only zero if result is NULL.
4675
4676 2011-11-01 Jakub Jelinek <jakub@redhat.com>
4677
4678 * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
4679 expander.
4680
4681 * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
4682 (sseintvecmodelower): New mode iterator.
4683 (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
4684 (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
4685 (floatunsv4siv4sf2): Macroize into...
4686 (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
4687
4688 2011-10-31 David S. Miller <davem@davemloft.net>
4689
4690 * config/sparc/sparc.md (cmask patterns): Allow zero operand.
4691
4692 * dwarf2out.c (cached_next_real_insn): New.
4693 (dwarf2out_end_epilogue): Set it to NULL_RTX.
4694 (dwarf2out_var_location): Remove cached_next_real_insn local static.
4695
4696 2011-10-31 Richard Henderson <rth@redhat.com>
4697
4698 * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
4699 (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
4700 (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
4701 (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
4702 (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
4703 (floatv4siv4df2): Rename from avx_cvtdq2pd256.
4704 (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
4705 (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
4706 * config/i386/i386.md (splitters for int-float conversion): Likewise.
4707 * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
4708 (bdesc_args): Likewise.
4709 (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
4710 (ix86_vectorize_builtin_conversion): Remove.
4711 (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
4712
4713 2011-10-31 Martin Jambor <mjambor@suse.cz>
4714
4715 * ipa-prop.c (mark_modified): Moved up in the file.
4716 (is_parm_modified_before_call): Renamed to
4717 is_parm_modified_before_stmt, moved up in the file.
4718 (load_from_unmodified_param): New function.
4719 (compute_complex_assign_jump_func): Also attempt to create pass
4720 through jump functions for values loaded from (addressable)
4721 parameters.
4722
4723 2011-10-31 Jakub Jelinek <jakub@redhat.com>
4724
4725 * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
4726 in a loop and has different type from op0, cast it to op0's type
4727 before the loop first. For slp give up. Don't crash if op1_vectype
4728 is NULL.
4729
4730 2011-10-31 Paul Brook <paul@codesourcery.com>
4731
4732 * cgraphunit.c: Don't mark clones as static constructors.
4733
4734 2011-10-31 David Edelsohn <dje.gcc@gmail.com>
4735
4736 * gcc-ar: Do not include stdio.h.
4737
4738 2011-10-31 Diego Novillo <dnovillo@google.com>
4739
4740 * tree-streamer-out.c (pack_ts_base_value_fields): Emit
4741 TYPE_ADDR_SPACE.
4742 * tree-streamer-in.c (unpack_ts_base_value_fields): Read
4743 TYPE_ADDR_SPACE.
4744
4745 2011-10-30 David S. Miller <davem@davemloft.net>
4746
4747 * config/sparc/sparc.c (vector_init_bshuffle): New function.
4748 (vector_init_fpmerge): New function.
4749 (sparc_expand_vector_init): Use them to improve non-const cases.
4750
4751 * dwarf2out.c (dwarf2out_var_location): When processing several
4752 consecutive location notes, cache the result of next_real_insn().
4753
4754 2011-10-30 Uros Bizjak <ubizjak@gmail.com>
4755
4756 * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
4757 avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
4758 (vec_dupv4sf): Remove expander.
4759 (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
4760 (vec_dupv2df): Remove expander.
4761 (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
4762 (*vec_concatv2df): Merge *vec_concatv2df_sse3.
4763 (*vec_dupv4si): Merge *vec_dupv4si_avx.
4764 (*vec_dupv2di): Merge *vec_dupv2di_sse3.
4765
4766 2011-10-30 Dmitry Plotnikov <dplotnikov@ispras.ru>
4767
4768 * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
4769 * optabs.c (supportable_convert_operation): New function.
4770 * optabs.h (supportable_convert_operation): New prototype.
4771 * tree-vect-stmts.c (vectorizable_conversion): Change condition and
4772 behavior for NONE modifier case.
4773 * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
4774
4775 2011-10-30 Jakub Jelinek <jakub@redhat.com>
4776
4777 * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
4778 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
4779 function.
4780 (vect_vect_recog_func_ptrs): Add it.
4781
4782 2011-10-30 David S. Miller <davem@davemloft.net>
4783
4784 * reorg.c (label_before_next_insn): New function.
4785 (relax_delay_slots): Use it instead of prev_label.
4786 * rtl.h (prev_label): Delete declaration.
4787 * emit-rtl.c (prev_label): Remove.
4788
4789 2011-10-30 Revital Eres <revital.eres@linaro.org>
4790
4791 * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
4792 as BB_DISABLE_SCHEDULE.
4793 (mark_loop_unsched): New function.
4794 (sms_schedule): Call it.
4795
4796 2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4797
4798 PR target/50617
4799 * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
4800 (cmpib_comparison_operator): Likewise.
4801 (following_cal, output_and, output_ior, output_move_double,
4802 output_fp_move_double, output_block_move, output_block_clear,
4803 output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
4804 output_movb, output_parallel_movb, output_parallel_addb, output_call,
4805 output_indirect_call, output_millicode_call, output_mul_insn,
4806 output_div_insn, output_mod_insn, singlemove_string,
4807 output_arg_descriptor, output_global_address, print_operand,
4808 legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
4809 fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
4810 emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
4811 hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
4812 attr_length_indirect_call, return_addr_rtx, function_arg_padding,
4813 insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
4814 output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
4815 hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
4816 compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
4817 reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
4818 exported functions and variables with "pa_".
4819 * config/pa/predicates.md: Likewise.
4820 * config/pa/pa64-hpux.h: likewise.
4821 * config/pa/som.h: Likewise.
4822 * config/pa/elf.h: Likewise.
4823 * config/pa/pa64-linux.h: Likewise.
4824 * config/pa/pa.md: Likewise.
4825 * config/pa/pa.c: Likewise.
4826 * config/pa/pa-linux.h: Likewise.
4827 * config/pa/pa.h: Likewise.
4828 * config/pa/constraints.md: Likewise.
4829
4830 2011-10-29 Uros Bizjak <ubizjak@gmail.com>
4831
4832 * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
4833 Update all uses.
4834 (xop_shl<mode>3): Rename from xop_lshl<mode>3. Update all uses.
4835 * config/i386/i386.c: Update all uses.
4836
4837 2011-10-29 Uros Bizjak <ubizjak@gmail.com>
4838
4839 * config/i386/i386.md (lshlv16qi3): Remove expander.
4840 (lshrv16qi3): New expander.
4841 (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
4842 using any_shiftrt code iterator. Cleanup.
4843 (ashlv16qi3): Cleanup.
4844 (ashrv2di3): Ditto.
4845
4846 2011-10-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4847
4848 PR target/50691
4849 * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
4850 references.
4851 (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
4852 and TLS_MODEL_LOCAL_DYNAMIC symbol references.
4853
4854 2011-10-29 Georg-Johann Lay <avr@gjlay.de>
4855
4856 PR target/50887
4857 * config/avr/avr.opt (-maccumulate-args): New option.
4858 * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
4859 avr_starting_frame_offset.
4860 (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
4861 * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
4862 (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
4863 (UNSPECV_WRITE_SP): New constant.
4864 (*addhi3_sp_R): Rewrite to...
4865 (*addhi3_sp): ...this new insn.
4866 (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
4867 (movhi_sp_r): ...this new insn.
4868 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
4869 (avr_starting_frame_offset): New.
4870 * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
4871 (avr_starting_frame_offset): New function.
4872 (avr_outgoing_args_size): New static function.
4873 (avr_initial_elimination_offset): Use it.
4874 (avr_simple_epilogue): Use it.
4875 (avr_asm_function_end_prologue): Use it.
4876 (expand_epilogue): Use it.
4877 (expand_prologue): Use it. Break out code to...
4878 (avr_prologue_setup_frame): ...this new static function.
4879 (avr_can_eliminate): Allow eliminating to frame pointer if there
4880 is one.
4881 (avr_frame_pointer_required_p): Use frame pointer if target has a
4882 nonlocal label.
4883 * config/avr/constraints.md (R): Remove.
4884 (Csp): New constraint.
4885 * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
4886
4887 2011-10-29 Andi Kleen <ak@linux.intel.com>
4888
4889 * gcc-ar.c (target_machine): Add.
4890
4891 2011-10-29 Anatoly Sokolov <aesok@post.ru>
4892
4893 * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
4894 cris_constant_index_p, cris_base_p, cris_index_p,
4895 cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
4896 cris_legitimate_address_p): New functions.
4897 (TARGET_LEGITIMATE_ADDRESS_P): Define.
4898 (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
4899 from rtx to const_rtx.
4900 (cris_print_operand_address, cris_address_cost,
4901 cris_side_effect_mode_ok): Use
4902 cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
4903 cris_biap_index_p and cris_bdap_index_p.
4904 * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
4905 BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
4906 REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
4907 (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
4908 cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
4909 cris_biap_index_p and cris_bdap_index_p.
4910 * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
4911 cris_base_p.
4912 * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
4913 cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
4914 prototype.
4915 (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
4916
4917 2011-10-21 Andi Kleen <ak@linux.intel.com>
4918
4919 * ggc-page (PAGE_ALIGN): Add.
4920 (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
4921 Replace ROUND_UP with PAGE_ALIGN.
4922
4923 2011-10-20 Andi Kleen <ak@linux.intel.com>
4924
4925 * ggc-page (alloc_anon): Add check argument.
4926 (alloc_page): Add fallback to 1 page allocation.
4927 Adjust alloc_anon calls to new argument.
4928
4929 2011-10-18 Andi Kleen <ak@linux.intel.com>
4930
4931 * ggc-page (release_pages): First free large continuous
4932 chunks in the madvise path.
4933
4934 2011-10-18 Andi Kleen <ak@linux.intel.com>
4935
4936 * ggc-page.c (alloc_pages): Always round up entry_size.
4937
4938 2011-10-19 Andi Kleen <ak@linux.intel.com>
4939
4940 * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
4941 (native): Add gcc-ar, gcc-nm, gcc-ranlib.
4942 (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
4943 gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
4944 (install): Depend on install-gcc-ar.
4945 (install-gcc-ar): Add.
4946 (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
4947 * gcc-ar.c: Add new file.
4948
4949 2011-10-28 Pat Haugen <pthaugen@us.ibm.com>
4950
4951 * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
4952 * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
4953 type for V2DF.
4954 (VStype_div): Use vector types for V2DF/V4SF.
4955 (VStype_sqrt): Use *sqrt types.
4956 (VS_spdp_type): Change type to vecdouble.
4957 (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
4958 vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
4959 vsx_xvcvspuxds): Likewise.
4960 (*vsx_fms<mode>4): Set type via <VStype_mul>.
4961 (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
4962 <VStype_simple>.
4963 * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
4964 (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
4965 power7-dsqrt): Correct insn latency.
4966 (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
4967 (power7-veccmp): Delete.
4968 (power7-vecfloat): Correct latency/dispatch/VSU values.
4969 (define_bypass "power7-vecfloat"): Correct latency and types.
4970 (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
4971 (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
4972
4973 2011-10-28 Uros Bizjak <ubizjak@gmail.com>
4974
4975 * config/i386/i386.md (shift_insn): Rename code attribute from
4976 shiftrt_insn. Also handle ashift RTX.
4977 (shift): Rename code attribute from shiftrt. Also handle ashift RTX.
4978 (vshift): New code attribute.
4979 (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
4980 (any_lshift): Move and rename code iterator from ...
4981 * config/i386/sse.md (lshift): ... here.
4982 (lshift_insn): Remove code attribute.
4983 (lshift): Remove code attribute.
4984 (vlshr<mode>3): Use lshiftrt RTX.
4985 (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
4986 (vashl<mode>3, ashlv16qi3): Use ashift RTX.
4987 (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>. Use
4988 any_lshift code iterator. Update asm template.
4989 (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
4990 usign any_lshift code iterator.
4991 * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
4992 mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
4993 * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
4994
4995 2011-10-28 Georg-Johann Lay <avr@gjlay.de>
4996
4997 PR target/49313
4998 * config/avr/avr.md (parityhi2): Expand allowing pseudos.
4999 (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
5000 to the libgcc insn.
5001 (*parityqihi2): Same for 8-bit parity.
5002
5003 2011-10-28 Julian Brown <julian@codesourcery.com>
5004
5005 PR rtl-optimization/47918
5006 * reload1.c (set_initial_label_offsets): Use initial offsets
5007 for labels on the nonlocal_goto_handler_labels chain.
5008
5009 2011-10-28 Iain Sandoe <iains@gcc.gnu.org>
5010
5011 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5012 Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
5013 (LIB2FUNCS_EXTRA): Add darwin-gpsave.asm.
5014 (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
5015 config/t-darwin.
5016 * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
5017 (GP_SAVE_INLINE): Likewise.
5018 (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
5019 RESTORE_FP_SUFFIX): Set to empty strings.
5020 * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
5021 (debug_stack_info): Print savres_strategy.
5022 (rs6000_savres_routine_name): Implement for Darwin.
5023 (rs6000_make_savres_rtx): Adjust used register for Darwin.
5024 (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
5025 (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
5026 (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
5027 * config/rs6000/darwin-gpsave.asm: New file.
5028
5029 2011-10-28 Jakub Jelinek <jakub@redhat.com>
5030
5031 * config/i386/sse.md (VI4SD_AVX2): Removed.
5032 (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
5033 (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
5034 Add another expander using VI48_128 iterator for
5035 TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
5036 for TARGET_AVX2.
5037 (vlshr<mode>3): Likewise. Change register_operand predicate to
5038 nonimmediate_operand on last operand in the VI12_128 expander.
5039 (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
5040 (vashrv4si3, vashrv8si3): New expanders.
5041 (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
5042 avx2_<lshift>vv2di): Removed.
5043 (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
5044 (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
5045 iterator. Simplify pattern.
5046
5047 2010-10-28 Richard Guenther <rguenther@suse.de>
5048
5049 PR driver/50876
5050 * lto-wrapper.c (get_options_from_collect_gcc_options):
5051 Properly count arguments.
5052 (run_gcc): Use an obstack to collect argv, properly separate
5053 switches and their arguments.
5054
5055 2011-10-28 Jakub Jelinek <jakub@redhat.com>
5056
5057 * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
5058 vector mode from vectype's mode.
5059
5060 2011-10-28 Chung-Lin Tang <cltang@codesourcery.com>
5061
5062 PR rtl-optimization/49720
5063 * simplify-rtx.c (simplify_relational_operation_1): Detect
5064 infinite recursion condition in "(eq/ne (plus x cst1) cst2)
5065 simplifies to (eq/ne x (cst2 - cst1))" case.
5066
5067 2011-10-27 David S. Miller <davem@davemloft.net>
5068
5069 * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
5070 (*snedi_zero): Likewise.
5071 (*snedi_zero_trunc): Likewise.
5072 (snedi_special_vis3): New expander.
5073 (*snedi_zero_vis3): New insn.
5074 (*snedi_zero_trunc_vis3): Likewise.
5075 (*sltu_insn_vis3): Likewise.
5076 (*sltu_insn_vis3_trunc): Likewise.
5077 (addxc): Likewise.
5078 (*addxc_trunc_sp64_vis3): Likewise.
5079 * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
5080 gen_snedi_special_vis3 expander, and try GTU/LTU addx based
5081 sequences on DImode values.
5082
5083 * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
5084 constraint.
5085
5086 * regcprop.c (copyprop_hardreg_forward_1): Reject the
5087 transformation when we narrow the mode on big endian.
5088
5089 2011-10-27 Jakub Jelinek <jakub@redhat.com>
5090
5091 * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
5092 vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
5093 (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
5094
5095 * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
5096 overrides for -masm=intel memory.
5097 * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
5098 sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
5099 sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
5100 sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
5101 (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
5102 sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
5103 (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
5104
5105 2011-10-27 Martin Jambor <mjambor@suse.cz>
5106
5107 * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
5108 to parm_ainfo.
5109 (ipa_compute_jump_functions_for_edge): Likewise.
5110 (ipa_compute_jump_functions): Likewise.
5111 (ipa_analyze_indirect_call_uses): Likewise.
5112 (ipa_analyze_call_uses): Likewise.
5113 (ipa_analyze_params_uses): Likewise.
5114 (ipa_analyze_node): Likewise.
5115
5116 2011-10-27 Uros Bizjak <ubizjak@gmail.com>
5117
5118 PR target/50875
5119 * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
5120 constraints. Change alternative 1 to "x,m,1".
5121
5122 2011-10-27 Jakub Jelinek <jakub@redhat.com>
5123
5124 * Makefile.in (build/gencheck.o): Depend on tree.def and
5125 c-family/c-common.def.
5126
5127 * tree-ssa-strlen.c: Include expr.h.
5128 (get_stridx): Don't use c_strlen, instead use string_constant
5129 and compute string length from it.
5130 * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
5131
5132 2011-10-27 Eric Botcazou <ebotcazou@adacore.com>
5133
5134 PR rtl-optimization/46603
5135 PR bootstrap/50879
5136 * reload.c (push_reload): In the out case, restore previous behavior
5137 for subregs that don't have word mode.
5138
5139 2011-10-27 Ian Lance Taylor <iant@google.com>
5140
5141 * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
5142 CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
5143 (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
5144 defined.
5145
5146 2011-10-27 Richard Henderson <rth@redhat.com>
5147
5148 * optabs.c (expand_vec_perm): Use the correct mode for scaling the
5149 selector. Save the qimode constant selector for later use by the
5150 qimode vec_perm pattern.
5151
5152 2011-10-27 Bernd Schmidt <bernds@codesourcery.com>
5153
5154 * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
5155 to unit_req_factor to the right enum type.
5156 (get_unit_operand_masks, reshuffle_units, try_rename_operands,
5157 hwloop_optimize): Remove unused variables.
5158
5159 2010-10-27 Richard Guenther <rguenther@suse.de>
5160
5161 PR middle-end/50731
5162 * tree-vect-generic.c (do_binop): Handle scalar operands.
5163
5164 2011-08-27 Uros Bizjak <ubizjak@gmail.com>
5165
5166 PR target/37191
5167 * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
5168 from different units in a single alternative.
5169
5170 2011-10-26 David S. Miller <davem@davemloft.net>
5171
5172 * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
5173 if we're comparing DImode and comparison is other than EQ or NE.
5174
5175 * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
5176 LEU/LTU/GEU/GTU is attempted.
5177 * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
5178 and split.
5179 (*neg_seqsi_sign_extend): Likewise.
5180 (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
5181 *neg_sgeu_extend_sp64): New insns.
5182
5183 * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
5184 * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
5185 (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
5186 (*mov<I:mode>_cc_reg_sp64): Likewise.
5187 (*movsf_cc_v9): Likewise.
5188 (*movsf_cc_reg_sp64): Likewise.
5189 (*movdf_cc_v9): Likewise.
5190 (*movdf_cc_reg_sp64): Likewise.
5191 (*movtf_cc_hq_v9): Likewise.
5192 (*movtf_cc_reg_hq_sp64): Likewise.
5193 (*movtf_cc_v9): Likewise.
5194 (*movtf_cc_reg_sp64): Likewise.
5195 * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
5196 (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
5197
5198 2011-10-26 Eric Botcazou <ebotcazou@adacore.com>
5199
5200 * reload.c (reload_inner_reg_of_subreg): Change type of return value
5201 and type of OUTPUT parameter to bool and adjust. Document MODE and
5202 OUTPUT parameters. Use HARD_REGISTER_P. Reorder final condition
5203 and improve associated comment.
5204 (push_reload): Clarify and update comments about reloading of subregs.
5205 Adjust calls to reload_inner_reg_of_subreg. Compute the class upfront
5206 for the reloading of subregs in the out case as well.
5207
5208 2011-10-26 Alexandre Oliva <aoliva@redhat.com>
5209
5210 PR debug/50826
5211 * var-tracking.c (rtx_debug_expr_p): New.
5212 (use_type): Don't use debug exprs to track non-VTA variables.
5213
5214 2011-10-26 Jeff Law <law@redhat.com>
5215
5216 * doc/invoke.texi (sink-frequency-threshold): Document.
5217 * tree-ssa-sink.c: Include params.h.
5218 (select_best_block): New function.
5219 (statement_sink_location): Use it.
5220 * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
5221
5222 2011-10-26 Iain Sandoe <iains@gcc.gnu.org>
5223
5224 PR target/48108
5225 * config/darwin.c (top level): Amend comments concerning LTO output.
5226 (lto_section_num): New variable. (darwin_lto_section_e): New GTY.
5227 (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
5228 (LTO_NAMES_SECTION): Rename.
5229 (darwin_asm_named_section): Record LTO section counts and switches
5230 in a vec of darwin_lto_section_e.
5231 (darwin_file_start): Remove unused code.
5232 (darwin_file_end): Put an LTO section termination label. Handle
5233 output of the wrapped LTO sections, index and names table.
5234
5235 2011-10-26 Alan Modra <amodra@gmail.com>
5236
5237 * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
5238 declaration.
5239 (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
5240 (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx. Use
5241 simple_return in pattern, emit instruction, and set jump_label.
5242 (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx. Use
5243 simple_return rather than return.
5244 (emit_cfa_restores): New function.
5245 (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
5246 Add missing cfa_restores for SAVE_WORLD. Add missing LR cfa_restore
5247 when using out-of-line gpr restore. Add missing LR and FP regs
5248 cfa_restores for out-of-line fpr restore. Consolidate code setting
5249 up cfa_restores. Formatting. Use LR_REGNO define.
5250 (rs6000_output_mi_thunk): Use simple_return rather than return.
5251 * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
5252 (return_internal*): Likewise.
5253 (any_return, return_pred, return_str): New iterators.
5254 (return, conditional return insns): Provide both return and
5255 simple_return variants.
5256 * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
5257 (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
5258 Move r11 and r0 later to suit shrink-wrapping.
5259
5260 2011-10-26 Richard Guenther <rguenther@suse.de>
5261
5262 * lto-wrapper.c (run_gcc): Properly init/free obstack.
5263
5264 2011-10-26 Jakub Jelinek <jakub@redhat.com>
5265
5266 * config/i386/i386.md (UNSPEC_VSIBADDR): New.
5267 * config/i386/predicates.md (vsib_address_operand,
5268 vsib_mem_operator): New predicates.
5269 * config/i386/i386.c (ix86_print_operand_address): Handle
5270 UNSPEC_VSIBADDR addresses.
5271 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
5272 avx2_gatherdi<mode>256): Adjust expanders to use MEM with
5273 UNSPEC_VSIBADDR address.
5274 (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
5275 Adjust insns to use MEM with UNSPEC_VSIBADDR address.
5276
5277 2011-10-26 Tom de Vries <tom@codesourcery.com>
5278
5279 PR tree-optimization/50763
5280 * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
5281 phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
5282
5283 2011-10-26 Richard Guenther <rguenther@suse.de>
5284
5285 PR lto/41844
5286 * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
5287 (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
5288 * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
5289 (run_gcc): Use it. Filter out language specific options.
5290
5291 2011-10-26 Andreas Tobler <andreast@fgznet.ch>
5292
5293 * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
5294 32-bit target does.
5295
5296 2011-10-25 Paolo Carlini <paolo.carlini@oracle.com>
5297
5298 PR driver/46617
5299 * gcc.c (main): Fix fatal_error string for translation.
5300
5301 2011-10-25 Ian Lance Taylor <iant@google.com>
5302
5303 * tree-eh.c (do_return_redirection): Remove return_value_p
5304 parameter. Change all callers.
5305 (lower_try_finally_nofallthru): Remove local return_val.
5306 (lower_try_finally_onedest): Likewise.
5307 (lower_try_finally_copy): Likewise.
5308 (lower_try_finally_switch): Likewise.
5309
5310 2011-10-25 H.J. Lu <hongjiu.lu@intel.com>
5311
5312 * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
5313 remove "&& !TARGET_64BIT"
5314 (*mmx_maskmovq_rex): Removed.
5315
5316 2011-10-25 Eric Botcazou <ebotcazou@adacore.com>
5317
5318 PR rtl-optimization/46603
5319 * reload.c (push_reload): In the out case, reload the subreg as well
5320 as the reg if it has word mode.
5321
5322 2011-10-25 Eric Botcazou <ebotcazou@adacore.com>
5323
5324 * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
5325 suppress debug info for the parent type.
5326
5327 2011-10-25 Eric Botcazou <ebotcazou@adacore.com>
5328
5329 * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
5330
5331 2011-10-25 Richard Henderson <rth@redhat.com>
5332
5333 * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
5334 (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
5335
5336 * config/rs6000/altivec.md (vec_extract_evenv8hi,
5337 vec_extract_evenv16qi, vec_extract_oddv4si,
5338 vec_extract_oddv4sf): Remove.
5339
5340 * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
5341 vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
5342 vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
5343 vec_interleave_highv4sf, vec_interleave_lowv4sf,
5344 vec_interleave_highv4si, vec_interleave_lowv4si,
5345 vec_interleave_highv8hi, vec_interleave_lowv8hi,
5346 vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
5347
5348 * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
5349 [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
5350 [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
5351 * optabs.c (expand_binop): Implement vec_interleave_high_optab,
5352 vec_interleave_low_optab, vec_extract_even_optab,
5353 vec_extract_odd_optab with expand_vec_perm.
5354 (can_vec_perm_for_code_p): New.
5355 * optabs.h: Update.
5356 * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
5357 fallback via can_vec_perm_for_code_p.
5358 (vect_strided_load_supported): Likewise.
5359 * tree-vect-generic.c (expand_vector_operations_1): Never lower
5360 VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
5361 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
5362
5363 * target.def (vec_perm_const_ok): Change parameters to mode and
5364 array of indicies.
5365 * doc/tm.texi: Rebuild.
5366 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
5367 parameters to mode and array of indicies.
5368 * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
5369 * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
5370 Change parameters to mode and array of indicies.
5371 (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
5372 (expand_vec_perm): Rename from expand_vec_perm_expr. Change
5373 parameters to mode and rtx inputs. Try lowering to QImode
5374 vec_perm_const before trying fully variable permutation.
5375 * optabs.h: Update decls.
5376 * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
5377 VECTOR_CST to pass to can_vec_perm_p.
5378 * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
5379 from int pointer to unsigned char pointer.
5380 (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
5381 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
5382
5383 * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
5384 (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
5385 VEC_INTERLEAVE_LOW_EXPR): Likewise.
5386
5387 2011-10-25 Mike Stump <mikestump@comcast.net>
5388
5389 * reload.c (regno_clobbered_p): Fix typo.
5390
5391 2011-10-25 Dodji Seketeli <dodji@redhat.com>
5392
5393 * input.c (expand_location): Rewrite using linemap_resolve_location
5394 and linemap_expand_location. Add a comment.
5395
5396 2011-10-25 Jakub Jelinek <jakub@redhat.com>
5397
5398 PR tree-optimization/50596
5399 * tree-vect-stmts.c (vect_mark_relevant): Only use
5400 FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
5401 (vectorizable_store): If is_pattern_stmt_p look through
5402 VIEW_CONVERT_EXPR on lhs.
5403 * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
5404 Use unsigned type instead of signed.
5405 (vect_recog_bool_pattern): Optimize also stores into bool memory in
5406 addition to casts from bool to integral types.
5407 (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
5408 created, don't create it again.
5409
5410 2011-10-25 Kai Tietz <ktietz@redhat.com>
5411
5412 * config/i386/i386.c (ix86_frame_pointer_required): Require
5413 frame-pointer, if setjmp is used for 32-bit ms-abi.
5414
5415 2011-10-24 Michael Meissner <meissner@linux.vnet.ibm.com>
5416
5417 * builtins.c (set_builtin_user_assembler_name): Remove extra
5418 newline added in October 11th, 2011 change.
5419
5420 2011-10-24 David S. Miller <davem@davemloft.net>
5421
5422 * config/sparc/little-endian.opt: Delete.
5423 * config.gcc: Remove references to config/sparc/little-endian.opt
5424 * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
5425 * config/sparc/linux64.h: Delete references to -mlittle-endian.
5426 * config/sparc/netbsd-elf.h: Likewise.
5427 * config/sparc/openbsd64.h: Likewise.
5428 * config/sparc/sparc.h: Likewise.
5429 * config/sparc/sp64-elf.h: Likewise and delete overrides for
5430 BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
5431 * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
5432 to MASK_LITTLE_ENDIAN.
5433 * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
5434
5435 * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
5436 Only use D, Y, and Z constraints in vector insns.
5437
5438 * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
5439 (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
5440 called *movsi_insn.
5441 (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
5442 into *movdi_insn_sp32.
5443 (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
5444 one pattern called *movdi_insn_sp64.
5445 (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
5446 Consolidate into one pattern called *movsf_insn.
5447 (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
5448 *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
5449 into *movdf_insn_sp32.
5450 (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
5451 *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
5452 *movdf_insn_sp64.
5453 (*zero_extendsidi2_insn_sp64_novis3,
5454 *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
5455 called *zero_extendsidi2_insn_sp64.
5456 (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
5457 Consolidate into one pattern named *sign_extendsidi2_insn.
5458 (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
5459 Consolidate into one pattern named *mov<VM32:mode>_insn.
5460 (*mov<VM64:mode>_insn_sp64_novis3,
5461 *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
5462 named *mov<VM64:mode>_insn_sp64.
5463 (*mov<VM64:mode>_insn_sp32_novis3,
5464 *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
5465 named *mov<VM64:mode>_insn_sp32.
5466
5467 2011-10-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5468
5469 * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
5470 (zero_length_string): Change assertion to accept strinfo without
5471 length but with stmt instead.
5472 Set the endptr pointer also if starting a new chain.
5473 (adjust_related_strinfos): Ignore strinfos marked for delayed
5474 length computation.
5475 (handle_builtin_strcpy): Mark earlier strinfo elements also for
5476 delayed length computation.
5477
5478 2011-10-24 Georg-Johann Lay <avr@gjlay.de>
5479
5480 PR target/50820
5481 Port from 4.6 branch r180379
5482 * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
5483 handling and indirect jump/calls on devices > 128k.
5484
5485 2011-10-24 Anatoly Sokolov <aesok@post.ru>
5486 Georg-Johann Lay <avr@gjlay.de>
5487
5488 PR target/49824
5489 * doc/extend.texi (Declaring Attributes of Functions):
5490 Document OS_main and OS_task attributes.
5491 (Specifying Attributes of Variables): Move up
5492 subsection "AVR Variable Attributes" as of alphabetical order.
5493
5494 2011-10-24 Richard Guenther <rguenther@suse.de>
5495
5496 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
5497 to vector element type.
5498 (vectorizable_assignment): Bail out for non-mode-precision operations.
5499 (vectorizable_shift): Likewise.
5500 (vectorizable_operation): Likewise.
5501 (vectorizable_type_demotion): Likewise.
5502 (vectorizable_type_promotion): Likewise.
5503 (vectorizable_store): Handle non-mode-precision stores.
5504 (vectorizable_load): Handle non-mode-precision loads.
5505 (get_vectype_for_scalar_type_and_size): Return a vector type
5506 for non-mode-precision integers.
5507 * tree-vect-loop.c (vectorizable_reduction): Bail out for
5508 non-mode-precision reductions.
5509
5510 2011-10-24 Julian Brown <julian@codesourcery.com>
5511
5512 * config/m68k/m68k.c (notice_update_cc): Tighten condition for
5513 setting CC_REVERSED for FP comparisons.
5514
5515 2011-10-24 Richard Guenther <rguenther@suse.de>
5516
5517 PR tree-optimization/50838
5518 * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
5519 a MEM_REF base if we change it.
5520
5521 2011-10-24 Bernd Schmidt <bernds@codesourcery.com>
5522
5523 PR bootstrap/50836
5524 * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
5525
5526 PR rtl-optimization/50833
5527 * function.c (thread_prologue_and_epilogue_insns): Expect the
5528 return insn optimization only if optimize.
5529
5530 2011-10-24 Georg-Johann Lay <avr@gjlay.de>
5531
5532 * config/avr/avr.c: Break long lines.
5533 Define target hooks on the fly if applicable.
5534 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
5535 overridden later.
5536 (targetm): Move definition to end of file.
5537 (avr_can_eliminate): Make static on the fly.
5538 (avr_frame_pointer_required_p): Ditto.
5539 (avr_hard_regno_scratch_ok): Ditto.
5540 (avr_builtin_setjmp_frame_value): Make static on the fly.
5541 Indent according to coding rules.
5542 (avr_case_values_threshold): Ditto.
5543 (avr_attribute_table): Move down.
5544
5545 2011-10-24 Ira Rosen <ira.rosen@linaro.org>
5546
5547 PR tree-optimization/50730
5548 * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
5549 analysis if encountered unsupported data-ref.
5550
5551 2011-10-23 David S. Miller <davem@davemloft.net>
5552
5553 * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
5554 cpu adjustment.
5555 * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
5556 append -mcpu=v9 when -mv8plus is given.
5557
5558 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
5559 between float and non-float regs when VIS3.
5560 * config/sparc/sparc.c (eligible_for_restore_insn): We can't
5561 use a restore when the source is a float register.
5562 (sparc_split_regreg_legitimate): When VIS3 allow moves between
5563 float and integer regs.
5564 (sparc_register_move_cost): Adjust to account for VIS3 moves.
5565 (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
5566 integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
5567 (sparc_secondary_reload): On 32-bit with VIS3 when moving between
5568 float and integer regs we sometimes need a FP_REGS class
5569 intermediate move to satisfy the reload. When this happens
5570 specify an extra cost of 2.
5571 (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
5572 (*movdi_insn_sp32_v9): Likewise.
5573 (*movdi_insn_sp64): Likewise.
5574 (*movsf_insn): Likewise.
5575 (*movdf_insn_sp32_v9): Likewise.
5576 (*movdf_insn_sp64): Likewise.
5577 (*zero_extendsidi2_insn_sp64): Likewise.
5578 (*sign_extendsidi2_insn): Likewise.
5579 (*movsi_insn_vis3): New insn.
5580 (*movdi_insn_sp32_v9_vis3): New insn.
5581 (*movdi_insn_sp64_vis3): New insn.
5582 (*movsf_insn_vis3): New insn.
5583 (*movdf_insn_sp32_v9_vis3): New insn.
5584 (*movdf_insn_sp64_vis3): New insn.
5585 (*zero_extendsidi2_insn_sp64_vis3): New insn.
5586 (*sign_extendsidi2_insn_vis3): New insn.
5587 (TFmode reg/reg split): Make sure both REG operands are float.
5588 (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
5589 easy constant to integer reg alternatives.
5590 (*mov<VM64:mode>_insn_sp64): Likewise.
5591 (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
5592 (*mov<VM32:mode>_insn_vis3): New insn.
5593 (*mov<VM64:mode>_insn_sp64_vis3): New insn.
5594 (*mov<VM64:mode>_insn_sp32_vis3): New insn.
5595 (VM64 reg<-->reg split): New splitter for 32-bit.
5596
5597 * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
5598 * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
5599 Declare it.
5600 * config/sparc/sparc.md (DImode reg/reg split): Use it.
5601 (DFmode reg/reg split): Likewise.
5602
5603 * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
5604 generating fzero and fone instructions.
5605 (DImode const_int --> reg splitter): Only trigger for integer regs.
5606
5607 * config/sparc/predicates.md (input_operand): Disallow vector
5608 constants other than 0 and -1.
5609 * config/sparc/sparc.c (sparc_preferred_reload_class): Return
5610 NO_REGS for vector constants other than 0 and -1.
5611
5612 * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
5613 SPARC_INT_REG_P): Define.
5614 (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
5615 (REGNO_OK_FOR_INDEX_P): Likewise.
5616 * config/sparc/sparc.c (gen_df_reg): Likewise.
5617 (eligible_for_return_delay): Likewise.
5618 (eligible_for_sibcall_delay): Likewise.
5619 (sparc_legitimate_address_p): Likewise.
5620 (emit_save_or_restore_regs): Likewise.
5621 (registers_ok_for_ldd_peep): Likewise.
5622 * config/spac/sparc.md (DI mode splitters): Likewise.
5623 (SF mode const splitters): Likewise.
5624 (DF mode splitters): Likewise.
5625 (32-bit DI mode logical op splitters): Likewise.
5626
5627 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
5628
5629 PR c++/50841
5630 Revert:
5631 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
5632
5633 PR c++/50810
5634 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
5635
5636 2011-10-23 Uros Bizjak <ubizjak@gmail.com>
5637
5638 * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
5639 (VI248_256): Remove mode iterator.
5640 * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
5641 instead of gen_avx2_lshlv4di3.
5642 (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
5643 CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
5644
5645 2011-10-23 Uros Bizjak <ubizjak@gmail.com>
5646
5647 * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
5648 (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
5649 (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
5650 pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
5651 *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
5652 iterator. Use sseintprefix mode attribute.
5653 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
5654 (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
5655 pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
5656 *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
5657 iterator. Use sseintprefix mode attribute.
5658 (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
5659 attributes.
5660 (*avx2_gatherdi<mode>): Ditto.
5661 (*avx2_gatherdi<mode>256): Ditto.
5662 (VI48_AVX2): Remove mode iterator.
5663 (gthrlastfp): Remove mode attribute.
5664
5665 2011-10-23 Paolo Carlini <paolo.carlini@oracle.com>
5666
5667 PR c++/50810
5668 * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
5669
5670 2011-10-23 Tom de Vries <tom@codesourcery.com>
5671
5672 PR tree-optimization/50763
5673 * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
5674 out of ...
5675 (same_succ_flush_bbs): Use same_succ_flush_bb.
5676 (purge_bbs): Remove argument. Remove calls to same_succ_flush_bbs,
5677 release_last_vdef and delete_basic_block.
5678 (unlink_virtual_phi): New function.
5679 (update_vuses): Add and use vuse1_phi_args argument. Set var to
5680 SSA_NAME_VAR of vuse1 or vuse2, and use var. Handle case that
5681 def_stmt2 is NULL. Use phi result as phi arg in case vuse1 or vuse2
5682 is NULL_TREE. Replace uses of vuse1 if vuse2 is NULL_TREE. Fix code
5683 to limit replacement of uses. Propagate phi argument for phis with a
5684 single argument.
5685 (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
5686 Set vuse1_phi_args if vuse1 is a phi defined in bb1. Add
5687 vuse1_phi_args as argument to call to update_vuses. Call
5688 release_last_vdef, same_succ_flush_bb, delete_basic_block. Update
5689 CDI_DOMINATORS info.
5690 (tail_merge_optimize): Remove argument in call to purge_bbs. Remove
5691 call to free_dominance_info. Only call calculate_dominance_info once.
5692
5693 2011-10-23 Eric Botcazou <ebotcazou@adacore.com>
5694
5695 * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
5696
5697 PR tree-optimization/44683
5698 * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
5699 we can be sure that there are no signed zeros involved.
5700
5701 2011-10-23 Jan Hubicka <jh@suse.cz>
5702
5703 * ipa-inline.c (estimate_badness): Scale up and handle overflows.
5704
5705 2011-10-23 Uros Bizjak <ubizjak@gmail.com>
5706
5707 PR target/50788
5708 * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
5709 Remove (match_dup 0).
5710 (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
5711 (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
5712 (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
5713 (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
5714 (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
5715 (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
5716
5717 2011-10-23 Ira Rosen <ira.rosen@linaro.org>
5718
5719 PR tree-optimization/50819
5720 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
5721 the last argument.
5722 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
5723 vect_analyze_data_ref_dependences.
5724 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
5725 the last argument. Check load-after-store dependence for unknown
5726 dependencies in basic blocks.
5727 (vect_analyze_data_ref_dependences): Update call to
5728 vect_analyze_data_ref_dependences.
5729 * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
5730 * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
5731 (vect_slp_analyze_bb_1): Update call to
5732 vect_analyze_data_ref_dependences. Don't call
5733 vect_bb_vectorizable_with_dependencies.
5734
5735 2011-10-22 David S. Miller <davem@davemloft.net>
5736
5737 * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
5738 SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
5739 * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
5740 (sparc_secondary_reload): New function.
5741
5742 * config/sparc/sparc.h (sparc_costs): Remove extern decl.
5743 (struct processor_costs): Move from here..
5744 * config/sparc/sparc.c (struct processor_costs): To here.
5745 (sparc_costs): Mark static.
5746
5747 * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
5748 * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
5749 Get rid of declarations.
5750
5751 2011-10-21 Paul Brook <paul@codesourcery.com>
5752
5753 * config/c6x/c6x.c (c6x_asm_emit_except_personality,
5754 c6x_asm_init_sections): New functions.
5755 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
5756
5757 2011-10-21 Jakub Jelinek <jakub@redhat.com>
5758
5759 PR target/50813
5760 * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
5761 V4DImode and V8SImode for !TARGET_AVX2.
5762
5763 2011-10-21 Bernd Schmidt <bernds@codesourcery.com>
5764
5765 PR bootstrap/50825
5766 * sched-deps.c (add_dependence): If not doing predication, promote
5767 REG_DEP_CONTROL to REG_DEP_ANTI.
5768
5769 2011-10-21 Georg-Johann Lay <avr@gjlay.de>
5770
5771 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
5772 instead of X to avr_legitimize_reload_address.
5773 * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
5774 first argument's type from rtx to rtx*.
5775 * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
5776 Pass PX to push_reload instead of &X. Change log messages for
5777 better distinction.
5778
5779 2011-10-21 Roland Stigge <stigge@antcom.de>
5780
5781 PR translation/47064
5782 * params.def: Fix typo "compilatoin" -> "compilation".
5783
5784 2011-10-21 H.J. Lu <hongjiu.lu@intel.com>
5785 Kirill Yukhin <kirill.yukhin@intel.com>
5786
5787 PR target/50740
5788 * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
5789 if max_level allows that.
5790
5791 2011-10-21 Bernd Schmidt <bernds@codesourcery.com>
5792
5793 * reg-notes.def (DEP_CONTROL): New.
5794 * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
5795 not doing speculation.
5796 * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
5797 record_hard_reg_uses_1, record_hard_reg_uses): New functions.
5798 * function.c (record_hard_reg_sets, record_hard_reg_uses,
5799 record_hard_reg_uses_1): Remove; move to rtlanal.c.
5800 * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
5801 * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
5802 (MUST_RECOMPUTE_SPEC_P): New macro.
5803 (real_insn_for_shadow): New function.
5804 (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
5805 toggle_cancelled_flags): New static functions.
5806 (schedule_insn): Relax an assert to only check for empty hard back
5807 dependencies. Skip cancelled dependencies. Call
5808 check_clobbered_conditions.
5809 (copy_insn_list): Remove function, renamed moved to lists.c.
5810 (save_backtrack_point): Use new spelling copy_INSN_LIST.
5811 (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
5812 (restore_last_backtrack_point): Likewise. Call toggle_cancelled_flags.
5813 (estimate_insn_tick): Ignore cancelled dependencies.
5814 (haifa_speculate_insn): Move declaration.
5815 (try_ready): Move code into recompute_todo_spec and call it. Tweak
5816 some asserts. Ensure predicated patterns are restored if necessary.
5817 Dump DEP_CONTROL flag.
5818 (haifa_change_pattern): Merge with sched_change_pattern.
5819 (sched_change_pattern): Remove function.
5820 * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove. All
5821 uses changed to simply not test NON_FLUSH_JUMP_P.
5822 (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
5823 REG_DEP_CONTROL.
5824 (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
5825 (reg_pending_control_uses, control_dependency_cache): New static
5826 variables.
5827 (sched_get_reverse_condition_uncached): New function.
5828 (sd_find_dep_between): Remove pointless assert. Look in
5829 control_dependency_cache.
5830 (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
5831 extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
5832 and control_dependency_cache.
5833 (sd_unresolve_dep): Use dep_spec_p.
5834 (add_dependence): Now a wrapper around add_dependence_1, handling
5835 REG_DEP_CONTROL specially.
5836 (flush_pending_lists): Clear pending_jump_insns.
5837 (sched_analyze_1): Handle pending_jump_insns like a memory flush.
5838 (sched_analyze_2): Unconditionally add to pending memory flushes,
5839 keep previous behaviour but apply it to pending_jump_insns instead.
5840 (sched_analyze_insn): Defer adding jump reg dependencies using
5841 reg_pending_control_uses; add them to the control_uses list. Handle
5842 pending_jump_insns and control_uses when adding dependence lists.
5843 (deps_analyze_insn): Update INSN_COND_DEPS.
5844 (deps_analyze_insn): Add jumps to pending_jump_insns rather than
5845 last_pending_memory_flush.
5846 (init_deps): Initialize pending_jump_insns.
5847 (free_deps): Free control_uses.
5848 (remove_from_deps): Remove from pending_jump_insns.
5849 (init_deps_global): Allocate reg_pending_control_uses).
5850 (finish_deps_global): Free it.
5851 (add_dependence_1): Renamed from add_dependence. Handle
5852 REG_DEP_CONTROL.
5853 * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
5854 (copy_INSN_LIST, concat_INSN_LIST): Declare.
5855 * sched-int.h (struct deps_reg): Add control_uses.
5856 (struct deps_desc): Add pending_jump_insns.
5857 (struct _haifa_deps_insn_data): Add cond_deps.
5858 (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
5859 (INSN_COND_DEPS, PREDICATED_PAT): New macros.
5860 (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
5861 (DEP_CONTROL): New macro.
5862 (DEP_TYPES): Include it.
5863 (HARD_DEP): Adjust definition.
5864 (DEP_CANCELLED): New macro.
5865 (enum SCHED_FLAGS): Add DO_PREDICATION.
5866 (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
5867 * sched-rgn.c (concat_INSN_LIST): Remove function.
5868 (deps_join): Handle pending_jump_insns.
5869 (free_pending_lists): Likewise.
5870 * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
5871 schedule.
5872
5873 2011-10-21 Georg-Johann Lay <avr@gjlay.de>
5874
5875 PR target/50820
5876 * config/avr/libgcc.S (__EIND__): New define to 0x3C.
5877 (__tablejump__): Consistently use EIND for indirect jump/call.
5878 (__tablejump_elpm__): Ditto.
5879
5880 2011-10-21 Bernd Schmidt <bernds@codesourcery.com>
5881
5882 * config/c6x/c6x.md (attr "op_pattern"): New.
5883 (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
5884 * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
5885 Likewise.
5886 * config/c6x/c6x-mult.md: Regenerate.
5887 * config/c6x/c6x.c: Include "regrename.h".
5888 (unit_req_table): New typedef.
5889 (unit_reqs): Use it for the declaration.
5890 (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
5891 get_unit_operand_masks, try_rename_operands, reshuffle_units): New
5892 static functions.
5893 (count_unit_reqs): New arg reqs. All callers changed. Use
5894 get_unit_reqs, and don't merge here.
5895 (res_mii): New arg reqs. All callers changed. Rewrite to use a loop
5896 using unit_req_factor.
5897 (hwloop_optimize): Call reshuffle_units. Call merge_unit_reqs after
5898 count_unit_reqs.
5899 (c6x_reorg): Add reg notes problem, and call df_analyze.
5900 * Makefile.in ($(out_object_file)): Depend on regrename.h.
5901
5902 2011-10-21 Kai Tietz <ktietz@redhat.com>
5903
5904 * fold-const.c (simple_operand_p_2): Handle integral
5905 casts from boolean-operands.
5906
5907 2011-10-21 Jan Hubicka <jh@suse.cz>
5908
5909 * cgraph.c (dump_cgraph_node): Dump alias flag.
5910 * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
5911 no destination.
5912 (get_alias_symbol): New function.
5913 (output_weakrefs): Output also weakrefs with no destinatoin.
5914 (lto_output_node): Output weakref alias flag when at function boundary.
5915
5916 2011-10-21 Andrew Stubbs <ams@codesourcery.com>
5917
5918 PR target/50809
5919 * config/arm/driver-arm.c (vendors): Make static.
5920
5921 2011-10-21 Uros Bizjak <ubizjak@gmail.com>
5922
5923 * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
5924 (ix86_emit_swsqrtsf): Force a into register.
5925
5926 2011-10-20 Mike Stump <mikestump@comcast.net>
5927
5928 * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
5929 after validate_change wipes it out.
5930
5931 2011-10-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5932
5933 * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
5934 before using the shufb instruction.
5935
5936 2011-10-20 Kirill Yukhin <kirill.yukhin@intel.com>
5937
5938 PR target/50766
5939 * config/i386/i386.md (bmi_bextr_<mode>): Update register/
5940 memory operand order.
5941 (bmi2_bzhi_<mode>3): Ditto.
5942 (bmi2_pdep_<mode>3): Ditto.
5943 (bmi2_pext_<mode>3): Ditto.
5944
5945 2011-10-20 Richard Henderson <rth@redhat.com>
5946
5947 * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
5948 * optabs.c (can_vec_perm_expr_p): Update to match.
5949 (expand_vec_perm_expr): Likewise.
5950 * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
5951 from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
5952 * doc/tm.texi.in: Likewise.
5953
5954 2011-10-20 Sergey Ostanevich <sergos.gnu@gmail.com>
5955
5956 PR target/50572
5957 * config/i386/i386.c (processor_target_table): Change Atom
5958 align_loops_max_skip to 15.
5959
5960 2011-10-20 Richard Henderson <rth@redhat.com>
5961
5962 * target.def (builtin_vec_perm): Remove.
5963 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
5964
5965 * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
5966 (IX86_BUILTIN_VEC_PERM_*): Remove.
5967 (bdesc_args): Remove vec_perm builtins
5968 (ix86_expand_builtin): Likewise.
5969 (ix86_expand_vec_perm_const_1): Rename from
5970 ix86_expand_vec_perm_builtin_1.
5971 (extract_vec_perm_cst): Merge into...
5972 (ix86_vectorize_vec_perm_const_ok): ... here. Rename from
5973 ix86_vectorize_builtin_vec_perm_ok.
5974 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
5975
5976 * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
5977 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
5978
5979 * config/spu/spu.c (spu_builtin_vec_perm): Remove.
5980 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
5981
5982 2011-10-20 Uros Bizjak <ubizjak@gmail.com>
5983
5984 PR target/47989
5985 * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
5986 * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
5987 * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
5988 implements vectorized single float division and vectorized sqrtf(x)
5989 with reciprocal sequence with additional Newton-Raphson step with
5990 -ffast-math.
5991
5992 2011-10-20 Dodji Seketeli <dodji@redhat.com>
5993
5994 * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
5995 ggc_alloced_size_order_for_request into ggc_round_alloc_size like
5996 it was done in ggc-page.c.
5997
5998 PR other/50659
5999 * doc/cppopts.texi: Use @smallexample/@end smallexample in
6000 documentation for -fdebug-cpp instead of @quotation/@end quotation
6001 that is not supported by contrib/texi2pod.pl.
6002
6003 2011-10-19 Jan Hubicka <jh@suse.cz>
6004
6005 * ipa-inline.c (inline_small_functions): Always update all calles after
6006 inlining.
6007
6008 2011-10-19 Jan Hubicka <jh@suse.cz>
6009
6010 PR bootstrap/50709
6011 * ipa-inline.c (inline_small_functions): Fix checking code to not make
6012 effect on fibheap stability.
6013
6014 2011-10-20 Maxim Kuvyrkov <maxim@codesourcery.com>
6015
6016 * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
6017
6018 2011-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6019
6020 PR target/50106
6021 * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
6022 reg size from 1-3.
6023
6024 2011-10-20 Richard Guenther <rguenther@suse.de>
6025
6026 * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
6027 and rotates to the set of expensive operations.
6028
6029 2011-10-19 David S. Miller <davem@davemloft.net>
6030
6031 * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
6032 (sparc_emit_set_const32): Likewise.
6033 (sparc_emit_set_const64_longway): Likewise.
6034 (sparc_emit_set_const64): Likewise.
6035 (sparc_legitimize_pic_address): Likewise.
6036 (memory_ok_for_ldd): Likewise.
6037
6038 2011-10-20 Dehao Chen <dehao@google.com>
6039
6040 * profile.c (compute_branch_probabilities): Compute and dump the
6041 overlap between the static estimation and the instrumentation profile.
6042 (OVERLAP_BASE): New macro.
6043 (compute_frequency_overlap): New function
6044
6045 2011-10-19 Jakub Jelinek <jakub@redhat.com>
6046
6047 * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
6048 d->op1 instead of d->op0 for the second vpshufb.
6049 (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
6050 (ix86_expand_vec_perm_const): If mask indicates two operands are
6051 needed, but both are the same and expanding them as d.op0 == d.op1
6052 failed, retry with d.op0 != d.op1.
6053 (ix86_expand_vec_perm_builtin): Likewise. Handle sorry printing
6054 also for d.nelt == 32.
6055
6056 PR middle-end/50754
6057 * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
6058 VEC_PERM_EXPR.
6059
6060 2011-10-19 Bernd Schmidt <bernds@codesourcery.com>
6061
6062 * regrename.h: New file.
6063 * regrename.c: Include it. Also include "emit-rtl.h".
6064 (struct du_head, struct du_chain, du_head_p DEF_VEC and
6065 DEF_VEC_ALLOC_P): Move to regrename.h.
6066 (do_replace): Remove declaration.
6067 (insn_rr): New variable.
6068 (cur_operand): New static variable.
6069 (regrename_chain_from_id): Renamed from chain_from_id and no longer
6070 static. All callers changed.
6071 (record_operand_use): New static function.
6072 (scan_rtx_reg): Use it.
6073 (find_best_rename_reg): New function, broken out of rename_chains.
6074 (rename_chains): Use it. Don't update chain regno and nregs here, ...
6075 (regrename_do_replace): ... do it here instead. Renamed from
6076 do_replace, and no longer static. All callers changed.
6077 (regrename_analyze): No longer static. New arg bb_mask.
6078 All callers changed. If bb_mask is nonzero, use it to limit the
6079 number of basic blocks we analyze. If we failed to analyze a block,
6080 clear insn operand data.
6081 (record_out_operands): New arg insn_info. Update cur_operand if it is
6082 nonnull.
6083 (build_def_use): If insn_rr is nonnull, pass an insn_info to
6084 record_out_operands, and update cur_operand here as well.
6085 (regrename_init, regrename_finish): New functions.
6086 (regrename_optimize): Use them.
6087 * Makefile.in (regrename.o): Adjust dependencies.
6088
6089 2011-10-19 Tom de Vries <tom@codesourcery.com>
6090
6091 PR tree-optimization/50769
6092 * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
6093 unconditionally. Handle case that phi_vuse2 is not an SSA_NAME. Add
6094 dummy argument .MEM to phi when increasing number of arguments of phi by
6095 redirecting edges to the block with phi.
6096
6097 2011-10-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6098
6099 PR bootstrap/50777
6100 * configure.ac: Save and restore CXXFLAGS around
6101 gcc_AC_CHECK_DECLS uses.
6102 Check for madvise() declaration with g++ if --enable-build-with-cxx.
6103 * configure: Regenerate.
6104 * config.in: Regenerate.
6105 * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
6106
6107 2011-10-19 Alexandre Oliva <aoliva@redhat.com>
6108
6109 PR debug/49310
6110 * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
6111 (variable_part): Replace offset with union.
6112 (enum onepart_enum, onepart_enum_t): New.
6113 (variable_def): Drop cur_loc_changed, add onepart.
6114 (value_chain_def, const_value_chain): Remove.
6115 (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
6116 (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
6117 (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
6118 (value_chain_pool, value_chains): Remove.
6119 (dropped_values): New.
6120 (struct parm_reg): Only if HAVE_window_save.
6121 (vt_stack_adjustments): Don't record register arguments.
6122 (dv_as_rtx): New.
6123 (dv_onepart_p): Return a onepart_enum_t.
6124 (onepart_pool): New.
6125 (dv_pool): Remove.
6126 (dv_from_rtx): New.
6127 (variable_htab_free): Release onepart aux data. Reset flags.
6128 (value_chain_htab_hash, value_chain_htab_eq): Remove.
6129 (unshare_variable): Use onepart field. Propagate onepart aux
6130 data or offset. Drop cur_loc_changed.
6131 (val_store): Cope with NULL insn. Rephrase dump output. Check
6132 for unsuitable locs. Add FIXME on using cselib locs.
6133 (val_reset): Remove FIXME of unfounded concerns.
6134 (val_resolve): Check for unsuitable locs. Add FIXME on using
6135 cselib locs.
6136 (variable_union): Use onepart field, adjust access to offset.
6137 (NO_LOC_P): New.
6138 (VALUE_CHANGED, DECL_CHANGED): Update doc.
6139 (set_dv_changed): Clear NO_LOC_P when changed.
6140 (find_loc_in_1pdv): Use onepart field.
6141 (intersect_loc_chains): Likewise.
6142 (unsuitable_loc): New.
6143 (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
6144 (add_value_chain, add_value_chains): Remove.
6145 (add_cselib_value_chains, remove_value_chain): Likewise.
6146 (remove_value_chains, remove_cselib_value_chains): Likewise.
6147 (canonicalize_loc_order_check): Use onepart. Drop cur_loc_changed.
6148 (canonicalize_values_star, canonicalize_vars_star): Use onepart.
6149 (variable_merge_over_cur): Likewise. Adjust access to offset.
6150 Drop cur_loc_changed.
6151 (variable_merge_over_src): Use onepart field.
6152 (remove_duplicate_values): Likewise.
6153 (variable_post_merge_new_vals): Likewise.
6154 (find_mem_expr_in_1pdv): Likewise.
6155 (dataflow_set_preserve_mem_locs): Likewise. Drop cur_loc_changed
6156 and value chains.
6157 (dataflow_set_remove_mem_locs): Likewise. Use VAR_LOC_FROM.
6158 (variable_different_p): Use onepart field. Move onepart test out
6159 of the loop.
6160 (argument_reg_set): Drop.
6161 (add_uses, add_stores): Preserve but do not record in dynamic
6162 tables equivalences for ENTRY_VALUEs and CFA_based addresses.
6163 Avoid unsuitable address expressions.
6164 (EXPR_DEPTH): Unlimit.
6165 (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
6166 (prepare_call_arguments): Use DECL_RTL_IF_SET.
6167 (dump_var): Adjust access to offset.
6168 (variable_from_dropped, recover_dropped_1paux): New.
6169 (variable_was_changed): Drop cur_loc_changed. Use onepart.
6170 Preserve onepart aux in empty_var. Recover empty_var and onepart
6171 aux from dropped_values.
6172 (find_variable_location_part): Special-case onepart. Adjust
6173 access to offset.
6174 (set_slot_part): Use onepart. Drop cur_loc_changed. Adjust
6175 access to offset. Initialize onepaux. Drop value chains.
6176 (delete_slot_part): Drop value chains. Use VAR_LOC_FROM.
6177 (VEC (variable, heap), VEC (rtx, stack)): Define.
6178 (expand_loc_callback_data): Drop dummy, cur_loc_changed,
6179 ignore_cur_loc. Add expanding, pending, depth.
6180 (loc_exp_dep_alloc, loc_exp_dep_clear): New.
6181 (loc_exp_dep_insert, loc_exp_dep_set): New.
6182 (notify_dependents_of_resolved_value): New.
6183 (update_depth, vt_expand_var_loc_chain): New.
6184 (vt_expand_loc_callback): Revamped.
6185 (resolve_expansions_pending_recursion): New.
6186 (INIT_ELCD, FINI_ELCD): New.
6187 (vt_expand_loc): Use the new macros above. Drop ignore_cur_loc
6188 parameter, adjust all callers.
6189 (vt_expand_loc_dummy): Drop.
6190 (vt_expand_1pvar): New.
6191 (emit_note_insn_var_location): Operate on non-debug decls only.
6192 Revamp multi-part cur_loc recomputation and one-part expansion.
6193 Drop cur_loc_changed. Adjust access to offset.
6194 (VEC (variable, heap)): Drop.
6195 (changed_variables_stack, changed_values_stack): Drop.
6196 (check_changed_vars_0, check_changed_vars_1): Remove.
6197 (check_changed_vars_2, check_changed_vars_3): Remove.
6198 (values_to_stack, remove_value_from_changed_variables): New.
6199 (notify_dependents_of_changed_value, process_changed_values): New.
6200 (emit_notes_for_changes): Revamp onepart updates.
6201 (emit_notes_for_differences_1): Use onepart. Drop cur_loc_changed
6202 and value chains. Propagate onepaux. Recover empty_var and onepaux
6203 from dropped_values.
6204 (emit_notes_for_differences_2): Drop value chains.
6205 (emit_notes_in_bb): Adjust.
6206 (vt_emit_notes): Drop value chains, changed_variables_stack.
6207 Initialize and release dropped_values.
6208 (create_entry_value): Revamp.
6209 (vt_add_function_parameter): Use new interface.
6210 (note_register_arguments): Remove.
6211 (vt_initialize): Drop value chains and register arguments.
6212 (vt_finalize): Drop value chains. Release windowed_parm_regs only
6213 if HAVE_window_save.
6214 * rtl.h: Document various pass-local uses of RTL flags.
6215 * tree.h (DECL_RTL_KNOWN_SET): New.
6216 * doc/invoke.texi (param max-vartrack-expr-depth): Update
6217 description and default.
6218
6219 2011-10-19 Georg-Johann Lay <avr@gjlay.de>
6220
6221 PR target/50447
6222 * config/avr/avr.md (cc): New alternative out_plus_noclobber.
6223 (adjust_len): Ditto.
6224 (addhi3): Don't pipe through short; use gen_int_mode instead.
6225 Prior to reload, expand to gen_addhi3_clobber.
6226 (*addhi3): Use avr_out_plus_noclobber if applicable, use
6227 out_plus_noclobber in cc and adjust_len attribute.
6228 (addhi3_clobber): 2 new RTL peepholes.
6229 (addhi3_clobber): New insn.
6230 * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
6231 * config/avr/avr.c (avr_out_plus_noclobber): New function.
6232 (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
6233 (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
6234 Set cc0 to set_zn for adiw on 16-bit values.
6235 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
6236 (expand_epilogue): No need to add 0 to frame_pointer_rtx.
6237
6238 2011-10-19 Richard Guenther <rguenther@suse.de>
6239
6240 PR middle-end/50780
6241 * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
6242 the condition is properly gimple before using it.
6243 * tree-eh (stmt_could_throw_1_p): Properly extract the
6244 operation type from comparisons.
6245
6246 2011-10-19 Roland Stigge <stigge@antcom.de>
6247
6248 PR translation/48638
6249 * plugin.c (add_new_plugin): Fix typo in fatal_error message.
6250
6251 2011-10-19 Roland Stigge <stigge@antcom.de>
6252
6253 PR translation/49517
6254 * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
6255
6256 2011-10-19 Richard Guenther <rguenther@suse.de>
6257
6258 PR middle-end/50768
6259 * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
6260
6261 2011-10-19 Andrey Belevantsev <abel@ispras.ru>
6262
6263 PR rtl-optimization/50340
6264 * sel-sched-ir.c (update_target_availability): LHS register
6265 availability is not known if the unavailable LHS of the other
6266 expression is a different register.
6267
6268 2011-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6269
6270 PR target/50310
6271 * config/spu/spu.c (spu_emit_vector_compare): Support unordered
6272 floating-point comparisons.
6273
6274 2011-10-19 Jan Hubicka <jh@suse.cz>
6275
6276 * cgraphunit.c (handle_alias_pairs): Also handle wekref with
6277 destination declared.
6278 (output_weakrefs): New function.
6279 * varpool.c (varpool_create_variable_alias): Handle external aliases.
6280
6281 2011-10-19 Jakub Jelinek <jakub@redhat.com>
6282
6283 * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
6284 second argument instead of mode.
6285
6286 2011-10-18 Jakub Jelinek <jakub@redhat.com>
6287
6288 * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
6289 mode SUBREG of operands[0] as target.
6290 (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
6291 (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
6292 (expand_vec_perm_1): Handle identity and some broadcast
6293 permutations.
6294 (expand_vec_perm_interleave2): Handle also 32-byte modes, using
6295 vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
6296 For d->testing_p return true earlier to avoid creating more GC
6297 garbage.
6298 (expand_vec_perm_vpermq_perm_1): New function.
6299 (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
6300 earlier to avoid creating more GC garbage. Fix handling of
6301 V16HImode. Avoid some SUBREGs in SET_DEST.
6302 (expand_vec_perm_broadcast_1): Return false for 32-byte integer
6303 vector modes.
6304 (expand_vec_perm_vpshufb4_vpermq2): New function.
6305 (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
6306 and expand_vec_perm_vpshufb4_vpermq2.
6307
6308 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
6309
6310 * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
6311 before exiting.
6312
6313 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
6314
6315 PR tree-optimization/50717
6316 * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
6317 parameter. Calculate 'type' from stmt.
6318 (convert_mult_to_widen): Update call the is_widening_mult_p.
6319 (convert_plusminus_to_widen): Likewise.
6320
6321 2011-10-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6322
6323 * config/spu/spu.c (struct machine_function): New data structure.
6324 (spu_init_machine_status): New function.
6325 (spu_option_override): Install it.
6326 (get_pic_reg): Set and use cfun->machine->pic_reg.
6327 (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
6328 (need_to_save_reg): Use cfun->machine->pic_reg instead of
6329 checking crtl->uses_pic_offset_table.
6330 (spu_expand_prologue): Likewise.
6331
6332 2011-10-18 Jakub Jelinek <jakub@redhat.com>
6333
6334 PR tree-optimization/50735
6335 * function.c (gimplify_parameters): Use create_tmp_var instead of
6336 create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex
6337 or vector type, set DECL_GIMPLE_REG_P.
6338
6339 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
6340
6341 * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
6342 * config/arm/arm.opt: Add 'native' processor_type and
6343 arm_arch enum values.
6344 * config/arm/arm.h (host_detect_local_cpu): New prototype.
6345 (EXTRA_SPEC_FUNCTIONS): New define.
6346 (MCPU_MTUNE_NATIVE_SPECS): New define.
6347 (DRIVER_SELF_SPECS): New define.
6348 * config/arm/driver-arm.c: New file.
6349 * config/arm/x-arm: New file.
6350 * doc/invoke.texi (ARM Options): Document -mcpu=native,
6351 -mtune=native and -march=native.
6352
6353 2011-10-18 Alexander Monakov <amonakov@ispras.ru>
6354
6355 PR rtl-optimization/50205
6356 * sel-sched.c (count_occurrences_1): Simplify on the assumption that
6357 p->x is a register. Forbid substitution when the same register is
6358 found in a different mode.
6359 (count_occurrences_equiv): Assert that 'what' is a register.
6360
6361 2011-10-18 Richard Guenther <rguenther@suse.de>
6362
6363 PR tree-optimization/50767
6364 * tree-ssa-pre.c (create_expression_by_pieces): Update the
6365 folded statement.
6366
6367 2011-10-18 Julian Brown <julian@codesourcery.com>
6368
6369 * config/arm/arm.c (arm_block_move_unaligned_straight)
6370 (arm_adjust_block_mem, arm_block_move_unaligned_loop)
6371 (arm_movmemqi_unaligned): New.
6372 (arm_gen_movmemqi): Support unaligned block copies.
6373
6374 2011-10-18 Ira Rosen <ira.rosen@linaro.org>
6375
6376 * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
6377 vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
6378 * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
6379 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
6380 (op_code_prio): Likewise.
6381 (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
6382 * optabs.c (optab_for_tree_code): Handle
6383 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
6384 (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
6385 * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
6386 * genopinit.c (optabs): Initialize the new optabs.
6387 * expr.c (expand_expr_real_2): Handle
6388 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
6389 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
6390 * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
6391 * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
6392 VEC_WIDEN_LSHIFT_LO_EXPR): New.
6393 * cfgexpand.c (expand_debug_expr): Handle new tree codes.
6394 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
6395 vect_recog_widen_shift_pattern.
6396 (vect_handle_widen_mult_by_const): Rename...
6397 (vect_handle_widen_op_by_const): ...to this. Handle shifts.
6398 Add a new argument, update documentation.
6399 (vect_recog_widen_mult_pattern): Assume that only second
6400 operand can be constant. Update call to
6401 vect_handle_widen_op_by_const.
6402 (vect_recog_over_widening_pattern): Fix typo.
6403 (vect_recog_widen_shift_pattern): New.
6404 * tree-vect-stmts.c (vectorizable_type_promotion): Handle
6405 widening shifts.
6406 (supportable_widening_operation): Likewise.
6407 * tree-inline.c (estimate_operator_cost): Handle new tree codes.
6408 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
6409 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
6410 * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
6411 (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
6412 vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
6413 Likewise.
6414 * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
6415 New.
6416 * config/arm/iterators.md (V_innermode): New.
6417 * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
6418 for widening shift.
6419
6420 2011-10-18 Richard Guenther <rguenther@suse.de>
6421
6422 * tree-ssa-alias.h (struct pt_solution): Remove
6423 vars_contains_restrict member.
6424 (pt_solutions_same_restrict_base): Remove.
6425 (pt_solution_set): Adjust.
6426 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
6427 vars_contains_restrict handling.
6428 (dump_points_to_solution): Likewise.
6429 (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
6430 * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
6431 field.
6432 (new_var_info): Do not initialize it.
6433 (ipa_escaped_pt): Adjust.
6434 (make_constraint_from_restrict): Make the tag global.
6435 (make_constraint_from_global_restrict): New function.
6436 (make_constraint_from_heapvar): Remove.
6437 (create_variable_info_for): Do not make restrict vars point
6438 to NONLOCAL.
6439 (intra_create_variable_infos): Likewise.
6440 (find_what_var_points_to): Remove vars_contains_restrict handling.
6441 (pt_solution_set): Adjust.
6442 (pt_solution_ior_into): Likewise.
6443 (pt_solutions_same_restrict_base): Remove.
6444 (compute_points_to_sets): Do not test is_restrict_var.
6445 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
6446 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
6447
6448 2011-10-18 Tom de Vries <tom@codesourcery.com>
6449
6450 PR tree-optimization/50672
6451 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
6452 factored out of ...
6453 (mark_virtual_phi_result_for_renaming): Use
6454 mark_virtual_operand_for_renaming.
6455 * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
6456 * tree-ssa-tail-merge.c (release_last_vdef): New function.
6457 (purge_bbs): Add update_vops parameter. Call release_last_vdef for each
6458 deleted basic block.
6459 (tail_merge_optimize): Add argument to call to purge_bbs.
6460
6461 2011-10-18 Richard Guenther <rguenther@suse.de>
6462
6463 PR middle-end/50716
6464 * expr.c (get_object_or_type_alignment): New function.
6465 (expand_assignment): Use it.
6466 (expand_expr_real_1): Likewise.
6467
6468 2011-10-18 Dodji Seketeli <dodji@redhat.com>
6469
6470 PR bootstrap/50760
6471 * input.c (dump_line_table_statistics): Use long, not size_t.
6472
6473 2011-10-17 Eric Botcazou <ebotcazou@adacore.com>
6474
6475 * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
6476
6477 2011-10-17 Simon Baldwin <simonb@google.com>
6478 Ian Lance Taylor <iant@google.com>
6479
6480 * configure.ac: Add --with-native-system-header-dir. Set and
6481 substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header
6482 when setting target_header_dir.
6483 * config.gcc: Always set native_system_header_dir.
6484 (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu.
6485 (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't
6486 use i386/t-djgpp.
6487 (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
6488 native_system_header_dir.
6489 (spu-*-elf*): Set native_system_header_dir.
6490 * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
6491 @NATIVE_SYSTEM_HEADER_DIR@.
6492 (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
6493 * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
6494 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
6495 STANDARD_INCLUDE_COMPONENT.
6496 (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename
6497 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
6498 * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
6499 STANDARD_INCLUDE_COMPONENT.
6500 * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
6501 * config/i386/t-mingw-w32: Likewise.
6502 * config/i386/t-mingw-w64: Likewise.
6503 * config/spu/t-spu-elf: Likewise.
6504 * config/i386/t-djgpp: Remove.
6505 * config/t-gnu: Remove.
6506 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
6507 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
6508 STANDARD_INCLUDE_COMPONENT.
6509 * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
6510 * config/spu/spu-elf.h: Likewise.
6511 * config/vms/xm-vms.h: Likewise.
6512 * config/gnu.h: Likewise.
6513 * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
6514 and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
6515 NATIVE_SYSTME_HEADER_COMPONENT.
6516 * doc/install.texi (Configuration): Document
6517 --with-native-system-header-dir. Mention it in the documentation
6518 for --with-sysroot and --with-build-sysroot.
6519 * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
6520 STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to
6521 NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of
6522 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
6523 * doc/fragments.texi (Target Fragment): Don't document
6524 NATIVE_SYSTEM_HEADER_DIR.
6525 * configure, doc/tm.texi: Rebuild.
6526
6527 2011-10-17 Richard Henderson <rth@redhat.com>
6528
6529 * config/sparc/sparc.md: Use register_or_zero_operand where rJ
6530 is the constraint.
6531
6532 * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
6533 patterns.
6534 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
6535 * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
6536
6537 2011-10-17 David S. Miller <davem@davemloft.net>
6538
6539 * config/sparc/sparc-modes.def: Add single entry vector modes for
6540 DImode and SImode.
6541 * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
6542 mode iterators.
6543 (mov<V32:mode>): Revert back to plain SFmode pattern.
6544 (*movsf_insn): Likewise.
6545 (mov<V64:mode>): Revert back to plain DFmode pattern.
6546 (*movdf_insn_sp32): Likewise.
6547 (*movdf_insn_sp32_v9): Likewise.
6548 (*movdf_insn_sp64): Likewise.
6549 (V64 mode splitters) Likewise.
6550 (addsi3): Remove VIS alternatives.
6551 (subsi3): Likewise.
6552 (and<V64I:mode>3): Revert to DImode only pattern.
6553 (and<V64I:mode>3_sp32): Likewise.
6554 (*and<V64I:mode>3_sp64): Likewise.
6555 (and<V32I:mode>3): Likewise.
6556 (*and_not_<V64I:mode>_sp32): Likewise.
6557 (*and_not_<V64I:mode>_sp64): Likewise.
6558 (*and_not_<V32I:mode>): Likewise.
6559 (ior<V64I:mode>3): Likewise.
6560 (*ior<V64I:mode>3_sp32): Likewise.
6561 (*ior<V64I:mode>3_sp64): Likewise.
6562 (ior<V32I:mode>3): Likewise.
6563 (*or_not_<V64I:mode>_sp32): Likewise.
6564 (*or_not_<V64I:mode>_sp64): Likewise.
6565 (*or_not_<V32I:mode>): Likewise.
6566 (xor<V64I:mode>3): Likewise.
6567 (*xor<V64I:mode>3_sp32): Likewise.
6568 (*xor<V64I:mode>3_sp64): Likewise.
6569 (xor<V32I:mode>3): Likewise.
6570 (V64I mode splitters): Likewise.
6571 (*xor_not_<V64I:mode>_sp32): Likewise.
6572 (*xor_not_<V64I:mode>_sp64): Likewise.
6573 (*xor_not_<V32I:mode>): Likewise.
6574 (one_cmpl<V64I:mode>2): Likewise.
6575 (*one_cmpl<V64I:mode>2_sp32): Likewise.
6576 (*one_cmpl<V64I:mode>2_sp64): Likewise.
6577 (one_cmpl<V32I:mode>2): Likewise.
6578 (VM32, VM64, VMALL): New mode iterators.
6579 (vbits, vconstr, vfptype): New mode attributes.
6580 (mov<VMALL:mode>): New expander.
6581 (*mov<VM32:mode>_insn): New insn.
6582 (*mov<VM64:mode>_insn_sp64): New insn.
6583 (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
6584 specifically for the register to memory case.
6585 (vec_init<mode>): New expander.
6586 (VADDSUB): New mode iterator.
6587 (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
6588 with...
6589 (<plusminus_insn><mode>3): New consolidated pattern.
6590 (VL): New mode iterator for logical operations.
6591 (vlsuf): New more attribute.
6592 (vlop): New code iterator.
6593 (vlinsn, vlninsn): New code attributes.
6594 (<code><mode>3): New insn to non-negated vector logical ops.
6595 (*not_<code><mode>3): Likewise for negated variants.
6596 (*nand<mode>_vis): New insn.
6597 (vlnotop): New code iterator.
6598 (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
6599 (one_cmpl<mode>2): New insn.
6600 (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
6601 (bshuffle<VM64:mode>_vis): Likewise.
6602 (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
6603 (fp<plusminus_insn>64_vis): Use V1DI mode.
6604 (VASS mode iterator): Use V1SI not SI mode.
6605 * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
6606 single-entry vector mode changes.
6607 (sparc_expand_builtin): Likewise.
6608 (sparc_expand_vector_init): New function.
6609 * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
6610
6611 2011-10-17 Kai Tietz <ktietz@redhat.com>
6612
6613 * fold-const.c (simple_operand_p_2): New function.
6614 (fold_truthop): Rename to
6615 (fold_truth_andor_1): function name.
6616 Additionally remove branching creation for logical and/or.
6617 (fold_truth_andor): Handle branching creation for logical and/or here.
6618
6619 2011-10-17 Andi Kleen <ak@linux.intel.com>
6620
6621 * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
6622
6623 2011-10-17 Georg-Johann Lay <avr@gjlay.de>
6624
6625 * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
6626 * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
6627 (adjust_len): Add alternative "call".
6628 (isa, enabled): New insn attributes.
6629 (length): Use match_test with AVR_HAVE_JMP_CALL instead of
6630 mcu_mega attribute.
6631 (*sbrx_branch<mode>): Ditto.
6632 (*sbrx_and_branch<mode>): Ditto.
6633 (*sbix_branch): Ditto.
6634 (*sbix_branch_bit7): Ditto.
6635 (*sbix_branch_tmp): Ditto.
6636 (*sbix_branch_tmp_bit7): Ditto.
6637 (jump): Ditto.
6638 (negsi2): Use attribute "isa" instead of assembler dialect.
6639 (extendhisi2): Ditto.
6640 (call_insn, call_value_insn): Set adjust_len attribute.
6641 (indirect_jump): Indent to coding rules.
6642 (call_prologue_saves): Use isa attribute instead of mcu_mega.
6643 (epilogue_restores): Ditto. Fix setting of SP as described in the
6644 RTX pattern.
6645 (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
6646 and *indirect_jump_avr6.
6647 (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
6648 (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
6649 (*tablejump_rjmp, *tablejump_lib): Remove.
6650 * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
6651
6652 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
6653
6654 PR c++/50757
6655 * doc/invoke.texi ([Wnonnull]): Update.
6656
6657 2011-10-17 Richard Henderson <rth@redhat.com>
6658
6659 PR 50746
6660 * optabs.c (expand_vec_perm_expr): Fix indexing error.
6661
6662 2011-10-17 Sergio Durigan Junior <sergiodj@redhat.com>
6663
6664 * configure.ac: Display `yes' if the SystemTap header has been found.
6665 * configure: Regenerate.
6666
6667 2011-10-08 Andi Kleen <ak@linux.intel.com>
6668
6669 PR other/50636
6670 * config.in, configure: Regenerate.
6671 * configure.ac (madvise): Add to AC_CHECK_FUNCS.
6672 * ggc-page.c (USING_MADVISE): Add.
6673 (page_entry): Add discarded field.
6674 (alloc_page): Check for discarded pages.
6675 (release_pages): Add USING_MADVISE branch.
6676
6677 2011-10-17 Richard Guenther <rguenther@suse.de>
6678
6679 PR tree-optimization/50729
6680 * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
6681 (simplify_conversion_using_ranges): Properly test the
6682 intermediate result.
6683
6684 2011-10-15 Tom Tromey <tromey@redhat.com>
6685 Dodji Seketeli <dodji@redhat.com>
6686
6687 * ggc.h (ggc_round_alloc_size): Declare new public entry point.
6688 * ggc-none.c (ggc_round_alloc_size): New public stub function.
6689 * ggc-page.c (ggc_alloced_size_order_for_request): New static
6690 function. Factorized from ggc_internal_alloc_stat.
6691 (ggc_round_alloc_size): New public function. Uses
6692 ggc_alloced_size_order_for_request.
6693 (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
6694 * ggc-zone.c (ggc_round_alloc_size): New public function extracted
6695 from ggc_internal_alloc_zone_stat.
6696 (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
6697 * toplev.c (general_init): Initialize
6698 line_table->alloced_size_for_request.
6699
6700 2011-10-15 Tom Tromey <tromey@redhat.com>
6701 Dodji Seketeli <dodji@redhat.com>
6702
6703 * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
6704 (num_expanded_macros_counter, num_macro_tokens_counter): Declare
6705 new counters.
6706 (dump_line_table_statistics): Define new function.
6707 * input.h (dump_line_table_statistics): Declare new function.
6708 * toplev.c (dump_memory_report): Call dump_line_table_statistics.
6709
6710 2011-10-15 Tom Tromey <tromey@redhat.com>
6711 Dodji Seketeli <dodji@redhat.com>
6712
6713 * doc/cppopts.texi: Document -fdebug-cpp.
6714 * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
6715
6716 2011-10-15 Tom Tromey <tromey@redhat.com>
6717 Dodji Seketeli <dodji@redhat.com>
6718
6719 * gcc/diagnostic.h (diagnostic_report_current_module): Add a
6720 location parameter.
6721 * diagnostic.c (diagnostic_report_current_module): Add a location
6722 parameter to the function definition. Use it instead of
6723 input_location. Resolve the virtual location rather than just
6724 looking up its map and risking to touch a resulting macro map.
6725 (default_diagnostic_starter): Pass the relevant diagnostic
6726 location to diagnostic_report_current_module.
6727 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
6728 (virt_loc_aware_diagnostic_finalizer): Likewise.
6729 (diagnostic_report_current_function): Pass the
6730 relevant location to diagnostic_report_current_module.
6731 * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
6732 new function.
6733 * toplev.c (general_init): By default, use the new
6734 virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
6735 * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
6736
6737 2011-10-15 Tom Tromey <tromey@redhat.com>
6738 Dodji Seketeli <dodji@redhat.com>
6739
6740 * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
6741 * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
6742 preprocessor related options.
6743
6744 2011-10-15 Tom Tromey <tromey@redhat>
6745 Dodji Seketeli <dodji@redhat.com>
6746
6747 * input.h (struct expanded_location): Move to libcpp/line-map.h.
6748 (LOCATION_COLUMN): New accessor
6749 (in_system_header_at): Use linemap_location_in_system_header_p.
6750 * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
6751 touching the internals of struct line_map. Use the public API instead.
6752 (diagnostic_report_diagnostic): Don't use relational operator '<'
6753 on virtual locations. Use linemap_location_before_p instead.
6754 * input.c (expand_location): Adjust to expand to the tokens'
6755 spelling location when macro location tracking is on.
6756
6757
6758 2011-10-08 Andi Kleen <ak@linux.intel.com>
6759
6760 * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
6761
6762 2011-10-13 Andi Kleen <ak@linux.intel.com>
6763
6764 * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
6765
6766 2011-10-16 Ira Rosen <ira.rosen@linaro.org>
6767
6768 PR tree-optimization/50727
6769 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
6770 DEF_STMT to the list of statements to be replaced by the
6771 pattern statements.
6772
6773 2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
6774
6775 PR rtl-optimization/50615
6776 * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
6777
6778 2011-10-16 Jakub Jelinek <jakub@redhat.com>
6779
6780 PR tree-optimization/50596
6781 * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
6782 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
6783 vect_recog_bool_pattern.
6784 (check_bool_pattern, adjust_bool_pattern_cast,
6785 adjust_bool_pattern, vect_recog_bool_pattern): New functions.
6786
6787 2011-10-16 Ira Rosen <ira.rosen@linaro.org>
6788
6789 * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
6790 treat the first load of the node as the first element in its
6791 interleaving chain.
6792 * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
6793 necessary and possible.
6794 (vect_build_slp_tree): Add new argument. Allow load groups of any size
6795 in basic blocks. Keep all the loads for further permutation check.
6796 Use the new argument to determine if there is a permutation. Update
6797 the recursive calls.
6798 (vect_supported_load_permutation_p): Allow subchains of interleaving
6799 chains in basic block vectorization.
6800 (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
6801 Check load permutation based on the new parameter.
6802 (vect_schedule_slp_instance): Don't start from the first element in
6803 interleaving chain unless the loads are permuted.
6804
6805 2011-10-15 Jan Hubicka <jh@suse.cz>
6806
6807 PR target/48668
6808 PR target/50689
6809 * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
6810 after function body.
6811
6812 2011-10-15 Richard Henderson <rth@redhat.com>
6813
6814 * tree-vect-slp.c: Include langhooks.h.
6815 (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
6816 (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify
6817 mask creation for VEC_PERM_EXPR.
6818 * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
6819 not the builtin.
6820 (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
6821 * Makefile.in (tree-vect-slp.o): Update dependency.
6822 * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
6823
6824 2011-10-15 Alan Modra <amodra@gmail.com>
6825
6826 PR bootstrap/50738
6827 * ifcvt.c (dead_or_predicable): Revert accidental commit with
6828 HAVE_simple_return test.
6829
6830 2011-10-15 Alan Modra <amodra@gmail.com>
6831
6832 * ifcvt.c (dead_or_predicable): Disable if-conversion when
6833 doing so is likely to kill a shrink-wrapping opportunity.
6834
6835 PR rtl-optimization/49941
6836 * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
6837
6838 * rtl.h (set_return_jump_label): Declare.
6839 * function.c (set_return_jump_label): New function, extracted..
6840 (thread_prologue_and_epilogue_insns): ..from here. Use it in
6841 another instance to set return jump_label.
6842 * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
6843 * reorg.c (find_end_label): Likewise.
6844
6845 2011-10-14 David S. Miller <davem@davemloft.net>
6846
6847 * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
6848 with a more complete cpp test.
6849 * config/sparc/linux64.h: Likewise.
6850 * config/sparc/linux.h: Likewise.
6851 * config/sparc/sparc.opt (sparc_debug): New target variable.
6852 (mdebug): New target option.
6853 * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
6854 TARGET_DEBUG_OPTIONS): New defines.
6855 * config/sparc/sparc.c (debug_target_flag_bits,
6856 debug_target_flags): New functions.
6857 (sparc_option_override): Add name strings back to cpu_table[].
6858 Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print
6859 out the target flags before and after override processing as well
6860 as the selected cpu. If MASK_V8PLUS, make sure that the selected
6861 cpu is at least v9.
6862
6863 2011-10-15 Oleg Endo <oleg.endo@t-online.de>
6864
6865 PR target/49263
6866 * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
6867 * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
6868 * config/sh/sh.md (tstsi_t): Name existing insn. Make inner
6869 and instruction commutative.
6870 (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
6871 tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
6872 tstsi_t_zero_extract_subreg_xor_little,
6873 tstsi_t_zero_extract_subreg_xor_big): New insns.
6874 (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
6875 asm output.
6876 (*andsi_compact): Reorder alternatives so that K08 is considered first.
6877
6878 2011-10-14 Eric Botcazou <ebotcazou@adacore.com>
6879
6880 PR target/50354
6881 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
6882 processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
6883
6884 2011-10-14 Gerald Pfeifer <gerald@pfeifer.com>
6885
6886 * invoke.texi (AVR Options): Avoid \leq{}.
6887
6888 2011-10-14 Kai Tietz <ktietz@redhat.com>
6889
6890 * gimplify.c (gimplify_expr): Take care that for bitwise-binary
6891 transformation the operands have compatible types.
6892
6893 2011-10-14 Jakub Jelinek <jakub@redhat.com>
6894
6895 * config/i386/sse.md (vec_widen_smult_hi_v8hi,
6896 vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
6897 vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
6898 mode iterator and any_extend code iterator.
6899 (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
6900 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
6901 also for TARGET_SSE4_1 using pmuldq insn.
6902 (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
6903 (sse2_sse4_1): New code attr.
6904 (udot_prodv4si): Macroize using any_extend code iterator.
6905 (<s>dot_prodv8si): New expander.
6906
6907 2011-10-14 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
6908
6909 * config/i386/i386.c (atom_cost): Changed cost for loading
6910 QImode using movzbl.
6911
6912 2011-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6913
6914 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
6915 change on October 11th, 2011.
6916
6917 2011-10-14 Jakub Jelinek <jakub@redhat.com>
6918
6919 * config/i386/sse.md (vec_interleave_high<mode>,
6920 vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
6921 * config/i386/i386.c (expand_vec_perm_interleave3): New function.
6922 (ix86_expand_vec_perm_builtin_1): Call it.
6923
6924 2011-10-14 Georg-Johann Lay <avr@gjlay.de>
6925
6926 Fix thinko from r179765
6927 * config/avr/avr.c (avr_option_override): Don't override
6928 flag_omit_frame_pointer if not actually needed.
6929
6930 2011-10-14 Georg-Johann Lay <avr@gjlay.de>
6931
6932 PR target/46278
6933 * doc/invoke.texi (AVR Options): Document -mstrict-X.
6934
6935 * config/avr/avr.opt (-mstrict-X): New option.
6936 (avr_strict_X): New variable reflecting -mstrict-X.
6937 * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
6938 outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
6939 (avr_legitimate_address_p): Pass outer_code to
6940 avr_reg_ok_for_addr_p and use that function in case PLUS.
6941 (avr_mode_code_base_reg_class): Depend on avr_strict_X.
6942 (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
6943 (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
6944
6945 2011-10-14 Jakub Jelinek <jakub@redhat.com>
6946
6947 * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
6948 of VI_128.
6949
6950 * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
6951 (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
6952 Use <sseinsnmode> instead of TI in mode attr.
6953
6954 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
6955
6956 * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
6957 * config/arm/linux-atomic.c: Change comment to point to 64bit version.
6958 (SYNC_LOCK_RELEASE): Instantiate 64bit version.
6959 * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
6960
6961 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
6962
6963 * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
6964 (arm_output_strex): Support strexd.
6965 (arm_output_it): New helper to output it in Thumb2 mode only.
6966 (arm_output_sync_loop): Support DI mode. Change comment to
6967 not support const_int.
6968 (arm_expand_sync): Support DI mode.
6969 * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
6970 and LDREXD.
6971 * config/arm/iterators.md (NARROW): move from sync.md.
6972 (QHSD): New iterator for all current ARM integer modes.
6973 (SIDI): New iterator for SI and DI modes only.
6974 * config/arm/sync.md (sync_predtab): New mode_attr.
6975 (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
6976 (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
6977 (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
6978 (sync_nandsi): Fold into sync_nand<mode>.
6979 (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
6980 (sync_new_nandsi): Fold into sync_new_nand<mode>.
6981 (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
6982 (sync_old_nandsi): Fold into sync_old_nand<mode>.
6983 (sync_compare_and_swap<mode>): Support SI & DI.
6984 (sync_lock_test_and_set<mode>): Likewise.
6985 (sync_<sync_optab><mode>): Likewise.
6986 (sync_nand<mode>): Likewise.
6987 (sync_new_<sync_optab><mode>): Likewise.
6988 (sync_new_nand<mode>): Likewise.
6989 (sync_old_<sync_optab><mode>): Likewise.
6990 (sync_old_nand<mode>): Likewise.
6991 (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
6992 (arm_sync_lock_test_and_setsi): Likewise.
6993 (arm_sync_new_<sync_optab>si): Likewise.
6994 (arm_sync_new_nandsi): Likewise.
6995 (arm_sync_old_<sync_optab>si): Likewise.
6996 (arm_sync_old_nandsi): Likewise.
6997 (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
6998 (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
6999 (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
7000 (arm_sync_new_nand<mode> NARROW): Likewise.
7001 (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
7002 (arm_sync_old_nand<mode> NARROW): Likewise.
7003
7004 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
7005
7006 PR target/48126
7007 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
7008
7009 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
7010
7011 * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
7012
7013 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
7014
7015 * doc/invoke.texi ([Wformat-zero-length]): Tidy.
7016
7017 2011-10-14 Jakub Jelinek <jakub@redhat.com>
7018
7019 * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
7020 on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
7021
7022 2011-10-14 Richard Guenther <rguenther@suse.de>
7023
7024 PR tree-optimization/50723
7025 * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
7026
7027 2011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
7028
7029 * gengtype.c (files_rules): Added rules for objc/objc-map.h and
7030 objc/objc-map.c.
7031
7032 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
7033
7034 PR c++/17212
7035 * doc/invoke.texi ([Wformat-zero-length]): Update.
7036
7037 2011-10-14 Iain Sandoe <iains@gcc.gnu.org>
7038
7039 PR bootstrap/50699
7040 * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
7041 build for powerpc targets. (darwin_patch_builtins): Only build for
7042 powerpc targets.
7043
7044 2011-10-14 Jakub Jelinek <jakub@redhat.com>
7045
7046 * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
7047 (avx_cvtdq2pd256_2): ... this.
7048 (sseunpackfltmode): New mode attr.
7049 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
7050 vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
7051 using VI2_AVX2 iterator.
7052 (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
7053
7054 2011-10-13 David S. Miller <davem@davemloft.net>
7055
7056 * config/sparc/sparc.md (plusminus): New code iterator.
7057 (plusminus_insn): New code attr.
7058 (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
7059 using plusminus and plusminus_insn.
7060 (fpadd64_vis, fpsub64_vis): Likewise.
7061
7062 2011-10-13 Richard Henderson <rth@redhat.com>
7063
7064 * doc/md.texi (vec_perm): Document fallback to byte permutation.
7065 * genopinit.c (optabs): Add vec_perm_const.
7066 * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
7067 Reject non-vector modes. Allow fallback to byte permutation.
7068 (expand_vec_perm_expr_1): Split out from ...
7069 (expand_vec_perm_expr): ... here. Allow fallback to byte permutation.
7070 * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
7071 * tree-vect-generic.c (lower_vec_perm): Update for name change.
7072
7073 2011-10-13 Richard Henderson <rth@redhat.com>
7074
7075 * config/rs6000/altivec.md (vec_permv16qi): New pattern.
7076
7077 * config/rs6000/spu.md (vec_permv16qi): New pattern.
7078
7079 * config/i386/i386.c (ix86_expand_vec_perm_const): New.
7080 * config/i386/i386-protos.h: Update.
7081 * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
7082 (vec_perm_const<VEC_PERM_CONST>): New expander.
7083
7084 * optabs.c (expand_vector_broadcast): New.
7085 (expand_binop): Expand scalar shifts of vectors to vector shifts
7086 of vectors, if the former isn't supported.
7087 * tree-vect-generic.c (expand_vector_operations_1): Don't do that
7088 here; always simplify to scalar shift of vector if possible.
7089
7090 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
7091 test for vector splat.
7092
7093 2011-10-13 Jakub Jelinek <jakub@redhat.com>
7094
7095 * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
7096
7097 2011-10-13 Jakub Jelinek <jakub@redhat.com>
7098 Richard Guenther <rguenther@suse.de>
7099
7100 * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
7101 or complex vars even if their DECL_UID is in not_reg_needs bitmap.
7102
7103 2011-10-13 Jakub Jelinek <jakub@redhat.com>
7104
7105 * config/i386/sse.md (reduc_umin_v8hi): New pattern.
7106 * config/i386/i386.c (ix86_build_const_vector): Handle
7107 also V32QI, V16QI, V16HI and V8HI modes.
7108 (emit_reduc_half): New function.
7109 (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
7110 Use emit_reduc_half helper function.
7111
7112 2011-10-13 Lawrence Crowl <crowl@google.com>
7113 Diego Novillo <dnovillo@google.com>
7114
7115 * lto-streamer-in.c (input_struct_function_base): Factor out of ...
7116 (input_function): ... here.
7117 * lto-streamer-out.c (output_struct_function_base): Factor out of ...
7118 (output_function): ... here.
7119
7120 2011-10-13 Gabriel Charette <gchare@google.com>
7121 Diego Novillo <dnovillo@google.com>
7122
7123 * streamer-hooks.h (struct streamer_hooks): Add hooks
7124 input_location and output_location.
7125 * lto-streamer-in.c (lto_input_location): Use
7126 streamer_hooks.input_location, if set.
7127 * lto-streamer-out.c (lto_output_location): Use
7128 streamer_hooks.output_location, if set.
7129
7130 2011-10-13 Eric Botcazou <ebotcazou@adacore.com>
7131
7132 * doc/invoke.texi (SPARC options): Document -mfix-at697f.
7133 * config/sparc/sparc.opt (mfix-at697f): New option.
7134 * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
7135 (sparc_reorg): New function.
7136
7137 2011-10-13 Richard Guenther <rguenther@suse.de>
7138
7139 PR tree-optimization/50712
7140 * ipa-split.c (split_function): Always re-gimplify parameters
7141 when they are not gimple vals before passing them. Properly
7142 check for type compatibility.
7143
7144 2011-10-13 Tom de Vries <tom@codesourcery.com>
7145
7146 * function.c (gimplify_parameters): Set number of arguments of call to
7147 BUILT_IN_ALLOCA_WITH_ALIGN to 2.
7148
7149 2011-10-13 Tom de Vries <tom@codesourcery.com>
7150
7151 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
7152 for static const strings.
7153 * varasm.c (build_constant_desc): Generate the memory location of the
7154 constant using gen_const_mem.
7155
7156 2011-10-13 Richard Guenther <rguenther@suse.de>
7157
7158 PR tree-optimization/50698
7159 * tree-data-ref.c (split_constant_offset_1): Also process
7160 offsets of &MEM.
7161
7162 2011-10-12 David S. Miller <davem@davemloft.net>
7163
7164 * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
7165 (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
7166 unspecs.
7167 (fpmerge_vis): Remove inaccurate comment, represent using vec_select
7168 of a vec_concat.
7169 (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
7170 (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
7171 Reimplement as unspecs and remove inaccurate comments.
7172 (vis3_shift_patname): New code attr.
7173 (<vis3_shift_insn><vbits>_vis): Rename to
7174 "v<vis3_shift_patname><mode>3".
7175 (vis3_addsub_ss_patname): New code attr.
7176 (<vis3_addsub_ss_insn><vbits>_vis): Rename to
7177 "<vis3_addsub_ss_patname><mode>3".
7178 * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
7179 accommodate pattern name changes.
7180
7181 * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
7182 to zero when assembler lacks support for such instructions.
7183 * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
7184 and MASK_FMAF in defaults when assembler lacks necessary support.
7185
7186 2011-10-12 Jakub Jelinek <jakub@redhat.com>
7187
7188 * config/i386/sse.md (vec_unpacks_lo_<mode>,
7189 vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
7190 vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
7191 * config/i386/i386.c (ix86_expand_sse_unpack): Handle
7192 V32QImode, V16HImode and V8SImode for TARGET_AVX2.
7193
7194 * config/i386/sse.md (vec_avx2): New mode_attr.
7195 (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
7196 (mul<mode>3): ... this.
7197
7198 * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
7199 * config/i386/i386.c (ix86_expand_vec_perm): Handle
7200 V16QImode and V32QImode for TARGET_AVX2.
7201 (MAX_VECT_LEN): Increase to 32.
7202 (expand_vec_perm_blend): Add support for 32-byte integer
7203 vectors with TARGET_AVX2.
7204 (valid_perm_using_mode_p): New function.
7205 (expand_vec_perm_pshufb): Add support for 32-byte integer
7206 vectors with TARGET_AVX2.
7207 (expand_vec_perm_vpshufb2_vpermq): New function.
7208 (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
7209 (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
7210 with TARGET_AVX2.
7211 (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
7212 and expand_vec_perm_vpshufb2_vpermq_even_odd.
7213 * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
7214 32-byte integer vector modes.
7215 (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
7216 (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
7217 (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
7218 4 new operands.
7219 (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
7220 match_dup, instead add 4 new operands and require they have
7221 right cross-lane values.
7222 (avx2_permv4di): Change into define_expand.
7223 (avx2_permv4di_1): New instruction.
7224 (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
7225 for "xm" constrained operand.
7226 (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
7227
7228 * config/i386/sse.md (avx2_gathersi<mode>,
7229 avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
7230 match_scratch, change memory_operand to register_operand,
7231 add (mem:BLK (scratch)) use.
7232 (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
7233 *avx2_gatherdi<mode>256): Add clobber of match_scratch,
7234 add earlyclobber to the output operand and match_scratch,
7235 add (mem:BLK (scratch)) use, change the other mem to match_operand.
7236 Use %p6 instead of %c6 in the pattern.
7237 * config/i386/i386.c (ix86_expand_builtin): Adjust for
7238 operand 2 being a Pmode register_operand instead of memory_operand.
7239
7240 2011-10-12 Kai Tietz <ktietz@redhat.com>
7241
7242 * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
7243
7244 2011-10-12 Steve Ellcey <sje@cup.hp.com>
7245
7246 * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
7247
7248 2011-10-12 Richard Guenther <rguenther@suse.de>
7249
7250 * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
7251 of the first store we visit in a basic-block.
7252 (get_continuation_for_phi): Search for a candidate VUSE that
7253 might dominates all others. Do pairwise disambiguation against
7254 that candidate.
7255
7256 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
7257
7258 PR tree-optimization/50189
7259 * tree-vrp.c (extract_range_from_assert): Use the type of
7260 the variable, not the limit.
7261
7262 2011-10-12 Richard Guenther <rguenther@suse.de>
7263
7264 PR tree-optimization/50700
7265 * tree-object-size.c (addr_object_size): Simplify and treat
7266 MEM_REF bases consistently.
7267
7268 2011-10-12 Bernd Schmidt <bernds@codesourcery.com>
7269
7270 * function.c (prepare_shrink_wrap, bb_active_p): New function.
7271 (thread_prologue_and_epilogue_insns): Use bb_active_p. Call
7272 prepare_shrink_wrap, then recompute bb_active_p for the last block.
7273
7274 2011-10-12 Joseph Myers <joseph@codesourcery.com>
7275
7276 PR c/50565
7277 * convert.c (convert_to_integer): Do not narrow operands of
7278 pointer subtraction.
7279
7280 2011-10-12 Nick Clifton <nickc@redhat.com>
7281
7282 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to
7283 emit a .eabi_attribute assembler directive, possibly with a
7284 comment attached.
7285 * config/arm/arm.c (arm_file_start): Use the new macro.
7286 * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
7287
7288 2011-10-12 Georg-Johann Lay <avr@gjlay.de>
7289
7290 PR target/49939
7291 * config/avr/avr.md (*movqi): Rename to movqi_insn.
7292 (*call_insn): Rename to call_insn.
7293 (*call_value_insn): Rename to call_value_insn.
7294 * config/avr/avr.c (avr_2word_insn_p): New static function.
7295 (jump_over_one_insn_p): Use it.
7296
7297 2011-10-12 Richard Sandiford <richard.sandiford@linaro.org>
7298
7299 * expr.h (copy_blkmode_to_reg): Declare.
7300 * expr.c (copy_blkmode_to_reg): New function.
7301 (expand_assignment): Don't expand register RESULT_DECLs before
7302 the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
7303 RESULT_DECL register.
7304 (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
7305 * stmt.c (expand_return): Move BLKmode-to-register code into
7306 copy_blkmode_to_reg.
7307
7308 2011-10-11 Eric Botcazou <ebotcazou@adacore.com>
7309
7310 PR target/49965
7311 * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
7312 (mov<F:mode>cc): Likewise.
7313
7314 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7315
7316 * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
7317
7318 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7319
7320 * tree.h (built_in_decls): Delete old interface with two parallel
7321 arrays to hold standard builtin declarations, and replace it with
7322 a function based interface that can support creating builtins on
7323 the fly in the future. Change all uses, and poison the old
7324 names. Make sure 0 is not a legitimate builtin index.
7325 (implicit_built_in_decls): Ditto.
7326 (built_in_info): Ditto.
7327 (BUILTIN_VALID_P): Ditto.
7328 (builtin_decl_explicit): Ditto.
7329 (builtin_decl_implicit): Ditto.
7330 (set_builtin_decl): Ditto.
7331 (set_builtin_decl_implicit_p): Ditto.
7332 (builtin_decl_explicit_p): Ditto.
7333 (builtin_decl_implicit_p): Ditto.
7334 * tree-complex.c (expand_complex_libcall): Ditto.
7335 * tree-loop-distribution.c (generate_memset_zero): Ditto.
7336 * tree-ssa-strlen.c (get_string_length): Ditto.
7337 (handle_builtin_strcpy): Ditto.
7338 (handle_builtin_strcat): Ditto.
7339 * tree.c (iterative_hash_expr): Ditto.
7340 (local_define_builtin): Ditto.
7341 (build_common_builtin_nodes): Ditto.
7342 * builtins.c (built_in_decls): Ditto.
7343 (implicit_built_in_decls): Ditto.
7344 (built_in_info): Ditto
7345 (expand_builtin_classify_type): Ditto.
7346 (mathfn_built_in_1): Ditto.
7347 (expand_builtin_cexpi): Ditto.
7348 (expand_builtin_mempcpy_args): Ditto.
7349 (expand_builtin_stpcpy): Ditto.
7350 (gimplify_va_arg_expr): Ditto.
7351 (expand_builtin_sync_operation): Ditto.
7352 (build_builtin_expect_predicate): Ditto.
7353 (fold_builtin_memory_op): Ditto.
7354 (fold_builtin_strcpy): Ditto.
7355 (fold_builtin_stpcpy): Ditto.
7356 (fold_builtin_strncpy): Ditto.
7357 (fold_builtin_interclass_mathfn): Ditto.
7358 (fold_builtin_classify): Ditto.
7359 (fold_builtin_2): Ditto.
7360 (fold_builtin_strstr): Ditto.
7361 (fold_builtin_strrchr): Ditto.
7362 (fold_builtin_strpbrk): Ditto.
7363 (fold_builtin_strcat): Ditto.
7364 (fold_builtin_strncat): Ditto.
7365 (fold_builtin_strcspn): Ditto.
7366 (fold_builtin_fputs): Ditto.
7367 (fold_builtin_sprintf): Ditto.
7368 (fold_builtin_snprintf): Ditto.
7369 (expand_builtin_memory_chk): Ditto.
7370 (fold_builtin_memory_chk): Ditto.
7371 (fold_builtin_stxcpy_chk): Ditto.
7372 (fold_builtin_strncpy_chk): Ditto.
7373 (fold_builtin_strcat_chk): Ditto.
7374 (fold_builtin_strncat_chk): Ditto.
7375 (fold_builtin_sprintf_chk_1): Ditto.
7376 (fold_builtin_snprintf_chk_1): Ditto.
7377 (fold_builtin_printf): Ditto.
7378 (fold_builtin_fprintf): Ditto.
7379 (fold_call_stmt): Ditto.
7380 (set_builtin_user_assembler_name): Ditto.
7381 * tree-emutls.c (emutls_common_1): Ditto.
7382 * omp-low.c (scan_omp): Ditto.
7383 (lower_rec_input_clauses): Ditto.
7384 (lower_reduction_clauses): Ditto.
7385 (expand_parallel_call): Ditto.
7386 (expand_task_call): Ditto.
7387 (maybe_catch_exception): Ditto.
7388 (optimize_omp_library_calls): Ditto.
7389 (expand_omp_for_generic): Ditto.
7390 (expand_omp_for_static_nochunk): Ditto.
7391 (expand_omp_for_static_chunk): Ditto.
7392 (expand_omp_sections): Ditto.
7393 (expand_omp_atomic_fetch_op): Ditto.
7394 (expand_omp_atomic_pipeline): Ditto.
7395 (expand_omp_atomic_mutex): Ditto.
7396 (lower_omp_single_simple): Ditto.
7397 (lower_omp_single_copy): Ditto.
7398 (lower_omp_master): Ditto.
7399 (lower_omp_ordered): Ditto.
7400 (lower_omp_critical): Ditto.
7401 * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
7402 * builtins.c (DEF_BUILTIN_STUB): Ditto.
7403 (BUILT_IN_NONE): Ditto.
7404 * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
7405 * gimple-low.c (lower_function_body): Ditto.
7406 (lower_builtin_setjmp): Ditto.
7407 * c-decl.c (merge_decls): Ditto.
7408 * tree-eh.c (lower_resx): Ditto.
7409 (lower_resx): Ditto.
7410 (lower_eh_dispatch): Ditto.
7411 * function (gimplify_parameters): Ditto.
7412 * c-typeck.c (build_function_call_vec): Ditto.
7413 * gimplify.c (build_stack_save_restore): Ditto.
7414 (gimplify_vla_decl): Ditto.
7415 (gimplify_modify_expr_to_memcpy): Ditto.
7416 (gimplify_modify_expr_to_memset): Ditto.
7417 (gimplify_variable_sized_compare): Ditto.
7418 (gimplify_function_tree): Ditto.
7419 * calls.c (emit_call_1): Ditto.
7420 * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
7421 * tree-nested.c (convert_nl_goto_reference): Ditto.
7422 (convert_tramp_reference_op): Ditto.
7423 (finalize_nesting_tree_1): Ditto.
7424 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
7425 (tree_ssa_prefetch_arrays): Ditto.
7426 * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
7427 * system.h (built_in_decls): Ditto.
7428 (implicit_built_in_decls): Ditto.
7429 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7430 * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
7431 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
7432 (ix86_veclibabi_svml): Ditto.
7433 (ix86_veclibabi_acml): Ditto.
7434 * config/vms/vms.c (vms_patch_builtins): Ditto.
7435 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
7436 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
7437 (rs6000_builtin_vectorized_libmass): Ditto.
7438 (rs6000_init_builtins): Ditto.
7439 * config/darwin.c (darwin_override_options): Ditto.
7440 (darwin_patch_builtin): Ditto.
7441 (darwin_rename_builtins): Ditto.
7442 * config/pa/pa.c (pa_init_builtins): Ditto.
7443
7444 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7445
7446 * tree.h (copy_ref_info): Expose existing function.
7447 * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
7448 * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
7449
7450 2011-10-11 Georg-Johann Lay <avr@gjlay.de>
7451
7452 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
7453 prototype.
7454 (avr_regno_mode_code_ok_for_base_p): New prototype.
7455 * config/avr/avr.h (BASE_REG_CLASS): Remove.
7456 (REGNO_OK_FOR_BASE_P): Remove.
7457 (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
7458 (REG_OK_FOR_BASE_STRICT_P): Remove.
7459 (MODE_CODE_BASE_REG_CLASS): New define.
7460 (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
7461 * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
7462 (avr_regno_mode_code_ok_for_base_p): New function.
7463 (avr_reg_ok_for_addr_p): New static function.
7464 (avr_legitimate_address_p): Use it. Beautify.
7465
7466 2011-10-11 Georg-Johann Lay <avr@gjlay.de>
7467
7468 PR target/50447
7469 * config/avr/avr.md (cc): Add out_plus attribute alternative.
7470 (addsi3): Use it. Adapt avr_out_plus to new prototype. Use
7471 avr_out_plus for all CONST_INT addends.
7472 * config/avr/avr-protos.h (avr_out_plus): Change prototype.
7473 * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
7474 CC_OUT_PLUS.
7475 (avr_out_plus_1): Change prototype and report effect on cc0.
7476 (avr_out_plus): Ditto.
7477 (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
7478
7479 2011-10-11 H.J. Lu <hongjiu.lu@intel.com>
7480
7481 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
7482 the extra break.
7483
7484 2011-10-11 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
7485
7486 * doc/invoke.texi: Document new warning.
7487 * common.opt (Wvector-operation-performance): Define new warning.
7488 * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
7489 vector operation.
7490 (exapnd_vector_parallel): Warn about expanded vector operation.
7491 (lower_vec_shuffle): Warn about expanded vector operation.
7492 * c-typeck.c (c_build_vec_perm_expr): Store correct location
7493 when creating VEC_PERM_EXPR.
7494
7495 2011-10-11 Richard Guenther <rguenther@suse.de>
7496
7497 PR tree-optimization/50204
7498 * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
7499 two argument handling from ...
7500 (get_continuation_for_phi): ... here. Handle arbitrary number
7501 of PHI args.
7502
7503 2011-10-11 Richard Sandiford <richard.sandiford@linaro.org>
7504
7505 * modulo-sched.c: Fix comment typo. Mention the possibility
7506 of using scheduling windows of II+1 cycles.
7507
7508 2011-10-11 Tristan Gingold <gingold@adacore.com>
7509
7510 * doc/invoke.texi (C Dialect Options): Document
7511 -fallow-parameterless-variadic-functions.
7512 * c-parser.c (c_parser_parms_list_declarator): Handle it.
7513
7514 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
7515
7516 * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
7517 to 0 if frame pointer is needed for unwinding.
7518
7519 2011-10-10 Uros Bizjak <ubizjak@gmail.com>
7520
7521 PR bootstrap/50665
7522 * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum
7523 optab_index to enum direct_optab_index.
7524 (vec_perm_optab): Update.
7525
7526 2011-10-10 Anatoly Sokolov <aesok@post.ru>
7527
7528 * config/cris/cris.c (cris_preferred_reload_class): New function.
7529 (TARGET_PREFERRED_RELOAD_CLASS): Define.
7530 * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
7531
7532 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
7533
7534 * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
7535 !AVR_HAVE_JMP_CALL.
7536 (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
7537 (*tablejump_enh, *tablejump): Remove insns.
7538 * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
7539 EIJMP for indirect jump. Use LPM Z+ where available.
7540
7541 2011-10-10 Richard Henderson <rth@redhat.com>
7542
7543 * doc/md.texi (vec_perm_const): Fix typo in cindex.
7544
7545 2011-10-10 Kirill Yukhin <kirill.yukhin@intel.com>
7546 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
7547
7548 * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
7549
7550 2011-10-10 Richard Guenther <rguenther@suse.de>
7551
7552 PR middle-end/50389
7553 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
7554 mark symbols for renaming. Append the VUSE to all statements
7555 that possibly can have one.
7556
7557 2011-10-10 Richard Guenther <rguenther@suse.de>
7558
7559 * ipa-split.c (pass_split_functions): Add verification TODOs.
7560 (pass_feedback_split_functions): Likewise.
7561
7562 2011-10-10 Richard Guenther <rguenther@suse.de>
7563
7564 PR middle-end/50195
7565 * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
7566 only when optimizing.
7567
7568 2011-10-10 Nick Clifton <nickc@redhat.com>
7569
7570 PR middle-end/49801
7571 * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
7572 df_get_live_out instead of accessing the bitmaps directly.
7573 (execute_compare_elim_after_reload): Remove calls to df_set_flags,
7574 df_live_add_problem and df_analyze.
7575
7576 2011-10-10 Michael Matz <matz@suse.de>
7577
7578 PR middle-end/50638
7579 * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
7580
7581 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
7582
7583 * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
7584 (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
7585 (node_sched_params): Remove first_reg_move and nreg_moves.
7586 (ps_num_consecutive_stages, extend_node_sched_params): New functions.
7587 (update_node_sched_params): Move up file.
7588 (print_node_sched_params): Print the stage. Don't dump info related
7589 to first_reg_move and nreg_moves.
7590 (set_columns_for_row): New function.
7591 (set_columns_for_ps): Move up file and use set_columns_for_row.
7592 (schedule_reg_move): New function.
7593 (schedule_reg_moves): Call extend_node_sched_params and
7594 schedule_reg_move. Extend size of uses bitmap. Initialize
7595 num_consecutive_stages. Return false if a move could not be
7596 scheduled.
7597 (apply_reg_moves): Don't emit moves here.
7598 (permute_partial_schedule): Handle register moves.
7599 (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according
7600 to the same stage-count test as ddg nodes.
7601 (generate_prolog_epilog): Update calls accordingly.
7602 (sms_schedule): Allow move-scheduling to add a new first stage.
7603
7604 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
7605
7606 * modulo-sched.c (ps_insn): Adjust comment.
7607 (ps_reg_move_info): New structure.
7608 (partial_schedule): Add reg_moves field.
7609 (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
7610 (node_sched_params): Turn first_reg_move into an identifier.
7611 (ps_reg_move): New function.
7612 (ps_rtl_insn): Cope with register moves.
7613 (ps_first_note): Adjust comment and assert that the instruction
7614 isn't a register move.
7615 (node_sched_params): Replace with...
7616 (node_sched_param_vec): ...this vector.
7617 (set_node_sched_params): Adjust accordingly.
7618 (print_node_sched_params): Take a partial schedule instead of a ddg.
7619 Use ps_rtl_insn and ps_reg_move.
7620 (generate_reg_moves): Rename to...
7621 (schedule_reg_moves): ...this. Remove rescan parameter. Record each
7622 move in the partial schedule, but don't emit it here. Don't perform
7623 register substitutions here either.
7624 (apply_reg_moves): New function.
7625 (duplicate_insns_of_cycles): Use register indices directly,
7626 rather than finding instructions using PREV_INSN. Use ps_reg_move.
7627 (sms_schedule): Call schedule_reg_moves before committing to
7628 a partial schedule. Try the next ii if the schedule fails.
7629 Use apply_reg_moves instead of generate_reg_moves. Adjust
7630 call to print_node_sched_params. Free node_sched_param_vec
7631 instead of node_sched_params.
7632 (create_partial_schedule): Initialize reg_moves.
7633 (free_partial_schedule): Free reg_moves.
7634
7635 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
7636
7637 * modulo-sched.c (ps_insn): Replace node field with an identifier.
7638 (SCHED_ASAP): Replace with..
7639 (NODE_ASAP): ...this macro.
7640 (SCHED_PARAMS): New macro.
7641 (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
7642 (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
7643 (node_sched_params): Remove asap.
7644 (ps_rtl_insn, ps_first_note): New functions.
7645 (set_node_sched_params): Use XCNEWVEC. Don't copy across the
7646 asap values.
7647 (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
7648 (generate_reg_moves): Pass ids to the SCHED_* macros.
7649 (update_node_sched_params): Take a ps insn identifier rather than
7650 a node as parameter. Use ps_rtl_insn.
7651 (set_columns_for_ps): Update for above field and SCHED_* macro changes.
7652 (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
7653 (optimize_sc): Update for above field and SCHED_* macro changes.
7654 Update calls to try_scheduling_node_in_cycle and
7655 update_node_sched_params.
7656 (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
7657 macro changes. Use ps_rtl_insn and ps_first_note.
7658 (sms_schedule): Pass ids to the SCHED_* macros.
7659 (get_sched_window): Adjust for above field and SCHED_* macro changes.
7660 Use NODE_ASAP instead of SCHED_ASAP.
7661 (try_scheduling_node_in_cycle): Remove node parameter. Update
7662 call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros.
7663 (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
7664 (ps_insert_empty_row): Adjust for above field changes.
7665 (compute_split_row): Use ids rather than nodes.
7666 (verify_partial_schedule): Adjust for above field changes.
7667 (print_partial_schedule): Use ps_rtl_insn.
7668 (create_ps_insn): Take an id rather than a node.
7669 (ps_insn_find_column): Adjust for above field changes.
7670 Use ps_rtl_insn.
7671 (ps_insn_advance_column): Adjust for above field changes.
7672 (add_node_to_ps): Remove node parameter. Update call to
7673 create_ps_insn.
7674 (ps_has_conflicts): Use ps_rtl_insn.
7675 (ps_add_node_check_conflicts): Replace node parameter than an id.
7676
7677 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
7678
7679 * modulo-sched.c (undo_replace_buff_elem): Delete.
7680 (generate_reg_moves): Don't build and return an undo list.
7681 (free_undo_replace_buff): Delete.
7682 (sms_schedule): Adjust call to generate_reg_moves.
7683 Don't call free_undo_replace_buff.
7684
7685 2011-10-10 Matthias Klose <doko@ubuntu.com>
7686
7687 * common/config/m32c: Remove empty directory.
7688
7689 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
7690
7691 * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
7692
7693 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
7694
7695 PR target/50652
7696 * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
7697 atmega164a to 0x100.
7698
7699 2011-10-09 Eric Botcazou <ebotcazou@adacore.com>
7700
7701 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
7702 the replacement if the conversion to the LHS type is not useless.
7703
7704 2011-10-09 Ira Rosen <ira.rosen@linaro.org>
7705
7706 PR tree-optimization/50635
7707 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
7708 DEF_STMT to the list of statements to be replaced by the
7709 pattern statements.
7710 (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
7711
7712 2011-10-09 Anatoly Sokolov <aesok@post.ru>
7713
7714 * system.h: Commit forgotten hunk in previous patch.
7715 (OUTPUT_ADDR_CONST_EXTRA): Poison.
7716
7717 2011-10-08 Nicola Pero <nicola.pero@meta-innovation.com>
7718
7719 PR libobjc/50428
7720 * doc/objc.texi (Garbage Collection): Updated example to protect
7721 +initialize against execution in subclasses.
7722
7723 2011-10-07 Richard Henderson <rth@redhat.com>
7724
7725 * doc/extend.texi (__builtin_shuffle): Improve the description to
7726 include the modulus of the selector. Mention OpenCL.
7727 * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
7728
7729 * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
7730 * genopinit.c (optabs): Rename vshuffle to vec_perm.
7731 * c-typeck.c (c_build_vec_perm_expr): Rename from
7732 c_build_vec_shuffle_expr. Update for name changes.
7733 * optabs.c (expand_vec_perm_expr_p): Rename from
7734 expand_vec_shuffle_expr_p.
7735 (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
7736 * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
7737 (vec_perm_optab): Rename from vshuffle_optab.
7738 * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
7739 c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
7740 tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
7741
7742 * config/i386/i386.c (ix86_expand_vec_perm): Rename from
7743 ix86_expand_vshuffle.
7744 * config/i386/i386-protos.h: Update.
7745 * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
7746 (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
7747
7748 2011-10-07 Richard Henderson <rth@redhat.com>
7749
7750 * config/i386/predicates.md (avx2_pblendw_operand): New.
7751 * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
7752 (avx2_pblendw, *avx2_pblendw): New expander and insn.
7753
7754 2011-10-07 Richard Henderson <rth@redhat.com>
7755
7756 * config/i386/i386.c (bdesc_args): Update code for
7757 __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256,
7758 and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
7759 (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
7760 * config/i386/sse.md (mode iterator V16): Add V2TI.
7761 (mode iterator SSESCALARMODE): Use V2TI not V4DI.
7762 (mode attr ssse3_avx2): Add V2TI.
7763 (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
7764
7765 2011-10-07 David S. Miller <davem@davemloft.net>
7766
7767 PR 50655
7768 * configure.ac: Add .register directives to VIS3 test.
7769 * configure: Regenerate.
7770
7771 2011-10-07 Richard Henderson <rth@redhat.com>
7772
7773 * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
7774
7775 2011-10-07 Richard Henderson <rth@redhat.com>
7776
7777 PR 49752
7778 * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
7779
7780 2011-10-07 Andrew Stubbs <ams@codesourcery.com>
7781
7782 * config/arm/predicates.md (shift_amount_operand): Remove constant
7783 range check.
7784 (shift_operator): Check range of constants for all shift operators.
7785
7786 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7787
7788 * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
7789 Load GOT pointer for non-pic builds.
7790 (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
7791 (s390_emit_call): Likewise.
7792
7793 2011-10-07 Tom de Vries <tom@codesourcery.com>
7794
7795 PR middle-end/50527
7796 * tree.c (build_common_builtin_nodes): Add local_define_builtin for
7797 BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
7798 throw.
7799 * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
7800 arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
7801 (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
7802 (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
7803 * tree-ssa-ccp.c (evaluate_stmt): Set align for
7804 BUILT_IN_ALLOCA_WITH_ALIGN.
7805 (fold_builtin_alloca_for_var): Rename to ...
7806 (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
7807 BUILT_IN_ALLOCA_WITH_ALIGN argument.
7808 (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
7809 fold_builtin_alloca_with_align.
7810 (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
7811 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
7812 DEF_BUILTIN_STUB.
7813 * ipa-pure-const.c (special_builtin_state): Handle
7814 BUILT_IN_ALLOCA_WITH_ALIGN.
7815 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
7816 (call_may_clobber_ref_p_1): Same.
7817 * function.c (gimplify_parameters): Lower vla to
7818 BUILT_IN_ALLOCA_WITH_ALIGN.
7819 * gimplify.c (gimplify_vla_decl): Same.
7820 * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
7821 * tree-mudflap.c (mf_xform_statements): Same.
7822 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
7823 (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
7824 * varasm.c (incorporeal_function_p): Same.
7825 * tree-object-size.c (alloc_object_size): Same.
7826 * gimple.c (gimple_build_call_from_tree): Same.
7827
7828 2011-10-07 Bernd Schmidt <bernds@codesourcery.com>
7829
7830 * function.c (frame_required_for_rtx): Remove function.
7831 (requires_stack_frame_p): New arg set_up_by_prologue. All callers
7832 changed. Compute a set of mentioned registers and compare against
7833 the new arg rather than calling frame_required_for_rtx.
7834 (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
7835 reg set. Convert the unconverted_simple_returns mechanism to store
7836 jump insns rather than their basic blocks. Also check the
7837 orig_entry_edge destination for new blocks.
7838
7839 2011-10-07 Jakub Jelinek <jakub@redhat.com>
7840
7841 PR tree-optimization/50650
7842 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
7843 call vect_is_simple_cond here, instead fail if cond_expr isn't
7844 COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
7845 for cond_expr's first operand.
7846 * tree-vect-stmts.c (vect_is_simple_cond): Static again.
7847 * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
7848
7849 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7850
7851 * config/s390/s390.md (DWH, dwh): New mode macros.
7852 ("umulsidi3"): Extend to support "umulditi3" as well.
7853
7854 2011-10-07 Uros Bizjak <ubizjak@gmail.com>
7855 H.J. Lu <hongjiu.lu@intel.com>
7856
7857 PR target/50603
7858 * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
7859 integer PLUS RTX to a register to improve address combine.
7860
7861 2011-10-06 Richard Henderson <rth@redhat.com>
7862
7863 * combine-stack-adjust.c (maybe_move_args_size_note): Add after
7864 parameter; use it to decide whether to merge two notes.
7865 (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
7866 for the deallocation case as well.
7867
7868 2011-10-06 Anatoly Sokolov <aesok@post.ru>
7869
7870 * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
7871 * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
7872 * doc/tm.texi: Regenerate.
7873 * target.def (output_addr_const_extra): Use
7874 hook_bool_FILEptr_rtx_false.
7875 * targhooks.c (default_asm_output_addr_const_extra): Remove.
7876 * targhooks.h (default_asm_output_addr_const_extra): Remove.
7877 * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
7878 * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
7879
7880 2011-10-06 David S. Miller <davem@davemloft.net>
7881
7882 * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
7883 (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
7884 SI mode 64-bit code gen case explicitly zero-extend and truncate.
7885 (*popcount<mode>_sp64): Split up into...
7886 (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
7887 SImode case use truncate.
7888 (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
7889 subtract so the compiler can optimize it.
7890 (SIDI): Remove unused mode iterator.
7891
7892 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
7893
7894 * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
7895 on the orig_entry_edge. Don't account for it in prologue_clobbered.
7896
7897 2011-10-06 Jakub Jelinek <jakub@redhat.com>
7898
7899 PR tree-optimization/50596
7900 * tree-vectorizer.h (vect_is_simple_cond): New prototype.
7901 (NUM_PATTERNS): Change to 6.
7902 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
7903 function.
7904 (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
7905 (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
7906 if it already has one, and don't set STMT_VINFO_VECTYPE in it
7907 if it is already set.
7908 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
7909 COND_EXPR in pattern stmts.
7910 (vect_is_simple_cond): No longer static.
7911
7912 2001-10-06 Richard Henderson <rth@redhat.com>
7913
7914 * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
7915 * config/i386/sse.md (sseshuffint): Remove.
7916 (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
7917 (VSHUFFLE_AVX2): New mode iterator.
7918 (vshuffle<mode>): Use it.
7919 (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
7920
7921 * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
7922 for vector_all_ones_operand.
7923 (ix86_expand_int_vcond): Distinguish between comparison mode
7924 and data mode. Allow them to differ.
7925 (ix86_expand_vshuffle): Don't force data mode to match maskmode.
7926
7927 2001-10-06 Richard Henderson <rth@redhat.com>
7928
7929 * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
7930 mask operand. Tidy the code.
7931
7932 2011-10-06 Jakub Jelinek <jakub@redhat.com>
7933
7934 * tree-vect-patterns.c (vect_pattern_recog_1): Use
7935 vect_recog_func_ptr typedef for the first argument.
7936 (vect_pattern_recog): Rename vect_recog_func_ptr variable
7937 to vect_recog_func, use vect_recog_func_ptr typedef for it.
7938
7939 PR tree-optimization/49279
7940 * tree-ssa-structalias.c (find_func_aliases): Don't handle
7941 CAST_RESTRICT.
7942 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
7943 restrict propagation.
7944 * tree-ssa.c (useless_type_conversion_p): Don't return false
7945 if TYPE_RESTRICT differs.
7946
7947 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
7948
7949 * function.c (thread_prologue_and_epilogue_insns): Build a vector
7950 of unconverted simple return blocks rather than trying to
7951 recompute them later based on bb_flags bitmap tests.
7952
7953 2011-10-06 Michael Matz <matz@suse.de>
7954
7955 * tree-flow.h (get_var_ann): Don't declare.
7956 * tree-flow-inline.h (get_var_ann): Remove.
7957 (set_is_used): Use var_ann, not get_var_ann.
7958 * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
7959 * tree-profile.c (gimple_gen_edge_profiler): Call
7960 find_referenced_var_in.
7961 (gimple_gen_interval_profiler): Ditto.
7962 (gimple_gen_pow2_profiler): Ditto.
7963 (gimple_gen_one_value_profiler): Ditto.
7964 (gimple_gen_average_profiler): Ditto.
7965 (gimple_gen_ior_profiler): Ditto.
7966 (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
7967 (gimple_gen_ic_func_profiler): Call add_referenced_var.
7968 * tree-mudflap.c (execute_mudflap_function_ops): Call
7969 add_referenced_var.
7970
7971 2011-10-06 Jakub Jelinek <jakub@redhat.com>
7972
7973 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
7974 don't set SSA_NAME_DEF_STMT that has been already set by
7975 gimple_build_assign_with_ops.
7976 (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
7977 vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
7978 Likewise.
7979
7980 * tree.h (avoid_folding_inline_builtin): New prototype.
7981 * builtins.c (avoid_folding_inline_builtin): No longer static.
7982 * gimple-fold.c (gimple_fold_builtin): Give up if
7983 avoid_folding_inline_builtin returns true.
7984
7985 2011-10-06 Richard Guenther <rguenther@suse.de>
7986
7987 * tree-vect-generic.c (vector_element): Look at previous
7988 generated results.
7989
7990 2011-10-06 David Edelsohn <dje.gcc@gmail.com>
7991
7992 PR target/39950
7993 * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
7994 __powerpc__, __PPC__, __unix__.
7995
7996 2011-10-06 Michael Matz <matz@suse.de>
7997
7998 * i386/i386.opt (recip_mask, recip_mask_explicit,
7999 x_recip_mask_explicit): New variables and cl_target member.
8000 (mrecip=): New option.
8001 * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
8002 RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
8003 (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
8004 TARGET_RECIP_VEC_SQRT): New tests.
8005 * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
8006 (sqrt<mode>2): Check TARGET_RECIP_SQRT.
8007 * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
8008 (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
8009 * i386/i386.c (ix86_option_override_internal): Set recip_mask
8010 for -mrecip and -mrecip=options.
8011 (ix86_function_specific_save): Save recip_mask_explicit.
8012 (ix86_function_specific_restore): Restore recip_mask_explicit.
8013
8014 * doc/invoke.texi (ix86 Options): Document the new option.
8015
8016 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
8017
8018 PR target/49049
8019 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
8020
8021 2011-10-06 Ulrich Weigand <ulrich.weigand@linaro.org>
8022
8023 PR target/50305
8024 * config/arm/arm.c (arm_legitimize_reload_address): Recognize
8025 output of a previous pass through legitimize_reload_address.
8026 Do not attempt to optimize addresses if the base register is
8027 equivalent to a constant.
8028
8029 2011-10-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8030
8031 * function.c (thread_prologue_and_epilogue_insns): Mark
8032 last_bb_active as possibly unused. It is unused for targets which
8033 do neither have "return" nor "simple_return" expanders.
8034
8035 2011-10-06 Richard Guenther <rguenther@suse.de>
8036
8037 * fold-const.c (fold_ternary_loc): Also fold non-constant
8038 vector CONSTRUCTORs. Make more efficient.
8039 * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
8040 (cprop_into_stmt): Don't propagate into virtual operands.
8041 (optimize_stmt): Really dump original statement.
8042
8043 2011-10-06 Nick Clifton <nickc@redhat.com>
8044
8045 * config/rx/rx.md (smin3): Revert previous delta.
8046
8047 2011-10-06 Richard Guenther <rguenther@suse.de>
8048
8049 PR tree-optimization/38884
8050 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
8051 reads from aggregate SSA names.
8052
8053 2011-10-05 Jakub Jelinek <jakub@redhat.com>
8054
8055 * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
8056 argument, truncate it at the beginning instead of allocating there
8057 and freeing at the end.
8058 (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
8059 pass its address to vect_pattern_recog_1.
8060
8061 2011-10-05 David S. Miller <davem@davemloft.net>
8062
8063 * config/sparc/sparc.opt (POPC): New option.
8064 * doc/invoke.texi: Document it.
8065 * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
8066 default on Niagara-2 and later.
8067 * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
8068 * config/sparc/sparc.md (SIDI): New mode iterator.
8069 (ffsdi2): Delete commented out pattern and comments.
8070 (popcount<mode>2, clz<mode>2): New expanders.
8071 (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
8072 *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
8073
8074 2011-10-06 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
8075
8076 PR middle-end/50607
8077 * c-tree.h (c_expr_t): New typedef for struct c_expr.
8078 (C_EXPR_APPEND): New macro.
8079 * c-parser.c (c_parser_get_builtin_args): Preserve
8080 original_tree_code of c_expr structure.
8081 (c_parser_postfix_expression): Adjust to the new function.
8082
8083 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
8084
8085 * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
8086 if profiling after the prologue.
8087
8088 2011-10-05 Jakub Jelinek <jakub@redhat.com>
8089
8090 PR tree-optimization/50613
8091 * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
8092 operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
8093 and if it is neither that not SSA_NAME, give up.
8094
8095 2011-10-05 Richard Henderson <rth@redhat.com>
8096
8097 * tree-vect-generic.c (vector_element): Never fail. Use
8098 build_zero_cst. Tidy up type references.
8099 (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce
8100 code duplication. Do update_stmt here ...
8101 (expand_vector_operations_1): ... not here.
8102
8103 * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle
8104 TARGET_XOP. Fix pshufb constant vector creation. Reduce code
8105 duplication. Handle V2DI without SSE4.1.
8106 * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
8107 * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
8108
8109 2011-10-05 Uros Bizjak <ubizjak@gmail.com>
8110
8111 * config/i386/i386.c (distance_non_agu_define): Simplify calculation
8112 of "found". Simplify return value calculation.
8113 (distance_agu_use): Ditto.
8114
8115 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
8116
8117 PR bootstrap/50621
8118 * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
8119 if the function was not shrink-wrapped.
8120 (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
8121 to an insn.
8122 * function.c (thread_prologue_and_epilogue_insns): Make sure the
8123 shrink_wrapped flag is set even if there is no dump file.
8124
8125 2011-10-05 DJ Delorie <dj@redhat.com>
8126 Nick Clifton <nickc@redhat.com>
8127
8128 * config/rx/rx.opt (mpid): Define.
8129 * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
8130 (MULTILIB_DIRNAMES): Add pid.
8131 * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
8132 (rx_num_interrupt_regs): New variable.
8133 (rx_gp_base_regnum): New function. Returns the number of the
8134 small data area register.
8135 (rx_pid_base_regnum): New function. Returns the number of the pid
8136 base register.
8137 (rx_decl_for_addr): New function. Returns the symbolic part of a MEM.
8138 (rx_pid_data_operand): New function. Returns whether an object is
8139 in the position independent data area.
8140 (rx_legitimize_address): New function. Puts undecided PID
8141 objects in the PID data area.
8142 (rx_is_legitimate_address): Add support for PID operands.
8143 (rx_print_operand_address): Likewise.
8144 (rx_print_operand): Likewise.
8145 (rx_maybe_pidify_operand): New function. Determine if an operand
8146 is suitable for PID addressing.
8147 (rx_gen_move_template): Add PID support.
8148 (rx_conditional_register_usage): Likewise.
8149 (rx_option_override): Initialise rx_num_interrupt_regs.
8150 (rx_is_legitimate_constant): Add support for PID constants.
8151 (TARGET_LEGITIMIZE_ADDRESS): Define.
8152 * config/rx/constraints.md (Rpid): Define.
8153 (Rpda): Define.
8154 * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
8155 (tablejump): Add PID support.
8156 (mov<>): Likewise.
8157 (mov<>_internal): Likewise.
8158 (addsi3): Convert to an expander. Add PID support.
8159 (pid_addr): New pattern.
8160 * config/rx/rx.h (CPP_SPEC): Define.
8161 (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
8162 (CASE_VECTOR_PC_RELATIVE): Define.
8163 (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
8164 * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
8165 * doc/invoke.texi (RX Options): Document -mpid command line option.
8166
8167 2011-10-05 Richard Guenther <rguenther@suse.de>
8168
8169 PR tree-optimization/38885
8170 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
8171 from constants.
8172
8173 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
8174
8175 * doc/invoke.texi (-fshrink-wrap): Document.
8176 * opts.c (default_options_table): Add it.
8177 * common.opt (fshrink-wrap): Add.
8178 * function.c (emit_return_into_block): Remove useless declaration.
8179 (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
8180 requires_stack_frame_p, gen_return_pattern): New static functions.
8181 (emit_return_into_block): New arg simple_p. All callers changed.
8182 Use gen_return_pattern.
8183 (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
8184 * config/i386/i386.md (return): Expand into a simple_return.
8185 (simple_return): New expander):
8186 (simple_return_internal, simple_return_internal_long,
8187 simple_return_pop_internal_long, simple_return_indirect_internal):
8188 Renamed from return_internal, return_internal_long,
8189 return_pop_internal_long and return_indirect_internal; changed to use
8190 simple_return.
8191 * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
8192 simple returns.
8193 (ix86_pad_returns): Likewise.
8194 * function.h (struct rtl_data): Add member shrink_wrapped.
8195 * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
8196 are not jumps or sibcalls can't be compared.
8197
8198 2011-10-05 Richard Guenther <rguenther@suse.de>
8199
8200 * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
8201 vector type.
8202 (simplify_unary_expression): Handle BIT_FIELD_REFs.
8203 (try_to_simplify): Handle BIT_FIELD_REFs.
8204
8205 2011-10-05 Georg-Johann Lay <avr@gjlay.de>
8206
8207 * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
8208 * config/avr/avr.c (avr_out_addto_sp): New function.
8209 (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
8210 * config/avr/avr.md (adjust_len): Add "addto_sp".
8211 (*movhi_sp): Remove insn.
8212 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
8213
8214 2011-10-05 Richard Guenther <rguenther@suse.de>
8215
8216 * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
8217 with an embedded expression valueize and fold that as well.
8218 * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
8219 results from gimple_fold_stmt_to_constant_1.
8220
8221 2011-10-05 Nick Clifton <nickc@redhat.com>
8222
8223 * config/rx/rx.md (tablejump): Add missing label.
8224 (adddi3_internal): Mark operand 0 as early-clobbered.
8225 (smaxsi3): Revert previous delta.
8226 (adc_internal): Fix whitespace in generated asm.
8227 (adc_flags): Likewise.
8228
8229 2011-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8230
8231 * expmed.c (expand_mult_highpart_optab): Replace optab_handler
8232 with the new widening_optab_handler.
8233
8234 2011-10-05 Richard Guenther <rguenther@suse.de>
8235
8236 PR tree-optimization/50609
8237 * gimple-fold.c (fold_array_ctor_reference): Also handle
8238 vector typed constructors.
8239 (fold_ctor_reference): Dispatch to fold_array_ctor_reference
8240 for vector typed constructors.
8241
8242 2011-10-05 Uros Bizjak <ubizjak@gmail.com>
8243
8244 * config/i386/i386.c (ix86_emit_binop): New static function.
8245 (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
8246 instructions.
8247 (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
8248
8249 2011-10-04 David S. Miller <davem@davemloft.net>
8250
8251 * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
8252 UNSPEC_XMUL): New unspecs.
8253 (muldi3_v8plus): Use output_v8plus_mult.
8254 (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
8255 New VIS 3.0 combiner patterns.
8256 (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
8257 fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
8258 umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
8259 xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
8260 builtins patterns.
8261 * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
8262 (output_v8plus_mult): New function.
8263 * config/sparc/sparc-protos.h: Declare it.
8264 * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
8265 __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
8266 __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
8267 * doc/extend.texi: Document new builtins.
8268
8269 2011-10-04 Richard Henderson <rth@redhat.com>
8270
8271 * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
8272 Avoid save_expr unless two_arguments.
8273
8274 2011-10-04 Ozkan Sezer <sezeroz@gmail.com>
8275
8276 * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
8277 * config/i386/mingw32.h (CPP_SPEC): Likewise.
8278
8279 2011-10-04 David S. Miller <davem@davemloft.net>
8280
8281 * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
8282 under Linux.
8283
8284 2011-10-04 Jakub Jelinek <jakub@redhat.com>
8285
8286 PR tree-optimization/50604
8287 * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
8288 fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
8289 last argument to memcpy has size_type_node type instead of ssizetype.
8290 * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
8291 instead of TREE_TYPE (len) as type for newlen.
8292
8293 PR tree-optimization/50522
8294 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
8295 TYPE_RESTRICT.
8296 (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
8297 unconditionally.
8298
8299 * fold-const.c (fold_unary_loc): Don't optimize
8300 POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
8301 casting the inner pointer if it isn't TYPE_RESTRICT.
8302 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
8303 casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
8304
8305 2011-10-04 Joseph Myers <joseph@codesourcery.com>
8306
8307 * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
8308
8309 2011-10-04 Jan Hubicka <jh@suse.cz>
8310
8311 * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
8312 * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
8313 * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
8314 * lto-cgraph.c (order_base): New static var.
8315 (lto_output_node): Stream in order.
8316 (lto_output_varpool_node): Stream out order.
8317 (input_node): Stream in order.
8318 (input_varpool_node): Stream out order.
8319 (input_cgraph_1): Initialize order base; update call of
8320 lto_input_toplevel_asms.
8321
8322 2011-10-04 Georg-Johann Lay <avr@gjlay.de>
8323
8324 PR target/50566
8325 * config/avr/avr-protos.h (avr_legitimize_reload_address): New
8326 prototype.
8327 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
8328 from here...
8329 * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
8330 function. Log if avr_log.legitimize_reload_address.
8331
8332 2011-10-04 Eric Botcazou <ebotcazou@adacore.com>
8333
8334 * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
8335
8336 2011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8337
8338 * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
8339 variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd.
8340
8341 2011-10-03 David S. Miller <davem@davemloft.net>
8342
8343 * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
8344 GSR_REG an input operand to UNSPEC instead of a parallel USE.
8345 (faligndata<V64I:mode>_vis): Likewise and use DI mode.
8346 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
8347 Reference GSR_REG in DI mode, simplify convoluted expressions by using
8348 zero_extract.
8349 (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
8350
8351 2011-10-03 Maxim Kuvyrkov <maxim@codesourcery.com>
8352
8353 * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
8354
8355 2011-10-03 Jakub Jelinek <jakub@redhat.com>
8356 Ian Lance Taylor <iant@google.com>
8357
8358 * godump.c (go_output_typedef): Support printing enum values that
8359 don't fit in a signed HOST_WIDE_INT.
8360
8361 2011-10-03 Anatoly Sokolov <aesok@post.ru>
8362
8363 * config/cris/cris.c (cris_output_addr_const_extra): Make static.
8364 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8365 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8366 * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
8367
8368 2011-10-03 Anatoly Sokolov <aesok@post.ru>
8369
8370 * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
8371 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8372 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8373 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
8374
8375 2011-10-03 Steve Ellcey <sje@cup.hp.com>
8376
8377 PR target/49967
8378 * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
8379 (gcc_cv_ld_static_option): Ditto.
8380 (gcc_cv_ld_dynamic_option): Ditto.
8381 * configure: Regenerate.
8382
8383 2011-10-03 David S. Miller <davem@davemloft.net>
8384
8385 * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
8386 and 'si' patterns which describe the GSR changes explicitly in the
8387 RTL using zero_extract.
8388 (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
8389
8390 * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
8391 GSR_REG in a USE, since it's now a true arg to the UNSPEC.
8392
8393 2011-10-03 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
8394
8395 * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
8396 if given expression can be expanded by the target.
8397 (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
8398 using target vector instructions.
8399 * optabs.h: New optab vshuffle.
8400 (expand_vec_shuffle_expr_p): New prototype.
8401 (expand_vec_shuffle_expr): New prototype.
8402 (vshuffle_optab): New optab.
8403 * genopinit.c: Adjust to support vecshuffle.
8404 * c-tree.h (c_build_vec_shuffle_expr): New prototype.
8405 * expr.c (expand_expr_real_2): Adjust.
8406 * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
8407 recognizing the cases of two and three arguments.
8408 (convert_arguments) (build_binary_op)
8409 (scalar_to_vector) (build_array_ref): Spurious whitespace.
8410 * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
8411 * tree.def: New tree code VEC_SHUFFLE_EXPR.
8412 * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
8413 * tree-vect-generic.c (vector_element): New function. Returns an
8414 element of the vector at the given position.
8415 (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
8416 by the backend or expand an expression piecewise.
8417 (expand_vector_operations_1): Adjusted.
8418 (gate_expand_vector_operations_noop): New gate function.
8419 * Makefile.in (tree-vect-generic.o): New include.
8420 * gimple.c (get_gimple_rhs_num_ops): Adjust.
8421 * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
8422 * passes.c: Move veclower down.
8423 * tree-pretty-print.c (dump_generic_node): Recognize
8424 VEC_SHUFFLE_EXPR as valid expression.
8425 * c-parser.c (c_parser_get_builtin_args): Helper function for the
8426 builtins with variable number of arguments.
8427 (c_parser_postfix_expression): Use a new helper function for
8428 RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
8429 * tree-ssa-operands: Adjust.
8430 * c-family/c-common.c: New __builtin_shuffle keyword.
8431 * c-family/c-common.h: New __builtin_shuffle keyword.
8432 * gcc/doc/extend.texi: Adjust.
8433
8434 * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence
8435 between the vector and the type of the mask when shuffling.
8436 (vecshuffle<mode>): New expansion.
8437 * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
8438 * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
8439 (ix86_vectorize_builtin_vec_perm_ok): Adjust.
8440
8441 2011-10-03 Jakub Jelinek <jakub@redhat.com>
8442
8443 PR tree-optimization/50587
8444 * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
8445 arg0 is not a SSA_NAME.
8446
8447 2011-10-03 Richard Sandiford <rdsandiford@googlemail.com>
8448
8449 * ipa-inline-analysis.c (MAX_TIME): Update comment.
8450
8451 2011-10-02 Richard Henderson <rth@redhat.com>
8452 David S. Miller <davem@davemloft.net>
8453
8454 * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
8455 conditional insn type setting, we always emit a shift.
8456 (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
8457 (*lshrsi3_extend): Rename to *lshrsi3_extend1.
8458 * config/sparc/predicates.md (const_one_operand): Delete.
8459
8460 2011-10-02 Gerald Pfeifer <gerald@pfeifer.com>
8461
8462 * invoke.texi (SPARC Options): Refer to GNU/Linux.
8463
8464 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
8465
8466 * config/mips/mips.c (mips_frame_barrier): New function.
8467 (mips_expand_prologue): Call it after allocating stack space.
8468 (mips_deallocate_stack): New function.
8469 (mips_expand_epilogue): Call mips_frame_barrier and
8470 mips_deallocate_stack.
8471
8472 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
8473
8474 PR target/49696
8475 * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
8476 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
8477 (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
8478
8479 2011-10-02 Jan Hubicka <jh@suse.cz>
8480
8481 * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
8482
8483 * cgraphunit.c (ipa_passes): Remove unrechable nodes.
8484 * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
8485 * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
8486 functions are reachable when address is taken.
8487 * tree-sra.c (modify_function): Free dominance info.
8488
8489 2011-10-02 Jan Hubicka <jh@suse.cz>
8490
8491 * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
8492
8493 * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
8494 (reset_inline_summary): New function.
8495 (compute_inline_parameters, inline_node_removal_hook,
8496 inline_edge_removal_hook): Use it.
8497 (inline_free_summary): Reset holders correctly.
8498 (inline_generate_summary): Free summary before computing it.
8499
8500 2011-10-02 Paolo Carlini <paolo.carlini@oracle.com>
8501
8502 PR preprocessor/36819
8503 * incpath.c (merge_include_chains): Call free_path on
8504 heads[QUOTE] and tails[QUOTE].
8505
8506 2011-10-02 Jan Hubicka <jh@suse.cz>
8507
8508 PR lto/47247
8509 * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
8510 when resolution is already availbale from plugin.
8511 (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
8512 * cgraph.c (ld_plugin_symbol_resolution): Add
8513 prevailing_def_ironly_exp.
8514 * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
8515 * ipa.c (varpool_externally_visible_p): IRONLY variables are never
8516 externally visible.
8517 * varasm.c (resolution_to_local_definition_p): Add
8518 LDPR_PREVAILING_DEF_IRONLY_EXP.
8519 (resolution_local_p): Likewise.
8520
8521 2011-10-01 David S. Miller <davem@davemloft.net>
8522
8523 * config/sparc/sparc.opt (VIS3): New option.
8524 * doc/invoke.texi: Document it.
8525 * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
8526 not capable of such instructions.
8527 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
8528 to 0x300 when TARGET_VIS3.
8529 * config/sparc/sparc-modes.def: Create 16-byte vector modes.
8530 * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
8531 UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
8532 (V64N8, VASS): New mode iterators.
8533 (vis3_shift, vis3_addsub_ss): New code iterators.
8534 (vbits, vconstr): New mode attributes.
8535 (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
8536 (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
8537 fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
8538 fmean16_vis, fpadd64_vis, fpsub64_vis,
8539 <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
8540 VIS 3.0 instruction patterns.
8541 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
8542 default when targetting capable cpus. TARGET_VIS3 implies
8543 TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
8544 (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
8545 (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
8546 is ignored.
8547 * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
8548 __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
8549 __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
8550 __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
8551 __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
8552 __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
8553 __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
8554 __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
8555 * doc/extend.texi: Document new VIS 3.0 builtins.
8556
8557 2011-10-01 Eric Botcazou <ebotcazou@adacore.com>
8558
8559 * ira-color.c (assign_hard_reg): Fix typo.
8560
8561 2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
8562
8563 * doc/extend.texi: Add missing ','.
8564
8565 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
8566
8567 * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
8568 Enable -fmodulo-sched at -O2 and above.
8569 * config/c6x/c6x.md (doloop_end): New expander.
8570 (mvilc, sploop, spkernel, loop_end): New patterns.
8571 (loop_end with memory destination splitter): New.
8572 * config/c6x/c6x.c: Include "hw-doloop.h".
8573 (enum unitreqs): New.
8574 (unit_req_table): New typedef.
8575 (unit_reqs): New static variable.
8576 (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
8577 res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
8578 hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
8579 hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
8580 (struct c6x_sched_context): New member last_scheduled_iter0.
8581 (init_sched_state): Initialize it.
8582 (c6x_variable_issue): Update it.
8583 (sploop_max_uid_iter0): New static variable.
8584 (c6x_sched_reorder_1): Be careful about issuing sploop.
8585 (c6x_reorg): Call c6x_hwlooops before the final schedule.
8586
8587 2011-09-30 Georg-Johann Lay <avr@gjlay.de>
8588
8589 PR target/50566
8590 * config/avr/avr-protos.h (avr_log_t): New field address_cost.
8591 * config/avr/avr.c (avr_address_cost): Use it.
8592 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
8593 (avr_log_vadump): Unknown %-codes finish printing.
8594
8595 2011-09-30 Jakub Jelinek <jakub@redhat.com>
8596
8597 PR inline-asm/50571
8598 * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
8599 input constraints allow mem and not reg, pass true instead of
8600 false as second argument to maybe_fold_reference.
8601
8602 PR tree-optimization/46309
8603 * fold-const.c (make_range, merge_ranges): Remove prototypes.
8604 (make_range_step): New function.
8605 (make_range): Use it.
8606 * tree.h (make_range_step): New prototypes.
8607 * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
8608 * tree-ssa-reassoc.c: Include diagnostic-core.h.
8609 (struct range_entry): New type.
8610 (init_range_entry, range_entry_cmp, update_range_test,
8611 optimize_range_tests): New functions.
8612 (reassociate_bb): Call optimize_range_tests.
8613
8614 2011-09-30 Jakub Jelinek <jakub@redhat.com>
8615 Richard Guenther <rguenther@suse.de>
8616
8617 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
8618 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
8619 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
8620 handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
8621 (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
8622 BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
8623
8624 2011-09-30 Jan Beulich <jbeulich@suse.com>
8625
8626 * lto-cgraph.c (output_cgraph): Remove processing of
8627 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
8628 (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
8629 lto_input_toplevel_asms() instead.
8630 * lto-section-in.c (lto_section_name): Add "asm" entry.
8631 * lto-streamer-in.c (lto_input_toplevel_asms): New.
8632 * lto-streamer-out.c (lto_output_toplevel_asms): New.
8633 * lto-streamer.h (LTO_minor_version): Bump.
8634 (enum lto_section_type): Add LTO_section_asm.
8635 (struct lto_asm_header): New.
8636 (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
8637 * tree-streamer.h (streamer_write_string_cst): Declare.
8638 * tree-streamer-out.c (write_string_cst): Rename to
8639 streamer_write_string_cst and make global. Handle incoming string
8640 being NULL.
8641 (streamer_write_tree_header): Adjust call to renamed function.
8642
8643 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
8644
8645 * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
8646 modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
8647 modulo_last_stage): New static variables.
8648 (set_modulo_params, discard_delay_pairs_above): New functions.
8649 (struct delay_pair): New member stages.
8650 (htab_i2_traverse, htab_i1_traverse): New static functions.
8651 (record_delay_slot_pair): New arg stages. All callers changed.
8652 Record it.
8653 (pair_delay): Take stages into account.
8654 (add_delay_dependencies): Don't do so for stage pairs.
8655 (struct sched_block_state): New member modulo_epilogue.
8656 (save_backtrack_point): Don't set SHADOW_P for stage pairs.
8657 (unschedule_insns_until): Decrease modulo_insns_scheduled.
8658 Set HARD_DEP without using or.
8659 (resolve_dependencies): New static function.
8660 (prune_ready_list): New arg modulo_epilogue_p. All callers changed.
8661 If it is true, allow only insns with INSN_EXACT_TICK set.
8662 (schedule_block): Return bool, always true for normal scheduling,
8663 true or false depending on modulo scheduling success otherwise.
8664 Add bookkeeping for modulo scheduling, and call resolve_dependencies
8665 on everything left over after a modulo schedule.
8666 (haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
8667 * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
8668 declarations.
8669 (set_modulo_params, discard_delay_pairs_above): Declare.
8670 * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
8671 * doc/invoke.texi (--param): Document it.
8672
8673 * sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
8674 New arg modulo_scheduling. All callers changed. Move note handling
8675 code here from schedule_ebbs.
8676 (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
8677 out of schedule_ebbs.
8678 (schedule_ebbs): Call them. Remove note handling code moved to
8679 schedule_ebb.
8680 * sched-int.h (schedule_ebb, schedule_ebbs_init,
8681 schedule_ebbs_finish): Declare.
8682
8683 2011-09-30 Richard Guenther <rguenther@suse.de>
8684
8685 PR middle-end/50574
8686 * tree-cfg.c (verify_gimple_comparison): Compare component
8687 mode sizes for vector comparisons.
8688
8689 2011-09-30 Revital Eres <revital.eres@linaro.org>
8690
8691 * ddg.c (autoinc_var_is_used_p): New function.
8692 (create_ddg_dep_from_intra_loop_link,
8693 add_cross_iteration_register_deps): Call it.
8694 * ddg.h (autoinc_var_is_used_p): Declare.
8695 * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
8696 (sms_schedule): Handle instructions with REG_INC.
8697
8698 2011-09-30 Revital Eres <revital.eres@linaro.org>
8699
8700 * modulo-sched.c (generate_reg_moves): Skip instructions that
8701 do not set a register and verify no regmoves are created for
8702 !single_set instructions.
8703
8704 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
8705
8706 * hw-doloop.c (scan_loop): Compute register usage only for non-debug
8707 insns.
8708
8709 2011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8710
8711 PR target/50099
8712 * config/arm/iterators.md (qhs_zextenddi_cstr): New.
8713 (qhs_zextenddi_op): New.
8714 * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
8715 * config/arm/predicates.md ("arm_extendqisi_mem_op"):
8716 Distinguish between ARM and Thumb2 states.
8717
8718 2011-09-30 David S. Miller <davem@davemloft.net>
8719
8720 * config/sparc/sparc.opt (VIS2): New option.
8721 * doc/invoke.texi: Document it.
8722 * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
8723 UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
8724 UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
8725 (define_attr type): New insn type 'edgen'.
8726 (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
8727 edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
8728 edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
8729 patterns.
8730 * niagara.md: Handle edgen.
8731 * niagara2.md: Likewise.
8732 * ultra1_2.md: Likewise.
8733 * ultra3.md: Likewise.
8734 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
8735 to 0x200 when TARGET_VIS2.
8736 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
8737 default when targetting capable cpus. TARGET_VIS2 implies
8738 TARGET_VIS, clear and it when TARGET_FPU is disabled.
8739 (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
8740 (sparc_expand_builtin): Fix predicate indexing when builtin returns
8741 void.
8742 (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
8743 * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
8744 __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
8745 __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
8746 __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
8747 * doc/extend.texi: Document new VIS 2.0 builtins.
8748
8749 2011-09-29 Nick Clifton <nickc@redhat.com>
8750 Bernd Schmidt <bernds@codesourcery.com>
8751
8752 * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
8753 * config/frv/frvend.c: Likewise.
8754 * config/frv/frv.c (frv_function_prologue): Move misplaced
8755 CALL_ARG_LOCATION notes back to their proper locations.
8756
8757 2011-09-29 Georg-Johann Lay <avr@gjlay.de>
8758
8759 PR target/50566
8760 * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
8761 * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
8762 from avr_rtx_costs.
8763 (avr_legitimate_address_p): Use avr_edump to print log information
8764 filtered by avr_log.
8765 (extra_constraint_Q): Ditto.
8766 (avr_legitimize_address): Ditto.
8767 (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1.
8768 (final_prescan_insn): Use avr_log.rtx_costs as filter.
8769
8770 2011-09-29 Richard Sandiford <richard.sandiford@linaro.org>
8771
8772 * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
8773 * config/arm/arm.h (MODES_TIEABLE_P): Use it.
8774 * config/arm/arm.c (arm_modes_tieable_p): New function. Allow
8775 NEON vector and structure modes to be tied.
8776
8777 2011-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8778
8779 * graphite-scop-detection.c (make_close_phi_nodes_unique): New
8780 forward declaration.
8781 (remove_duplicate_close_phi): Detect and repair creation of
8782 duplicate close-phis for a containing loop.
8783
8784 2011-09-27 Andi Kleen <ak@linux.intel.com>
8785
8786 * gcc.c (get_local_tick). Rename to get_random_number. Read from
8787 /dev/urandom. Add getpid call.
8788 (compare_debug_dump_opt_spec_function): Drop getpid call.
8789
8790 2011-09-26 Andi Kleen <ak@linux.intel.com>
8791
8792 * toplev.c (init_local_tick): Try reading random seed
8793 from /dev/urandom.
8794
8795 2011-09-26 Andi Kleen <ak@linux.intel.com>
8796
8797 * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
8798 * lto-streamer.c (lto_get_section_name): Remove crc32_string.
8799 Handle numerical random seed.
8800 * lto-streamer.h (lto_file_decl_data): Change id to
8801 unsigned HOST_WIDE_INT.
8802 * toplev.c (random_seed): Add.
8803 (init_random_seed): Change for numerical random seed.
8804 (get_random_seed): Return as HOST_WIDE_INT.
8805 (set_random_seed): Crc32 existing string.
8806 * toplev.h (get_random_seed): Change to numercal return.
8807 * tree.c (get_file_function_name): Remove CRC. Handle
8808 numerical random seed.
8809
8810 2011-09-29 Georg-Johann Lay <avr@gjlay.de>
8811
8812 PR target/50566
8813 * config.gcc (extra_objs): Add avr-log.o for $target in:
8814 avr-*-rtems*, avr-*-*.
8815 * config/avr/t-avr (avr-log.o): New rule to compile...
8816 * config/avr/avr-log.c: ...this new file.
8817 * config/avr/avr.opt (mlog=): New option.
8818 * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
8819 (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
8820 (avr_log_set_avr_log): New prototype.
8821 (avr_log_t): New typedef.
8822 (avr_log): New declaration.
8823 * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
8824
8825 2011-09-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
8826
8827 * expr.c (do_store_flag): Expand vector comparison by
8828 building an appropriate VEC_COND_EXPR.
8829 * c-typeck.c (build_binary_op): Typecheck vector comparisons.
8830 (c_objc_common_truthvalue_conversion): Adjust.
8831 * tree-vect-generic.c (do_compare): Helper function.
8832 (expand_vector_comparison): Check if hardware supports
8833 vector comparison of the given type or expand vector piecewise.
8834 (expand_vector_operation): Treat comparison as binary
8835 operation of vector type.
8836 (expand_vector_operations_1): Adjust.
8837
8838 2011-09-29 Richard Guenther <rguenther@suse.de>
8839
8840 * tree.c (build_opaque_vector_type): Make opaque vectors
8841 variant types of the corresponding non-opaque type. Make
8842 sure to share opaque vector types properly.
8843
8844 2011-09-29 David S. Miller <davem@davemloft.net>
8845
8846 * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
8847 UNSPEC_ARRAY32): New unspec.
8848 (define_attr type): New type 'array'.
8849 (array{8,16,32}<P:mode>_vis): New patterns.
8850 * config/sparc/ultra1_2.md: Add reservations for 'array'.
8851 * config/sparc/ultra3.md: Likewise.
8852 * config/sparc/niagara.md: Likewise.
8853 * config/sparc/niagara2.md: Likewise.
8854 * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
8855 array builtins.
8856 * config/sparc/visintrin.h (__vis_array8, __vis_array16,
8857 __vis_array32): New.
8858 * doc/extend.texi: Document new VIS builtins.
8859
8860 * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
8861 (VIS pixel-compare insn): Just use <gcond:name>.
8862
8863 * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
8864 code iterator used, so just use <code>. There are two mode iterators
8865 so explicitly use <GCM:gcm_name>.
8866
8867 2011-09-29 Iain Sandoe <iains@gcc.gnu.org>
8868
8869 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
8870 Darwin >= 9.
8871
8872 2011-09-28 David S. Miller <davem@davemloft.net>
8873
8874 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
8875 UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
8876 (UNSPEC_FCMP): New unspec.
8877 (gcond): New code iterator.
8878 (gcond_name): New code attr.
8879 (GCM): New mode iterator.
8880 (gcm_name): New mode attr.
8881 (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
8882
8883 2011-09-28 Oleg Endo <oleg.endo@t-online.de>
8884
8885 PR target/49486
8886 * config/sh/sh.md (negdi2): Move expansion into split to
8887 allow more combination options. Add T_REG clobber.
8888 (abssi2): New expander.
8889 (*negdi2, *abssi2, *negabssi2): New insns.
8890 (cneg): Change from insn to insn_and_split. Rename to
8891 negsi_cond. Add alternative for non-SH4.
8892
8893 2011-09-28 Richard Sandiford <richard.sandiford@linaro.org>
8894
8895 * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
8896 (neon_move_hi_quad_<mode>): Likewise.
8897 (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
8898
8899 2011-09-28 Nick Clifton <nickc@redhat.com>
8900
8901 * config/rx/predicates.md (rx_minmax_operand): New predicate.
8902 Accepts immediates and a restricted subset of MEMs.
8903 * config/rx/rx.md (int_modes): New iterator.
8904 (smaxsi3, sminsi3): Delete and replace with...
8905 (smax<int_mode>3, smin<int_mode>3): New patterns.
8906 (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
8907
8908 2011-09-28 Richard Guenther <rguenther@suse.de>
8909
8910 PR middle-end/50460
8911 * fold-const.c (try_move_mult_to_index): Handle &a.array the
8912 same as &a.array[0].
8913
8914 2011-09-28 Kai Tietz <ktietz@redhat.com>
8915
8916 * configure.ac: Add test for new section attribute
8917 specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
8918 * config.in: Regenerated.
8919 * configure: Regenerated.
8920 * config/i386/winnt.c (i386_pe_asm_named_section): Emit
8921 new section flag "e" for excluded sections, if supported.
8922 Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
8923
8924 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
8925
8926 * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
8927 throughout file.
8928
8929 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
8930
8931 * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
8932 throughout file.
8933
8934 2011-09-27 Sriraman Tallam <tmsriram@google.com>
8935
8936 * output.h (SECTION_EXCLUDE): New macro.
8937 * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
8938
8939 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
8940
8941 * fwprop.c (forward_propagate_and_simplify): After checking
8942 reg/subreg combinations, check whether the modes are the same.
8943
8944 2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
8945 Richard Sandiford <rdsandiford@googlemail.com>
8946
8947 * config/mips/mips.c (mips_add_cfa_restore): New function.
8948 (mips16e_save_restore_reg): Use it.
8949 (mips_restore_reg): Likewise. Split double FPRs for
8950 REG_CFA_RESTORE notes.
8951
8952 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
8953
8954 PR middle-end/50386
8955 PR middle-end/50326
8956 * tree-sra.c (build_ref_for_model): Use the type of the field as
8957 the type of the COMPONENT_REF.
8958
8959 2011-09-27 Jeff Law <law@redhat.com>
8960
8961 * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale
8962 non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
8963 (find_if_case_1): Use the probability of the THEN clause when
8964 determining if speculation is profitable.
8965 (find_if_case_2): Similarly for the ELSE clause.
8966
8967 2011-09-27 Jakub Jelinek <jakub@redhat.com>
8968
8969 * common.opt: Add -foptimize-strlen option.
8970 * Makefile.in (OBJS): Add tree-ssa-strlen.o.
8971 (tree-sssa-strlen.o): Add dependencies.
8972 * opts.c (default_options_table): Enable -foptimize-strlen
8973 by default at -O2 if not -Os.
8974 * passes.c (init_optimization_passes): Add pass_strlen
8975 after pass_object_sizes.
8976 * timevar.def (TV_TREE_STRLEN): New timevar.
8977 * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
8978 * tree-pass.h (pass_strlen): Declare.
8979 * tree-ssa-strlen.c: New file.
8980 * c-decl.c (merge_decls): If compatible stpcpy prototype
8981 is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
8982
8983 2011-09-27 Tom de Vries <tom@codesourcery.com>
8984
8985 PR middle-end/43864
8986 * tree-ssa-tail-merge.c: New file.
8987 (struct same_succ_def): Define.
8988 (same_succ, const_same_succ): New typedef.
8989 (struct bb_cluster_def): Define.
8990 (bb_cluster, const_bb_cluster): New typedef.
8991 (struct aux_bb_info): Define.
8992 (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
8993 (gvn_uses_equal): New function.
8994 (same_succ_print, same_succ_print_traverse, update_dep_bb)
8995 (stmt_update_dep_bb, local_def, same_succ_hash)
8996 (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
8997 (same_succ_reset): New function.
8998 (same_succ_htab, same_succ_edge_flags)
8999 (deleted_bbs, deleted_bb_preds): New var.
9000 (debug_same_succ): New function.
9001 (worklist): New var.
9002 (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
9003 (init_worklist, delete_worklist, delete_basic_block_same_succ)
9004 (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
9005 (print_cluster, debug_cluster, update_rep_bb)
9006 (add_bb_to_cluster, new_cluster, delete_cluster): New function.
9007 (all_clusters): New var.
9008 (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
9009 (merge_clusters, set_cluster): New function.
9010 (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
9011 (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
9012 (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
9013 (find_clusters_1, find_clusters): New function.
9014 (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
9015 (update_bbs): New var.
9016 (apply_clusters): New function.
9017 (update_debug_stmt, update_debug_stmts): New function.
9018 (tail_merge_optimize): New function.
9019 tree-pass.h (tail_merge_optimize): Declare.
9020 * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
9021 * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
9022 (tree-ssa-tail-merge.o): New rule.
9023 * opts.c (default_options_table): Set OPT_ftree_tail_merge by
9024 default at OPT_LEVELS_2_PLUS.
9025 * tree-ssa-sccvn.c (vn_valueize): Move to ...
9026 * tree-ssa-sccvn.h (vn_valueize): Here.
9027 * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
9028 * common.opt (ftree-tail-merge): New switch.
9029 * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
9030 (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
9031 * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
9032 (-ftree-tail-merge, max-tail-merge-comparisons)
9033 (max-tail-merge-iterations): New item.
9034
9035 2011-09-27 Jan Hubicka <jh@suse.cz>
9036
9037 * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
9038
9039 2011-09-27 Jan Hubicka <jh@suse.cz>
9040
9041 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
9042 parameters passed by reference; handle loads from non-SSA scalars
9043 and update comments.
9044
9045 2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
9046
9047 PR rtl-optimization/50249
9048 * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
9049 instead of opnum and type. All callers changed. Remove useless
9050 declaration.
9051 Search forward for other reloads of the same type for the same operand
9052 using the same register; if any are found, return false.
9053 (reload_regs_reach_end_p): Same argument changes; all callers changed.
9054
9055 2011-09-27 Andi Kleen <ak@linux.intel.com>
9056 Jan Hubicka <jh@suse.cz>
9057
9058 * doc/invoke.texi (ffat-lto-objects): Document.
9059 * toplev.c (compile_file): Do not output assembly when doing slim lto;
9060 Output __gnu_slim_lto when doing slim lto.
9061 * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
9062 (cgraph_optimize): Return early when doing slim lto.
9063 * opts.c (finish_options): Complain about lack of linker plugin
9064 when doing slim lto.
9065 * common.opt (ffat-lto-objects): New.
9066
9067 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
9068
9069 * ipa-inline-analysis.c (predicate_probability): Avoid comparison
9070 between signed and unsigned.
9071
9072 2011-09-27 Ira Rosen <ira.rosen@linaro.org>
9073
9074 * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
9075 vectorization.
9076 (vectorizable_type_promotion): Likewise.
9077 (vect_analyze_stmt): Call vectorizable_type_demotion and
9078 vectorizable_type_promotion for basic blocks.
9079 (supportable_widening_operation): Don't assume loop vectorization.
9080 * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
9081 basic blocks. Update vectorization factor for basic block
9082 vectorization.
9083 (vect_analyze_slp_instance): Allow multiple types for basic block
9084 vectorization. Recheck unrolling factor after construction of SLP
9085 instance.
9086
9087 2011-09-27 Richard Guenther <rguenther@suse.de>
9088
9089 * tree-object-size.c (compute_object_sizes): Fix dumping of
9090 folded statement.
9091
9092 2011-09-27 Richard Guenther <rguenther@suse.de>
9093
9094 PR tree-optimization/50363
9095 * tree-ssa-pre.c (create_expression_by_pieces): Handle
9096 pointer conversions in POINTER_PLUS_EXPRs properly.
9097
9098 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
9099
9100 * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
9101 (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
9102 (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
9103 (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
9104 that produce subreg moves. Define using VQX iterators.
9105
9106 2011-09-27 Georg-Johann Lay <avr@gjlay.de>
9107
9108 * config/avr/avr.md (ashrqi3): Split alternative "n"
9109 into its remaining parts C03, C04, C05, C06, C07 and describe
9110 impact in CC by attribute "cc" appropriately.
9111 * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
9112 by digging RTX.
9113
9114 2011-09-27 Jakub Jelinek <jakub@redhat.com>
9115
9116 * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
9117 from 3 x MAX_MACHINE_MODE.
9118 (CONSTM1_RTX): Define.
9119 * emit-rtl.c (const_tiny_rtx): Change into array of
9120 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
9121 (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
9122 CONSTM1_RTX.
9123 (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
9124 MODE_VECTOR_INT modes.
9125 * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
9126 Optimize if one operand is CONSTM1_RTX.
9127 * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
9128 into mask | x.
9129
9130 2011-09-26 David S. Miller <davem@davemloft.net>
9131
9132 * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
9133 (fcmp{le,ne,gt,eq}{16,32}): Likewise.
9134 * config/sparc/visintrin.h: Update edge and pixel-compare
9135 intrinsics to return 'long' instead of 'int'.
9136 * doc/extend.texi: Update documentation to match.
9137 * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
9138 flat, allow any instruction. Otherwise, when V9 allow parallels
9139 which consist only of sets to registers outside of %o0 to %o5.
9140 (sparc_vis_init_builtins): Update VIS builtin types for edge
9141 and pixel-compare.
9142
9143 * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
9144 is enabled, mark %gsr as global.
9145 * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
9146 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
9147
9148 * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
9149 which will now define __VIS and __VIS__ when -mvis is enabled.
9150 * config/sparc/t-sparc: Likewise.
9151 * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
9152 and add t-sparc to tmake_file for all sparc targets.
9153 * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
9154 * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
9155
9156 * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
9157 builtins for VIS vector addition and subtraction.
9158 * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
9159 __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
9160 __vis_fpsub32, __vis_fpsub32s): New.
9161 * doc/extend.texi: Document new VIS intrinsics.
9162
9163 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
9164
9165 * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
9166 * config/avr/avr.c (avr_out_compare): Print shorter sequence for
9167 EQ/NE comparisons against +/-1 in the case of unused-after,
9168 non-ld-regs target.
9169
9170 2011-09-26 Jakub Jelinek <jakub@redhat.com>
9171
9172 * gimple-fold.c (gimplify_and_update_call_from_tree): Set
9173 gctx.into_ssa after push_gimplify_context.
9174
9175 * gimple.c (gimple_build_call_valist): New function.
9176 * gimple.h (gimple_build_call_valist): New prototype.
9177 * tree-ssa-propagate.c (finish_update_gimple_call): New function.
9178 (update_gimple_call): Likewise.
9179 (update_call_from_tree): Use finish_update_gimple_call.
9180 * tree-ssa-propagate.h (update_gimple_call): New prototype.
9181
9182 2011-09-26 Richard Guenther <rguenther@suse.de>
9183
9184 PR tree-optimization/50472
9185 * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
9186 volatile references.
9187
9188 2011-09-26 Bingfeng Mei <bmei@broadcom.com>
9189
9190 * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
9191 * target.def: (addr_space_subset_p): Likewise.
9192
9193 2011-09-26 Tom de Vries <tom@codesourcery.com>
9194
9195 * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
9196 * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
9197 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
9198 of new var.
9199
9200 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
9201
9202 PR target/50465
9203 * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
9204 * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
9205 output_reload_insisf.
9206 (adjust_len): Set default to "no".
9207 Remove alternative "yes". Add alternatives: "mov8", "mov16",
9208 "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
9209 "lshrhi", "ashlsi, "ashrsi", "lshrsi".
9210 (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
9211 *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
9212 *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
9213 *lshrsi3_const): Set attribute "adjust_len".
9214 * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
9215 (output_movsisf): Don't pass insn to output_reload_insisf.
9216 (adjust_insn_length): Handle new alternatives to adjust_len.
9217 Remove handling of ADJUST_LEN_YES. Clean-up code.
9218
9219 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
9220
9221 * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
9222 may_trap_p to detect loads that may trap of fault.
9223
9224 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
9225
9226 * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
9227 * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
9228 (*reload_inhi): Use it. Adapt call to output_reload_inhi to new
9229 prototype.
9230 (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
9231 * config/avr/avr.c: Rename output_reload_insisf_1 to
9232 output_reload_in_const.
9233 (avr_popcount_each_byte): Handle SFmode, too.
9234 (output_reload_in_const): Change so it can handle HI loads, too.
9235 Use avr_popcount_each_byte to work out if scratch register must be
9236 created on the fly.
9237 (output_reload_inhi): Rewrite using output_reload_in_const and...
9238 (output_movhi): ...use it to print constants' loads.
9239 (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
9240
9241 2011-09-25 David S. Miller <davem@davemloft.net>
9242
9243 * config/sparc/constraints.md (C, P, Z): New constraints for
9244 const_doube, const_int, and const_vector "all ones" values.
9245 Make unused constraint letters comment match reality.
9246 * config/sparc/predicates.md (const_all_ones_operand,
9247 register_or_zero_or_all_ones_operand): New predicates.
9248 * config/sparc/sparc.c (sparc_expand_move): Allow all ones
9249 as well as zero constants when VIS.
9250 (sparc_legitimate_constant_p): Likewise.
9251 * config/sparc/sparc.md (movsi_insn): Add fones alternative.
9252 (movsf_insn): Likewise
9253 (movdi_insn_sp64): Add fone alternative.
9254 (movdf_insn_sp32_v9): Likewise.
9255 (movdf_insn_sp64): Likewise.
9256
9257 * configure.ac: Add feature check to make sure the assembler
9258 supports the FMAF, HPC, and VIS 3.0 instructions found on
9259 Niagara-3 and later cpus.
9260 * configure: Rebuild.
9261 * config.in: Likewise.
9262 * config/sparc/sparc.opt: New option '-mfmaf'.
9263 * config/sparc/sparc.md: Add float fused multiply-add patterns.
9264 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
9265 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
9266 * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
9267 ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
9268 * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
9269 by default for Niagara-3 and later. Turn it off if TARGET_FPU is
9270 disabled.
9271 (sparc_rtx_costs): Handle 'FMA'.
9272 * doc/invoke.texi: Document -mfmaf.
9273
9274 2011-09-25 Jakub Jelinek <jakub@redhat.com>
9275
9276 * tree-ssa-structalias.c (intra_create_variable_infos): Treat
9277 TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
9278 DECL_BY_REFERENCE parameters.
9279
9280 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
9281
9282 * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
9283 if there is no outgoing edge.
9284
9285 * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
9286 integral types.
9287
9288 2011-09-25 Ira Rosen <ira.rosen@linaro.org>
9289
9290 * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
9291 of vect_analyze_bb here.
9292 (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
9293
9294 2011-09-25 Ira Rosen <ira.rosen@linaro.org>
9295
9296 * tree-data-ref.c (dr_analyze_innermost): Add new argument.
9297 Allow not simple iv if analyzing basic block.
9298 (create_data_ref): Update call to dr_analyze_innermost.
9299 (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
9300 * tree-loop-distribution.c (generate_memset_zero): Likewise.
9301 * tree-predcom.c (find_looparound_phi): Likewise.
9302 * tree-data-ref.h (dr_analyze_innermost): Add new argument.
9303
9304 2011-09-24 David S. Miller <davem@davemloft.net>
9305
9306 * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
9307 (SPARC_GSR_REG): Define.
9308 (FIXED_REGISTERS): Mark GSR as fixed.
9309 (CALL_USED_REGISTERS): Mark GSR as call used.
9310 (HARD_REGNO_NREGS): GSR is always 1 register.
9311 (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
9312 (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
9313 (REGISTER_NAMES): Add "%gsr".
9314 * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
9315 (UNSPEC_WRGSR): New unspec.
9316 (GSR_REG): New constant.
9317 (type): Add new insn type 'gsr'.
9318 (fpack16_vis, fpackfix_vis, fpack32_vis,
9319 faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
9320 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
9321 rdgsr_v8plus): New expanders and insns.
9322 (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
9323 using patterns which show that this is a plus in addition to a
9324 modification of GSR_REG, instead of an unspec.
9325 * config/sparc/ultra1_2.md: Handle 'gsr'.
9326 * config/sparc/ultra3.md: Likewise.
9327 * config/sparc/niagara.md: Likewise.
9328 * config/sparc/niagara2.md: Likewise.
9329 * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
9330 end of table.
9331 (sparc_option_override): Make -mvis imply -mv8plus.
9332 (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
9333 for %gsr.
9334 (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
9335 __builtin_vis_read_gsr.
9336 (sparc_expand_buildin): Handle builtins that take one argument and
9337 return void.
9338 (sparc_fold_builtin): Never fold writes to %gsr.
9339 * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
9340 * doc/extend.texi: Document new VIS intrinsics.
9341
9342 2011-09-23 Jan Hubicka <jh@suse.cz>
9343
9344 * ipa-inline-transform.c (inline_call): Add comment.
9345 * ipa-inline.h (inline_param_summary): New structure and vector.
9346 (struct inline_edge_summary): Add param field.
9347 * ipa-inline-analysis.c (CHANGED): New constant.
9348 (add_clause): Handle CHANGED and NOT_CONSTANT.
9349 (predicate_probability): New function.
9350 (dump_condition): Dump CHANGED predicate.
9351 (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
9352 of unknown function wide invariant.
9353 (evaluate_conditions_for_edge): Handle change probabilities.
9354 (inline_edge_duplication_hook): Copy param summaries.
9355 (inline_edge_removal_hook): Free param summaries.
9356 (dump_inline_edge_summary): Fix dumping of indirect edges and callee
9357 sizes; dump param summaries.
9358 (will_be_nonconstant_predicate): Use CHANGED predicate.
9359 (record_modified_bb_info): New structure.
9360 (record_modified): New function.
9361 (param_change_prob): New function.
9362 (estimate_function_body_sizes): Compute param summaries.
9363 (estimate_edge_size_and_time): Add probability argument.
9364 (estimate_node_size_and_time): Add inline_param_summary argument;
9365 handle predicate probabilities.
9366 (remap_predicate): Fix formating.
9367 (remap_edge_change_prob): New function.
9368 (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
9369 (remap_edge_predicates): ... this one.
9370 (inline_merge_summary): Remap edge summaries; handle predicate
9371 probabilities; remove param summaries after we are done.
9372 (do_estimate_edge_time): Update.
9373 (do_estimate_edge_growth): Update.
9374 (read_inline_edge_summary): Read param info.
9375 (inline_read_summary): Fix formating.
9376 (write_inline_edge_summary): Write param summaries.
9377
9378 2011-09-23 Jakub Jelinek <jakub@redhat.com>
9379
9380 * config/i386/i386.c (ix86_print_operand): Handle %~.
9381 (ix86_print_operand_punct_valid_p): Return true also for '~'.
9382 * config/i386/sse.md (i128): New mode_attr.
9383 (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
9384 avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
9385 *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
9386 vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
9387 patterns, use "<sseinsnmode>" for "mode" attribute.
9388 (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
9389 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
9390 %~128 in the patterns, use "OI" for "mode" attribute.
9391
9392 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
9393
9394 PR target/50447
9395 * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
9396 "tstsi", "compare".
9397 (*cmpqi_sign_extend): Use s8_operand.
9398 (*cmphi, *cmpsi): Rewrite using avr_out_compare.
9399 * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
9400 prototypes.
9401 (out_tsthi, out_tstsi): Remove prototypes.
9402 (avr_out_tsthi, avr_out_tstsi): New prototypes.
9403 * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
9404 (avr_asm_len): Negative length now sets *plen to -length.
9405 (compare_sign_p): Return bool instead of int.
9406 (compare_diff_p, compare_eq_p): Ditto and make static.
9407 (avr_out_tsthi): New function.
9408 (avr_out_tstsi): New function.
9409 (avr_out_compare): New function.
9410 (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
9411 ADJUST_LEN_COMPARE.
9412
9413 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
9414
9415 PR target/50447
9416 * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
9417 (addsi3): Rewrite using QI scratch register. Adjust text
9418 peepholes using plus:SI.
9419 (*addsi3_zero_extend.hi): New insn.
9420 (*subsi3_zero_extend.hi): New insn.
9421 (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
9422 (*subsi3_zero_extend): Ditto.
9423 (subsi3): Change predicate #2 to register_operand.
9424 * config/avr/avr-protos.h (avr_out_plus): New prototype.
9425 (avr_out_plus_1): New static function.
9426 (avr_out_plus): New function.
9427 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
9428
9429 2011-09-23 Jakub Jelinek <jakub@redhat.com>
9430
9431 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
9432 GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
9433
9434 2011-09-23 Ian Lance Taylor <iant@google.com>
9435
9436 * godump.c (go_define): Treat a single character in single quotes,
9437 or a string, as an operand.
9438
9439 2011-09-23 Martin Jambor <mjambor@suse.cz>
9440
9441 * ipa-prop.h (jump_func_type): Updated comments.
9442 (ipa_known_type_data): New type.
9443 (ipa_jump_func): Use it to describe known type jump functions.
9444 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
9445 reflect the new known type jump function contents.
9446 (compute_known_type_jump_func): Likewise.
9447 (combine_known_type_and_ancestor_jfs): Likewise.
9448 (try_make_edge_direct_virtual_call): Likewise.
9449 (ipa_write_jump_function): Likewise.
9450 (ipa_read_jump_function): Likewise.
9451 * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
9452 (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
9453 (propagate_accross_jump_function): Likewise.
9454
9455 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
9456
9457 PR target/50446
9458 * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
9459 (rotlqi3_4): Turn insn into expander.
9460 (*rotlqi3): New insn.
9461 (rotlhi3, rotlsi3): Support rotate left/right by 1.
9462 (*rotlhi2.1, *rotlhi2.15): New insns.
9463 (*rotlsi2.1, *rotlsi2.31): New insns.
9464 * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
9465
9466 2011-09-23 Bin Cheng <bin.cheng@arm.com>
9467
9468 * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
9469
9470 2011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com>
9471
9472 * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
9473
9474 2011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9475
9476 * reload.c (find_reloads): Set operand_mode to Pmode for address
9477 operands consisting of just a CONST_INT.
9478
9479 2011-09-22 Uros Bizjak <ubizjak@gmail.com>
9480
9481 PR target/50482
9482 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
9483 blendv, force op_true to register if it doesn't satisfy
9484 nonimmediate_operand predicate.
9485
9486 2011-09-22 Richard Sandiford <rdsandiford@googlemail.com>
9487
9488 PR middle-end/50113
9489 PR middle-end/50061
9490 * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
9491 get the locate.where_pad value for register-only arguments.
9492 * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
9493 (arm_pad_reg_upward): Handle null types.
9494
9495 2011-09-22 Jan Hubicka <jh@suse.cz>
9496
9497 * ipa-inline-analysis.c: Fix overly long lines.
9498
9499 2011-09-22 Jan Hubicka <jh@suse.cz>
9500
9501 * ipa-inline-transform.c (inline_call): Always update jump functions
9502 after inlining.
9503 * ipa-inline.c (ipa_inline): Likewise; do not call
9504 ipa_create_all_structures_for_iinln.
9505 (ipa_inline): Always free jump functions.
9506 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
9507 (remap_edge_predicates): Fix pasto.
9508 (inline_merge_summary): Remove nlined edge predicate; remove hack.
9509 (inline_analyze_function): Always initialize jump functions.
9510 (inline_generate_summary): Likewise.
9511 (inline_write_summary): Always write jump functions when ipa-cp
9512 is not doing that.
9513 (inline_read_summary): Always read jump functions when ipa-cp
9514 is not doing that.
9515 * ipa-prop.c (iinlining_processed_edges): Remove.
9516 (update_indirect_edges_after_inlining): Do not use
9517 iinlining_processed_edges; instead set param_index to -1.
9518 (propagate_info_to_inlined_callees): Only try to indirect inlining
9519 when asked to do so; update jump functions of indirect calls, too;
9520 remove jump functions of the inlined edge.
9521 (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
9522 (ipa_create_all_structures_for_iinln): Remove.
9523 (ipa_free_all_structures_after_iinln): Do not free
9524 iinlining_processed_edges.
9525 * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
9526
9527 2011-09-22 Richard Sandiford <richard.sandiford@linaro.org>
9528
9529 * config/arm/predicates.md (expandable_comparison_operator): New
9530 predicate, extracted from...
9531 (arm_comparison_operator): ...here.
9532 * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
9533 (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
9534 (movdfcc): Use expandable_comparison_operator.
9535
9536 2011-09-22 Georg-Johann Lay <avr@gjlay.de>
9537
9538 PR target/50447
9539 PR target/50465
9540 * config/avr/avr-protos.h (avr_out_bitop): New prototype.
9541 (avr_popcount_each_byte): New prototype.
9542 * config/avr/avr.c (avr_popcount): New static function.
9543 (avr_popcount_each_byte): New function.
9544 (avr_out_bitop): New function.
9545 (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
9546 avr_out_bitop. Cleanup code.
9547 * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
9548 (Ca4, Co4, Cx4): New constraints.
9549 * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
9550 alternative.
9551 (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
9552 (andsi3, iorsi3, xorsi3): Ditto.
9553 (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
9554
9555 2011-09-22 Ira Rosen <ira.rosen@linaro.org>
9556
9557 PR tree-optimization/50451
9558 * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
9559 constant operands in reduction.
9560 (vect_get_slp_defs): Don't create vector operand for NULL scalar
9561 operand.
9562
9563 2011-09-22 David S. Miller <davem@davemloft.net>
9564
9565 * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
9566 fpack16, fpack32, fpackfix as const.
9567
9568 * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
9569 I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
9570 constants. Use them everywhere.
9571
9572 2011-09-22 Oleg Endo <oleg.endo@t-online.de>
9573
9574 * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
9575 Added AND special case. Adapted comments.
9576 (sh_rtx_costs): Added XOR and IOR case.
9577
9578 2011-09-21 Jan Hubicka <jh@suse.cz>
9579
9580 * ipa-inline-analsis.c (compute_inline_parameters): Set
9581 cfun and current_function_decl.
9582
9583 2011-09-21 Jan Hubicka <jh@suse.cz>
9584
9585 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
9586 handled components in parameter of builtin_constant_p.
9587 (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
9588
9589 2011-09-21 Jan Hubicka <jh@suse.cz>
9590
9591 * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
9592 * ipa-inline.h (estimate_edge_time): Fix pasto.
9593 * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
9594
9595 2011-09-21 Jakub Jelinek <jakub@redhat.com>
9596
9597 * config/i386/i386.c (ix86_expand_sse_movcc): Use
9598 blendvps, blendvpd and pblendvb if possible.
9599
9600 2011-09-21 Uros Bizjak <ubizjak@gmail.com>
9601
9602 PR target/50464
9603 * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
9604 operand 1 predicate to register_operand and operand 2 predicate
9605 to nonimmediate_operand.
9606 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
9607 xop_pcmov, force op_true to register. Also, force op_false to
9608 register if it doesn't satisfy nonimmediate_operand predicate.
9609
9610 2011-09-21 Kirill Yukhin <kirill.yukhin@intel.com>
9611
9612 * config/i386/bmi2intrin.h (_mulx_u64): New.
9613 (_mulx_u32): Ditto.
9614
9615 2011-09-21 Jan Hubicka <jh@suse.cz>
9616
9617 PR tree-optimization/50433
9618 * ipa-inline-analysis.c (eliminated_by_inlining_prob):
9619 Use get_base_address.
9620
9621 2011-09-21 Jakub Jelinek <jakub@redhat.com>
9622
9623 * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
9624 nonimmediate_operand instead of register_operand predicate for operands
9625 1 and 2, force them into registers if expanding them as comparison.
9626 (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX
9627 V8HImode force into register just operand 1.
9628
9629 2011-09-21 Georg-Johann Lay <avr@gjlay.de>
9630
9631 PR target/45099
9632 * config/avr/avr.c (avr_function_arg_advance): Change error to
9633 warning if a fixed register is needed as function argument.
9634
9635 2011-09-21 Georg-Johann Lay <avr@gjlay.de>
9636
9637 PR target/50449
9638 PR target/50465
9639 * config/avr/avr.md (adjust_len): New insn attribute.
9640 (*reload_insi, *reload_insf): Use it.
9641 (*movsi, *movsf): Use new interface of output_movsisf.
9642 * config/avr/avr-protos.h (output_movsisf): Change prototype.
9643 * config/avr/avr.c (output_movsisf): Ditto.
9644 (adjust_insn_length): Use insn attribute "adjust_len" to adjust
9645 lengths of insns *reload_insi, *reload_insf.
9646 (output_reload_insisf_1): New static function.
9647 (output_reload_insisf): Use it.
9648
9649 2011-09-21 David S. Miller <davem@davemloft.net>
9650
9651 * config/sparc/sparc.c (def_builtin): Change from macro into function.
9652 (def_builtin_const): New.
9653 (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
9654 other than alignaddr and falignaddr.
9655
9656 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
9657 UNSPEC_FCMPEQ): New unspec codes.
9658 (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
9659 fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
9660 * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
9661 new pixel compare VIS patterns.
9662 * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
9663 __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
9664 __vis_fcmpeq16, __vis_fcmpeq32): New.
9665 * doc/extend.texi: Document new pixel compare VIS intrinsics.
9666
9667 2011-09-21 Tom de Vries <tom@codesourcery.com>
9668
9669 * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
9670
9671 2011-09-20 David S. Miller <davem@davemloft.net>
9672
9673 * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
9674 (aligneddrl<P:mode>_vis): New pattern.
9675 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
9676 edge32l_vis): Adjust to take Pmode arguments, and return SImode.
9677 * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
9678 alignaddrl insn, and adjust edge operations for updated types.
9679 * config/sparc/visintrin.h: Likewise.
9680 * doc/extend.texi: Make typing in VIS documentation match reality.
9681
9682 2011-09-20 Terry Guo <terry.guo@arm.com>
9683
9684 * config/arm/arm-arches.def: Add armv6s-m.
9685 * config/arm/arm-tables.opt: Regenerate.
9686
9687 2011-09-20 Wei Guozhi <carrot@google.com>
9688
9689 PR rtl-optimization/49452
9690 * postreload.c (reload_combine): Invalidate use information when across
9691 volatile insn.
9692
9693 2011-09-19 Maxim Kuvyrkov <maxim@codesourcery.com>
9694
9695 * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
9696 Remove maintenance overhead.
9697 (haifa_sched_init, sched_finish): Update.
9698
9699 2011-09-19 Uros Bizjak <ubizjak@gmail.com>
9700
9701 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
9702 to calculate unit, prefix_rep and prefix_data16 attributes.
9703 (*mov<mode>_internal): Ditto for unit attribute.
9704 (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
9705 (*movv2sf_internal): Ditto.
9706 * config/i386/sse.md (VI1248_256): Remove mode iterator.
9707 (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
9708 (*avx2_eq<mode>3): Ditto.
9709 (avx2_gt<mode>3): Ditto.
9710
9711 2011-09-19 Uros Bizjak <ubizjak@gmail.com>
9712
9713 * config/i386/i386.md (maxmin): New code iterator.
9714 * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
9715 from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
9716 code iterator.
9717 (*avx2_<maxmin:code><mode>3): Macroize isn from
9718 *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
9719 maxmin code iterator.
9720 (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
9721 (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
9722 <umaxmin:code>v16qi3.
9723
9724 2011-09-19 Alan Modra <amodra@gmail.com>
9725 Michael Meissner <meissner@linux.vnet.ibm.com>
9726
9727 PR target/50341
9728 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
9729 split the load of the indirect function's TOC from the call to
9730 prevent the compiler from moving the load of the new TOC above
9731 code that references the current function's TOC.
9732 (call_indirect_aix<ptrsize>_internal): Ditto.
9733 (call_indirect_aix<ptrsize>_nor11): Ditto.
9734 (call_indirect_aix<ptrsize>_internal2): Ditto.
9735 (call_value_indirect_aix<ptrsize>): Ditto.
9736 (call_value_indirect_aix<ptrsize>_internal): Ditto.
9737 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
9738 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
9739
9740 2011-09-19 Jakub Jelinek <jakub@redhat.com>
9741
9742 * config/i386/sse.md (*sse4_1_extractps): Change into
9743 define_insn_and_split, add =x 0 n and =x x n alternatives
9744 and split them after reload.
9745
9746 2011-09-19 Alexandre Oliva <aoliva@redhat.com>
9747
9748 * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
9749
9750 2011-09-19 Alexandre Oliva <aoliva@redhat.com>
9751
9752 * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
9753
9754 2011-09-19 Ira Rosen <ira.rosen@linaro.org>
9755
9756 PR tree-optimization/50413
9757 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
9758 a basic block if one of its data-refs can't be analyzed.
9759
9760 2011-09-19 Paul Brook <paul@codesourcery.com>
9761
9762 * config/arm/predicates.md (shift_amount_operand): Check constant
9763 shift count is in range.
9764 (const_shift_operand): Remove.
9765
9766 2011-09-18 Eric Botcazou <ebotcazou@adacore.com>
9767 Iain Sandoe <developer@sandoe-acoustics.co.uk>
9768
9769 PR target/50091
9770 * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
9771 * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
9772
9773 2011-09-18 H.J. Lu <hongjiu.lu@intel.com>
9774
9775 * config/i386/bmiintrin.h: Remove tmp.
9776 * config/i386/tbmintrin.h: Likewise.
9777
9778 2011-09-18 Ira Rosen <ira.rosen@linaro.org>
9779
9780 PR tree-optimization/50414
9781 * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
9782 MIN_EXPR.
9783
9784 2011-09-18 Ira Rosen <ira.rosen@linaro.org>
9785
9786 PR tree-optimization/50412
9787 * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
9788 acceses that require epilogue loop if vectorizing outer loop.
9789
9790 2011-09-17 David S. Miller <davem@davemloft.net>
9791
9792 * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
9793 UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
9794 New unspecs.
9795 (define_attr type): New type 'edge'.
9796 (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
9797 edge32l_vis): New patterns.
9798 * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
9799 * config/sparc/ultra3.md: Likewise.
9800 * config/sparc/niagara.md: Likewise.
9801 * config/sparc/niagara2.md: Likewise.
9802 * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
9803 builtins for VIS edge instructions.
9804 * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
9805 (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
9806 intrinsics.
9807 (__v8qi, __v4qi): Make unsigned.
9808 (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
9809 __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
9810 __vis_fpack32): Fix types.
9811 * doc/extend.texi: Document new 'edge' VIS intrinsics.
9812
9813 * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
9814 divide costs.
9815 (niagara3_costs): New.
9816 (sparc_option_override): Use it.
9817 * gcc/config/sparc/niagara2.md: Adjust with more accurate
9818 Niagara-3 reservations.
9819
9820 2011-09-17 Jakub Jelinek <jakub@redhat.com>
9821
9822 * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
9823 (sse2_avx, sseinsnmode): Add V2TI.
9824 (REDUC_SMINMAX_MODE): New mode iterator.
9825 (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
9826 reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
9827 (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
9828 (sse2_lshrv1ti3): Rename to...
9829 (<sse2_avx2>_lshr<mode>3): ... this. Use VIMAX_AVX2 mode
9830 iterator. Move before umaxmin expanders.
9831 * config/i386/i386.h (VALID_AVX256_REG_MODE,
9832 SSE_REG_MODE_P): Accept V2TImode.
9833 * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
9834 V16HImode, V8SImode and V4DImode.
9835
9836 * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
9837 and V4DImode.
9838 (ix86_build_signbit_mask): Likewise.
9839 (ix86_expand_int_vcond): Likewise. Handle V16HImode and V32QImode.
9840 (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
9841 instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
9842 * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
9843 (<code><mode>3) ... this.
9844 (avx2_<code><mode>3 smaxmin expand): Rename to...
9845 (<code><mode>3) ... this.
9846 (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
9847 (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
9848 VI8_AVX2 mode iterator.
9849 (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
9850 VI8_AVX2 mode iterator.
9851 (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
9852 New expanders.
9853
9854 2011-09-17 Richard Sandiford <rdsandiford@googlemail.com>
9855
9856 * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
9857 throughout file.
9858
9859 2011-09-16 David S. Miller <davem@davemloft.net>
9860
9861 * config/sparc/visintrin.h: New file.
9862 * config.gcc: Add it to extra_headers on sparc.
9863
9864 2011-09-16 Jakub Jelinek <jakub@redhat.com>
9865
9866 * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
9867 (ix86_expand_reduc): ... this. Handle also V8SFmode and V4DFmode.
9868 * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
9869 reduc_smin_v4sf): Adjust callers.
9870 (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
9871 New expanders.
9872
9873 * config/i386/sse.md (vec_extract_hi_<mode>,
9874 vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
9875 vextracti128 instead of vextractf128 for -mavx2 and
9876 integer vectors. For V4DFmode fix up mode attribute.
9877 (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
9878 (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
9879 instead of V8SF mode attribute.
9880 (avx2_extracti128): Change into define_expand.
9881 * config/i386/i386.c (ix86_expand_vector_extract): Handle
9882 32-byte vector modes if TARGET_AVX.
9883
9884 2011-09-16 Georg-Johann Lay <avr@gjlay.de>
9885
9886 * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
9887 (umulqi3_highpart, smulqi3_highpart): Ditto.
9888 (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
9889 (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
9890 (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
9891
9892 2011-09-16 Georg-Johann Lay <avr@gjlay.de>
9893
9894 PR target/50358
9895 * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
9896 (*maddqi4, *maddqi4.const): New insns.
9897 (*msubqi4, *msubqi4.const): New insns.
9898 * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
9899 PLUS:QI and MINUS:QI. Increase costs of multiply-add/-sub for
9900 HImode by 1 in the case of multiplying with a CONST_INT.
9901 Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
9902
9903 2011-09-15 Jan Hubicka <jh@suse.cz>
9904
9905 PR lto/50430
9906 * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
9907 error_mark_node in the DECL_INITIAL of vtable.
9908
9909 2011-09-15 Diego Novillo <dnovillo@google.com>
9910
9911 * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
9912 @SYSROOT_CFLAGS_FOR_TARGET@.
9913 * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
9914 * configure: Regenerate.
9915 (site.exp): Add definition of TEST_ALWAYS_FLAGS.
9916 Remove setting of GCC_UNDER_TEST.
9917
9918 2011-09-15 Uros Bizjak <ubizjak@gmail.com>
9919
9920 * config/i386/i386.c (output_fp_compare): Return %v prefixed
9921 instruction mnemonics for TARGET_AVX.
9922
9923 * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
9924 "type" attribute calculation.
9925 (*movdf_internal): Ditto.
9926 (*movsf_internal): Ditto.
9927
9928 2011-09-15 James Greenhalgh <james.greenhalgh@arm.com>
9929
9930 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
9931
9932 2011-09-15 Jason Merrill <jason@redhat.com>
9933
9934 PR c++/50361
9935 * expr.c (count_type_elements): Handle NULLPTR_TYPE.
9936
9937 2011-09-15 Jan Hubicka <jh@suse.cz>
9938
9939 * ipa-inline-analysis.c (add_condition): Add conditions parameter;
9940 simplify obviously true clauses.
9941 (and_predicates, or_predicates): Add conditions parameter.
9942 (inline_duplication_hoook): Update.
9943 (mark_modified): New function.
9944 (unmodified_parm): New function.
9945 (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
9946 set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
9947 Use unmodified_parm.
9948 (estimate_function_body_sizes): Update.
9949 (remap_predicate): Update.
9950
9951 2011-09-15 Ira Rosen <ira.rosen@linaro.org>
9952
9953 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
9954 read-after-read dependencies in basic block SLP.
9955
9956 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9957
9958 * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
9959 throughout file.
9960
9961 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9962
9963 * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
9964 throughout file.
9965
9966 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9967
9968 * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
9969 throughout file.
9970
9971 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9972
9973 * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
9974 throughout file.
9975 * config/rs6000/constraints.md: Likewise.
9976
9977 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9978
9979 * config/microblaze/microblaze.md: Use match_test rather than
9980 eq/ne symbol_ref throughout file.
9981
9982 2011-09-14 Richard Sandiford <rdsandiford@googlemail.com>
9983
9984 * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
9985 throughout file.
9986
9987 2011-09-14 Tom de Vries <tom@codesourcery.com>
9988
9989 PR middle-end/50251
9990 * explow.c (emit_stack_restore): Set crtl->need_drap if
9991 stack_restore is emitted.
9992
9993 2011-09-14 Julian Brown <julian@codesourcery.com>
9994
9995 * config/arm/arm.c (arm_override_options): Add unaligned_access
9996 support.
9997 (arm_file_start): Emit attribute for unaligned access as appropriate.
9998 * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
9999 (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
10000 (insv, extzv): Add unaligned-access support.
10001 (extv): Change to expander. Likewise.
10002 (extzv_t1, extv_regsi): Add helpers.
10003 (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
10004 (unaligned_storesi, unaligned_storehi): New.
10005 (*extv_reg): New (previous extv implementation).
10006 * config/arm/arm.opt (munaligned_access): Add option.
10007 * config/arm/constraints.md (Uw): New constraint.
10008 * expmed.c (store_bit_field_1): Adjust bitfield numbering according
10009 to size of access, not size of unit, when BITS_BIG_ENDIAN !=
10010 BYTES_BIG_ENDIAN. Don't use bitfield accesses for
10011 volatile accesses when -fstrict-volatile-bitfields is in effect.
10012 (extract_bit_field_1): Likewise.
10013
10014 2011-09-14 Richard Sandiford <richard.sandiford@linaro.org>
10015
10016 * simplify-rtx.c (simplify_subreg): Check that the inner mode is
10017 a scalar integer before applying integer-only optimisations to
10018 inner arithmetic.
10019
10020 2011-09-14 Bernd Schmidt <bernds@codesourcery.com>
10021
10022 * config/mips/mips.c (mips_expand_epilogue): Generate a
10023 simple_return only if the return address is in r31.
10024
10025 2011-09-13 Bernd Schmidt <bernds@codesourcery.com>
10026
10027 * cfgcleanup.c (try_head_merge_bb): If get_condition returns
10028 NULL for a jump that is a cc0 insn, pick the previous insn for
10029 move_before.
10030
10031 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10032
10033 * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
10034 throughout file.
10035
10036 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10037
10038 * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
10039 throughout file.
10040
10041 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10042
10043 * config/mn10300/mn10300.md: Use match_test rather than eq/ne
10044 symbol_ref throughout file.
10045
10046 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10047
10048 * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
10049 throughout file.
10050
10051 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10052
10053 * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
10054 throughout file.
10055
10056 2011-09-13 Richard Sandiford <rdsandiford@googlemail.com>
10057
10058 * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
10059 throughout file.
10060 * config/arm/neon.md: Likewise.
10061 * config/arm/vfp.md: Likewise.
10062 * config/arm/thumb2.md: Likewise.
10063 * config/arm/cortex-m4.md: Likewise.
10064
10065 2011-09-13 Sevak Sargsyan <sevak.sargsyan@ispras.ru>
10066
10067 * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
10068 define_insn patterns for combine.
10069
10070 2011-09-13 Giuseppe Scrivano <gscrivano@gnu.org>
10071
10072 * reorg.c: Always define make_return_insns.
10073
10074 2011-09-13 Jan Hubicka <jh@suse.cz>
10075
10076 PR other/49533
10077 * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
10078
10079 2011-09-13 Jan Hubicka <jh@suse.cz>
10080
10081 PR other/49533
10082 * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
10083
10084 2011-09-13 Paul Brook <paul@codesourcery.com>
10085
10086 * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
10087 (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
10088 * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
10089 * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
10090 * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
10091 * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
10092 * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
10093 * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
10094 enabling unwind tables.
10095 (c6x_debug_unwind_info): New function.
10096 (TARGET_ARM_EABI_UNWINDER): Define.
10097 (TARGET_DEBUG_UNWIND_INFO): Define.
10098 * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
10099 (TARGET_EXTRA_CFI_SECTION): Remove.
10100 * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
10101 * ginclude/unwind-arm-common.h: New file.
10102
10103 2011-09-13 Georg-Johann Lay <avr@gjlay.de>
10104
10105 PR target/50358
10106 * config/avr/predicates.md (const_1_to_6_operand): New predicate.
10107 * config/avr/avr.md: (extend_s): New code attribute.
10108 (mul_r_d): New code attribute.
10109 (*maddqihi4, *umaddqihi4): New insns.
10110 (*msubqihi4, *umsubqihi4): New insns.
10111 (*usmaddqihi4, *sumaddqihi4): New insns.
10112 (*usmsubqihi4, *susubdqihi4): New insns.
10113 (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
10114 (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
10115 (*umsubqihi4.uconst.ashift): New insn-and-split.
10116 (*msubqihi4.sconst.ashift): New insn-and-split.
10117 (*sumaddqihi4.uconst): New insn-and-split.
10118 (*sumsubqihi4.uconst): New insn-and-split.
10119 * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
10120 PLUS:HI and MINUS:HI.
10121
10122 2011-09-13 Revital Eres <revital.eres@linaro.org>
10123
10124 modulo-sched.c (remove_node_from_ps): Return void instead of bool.
10125 (optimize_sc): Adjust call to remove_node_from_ps.
10126 (sms_schedule): Add print info.
10127
10128 2011-09-13 Bernd Schmidt <bernds@codesourcery.com>
10129
10130 * rtl.c (copy_rtx): Do not handle frame_related, jump or call
10131 flags specially.
10132
10133 2011-09-12 Jakub Jelinek <jakub@redhat.com>
10134
10135 PR bootstrap/50010
10136 * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
10137 NOTE_INSN_CFI notes, with the exception of
10138 NOTE_INSN_SWITCH_TEXT_SECTIONS.
10139
10140 2011-09-12 Bernd Schmidt <bernds@codesourcery.com>
10141 Richard Sandiford <rdsandiford@googlemail.com>
10142
10143 * config/mips/mips.c (mips_epilogue): New structure.
10144 (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
10145 restoring registers.
10146 (mips_epilogue_emit_cfa_restores): New function.
10147 (mips_epilogue_set_cfa): Likewise.
10148 (mips_restore_reg): Queue REG_CFA_RESTORE notes. When restoring
10149 the current CFA register from the stack, redefine the CFA in terms
10150 of the stack pointer.
10151 (mips_expand_epilogue): Set up mips_epilogue. Attach CFA information
10152 to the epilogue instructions.
10153
10154 2011-09-12 Richard Sandiford <rdsandiford@googlemail.com>
10155
10156 * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
10157 argument.
10158 (mips16e_build_save_restore): Update accordingly.
10159
10160 2011-09-12 Jakub Jelinek <jakub@redhat.com>
10161
10162 PR rtl-optimization/50212
10163 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10164 Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
10165
10166 PR debug/50299
10167 * calls.c (load_register_parameters): Use use_reg_mode instead
10168 of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
10169 entry.
10170 (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
10171 for stack CALL_INSN_FUNCTION_USAGE uses.
10172 * expr.h (use_reg_mode): New prototype.
10173 (use_reg): Changed into inline around use_reg_mode.
10174 * expr.c (use_reg): Renamed to...
10175 (use_reg_mode): ... this. Added MODE argument, set EXPR_LIST
10176 mode to that mode instead of VOIDmode.
10177 * var-tracking.c (prepare_call_arguments): Don't track parameters
10178 whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
10179 to it using lowpart_subreg. Convert VALUE and REG/MEM to the
10180 EXPR_LIST mode.
10181
10182 2011-09-12 Georg-Johann Lay <avr@gjlay.de>
10183
10184 PR target/43746
10185 * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
10186 (progmem_section): New Variable.
10187 (avr_asm_init_sections): Initialize it.
10188 (TARGET_ASM_SELECT_SECTION): Define to...
10189 (avr_asm_select_section): ... this new Function.
10190 (avr_replace_prefix): New Function.
10191 (avr_asm_function_rodata_section): Use it.
10192 (avr_insert_attributes): Don't add section attribute for PROGMEM.
10193 (avr_section_type_flags): Use avr_progmem_p instead of section
10194 name to detect if object is in PROGMEM.
10195 (avr_asm_named_section): Set section name prefix for objects in
10196 PROGMEM.
10197
10198 2011-09-12 Jakub Jelinek <jakub@redhat.com>
10199
10200 PR bootstrap/50352
10201 * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
10202 sprintf format string.
10203
10204 2011-09-12 Richard Guenther <rguenther@suse.de>
10205
10206 PR tree-optimization/50343
10207 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
10208 that the reduction is over an SSA name before checking its definition.
10209
10210 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
10211
10212 * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
10213 throughout file.
10214
10215 2011-09-11 Richard Sandiford <rdsandiford@googlemail.com>
10216
10217 * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
10218 throughout file.
10219 * config/mips/sb1.md: Likewise.
10220 * config/mips/predicates.md: Replace (match_test "!...")
10221 with (not (match_test "..."))
10222 * config/mips/constraints.md: Likewise.
10223
10224 2011-09-09 Andrew Stubbs <ams@codesourcery.com>
10225
10226 * config/arm/arm-cores.def (generic-armv7-a): New architecture.
10227 * config/arm/arm-tables.opt: Regenerate.
10228 * config/arm/arm-tune.md: Regenerate.
10229 * config/arm/arm.c (arm_file_start): Output .arch directive when
10230 user passes -mcpu=generic-*.
10231 (arm_issue_rate): Add genericv7a support.
10232 * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
10233 (ASM_CPU_SPEC): New define.
10234 * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
10235 * config/arm/semi.h (ASM_SPEC): Likewise.
10236 * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
10237 and -mtune=generic-*.
10238
10239 2011-09-09 Richard Guenther <rguenther@suse.de>
10240
10241 PR tree-optimization/50328
10242 * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
10243 constant or default-def operand.
10244
10245 2011-09-09 Richard Guenther <rguenther@suse.de>
10246
10247 * tree-ssa-pre.c (create_expression_by_pieces): Fold the
10248 last statement.
10249
10250 2011-09-09 Richard Guenther <rguenther@suse.de>
10251
10252 * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
10253 instead of a statement.
10254 * gimple-fold.c (fold_stmt_inplace): Likewise.
10255 * sese.c (graphite_copy_stmts_from_block): Adjust.
10256 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
10257 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
10258 fold_stmt.
10259 (forward_propagate_addr_into_variable_array_index): Likewise.
10260 (forward_propagate_addr_expr_1): adjust.
10261 (associate_plusminus): Likewise.
10262 (ssa_forward_propagate_and_combine): Likewise.
10263 * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
10264 (execute_cse_reciprocals): Likewise.
10265 * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
10266
10267 2011-09-09 Nick Clifton <nickc@redhat.com>
10268
10269 * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
10270 Return a positive value to indicate that the bits at the
10271 bottom of the register should be cleared.
10272
10273 2011-09-09 Richard Guenther <rguenther@suse.de>
10274
10275 * tree-ssa-operands.c (swap_tree_operands): Always adjust
10276 existing operand positions.
10277
10278 2011-09-09 Richard Guenther <rguenther@suse.de>
10279
10280 PR middle-end/50333
10281 * tree-data-ref.c (split_constant_offset): Do not try to handle
10282 ternary ops.
10283
10284 2011-09-08 Andrew Stubbs <ams@codesourcery.com>
10285
10286 PR tree-optimization/50318
10287 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
10288 typo in use of mult_rhs1 and mult_rhs2.
10289
10290 2011-09-08 Uros Bizjak <ubizjak@gmail.com>
10291
10292 * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
10293 (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
10294
10295 2011-09-08 Bernd Schmidt <bernds@codesourcery.com>
10296
10297 * config/arm/arm.md (push_multi): Emit predicates.
10298 (push_fp_multi): Likewise.
10299 * config/arm/arm.c (vfp_output_fstmd): Likewise.
10300
10301 2011-09-08 Dodji Seketeli <dodji@redhat.com>
10302
10303 PR c++/33255 - Support -Wunused-local-typedefs warning
10304 * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
10305 (pushdecl): Use the new record_locally_defined_typedef.
10306 (store_parm_decls): Allocate cfun->language.
10307 (finish_function): Use the new maybe_warn_unused_local_typedefs,
10308 and free cfun->language.
10309 (c_push_function_context): Allocate cfun->language here only if needed.
10310 (c_pop_function_context): Likewise, mark cfun->language
10311 for collection only when it should be done.
10312 * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
10313 * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
10314 maybe_record_local_typedef_use.
10315 * doc/invoke.texi: Update documentation for
10316 -Wunused-local-typedefs.
10317
10318 2011-09-08 Enkovich Ilya <ilya.enkovich@intel.com>
10319
10320 * config/i386/i386-protos.h (ix86_lea_outperforms): New.
10321 (ix86_avoid_lea_for_add): Likewise.
10322 (ix86_avoid_lea_for_addr): Likewise.
10323 (ix86_split_lea_for_addr): Likewise.
10324
10325 * config/i386/i386.c (LEA_MAX_STALL): New.
10326 (increase_distance): Likewise.
10327 (insn_defines_reg): Likewise.
10328 (insn_uses_reg_mem): Likewise.
10329 (distance_non_agu_define_in_bb): Likewise.
10330 (distance_agu_use_in_bb): Likewise.
10331 (ix86_lea_outperforms): Likewise.
10332 (ix86_ok_to_clobber_flags): Likewise.
10333 (ix86_avoid_lea_for_add): Likewise.
10334 (ix86_avoid_lea_for_addr): Likewise.
10335 (ix86_split_lea_for_addr): Likewise.
10336 (distance_non_agu_define): Search in pred BBs added.
10337 (distance_agu_use): Search in succ BBs added.
10338 (IX86_LEA_PRIORITY): Value changed from 2 to 0.
10339 (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
10340 (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
10341
10342 * config/i386/i386.md: Split added to transform non destructive
10343 add into move and add.
10344 (lea_1): transformed into insn_and_split to avoid AGU stalls.
10345 (lea<mode>_2): Likewise.
10346
10347 2011-09-08 Martin Jambor <mjambor@suse.cz>
10348
10349 PR tree-optimization/50287
10350 * ipa-split.c (split_function): Do not create SSA names for
10351 non-gimple-registers.
10352
10353 2011-09-08 Richard Guenther <rguenther@suse.de>
10354
10355 PR tree-optimization/19831
10356 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
10357 skip builtins with vdefs that do not really store something.
10358 (propagate_necessity): For calls to free that we can associate
10359 with an allocation function do not mark the freed pointer
10360 definition necessary.
10361 (eliminate_unnecessary_stmts): Remove a call to free if
10362 the associated call to an allocation function is not necessary.
10363
10364 2011-09-08 Richard Guenther <rguenther@suse.de>
10365
10366 PR tree-optimization/19831
10367 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
10368 allocation functions as necessary.
10369
10370 2011-09-08 Iain Sandoe <iains@gcc.gnu.org>
10371
10372 * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
10373 cut from ...
10374 (darwin_default_min_version): Amended to provide defaults
10375 for the cross directory case.
10376 (darwin_driver_init): call darwin_default_min_version unconditionally.
10377 * config/darwin.h (DEF_MIN_OSX_VERSION): New.
10378 * config/darwin9.h: Likewise.
10379 * config/darwin10.h: Likewise.
10380 * config/rs6000/darwin7.h: Likewise.
10381
10382 2011-09-08 Jakub Jelinek <jakub@redhat.com>
10383
10384 PR target/50310
10385 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
10386 code early if TARGET_AVX.
10387 (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
10388
10389 2011-09-07 Jakub Jelinek <jakub@redhat.com>
10390
10391 * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
10392 duplicates.
10393
10394 PR target/50310
10395 * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
10396 "mode" attribute computation.
10397
10398 2011-09-07 Bernd Schmidt <bernds@codesourcery.com>
10399
10400 * regrename.c (struct du_head): Make nregs signed.
10401 (closed_chains): Remove.
10402 (create_new_chain): Return the new chain.
10403 (chain_from_id): New static function.
10404 (dump_def_use_chain): Change argument to be an int, indicating
10405 the first ID to print. All callers changed.
10406 (merge_overlapping_regs): Use chain_from_id. Assert that
10407 chains don't conflict with themselves.
10408 (rename_chains): Take no argument. Iterate over id_to_chain
10409 rather to find chains to rename. Clear tick before the main loop.
10410 (struct incoming_reg_info): New struct.
10411 (struct bb_rename_info): New struct.
10412 (init_rename_info, set_incoming_from_chain, merge_chains): New
10413 static functions.
10414 (regrename_analyze): New static function, broken out of
10415 regrename_optimize. Record and make use of open chain information
10416 at basic block boundaries, and merge chains where possible.
10417 (scan_rtx_reg): Make this_nregs signed. Don't update
10418 closed_chains.
10419 (build_def_use): Return a bool to indicate success. All callers
10420 changed. Don't initialize global data here.
10421 (regrename_optimize): Move most code out of here into
10422 regrename_analyze.
10423 * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
10424 range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
10425 static inline functions.
10426 * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
10427
10428 * bb-reorder.c (insert_section_boundary_note): Don't check
10429 optimize_function_for_speed_p.
10430 (gate_handle_partition_blocks): Do it here instead.
10431 (gate_handle_reorder_blocks): Move preliminary checks here ...
10432 (rest_of_handle_reorder_blocks): ... from here.
10433
10434 2011-09-07 Martin Jambor <mjambor@suse.cz>
10435
10436 PR middle-end/50301
10437 * ipa-cp.c (find_more_values_for_callers_subset): Check jump
10438 function index bounds.
10439 (perhaps_add_new_callers): Likewise.
10440
10441 2011-09-07 Martin Jambor <mjambor@suse.cz>
10442
10443 PR tree-optimization/49911
10444 * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
10445 enumerations to the corresponding plain integer type.
10446
10447 2011-09-07 Richard Guenther <rguenther@suse.de>
10448
10449 PR tree-optimization/50319
10450 * tree-if-conv.c (set_bb_predicate): Assert we only set
10451 canonical predicates.
10452 (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR
10453 around canonical predicates.
10454 (predicate_bbs): Do not re-gimplify already canonical
10455 predicates. Properly unshare them though.
10456 (find_phi_replacement_condition): Simplify.
10457
10458 2011-09-07 Richard Sandiford <richard.sandiford@linaro.org>
10459
10460 PR target/49030
10461 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
10462 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
10463 reusing the old code from get_arm_condition_code. Return ARM_NV
10464 for invalid comparison codes.
10465 (get_arm_condition_code): Redefine in terms of
10466 maybe_get_arm_condition_code.
10467 * config/arm/predicates.md (arm_comparison_operator): Use
10468 maybe_get_arm_condition_code.
10469
10470 2011-09-07 Richard Guenther <rguenther@suse.de>
10471
10472 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
10473 Canonicalize negated predicates by swapping edges.
10474 (forward_propagate_into_cond): Likewise.
10475
10476 2011-09-07 Richard Guenther <rguenther@suse.de>
10477
10478 PR tree-optimization/50213
10479 * tree-flow.h (simple_iv_increment_p): Declare.
10480 * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle
10481 POINTER_PLUS_EXPR.
10482 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
10483 not propagate simple IV counter increments.
10484
10485 2011-09-07 Eric Botcazou <ebotcazou@adacore.com>
10486 Iain Sandoe <iains@gcc.gnu.org>
10487
10488 * config/rs6000/rs6000.c (compute_save_world_info): Test
10489 cfun->has_nonlocal_label to determine if the out-of-line save
10490 world call may be used.
10491
10492 2011-09-07 Nick Clifton <nickc@redhat.com>
10493
10494 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
10495 label on the parallel part of the insn.
10496
10497 2011-09-07 Jakub Jelinek <jakub@redhat.com>
10498
10499 PR debug/50191
10500 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
10501 avoid_constant_pool_reference first instead of last.
10502
10503 2011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com>
10504
10505 * doc/configfiles.texi (Configuration Files): Update documentation
10506 about tm_p.h and remove FIXME comment.
10507
10508 2011-09-06 Uros Bizjak <ubizjak@gmail.com>
10509
10510 * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
10511 (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
10512
10513 2011-09-06 Iain Sandoe <iains@gcc.gnu.org>
10514
10515 * config/darwin10.h Remove duplicate LIB_SPEC.
10516
10517 2011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
10518
10519 PR middle-end/44382
10520 * target.def (reassociation_width): New hook.
10521
10522 * doc/tm.texi.in (reassociation_width): Likewise.
10523
10524 * doc/tm.texi (reassociation_width): Likewise.
10525
10526 * doc/invoke.texi (tree-reassoc-width): New param documented.
10527
10528 * hooks.h (hook_int_uint_mode_1): New default hook.
10529
10530 * hooks.c (hook_int_uint_mode_1): Likewise.
10531
10532 * config/i386/i386.h (ix86_tune_indices): Add
10533 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
10534
10535 (TARGET_REASSOC_INT_TO_PARALLEL): New.
10536 (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
10537
10538 * config/i386/i386.c (initial_ix86_tune_features): Add
10539 X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
10540
10541 (ix86_reassociation_width): New function.
10542
10543 * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
10544
10545 * tree-ssa-reassoc.c (get_required_cycles): New function.
10546 (get_reassociation_width): Likewise.
10547 (swap_ops_for_binary_stmt): Likewise.
10548 (rewrite_expr_tree_parallel): Likewise.
10549
10550 (rewrite_expr_tree): Refactored. Part of code moved into
10551 swap_ops_for_binary_stmt.
10552
10553 (reassociate_bb): Now checks reassociation width to be used and
10554 call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
10555
10556 2011-09-06 Richard Guenther <rguenther@suse.de>
10557
10558 PR tree-optimization/47025
10559 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
10560 uses nothing.
10561 (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
10562 BUILT_IN_FREE.
10563 (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
10564 definitely points to.
10565 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
10566 BUILT_IN_VA_START doesn't let its va_list argument escape.
10567 * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
10568 not make any previous stores necessary.
10569
10570 2011-09-06 Martin Jambor <mjambor@suse.cz>
10571
10572 * ipa-inline.h (struct inline_summary): Move versionable flag...
10573 * cgraph.h (struct cgraph_local_info): ...here
10574 * ipa-cp.c (determine_versionability): Use the new versionable flag.
10575 (determine_versionability): Likewise.
10576 (ipcp_versionable_function_p): Likewise.
10577 (ipcp_generate_summary): Likewise.
10578 * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
10579 versionable flag.
10580 (compute_inline_parameters): Do not clear the versionable flag.
10581 (inline_read_section): Do not stream the versionable flag.
10582 (inline_write_summary): Likewise.
10583 * lto-cgraph.c (lto_output_node): Stream the versionable flag.
10584 (input_overwrite_node): Likewise.
10585
10586 2011-09-06 Richard Guenther <rguenther@suse.de>
10587
10588 PR tree-optimization/48149
10589 * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug.
10590 (vn_valueize): Move earlier.
10591 (valueize_expr): Use vn_valueize.
10592 (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
10593 operands.
10594 (simplify_unary_expression): Simplify.
10595
10596 2011-09-06 Richard Guenther <rguenther@suse.de>
10597
10598 PR tree-optimization/48317
10599 * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
10600 trailing array.
10601 (sizeof_vn_nary_op): New inline function.
10602 (vn_nary_op_lookup_pieces): Adjust.
10603 (vn_nary_op_insert_pieces): Likewise.
10604 * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
10605 (init_vn_nary_op_from_pieces): Adjust signature. Deal with
10606 any number of operands.
10607 (vn_nary_length_from_stmt): New function.
10608 (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
10609 (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
10610 sized temporary.
10611 (vn_nary_op_lookup): Likewise.
10612 (vn_nary_op_lookup_stmt): Likewise.
10613 (vn_nary_op_insert_into): Likewise.
10614 (vn_nary_op_insert_stmt): Likewise.
10615 (visit_use): Handle CONSTRUCTOR as nary.
10616 * tree-ssa-pre.c (phi_translate_1): Adjust.
10617 (create_expression_by_pieces): Likewise.
10618 (compute_avail): Likewise.
10619
10620 2011-09-06 Ira Rosen <ira.rosen@linaro.org>
10621
10622 * config/arm/arm.c (arm_preferred_simd_mode): Check
10623 TARGET_NEON_VECTORIZE_DOUBLE instead of
10624 TARGET_NEON_VECTORIZE_QUAD.
10625 (arm_autovectorize_vector_sizes): Likewise.
10626 * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
10627 mask of mvectorize-with-neon-double. Add RejectNegative.
10628 (mvectorize-with-neon-double): New.
10629
10630 2011-09-06 Richard Guenther <rguenther@suse.de>
10631
10632 * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
10633
10634 2011-09-06 Tom de Vries <tom@codesourcery.com>
10635
10636 * recog.c (asm_labels_ok): New function.
10637 (check_asm_operands): Use asm_labels_ok.
10638
10639 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
10640
10641 PR target/49606
10642 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
10643 (PMODE_INSN): New macro.
10644 * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
10645 (mips_got_load, mips_expand_synci_loop): Likewise.
10646 (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
10647 cprestore patterns.
10648 (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode
10649 copygp_mips16 patterns.
10650 (mips_expand_prologue): Handle SImode and DImode potential_cprestore
10651 and use_cprestore patterns.
10652 (mips_override_options): Check for incompatible -mabi and -mlong
10653 combinations.
10654 * config/mips/mips.md (unspec_got<mode>): Rename to...
10655 (unspec_got_<mode>): ...this.
10656 (copygp_mips16): Use the Pmode iterator.
10657 (potential_cprestore, cprestore, use_cprestore): Likewise.
10658 (clear_cache, indirect_jump): Use PMODE_INSN.
10659 (indirect_jump<mode>): Rename to...
10660 (indirect_jump_<mode>): ...this.
10661 (tablejump): Use PMODE_INSN.
10662 (tablejump<mode>): Rename to...
10663 (tablejump_<mode>): ...this.
10664 (exception_receiver): Handle restore_gp_si and restore_gp_di.
10665 (restore_gp): Use the Pmode iterator.
10666 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
10667 PMODE_INSN.
10668
10669 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
10670
10671 * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
10672 Fix the type of the BIT_AND_EXPR.
10673
10674 2011-09-05 David S. Miller <davem@davemloft.net>
10675
10676 * config.host: Add driver-sparc.o and sparc/x-sparc on
10677 native sparc*-*-linux* builds.
10678 * config/sparc/driver-sparc.c: Correct Linux strings.
10679 * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
10680 * config/sparc/linux64.h: Likewise.
10681 * doc/invoke.texi: Document that Linux also supports
10682 -mcpu=native and -mtune=native on sparc.
10683
10684 * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
10685 PROCESSOR_NIAGARA4): New.
10686 * config/sparc/sparc.opt: Handle new processor types.
10687 * config/sparc/sparc.md: Add to "cpu" attribute.
10688 * config/sparc/sparc.h (TARGET_CPU_niagara3,
10689 TARGET_CPU_niagara4): New, treat as niagara2.
10690 * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
10691 * config/sparc/sol2.h: Likewise.
10692 * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
10693 * config/sparc/sparc.c (sparc_option_override): Add
10694 niagara3 and niagara4 handling.
10695 (sparc32_initialize_trampoline): Likewise.
10696 (sparc64_initialize_trampoline): Likewise.
10697 (sparc_use_sched_lookahead): Likewise.
10698 (sparc_issue_rate): Likewise.
10699 (sparc_register_move_cost): Likewise.
10700 * config/sparc/driver-sparc.c (cpu_names): Use niagara3
10701 and niagara4 as appropriate.
10702 * doc/invoke.texi: Document new processor types.
10703 * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
10704 and --with-tune options.
10705
10706 * config/sparc/sol2-64.h: Move ...
10707 * config/sparc/default-64.h: ... to here. Update comment.
10708 * config.gcc: Update Solaris sparc to use default-64.h, also
10709 prefix this header into the list on sparc64-*-linux.
10710 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
10711 TARGET_64BIT_DEFAULT is defined. Remove commented out reference
10712 to MASK_HARD_QUAD.
10713
10714 2011-09-05 Georg-Johann Lay <avr@gjlay.de>
10715
10716 PR target/50289
10717 * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
10718 that contain global register variable.
10719
10720 2011-09-05 Richard Guenther <rguenther@suse.de>
10721
10722 * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
10723
10724 2011-09-05 Richard Guenther <rguenther@suse.de>
10725
10726 * stor-layout.c (layout_type): Use size_binop for array size
10727 calculations.
10728
10729 2011-09-05 Georg-Johann Lay <avr@gjlay.de>
10730
10731 * config/avr/avr.h (progmem_section): Remove Declaration.
10732 * config/avr/avr.c (progmem_section): Make static and rename to
10733 progmem_swtable_section.
10734 (avr_output_addr_vec_elt): No need to switch sections.
10735 (avr_asm_init_sections): Use output_section_asm_op as section
10736 callback for progmem_swtable_section.
10737 (avr_output_progmem_section_asm_op): Remove Function.
10738 (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
10739 (avr_asm_function_rodata_section): New static Function.
10740 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
10741 alignment 2**1 for jump tables.
10742
10743 2011-09-04 Jan Hubicka <jh@suse.cz>
10744
10745 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
10746 parameter is SSA name.
10747
10748 2011-09-04 Richard Guenther <rguenther@suse.de>
10749
10750 Revert
10751 2011-08-31 Richard Guenther <rguenther@suse.de>
10752
10753 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
10754 special-casing.
10755
10756 2011-09-04 Iain Sandoe <iains@gcc.gnu.org>
10757
10758 PR debug/49901
10759 * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
10760
10761 2011-09-04 Jakub Jelinek <jakub@redhat.com>
10762 Ira Rosen <ira.rosen@linaro.org>
10763
10764 PR tree-optimization/50208
10765 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
10766 argument. Check that def_stmt is inside the loop.
10767 (vect_recog_widen_mult_pattern): Update calls to
10768 vect_handle_widen_mult_by_cons.
10769 (vect_operation_fits_smaller_type): Check that def_stmt is
10770 inside the loop.
10771
10772 2011-09-04 Ira Rosen <ira.rosen@linaro.org>
10773
10774 * tree-vectorizer.c (vect_print_dump_info): Print line
10775 number when dumping to a file.
10776 (vectorize_loops): Add new messages to dump file.
10777
10778 2011-09-03 Martin Jambor <mjambor@suse.cz>
10779
10780 * ipa-prop.h (ipa_jump_func_t): New typedef.
10781 (struct ipa_edge_args): Removed field argument_count, field
10782 jump_functions turned into a vector.
10783 (ipa_set_cs_argument_count): Removed.
10784 (ipa_get_cs_argument_count): Updated to work on vectors.
10785 (ipa_get_ith_jump_func): Likewise.
10786 * ipa-prop.c (ipa_count_arguments): Removed.
10787 (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
10788 jump functions. Update caller.
10789 (compute_pass_through_member_ptrs): Likewise.
10790 (compute_cst_member_ptr_arguments): Likewise.
10791 (ipa_compute_jump_functions_for_edge): Get number of arguments from
10792 the statement, allocate vector.
10793 (ipa_compute_jump_functions): Do not call ipa_count_arguments.
10794 (duplicate_ipa_jump_func_array): Removed.
10795 (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
10796 (ipa_read_node_info): Allocate vector.
10797
10798 2011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10799
10800 PR middle-end/50232
10801 * config/pa/pa.md (return): Define "return" insn pattern.
10802 (epilogue): Use it when no epilogue is needed.
10803 * config/pa/pa.c (pa_can_use_return_insn): New function.
10804 * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
10805
10806 2011-09-03 Eric Botcazou <ebotcazou@adacore.com>
10807
10808 * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
10809 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
10810 Force at least BITS_PER_UNIT alignment on the new variable.
10811
10812 2011-09-02 Gary Funck <gary@intrepid.com>
10813
10814 * opts.c (print_specific_help): Fix off-by-one compare in
10815 assertion check.
10816 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
10817 CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
10818 Increase by +5 to allow for more languages.
10819 * optc-gen.awk: Generate #if that ensures that the number of
10820 languages is within the implementation-defined limit.
10821
10822 2011-09-02 Michael Matz <matz@suse.de>
10823
10824 PR middle-end/50260
10825 * ipa-split.c (split_function): Call add_referenced_var.
10826
10827 * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
10828 (cond_if_else_store_replacement_1): Ditto.
10829 * tree-ssa-pre.c (get_representative_for): Ditto.
10830 (create_expression_by_pieces): Ditto.
10831 (insert_into_preds_of_block): Ditto.
10832 * tree-sra.c (create_access_replacement): Ditto.
10833 (get_replaced_param_substitute): Ditto.
10834
10835 2011-09-02 Bernd Schmidt <bernds@codesourcery.com>
10836
10837 * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
10838 automata_options.
10839 (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
10840 (l1w, s1w, l2w, s2w): Define in the main automaton.
10841 (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
10842 units.
10843 * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
10844 (c6x_unit_names): Add the new units.
10845 (c6x_unit_codes): New static array.
10846 (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
10847 UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
10848 UNIT_QID_SIDE_OFFSET): New macros.
10849 (RESERVATION_S2): Adjust value.
10850 (c6x_option_override): Compute c6x_unit_codes.
10851 (assign_reservations): Take the unit_mask of the last instruction
10852 into account. Detect floating point reservations by looking for
10853 the new units. Don't assign reservations if the field is already
10854 nonzero.
10855 (struct c6x_sched_context): Add member prev_cycle_state_ctx.
10856 (init_sched_state): Initialize it.
10857 (c6x_clear_sched_context): Free it.
10858 (insn_set_clock): Clear reservation.
10859 (prev_cycle_state): New static variable.
10860 (c6x_init_sched_context): Save it.
10861 (c6x_sched_init): Allocate space for it and clear it.
10862 (c6x_sched_dfa_pre_cycle_insn): New static function.
10863 (c6x_dfa_new_cycle): Save state at the start of a new cycle.
10864 (c6x_variable_issue): Only record units in the unit_mask that
10865 were not set at the start of the cycle.
10866 (c6x_variable_issue): Compute and store the unit_mask from the
10867 current state.
10868 (reorg_split_calls): Ensure the new information remains correct.
10869 (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
10870 TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
10871 * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
10872 * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
10873 Add special reservations.
10874 * config/c6x/c6x-sched.md: Regenerate.
10875
10876 2011-09-02 Martin Jambor <mjambor@suse.cz>
10877
10878 * ipa-prop.h (ipa_node_params): Removed fields
10879 called_with_var_arguments and node_versionable.
10880 (ipa_set_called_with_variable_arg): Removed.
10881 (ipa_is_called_with_var_arguments): Likewise.
10882 * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
10883 (determine_versionability): Do not check for type attributes and va
10884 builtins. Record versionability into inline summary.
10885 (initialize_node_lattices): Do not check
10886 ipa_is_called_with_var_arguments.
10887 (propagate_constants_accross_call): Likewise, ignore arguments we do
10888 not have PARM_DECLs for, set variable flag for parameters that were
10889 not passed a value.
10890 (create_specialized_node): Dump info that we cannot change signature.
10891 * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
10892 number of arguments.
10893 (ipa_make_edge_direct_to_target): Likewise.
10894 (ipa_update_after_lto_read): Likewise.
10895 (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
10896 * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
10897 they were remapped.
10898
10899 2011-09-02 Richard Guenther <rguenther@suse.de>
10900
10901 PR tree-optimization/27460
10902 PR middle-end/29269
10903 * doc/md.texi (vcond): Document.
10904 * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
10905 optab with two modes.
10906 * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
10907 (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
10908 (vcond_optab): Adjust.
10909 (vcondu_optab): Likewise.
10910 (expand_vec_cond_expr_p): Adjust prototype.
10911 * optabs.c (get_vcond_icode): Adjust.
10912 (expand_vec_cond_expr_p): Likewise.
10913 (expand_vec_cond_expr): Likewise.
10914 * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
10915 vector type.
10916 (vectorizable_condition): Allow differing types for comparison
10917 and result.
10918 * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
10919 for the comparison.
10920 * config/i386/sse.md (vcond<mode>): Split to
10921 vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
10922 vcond<V_128:mode><VI124_128:mode> and
10923 vcondu<V_128:mode><VI124_128:mode>.
10924 (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
10925 (vconduv2di): Likewise.
10926 * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
10927 (vcondu<mode>): Likewise.
10928 * config/ia64/vect.md (vcond<mode>): Likewise.
10929 (vcondu<mode>): Likewise.
10930 (vcondv2sf): Likewise.
10931 * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
10932 * config/rs6000/paired.md (vcondv2sf): Likewise.
10933 * config/rs6000/vector.md (vcond<mode>): Likewise.
10934 (vcondu<mode>): Likewise.
10935 * config/spu/spu.md (vcond<mode>): Likewise.
10936 (vcondu<mode>): Likewise.
10937
10938 2011-09-02 Richard Guenther <rguenther@suse.de>
10939
10940 * pretty-print.h (pp_unsigned_wide_integer): New.
10941 * tree-pretty-print.c (dump_generic_node): Print unsigned
10942 host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
10943
10944 2011-09-02 Richard Sandiford <richard.sandiford@linaro.org>
10945
10946 PR target/49987
10947 * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
10948 valid CONST_VECTOR operands.
10949 (rs6000_expand_vector_init): Likewise.
10950
10951 2011-09-02 Martin Jambor <mjambor@suse.cz>
10952
10953 * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
10954 * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
10955 BINFO_VTABLE. Parameter delta removed, all callers updated.
10956 * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
10957 BINFO_VTABLE.
10958 * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
10959 all calls.
10960 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
10961 handling of thunk_delta.
10962 * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
10963 (devirtualization_time_bonus): Do not handle thunk deltas.
10964 (ipcp_discover_new_direct_edges): Likewise.
10965 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
10966 (try_make_edge_direct_simple_call): Likewise.
10967 (try_make_edge_direct_virtual_call): Likewise.
10968 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
10969 parameter set as unused.
10970 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
10971 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
10972 parameter set as unused.
10973 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
10974 (input_edge_opt_summary): Likewise.
10975 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
10976 BINFO_VIRTUALS at all.
10977 * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
10978
10979 2011-09-02 Richard Guenther <rguenther@suse.de>
10980
10981 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
10982 (ccp_fold_stmt): Continue replacing args when folding alloca fails.
10983
10984 2011-08-31 Richard Guenther <rguenther@suse.de>
10985
10986 * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
10987 handling here, from ...
10988 (expand_expr_real_1): ... here.
10989 * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
10990 and VEC_COND_EXPR.
10991 * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
10992 a GIMPLE_TERNARY_RHS.
10993 * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
10994 and VEC_COND_EXPR here ...
10995 (verify_gimple_assign_single): ... not here.
10996 * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
10997 * tree-object-size.c (cond_expr_object_size): Adjust.
10998 (collect_object_sizes_for): Likewise.
10999 * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
11000 * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
11001 (ssa_forward_propagate_and_combine): Adjust.
11002 * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
11003 as ternary.
11004 * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
11005 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
11006 * tree-vect-stmt.c (vectorizable_condition): Likewise.
11007 * tree-vrp.c (extract_range_from_cond_expr): Likewise.
11008 (extract_range_from_assignment): Likewise.
11009
11010 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
11011
11012 * config/i386/i386.md: Use (match_test ...) for attribute tests.
11013 * config/i386/mmx.md: Likewise.
11014 * config/i386/sse.md: Likewise.
11015 * config/i386/predicates.md (call_insn_operand): Use
11016 (not (match_test "...")) instead of (match_test "!...")
11017 * config/i386/constraints.md (w): Likewise.
11018
11019 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
11020
11021 * doc/md.texi: Describe the use of match_tests in attribute tests.
11022 * rtl.def (MATCH_TEST): Update commentary.
11023 * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
11024 (write_test_expr, walk_attr_value): Handle MATCH_TEST.
11025
11026 2011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
11027
11028 * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
11029 (attr_string): Use copy_md_ptr_loc.
11030
11031 2011-08-31 Martin Jambor <mjambor@suse.cz>
11032
11033 PR middle-end/49886
11034 * ipa-inline-analysis.c (compute_inline_parameters): Set
11035 can_change_signature of noes with typde attributes.
11036 * ipa-split.c (split_function): Do not skip any arguments if
11037 can_change_signature is set.
11038
11039 2011-08-31 Martin Jambor <mjambor@suse.cz>
11040
11041 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
11042 check removed.
11043
11044 2011-08-31 Richard Guenther <rguenther@suse.de>
11045
11046 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
11047 special-casing.
11048
11049 2011-08-31 Marc Glisse <marc.glisse@inria.fr>
11050
11051 * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
11052
11053 2011-08-31 Tom de Vries <tom@codesourcery.com>
11054
11055 PR middle-end/43513
11056 * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
11057 * tree-ssa-ccp.c (params.h): Include.
11058 (fold_builtin_alloca_for_var): New function.
11059 (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
11060
11061 2011-08-30 Uros Bizjak <ubizjak@gmail.com>
11062
11063 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
11064 Handle FMA option.
11065
11066 2011-08-30 Andrew Stubbs <ams@codesourcery.com>
11067
11068 * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
11069 b3 and b4 unsigned.
11070
11071 2011-08-30 Andrew Stubbs <ams@codesourcery.com>
11072
11073 * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
11074 when code is SET.
11075
11076 2011-08-30 Richard Guenther <rguenther@suse.de>
11077
11078 PR middle-end/48571
11079 * gimple.h (maybe_fold_offset_to_address): Remove.
11080 (maybe_fold_offset_to_reference): Likewise.
11081 (maybe_fold_stmt_addition): Likewise.
11082 (may_propagate_address_into_dereference): Likewise.
11083 * tree-inline.c (remap_gimple_op_r): Do not reconstruct
11084 array references.
11085 * gimple-fold.c (canonicalize_constructor_val): Likewise.
11086 Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
11087 addresses instead.
11088 (may_propagate_address_into_dereference): Remove.
11089 (maybe_fold_offset_to_array_ref): Likewise.
11090 (maybe_fold_offset_to_reference): Likewise.
11091 (maybe_fold_offset_to_address): Likewise.
11092 (maybe_fold_stmt_addition): Likewise.
11093 (fold_gimple_assign): Do not reconstruct array references but
11094 instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
11095 MEM_REF addresses.
11096 (gimple_fold_stmt_to_constant_1): Likewise.
11097 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
11098 * gimplify.c (gimplify_conversion): Likewise.
11099 (gimplify_expr): Likewise.
11100
11101 2011-08-30 Ilya Tocar <ilya.tocar@intel.com>
11102
11103 * config/i386/fmaintrin.h: New.
11104 * config.gcc: Add fmaintrin.h.
11105 * config/i386/i386.c
11106 (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
11107 <IX86_BUILTIN_VFMADDSD3>: Likewise.
11108 * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
11109 (*fmai_fmadd_<mode>): Likewise.
11110 (*fmai_fmsub_<mode>): Likewise.
11111 (*fmai_fnmadd_<mode>): Likewise.
11112 (*fmai_fnmsub_<mode>): Likewise.
11113 * config/i386/immintrin.h: Add fmaintrin.h.
11114
11115 2011-08-30 Bernd Schmidt <bernds@codesourcery.com>
11116
11117 * genautomata.c (NO_COMB_OPTION): New macro.
11118 (no_comb_flag): New static variable.
11119 (gen_automata_option): Handle NO_COMB_OPTION.
11120 (comb_vect_p): False if no_comb_flag.
11121 (add_vect): Move computation of min/max values. Return early if
11122 no_comb_flag.
11123 * doc/md.texi (automata_option): Document no-comb-vect.
11124
11125 * config/i386/i386.c (get_pc_thunk_name): Change prefix to
11126 "__x86.get_pc_thunk".
11127
11128 * bb-reorder.c (insert_section_boundary_note): Only do it if
11129 we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
11130
11131 2011-08-30 Christian Bruel <christian.bruel@st.com>
11132
11133 * coverage.c (coverage_init): Check flag_branch_probabilities instead of
11134 flag_profile_use.
11135
11136 2011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
11137
11138 * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
11139 to off. Document switch.
11140 * doc/invoke.texi (-msave-toc-indirect): Ditto.
11141
11142 2011-08-29 Jakub Jelinek <jakub@redhat.com>
11143
11144 * gthr-posix.h (__gthread_active_p): Do not use preprocessor
11145 conditionals and comments inside macro arguments.
11146
11147 2011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
11148 Richard Guenther <rguenther@suse.de>
11149
11150 * tree.h (constant_boolean_node): Adjust prototype.
11151 * fold-const.c (fold_convert_loc): Move aggregate conversion
11152 leeway down.
11153 (constant_boolean_node): Make value parameter boolean, add
11154 vector type handling.
11155 (fold_unary_loc): Use constant_boolean_node.
11156 (fold_binary_loc): Preserve types properly when folding
11157 COMPLEX_EXPR <__real x, __imag x>.
11158 * gimplify.c (gimplify_expr): Handle vector comparison.
11159 * tree.def (EQ_EXPR, ...): Document behavior on vector typed
11160 comparison.
11161 * tree-cfg.c (verify_gimple_comparison): Verify vector typed
11162 comparisons.
11163
11164 2011-08-29 Jakub Jelinek <jakub@redhat.com>
11165
11166 PR middle-end/48722
11167 * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
11168 reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
11169 (verify_rtl_sharing): Likewise and verify_rtx_sharing
11170 in there too.
11171 (unshare_all_rtl_in_chain): For CALL_INSNs
11172 copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
11173
11174 2011-08-29 Richard Guenther <rguenther@suse.de>
11175
11176 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
11177 on the built ADDR_EXPR.
11178
11179 2011-08-29 Jakub Jelinek <jakub@redhat.com>
11180
11181 PR debug/50215
11182 * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
11183 before adding ENTRY_VALUE to val->locs.
11184
11185 2011-08-28 Mikael Pettersson <mikpe@it.uu.se>
11186
11187 PR bootstrap/50218
11188 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
11189 comp.
11190
11191 2011-08-27 Bernd Schmidt <bernds@codesourcery.com>
11192
11193 * doc/rtl.texi (simple_return): Document.
11194 (parallel, PATTERN): Here too.
11195 * doc/md.texi (return): Mention it's allowed to expand to simple_return
11196 in some cases.
11197 (simple_return): Document standard pattern.
11198 * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
11199 * final.c (final_scan_insn): Use ANY_RETURN_P on body.
11200 * reorg.c (function_return_label, function_simple_return_label):
11201 New static variables, replacing...
11202 (end_of_function_label): ... this.
11203 (simplejump_or_return_p): New static function.
11204 (optimize_skip, steal_delay_list_from_fallthrough,
11205 fill_slots_from_thread): Use it.
11206 (relax_delay_slots): Likewise. Use ANY_RETURN_P on body.
11207 (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
11208 (find_end_label): Take a new arg which is one of the two return
11209 rtxs. Depending on which, set either function_return_label or
11210 function_simple_return_label. All callers changed.
11211 (make_return_insns): Make both kinds.
11212 (dbr_schedule): Adjust for two kinds of end labels.
11213 * function.c (emit_return_into_block): Set JUMP_LABEL properly.
11214 * genemit.c (gen_exp): Handle SIMPLE_RETURN.
11215 (gen_expand, gen_split): Use ANY_RETURN_P.
11216 * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
11217 * rtl.def (SIMPLE_RETURN): New code.
11218 * ifcvt.c (find_if_case_1): Be more careful about
11219 redirecting jumps to the EXIT_BLOCK.
11220 * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
11221 returnjump_p_1): Handle SIMPLE_RETURNs.
11222 * print-rtl.c (print_rtx): Likewise.
11223 * rtl.c (copy_rtx): Likewise.
11224 * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
11225 * combine.c (simplify_set): Likewise.
11226 * resource.c (find_dead_or_set_registers, mark_set_resources):
11227 Likewise.
11228 * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
11229 copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
11230 (init_emit_regs): Initialize simple_return_rtx.
11231 * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
11232 force_nonfallthru_and_redirect.
11233 * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
11234 (GR_SIMPLE_RETURN): New enum value.
11235 (simple_return_rtx): New macro.
11236 * basic-block.h (force_nonfallthru_and_redirect): Adjust
11237 declaration.
11238 * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
11239 argument. All callers changed. Be careful about what kinds of
11240 returnjumps to generate.
11241 * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
11242 ix86_pad_short_function): Likewise.
11243 * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
11244 of return.
11245 * config/mips/mips.md (any_return): New code_iterator.
11246 (optab): Add cases for return and simple_return.
11247 (return): Expand to a simple_return.
11248 (simple_return): New pattern.
11249 (*<optab>, *<optab>_internal for any_return): New patterns.
11250 (return_internal): Remove.
11251 * config/mips/mips.c (mips_expand_epilogue): Make the last insn
11252 a simple_return_internal.
11253
11254 2011-08-27 Uros Bizjak <ubizjak@gmail.com>
11255
11256 * config/i386/sse.md (*absneg<mode>2): Fix split condition.
11257 (vec_extract_lo_<mode>): Prevent both operands in memory.
11258 (vec_extract_lo_v16hi): Ditto.
11259 (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
11260
11261 2011-08-27 Uros Bizjak <ubizjak@gmail.com>
11262
11263 * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
11264 (*sse2_mulv4si3): Ditto.
11265 (mulv2di3): Ditto.
11266 * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
11267 notes to REG_EQUAL.
11268
11269 2011-08-27 Uros Bizjak <ubizjak@gmail.com>
11270
11271 PR target/50202
11272 * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
11273 when all outputs are unused.
11274 (sse4_2_pcmpistr): Ditto.
11275
11276 2011-08-26 Uros Bizjak <ubizjak@gmail.com>
11277
11278 * config/i386/i386.md (round<mode>2): New expander.
11279 * config/i386/i386.c (enum ix86_builtins): Add
11280 IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
11281 (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
11282 descriptions.
11283 (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
11284 (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
11285
11286 2011-08-26 Uros Bizjak <ubizjak@gmail.com>
11287
11288 PR middle-end/50083
11289 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
11290 only when TARGET_C99_FUNCTIONS.
11291 <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
11292 <BUILT_IN_RINT{,F,L}>: Ditto.
11293
11294 2011-08-26 Michael Matz <matz@suse.de>
11295 Jakub Jelinek <jakub@redhat.com>
11296
11297 PR lto/50165
11298 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
11299 don't call strlen twice, use memcpy.
11300
11301 2011-08-26 H.J. Lu <hongjiu.lu@intel.com>
11302
11303 * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
11304 * config/i386/bmiintrin.h: Likewise.
11305 * config/i386/lzcntintrin.h: Likewise.
11306
11307 * config/i386/immintrin.h: Include <lzcntintrin.h>,
11308 <bmiintrin.h> and <bmi2intrin.h>.
11309
11310 2011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11311
11312 PR target/50166
11313 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
11314 * configure: Regenerate.
11315
11316 2011-08-26 Jakub Jelinek <jakub@redhat.com>
11317
11318 PR c/50179
11319 * c-typeck.c (c_process_expr_stmt): Skip over nops and
11320 call mark_exp_read even if exprv is ADDR_EXPR.
11321
11322 2011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
11323
11324 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
11325 to df_set_dead_notes_for_mw.
11326
11327 2011-08-26 Richard Guenther <rguenther@suse.de>
11328
11329 * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
11330
11331 2011-08-26 Zdenek Dvorak <ook@ucw.cz>
11332 Tom de Vries <tom@codesourcery.com>
11333
11334 * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
11335 (struct ivopts_data): Add loop_single_exit_p field.
11336 (niter_for_exit): Change parameter desc_p into return value. Return
11337 desc if desc->may_be_zero. Free desc if unused.
11338 (niter_for_single_dom_exit): Change return type.
11339 (find_induction_variables): Handle changed return type of
11340 niter_for_single_dom_exit. Dump may_be_zero.
11341 (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
11342 (set_use_iv_cost): Add and handle comp parameter.
11343 (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
11344 comp argument to set_use_iv_cost.
11345 (strip_wrap_conserving_type_conversions, expr_equal_p)
11346 (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
11347 (may_eliminate_iv): Add comp parameter. Handle new return type of
11348 niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
11349 (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
11350 and may_eliminate_iv.
11351 (rewrite_use_compare): Move call to iv_elimination_compare to ...
11352 (may_eliminate_iv): Here.
11353 (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
11354
11355 2011-08-26 Tom de Vries <tom@codesourcery.com>
11356
11357 * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
11358 accessing TREE_TYPE.
11359
11360 2011-08-26 Jiangning Liu <jiangning.liu@arm.com>
11361
11362 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
11363 (*ior_scc_scc_cmp): Likewise
11364 (*and_scc_scc): Likewise.
11365 (*and_scc_scc_cmp): Likewise.
11366 (*and_scc_scc_nodom): Likewise.
11367 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
11368
11369 2011-08-26 Jakub Jelinek <jakub@redhat.com>
11370
11371 * rtlanal.c (nonzero_bits1): Handle CLRSB.
11372
11373 2011-08-26 Richard Guenther <rguenther@suse.de>
11374
11375 * expr.c (string_constant): Handle &MEM_REF.
11376
11377 2011-08-26 Andrew Stubbs <ams@codesourcery.com>
11378
11379 * config/arm/arm.c (struct four_ints): New type.
11380 (count_insns_for_constant): Delete function.
11381 (find_best_start): Delete function.
11382 (optimal_immediate_sequence): New function.
11383 (optimal_immediate_sequence_1): New function.
11384 (arm_gen_constant): Move constant splitting code to
11385 optimal_immediate_sequence.
11386 Rewrite constant negation/invertion code.
11387
11388 2011-08-26 Andrew Stubbs <ams@codesourcery.com>
11389
11390 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
11391 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
11392 Remove prototype. Remove static function type.
11393 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
11394 Add arch attribute.
11395 * config/arm/constraints.md (Pj, PJ): New constraints.
11396
11397 2011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11398
11399 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
11400 ("cortex_a9_multiply_long"): New and use above. Handle all
11401 long multiply cases.
11402 ("cortex_a9_multiply"): Handle smmul and smmulr.
11403 ("cortex_a9_mac"): Handle smmla.
11404
11405 2011-08-25 Richard Henderson <rth@redhat.com>
11406
11407 PR 50132
11408 PR 49864
11409 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
11410 non-constant stack adjutment.
11411 * expr.c (find_args_size_adjust): Break out from ...
11412 (fixup_args_size_notes): ... here.
11413 * rtl.h (find_args_size_adjust): Declare.
11414
11415 2011-08-25 Uros Bizjak <ubizjak@gmail.com>
11416
11417 * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
11418 sse4 and sse4_noavx.
11419 (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
11420 (*pushdf_rex64): Change Y2 register constraint to x.
11421 (*movdf_internal_rex64): Ditto.
11422 (*zero_extendsidi2_rex64): Ditto.
11423 (*movdi_internal): Change Y2 register constraint to x
11424 and update "isa" attribute.
11425 (*pushdf): Ditto.
11426 (*movdf internal): Ditto.
11427 (zero_extendsidi2_1): Ditto.
11428 (*truncdfdf_mixed): Ditto.
11429 (*truncxfdf2_mixed): Ditto.
11430 * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
11431 register constraint to x.
11432 (*movv2sf_internal_rex64): Ditto.
11433 (*mov<mode>_internal): Change Y2 register constraint to x
11434 and add "isa" attribute.
11435 (*movv2sf_internal): Ditto.
11436 (*vec_extractv2si_1): Ditto.
11437 * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
11438 constraints to x and update "isa" attribute.
11439 (*vec_interleave_highv2df): Change Y3 registerconstraint
11440 to x and update "isa" attribute.
11441 (*vec_interleave_lowv2df): Ditto.
11442 (*vec_concatv2df): Change Y2 register constraint to x and
11443 update "isa" attribute.
11444 (sse2_loadld): Ditto.
11445 (*vec_extractv2di_1): Ditto.
11446 (*vec_dupv4si): Ditto.
11447 (*vec_dupv2di): Ditto.
11448 (*vec_concatv4si): Ditto.
11449 (vec_concatv2di): Ditto.
11450 * config/i386/constraints.md (Y2): Remove.
11451 (Y3): Ditto.
11452 (Y4): Ditto.
11453
11454 2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
11455
11456 * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
11457 dump_def_use_chain): Don't declare.
11458 (mark_conflict, create_new_chain): Move before users.
11459 (regrename_optimize): Move to near end of file.
11460
11461 2011-08-25 Georg-Johann Lay <avr@gjlay.de>
11462
11463 * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
11464 (secondary_input_reload_class): Remove Prototype.
11465 * config/avr/avr.c (byte_immediate_operand): Remove Function.
11466 * config/avr/avr.md (setmemhi): Use u8_operand.
11467 (strlenhi): Use const0_rtx for comparison.
11468 * config/avr/avr.h (avr_reg_order): Remove Declaration.
11469
11470 2011-08-25 Georg-Johann Lay <avr@gjlay.de>
11471
11472 * config/avr/avr.c (reg_class_tab): Make local to
11473 avr_regno_reg_class. Return smallest register class available.
11474
11475 2011-08-25 Georg-Johann Lay <avr@gjlay.de>
11476
11477 * config/avr/avr.c (STR_PREFIX_P): New Define.
11478 (avr_asm_declare_function_name): Use it.
11479 (avr_asm_named_section): Use it.
11480 (avr_section_type_flags): Use it.
11481
11482 2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
11483
11484 * doc/md.texi (automata_option): Document collapse-ndfa.
11485 * genautomata.c (COLLAPSE_OPTION): New macro.
11486 (collapse_flag): New static variable.
11487 (struct description): New member normal_decls_num.
11488 (struct automaton): New members advance_ainsn and collapse_ainsn.
11489 (gen_automata_option): Check for COLLAPSE_OPTION.
11490 (collapse_ndfa_insn_decl): New static variable.
11491 (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
11492 (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
11493 (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
11494 necessary. Use normal_decls_num rather than decls_num, remove
11495 test for special decls.
11496 (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
11497 (make_automaton); Likewise. Use the new advance_cycle_insn member
11498 of struct automaton.
11499 (create_composed_state): Disallow advance-cycle arcs if collapse_flag
11500 is set.
11501 (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
11502 transition. Create the necessary transitions for it.
11503 (create_ainsns): Return void. Take an automaton_t argument, and
11504 update its ainsn_list, advance_ainsn and collapse_ainsn members. All
11505 callers changed.
11506 (COLLAPSE_NDFA_VALUE_NAME): New macro.
11507 (output_tables): Output code to define it.
11508 (output_internal_insn_code_evaluation): Output code to accept
11509 const0_rtx as collapse-ndfa transition.
11510 (output_default_latencies, output_print_reservation_func,
11511 output_print_description): Reorganize loops to use normal_decls_num
11512 as loop bound; remove special case for advance_cycle_insn_decl.
11513 (initiate_automaton_gen): Handle COLLAPSE_OPTION.
11514 (check_automata_insn_issues): Check for collapse_ainsn.
11515 (expand_automate): Allocate sufficient space. Initialize
11516 normal_decls_num.
11517
11518 2011-08-25 Georg-Johann Lay <avr@gjlay.de>
11519
11520 * config/avr/avr.md: Fix indentation from r177991.
11521
11522 2011-08-25 Bernd Schmidt <bernds@codesourcery.com>
11523
11524 * regrename.c (struct du_head): Remove member terminated.
11525 (create_new_chain): Don't initialize it.
11526 (scan_rtx_reg): Don't set or test it, test the open_chains_set
11527 bitmap instead.
11528 (tick, this_tick): New global variables, moved out of
11529 regrename_optimize.
11530 (current_id, open_chains, closed_chains, open_chains_set,
11531 live_in_chains, live_hard_regs): Reorder declarations.
11532 (dump_def_use_chain): Move function earlier in the file.
11533 (rename_chains): New static function, broken out of
11534 regrename_optimize.
11535 (regrename_optimize): Use it. Remove #if 0'ed code.
11536
11537 2011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
11538
11539 * varasm.c: (default_binds_local_p_1): Commentary typo fix.
11540
11541 2011-08-24 H.J. Lu <hongjiu.lu@intel.com>
11542
11543 PR target/50172
11544 * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
11545
11546 2011-08-24 Richard Guenther <rguenther@suse.de>
11547
11548 * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
11549 ref in the basic-block case. Move stripping array-refs
11550 to the place we create an access-function for it. Remove
11551 bogus stripping down a MEM_REF to its base.
11552
11553 2011-08-24 Richard Guenther <rguenther@suse.de>
11554
11555 * fold-const.c (fold_comparison): Fold &a < &a + 4 even
11556 with -fno-strict-overflow.
11557
11558 2011-08-24 Richard Guenther <rguenther@suse.de>
11559
11560 * tree-vectorizer.c (vect_print_dump_info): Avoid the
11561 file and location clutter when dumping to dump files.
11562
11563 2011-08-24 Simon Baldwin <simonb@google.com>
11564
11565 * gengtype-state.c (write_state): Remove timestamped header line.
11566
11567 2011-08-24 Joseph Myers <joseph@codesourcery.com>
11568
11569 * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
11570 (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
11571 (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
11572 (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
11573 (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
11574 (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
11575 (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
11576 rules.
11577 (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
11578
11579 2011-08-24 Joseph Myers <joseph@codesourcery.com>
11580
11581 * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
11582
11583 2011-08-24 Richard Guenther <rguenther@suse.de>
11584
11585 PR tree-optimization/50067
11586 * tree-data-ref.c (dr_analyze_indices): Do not add an access
11587 function for a MEM_REF base that has no evolution in the loop
11588 nest or that is not analyzable.
11589
11590 2011-08-23 Vladimir Makarov <vmakarov@redhat.com>
11591
11592 * ira.c (ira_init_register_move_cost): Check small subclasses
11593 through ira_reg_class_max_nregs and ira_available_class_regs.
11594
11595 2011-08-23 Uros Bizjak <ubizjak@gmail.com>
11596
11597 * config/i386/constraints.md (Yp): New register constraint.
11598 * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
11599 Yp register constraint.
11600 (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
11601 (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
11602 (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
11603
11604 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
11605
11606 * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
11607
11608 2011-08-23 Mark Heffernan <meheff@google.com>
11609
11610 PR middle-end/38509
11611 * common.opt (Wfree-nonheap-object): New option.
11612 * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
11613 * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
11614 to warning.
11615 (expand_builtin): Make warning conditional.
11616
11617 2011-08-23 Uros Bizjak <ubizjak@gmail.com>
11618
11619 * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
11620 (length_immediate): Handle imulx, ishiftx and rotatex.
11621 (imm_disp): Ditto.
11622 (isa): Add bmi2.
11623 (enabled): Handle bmi2.
11624 (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
11625 (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative.
11626 (*bmi2_umulditi3_1): New insn pattern.
11627 (*bmi2_umulsidi3_1): Ditto.
11628 (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
11629 (*bmi2_ashl<mode>3_1): New insn pattern.
11630 (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
11631 (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
11632 (*bmi2_ashlsi3_1_zext): New insn pattern.
11633 (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
11634 (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
11635 (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
11636 (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
11637 (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
11638 flags dependency.
11639 (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
11640 (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
11641 (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
11642 flags dependency.
11643 (*bmi2_rorx<mode>3_1): New insn pattern.
11644 (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
11645 (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
11646 (*rotatert<mode>3_1 splitter): Ditto.
11647 (*bmi2_rorxsi3_1_zext): New insn pattern.
11648 (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
11649 (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
11650 (*rotatertsi3_1_zext splitter): Ditto.
11651
11652 2011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
11653
11654 * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
11655 (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
11656 (ix86_handle_option): Handle OPT_mbmi2 case.
11657 * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
11658 (x86_64-*-*): Likewise.
11659 * config/i386/bmi2intrin.h: New file.
11660 * config/i386/cpuid.h (bit_BMI2): New.
11661 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
11662 BMI2 feature.
11663 * config/i386/i386-c.c (ix86_target_macros_internal):
11664 Conditionally define __BMI2__.
11665 * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
11666 Handle BMI2 option.
11667 (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
11668 (print_reg): New code.
11669 (ix86_print_operand): Likewise.
11670 (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
11671 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
11672 IX86_BUILTIN_PEXT64.
11673 (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
11674 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
11675 IX86_BUILTIN_PEXT64.
11676 * config/i386/i386.h (TARGET_BMI2): New.
11677 * config/i386/i386.md (UNSPEC_PDEP): New.
11678 (UNSPEC_PEXT): Likewise.
11679 (*bmi2_bzhi_<mode>3): Likewise.
11680 (*bmi2_pdep_<mode>3): Likewise.
11681 (*bmi2_pext_<mode>3): Likewise.
11682 * config/i386/i386.opt (mbmi2): New.
11683 * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
11684 is defined.
11685 * doc/extend.texi: Document BMI2 built-in functions.
11686 * doc/invoke.texi: Document -mbmi2.
11687
11688 2011-08-23 Jakub Jelinek <jakub@redhat.com>
11689
11690 PR middle-end/50161
11691 * simplify-rtx.c (simplify_const_unary_operation): If
11692 op is CONST_INT, don't look at op_mode, but use instead mode.
11693 * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
11694 CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
11695 operation and TRUNCATE/ZERO_EXTEND if needed.
11696 * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
11697 Document that operand mode must be same as operation mode,
11698 or VOIDmode.
11699 * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
11700 *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
11701 *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
11702 *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
11703 use the mode of operand for the operation and add truncate
11704 or zero_extend around if needed.
11705 * config/c6x/c6x.md (ctzdi2): Likewise.
11706 * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
11707
11708 2011-08-12 Michael Matz <matz@suse.de>
11709
11710 * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
11711 (gimple_expand_cfg): Merge alignment info for coalesced pointer
11712 SSA names.
11713
11714 2011-08-23 Richard Guenther <rguenther@suse.de>
11715
11716 * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
11717 * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
11718 * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
11719 from ...
11720 * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
11721 (mem_refs_may_alias_p): Adjust.
11722 * tree-data-ref.h (dr_may_alias_p): Adjust.
11723 * tree-data-ref.c: Include tree-affine.h.
11724 (dr_analyze_indices): Do nothing for the non-loop case.
11725 (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate
11726 more cases in the non-loop case.
11727 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
11728 calls to dr_may_alias_p.
11729 (write_alias_graph_to_ascii_ecc): Likewise.
11730 (write_alias_graph_to_ascii_dot): Likewise.
11731 (build_alias_set_optimal_p): Likewise.
11732
11733 2011-08-23 Richard Guenther <rguenther@suse.de>
11734
11735 PR tree-optimization/50162
11736 * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
11737
11738 2011-08-23 Richard Guenther <rguenther@suse.de>
11739
11740 * tree-data-ref.c (dr_analyze_indices): Add comments, handle
11741 REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
11742 (create_data_ref): Also dump access functions for the created data-ref.
11743
11744 2011-08-22 Uros Bizjak <ubizjak@gmail.com>
11745 Kirill Yukhin <kirill.yukhin@intel.com>
11746
11747 PR target/50155
11748 * config/i386/sse.md (VI_AVX2): New.
11749 (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
11750 (*<plusminus_insn><mode>3): Ditto.
11751 (<sse2_avx2>_andnot<mode>3): Ditto.
11752 (*andnot<mode>3): Fix order of cond operands.
11753 Add asserts for correct TARGET_xxx.
11754 (*<any_logic:code><mode>3): Ditto.
11755
11756 2011-08-22 Anatoly Sokolov <aesok@post.ru>
11757
11758 * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
11759 * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
11760 * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
11761 regclass argument type to reg_class_t. Change 'max' and 'v' vars
11762 and return types to unsigned char. Use reg_class_contents instead
11763 of class_contents.
11764 (TARGET_CLASS_MAX_NREGS): Define.
11765
11766 2011-08-22 Bernd Schmidt <bernds@codesourcery.com>
11767
11768 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
11769 to make computed_jump_p return true.
11770
11771 2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11772
11773 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
11774 (PICFLAG_FOR_TARGET): Substitute.
11775 * aclocal.m4: Regenerate.
11776 * configure: Regenerate.
11777
11778 2011-08-22 Dodji Seketeli <dodji@redhat.com>
11779
11780 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
11781 after reading in the pch.
11782
11783 2011-08-22 H.J. Lu <hongjiu.lu@intel.com>
11784
11785 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
11786 * configure: Regenerated.
11787
11788 2011-08-22 Jakub Jelinek <jakub@redhat.com>
11789
11790 PR tree-optimization/50133
11791 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
11792 from stmt instead of some statement around gsi.
11793
11794 PR middle-end/50141
11795 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
11796 innerdecl is a VAR_DECL.
11797
11798 2011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
11799
11800 * config/i386/avx2intrin.h: New file.
11801 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
11802 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
11803 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
11804 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
11805 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
11806 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
11807 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
11808 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
11809 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
11810 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
11811 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
11812 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
11813 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
11814 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
11815 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
11816 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
11817 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
11818 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
11819 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
11820 VOID_FTYPE_PV8SI_V8SI_V8SI,
11821 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
11822 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
11823 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
11824 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
11825 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
11826 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
11827 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
11828 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
11829 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
11830 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
11831 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
11832 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
11833 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
11834 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
11835 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
11836 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
11837 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
11838 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
11839 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
11840 V4DI_FTYPE_V4DI_INT_CONVERT,
11841 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
11842 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
11843 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
11844 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
11845 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
11846 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
11847 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
11848 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
11849 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
11850 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
11851 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
11852 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
11853 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
11854 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
11855 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
11856 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
11857 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
11858 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
11859 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
11860 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
11861 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
11862 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
11863 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
11864 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
11865 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
11866 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
11867 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
11868 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
11869 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
11870 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
11871 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
11872 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
11873 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
11874 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
11875 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
11876 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
11877 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
11878 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
11879 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
11880 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
11881 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
11882 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
11883 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
11884 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
11885 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
11886 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
11887 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
11888 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
11889 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
11890 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
11891 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
11892 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
11893 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
11894 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
11895 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
11896 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
11897 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
11898 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
11899 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
11900 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
11901 IX86_BUILTIN_VBROADCASTSS_PS256,
11902 IX86_BUILTIN_VBROADCASTSD_PD256,
11903 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
11904 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
11905 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
11906 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
11907 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
11908 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
11909 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
11910 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
11911 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
11912 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
11913 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
11914 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
11915 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
11916 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
11917 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
11918 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
11919 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
11920 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
11921 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
11922 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
11923 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
11924 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
11925 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
11926 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
11927 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
11928 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
11929 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
11930 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
11931 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
11932 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
11933 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
11934 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
11935 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
11936 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
11937 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
11938 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
11939 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
11940 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
11941 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
11942 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
11943 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
11944 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
11945 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
11946 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
11947 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
11948 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
11949 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
11950 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
11951 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
11952 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
11953 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
11954 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
11955 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
11956 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
11957 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
11958 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
11959 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
11960 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
11961 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
11962 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
11963 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
11964 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
11965 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
11966 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
11967 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
11968 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
11969 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
11970 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
11971 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
11972 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
11973 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
11974 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
11975 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
11976 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
11977 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
11978 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
11979 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
11980 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
11981 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
11982 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
11983 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
11984 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
11985 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
11986 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
11987 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
11988 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
11989 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
11990 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
11991 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
11992 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
11993 IX86_BUILTIN_VBROADCASTSD_PD256,
11994 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
11995 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
11996 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
11997 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
11998 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
11999 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
12000 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
12001 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
12002 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
12003 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
12004 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
12005 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
12006 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
12007 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
12008 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
12009 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
12010 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
12011 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
12012 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
12013 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
12014 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
12015 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
12016 IX86_BUILTIN_GATHERDIV8SI.
12017 (ix86_preferred_simd_mode): Support AVX2 modes.
12018 (ix86_expand_args_builtin): Support AVX2 builtins.
12019 (ix86_expand_special_args_builtin): Likewise.
12020 (ix86_expand_builtin): Likewise.
12021 * config/i386/i386.md (UNSPEC_VPERMSI): New.
12022 (UNSPEC_VPERMDF): Likewise.
12023 (UNSPEC_VPERMSF): Likewise.
12024 (UNSPEC_VPERMDI): Likewise.
12025 (UNSPEC_VPERMTI): Likewise.
12026 (UNSPEC_GATHER): Likewise.
12027 (ssemodesuffix): Extend.
12028 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
12029 is defined.
12030 * config/i386/predicates.md (const1248_operand): New.
12031 * config/i386/sse.md (VI1_AVX2): New mode iterator.
12032 (VI2_AVX2): Likewise.
12033 (VI4_AVX2): Likewise.
12034 (VI8_AVX2): Likewise.
12035 (VIMAX_AVX2): Likewise.
12036 (SSESCALARMODE): Likewise.
12037 (VI12_AVX2): Likewise.
12038 (VI24_AVX2): Likewise.
12039 (VI124_AVX2): Likewise.
12040 (VI248_AVX2): Likewise.
12041 (VI48_AVX2): Likewise.
12042 (VI4SD_AVX2): Likewise.
12043 (V48_AVX2): Likewise.
12044 (AVX256MODE2P): Likewise.
12045 (AVXMODE48P_DI): Likewise.
12046 (sse2_avx2): New mode attribute.
12047 (ssse3_avx2): Likewise.
12048 (sse4_1_avx2): Likewise.
12049 (avx_avx2): Likewise.
12050 (ssebytemode): Likewise.
12051 (AVXTOSSEMODE): Likewise.
12052 (AVXMODE48P_DI): Likewise.
12053 (gthrfirstp): Likewise.
12054 (gthrlastp): Likewise.
12055 (lshift): New code_iterator
12056 (lshift): New code attribute.
12057 (lshift): Likewise.
12058 (ssescalarmodesuffix): Update.
12059 (sseunpackmode): Likewise.
12060 (ssepackmode): Likewise.
12061 (avx2_vec_dupv4sf): New insn pattern.
12062 (avx2_vec_dupv8sf): Likewise.
12063 (avx2_interleave_highv4di): Likewise.
12064 (avx2_interleave_lowv4di): Likewise.
12065 (avx2_umulv4siv4di3): Likewise
12066 (*avx2_umulv4siv4di3): Likewise
12067 (avx2_pmaddwd): Likewise.
12068 (*avx2_pmaddwd): Likewise.
12069 (avx2_lshrqv4di3): Likewise.
12070 (avx2_lshlqv4di3): Likewise.
12071 (avx2_lshl<mode>3): Likewise.
12072 (avx2_<umaxmin:code><mode>3): Likewise.
12073 (*avx2_<umaxmin:code><mode>3): Likewise.
12074 (avx2_<smaxmin:code><mode>3): Likewise.
12075 (*avx2_<smaxmin:code><mode>3): Likewise.
12076 (avx2_eq<mode>3): Likewise.
12077 (*avx2_eq<mode>3): Likewise.
12078 (avx2_gt<mode>3): Likewise.
12079 (avx2_interleave_highv32qi): New.
12080 (avx2_interleave_lowv32qi): Likewise.
12081 (avx2_interleave_highv16hi): Likewise.
12082 (avx2_interleave_lowv16hi): Likewise.
12083 (avx2_interleave_highv8si): Likewise.
12084 (avx2_interleave_lowv8si): Likewise.
12085 (avx2_pshufd): Likewise.
12086 (avx2_pshufd_1): Likewise.
12087 (avx2_pshuflwv3): Likewise.
12088 (avx2_pshuflw_1): Likewise.
12089 (avx2_pshufhwv3): Likewise.
12090 (avx2_pshufhw_1): Likewise.
12091 (avx2_uavgv32qi3): Likewise.
12092 (*avx2_uavgv32qi3): Likewise.
12093 (avx2_uavgv16hi3): Likewise.
12094 (*avx2_uavgv16hi3): Likewise.
12095 (avx2_pmovmskb): Likewise.
12096 (avx2_phaddwv16hi3): Likewise.
12097 (avx2_phadddv8si3): Likewise.
12098 (avx2_phaddswv16hi3): Likewise.
12099 (avx2_phsubwv16hi3): Likewise.
12100 (avx2_phsubdv8si3): Likewise.
12101 (avx2_phsubswv16hi3): Likewise.
12102 (avx2_pmaddubsw256): Likewise.
12103 (avx2_umulhrswv16hi3): Likewise.
12104 (*avx2_umulhrswv16hi3): Likewise.
12105 (avx2_packusdw): Likewise.
12106 (avx2_pblendd<mode>): Likewise.
12107 (avx2_<code>v16qiv16hi2): Likewise.
12108 (avx2_<code>v8qiv8si2): Likewise.
12109 (avx2_<code>v8hiv8si2): Likewise.
12110 (avx2_<code>v4qiv4di2): Likewise.
12111 (avx2_<code>v4hiv4di2): Likewise.
12112 (avx2_<code>v4siv4di2): Likewise.
12113 (avx2_pbroadcast<mode>): Likewise.
12114 (avx2_permvarv8si): Likewise.
12115 (avx2_permv4df): Likewise.
12116 (avx2_permvarv8sf): Likewise.
12117 (avx2_permv4di): Likewise.
12118 (avx2_permv2ti): Likewise.
12119 (avx2_vec_dupv4df): Likewise.
12120 (avx2_vbroadcasti128_<mode>): Likewise.
12121 (avx2_vec_set_lo_v4di): Likewise.
12122 (avx2_vec_set_hi_v4di): Likewise.
12123 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
12124 (avx2_extracti128): Likewise.
12125 (avx2_inserti128): Likewise.
12126 (avx2_ashrvv8si): Likewise.
12127 (avx2_ashrvv4si): Likewise.
12128 (avx2_<lshift>vv8si): Likewise.
12129 (avx2_<lshift>v<mode>): Likewise.
12130 (avx2_<lshift>vv2di): Likewise.
12131 (avx2_gathersi<mode>): Likewise.
12132 (*avx2_gathersi<mode>): Likewise.
12133 (avx2_gatherdi<mode>): Likewise.
12134 (*avx2_gatherdi<mode>): Likewise.
12135 (avx2_gatherdi<mode>256): Likewise.
12136 (*avx2_gatherdi<mode>256): Likewise.
12137 (<plusminus_insn><mode>3): Use VI mode iterator.
12138 (*<plusminus_insn><mode>3): Use VI mode iterator.
12139 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
12140 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
12141 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
12142 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
12143 (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
12144 (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
12145 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
12146 Use VI2_AVX2 mode iterator.
12147 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
12148 Use VI2_AVX2 mode iterator.
12149 (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
12150 (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
12151 (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
12152 Use VI4_AVX2 mode iterator.
12153 (ashr<mode>3): Use VI24_AVX2 mode iterator.
12154 (lshr<mode>3): Use VI248_AVX2 mode iterator.
12155 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
12156 Use VIMAX_AVX2 mode iterator.
12157 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
12158 Use VI mode iterator.
12159 (*andnot<mode>3): Update for AVX2.
12160 (*<any_logic:code><mode>3): Likewise.
12161 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
12162 Use VI1_AVX mode iterator.
12163 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
12164 Use VI2_AVX mode iterator.
12165 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
12166 Use VI1_AVX mode iterator.
12167 (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
12168 Use VI8_AVX2 mode iterator.
12169 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
12170 Use VI1_AVX2 mode iterator.
12171 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
12172 Use VI124_AVX2 mode iterator.
12173 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
12174 Use SSESCALARMODE mode iterator.
12175 (abs<mode>2): Use VI124_AVX2 mode iterator.
12176 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
12177 Use VI8_AVX2 mode iterator.
12178 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
12179 Use VI1_AVX2 mode iterator.
12180 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
12181 Use VI1_AVX2 mode iterator.
12182 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
12183 Use VI2_AVX2 mode iterator.
12184 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
12185 avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
12186 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
12187 avx_maskstore<ssemodesuffix><avxsizesuffix>.
12188 Use V48_AVX2 mode iterator.
12189 * doc/extend.texi: Document AVX2 built-in functions.
12190 * doc/invoke.texi: Document -mavx2.
12191
12192 2011-08-22 Matthias Klose <doko@debian.org>
12193
12194 Revert:
12195 2011-07-11 Arthur Loiret <aloiret@debian.org>
12196 Matthias Klose <doko@debian.org>
12197 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
12198 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
12199 convention.
12200 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
12201
12202 2011-08-22 Mikael Pettersson <mikpe@it.uu.se>
12203
12204 PR bootstrap/50146
12205 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
12206 to #ifndef HONOR_REG_ALLOC_ORDER block.
12207
12208 2011-08-21 Richard Henderson <rth@redhat.com>
12209
12210 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
12211 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
12212 * resource.c (next_insn_no_annul): Likewise.
12213 (mark_set_resources): Likewise.
12214 * reorg.c (delete_from_delay_slot): Likewise.
12215 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
12216 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
12217
12218 2011-08-21 Uros Bizjak <ubizjak@gmail.com>
12219
12220 * config/i386/i386.md (any_div): Remove.
12221 (sgnprefix): Update for removal.
12222 (u): Ditto.
12223
12224 2011-08-20 Vladimir Makarov <vmakarov@redhat.com>
12225
12226 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
12227 for ira_reg_class_max_nregs. Increase pressure by 1.
12228 (mark_pseudo_regno_subword_dead): Use allocno class
12229 for ira_reg_class_max_nregs.
12230
12231 2011-08-20 Richard Henderson <rth@redhat.com>
12232
12233 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
12234 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
12235 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
12236 config/c6x/ltf.c: Adjust include path for soft-fp.
12237
12238 2011-08-20 H.J. Lu <hongjiu.lu@intel.com>
12239
12240 PR other/46770
12241 * config.gcc (tm_file): Add initfini-array.h if
12242 .init_arrary/.fini_array are supported.
12243
12244 * crtstuff.c: Don't generate .ctors nor .dtors sections if
12245 USE_INITFINI_ARRAY is defined.
12246
12247 * output.h (default_elf_init_array_asm_out_constructor): New.
12248 (default_elf_fini_array_asm_out_destructor): Likewise.
12249 * varasm.c (elf_init_array_section): Likewise.
12250 (elf_fini_array_section): Likewise.
12251 (get_elf_initfini_array_priority_section): Likewise.
12252 (default_elf_init_array_asm_out_constructor): Likewise.
12253 (default_elf_fini_array_asm_out_destructor): Likewise.
12254
12255 * config/initfini-array.h: New.
12256
12257 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
12258
12259 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
12260 OK for ST_REGS and FP_REGS before taking those classes into account.
12261
12262 2011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
12263
12264 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
12265 before checking for annulled branches.
12266
12267 2011-08-20 Uros Bizjak <ubizjak@gmail.com>
12268
12269 * config/i386/i386.c (ix86_binary_operator_ok): Use
12270 satisfies_constraint_L.
12271
12272 2011-08-20 Uros Bizjak <ubizjak@gmail.com>
12273 Michael Matz <matz@suse.de>
12274
12275 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
12276 trunc (a + copysign (nextafter (0.5, 0.0), a)).
12277
12278 2011-08-20 Anatoly Sokolov <aesok@post.ru>
12279
12280 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
12281 * doc/tm.texi: Regenerate.
12282 * targhooks.c (default_preferred_output_reload_class): Don't use
12283 PREFERRED_OUTPUT_RELOAD_CLASS macro.
12284 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
12285
12286 2011-08-20 Jakub Jelinek <jakub@redhat.com>
12287
12288 PR tree-optimization/48739
12289 * tree-ssa.c: Include cfgloop.h.
12290 (execute_update_addresses_taken): When updating ssa, if in loop closed
12291 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
12292 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
12293
12294 2011-08-19 Vladimir Makarov <vmakarov@redhat.com>
12295
12296 PR rtl-optimization/49936
12297 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
12298 for calculation of max register move costs.
12299
12300 2011-08-19 Joseph Myers <joseph@codesourcery.com>
12301
12302 * c-parser.c (c_parser_postfix_expression): Convert operands of
12303 __builtin_complex to their semantic types.
12304
12305 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
12306
12307 PR middle-end/49721
12308 * explow.c (convert_memory_address_addr_space): Also permute the
12309 conversion and addition of constant for zero-extend.
12310
12311 2011-08-19 Joseph Myers <joseph@codesourcery.com>
12312
12313 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
12314 * doc/extend.texi (__builtin_complex): Document.
12315
12316 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12317
12318 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
12319 beyond conversions.
12320 (convert_mult_to_widen): Convert constant inputs to the right type.
12321 (convert_plusminus_to_widen): Don't automatically reject inputs that
12322 are not an SSA_NAME.
12323 Convert constant inputs to the right type.
12324
12325 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12326
12327 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
12328 to the correct type.
12329
12330 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12331
12332 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
12333 unsigned inputs of different modes.
12334 (convert_plusminus_to_widen): Likewise.
12335
12336 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12337
12338 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
12339 'type'.
12340 Use 'type' from caller, not inferred from 'rhs'.
12341 Don't reject non-conversion statements. Do return lhs in this case.
12342 (is_widening_mult_p): Add new argument 'type'.
12343 Use 'type' from caller, not inferred from 'stmt'.
12344 Pass type to is_widening_mult_rhs_p.
12345 (convert_mult_to_widen): Pass type to is_widening_mult_p.
12346 (convert_plusminus_to_widen): Likewise.
12347
12348 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12349
12350 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
12351 Ensure the the larger type is the first operand.
12352
12353 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12354
12355 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
12356 unsupported unsigned multiplies to signed.
12357 (convert_plusminus_to_widen): Likewise.
12358
12359 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12360
12361 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
12362 conversion statement separating multiply-and-accumulate.
12363
12364 2011-08-19 Richard Guenther <rguenther@suse.de>
12365
12366 PR tree-optimization/50067
12367 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
12368 offset only if we accounted for it.
12369
12370 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12371
12372 * config/arm/arm.md (maddhidi4): Remove '*' from name.
12373 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
12374 * optabs.c (find_widening_optab_handler_and_mode): New function.
12375 (expand_widen_pattern_expr): Use find_widening_optab_handler.
12376 (expand_binop_directly): Likewise.
12377 (expand_binop): Likewise.
12378 * optabs.h (find_widening_optab_handler): New macro define.
12379 (find_widening_optab_handler_and_mode): New prototype.
12380 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
12381 type precision rules.
12382 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
12383 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
12384 (is_widening_mult_rhs_p): Allow widening by more than one mode.
12385 Explicitly disallow mis-matched input types.
12386 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
12387 input types to fit the new handler.
12388 (convert_plusminus_to_widen): Likewise.
12389
12390 2011-08-19 Andrew Stubbs <ams@codesourcery.com>
12391
12392 * expr.c (expand_expr_real_2): Use widening_optab_handler.
12393 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
12394 (gen_insn): $N now means $a must be wider than $b, not consecutive.
12395 * optabs.c (widened_mode): New function.
12396 (expand_widen_pattern_expr): Use widening_optab_handler.
12397 (expand_binop_directly): Likewise.
12398 (expand_binop): Likewise.
12399 * optabs.h (widening_optab_handlers): New struct.
12400 (optab_d): New member, 'widening'.
12401 (widening_optab_handler): New function.
12402 (set_widening_optab_handler): New function.
12403 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
12404 widening_optab_handler.
12405 (convert_plusminus_to_widen): Likewise.
12406
12407 2011-08-19 Joseph Myers <joseph@codesourcery.com>
12408
12409 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
12410 pedantic.
12411 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
12412 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
12413
12414 2011-08-19 Joseph Myers <joseph@codesourcery.com>
12415
12416 * opth-gen.awk: Do not declare target save/restore structures and
12417 functions if IN_RTS defined.
12418
12419 2011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
12420
12421 PR target/49437
12422 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
12423 when stack was realigned in interrupt handler prologue.
12424
12425 2011-08-18 Joseph Myers <joseph@codesourcery.com>
12426
12427 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
12428 (quals_from_declspecs): Assert _Noreturn not present.
12429 (grokdeclarator): Handle _Noreturn.
12430 (build_null_declspecs): Initialize noreturn_p.
12431 (declspecs_add_scspec): Handle RID_NORETURN.
12432 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
12433 (c_parser_attributes): Handle RID_NORETURN.
12434 * c-tree.h (struct c_declspecs): Add noreturn_p.
12435 * ginclude/stdnoreturn.h: New.
12436 * Makefile.in (USER_H): Add stdnoreturn.h.
12437
12438 2011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
12439
12440 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
12441 (OPTION_MASK_ISA_AVX_UNSET): Update.
12442 (OPTION_MASK_ISA_AVX2_UNSET): New.
12443 (ix86_handle_option): Handle OPT_mavx2 case.
12444 * config/i386/cpuid.h (bit_AVX2): New.
12445 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12446 AVX2 feature.
12447 * config/i386/i386-c.c (ix86_target_macros_internal):
12448 Conditionally define __AVX2__.
12449 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
12450 Define "core-avx2" processor alias. Handle avx2 option.
12451 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
12452 * config/i386/i386.h (TARGET_AVX2): New.
12453 * config/i386/i386.opt (mavx2): New.
12454 * doc/invoke.texi: Document -mavx2.
12455
12456 2011-08-18 Vladimir Makarov <vmakarov@redhat.com>
12457
12458 PR rtl-optimization/49890
12459 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
12460 subclasses of class which is superset of a pressure class.
12461
12462 2011-08-18 H.J. Lu <hongjiu.lu@intel.com>
12463 Igor Zamyatin <igor.zamyatin@intel.com>
12464
12465 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
12466 with HOST_WIDE_INT for isa_flag.
12467 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
12468 isa variables.
12469
12470 * config/i386/i386.c (ix86_target_string): Replace int with
12471 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
12472 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
12473 (pta_flags): Removed.
12474 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
12475 (pta): Use HOST_WIDE_INT on flags.
12476 (builtin_isa): Use HOST_WIDE_INT on isa.
12477 (ix86_add_new_builtins): Likewise.
12478 (def_builtin): Use HOST_WIDE_INT on mask.
12479 (def_builtin_const): Likewise.
12480 (builtin_description): Likewise.
12481
12482 * config/i386/i386.opt (ix86_isa_flags): Replace int with
12483 HOST_WIDE_INT.
12484 (ix86_isa_flags_explicit): Likewise.
12485 (x_ix86_isa_flags_explicit): Likewise.
12486
12487 2011-08-17 Vladimir Makarov <vmakarov@redhat.com>
12488
12489 PR rtl-optimization/50107
12490 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
12491 (ira_hard_reg_in_set_p): New.
12492
12493 * ira-color.c (calculate_saved_nregs): New.
12494 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
12495 hard regs.
12496 (allocno_reload_assign, fast_allocation): Use
12497 ira_hard_reg_set_intersection_p instead of
12498 ira_hard_reg_not_in_set_p.
12499
12500 * ira.c (setup_reg_renumber): Use
12501 ira_hard_reg_set_intersection_p instead of
12502 ira_hard_reg_not_in_set_p.
12503 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
12504 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
12505
12506 * ira-costs.c (ira_tune_allocno_costs): Use
12507 ira_hard_reg_set_intersection_p instead of
12508 ira_hard_reg_not_in_set_p.
12509
12510 2011-08-18 H.J. Lu <hongjiu.lu@intel.com>
12511 Igor Zamyatin <igor.zamyatin@intel.com>
12512
12513 * hwint.h (HOST_WIDE_INT_1): New.
12514
12515 * opt-functions.awk (switch_bit_fields): Initialize the
12516 host_wide_int field.
12517 (host_wide_int_var_name): New.
12518 (var_type_struct): Check and return HOST_WIDE_INT.
12519
12520 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
12521
12522 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
12523
12524 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
12525 check masks for HOST_WIDE_INT.
12526
12527 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
12528 (option_enabled): Likewise.
12529 (get_option_state): Likewise.
12530
12531 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
12532 to HOST_WIDE_INT.
12533
12534 2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12535 Marc Glisse <marc.glisse@normalesup.org>
12536
12537 PR libstdc++-v3/1773
12538 * target.def (decl_mangling_context): New C++ hook.
12539 * doc/tm.texi: Regenerate.
12540 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
12541 * config/sol2-protos.h: Group by source file.
12542 (solaris_cxx_decl_mangling_context): Declare.
12543 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
12544 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
12545 Use $<.
12546 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
12547 Add sol2-stubs.o to extra_objs.
12548
12549 2011-08-18 Jakub Jelinek <jakub@redhat.com>
12550
12551 PR target/50009
12552 * stor-layout.c (update_alignment_for_field): Don't ICE on
12553 packed flexible array members if ms_bitfield_layout_p.
12554
12555 PR target/50092
12556 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
12557 on the result before returning it.
12558
12559 PR debug/50017
12560 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
12561 is a debug stmt, use location of the first non-debug stmt after it.
12562
12563 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
12564
12565 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
12566 (arm_size_rtx_costs): Likewise.
12567
12568 2011-08-18 Richard Guenther <rguenther@suse.de>
12569
12570 * tree.h (tree_int_cst_msb): Remove.
12571 * tree.c (tree_int_cst_msb): Likewise.
12572 (tree_int_cst_sign_bit): Move from ...
12573 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
12574
12575 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
12576
12577 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
12578 * doc/tm.texi: Regenerate.
12579 * target.def (rtx_costs): Add an opno parameter.
12580 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
12581 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
12582 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
12583 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
12584 * cse.c (COST_IN): Add an opno parameter.
12585 (notreg_cost): Likewise. Update call to rtx_cost.
12586 (COST, fold_rtx): Update accordingly.
12587 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
12588 * expmed.c (emit_store_flag): Likewise.
12589 * optabs.c (avoid_expensive_constant): Add an opno parameter.
12590 Update call to rtx_cost.
12591 (expand_binop_directly, expand_binop): Likewise.
12592 (expand_twoval_binop, prepare_cmp_insn): Likewise.
12593 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
12594 (set_src_cost, get_full_set_src_cost): Update accordingly.
12595 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
12596 to target hook.
12597 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
12598 (default_adress_cost): Update calls to rtx_cost.
12599
12600 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
12601 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
12602 (arm_rtx_costs): Add an opno parameter.
12603 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
12604 adjust any recursive rtx-cost calls.
12605 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
12606 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
12607 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
12608 * config/cris/cris.c (cris_rtx_costs): Likewise.
12609 * config/frv/frv.c (frv_rtx_costs): Likewise.
12610 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
12611 * config/i386/i386.c (ix86_rtx_costs): Likewise.
12612 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
12613 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
12614 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
12615 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
12616 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
12617 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
12618 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
12619 * config/mep/mep.c (mep_rtx_cost): Likewise.
12620 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
12621 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
12622 (mips_zero_extend_cost): Add an opno parameter.
12623 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
12624 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
12625 to rtx_cost.
12626 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
12627 rtx-cost calls.
12628 * config/pa/pa.c (hppa_rtx_costs): Likewise.
12629 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
12630 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
12631 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
12632 (rs6000_debug_rtx_costs): Likewise.
12633 * config/s390/s390.c (s390_rtx_costs): Likewise.
12634 * config/score/score-protos.h (score_rtx_costs): Likewise.
12635 * config/score/score.c (score_rtx_costs): Likewise.
12636 * config/sh/sh.c (andcosts): Update call to rtx_cost.
12637 (sh_rtx_costs): Add an opno parameter.
12638 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
12639 * config/spu/spu.c (spu_rtx_costs): Likewise.
12640 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
12641 * config/v850/v850.c (v850_rtx_costs): Likewise.
12642 * config/vax/vax.c (vax_rtx_costs): Likewise.
12643 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
12644
12645 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
12646
12647 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
12648 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
12649 rtx_cost.
12650 * calls.c (precompute_register_parameters): Likewise.
12651 * combine.c (expand_compound_operation, make_extraction): Likewise.
12652 (force_to_mode, distribute_and_simplify_rtx): Likewise.
12653 * dse.c (find_shift_sequence): Likewise.
12654 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
12655 * expr.c (compress_float_constant): Likewise.
12656 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
12657 * gcse.c (want_to_gcse_p): Likewise.
12658 * ifcvt.c (noce_try_sign_mask): Likewise.
12659 * loop-doloop.c (doloop_optimize): Likewise.
12660 * loop-invariant.c (create_new_invariant): Likewise.
12661 * optabs.c (avoid_expensive_constant): Likewise.
12662 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
12663 (try_replace_in_use, reload_cse_move2add): Likewise.
12664 * reload1.c (calculate_elim_costs_all_insns): Likewise.
12665 (note_reg_elim_costly): Likewise.
12666 * rtlanal.c (insn_rtx_cost): Likewise.
12667 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
12668 * stmt.c (lshift_cheap_p): Likewise.
12669 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
12670 * config/avr/avr.c (final_prescan_insn): Likewise.
12671 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
12672 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
12673
12674 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
12675
12676 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
12677 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
12678 * cfgloopanal.c (seq_cost): Likewise.
12679 * loop-invariant.c (create_new_invariant): Likewise.
12680 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
12681 (reload_cse_move2add): Use get_full_set_rtx_cost.
12682
12683 2011-08-18 Richard Guenther <rguenther@suse.de>
12684
12685 * expr.c (get_inner_reference): Fix typo in last change.
12686
12687 2011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
12688 Joseph Myers <joseph@codesourcery.com>
12689
12690 PR tree-optimization/49963
12691 * hwint.c (absu_hwi): Define.
12692 * hwint.h (absu_hwi): Declare.
12693 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
12694 of abs_hwi.
12695 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
12696 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
12697
12698 2011-08-18 Richard Guenther <rguenther@suse.de>
12699
12700 * expr.c (get_inner_reference): Sign-extend the constant
12701 twos-complement offset before doing arbitrary precision
12702 arithmetic on it.
12703 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
12704 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
12705 to get_constraint_for_ptr_offset.
12706
12707 2011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
12708
12709 PR target/50068
12710 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
12711
12712 2011-08-17 Richard Guenther <rguenther@suse.de>
12713
12714 * tree.h (convert_to_ptrofftype_loc): New function.
12715 (convert_to_ptrofftype): Define.
12716 * builtins.c (expand_builtin_bzero): Use size_type_node.
12717 (fold_builtin_bzero): Likewise.
12718 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
12719 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
12720 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
12721 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
12722 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
12723 * fold-const.c (build_range_check): Negate using the original type.
12724 (fold_unary_loc): Use fold_build_pointer_plus_loc.
12725 * gimple-fold.c (gimple_adjust_this_by_delta): Use
12726 convert_to_ptrofftype.
12727 * gimplify.c (gimplify_self_mod_expr): Likewise.
12728 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
12729 (graphite_create_new_loop_guard): Likewise.
12730 * graphite-sese-to-poly.c (my_long_long): Remove.
12731 (scop_ivs_can_be_represented): Adjust.
12732 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
12733 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
12734 * tree-loop-distribution.c (build_size_arg_loc): Use
12735 size_type_node.
12736 (generate_memset_zero): Simplify.
12737 * tree-mudflap.c: Use fold_convert, not convert.
12738 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
12739 its own type.
12740 (determine_offset): Likewise for DR_STEP.
12741 (valid_initializer_p): Likewise.
12742 * tree-profile.c (prepare_instrumented_value): Convert the pointer
12743 to an integer type of same size.
12744 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
12745 to sizetype without need.
12746 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
12747 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
12748 * tree-ssa-loop-manip.c (create_iv): Likewise.
12749 (determine_exit_conditions): Adjust comment.
12750 * tree-ssa-pre.c (create_expression_by_pieces): Use
12751 convert_to_ptrofftype.
12752 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
12753 * varasm.c (array_size_for_constructor): Compute using double_ints.
12754
12755 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12756
12757 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
12758 when generating an integer result where possible. Short-cut
12759 comparison against 0 also for QImode.
12760
12761 2011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12762
12763 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
12764 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
12765 prototype.
12766 * config/spu/spu.c (spu_legitimize_reload_address): New function.
12767 (spu_legitimate_address_p): Do not check displacement if the base
12768 is an eliminable stack register.
12769
12770 2011-08-16 Anatoly Sokolov <aesok@post.ru>
12771
12772 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
12773 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
12774 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
12775 m32c_preferred_output_reload_class): Remove.
12776 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
12777 Change rclass argument and return types to reg_class_t. Use
12778 reg_class_subset_p instead of class_sizes.
12779 (m32c_preferred_output_reload_class): Make static. Change rclass
12780 argument and return types to reg_class_t.
12781 (TARGET_PREFERRED_RELOAD_CLASS,
12782 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
12783
12784 2011-08-16 Kai Tietz <ktietz@redhat.com>
12785
12786 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
12787
12788 2011-08-16 Richard GUenther <rguenther@suse.de>
12789
12790 PR tree-optimization/50082
12791 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
12792 warnings here, instead of ...
12793 (ssa_forward_propagate_and_combine): ... here.
12794 (forward_propagate_into_comparison_1): Adjust.
12795 (forward_propagate_into_comparison): Likewise.
12796 (forward_propagate_into_gimple_cond): Likewise.
12797 (forward_propagate_into_cond): Likewise.
12798
12799 2011-08-16 Andreas Schwab <schwab@redhat.com>
12800
12801 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
12802 instead of ggc_alloc_zone_vec_rtvec_def.
12803
12804 2011-08-16 Richard Guenther <rguenther@suse.de>
12805
12806 * tree.h (ptrofftype_p): New helper function.
12807 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
12808 offset verification.
12809 (verify_gimple_assign_binary): Likewise.
12810 * tree.c (build2_stat): Likewise.
12811 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
12812 (reset_evolution_in_loop): Likewise.
12813 * tree-chrec.h (build_polynomial_chrec): Likewise.
12814
12815 2011-08-16 Liang Wang <lwang1@marvell.com>
12816
12817 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
12818 ggc_alloc_zone_vec_rtvec_def.
12819
12820 2011-08-16 Richard Guenther <rguenther@suse.de>
12821
12822 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
12823 helper factored out from ...
12824 (extract_range_from_binary_expr_1): ... here. Re-structure
12825 to not glob handling too different tree codes.
12826
12827 2011-08-15 Richard Henderson <rth@redhat.com>
12828
12829 PR middle-end/50006
12830 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
12831 setting out to include allocate_stack named pattern as well.
12832 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
12833 * stmt.c (expand_stack_restore): Likewise.
12834
12835 2011-08-15 Richard Guenther <rguenther@suse.de>
12836
12837 PR middle-end/50082
12838 * fold-const.c (maybe_canonicalize_comparison_1): Properly
12839 convert the modified operand to the other operand type.
12840 (fold_comparison): Call maybe_canonicalize_comparison_1 with
12841 useless conversions stripped from comparison operands.
12842
12843 2011-08-15 Richard Guenther <rguenther@suse.de>
12844
12845 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
12846 (extract_range_from_unary_expr_1): Restructure.
12847
12848 2011-08-15 Richard Guenther <rguenther@suse.de>
12849
12850 PR tree-optimization/50058
12851 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
12852 copy matching.
12853
12854 2011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12855
12856 PR target/50022
12857 * config/arm/arm.c (output_move_double): Add 2 parameters
12858 to count the number of insns emitted and whether to emit or not.
12859 Use the flag to decide when to emit and count number of instructions
12860 that will be emitted.
12861 Handle case where output_move_double might be called for calculating
12862 lengths with an invalid constant.
12863 (arm_count_output_move_double_insns): Define.
12864 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
12865 (output_move_double): Adjust prototype.
12866 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
12867 output_move_double.
12868 ("*movdi_vfp_cortexa8"): Likewise and add attribute
12869 for ce_count.
12870 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
12871 ("*movdf_soft_insn"): Likewise.
12872 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
12873 ("*cirrus_thumb2_movdi"): Likewise.
12874 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
12875 ("*cirrus_movdf_hard_insn"): Likewise.
12876 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
12877 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
12878 ("mov<mode>_internal VMMX"): Likewise.
12879 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
12880
12881 2011-08-14 Uros Bizjak <ubizjak@gmail.com>
12882
12883 * config/i386/i386.c (ix86_expand_round_sse4): New function.
12884 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
12885 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
12886 for TARGET_ROUND.
12887
12888 (rint<mode>2): Simplify TARGET_ROUND check.
12889 (floor<mode>2): Ditto.
12890 (ceil<mode>2): Ditto.
12891 (btrunc<mode>2): Ditto.
12892
12893 2011-08-14 Anatoly Sokolov <aesok@post.ru>
12894
12895 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
12896 as mmix_preferred_output_reload_class.
12897
12898 2011-08-14 Georg-Johann Lay <avr@gjlay.de>
12899
12900 * PR target/49903
12901 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
12902 (branch_unspec): New insn.
12903 (branch): Beauty farm.
12904 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
12905 to be IF_THEN_ELSE.
12906 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
12907 New static functions.
12908 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
12909 Use CONST_INT_P. Beauty.
12910
12911 2011-08-12 Richard Henderson <rth@redhat.com>
12912
12913 PR rtl-opt/49994
12914 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
12915 * sched-deps.c (init_deps): Clear it.
12916 (deps_analyze_insn): Consume it.
12917 (sched_analyze_insn): Fill it.
12918
12919 2011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12920
12921 PR target/48328
12922 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
12923 for tbh instructions.
12924
12925 2011-08-12 Diego Novillo <dnovillo@google.com>
12926
12927 * data-streamer.h (streamer_write_zero): Rename from output_zero.
12928 (streamer_write_uhwi): Rename from lto_output_uleb128.
12929 (streamer_write_hwi): Rename from output_sleb128.
12930 (streamer_write_string): Rename from lto_output_string.
12931 (streamer_string_index): Rename from lto_string_index.
12932 (streamer_write_string_with_length): Rename from
12933 lto_output_string_with_length.
12934 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
12935 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
12936 (streamer_read_string): Rename from lto_input_string.
12937 (streamer_read_indexed_string): Rename from input_string_internal.
12938 (streamer_read_uhwi): Rename from lto_input_uleb128.
12939 (streamer_read_hwi): Rename from lto_input_sleb128.
12940 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
12941 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
12942 (streamer_write_enum): Rename from lto_output_enum.
12943 (streamer_read_enum): Rename from lto_input_enum.
12944 (streamer_write_record_start): Rename from output_record_start.
12945 (streamer_read_record_start): Rename from input_record_start.
12946 (streamer_write_bitpack): Rename from lto_output_bitpack.
12947 (streamer_read_bitpack): Rename from lto_input_bitpack.
12948 (streamer_write_char_stream): Rename from lto_output_1_stream.
12949 (streamer_read_uchar): Rename from lto_input_1_unsigned.
12950 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
12951 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
12952 (streamer_read_string_cst): Rename from input_string_cst.
12953 (streamer_read_chain): Rename from lto_input_chain.
12954 (streamer_alloc_tree): Rename from lto_materialize_tree.
12955 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
12956 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
12957 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
12958 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
12959 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
12960 (streamer_write_chain): Rename from lto_output_chain.
12961 (streamer_write_tree_header): Rename from lto_output_tree_header.
12962 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
12963 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
12964 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
12965 (streamer_write_builtin): Rename from lto_output_builtin_tree.
12966 (streamer_check_handled_ts_structures): Rename from
12967 check_handled_ts_structures.
12968 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
12969 (streamer_tree_cache_insert_at): Rename from
12970 lto_streamer_cache_insert_at.
12971 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
12972 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
12973 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
12974 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
12975 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
12976 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
12977 (write_identifier): Rename from output_identifier.
12978 (write_ts_common_tree_pointers): Rename from
12979 lto_output_ts_common_tree_pointers.
12980 (write_ts_vector_tree_pointers): Rename from
12981 lto_output_ts_vector_tree_pointers.
12982 (write_ts_complex_tree_pointers): Rename from
12983 lto_output_ts_complex_tree_pointers.
12984 (write_ts_decl_minimal_tree_pointers): Rename from
12985 lto_output_ts_decl_minimal_tree_pointers.
12986 (write_ts_decl_common_tree_pointers): Rename from
12987 lto_output_ts_decl_common_tree_pointers.
12988 (write_ts_decl_non_common_tree_pointers): Rename from
12989 lto_output_ts_decl_non_common_tree_pointers.
12990 (write_ts_decl_with_vis_tree_pointers): Rename from
12991 lto_output_ts_decl_with_vis_tree_pointers.
12992 (write_ts_field_decl_tree_pointers): Rename from
12993 lto_output_ts_field_decl_tree_pointers.
12994 (write_ts_function_decl_tree_pointers): Rename from
12995 lto_output_ts_function_decl_tree_pointers.
12996 (write_ts_type_common_tree_pointers): Rename from
12997 lto_output_ts_type_common_tree_pointers.
12998 (write_ts_type_non_common_tree_pointers): Rename from
12999 lto_output_ts_type_non_common_tree_pointers.
13000 (write_ts_list_tree_pointers): Rename from
13001 lto_output_ts_list_tree_pointers.
13002 (write_ts_vec_tree_pointers): Rename from
13003 lto_output_ts_vec_tree_pointers.
13004 (write_ts_exp_tree_pointers): Rename from
13005 lto_output_ts_exp_tree_pointers.
13006 (write_ts_block_tree_pointers): Rename from
13007 lto_output_ts_block_tree_pointers.
13008 (write_ts_binfo_tree_pointers): Rename from
13009 lto_output_ts_binfo_tree_pointers.
13010 (write_ts_constructor_tree_pointers): Rename from
13011 lto_output_ts_constructor_tree_pointers.
13012 (write_ts_target_option): Rename from lto_output_ts_target_option.
13013 (write_ts_translation_unit_decl_tree_pointers): Rename from
13014 lto_output_ts_translation_unit_decl_tree_pointers.
13015 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
13016 Rename from lto_streamer_cache_add_to_node_array.
13017 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
13018 (record_common_node): Rename from lto_record_common_node.
13019
13020 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
13021 declarations.
13022 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
13023 function.
13024 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
13025 unused function.
13026 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
13027 (ipa-reference.o): Likewise.
13028 * lto-section-out.c: Include data-streamer.h.
13029 * ipa-reference.c: Include data-streamer.h.
13030
13031 2011-08-12 Nick Clifton <nickc@redhat.com>
13032
13033 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
13034 * doc/md.texi (cmpstrn): Note that the comparison stops if both
13035 fetched bytes are zero.
13036 (cmpstr): Likewise.
13037 (cmpmem): Note that the comparison does not stop if both of the
13038 fetched bytes are zero.
13039
13040 2011-08-12 Uros Bizjak <ubizjak@gmail.com>
13041
13042 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
13043 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
13044 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
13045 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
13046 to integer_type_node.
13047 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
13048 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
13049 * builtins.c (expand_builtin_in): Ditto.
13050 (mathfn_built_in_1): Ditto.
13051 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
13052 BUILT_IN_IFLOOR.
13053 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
13054 BUILT_IN_IROUND.
13055 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
13056 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
13057 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
13058
13059 2011-08-12 Richard Guenther <rguenther@suse.de>
13060
13061 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
13062
13063 2011-08-12 Romain Geissler <romain.geissler@gmail.com>
13064
13065 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
13066
13067 2011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
13068
13069 * config/arm/arm.c (get_label_padding): New function.
13070 (create_fix_barrier, arm_reorg): Use it.
13071
13072 2011-08-11 Uros Bizjak <ubizjak@gmail.com>
13073
13074 PR target/49781
13075 * config/i386/i386.md (*lea_5_zext): New.
13076 (*lea_6_zext): Ditto.
13077 * config/i386/predicates.md (const_32bit_mask): New predicate.
13078 (lea_address_operand): Reject AND.
13079 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
13080 const_32bit_mask immediate.
13081 (ix86_print_operand_address): Handle AND.
13082 (memory_address_length): Ditto.
13083
13084 2011-08-11 Romain Geissler <romain.geissler@gmail.com>
13085 Brian Hackett <bhackett1024@gmail.com>
13086
13087 * plugin.def: Add event for finish_decl.
13088 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
13089 * c-decl.c (finish_decl): Invoke callbacks on above event.
13090 * doc/plugins.texi: Document above event.
13091
13092 2011-08-11 Richard Guenther <rguenther@suse.de>
13093
13094 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
13095 lookups, make looking through aggregate copies stronger.
13096
13097 2011-08-11 Richard Henderson <rth@redhat.com>
13098
13099 PR bootstrap/50018
13100 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
13101
13102 2011-08-11 Richard Guenther <rguenther@suse.de>
13103
13104 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
13105 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
13106 (vrp_visit_stmt): Likewise.
13107
13108 2011-08-11 Richard Guenther <rguenther@suse.de>
13109
13110 PR middle-end/50040
13111 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
13112 load of the other piece with TREE_NO_WARNING.
13113 * tree-flow.h (warn_uninit): Adjust prototype.
13114 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
13115 the base variable and the expression that is used separately.
13116 Properly query all TREE_NO_WARNING flags.
13117 (struct walk_data): Remove.
13118 (warn_uninitialized_var): Likewise.
13119 (warn_uninitialized_vars): Do not walk gimple pieces but simply
13120 look at all SSA uses of the statement. Handle unused memory
13121 separately.
13122 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
13123
13124 2011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
13125
13126 * config/rx/rx.md (movsicc): Allow register to register transfers.
13127 (*movsicc): Likewise.
13128 (*stcc): Restrict this pattern to EQ and NE compares.
13129 (*stcc_reg): New pattern. Works for any comparison but only for
13130 register transfers.
13131
13132 2011-08-11 Diego Novillo <dnovillo@google.com>
13133
13134 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
13135 Call stream_write_tree instead of output_record_start.
13136 (lto_output_ts_binfo_tree_pointers): Likewise.
13137
13138 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
13139 Convert it to a macro.
13140 (stream_read_tree): Likewise.
13141
13142 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
13143 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
13144
13145 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
13146 and tree_read_bitfields.
13147 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
13148 (lto_write_tree): Call it.
13149 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
13150 * streamer-hooks.h (struct streamer_hooks): Remove fields
13151 name, is_streamable and alloc_tree. Update all users.
13152 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
13153 (lto_materialize_tree): ... here.
13154 Handle CALL_EXPR codes.
13155 Remove call to lto_streamer_cache_append.
13156 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
13157 * tree-streamer.h (tree_read_bitfields): Declare.
13158
13159 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
13160 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
13161 * tree-streamer.h (stream_read_tree): New. Replace all calls
13162 to lto_input_tree with it.
13163 (stream_write_tree): New. Replace all calls to lto_output_tree,
13164 lto_output_tree_ref and lto_output_tree_or_ref with it.
13165 * lto-streamer-in.c (lto_read_tree): Inline code from
13166 lto_streamer_read_tree.
13167 (lto_input_tree): Move from tree-streamer-in.c.
13168 * lto-streamer-out.c (lto_output_tree_ref): Make static.
13169 Remove handling of NULL values for EXPR.
13170 Do not handle EXPRs that are not indexable.
13171 (lto_write_tree): Move from tree-streamer-out.c.
13172 Inline lto_streamer_write_tree.
13173 (lto_output_tree): Move from tree-streamer-out.c.
13174 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
13175 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
13176 (lto_preload_common_nodes): Likewise.
13177 Remove assertions and adjustments for nodes
13178 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
13179 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
13180 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
13181 * lto-streamer.h (lto_input_tree): Declare.
13182 (lto_output_tree_ref): Remove.
13183 * streamer-hooks.h (struct streamer_hooks): Remove fields
13184 preload_common_nodes, indexable_with_decls_p,
13185 pack_value_fields, unpack_value_fields and output_tree_header.
13186 Update all users.
13187 * tree-streamer-in.c (lto_materialize_tree): Make extern.
13188 (lto_input_tree_pointers): Likewise.
13189 (lto_read_tree): Move to lto-streamer-in.c.
13190 (lto_input_integer_cst): Make extern.
13191 (lto_get_pickled_tree): Likewise.
13192 (lto_get_builtin_tree): Likewise.
13193 (lto_input_tree): Move to lto-streamer-in.c.
13194 * tree-streamer-out.c (pack_value_fields): Make extern.
13195 (lto_output_tree_or_ref): Remove. Replace all callers with
13196 calls to stream_write_tree.
13197 (lto_output_builtin_tree): Make extern.
13198 (lto_streamer_write_tree): Inline into lto_write_tree.
13199 (lto_output_tree_pointers): Make extern.
13200 (lto_output_tree_header): Likewise.
13201 (lto_output_integer_cst): Likewise.
13202 (lto_write_tree): Move to lto-streamer-out.c.
13203 (lto_output_tree): Likewise.
13204 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
13205 (preload_common_nodes): Likewise.
13206 (lto_streamer_cache_create): Call it.
13207 * tree-streamer.h: Include streamer-hooks.h.
13208 (stream_write_tree): New.
13209 (stream_read_tree): New.
13210 (lto_input_tree): Remove.
13211 (lto_materialize_tree): Declare.
13212 (lto_input_tree_pointers): Declare.
13213 (lto_get_pickled_tree): Declare.
13214 (lto_get_builtin_tree): Declare.
13215 (lto_input_integer_cst): Declare.
13216 (lto_output_tree_header): Declare.
13217 (pack_value_fields): Declare.
13218 (lto_output_tree_pointers): Declare.
13219 (lto_output_integer_cst): Declare.
13220 (lto_output_builtin_tree): Declare.
13221
13222 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
13223
13224 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
13225 only if producer writes to the register given by regno.
13226
13227 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
13228 Alexander Monakov <amonakov@ispras.ru>
13229
13230 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
13231 (sched_get_condition_with_rev_uncached): ... this. Factor out
13232 condition caching logic into ...
13233 (sched_get_condition_with_rev): ... this. Reimplement. Do not
13234 attempt to use cache for instructions with zero luid.
13235 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
13236 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
13237
13238 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
13239
13240 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
13241 get_seqno_for_a_jump. Update the caller.
13242 (get_seqno_by_succs): New. Use it ...
13243 (get_seqno_for_a_jump): ... here to find a seqno if looking at
13244 predecessors was not sufficient.
13245 (get_seqno_by_preds): Include head in iteration range, exclude insn.
13246
13247 2011-08-11 Dmitry Melnik <dm@ispras.ru>
13248
13249 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
13250
13251 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
13252
13253 * sel-sched-ir.h (register_unavailable_p): Declare.
13254 * sel-sched-ir.c (register_unavailable_p): New. Use it...
13255 (set_unavailable_target_for_expr): ... here to properly test
13256 availability of a register.
13257 (speculate_expr): Ditto.
13258 * sel-sched.c (substitute_reg_in_expr): Ditto.
13259 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
13260
13261 2011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
13262
13263 * sel-sched.c (verify_target_availability): Fix usage of
13264 hard_regno_nregs.
13265
13266 2011-08-11 Dmitry Melnik <dm@ispras.ru>
13267
13268 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
13269 recognized by cannot_copy_insn_p hook and volatile instructions.
13270
13271 2011-08-11 Dmitry Melnik <dm@ispras.ru>
13272
13273 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
13274
13275 2011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
13276
13277 * doc/md.texi (define_bypass): Say that the instruction names can
13278 be filename-style globs.
13279 * Makefile.in (FNMATCH_H): Define.
13280 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
13281 * genattrtab.c: Include fnmatch.h.
13282 (bypass_list): Change field name from "insn" to "pattern".
13283 (gen_bypass_1): Update accordingly.
13284 (process_bypasses): Use fnmatch to check for matches between
13285 insn reservations and define_bypasses.
13286 * genautomata.c: Include fnmatch.h.
13287 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
13288 and out_pattern respectively.
13289 (gen_bypass, insert_bypass): Update accordingly.
13290 (for_each_matching_insn, process_bypass_2, process_bypass_1)
13291 (process_bypass): New functions.
13292 (process_decls): Use process_bypass. Update after field name changes.
13293
13294 2011-08-11 Georg-Johann Lay <avr@gjlay.de>
13295
13296 PR target/49687
13297 * config/avr/avr.md (smulqi3_highpart): New insn.
13298 (umulqi3_highpart): New insn.
13299 (*subqi3.ashiftrt7): New insn.
13300 (smulhi3_highpart): New expander.
13301 (umulhi3_highpart): Nex expander.
13302 (*smulhi3_highpart_call): New insn.
13303 (*umulhi3_highpart_call): New insn.
13304 (extend_u): New code attribute.
13305 (extend_prefix): Rename code attribute to extend_su.
13306 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
13307 widening QI/HI multiply.
13308
13309 2011-08-11 Ira Rosen <ira.rosen@linaro.org>
13310
13311 PR tree-optimization/50039
13312 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
13313 that DEF_STMT has a stmt_vec_info.
13314
13315 2011-08-10 Richard Guenther <rguenther@suse.de>
13316
13317 * tree.h (can_trust_pointer_alignment): Remove.
13318 * builtins.c (can_trust_pointer_alignment): Remove.
13319
13320 2011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
13321
13322 * c-typeck.c (scalar_to_vector): New function. Try scalar to
13323 vector conversion.
13324 (stv_conv): New enum for scalar_to_vector return type.
13325 (build_binary_op): Adjust.
13326 * doc/extend.texi: Description of scalar to vector expansion.
13327
13328 2011-08-10 Richard Guenther <rguenther@suse.de>
13329
13330 * tree.h (get_pointer_alignment): Remove max-align argument.
13331 (get_object_alignment): Likewise.
13332 * builtins.c (get_object_alignment_1): Adjust.
13333 (get_object_alignment): Remove max-align argument.
13334 (get_pointer_alignment): Likewise.
13335 (expand_builtin_strlen): Adjust.
13336 (expand_builtin_memcpy): Likewise.
13337 (expand_builtin_mempcpy_args): Likewise.
13338 (expand_builtin_strncpy): Likewise.
13339 (expand_builtin_memset_args): Likewise.
13340 (expand_builtin_memcmp): Likewise.
13341 (expand_builtin_strcmp): Likewise.
13342 (expand_builtin_strncmp): Likewise.
13343 (get_builtin_sync_mem): Likewise.
13344 (fold_builtin_memset): Likewise.
13345 (fold_builtin_memory_op): Likewise.
13346 (expand_builtin_memory_chk): Likewise.
13347 * emit-rtl.c (get_mem_align_offset): Likewise.
13348 (set_mem_attributes_minus_bitpos): Likewise.
13349 * expr.c (expand_assignment): Likewise.
13350 (expand_expr_real_1): Likewise.
13351 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
13352 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
13353 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
13354 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
13355 * value-prof.c (gimple_stringops_transform): Likewise.
13356
13357 2011-08-10 Paulo J. Matos <paulo.matos@csr.com>
13358
13359 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
13360 * doc/tm.texi: Regenerate.
13361
13362 2011-08-10 Georg-Johann Lay <avr@gjlay.de>
13363
13364 PR target/29560
13365 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
13366 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
13367 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
13368 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
13369 shift target is unused.
13370
13371 2011-08-10 Richard Guenther <rguenther@suse.de>
13372
13373 PR tree-optimization/49937
13374 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
13375 using get_object_alignment_1.
13376
13377 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
13378
13379 * config/i386/i386.c (ix86_emit_i387_round): New function.
13380 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
13381 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
13382 Use ix86_emit_i387_round to expand round function for i387 math.
13383 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
13384 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
13385
13386 2011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13387
13388 * config/sync.c: Move to ../libgcc.
13389 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
13390 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
13391 Remove.
13392
13393 2011-08-09 Anatoly Sokolov <aesok@post.ru>
13394
13395 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
13396 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
13397 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
13398 Change 'from' and 'to' arguments type to reg_class_t.
13399 (TARGET_REGISTER_MOVE_COST): Define.
13400
13401 2011-08-09 Vladimir Makarov <vmakarov@redhat.com>
13402
13403 PR target/50026
13404 Revert:
13405 PR rtl-optimization/49990
13406 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
13407 ignore classes which can not change mode.
13408 (find_costs_and_classes): Ditto.
13409
13410 2011-08-09 Richard Guenther <rguenther@suse.de>
13411
13412 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
13413 information for ranges with only negative values.
13414 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
13415 BIT_AND_EXPR handling to handle ranges with negative values.
13416
13417 2011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
13418
13419 * config/i386/i386.c: Remove traling spaces.
13420 * config/i386/sse.md: Likewise.
13421 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
13422 (*fma_fmsub_<mode>): Likewise.
13423 (*fma_fnmadd_<mode>): Likewise.
13424 (*fma_fnmsub_<mode>): Likewise.
13425
13426 2011-08-09 Nick Clifton <nickc@redhat.com>
13427
13428 * config/rx/rx.md: Disable extender peepholes at -O3.
13429
13430 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
13431
13432 PR target/49781
13433 * config/i386/i386.md (reload_noff_load): New.
13434 (reload_noff_store): Ditto.
13435 * config/i386/i386.c (ix86_secondary_reload): Use
13436 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
13437 double-word moves from/to non-offsetable addresses instead of
13438 generating XMM temporary.
13439
13440 2011-08-09 Anatoly Sokolov <aesok@post.ru>
13441
13442 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
13443
13444 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
13445
13446 PR tree-optimization/50014
13447 * tree-vect-loop.c (vectorizable_reduction): Get def type before
13448 calling vect_get_vec_def_for_stmt_copy ().
13449
13450 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
13451
13452 PR rtl-optimization/49990
13453 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
13454 ignore classes which can not change mode.
13455 (find_costs_and_classes): Ditto.
13456
13457 2011-08-08 Richard Henderson <rth@redhat.com>
13458
13459 PR middle-end/49990
13460 * config/i386/i386.c (ix86_expand_prologue): Call
13461 for SEH target gen_prologue_use instead of gen_blockage
13462 at prologue's end.
13463
13464 2011-08-08 Martin Jambor <mjambor@suse.cz>
13465
13466 PR middle-end/49923
13467 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
13468 memory alignment.
13469
13470 2011-08-08 Diego Novillo <dnovillo@google.com>
13471
13472 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
13473 (DATA_STREAMER_H): New.
13474 (GIMPLE_STREAMER_H): New.
13475 (TREE_STREAMER_H): New.
13476 (STREAMER_HOOKS_H): New.
13477 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
13478 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
13479 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
13480 (data-streamer.o): New.
13481 (data-streamer-in.o): New.
13482 (data-streamer-out.o): New.
13483 (gimple-streamer-in.o): New.
13484 (gimple-streamer-out.o): New.
13485 (streamer-hooks.o): New.
13486 (tree-streamer.o): New.
13487 (tree-streamer-in.o): New.
13488 (tree-streamer-out.o): New.
13489 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
13490 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
13491 GIMPLE_STREAMER_H and TREE_STREAMER_H.
13492 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
13493 GIMPLE_STREAMER_H and TREE_STREAMER_H.
13494 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
13495 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
13496 (ipa-inline-analysis.o): Likewise.
13497 (ipa-pure-const.o): Likewise.
13498 * data-streamer-in.c: New.
13499 * data-streamer-out.c: New.
13500 * data-streamer.c: New.
13501 * data-streamer.h: New.
13502 * gimple-streamer-in.c: New.
13503 * gimple-streamer-out.c: New.
13504 * gimple-streamer.h: New.
13505 * ipa-inline-analysis.c: Include data-streamer.h.
13506 * ipa-prop.c: Include data-streamer.h.
13507 * ipa-pure-const.c: Include data-streamer.h.
13508 * lto-cgraph.c: Include data-streamer.h.
13509 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
13510 (lto_input_widest_uint_uleb128): Likewise.
13511 (lto_input_sleb128): Likewise.
13512 (bp_unpack_var_len_unsigned): Likewise.
13513 (bp_unpack_var_len_int): Likewise.
13514 * lto-section-out.c (lto_output_uleb128_stream): Move to
13515 data-streamer-out.c.
13516 (lto_output_widest_uint_uleb128_stream): Likewise.
13517 (lto_output_sleb128_stream): Likewise.
13518 (bp_pack_var_len_unsigned): Likewise.
13519 (bp_pack_var_len_int): Likewise.
13520 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
13521 (struct string_slot): Remove. Update all users.
13522 (lto_tag_check_set): Make extern.
13523 (lto_tag_check_range): Move to lto-streamer.h.
13524 (lto_tag_check): Likewise.
13525 (hash_string_slot_node): Remove. Update all users.
13526 (eq_string_slot_node): Remove. Update all users.
13527 (string_for_index): Move to data-streamer-in.c
13528 (input_string_internal): Likewise.
13529 (input_string_cst): Move to tree-streamer-in.c.
13530 (input_identifier): Likewise.
13531 (lto_input_string): Move to data-streamer-in.c
13532 (input_record_start): Move to data-streamer.h
13533 (canon_file_name): Use new definition of struct string_slot
13534 from data-streamer.h. Set S_SLOT.LEN.
13535 (lto_input_location): Make extern.
13536 (lto_input_chain): Move to tree-streamer-in.c.
13537 (lto_init_eh): Make extern.
13538 (input_phi): Move to gimple-streamer-in.c.
13539 (input_gimple_stmt): Likewise.
13540 (input_bb): Likewise.
13541 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
13542 (unpack_ts_real_cst_value_fields): Likewise.
13543 (unpack_ts_fixed_cst_value_fields): Likewise.
13544 (unpack_ts_decl_common_value_fields): Likewise.
13545 (unpack_ts_decl_wrtl_value_fields): Likewise.
13546 (unpack_ts_decl_with_vis_value_fields): Likewise.
13547 (unpack_ts_function_decl_value_fields): Likewise.
13548 (unpack_ts_type_common_value_fields): Likewise.
13549 (unpack_ts_block_value_fields): Likewise.
13550 (unpack_ts_translation_unit_decl_value_fields): Likewise.
13551 (unpack_value_fields): Likewise.
13552 (lto_materialize_tree): Likewise.
13553 (lto_input_ts_common_tree_pointers): Likewise.
13554 (lto_input_ts_vector_tree_pointers): Likewise.
13555 (lto_input_ts_complex_tree_pointers): Likewise.
13556 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
13557 (lto_input_ts_decl_common_tree_pointers): Likewise.
13558 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
13559 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
13560 (lto_input_ts_field_decl_tree_pointers): Likewise.
13561 (lto_input_ts_function_decl_tree_pointers): Likewise.
13562 (lto_input_ts_type_common_tree_pointers): Likewise.
13563 (lto_input_ts_type_non_common_tree_pointers): Likewise.
13564 (lto_input_ts_list_tree_pointers): Likewise.
13565 (lto_input_ts_vec_tree_pointers): Likewise.
13566 (lto_input_ts_exp_tree_pointers): Likewise.
13567 (lto_input_ts_block_tree_pointers): Likewise.
13568 (lto_input_ts_binfo_tree_pointers): Likewise.
13569 (lto_input_ts_constructor_tree_pointers): Likewise.
13570 (lto_input_ts_target_option): Likewise.
13571 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
13572 (lto_input_tree_pointers): Likewise.
13573 (lto_get_pickled_tree): Likewise.
13574 (lto_get_builtin_tree): Likewise.
13575 (lto_read_tree): Likewise.
13576 (lto_input_integer_cst): Likewise.
13577 (lto_input_tree): Likewise.
13578 * lto-streamer-out.c: Include data-streamer.h,
13579 gimple-streamer.h and streamer-hooks.h.
13580 (struct string_slot): Move to data-streamer.h.
13581 (hash_string_slot_node): Likewise.
13582 (eq_string_slot_node): Likewise.
13583 (lto_string_index): Move to data-streamer-out.c.
13584 (lto_output_string_with_length): Likewise.
13585 (lto_output_string): Likewise.
13586 (output_string_cst): Move to tree-streamer-out.c.
13587 (output_identifier): Likewise.
13588 (output_zero): Move to data-streamer-out.c
13589 (output_uleb128): Likewise.
13590 (output_sleb128): Likewise.
13591 (output_record_start): Move to data-streamer.h
13592 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
13593 (pack_ts_real_cst_value_fields): Likewise.
13594 (pack_ts_fixed_cst_value_fields): Likewise.
13595 (pack_ts_decl_common_value_fields): Likewise.
13596 (pack_ts_decl_wrtl_value_fields): Likewise.
13597 (pack_ts_decl_with_vis_value_fields): Likewise.
13598 (pack_ts_function_decl_value_fields): Likewise.
13599 (pack_ts_type_common_value_fields): Likewise.
13600 (pack_ts_block_value_fields): Likewise.
13601 (pack_ts_translation_unit_decl_value_fields): Likewise.
13602 (pack_value_fields): Likewise.
13603 (lto_output_chain): Likewise.
13604 (lto_output_ts_common_tree_pointers): Likewise.
13605 (lto_output_ts_vector_tree_pointers): Likewise.
13606 (lto_output_ts_complex_tree_pointers): Likewise.
13607 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
13608 (lto_output_ts_decl_common_tree_pointers): Likewise.
13609 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
13610 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
13611 (lto_output_ts_field_decl_tree_pointers): Likewise.
13612 (lto_output_ts_function_decl_tree_pointers): Likewise.
13613 (lto_output_ts_type_common_tree_pointers): Likewise.
13614 (lto_output_ts_type_non_common_tree_pointers): Likewise.
13615 (lto_output_ts_list_tree_pointers): Likewise.
13616 (lto_output_ts_vec_tree_pointers): Likewise.
13617 (lto_output_ts_exp_tree_pointers): Likewise.
13618 (lto_output_ts_block_tree_pointers): Likewise.
13619 (lto_output_ts_binfo_tree_pointers): Likewise.
13620 (lto_output_ts_constructor_tree_pointers): Likewise.
13621 (lto_output_ts_target_option): Likewise.
13622 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
13623 (lto_output_tree_pointers): Likewise.
13624 (lto_output_tree_header): Likewise.
13625 (lto_output_builtin_tree): Likewise.
13626 (lto_write_tree): Likewise.
13627 (lto_output_integer_cst): Likewise.
13628 (lto_output_tree): Likewise.
13629 (output_phi): Move to gimple-streamer-out.c.
13630 (output_gimple_stmt): Likewise.
13631 (output_bb): Likewise.
13632 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
13633 (streamer_hooks): Move to streamer-hooks.c.
13634 (check_handled_ts_structures): Move to tree-streamer.c
13635 (lto_streamer_cache_add_to_node_array): Likewise.
13636 (lto_streamer_cache_insert_1): Likewise.
13637 (lto_streamer_cache_insert): Likewise.
13638 (lto_streamer_cache_insert_at): Likewise.
13639 (lto_streamer_cache_append): Likewise.
13640 (lto_streamer_cache_lookup): Likewise.
13641 (lto_streamer_cache_get): Likewise.
13642 (lto_record_common_node): Likewise.
13643 (lto_preload_common_nodes): Likewise.
13644 (lto_streamer_cache_create): Likewise.
13645 (lto_streamer_cache_delete): Likewise.
13646 (streamer_hooks_init): Move to streamer-hooks.c.
13647 * lto-streamer.h: Include diagnostic.h
13648 (struct output_block, struct lto_input_block,
13649 struct data_in, struct bitpack_d): Remove forward declarations.
13650 (struct bitpack_d): Move to data-streamer.h.
13651 (struct lto_streamer_cache_d): Move to tree-streamer.h.
13652 (struct streamer_hooks): Move to streamer-hooks.h.
13653 (bp_pack_var_len_unsigned): Move to data-streamer.h.
13654 (bp_pack_var_len_int): Likewise.
13655 (bp_unpack_var_len_unsigned): Likewise.
13656 (bp_unpack_var_len_int): Likewise.
13657 (lto_input_location): Declare.
13658 (lto_tag_check_set): Declare.
13659 (lto_init_eh): Declare.
13660 (lto_output_tree_ref): Declare.
13661 (lto_output_location): Declare.
13662 (bitpack_create): Move to data-streamer.h.
13663 (bp_pack_value): Likewise.
13664 (lto_output_bitpack): Likewise.
13665 (lto_input_bitpack): Likewise.
13666 (bp_unpack_value): Likewise.
13667 (lto_output_1_stream): Likewise.
13668 (lto_input_1_unsigned): Likewise.
13669 (lto_output_int_in_range): Likewise.
13670 (lto_input_int_in_range): Likewise.
13671 (bp_pack_int_in_range): Likewise.
13672 (bp_unpack_int_in_range): Likewise.
13673 (lto_output_enum): Likewise.
13674 (lto_input_enum): Likewise.
13675 (bp_pack_enum): Likewise.
13676 (bp_unpack_enum): Likewise.
13677 * streamer-hooks.c: New.
13678 * streamer-hooks.h: New.
13679 * tree-streamer-in.c: New.
13680 * tree-streamer-out.c: New.
13681 * tree-streamer.c: New.
13682 * tree-streamer.h: New.
13683
13684 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13685
13686 * gthr-posix95.h: Remove.
13687 * gthr.h [_PTHREADS95]: Remove.
13688 * configure.ac (enable_threads): Remove posix95.
13689 * configure: Regenerate.
13690 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
13691
13692 2011-08-08 Uros Bizjak <ubizjak@gmail.com>
13693
13694 PR target/49781
13695 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
13696 SImode addresses.
13697 (ix86_print_operand_address): Handle zero-extended addresses.
13698 (memory_address_length): Add length of addr32 prefix for
13699 zero-extended addresses.
13700 (ix86_secondary_reload): Handle moves to/from double-word general
13701 registers from/to zero-extended addresses.
13702 * config/i386/predicates.md (lea_address_operand): Reject
13703 zero-extended operands.
13704
13705 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
13706
13707 PR other/48007
13708 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
13709
13710 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
13711 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
13712
13713 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
13714 (_Unwind_Context_Reg_Val): Likewise.
13715 (_Unwind_Get_Unwind_Word): Likewise.
13716 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
13717 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
13718 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
13719 for EXTENDED_CONTEXT_BIT.
13720 (__frame_state_for): Likewise.
13721 (uw_init_context_1): Likewise.
13722 (_Unwind_GetGR): Updated.
13723 (_Unwind_SetGR): Likewise.
13724 (_Unwind_GetGRPtr): Likewise.
13725 (_Unwind_SetGRPtr): Likewise.
13726 (_Unwind_SetGRValue): Likewise.
13727 (_Unwind_GRByValue): Likewise.
13728 (uw_install_context_1): Likewise.
13729
13730 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
13731 ASSUME_EXTENDED_UNWIND_CONTEXT.
13732 * doc/tm.texi: Regenerated.
13733
13734 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13735
13736 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
13737
13738 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13739
13740 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
13741 Linux/GNU-specific.
13742 (DEC Alpha Options, -mtune): Likewise.
13743 (MIPS Options, -march): native is supported on IRIX.
13744
13745 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13746
13747 * config/sparc/driver-sparc.c: New file.
13748 * config/sparc/x-sparc: New file.
13749 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
13750 * config/sparc/sparc.opt (native): New value for enum processor_type.
13751 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
13752 * config/sparc/sparc.c (sparc_option_override): Abort if
13753 PROCESSOR_NATIVE gets here.
13754 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
13755 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
13756 DRIVER_SELF_SPECS): Define.
13757 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
13758 (SPARC Options, -mtune): Likewise.
13759 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
13760 Substitute result.
13761 * configure: Regenerate.
13762 * Makefile.in (EXTRA_GCC_LIBS): Set.
13763 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
13764 (cpp$(exeext)): Likewise.
13765
13766 2011-08-08 Richard Guenther <rguenther@suse.de>
13767
13768 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
13769 split out from ...
13770 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
13771 by composition.
13772
13773 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
13774
13775 PR tree-optimization/50005
13776 * ipa-inline-analysis (remap_predicate): Add cast to
13777 silence signed/unsigned comparison warning.
13778
13779 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
13780
13781 * modulo-sched.c (get_sched_window): Use a table for the debug output.
13782 Print the current ii.
13783 (sms_schedule_by_order): Reduce whitespace in dump line.
13784
13785 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
13786
13787 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
13788 and one loop for successors. Fix upper bound of memory range.
13789
13790 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
13791
13792 PR target/50001
13793 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
13794 (TARGET_INSTANTIATE_DECLS): New define.
13795
13796 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
13797 Mikael Morin <mikael.morin@sfr.fr>
13798
13799 * Makefile.in (INCLUDES_FOR_TARGET): New.
13800 (LIBGCC2_CFLAGS): Use it.
13801 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
13802
13803 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
13804
13805 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
13806 frame->save_regs_using_mov calculation.
13807
13808 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
13809
13810 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
13811 * config/i386/sse.md (castmode): New mode attribute.
13812 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
13813 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
13814
13815 2011-08-05 Jan Hubicka <jh@suse.cz>
13816
13817 PR middle-end/49494
13818 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
13819
13820 2011-08-05 Jan Hubicka <jh@suse.cz>
13821
13822 PR middle-end/49500
13823 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
13824 handle aliases.
13825 (create_emultls_var):New function.
13826 (ipa_lower_emutls): Handle aliases correctly.
13827
13828 2011-08-05 Jan Hubicka <jh@suse.cz>
13829
13830 PR middle-end/49735
13831 * ipa-inline.c (recursive_inlining): Look through aliases.
13832
13833 2011-08-05 Jason Merrill <jason@redhat.com>
13834
13835 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
13836 declarations to beginning of function.
13837
13838 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
13839
13840 PR rtl-optimization/49900
13841 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
13842 ensure basic blocks stay in the same order.
13843
13844 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
13845
13846 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
13847 store_bit_field.
13848 (s390_expand_atomic): Same.
13849
13850 2011-08-05 Richard Henderson <rth@redhat.com>
13851
13852 PR rtl-opt/49977
13853 * dwarf2cfi.c (scan_insn_after): Split out of ...
13854 (scan_trace): ... here. Correctly place notes wrt sequences.
13855
13856 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
13857 Richard Henderson <rth@redhat.com>
13858
13859 PR rtl-opt/49982
13860 * expr.c (fixup_args_size_notes): Look through no-op moves.
13861
13862 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
13863
13864 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
13865 of "m" for operand 0. Add type and mode attribute.
13866 (*pushxf_nointeger"): Use "<" constraint for operand 0.
13867 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
13868 constraint instead of "o" for opreand 1.
13869 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
13870 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
13871 operand 0, alternative 4.
13872 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
13873
13874 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
13875
13876 * config/i386/predicates.md (lea_address_operand): Rename from
13877 no_seg_address_operand.
13878 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
13879 (*lea_1_zext): Ditto.
13880 (*lea_2): Ditto.
13881 (*lea_2_zext): Ditto.
13882
13883 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
13884
13885 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
13886 parts.base and parts.index.
13887 * config/i386/predicates.md (aligned_operand): Ditto.
13888 (cmpxchg8b_pic_memory_operand): Ditto.
13889
13890 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13891
13892 * config/soft-fp: Move to ../libgcc.
13893 * Makefile.in (SFP_MACHINE): Remove.
13894 (libgcc-support): Remove $(SFP_MACHINE) dependency.
13895 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
13896 * config/arm/t-arm-softfp: Move to
13897 ../libgcc/config/arm/t-softfp.
13898 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
13899 * config/c6x/t-c6x-softfp: Remove.
13900 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
13901 * config/i386/t-fprules-softfp: Move to
13902 ../libgcc/config/t-softfp-tf.
13903 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
13904 * config/ia64/t-fprules-softfp: Remove.
13905 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
13906 * config/lm32/t-fprules-softfp: Remove.
13907 * config/moxie/sfp-machine.h: Remove.
13908 * config/moxie/t-moxie-softfp: Remove.
13909 * config/rs6000/darwin-ldouble-format: Move to
13910 ../libgcc/config/rs6000/ibm-ldouble-format.
13911 * config/rs6000/darwin-ldouble.c: Move to
13912 ../libgcc/config/rs6000/ibm-ldouble.c
13913 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
13914 * config/rs6000/libgcc-ppc64.ver: Likewise.
13915 * config/rs6000/sfp-machine.h: Likewise.
13916 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
13917 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
13918 (LIB2FUNCS_EXTRA): Remove.
13919 (TARGET_LIBGCC2_CFLAGS): Remove.
13920 * config/rs6000/t-aix52: Likewise
13921 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
13922 $(srcdir)/config/rs6000/darwin-ldouble.c.
13923 (SHLIB_MAPFILES): Remove.
13924 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
13925 $(srcdir)/config/rs6000/darwin-ldouble.c.
13926 * config/rs6000/t-fprules-softfp: Move to
13927 ../libgcc/config/t-softfp-sfdf.
13928 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
13929 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
13930 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
13931 $(srcdir)/config/rs6000/darwin-ldouble.c.
13932 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
13933 * config/score/t-score-softfp: Remove.
13934 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
13935 soft-fp/t-softfp from tmake_file.
13936 (arm*-*-uclinux*): Likewise.
13937 (arm*-*-ecos-elf): Likewise.
13938 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
13939 (arm*-*-rtems*): Likewise.
13940 (arm*-*-elf): Likewise.
13941 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
13942 tmake_file.
13943 (moxie-*-uclinux*): Likewise.
13944 (moxie-*-rtems*): Likewise.
13945 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
13946 tmake_file.
13947 (lm32-*-rtems*): Likewise.
13948 (lm32-*-uclinux*): Likewise.
13949 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
13950 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
13951 (powerpc-*-linux*, powerpc64-*-linux*): Remove
13952 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
13953 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
13954 tmake_file.
13955 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
13956 tmake_file.
13957 (tic6x-*-uclinux): Likewise.
13958 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
13959 soft-fp/t-softfp from tmake_file.
13960 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
13961 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
13962 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
13963 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
13964 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
13965
13966 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13967
13968 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
13969 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
13970 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
13971 TPBIT, TPBIT_FUNCS.
13972 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
13973 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
13974 Remove.
13975 * config/arm/t-vxworks: Likewise.
13976 * config/arm/t-wince-pe: Likewise.
13977 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
13978 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
13979 * config/bfin/t-bfin-elf: Likewise.
13980 * config/bfin/t-bfin-linux: Likewise.
13981 * config/bfin/t-bfin-uclinux: Likewise.
13982 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
13983 Remove.
13984 * config/fr30/t-fr30: Likewise.
13985 * config/frv/t-frv: Likewise.
13986 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
13987 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
13988 * config/m32c/t-m32c: Likewise.
13989 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
13990 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
13991 * config/mcore/t-mcore: Likewise.
13992 * config/mep/t-mep: Likewise.
13993 * config/microblaze/t-microblaze: Likewise.
13994 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
13995 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
13996 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
13997 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
13998 * config/mn10300/t-linux: Remove.
13999 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14000 * config/pdp11/t-pdp11: Likewise.
14001 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
14002 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
14003 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14004 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
14005 * config/rs6000/t-aix52: Likewise.
14006 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
14007 $(srcdir)/config/rs6000/ppc64-fp.c.
14008 * config/rs6000/t-fprules-fpbit: Remove.
14009 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
14010 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14011 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
14012 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14013 * config/sparc/t-elf: Likewise.
14014 * config/sparc/t-leon: Likewise.
14015 * config/sparc/t-leon3: Likewise.
14016 * config/spu/t-spu-elf: Likewise.
14017 (DPBIT_FUNCS): Remove.
14018 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
14019 * config/v850/t-v850: Likewise.
14020 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
14021 (avr-*-*): Likewise.
14022 (h8300-*-rtems*): Set libgcc_tm_file.
14023 (h8300-*-elf*): Likewise.
14024 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
14025 tmake_file.
14026 (powerpc-*-eabisim*): Likewise.
14027 (powerpc-*-elf*): Likewise.
14028 (powerpc-*-eabialtivec*): Likewise.
14029 (powerpc-xilinx-eabi*): Likewise.
14030 (powerpc-*-eabi*): Likewise.
14031 (powerpc-*-rtems*): Likewise.
14032 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
14033 (powerpcle-*-elf*): Likewise.
14034 (powerpcle-*-eabisim*): Likewise.
14035 (powerpcle-*-eabi*): Likewise.
14036 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
14037 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
14038 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
14039 Remove.
14040
14041 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14042
14043 * Makefile.in (UNWIND_H): Remove.
14044 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
14045 ../libgcc/Makefile.in.
14046 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
14047 (LIBUNWINDDEP): Remove.
14048 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
14049 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
14050 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
14051 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
14052 Don't copy $(UNWIND_H).
14053 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
14054 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
14055 * aclocal.m4: Regenerate.
14056 * configure: Regenerate.
14057 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
14058 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
14059 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
14060 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
14061 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
14062 * config/arm/libunwind.S, config/arm/pr-support.c,
14063 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
14064 ../libgcc/config/arm.
14065 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
14066 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
14067 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
14068 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
14069 ($(T)frvend$(objext)): Likewise.
14070 * config/ia64/t-glibc (LIB2ADDEH): Remove.
14071 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
14072 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
14073 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
14074 ../libgcc/config/ia64.
14075 * config/ia64/t-hpux (LIB2ADDEH): Remove.
14076 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
14077 * config/ia64/t-vms (LIB2ADDEH): Remove.
14078 * config/ia64/vms.h (UNW_IVMS_MODE,
14079 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
14080 * config/picochip/t-picochip (LIB2ADDEH): Remove.
14081 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
14082 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
14083 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
14084 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
14085 $(srcdir)/../libgcc to refer to unwinder sources.
14086 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
14087 * config/t-darwin (LIB2ADDEH): Remove.
14088 * config/t-freebsd (LIB2ADDEH): Remove.
14089 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
14090 * config/t-libunwind-elf: Move to ../libgcc/config.
14091 * config/t-linux (LIB2ADDEH): Remove.
14092 * config/t-sol2 (LIB2ADDEH): Remove.
14093 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
14094 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
14095
14096 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
14097
14098 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
14099
14100 * doc/invoke.texi: Document core-avx-i.
14101
14102 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14103
14104 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
14105
14106 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
14107
14108 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
14109 result of multiple results reduction when extracting the final
14110 value using scalar code.
14111
14112 2011-08-05 Richard Guenther <rguenther@suse.de>
14113
14114 PR tree-optimization/49984
14115 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
14116
14117 2011-08-05 Richard Guenther <rguenther@suse.de>
14118
14119 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
14120 return true for constant integer ranges.
14121 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
14122 BIT_IOR_EXPR handling.
14123
14124 2011-08-04 Kai Tietz <ktietz@redhat.com>
14125
14126 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
14127 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
14128
14129 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
14130
14131 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
14132 pattern def statement, and its access macro.
14133 (NUM_PATTERNS): Set to 5.
14134 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
14135 pattern def statement.
14136 (vect_transform_loop): Likewise.
14137 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
14138 function vect_recog_over_widening_pattern ().
14139 (vect_operation_fits_smaller_type): New function.
14140 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
14141 Likewise.
14142 (vect_pattern_recog_1): Move the code that marks pattern
14143 statements to vect_mark_pattern_stmts (), and call it. Update
14144 documentation.
14145 * tree-vect-stmts.c (vect_supportable_shift): New function.
14146 (vect_analyze_stmt): Handle pattern def statement.
14147 (new_stmt_vec_info): Initialize pattern def statement.
14148
14149 2011-08-04 Richard Henderson <rth@redhat.com>
14150
14151 PR target/49964
14152 * config/i386/i386.c (ix86_expand_call): Don't create nested
14153 PARALLELs for TARGET_VZEROUPPER.
14154 (ix86_split_call_vzeroupper): Fix extraction of the original call.
14155 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
14156 recognize nested PARALLELs.
14157 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
14158 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
14159 *sibcall_value_pop_vzeroupper): Likewise.
14160
14161 2011-08-04 Richard Henderson <rth@redhat.com>
14162
14163 PR middle-end/49968
14164 * calls.c (expand_call): Use fixup_args_size_notes for
14165 emit_stack_restore.
14166 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
14167 in non-standard modes.
14168
14169 2011-08-04 Jakub Jelinek <jakub@redhat.com>
14170
14171 * gcc.c (self_spec): New variable.
14172 (static_specs): Add self_spec.
14173 (main): Call do_self_spec on "self_spec" specs after reading
14174 user specs files. Move compare_debug handling right after that.
14175
14176 2011-08-04 Richard Guenther <rguenther@suse.de>
14177
14178 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
14179 (value_range_nonnegative_p): New function.
14180 (ssa_name_nonnegative_p): Use it.
14181 (value_range_constant_singleton): New function.
14182 (op_with_constant_singleton_value_range): Use it.
14183 (extract_range_from_binary_expr_1): New function, split out from ...
14184 (extract_range_from_binary_expr): ... this. Remove fallback
14185 constant folding done here.
14186
14187 2011-08-04 Richard Guenther <rguenther@suse.de>
14188
14189 PR tree-optimization/49806
14190 * tree-vrp.c (op_with_boolean_value_range_p): New function.
14191 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
14192 a new statement for a final conversion to bool.
14193
14194 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
14195
14196 * gengtype-state.c: Include "bconfig.h" if
14197 GENERATOR_FILE is defined, "config.h" otherwise.
14198 * gengtype.c: Likewise.
14199 * gengtype-lex.l: Likewise.
14200 * gengtype-parse.c: Likewise.
14201 * Makefile.in (gengtype-lex.o-warn): New variable.
14202 (plugin_resourcesdir): Likewise.
14203 (plugin_bindir): Likewise.
14204 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
14205 (MOSTLYCLEANFILES): Add gengtype$(exeext).
14206 (native): Depend on gengtype$(exeext) is $enable_plugin
14207 is set to "yes".
14208 (gtype.state): Depend on s-gtype. Use temporary file.
14209 (gengtype-lex.o): New rule.
14210 (gengtype-parse.o): Likewise.
14211 (gengtype-state.o): Likewise.
14212 (gengtype$(exeext)): Likewise.
14213 (install-gengtype): Likewise.
14214 (gengtype.o): Likewise.
14215 (build/gengtype.o): Depend on version.h.
14216 (build/gengtype-state): Depend on double-int.h, version.h,
14217 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
14218 (install-plugin): Depend on install-gengtype.
14219
14220 2011-08-04 Jakub Jelinek <jakub@redhat.com>
14221
14222 PR middle-end/49905
14223 * tree.h (init_attributes): New prototype.
14224 * attribs.c (init_attributes): No longer static.
14225
14226 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14227
14228 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
14229 maybe_suffix.
14230
14231 2011-08-03 David Li <davidxl@google.com>
14232
14233 * tree-optimize.c (execute_fixup_cfg): Fix up entry
14234 outgoing edge counts after inlining.
14235
14236 2011-08-03 David Li <davidxl@google.com>
14237
14238 * profile.c (compute_branch_probabilities): Compute
14239 function frequency after profile annotation.
14240
14241 2011-08-04 Alan Modra <amodra@gmail.com>
14242
14243 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
14244 use_backchain_to_restore_sp initialisation.
14245 (rs6000_legitimate_offset_address_p): Simplify offset test.
14246
14247 2011-08-03 Richard Henderson <rth@redhat.com>
14248
14249 * config/spu/spu.md: Use define_c_enum instead of define_constants.
14250 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
14251 (UNSPECV_NOP): New.
14252
14253 2011-08-03 Richard Henderson <rth@redhat.com>
14254
14255 PR target/34888
14256 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
14257
14258 2011-08-03 Jakub Jelinek <jakub@redhat.com>
14259
14260 PR tree-optimization/49948
14261 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
14262
14263 2011-08-03 Anatoly Sokolov <aesok@post.ru>
14264
14265 * config/m32c/m32c.c (class_sizes): Remove.
14266 (reduce_class): Change arguments and return type to reg_class_t.
14267 Change type cc var to HARD_REG_SET. Change type best var to
14268 reg_class_t. Change type best_size var to unsigned int. Remove
14269 initialization class_sizes var. Use reg_class_size array instead
14270 of class_sizes. Use reg_class_contents array instead
14271 of class_contents.
14272
14273 2011-08-03 Richard Guenther <rguenther@suse.de>
14274
14275 PR middle-end/49958
14276 * fold-const.c (fold_binary_loc): Only associate
14277 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
14278 overflow wraps.
14279
14280 2011-08-03 Alan Modra <amodra@gmail.com>
14281
14282 PR rtl-optimization/49941
14283 * jump.c (mark_jump_label): Comment.
14284 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
14285 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
14286 (mark_used_flags): Don't mark RETURN.
14287
14288 2011-08-03 Richard Guenther <rguenther@suse.de>
14289
14290 PR tree-optimization/49938
14291 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
14292 deal with a POLYNOMIAL_CHREC.
14293
14294 2011-08-03 Revital Eres <revital.eres@linaro.org>
14295
14296 * modulo-sched.c (calculate_stage_count,
14297 calculate_must_precede_follow, get_sched_window,
14298 try_scheduling_node_in_cycle, remove_node_from_ps): Add
14299 declaration.
14300 (update_node_sched_params, set_must_precede_follow, optimize_sc):
14301 New functions.
14302 (reset_sched_times): Call update_node_sched_params.
14303 (sms_schedule): Call optimize_sc.
14304 (get_sched_window): Change function arguments.
14305 (sms_schedule_by_order): Update call to get_sched_window.
14306 Call set_must_precede_follow.
14307 (calculate_stage_count): Add function argument.
14308
14309 2011-08-02 Richard Henderson <rth@redhat.com>
14310
14311 PR target/49864
14312 PR target/49879
14313 * reg-notes.def (REG_ARGS_SIZE): New.
14314 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
14315 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
14316 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
14317 different stack levels.
14318 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
14319 (maybe_move_args_size_note): New.
14320 (combine_stack_adjustments_for_block): Use it.
14321 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
14322 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
14323 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
14324 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
14325 (cur_cfa): New.
14326 (queued_args_size): Remove.
14327 (add_cfi_args_size): Assert size is non-negative.
14328 (stack_adjust_offset, dwarf2out_args_size): Remove.
14329 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
14330 (notice_args_size, notice_eh_throw): New.
14331 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
14332 (dwarf2out_frame_debug_adjust_cfa): Likewise.
14333 (dwarf2out_frame_debug_cfa_offset): Likewise.
14334 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
14335 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
14336 (change_cfi_row): Don't emit args_size.
14337 (maybe_record_trace_start_abnormal): Split out from ...
14338 (maybe_record_trace_start): Here. Set args_size_undefined.
14339 (create_trace_edges): Update to match.
14340 (scan_trace): Handle REG_ARGS_SIZE.
14341 (connect_traces): Connect args_size between EH insns.
14342 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
14343 * explow.c (suppress_reg_args_size): New.
14344 (adjust_stack_1): Split out from ...
14345 (adjust_stack): ... here.
14346 (anti_adjust_stack): Use it.
14347 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
14348 * expr.c (mem_autoinc_base): New.
14349 (fixup_args_size_notes): New.
14350 (emit_single_push_insn_1): Rename from emit_single_push_insn.
14351 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
14352 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
14353 * reload1.c (reload_as_needed): Likewise.
14354 * rtl.h (fixup_args_size_notes): Declare.
14355
14356 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
14357
14358 PR bootstrap/49914
14359 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
14360 of abs.
14361 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
14362 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
14363
14364 2011-08-02 Richard Henderson <rth@redhat.com>
14365
14366 * config/h8300/h8300.c (push, pop): Return the insn.
14367 (h8300_swap_into_er6): Generate correct unwind info.
14368 (h8300_swap_out_of_er6): Likewise.
14369 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
14370 complex cfa expression.
14371 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
14372
14373 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
14374
14375 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
14376
14377 2011-08-02 Richard Henderson <rth@redhat.com>
14378
14379 PR target/49878
14380 * config/h8300/h8300.c (h8300_move_ok): New.
14381 * config/h8300/h8300-protos.h: Declare it.
14382 * config/h8300/h8300.md (P): New mode iterator.
14383 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
14384 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
14385 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
14386 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
14387 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
14388 and pushqi1_h8300hs_normal; use PRE_MODIFY and
14389 register_no_sp_elim_operand.
14390 (*pushhi1_h8300hs_<P>): Similarly.
14391 (pushqi1, pushhi1, pushhi1_h8300): Remove.
14392 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
14393
14394 2011-08-02 Richard Henderson <rth@redhat.com>
14395
14396 PR target/49881
14397 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
14398
14399 2011-08-02 Jakub Jelinek <jakub@redhat.com>
14400
14401 * c-parser.c (enum c_parser_prec): New enum, moved from within
14402 c_parser_binary_expression.
14403 (c_parser_binary_expression): Add PREC argument. Stop parsing
14404 if operator has lower or equal precedence than PREC.
14405 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
14406 callers.
14407 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
14408 Adjust c_finish_omp_atomic caller.
14409 (c_parser_omp_taskyield): New function.
14410 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
14411 (c_parser_omp_clause_name): Handle final and mergeable clauses.
14412 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
14413 functions.
14414 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
14415 and PRAGMA_OMP_CLAUSE_MERGEABLE.
14416 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
14417 (c_parser_omp_clause_reduction): Handle min and max.
14418 * c-typeck.c (c_finish_omp_clauses): Don't complain about
14419 const qualified predetermined vars in firstprivate clause.
14420 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
14421 Handle MIN_EXPR and MAX_EXPR.
14422 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
14423 and OMP_CLAUSE_MERGEABLE.
14424 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
14425 and OMP_ATOMIC_CAPTURE_NEW.
14426 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
14427 OMP_CLAUSE_MERGEABLE.
14428 (omp_clause_code_name): Likewise.
14429 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
14430 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
14431 and OMP_CLAUSE_MERGEABLE.
14432 (OMP_CLAUSE_FINAL_EXPR): Define.
14433 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
14434 OMP_CLAUSE_MERGEABLE.
14435 (expand_task_call): Likewise.
14436 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
14437 (expand_omp_atomic_fetch_op): Handle cases where old or new
14438 value is needed afterwards.
14439 (expand_omp_atomic): Call expand_omp_atomic_load resp.
14440 expand_omp_atomic_store.
14441 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
14442 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
14443 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
14444 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
14445 * tree-nested.c (convert_nonlocal_omp_clauses,
14446 convert_local_omp_clauses): Likewise.
14447 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
14448 OMP_ATOMIC_CAPTURE_NEW): New.
14449 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
14450 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
14451 New inlines.
14452 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
14453 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
14454 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
14455
14456 2011-08-02 Kai Tietz <ktietz@redhat.com>
14457
14458 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
14459 boolean-type.
14460 (ssa_forward_propagate_and_combine): Interprete result of
14461 forward_propagate_comparison.
14462 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
14463 boolean-typed operands for comparisons.
14464
14465 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
14466
14467 * config/avr/libgcc.S: Gather related function in the
14468 same input section.
14469 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
14470 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
14471 references.
14472 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
14473 __udivmodsi4, __divmodsi4, __prologue_saves__,
14474 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
14475 __do_copy_data, __do_clear_bss, __do_global_ctors,
14476 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
14477
14478 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
14479
14480 PR target/47766
14481 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
14482 (stack_protect_test): The pattern compares ptr_mode value.
14483
14484 2011-08-02 Alan Modra <amodra@gmail.com>
14485
14486 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
14487 note for save_LR_around_toc_setup sequence.
14488
14489 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
14490
14491 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
14492
14493 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
14494 Joseph Myers <joseph@codesourcery.com>
14495
14496 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
14497 * hwint.c: Include diagnostic-core.h.
14498 (abs_hwi): New.
14499 (gcd): Moved here...
14500 (pos_mul_hwi): New.
14501 (mul_hwi): New.
14502 (least_common_multiple): Moved here...
14503 * hwint.h (gcd): ... from here.
14504 (least_common_multiple): ... from here.
14505 (HOST_WIDE_INT_MIN): New.
14506 (HOST_WIDE_INT_MAX): New.
14507 (abs_hwi): Declared.
14508 (gcd): Declared.
14509 (pos_mul_hwi): Declared.
14510 (mul_hwi): Declared.
14511 (least_common_multiple): Declared.
14512 * omega.c (check_pos_mul): Removed.
14513 (check_mul): Removed.
14514 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
14515 mul_hwi instead of check_mul.
14516
14517 2011-08-01 Richard Henderson <rth@redhat.com>
14518
14519 PR target/49881
14520 * config/avr/avr.h (PUSH_ROUNDING): New.
14521 * config/avr/avr.md (pushqi1): Rename from *pushqi.
14522 (*pushhi, *pushsi, *pushsf): Remove.
14523 (MPUSH): New mode iterator.
14524 (push<MPUSH>1): New expander.
14525
14526 2011-08-01 Anatoly Sokolov <aesok@post.ru>
14527
14528 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
14529 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
14530 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
14531 mmix_preferred_output_reload_class): Remove.
14532 * config/mmix/mmix.c (mmix_preferred_reload_class,
14533 mmix_preferred_output_reload_class): Make static. Change rclass
14534 argument and return type to reg_class_t.
14535 (TARGET_PREFERRED_RELOAD_CLASS,
14536 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
14537
14538 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
14539
14540 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
14541 handling.
14542
14543 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
14544
14545 PR target/47766
14546 * config/i386/i386.md (PTR): New.
14547 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
14548 (stack_protect_test): Likewise.
14549 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
14550 (stack_tls_protect_set_<mode>): Likewise.
14551 (stack_tls_protect_test_<mode>): Likewise.
14552
14553 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
14554
14555 PR target/49927
14556 * config/i386/i386.c (ix86_address_subreg_operand): New.
14557 (ix86_decompose_address): Use ix86_address_subreg_operand.
14558 (ix86_legitimate_address_p): Do not assert that subregs satisfy
14559 register_no_elim_operand in DImode.
14560
14561 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
14562
14563 PR tree-optimization/49926
14564 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
14565 in a chain doesn't have uses both inside and outside the loop.
14566
14567 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
14568
14569 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
14570 * config/avr/avr-devices.c (avr_mcu_types): Use it.
14571 * config/avr/avr-mcus.def (AVR_MCU): Use it.
14572 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
14573 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
14574 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
14575 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
14576 to detect if XJMP must not be skipped.
14577
14578 2011-08-02 Alan Modra <amodra@gmail.com>
14579
14580 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
14581 Delete.
14582 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
14583 (rs6000_emit_prologue): Don't prematurely return when
14584 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
14585 save_toc_in_prologue case.
14586 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
14587 calls_alloca.
14588
14589 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
14590
14591 * config/avr/avr-devices.c: Delete SVN property svn:executable.
14592 * config/avr/predicates.md: Ditto.
14593 * config/avr/driver-avr.c: Ditto.
14594 * config/avr/genopt.sh: Set SVN property svn:executable to *.
14595
14596 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
14597
14598 * calls.c (emit_library_call_value_1): Declare size only if
14599 BLOCK_REG_PADDING is defined.
14600
14601 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
14602
14603 PR target/49547
14604 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
14605 (x86_64-*-*): Likewise.
14606 * config/i386/i386.opt (mlzcnt): New.
14607 * config/i386/abmintrin.h: File removed.
14608 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
14609 * config/i386/lzcntintrin.h: ... here. New file.
14610 (__lzcnt): Rename to ...
14611 (__lzcnt32): ... this.
14612 * config/i386/bmiintrin.h (head): Update copyright year.
14613 (__lzcnt_u16): Removed.
14614 (__lzcnt_u32): Likewise.
14615 (__lzcnt_u64): Likewise.
14616 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
14617 is defined, remove abmintrin.h.
14618 * config/i386/cpuid.h (bit_LZCNT): New.
14619 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
14620 LZCNT feature.
14621 * config/i386/i386-c.c (ix86_target_macros_internal): Define
14622 __LZCNT__ if needed.
14623 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
14624 (ix86_option_override_internal): Handle LZCNT option.
14625 (ix86_valid_target_attribute_inner_p): Likewise.
14626 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
14627 * config/i386/i386.h (TARGET_LZCNT): New.
14628 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
14629 * config/i386/i386.md (clz<mode>2): Update insn constraint.
14630 (clz<mode>2_lzcnt): Likewise.
14631 * doc/invoke.texi: Mention -mlzcnt option.
14632 * doc/extend.texi: Likewise.
14633
14634 2011-08-01 Julian Brown <julian@codesourcery.com>
14635
14636 * configure.ac (fixed-point): Add ARM support.
14637 * configure: Regenerate.
14638 * config/arm/arm.c (arm_fixed_mode_set): New struct.
14639 (arm_set_fixed_optab_libfunc): New.
14640 (arm_set_fixed_conv_libfunc): New.
14641 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
14642 ARM-specific names.
14643 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
14644 return values in SImode.
14645 (arm_return_in_msb): Return fixed-point types in the msb.
14646 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
14647 upwards.
14648 (arm_scalar_mode_supported_p): Support fixed-point modes.
14649 (arm_vector_mode_supported_p): Support vector fixed-point modes.
14650 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
14651 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
14652 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
14653 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
14654 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
14655 New mode iterators.
14656 (qaddsub_suf): New mode attribute.
14657 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
14658 vector modes.
14659 * config/arm/predicates.md (sat_shift_operator): New predicate.
14660 * config/arm/arm-fixed.md: New.
14661 * config/arm/arm.md: Include arm-fixed.md.
14662 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
14663
14664 2011-08-01 Julian Brown <julian@codesourcery.com>
14665
14666 * calls.c (emit_library_call_value_1): Support padding for libcall
14667 arguments and return values.
14668 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
14669 downwards in big-endian mode.
14670
14671 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14672
14673 PR debug/49887
14674 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
14675 * config/sol2-protos.h: Likewise.
14676 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
14677 solaris_code_end.
14678 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
14679 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
14680 solaris_file_end.
14681 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
14682
14683 2011-08-01 Julian Brown <julian@codesourcery.com>
14684
14685 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
14686
14687 2011-08-01 Julian Brown <julian@codesourcery.com>
14688
14689 * final.c (output_addr_const): Print fixed-point constants as
14690 decimal not hex.
14691
14692 2011-08-01 Richard Guenther <rguenther@suse.de>
14693
14694 * stor-layout.c (initialize_sizetypes): Properly sign-extend
14695 bitsiztype TYPE_MAX_VALUE.
14696
14697 2011-08-01 Julian Brown <julian@codesourcery.com>
14698
14699 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
14700 comparison helpers.
14701
14702 2011-07-31 Richard Henderson <rth@redhat.com>
14703
14704 * config/h8300/crti.asm: Add flags to .section directive.
14705 * config/h8300/crtn.asm: Likewise.
14706
14707 2011-07-31 Richard Henderson <rth@redhat.com>
14708
14709 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
14710 * tree.c (build_common_tree_nodes): Likewise.
14711
14712 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
14713
14714 PR target/49880
14715 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
14716 (divsi3_i1): Likewise.
14717
14718 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14719
14720 PR tree-optimization/49749
14721 * tree-ssa-reassoc.c (get_rank): New forward declaration.
14722 (PHI_LOOP_BIAS): New macro.
14723 (phi_rank): New function.
14724 (loop_carried_phi): Likewise.
14725 (propagate_rank): Likewise.
14726 (get_rank): Add calls to phi_rank and propagate_rank.
14727
14728 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
14729
14730 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
14731 of TARGET_64BIT.
14732 (PTRDIFF_TYPE): Likewise.
14733
14734 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
14735
14736 PR target/49920
14737 * config/i386/i386.md (strset): Do not expand strset_singleop
14738 when %eax or $edi are fixed.
14739 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
14740 (*strsetsi_1): Ditto.
14741 (*strsethi_1): Ditto.
14742 (*strsetqi_1): Ditto.
14743 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
14744 (*rep_stossi): Ditto.
14745 (*rep_stosqi): Ditto.
14746 (*strlenqi_1): Ditto.
14747 (cmpstrnsi): Also fail when %ecx is fixed.
14748 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
14749 (*cmpstrnqi_1): Ditto.
14750 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
14751 (*strmovsi_1): Ditto.
14752 (*strmovhi_1): Ditto.
14753 (*strmovqi_1): Ditto.
14754 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
14755 (*rep_movsi): Ditto.
14756 (*rep_movqi): Ditto.
14757
14758 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
14759
14760 PR target/47908
14761 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
14762 Disable instruction scheduling for non-ColdFire targets.
14763 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
14764
14765 2011-07-31 Revital Eres <revital.eres@linaro.org>
14766
14767 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
14768 of anti-dep edge from a branch.
14769 (add_cross_iteration_register_deps): Create anti-dep edge from
14770 a branch.
14771
14772 2011-07-31 Revital Eres <revital.eres@linaro.org>
14773
14774 * modulo-sched.c: Change comment.
14775 (reset_sched_times): Fix print message.
14776 (print_partial_schedule): Add print info.
14777
14778 2011-07-31 Tom de Vries <tom@codesourcery.com>
14779
14780 PR middle-end/43513
14781 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
14782 get_object_alignment and TYPE_ALIGN.
14783
14784 2011-07-30 Tom de Vries <tom@codesourcery.com>
14785
14786 PR middle-end/43513
14787 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
14788 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
14789
14790 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14791
14792 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
14793 <sys/sbd.h>.
14794 (cpu_types): New array.
14795 (cputype): New function.
14796 (host_detect_local_cpu): Only define buf, f if !__sgi__.
14797 Use scaninvent instead of /proc/cpuinfo if __sgi__.
14798 * config.host: Also use driver-native.o, mips/x-native on
14799 mips-sgi-irix*.
14800 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
14801 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
14802 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
14803
14804 2011-07-29 Jakub Jelinek <jakub@redhat.com>
14805
14806 PR middle-end/49897
14807 PR middle-end/49898
14808 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
14809 in nested parallel and outer is a gimple_reg, mark it as addressable
14810 and set its bit in task_shared_vars bitmap too.
14811
14812 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
14813
14814 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
14815
14816 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14817
14818 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
14819 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
14820 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
14821 AMASK_LOCKPFTCHOK): Define.
14822 (host_detect_local_cpu): Remove buf, f, cpu_names.
14823 Define cpu_types, implver, amask.
14824 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
14825 native CPU.
14826 * config.host: Also use driver-alpha.o, alpha/x-alpha on
14827 alpha*-dec-osf*.
14828 * config/alpha/osf5.h [__alpha__ || __alpha]
14829 (host_detect_local_cpu): Declare.
14830 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
14831 (DRIVER_SELF_SPECS): Define.
14832
14833 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
14834
14835 PR target/47715
14836 * config/i386/i386.md (*load_tp_x32): New.
14837 (*load_tp_x32_zext): Ditto.
14838 (*add_tp_x32): Ditto.
14839 (*add_tp_x32_zext): Ditto.
14840 (*load_tp_<mode>): Disable for TARGET_X32 targets.
14841 (*add_tp_<mode>): Ditto.
14842 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
14843 ptr_mode and convert to Pmode if needed.
14844
14845 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
14846
14847 PR target/49687
14848 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
14849 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
14850 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
14851 Add X to register footprint: Clobber r26/r27.
14852
14853 2011-07-29 Richard Guenther <rguenther@suse.de>
14854
14855 * builtins.c (fold_builtin_signbit): Build the comparison
14856 with a proper type.
14857
14858 2011-07-29 Richard Guenther <rguenther@suse.de>
14859
14860 PR tree-optimization/49893
14861 * tree-predcom.c (suitable_reference_p): Volatile references
14862 are not suitable.
14863
14864 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
14865
14866 PR target/49313
14867 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
14868 (__ctzsi2): Result for 0 may be undefined.
14869 (__ctzhi2): Result for 0 may be undefined.
14870 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
14871 (__popcountsi2): Ditto. And don't clobber r26.
14872 (__popcountdi2): Ditto. And don't clobber r27.
14873 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
14874 (parityhi2): New expand.
14875 (paritysi2): New expand.
14876 (popcounthi2): New expand.
14877 (popcountsi2): New expand.
14878 (clzhi2): New expand.
14879 (clzsi2): New expand.
14880 (ctzhi2): New expand.
14881 (ctzsi2): New expand.
14882 (ffshi2): New expand.
14883 (ffssi2): New expand.
14884 (copysignsf3): New insn.
14885 (bswapsi2): New expand.
14886 (*parityhi2.libgcc): New insn.
14887 (*parityqihi2.libgcc): New insn.
14888 (*paritysihi2.libgcc): New insn.
14889 (*popcounthi2.libgcc): New insn.
14890 (*popcountsi2.libgcc): New insn.
14891 (*popcountqi2.libgcc): New insn.
14892 (*popcountqihi2.libgcc): New insn-and-split.
14893 (*clzhi2.libgcc): New insn.
14894 (*clzsihi2.libgcc): New insn.
14895 (*ctzhi2.libgcc): New insn.
14896 (*ctzsihi2.libgcc): New insn.
14897 (*ffshi2.libgcc): New insn.
14898 (*ffssihi2.libgcc): New insn.
14899 (*bswapsi2.libgcc): New insn.
14900
14901 2011-07-29 Richard Guenther <rguenther@suse.de>
14902
14903 * tree-vrp.c (get_value_range): Only set parameter default
14904 definitions to varying, leave others at undefined.
14905 (extract_range_from_binary_expr): Fix undefined handling.
14906 (vrp_visit_phi_node): Handle merged undefined state.
14907
14908 2011-07-29 Wei Guozhi <carrot@google.com>
14909
14910 PR rtl-optimization/49799
14911 * combine.c (make_compound_operation): Check if the bit field is valid
14912 before change it to bit field extraction.
14913
14914 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
14915
14916 PR rtl-optimization/49891
14917 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
14918 newly created returnjumps.
14919
14920 2011-07-28 DJ Delorie <dj@redhat.com>
14921
14922 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
14923 local frame in a naked function, and produce a suitable error for
14924 that specific case.
14925
14926 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
14927 registers to be reloaded in HI classes when the target is HI.
14928
14929 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
14930
14931 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
14932 bound_one, bound_two.
14933
14934 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
14935
14936 PR middle-end/48648
14937 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
14938 CLAST assignments.
14939 (translate_clast): Same.
14940 (translate_clast_assignment): New.
14941
14942 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
14943
14944 PR tree-optimization/49876
14945 * sese.c (rename_uses): Do not return false on gloog_error: set
14946 the new_expr to integer_zero_node and continue code generation.
14947 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
14948
14949 2011-07-28 Jakub Jelinek <jakub@redhat.com>
14950
14951 PR debug/49846
14952 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
14953 arguments also check if they aren't initialized with a MODE_INT
14954 mode of the same size.
14955
14956 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
14957
14958 * expr.c (get_bit_range): Handle *MEM_REF's.
14959
14960 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
14961
14962 * rtlanal.c (tablejump_p): False for returns.
14963 * reorg.c (first_active_target_insn): New static function.
14964 (find_end_label): Set JUMP_LABEL for a new returnjump.
14965 (optimize_skip, get_jump_flags, rare_destination,
14966 mostly_true_jump, get_branch_condition,
14967 steal_delay_list_from_target, own_thread_p,
14968 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
14969 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
14970 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
14971 * jump.c (delete_related_insns): Likewise.
14972 (jump_to_label_p): New function.
14973 (redirect_target): New static function.
14974 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
14975 (redirect_jump_1): Assert that the new label is nonnull.
14976 (redirect_jump): Likewise.
14977 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
14978 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
14979 exit block.
14980 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
14981 changed. Ensure that the right label is passed to redirect_jump.
14982 * function.c (emit_return_into_block,
14983 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
14984 ret_rtx in their JUMP_LABEL.
14985 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
14986 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
14987 pass ret_rtx as label.
14988 * cfglayout.c (fixup_reorder_chain): Use
14989 force_nonfallthru_and_redirect rather than force_nonfallthru.
14990 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
14991 * rtl.h (ANY_RETURN_P): New macro.
14992 (jump_to_label_p): Declare.
14993 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
14994 JUMP_LABELs.
14995 (mark_target_live_regs): Likewise.
14996 * basic-block.h (force_nonfallthru_and_redirect): Declare.
14997 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
14998 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
14999 alpha_tablejump_best_label): Remove functions.
15000 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
15001 alpha_tablejump_best_label): Remove declarations.
15002 * config/sh/sh.c (barrier_align, split_branches): Adjust for
15003 ret_rtx in JUMP_LABELs.
15004 * config/arm/arm.c (is_jump_table): Likewise.
15005
15006 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
15007
15008 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
15009 special predicate. Remove explicit mode checks.
15010
15011 2011-07-28 Jakub Jelinek <jakub@redhat.com>
15012
15013 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
15014 DW_AT_data_member_location containing just DW_OP_plus_uconst.
15015
15016 PR debug/49871
15017 * dwarf2out.c (size_of_die, value_format, output_die): Use
15018 DW_FORM_udata instead of DW_FORM_data[48] for
15019 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
15020
15021 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
15022
15023 * config/i386/i386.md (*tls_global_dynamic_64): Update
15024 length attribute.
15025
15026 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
15027
15028 PR target/47715
15029 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
15030 tls_symbolic_operand check. Update code sequence for TARGET_X32.
15031 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
15032 (tls_dynamic_gnu2_64): Ditto.
15033 (*tls_dynamic_gnu2_lea_64): Ditto.
15034 (*tls_dynamic_gnu2_call_64): Ditto.
15035 (*tls_dynamic_gnu2_combine_64): Ditto.
15036
15037 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
15038
15039 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
15040
15041 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
15042
15043 PR target/47364
15044 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
15045
15046 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15047
15048 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
15049 before the core constraints. Adjust attributes.
15050 ("*thumb2_movdf_vfp"): Likewise.
15051
15052 2011-07-28 Kai Tietz <ktietz@redhat.com>
15053
15054 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
15055 (simplify_truth_ops_using_ranges): Likewise.
15056 (build_assert_expr_for): Likewise.
15057 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
15058 and handle BIT_NOT_EXPR for truth-operation.
15059
15060 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
15061
15062 PR target/49313
15063 Undo r176835 from trunk
15064 2011-07-27 Georg-Johann Lay
15065
15066 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
15067
15068 PR target/49687
15069 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
15070 Add _muluhisi3, _mulshisi3, _usmulhisi3.
15071 * config/avr/libgcc.S (__mulsi3): Rewrite.
15072 (__mulhisi3): Rewrite.
15073 (__umulhisi3): Rewrite.
15074 (__usmulhisi3): New.
15075 (__muluhisi3): New.
15076 (__mulshisi3): New.
15077 (__mulohisi3): New.
15078 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
15079 declare.
15080 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
15081 (pseudo_register_or_const_int_operand): New.
15082 (combine_pseudo_register_operand): New.
15083 (u16_operand): New.
15084 (s16_operand): New.
15085 (o16_operand): New.
15086 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
15087 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
15088 (any_extend, any_extend2): New code iterators.
15089 (extend_prefix): New code attribute.
15090 (mulsi3): Rewrite. Turn insn to expander.
15091 (mulhisi3): Ditto.
15092 (umulhisi3): Ditto.
15093 (usmulhisi3): New expander.
15094 (*mulsi3): New insn-and-split.
15095 (mulu<mode>si3): New insn-and-split.
15096 (muls<mode>si3): New insn-and-split.
15097 (mulohisi3): New insn-and-split.
15098 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
15099 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
15100 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
15101 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
15102 insn-and-split.
15103 (*mulsi3_call): Rewrite.
15104 (*mulhisi3_call): Rewrite.
15105 (*umulhisi3_call): Rewrite.
15106 (*usmulhisi3_call): New insn.
15107 (*muluhisi3_call): New insn.
15108 (*mulshisi3_call): New insn.
15109 (*mulohisi3_call): New insn.
15110 (extendqihi2): Use combine_pseudo_register_operand as predicate
15111 for operand 1.
15112 (extendqisi2): Ditto.
15113 (zero_extendqihi2): Ditto.
15114 (zero_extendqisi2): Ditto.
15115 (zero_extendhisi2): Ditto.
15116 (extendhisi2): Ditto. Don't early-clobber operand 0.
15117
15118 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
15119
15120 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
15121
15122 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
15123
15124 PR tree-optimization/49471
15125 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
15126 iv only when the largest type is unsigned. Do not call
15127 lang_hooks.types.type_for_size.
15128
15129 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
15130
15131 PR middle-end/45450
15132 * graphite-poly.c (apply_poly_transforms): Disable legality check
15133 after an openscop read.
15134
15135 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
15136
15137 PR middle-end/47691
15138 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
15139 copy_bb_and_scalar_dependences.
15140 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
15141 (graphite_copy_stmts_from_block): Update call to rename_uses.
15142 (copy_bb_and_scalar_dependences): Update call to
15143 graphite_copy_stmts_from_block.
15144 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
15145
15146 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
15147
15148 PR target/49313
15149 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
15150 (__ctzsi2): Result for 0 may be undefined.
15151 (__ctzhi2): Result for 0 may be undefined.
15152 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
15153 (__popcountsi2): Ditto. And don't clobber r26.
15154 (__popcountdi2): Ditto. And don't clobber r27.
15155 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
15156 (parityhi2): New expand.
15157 (paritysi2): New expand.
15158 (popcounthi2): New expand.
15159 (popcountsi2): New expand.
15160 (clzhi2): New expand.
15161 (clzsi2): New expand.
15162 (ctzhi2): New expand.
15163 (ctzsi2): New expand.
15164 (ffshi2): New expand.
15165 (ffssi2): New expand.
15166 (copysignsf3): New insn.
15167 (bswapsi2): New expand.
15168 (*parityhi2.libgcc): New insn.
15169 (*parityqihi2.libgcc): New insn.
15170 (*paritysihi2.libgcc): New insn.
15171 (*popcounthi2.libgcc): New insn.
15172 (*popcountsi2.libgcc): New insn.
15173 (*popcountqi2.libgcc): New insn.
15174 (*popcountqihi2.libgcc): New insn-and-split.
15175 (*clzhi2.libgcc): New insn.
15176 (*clzsihi2.libgcc): New insn.
15177 (*ctzhi2.libgcc): New insn.
15178 (*ctzsihi2.libgcc): New insn.
15179 (*ffshi2.libgcc): New insn.
15180 (*ffssihi2.libgcc): New insn.
15181 (*bswapsi2.libgcc): New insn.
15182
15183 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
15184
15185 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
15186 the mode of symbolic_opreand RTXes.
15187
15188 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
15189
15190 * config/i386/predicates.md (x86_64_movabs_operand): Return false
15191 for pic_32bit_operand RTXes.
15192 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
15193 in DImode.
15194
15195 2011-07-27 Kai Tietz <ktietz@redhat.com>
15196
15197 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
15198 for 32-bit, too.
15199 (ix86_handle_abi_attribute): Allow function attributes
15200 ms_abi/sysv_abi in 32-bit mode, too.
15201 * doc/extend.texi: Adjust attribute documentation.
15202
15203 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
15204 expression handling.
15205 (and_var_with_comparison_1): Likewise.
15206
15207 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
15208
15209 * params.h (ALLOW_STORE_DATA_RACES): New.
15210 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
15211 * Makefile.in (expr.o): Depend on PARAMS_H.
15212 * machmode.h (get_best_mode): Add argument.
15213 * fold-const.c (optimize_bit_field_compare): Add argument to
15214 get_best_mode.
15215 (fold_truthop): Same.
15216 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
15217 * expr.c (emit_group_store): Same.
15218 (copy_blkmode_from_reg): Same.
15219 (write_complex_part): Same.
15220 (optimize_bitfield_assignment_op): Add argument.
15221 Add argument to get_best_mode.
15222 (get_bit_range): New.
15223 (expand_assignment): Calculate maxbits and pass it down accordingly.
15224 (store_field): New argument.
15225 (expand_expr_real_2): New argument to store_field. Include params.h.
15226 * expr.h (store_bit_field): New argument.
15227 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
15228 into account maxbits.
15229 * calls.c (store_unaligned_arguments_into_pseudos): New argument
15230 to store_bit_field.
15231 * expmed.c (store_bit_field_1): New argument. Use it.
15232 (store_bit_field): Same.
15233 (store_fixed_bit_field): Same.
15234 (store_split_bit_field): Same.
15235 (extract_bit_field_1): Pass new argument to get_best_mode.
15236 (extract_bit_field): Same.
15237 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
15238 * doc/invoke.texi: Document parameter allow-store-data-races.
15239
15240 2011-07-27 Jakub Jelinek <jakub@redhat.com>
15241
15242 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
15243
15244 2011-07-27 Kai Tietz <ktietz@redhat.com>
15245
15246 * tree-vrp.c (extract_range_from_binary_expr): Remove
15247 TRUTH-binary cases and add new bitwise-cases.
15248 (extract_range_from_assignment): Likewise.
15249 (register_edge_assert_for_1): Likeiwise.
15250 (register_edge_assert_for): Likewise.
15251 (simplify_truth_ops_using_ranges): Likewise.
15252 (simplify_stmt_using_ranges): Likewise.
15253
15254 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
15255
15256 PR target/47372
15257 * config/i386/i386.c (ix86_delegitimize_address): Call
15258 simplify_gen_subreg for PIC with mode of x only if modes of
15259 x and orig_x are different.
15260
15261 2011-07-26 Jakub Jelinek <jakub@redhat.com>
15262
15263 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
15264 to GC allocated copy of the string.
15265 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
15266 before .debug_line, not after it.
15267
15268 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
15269
15270 PR middle-end/47046
15271 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
15272 evolution_function_is_affine_p on CHREC_RIGHT.
15273
15274 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
15275
15276 * tree-data-ref.c (max_stmt_executions_tree): Do not call
15277 lang_hooks.types.type_for_size.
15278
15279 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
15280
15281 PR middle-end/47653
15282 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
15283 loops using wrapping semantics.
15284
15285 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
15286
15287 PR middle-end/48805
15288 * tree-scalar-evolution.c (instantiate_scev_r): Return
15289 chrec_dont_know for ADDR_EXPR.
15290
15291 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
15292 H.J. Lu <hongjiu.lu@intel.com>
15293
15294 PR target/47369
15295 PR target/49853
15296 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
15297 if legitimize_tls_address returned operand in wrong mode. Allow
15298 SImode and DImode symbolic operand for PIC. Call convert_to_mode
15299 if legitimize_pic_address returned operand in wrong mode.
15300
15301 2011-07-26 Martin Jambor <mjambor@suse.cz>
15302
15303 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
15304 return false for invariants.
15305
15306 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
15307
15308 * config/i386/i386.md (add->lea splitter): Implement using SWI
15309 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
15310 (add->lea zext splitter): Change operand 2 predicate to
15311 x86_64_nonmemory_operand.
15312
15313 2011-07-26 Richard Guenther <rguenther@suse.de>
15314
15315 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
15316 frequency makes everything hot.
15317
15318 2011-07-26 Richard Guenther <rguenther@suse.de>
15319
15320 PR tree-optimization/49840
15321 * tree-vrp.c (range_fits_type_p): Properly handle full
15322 double-int precision.
15323
15324 2011-07-26 Martin Jambor <mjambor@suse.cz>
15325
15326 PR bootstrap/49786
15327 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
15328 counts.
15329 (update_specialized_profile): Likewise.
15330
15331 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
15332 H.J. Lu <hongjiu.lu@intel.com>
15333
15334 PR target/47381
15335 PR target/49832
15336 PR target/49833
15337 * config/i386/i386.md (i): Change SImode attribute to "e".
15338 (g): Change SImode attribute to "rme".
15339 (di): Change SImode attribute to "nF".
15340 (general_operand): Change SImode attribute to x86_64_general_operand.
15341 (general_szext_operand): Change SImode attribute to
15342 x86_64_szext_general_operand.
15343 (immediate_operand): Change SImode attribute to
15344 x86_64_immediate_operand.
15345 (nonmemory_operand): Change SImode attribute to
15346 x86_64_nonmemory_operand.
15347 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
15348 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
15349 (*lea_1): Use SWI48 mode iterator.
15350 (*lea_1_zext): New insn pattern.
15351 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
15352 (*bt<mode>): Ditto.
15353 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
15354 Update operand constraints.
15355 (addsi_1_zext): Ditto.
15356 (*add<mode>2): Ditto.
15357 (*addsi_3_zext): Ditto.
15358 (*subsi_1_zext): Ditto.
15359 (*subsi_2_zext): Ditto.
15360 (*subsi_3_zext): Ditto.
15361 (*addsi3_carry_zext): Ditto.
15362 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
15363 (*mulsi3_1_zext): Ditto.
15364 (*andsi_1): Ditto.
15365 (*andsi_1_zext): Ditto.
15366 (*andsi_2_zext): Ditto.
15367 (*<any_or:code>si_1_zext): Ditto.
15368 (*<any_or:code>si_2_zext): Ditto.
15369 (*test<mode>_1): Use <general_operand> predicate for operand 1.
15370 (*and<mode>_2): Ditto.
15371 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
15372 (add->lea splitter): Check operand modes in insn constraint. Extend
15373 operands less than SImode wide to SImode.
15374 (add->lea zext splitter): Do not extend input operands to DImode.
15375 (*lea_general_1): Handle only QImode and HImode operands.
15376 (*lea_general_2): Ditto.
15377 (*lea_general_3): Ditto.
15378 (*lea_general_1_zext): Remove.
15379 (*lea_general_2_zext): Ditto.
15380 (*lea_general_3_zext): Ditto.
15381 (*lea_general_4): Check operand modes in insn constraint. Extend
15382 operands less than SImode wide to SImode.
15383 (ashift->lea splitter): Ditto.
15384 * config/i386/i386.c (ix86_print_operand_address): Print address
15385 registers with 'q' modifier on 64bit targets.
15386 * config/i386/predicates.md (pic_32bit_opreand): Define as special
15387 predicate. Reject non-SI and non-DI modes.
15388
15389 2011-07-25 Andrew Pinski <apinski@cavium.com>
15390
15391 PR tree-opt/49671
15392 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
15393 TREE_THIS_NOTRAP into the inner most MEM_REF.
15394 Always copy TREE_THIS_VOLATILE.
15395 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
15396 arguments are not volatile references.
15397
15398 2011-07-25 Richard Henderson <rth@redhat.com>
15399
15400 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
15401 * final.c (final_scan_insn): Don't test for it.
15402 (rest_of_clean_state): Likewise.
15403
15404 2011-07-25 Richard Henderson <rth@redhat.com>
15405
15406 PR debug/49841
15407 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
15408 (emit_frame_save): Likewise.
15409 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
15410 insn onto a dummy blockage insn after the join label.
15411
15412 2011-07-25 Richard Henderson <rth@redhat.com>
15413
15414 * dwarf2cfi.c (dw_trace_info): Add ID member.
15415 (get_trace_index): Remove. Change users to use ID member.
15416 (before_next_cfi_note): New.
15417 (connect_traces): Remove unreachable traces before the main loop.
15418 Look across one trace and generate remember/restore_state if needed.
15419
15420 2011-07-25 Richard Henderson <rth@redhat.com>
15421
15422 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
15423
15424 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
15425
15426 * genattr.c (write_upcase, gen_attr <enum definition writing>):
15427 Move to ...
15428 * genattr-common.c ... here.
15429 (main): Call gen_attr.
15430 * optc-gen.awk: Make generated program include insn-attr-common.h .
15431 * Makefile.in (oprions.o): Depend on insn-attr-common.h
15432
15433 2011-07-25 Anatoly Sokolov <aesok@post.ru>
15434
15435 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15436 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
15437 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
15438 m32c_print_operand, m32c_print_operand_address): Remove.
15439 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
15440 Change return type to bool. Change argument type to bool.
15441 (m32c_print_operand, m32c_print_operand_address): Make static.
15442 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
15443 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15444
15445 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15446
15447 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
15448 attributes): Document mmap.
15449
15450 2011-07-25 Anatoly Sokolov <aesok@post.ru>
15451
15452 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15453 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
15454 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
15455 mmix_print_operand, mmix_print_operand_address): Remove.
15456 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
15457 Change return type to bool. Change argument type to bool.
15458 (mmix_print_operand, mmix_print_operand_address): Make static.
15459 (mmix_intval, mmix_output_condition): Change 'x' argument type
15460 to const_rtx.
15461 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
15462 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15463
15464 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
15465
15466 PR target/39386
15467 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
15468 shift counter for x << x and x >> x shifts.
15469
15470 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15471
15472 PR target/47124
15473 * config.gcc: Reject *-*-solaris2 configuration.
15474
15475 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
15476
15477 PR tree-optimization/49809
15478 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
15479 gimple_get_lhs instead of gimple_assign_lhs.
15480
15481 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15482
15483 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
15484
15485 2011-07-25 Richard Guenther <rguenther@suse.de>
15486
15487 PR tree-optimization/49822
15488 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
15489 more. Make sure to preserve stmts with side-effects. Properly
15490 handle virtual defs, follow a longer def chain.
15491
15492 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
15493
15494 PR plugins/45348
15495 PR plugins/48425
15496 PR plugins/46577
15497 * Makefile.in: Do not flatten c-family directory when installing
15498 plugin headers.
15499
15500 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
15501
15502 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
15503 original nodes if we are dealing with virtual clones.
15504
15505 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
15506
15507 * common/config/c6x/c6x-common.c: New file.
15508
15509 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
15510
15511 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
15512
15513 2011-07-25 Richard Guenther <rguenther@suse.de>
15514
15515 PR tree-optimization/49715
15516 * tree-vrp.c: Include expr.h and optabs.h.
15517 (range_fits_type_): New function.
15518 (simplify_float_conversion_using_ranges): Likewise.
15519 (simplify_stmt_using_ranges): Call it.
15520 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
15521 * optabs.c (can_float_p): Export.
15522 * optabs.h (can_float_p): Declare.
15523
15524 2011-07-25 Richard Guenther <rguenther@suse.de>
15525
15526 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
15527 (get_value_range): For out-of-range SSA names or names created
15528 after propagation return a read-only varying range.
15529 (dump_all_value_ranges): Adjust.
15530 (vrp_initialize): Likewise.
15531 (vrp_finalize): Likewise.
15532
15533 2011-07-24 Richard Henderson <rth@redhat.com>
15534
15535 PR debug/49831
15536 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
15537 them entirely.
15538
15539 2011-07-24 Richard Henderson <rth@redhat.com>
15540
15541 PR debug/49825
15542 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
15543 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
15544
15545 2011-07-24 Richard Henderson <rth@redhat.com>
15546
15547 PR debug/49827
15548 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
15549
15550 2011-07-24 Richard Henderson <rth@redhat.com>
15551
15552 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
15553 Zero args_size for abnormal edges. Adjust all callers.
15554
15555 2011-07-24 Richard Henderson <rth@redhat.com>
15556
15557 PR debug/49825
15558 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
15559
15560 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
15561
15562 PR bootstrap/49835
15563 * collect2.c (demangle_flag): Removed.
15564
15565 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
15566
15567 * configure.ac (demangler_in_ld): Default to yes.
15568 * configure: Regenerated.
15569 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
15570 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
15571 --no-demangle options straight through to ld. When
15572 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
15573 way that has the intended effect on Windows.
15574
15575 2011-07-23 Richard Henderson <rth@redhat.com>
15576
15577 * dwarf2cfi.c: Include basic-block.h.
15578 (dw_label_info): Remove.
15579 (trace_work_list, trace_index): New.
15580 (remember_row, emit_cfa_remember): Remove.
15581 (dw_trace_info_hash, dw_trace_info_eq): New.
15582 (get_trace_index, get_trace_info): New.
15583 (save_point_p): New.
15584 (free_cfi_row): Remove.
15585 (add_cfi): Do not emit DW_CFA_remember_state.
15586 (cfa_row_equal_p): New.
15587 (barrier_args_size): Remove.
15588 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
15589 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
15590 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
15591 (dwarf2out_cfi_begin_epilogue): Remove.
15592 (dwarf2out_frame_debug_restore_state): Remove.
15593 (connect_traces, create_pseudo_cfg): New.
15594 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
15595 * Makefile.in (dwarf2cfi.o): Update.
15596
15597 2011-07-23 Richard Henderson <rth@redhat.com>
15598
15599 * dwarf2cfi.c (dw_trace_info): New.
15600 (dw_label_info): New.
15601 (cie_return_save): New.
15602 (cur_trace): New.
15603 (queued_args_size): Rename from args_size. Update all users.
15604 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
15605 (def_cfa_1): Use cur_trace instead of cfa_*.
15606 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
15607 (clobbers_queued_reg_save, reg_saved_in): Likewise.
15608 (dwarf2out_frame_debug_expr): Likewise.
15609 (create_cie_data): Split out from ...
15610 (execute_dwarf2_frame): ... here. Initialize cur_trace.
15611
15612 2011-07-23 Richard Henderson <rth@redhat.com>
15613
15614 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
15615 Update all users to match.
15616 (execute_dwarf2_frame): Free reg_saved_in_data.
15617
15618 2011-07-23 Richard Henderson <rth@redhat.com>
15619
15620 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
15621 (queued_reg_saves): Don't GTY. Change to a VEC.
15622 (queue_reg_save): Update to match.
15623 (dwarf2out_flush_queued_reg_saves): Likewise.
15624 (clobbers_queued_reg_save): Likewise.
15625 (reg_saved_in): Likewise.
15626 (execute_dwarf2_frame): Free queued_reg_saves.
15627
15628 2011-07-23 Richard Henderson <rth@redhat.com>
15629
15630 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
15631
15632 2011-07-23 Richard Henderson <rth@redhat.com>
15633
15634 * dwarf2cfi.c (add_cfi_args_size): Split out from...
15635 (dwarf2out_args_size): ... here.
15636 (add_cfi_restore): Split out from ...
15637 (dwarf2out_frame_debug_cfa_restore): ... here.
15638 (def_cfa_0): Split out from ...
15639 (def_cfa_1): ... here.
15640 (cfi_oprnd_equal_p, cfi_equal_p): New.
15641 (change_cfi_row): New.
15642 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
15643 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
15644 (output_cfis): Remove.
15645 * dwarf2out.c (output_fde): Simplify output_cfi loop.
15646 (dwarf2out_switch_text_section): Don't call output_cfis.
15647 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
15648 * dwarf2out.h: Update decls.
15649 (enum dw_val_class): Add dw_val_class_none.
15650
15651 2011-07-23 Richard Henderson <rth@redhat.com>
15652
15653 * dwarf2cfi.c (update_row_reg_save): New.
15654 (dwarf2out_frame_debug_cfa_expression): Use it.
15655 (dwarf2out_frame_debug_cfa_restore): Likewise.
15656 (reg_save): Likewise. Do not emit DW_CFA_same_value.
15657
15658 2011-07-23 Richard Henderson <rth@redhat.com>
15659
15660 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
15661
15662 2011-07-23 Richard Henderson <rth@redhat.com>
15663
15664 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
15665 (cie_cfi_row): New.
15666 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
15667 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
15668 (cur_row, remember_row): New.
15669 (def_cfa_1): Use cur_row instead of the old_* variables.
15670 (dwarf2out_frame_debug_restore_state): Similarly.
15671 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
15672 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
15673 (dwarf2out_frame_debug_adjust_cfa): Likewise.
15674 (dwarf2out_frame_debug_cfa_offset): Likewise.
15675 (dwarf2out_frame_debug_expr): Likewise.
15676 (execute_dwarf2_frame): Set up cur_row.
15677 * dwarf2out.h (struct cfa_loc): Mark for GTY.
15678
15679 2011-07-23 Richard Henderson <rth@redhat.com>
15680
15681 * basic-block.h (EDGE_PRESERVE): New.
15682 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
15683 * bb-reorder.c: Include except.h.
15684 (fix_up_crossing_landing_pad): New.
15685 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
15686 landing pads in the right partition. Duplicate as necessary.
15687 (partition_hot_cold_basic_blocks): Fix up DF info after
15688 duplicating landing pads.
15689 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
15690 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
15691 is set properly. Validate that EH edges are not CROSSING.
15692 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
15693 (dw2_build_landing_pads): ... here.
15694 (convert_to_eh_region_ranges): Remove code to fixup crossing
15695 landing pads.
15696 * except.h (expand_dw2_landing_pad_for_region): Declare.
15697 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
15698
15699 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
15700
15701 PR target/49816
15702 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
15703
15704 2011-07-22 Jason Merrill <jason@redhat.com>
15705
15706 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
15707
15708 2011-07-22 Richard Henderson <rth@redhat.com>
15709
15710 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
15711
15712 2011-07-22 Richard Henderson <rth@redhat.com>
15713
15714 * jump.c (maybe_propagate_label_ref): Split out of...
15715 (mark_all_labels): ... here. Do not attempt label_ref
15716 propagation while in cfglayout mode.
15717
15718 2011-07-22 Jakub Jelinek <jakub@redhat.com>
15719
15720 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
15721 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
15722 (dwarf_attr_name): Handle DW_AT_GNU_macros.
15723 (dwarf2out_define): If the vector is empty and
15724 lineno is 0, emit a dummy entry first.
15725 (dwarf2out_undef): Likewise. Remove redundant semicolon.
15726 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
15727 optimize_macinfo_range): New functions.
15728 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
15729 mergeable, optimize longer strings using
15730 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
15731 optimize longer sequences of define/undef ops from headers
15732 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
15733 emit a section headers.
15734 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
15735 and macinfo_section_label to DEBUG_MACRO_SECTION
15736 resp. DEBUG_MACRO_SECTION_LABEL.
15737 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
15738 instead of DW_AT_macro_info.
15739
15740 PR other/32998
15741 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
15742 options.
15743 * dwarf2out.c: Include opts.h.
15744 (dchar_p): New typedef. Define heap VEC for it.
15745 (producer_string): New variable.
15746 (gen_producer_string): New function.
15747 (gen_compile_unit_die): Use it.
15748 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
15749 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
15750 * doc/invoke.texi: Document -grecord-gcc-switches and
15751 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
15752 to -frecord-gcc-switches description.
15753
15754 2011-07-22 Jason Merrill <jason@redhat.com>
15755
15756 PR c++/30112
15757 * c-decl.c (c_linkage_bindings): Define.
15758
15759 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
15760
15761 PR debug/49815
15762 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
15763
15764 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
15765
15766 * config/i386/i386.c (ix86_option_override_internal): Disallow
15767 MS ABI in x32 mode.
15768 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
15769 only for TARGET_LP64.
15770 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
15771
15772 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
15773
15774 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
15775 avoid warnings when GCC is built with a C++ compiler.
15776
15777 2011-07-22 Martin Jambor <mjambor@suse.cz>
15778
15779 PR lto/49796
15780 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
15781 if decl node is in another partition, call cgraph_get_node only once.
15782
15783 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
15784
15785 * config.gcc (x86_64-*-linux*): Set
15786 default_gnu_indirect_function to yes.
15787
15788 2011-07-22 Richard Guenther <rguenther@suse.de>
15789
15790 PR tree-optimization/45819
15791 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
15792 preserve volatile and notrap flags.
15793
15794 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15795 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
15796
15797 PR bootstrap/49794
15798 * configure.ac: Test AM_ICONV with CXX.
15799 * configure: Regenerate.
15800 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
15801
15802 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15803
15804 PR bootstrap/49797
15805 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
15806 (set_cloog_options): Use it.
15807
15808 2011-07-22 Jakub Jelinek <jakub@redhat.com>
15809
15810 PR c++/49756
15811 * gcc.c (main): Call stack_limit_increase (64MB).
15812 * toplev.c (toplev_main): Likewise.
15813
15814 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
15815
15816 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
15817 instead of force_reg.
15818
15819 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
15820
15821 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
15822 needed and use force_reg after convert.
15823 (ix86_expand_call): Likewise.
15824 (ix86_expand_special_args_builtin): Likewise.
15825 (ix86_expand_builtin): Likewise.
15826
15827 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15828
15829 PR middle-end/47654
15830 PR middle-end/49649
15831 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
15832 in parameter. Initialize v1 and v2 based on the values returned
15833 by clast_name_to_lb_ub.
15834 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
15835 values.
15836 (type_for_clast_bin): Same.
15837 (type_for_clast_expr): Same.
15838 (type_for_clast_eq): Update calls to type_for_clast_expr.
15839 (type_for_clast_for): Same.
15840 (build_iv_mapping): Same.
15841 * graphite-ppl.h (value_min): New.
15842
15843 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15844
15845 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
15846 types whenever possible.
15847
15848 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15849
15850 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
15851 and ub fields.
15852 (new_clast_name_index): Add lb and ub parameters.
15853 (free_clast_name_index): New.
15854 (clast_name_to_lb_ub): New.
15855 (save_clast_name_index): Add lb and ub parameters.
15856 (compute_bounds_for_param): New.
15857 (type_for_level): Removed.
15858 (type_for_clast_for): Removed level parameter. Do not call
15859 type_for_level.
15860 (graphite_create_new_loop): Store the lb and ub for the clast_name
15861 of the iterator of the loop that has been generated.
15862 (graphite_create_new_loop_guard): Remove parameter level.
15863 (create_params_index): Store the lb and ub of each parameter.
15864 (gloog): Use free_clast_name_index. Pass to create_params_index
15865 the current scop.
15866
15867 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15868
15869 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
15870 (max_precision_type): Inline max_signed_precision_type.
15871 (type_for_clast_red): Use max_precision_type.
15872 (type_for_clast_bin): Same.
15873 (type_for_clast_for): Same.
15874
15875 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15876
15877 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
15878 type_for_interval.
15879 (gcc_type_for_value): Renamed type_for_value.
15880 (gcc_type_for_clast_term): Renamed type_for_clast_term.
15881 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
15882 (gcc_type_for_clast_red): Renamed type_for_clast_red.
15883 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
15884 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
15885 (graphite_translate_clast_equation): Update calls.
15886 (compute_type_for_level): Renamed type_for_level.
15887 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
15888 (build_iv_mapping): Update calls.
15889 (graphite_create_new_loop_guard): Same.
15890
15891 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15892
15893 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
15894 comment.
15895
15896 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15897
15898 * graphite-clast-to-gimple.c (struct ivs_params): New.
15899 (clast_name_to_gcc): Use ivs_params to pass around parameters.
15900 (clast_to_gcc_expression): Same.
15901 (clast_to_gcc_expression_red): Same.
15902 (gcc_type_for_clast_term): Same.
15903 (gcc_type_for_clast_expr): Same.
15904 (gcc_type_for_clast_red): Same.
15905 (gcc_type_for_clast_bin): Same.
15906 (gcc_type_for_clast_eq): Same.
15907 (graphite_translate_clast_equation): Same.
15908 (graphite_create_guard_cond_expr): Same.
15909 (graphite_create_new_guard): Same.
15910 (graphite_create_new_loop): Same.
15911 (build_iv_mapping): Same.
15912 (translate_clast_user): Same.
15913 (graphite_create_new_loop_guard): Same.
15914 (translate_clast): Same.
15915 (translate_clast_for_loop): Same.
15916 (translate_clast_for): Same.
15917 (translate_clast_guard): Same.
15918 (initialize_cloog_names): Fix typo.
15919 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
15920
15921 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15922
15923 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
15924 (new_clast_name_index): Add level parameter.
15925 (clast_name_to_level): New.
15926 (save_clast_name_index): Add level parameter.
15927 (newivs_to_depth_to_newiv): Removed.
15928 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
15929 (graphite_create_new_loop): Add level parameter. Pass level to
15930 save_clast_name_index.
15931 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
15932 (create_params_index): Pass level to save_clast_name_index.
15933
15934 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15935
15936 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
15937 recompute type, lb, and ub. Get them from...
15938 (graphite_create_new_loop_guard): ...here. Pass in parameter
15939 pointers to type, lb, and ub.
15940 (translate_clast_for_loop): Update function calls.
15941 (translate_clast_for): Same.
15942
15943 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
15944
15945 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
15946 psct_dynamic_dim.
15947 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
15948 (gcc_type_for_iv_of_clast_loop): Update use of level.
15949 (gloog): Start counting nesting level from 0.
15950 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
15951 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
15952 psct_dynamic_dim on level.
15953
15954 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
15955
15956 * config/i386/i386.c (ix86_legitimize_address): Convert to
15957 Pmode if needed.
15958
15959 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
15960
15961 * config/i386/i386.c (function_value_64): Always return pointers
15962 in Pmode.
15963 (ix86_promote_function_mode): New.
15964 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
15965
15966 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15967
15968 PR tree-optimization/49749
15969 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
15970 remove no-longer-used maxrank variable.
15971
15972 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
15973
15974 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
15975
15976 2011-07-21 Jason Merrill <jason@redhat.com>
15977
15978 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
15979 * recog.h (struct insn_data_d): Check it instead of
15980 HAVE_DESIGNATED_INITIALIZERS.
15981 * genoutput.c (output_insn_data): Likewise.
15982
15983 2011-07-21 Richard Guenther <rguenther@suse.de>
15984
15985 PR tree-optimization/49770
15986 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
15987 valueized any operand. Renamed from ...
15988 (valueize_refs): ... this. New wrapper around valueize_refs_1.
15989 (valueize_shared_reference_ops_from_ref): Return whether we
15990 valueized any operand.
15991 (vn_reference_lookup): Only when we valueized any operand
15992 use the valueized reference for alias analysis. Do not preserve
15993 the original reference tree in this case.
15994
15995 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
15996
15997 * config/i386/i386.c (ix86_decompose_address): Reject all but
15998 register operands and subregs of DImode hard registers in index.
15999
16000 2011-07-21 Kai Tietz <ktietz@redhat.com>
16001
16002 * fold-const.c (fold_unary_loc): Preserve indirect
16003 comparison cast to none-boolean type.
16004 * tree-ssa.c (useless_type_conversion_p): Preserve cast
16005 from/to boolean-type.
16006 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
16007 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
16008 * tree-cfg.c (verify_gimple_comparison): Check result
16009 type of comparison expression.
16010 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
16011 of condition result and disallow type-cast sinking into comparison.
16012
16013 2011-07-21 Richard Guenther <rguenther@suse.de>
16014
16015 * tree-ssa-forwprop.c (combine_conversions): Return whether
16016 we have to run cfg-cleanup. Properly remove dead stmts.
16017 (ssa_forward_propagate_and_combine): Adjust.
16018
16019 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
16020
16021 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
16022
16023 2011-07-21 Kai Tietz <ktietz@redhat.com>
16024
16025 * tree-ssa-propagate.c (substitute_and_fold): Use
16026 do_dce flag to deside, if BB's statements are scanned
16027 in last to first, or first to last order.
16028
16029 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
16030
16031 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
16032
16033 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
16034 Uros Bizjak <ubizjak@gmail.com>
16035 Richard Henderson <rth@redhat.com>
16036
16037 * config/i386/constraints.md (w): New.
16038
16039 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
16040 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
16041
16042 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
16043 instead of TARGET_64BIT.
16044
16045 * config/i386/i386.md (indirect_jump): Replace
16046 nonimmediate_operand with indirect_branch_operand.
16047 (*indirect_jump): Likewise. Replace constraint "m" with "w".
16048 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
16049 Convert operand 0 to Pmode for x32 if not PIC.
16050 (*tablejump_1): Replace nonimmediate_operand with
16051 indirect_branch_operand. Replace constraint "m" with "w".
16052 (*call_vzeroupper): Replace constraint "m" with "w".
16053 (*call): Likewise.
16054 (*call_rex64_ms_sysv_vzeroupper): Likewise.
16055 (*call_rex64_ms_sysv): Likewise.
16056 (*call_value_vzeroupper): Likewise.
16057 (*call_value): Likewise.
16058 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
16059 (*call_value_rex64_ms_sysv): Likewise.
16060 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
16061
16062 * config/i386/predicates.md (indirect_branch_operand): New.
16063 (call_insn_operand): Support x32.
16064
16065 2011-07-20 Michael Eager <eager@eagercon.com>
16066
16067 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
16068
16069 2011-07-20 Richard Henderson <rth@redhat.com>
16070
16071 * cfg.c (dump_bb_info): Dump basic_block->flags.
16072 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
16073
16074 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
16075
16076 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
16077 of DImode hard registers in index.
16078 (ix86_legitimate_address_p): Allow subregs of base and index to span
16079 more than a word. Assert that subregs of base and index satisfy
16080 register_no_elim_operand predicates. Reject addresses where
16081 base and index have different modes.
16082
16083 2011-07-20 Robert Millan <rmh@gnu.org>
16084
16085 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
16086
16087 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16088
16089 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
16090 removing now-unnecessary assignment.
16091
16092 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16093
16094 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
16095 memory address space to the type's address space.
16096
16097 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
16098
16099 PR target/36467
16100 PR target/49687
16101 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
16102 and expand appropriately if there is a CONST_INT in operand2.
16103 (usmulqihi3): New insn.
16104 (*sumulqihi3): New insn.
16105 (*osmulqihi3): New insn.
16106 (*oumulqihi3): New insn.
16107 (*muluqihi3.uconst): New insn_and_split.
16108 (*muluqihi3.sconst): New insn_and_split.
16109 (*mulsqihi3.sconst): New insn_and_split.
16110 (*mulsqihi3.uconst): New insn_and_split.
16111 (*mulsqihi3.oconst): New insn_and_split.
16112 (*ashifthi3.signx.const): New insn_and_split.
16113 (*ashifthi3.signx.const7): New insn_and_split.
16114 (*ashifthi3.zerox.const): New insn_and_split.
16115 (mulsqihi3): New insn.
16116 (muluqihi3): New insn.
16117 (muloqihi3): New insn.
16118 * config/avr/predicates.md (const_2_to_7_operand): New.
16119 (const_2_to_6_operand): New.
16120 (u8_operand): New.
16121 (s8_operand): New.
16122 (o8_operand): New.
16123 (s9_operand): New.
16124 (register_or_s9_operand): New.
16125
16126 2011-07-20 Kai Tietz <ktietz@redhat.com>
16127
16128 * builtins.c (fold_builtin_expect): See through the cast
16129 from truthvalue_type_node to long.
16130
16131 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
16132
16133 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
16134 where we can use them from the standard and altivec instruction
16135 sets, instead of always using the 3 operand VSX forms that require
16136 the destination to overlap one of the inputs.
16137 (vsx_fms*): Ditto.
16138 (vsx_fnma*): Ditto.
16139 (vsx_fnms*): Ditto.
16140
16141 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
16142 for DF types.
16143 (fmsdf4_fpr): Ditto.
16144 (nfmadf4_fpr): Ditto.
16145 (nfmsdf4_fpr): Ditto.
16146
16147 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
16148
16149 * genrecog.c (make_insn_sequence): Correct position numbering
16150 when filtering out match_scratch and match_dup.
16151
16152 2011-07-20 Richard Guenther <rguenther@suse.de>
16153
16154 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
16155 against already removed statements.
16156 (forward_propagate_into_comparison): Remove dead defining stmts.
16157 (forward_propagate_into_gimple_cond): Likewise.
16158 (forward_propagate_into_cond): Simplify.
16159 (ssa_forward_propagate_and_combine): Handle changed cfg from
16160 forward_propagate_into_comparison.
16161 * tree-ssa-phiopt.c (conditional_replacement): Use proper
16162 locations for newly built statements.
16163
16164 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
16165
16166 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
16167
16168 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16169
16170 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
16171 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
16172
16173 2011-07-20 Richard Guenther <rguenther@suse.de>
16174
16175 PR middle-end/18908
16176 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
16177 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
16178 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
16179
16180 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
16181
16182 * config/frv/frv.c (frv_register_move_cost): Define explicitly
16183 costs for subclasses of GR_REGS.
16184
16185 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
16186
16187 PR target/49780
16188 * config/i386/predicates.md (no_seg_addres_operand): No more special.
16189 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
16190 of DImode hard registers in base.
16191 (ix86_legitimate_address_p): Allow SImode and DImode base and index
16192 registers.
16193
16194 2011-07-20 Richard Guenther <rguenther@suse.de>
16195
16196 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
16197 (unify_nodes): Deal with that.
16198 (solve_graph): Likewise.
16199
16200 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
16201
16202 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
16203 canonicalize left operand from ZERO_EXTEND to AND.
16204
16205 2011-07-20 Anatoly Sokolov <aesok@post.ru>
16206
16207 * target.def (class_max_nregs): New hook.
16208 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
16209 * doc/tm.texi: Regenerate.
16210 * targhooks.c (default_class_max_nregs): New function.
16211 * targhooks.h (default_class_max_nregs): Declare.
16212 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
16213 x_ira_reg_class_min_nregs arrays to unsigned char.
16214 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
16215 hook instead of CLASS_MAX_NREGS macro.
16216 * reginfo.c (restore_register_info): Ditto.
16217 * ira-conflicts.c (process_regs_for_copy): Use
16218 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
16219 Change type rclass and aclass vars to reg_class_t.
16220 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
16221 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
16222 reg_class_t.
16223 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
16224 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
16225
16226 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
16227 * config/i386/i386.c (ix86_class_max_nregs): New function.
16228 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
16229 instead of CLASS_MAX_NREGS macro.
16230 (TARGET_CLASS_MAX_NREGS): Define.
16231 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
16232 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
16233 * config/avr/avr.c (class_max_nregs): Remove function.
16234 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
16235 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
16236 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
16237 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
16238 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
16239 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
16240 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
16241 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
16242 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
16243 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
16244 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
16245 * config/score/score.h (CLASS_MAX_NREGS): Remove.
16246 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
16247 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
16248 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
16249
16250 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
16251
16252 * cif-code.def (OVERWRITABLE): Fix typo and move around.
16253 (TARGET_OPTIMIZATION_MISMATCH): Delete.
16254 (EH_PERSONALITY): Fix typo.
16255 (NON_CALL_EXCEPTIONS): Fix message.
16256 (OPTIMIZATION_MISMATCH): Adjust message.
16257 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
16258
16259 2011-07-19 Ian Lance Taylor <iant@google.com>
16260
16261 * doc/install.texi (Configuration): Document
16262 --enable-build-poststage1-with-cxx.
16263
16264 2011-07-19 Robert Millan <rmh@gnu.org>
16265
16266 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
16267 (GLIBC_DYNAMIC_LINKER): Remove.
16268
16269 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
16270 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
16271 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
16272 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
16273 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
16274 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
16275
16276 * config/mips/linux.h: Remove everything except for ...
16277 (GLIBC_DYNAMIC_LINKER): ... this macro.
16278
16279 * config/mips/linux64.h: Remove everything except for ...
16280 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
16281 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
16282 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
16283 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
16284 (GNU_USER_LINK_EMULATIONN32): New macros.
16285
16286 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
16287 Use the new headers.
16288
16289 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
16290
16291 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
16292 Add offset_known_p and size_known_p fields.
16293 (MEM_OFFSET_KNOWN_P): Update accordingly.
16294 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
16295 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
16296 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
16297 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
16298 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
16299 (init_emit_regs): Likewise.
16300
16301 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
16302
16303 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
16304 (MEM_OFFSET): Change from returning an rtx to returning a
16305 HOST_WIDE_INT.
16306 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
16307 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
16308 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
16309 (clear_mem_offset): Declare.
16310 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
16311 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
16312 MEM_OFFSET to get a HOST_WIDE_INT offset.
16313 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
16314 (adjust_offset_for_component_ref): Take a bool "known_p"
16315 parameter and a HOST_WIDE_INT "offset" parameter.
16316 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
16317 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
16318 than an rtx. Use clear_mem_offset to clear the offset.
16319 * cfgcleanup.c (merge_memattrs): Likewise.
16320 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
16321 * function.c (assign_parm_find_stack_rtl): Likewise.
16322 (assign_parm_setup_stack): Likewise.
16323 * print-rtl.c (print_rtx): Likewise.
16324 * reload.c (find_reloads_subreg_address): Likewise.
16325 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
16326 * var-tracking.c (INT_MEM_OFFSET): Likewise.
16327 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
16328 (get_mem_align_offset): Likewise.
16329 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
16330 (clear_mem_offset): New function.
16331 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
16332 offset rather than an rtx. Assume both the expressio and offset
16333 are available.
16334 (r10k_needs_protection_p_1): Update accordingly, checking the
16335 expression and offset availability here instead.
16336
16337 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
16338
16339 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
16340 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
16341 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
16342 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
16343 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
16344 (clear_mem_size): Declare.
16345 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
16346 (clear_mem_size): New function.
16347 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
16348 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
16349 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
16350 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
16351 to clear the size.
16352 (nonoverlapping_memrefs_p): Likewise.
16353 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
16354 (expand_builtin_init_trampoline): Likewise.
16355 * calls.c (compute_argument_addresses): Likewise.
16356 * cfgcleanup.c (merge_memattrs): Likewise.
16357 * dce.c (find_call_stack_args): Likewise.
16358 * dse.c (record_store, scan_insn): Likewise.
16359 * dwarf2out.c (dw_sra_loc_expr): Likewise.
16360 * expr.c (emit_block_move_hints): Likewise.
16361 * function.c (assign_parm_find_stack_rtl): Likewise.
16362 * print-rtl.c (print_rtx): Likewise.
16363 * reload.c (find_reloads_subreg_address): Likewise.
16364 * rtlanal.c (may_trap_p_1): Likewise.
16365 * var-tracking.c (track_expr_p): Likewise.
16366 * varasm.c (assemble_trampoline_template): Likewise.
16367 * config/arm/arm.c (arm_print_operand): Likewise.
16368 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
16369 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
16370 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
16371 (expand_constant_setmem_prologue): Likewise.
16372 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
16373 * config/rs6000/rs6000.c (expand_block_move): Likewise.
16374 (adjacent_mem_locations): Likewise.
16375 * config/s390/s390.c (s390_expand_setmem): Likewise.
16376 (s390_expand_insv): Likewise.
16377 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
16378 (*extendqi<mode>2_short_displ): Likewise.
16379 * config/sh/sh.c (expand_block_move): Likewise.
16380 * config/sh/sh.md (extv, extzv): Likewise.
16381
16382 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
16383
16384 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
16385 (mem_attrs_htab_eq): ...here.
16386 (find_mem_attrs): Replace with...
16387 (set_mem_attrs): ...this function. Take a mem_attrs structure
16388 rather than individual fields.
16389 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
16390 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
16391 (set_mem_size, change_address, adjust_address_1, offset_address)
16392 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
16393 Update accordingly.
16394
16395 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
16396
16397 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
16398 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
16399 Provide a dummy definition of MEM_ADDR_SPACE for generators.
16400 (target_rtl): Add x_mode_mem_attrs.
16401 (mode_mem_attrs): New macro.
16402 (get_mem_attrs): New function.
16403 * emit-rtl.c (get_mem_attrs): Rename to...
16404 (find_mem_attrs): ...this.
16405 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
16406 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
16407 (set_mem_size, change_address, adjust_address_1, offset_address)
16408 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
16409 Update accordingly.
16410 (init_emit_regs): Initialize mode_mem_attrs.
16411
16412 2011-07-19 Richard Guenther <rguenther@suse.de>
16413
16414 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
16415 TRUTH_*_EXPR handling.
16416 * tree-ssa-operands.c (get_expr_operands): Likewise.
16417 * tree-ssa-pre.c (fully_constant_expression): Likewise.
16418 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
16419 Likewise.
16420 (is_and_or_or): Likewise.
16421 (is_norm_cond_subset_of): Likewise.
16422
16423 2011-07-19 Richard Guenther <rguenther@suse.de>
16424
16425 * tree.h (fold_build_pointer_plus_loc): New helper function.
16426 (fold_build_pointer_plus_hwi_loc): Likewise.
16427 (fold_build_pointer_plus): Define.
16428 (fold_build_pointer_plus_hwi): Likewise.
16429 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
16430 (fold_builtin_memory_op): Likewise.
16431 (fold_builtin_stpcpy): Likewise.
16432 (fold_builtin_memchr): Likewise.
16433 (fold_builtin_strstr): Likewise.
16434 (fold_builtin_strchr): Likewise.
16435 (fold_builtin_strrchr): Likewise.
16436 (fold_builtin_strpbrk): Likewise.
16437 (fold_builtin_strcat): Likewise.
16438 (expand_builtin_memory_chk): Likewise.
16439 (fold_builtin_memory_chk): Likewise.
16440 * c-typeck.c (build_unary_op): Likewise.
16441 * cgraphunit.c (thunk_adjust): Likewise.
16442 * fold-const.c (build_range_check): Likewise.
16443 (fold_binary_loc): Likewise.
16444 * omp-low.c (extract_omp_for_data): Likewise.
16445 (expand_omp_for_generic): Likewise.
16446 (expand_omp_for_static_nochunk): Likewise.
16447 (expand_omp_for_static_chunk): Likewise.
16448 * tree-affine.c (add_elt_to_tree): Likewise.
16449 * tree-data-ref.c (split_constant_offset_1): Likewise.
16450 * tree-loop-distribution.c (generate_memset_zero): Likewise.
16451 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
16452 * tree-predcom.c (ref_at_iteration): Likewise.
16453 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
16454 (add_to_parts): Likewise.
16455 (create_mem_ref): Likewise.
16456 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
16457 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
16458 (number_of_iterations_le): Likewise.
16459 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
16460 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
16461 (vect_create_addr_base_for_vector_ref): Likewise.
16462 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
16463 (vect_create_cond_for_alias_checks): Likewise.
16464 * tree-vrp.c (extract_range_from_assert): Likewise.
16465 * config/alpha/alpha.c (alpha_va_start): Likewise.
16466 (alpha_gimplify_va_arg_1): Likewise.
16467 * config/i386/i386.c (ix86_va_start): Likewise.
16468 (ix86_gimplify_va_arg): Likewise.
16469 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
16470 * config/mep/mep.c (mep_expand_va_start): Likewise.
16471 (mep_gimplify_va_arg_expr): Likewise.
16472 * config/mips/mips.c (mips_va_start): Likewise.
16473 (mips_gimplify_va_arg_expr): Likewise.
16474 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
16475 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
16476 (rs6000_gimplify_va_arg): Likewise.
16477 * config/s390/s390.c (s390_va_start): Likewise.
16478 (s390_gimplify_va_arg): Likewise.
16479 * config/sh/sh.c (sh_va_start): Likewise.
16480 (sh_gimplify_va_arg_expr): Likewise.
16481 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
16482 * config/spu/spu.c (spu_va_start): Likewise.
16483 (spu_gimplify_va_arg_expr): Likewise.
16484 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
16485 Likewise.
16486 (xstormy16_gimplify_va_arg_expr): Likewise.
16487 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
16488 (xtensa_gimplify_va_arg_expr): Likewise.
16489
16490 2011-07-19 Richard Guenther <rguenther@suse.de>
16491
16492 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
16493 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
16494 handling.
16495
16496 PR middle-end/18908
16497 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
16498 result of BIT_*_EXPR to bitfield precision.
16499
16500 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
16501
16502 PR tree-optimization/49742
16503 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
16504 as a potential write.
16505
16506 2011-07-19 Richard Guenther <rguenther@suse.de>
16507
16508 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
16509 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
16510 (forward_propagate_comparison): Simplify, remove obsolete code.
16511
16512 2011-07-19 Richard Guenther <rguenther@suse.de>
16513
16514 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
16515 BIT_XOR_EXPR, same as the RTL expander does.
16516 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
16517 (verify_gimple_assign_unary): Likewise.
16518 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
16519 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
16520 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
16521
16522 2011-07-19 Jakub Jelinek <jakub@redhat.com>
16523
16524 PR tree-optimization/49768
16525 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
16526 if offset is smaller than bitoffset, but offset+size is bigger
16527 than bitoffset.
16528
16529 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
16530
16531 PR tree-optimization/49771
16532 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
16533 zero step, set segment length to the size of the data-ref's type.
16534
16535 2011-07-18 Martin Jambor <mjambor@suse.cz>
16536
16537 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
16538 comments.
16539 (ipcp_values_pool): Declare.
16540 (ipcp_sources_pool): Likewise.
16541 (ipcp_lattice): Changed to forward declaration.
16542 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
16543 cannot_devirtualize.
16544 (ipa_node_params): New fields descriptors, lattices, known_vals,
16545 clone_for_all_contexts and node dead, removed fields params and
16546 count_scale.
16547 (ipa_set_param_count): Removed.
16548 (ipa_get_param_count): Made to work with descriptors vector.
16549 (ipa_get_param): Updated.
16550 (ipa_param_cannot_devirtualize_p): Removed.
16551 (ipa_param_types_vec_empty): Likewise.
16552 (ipa_set_param_used): New function.
16553 (ipa_get_param_used): Updated to use descriptors vector.
16554 (ipa_func_list): Removed.
16555 (ipa_init_func_list): Removed declaration.
16556 (ipa_push_func_to_list_1): Likewise.
16557 (ipa_pop_func_from_list): Likewise.
16558 (ipa_push_func_to_list): Removed.
16559 (ipa_lattice_from_jfunc): Remove declaration.
16560 (ipa_get_jf_pass_through_result): Declare.
16561 (ipa_get_jf_ancestor_result): Likewise.
16562 (ipa_value_from_jfunc): Likewise.
16563 (ipa_get_lattice): Update.
16564 (ipa_lat_is_single_const): New function.
16565 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
16566 (ipa_init_func_list): Likewise.
16567 (ipa_pop_func_from_list): Likewise.
16568 (ipa_get_param_decl_index): Fix coding style.
16569 (count_formal_params): Removed.
16570 (count_formal_params_1): Renamed to count_formal_params.
16571 (ipa_populate_param_decls): Update to use descriptors vector.
16572 (ipa_initialize_node_params): Likewise.
16573 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
16574 (ipa_analyze_params_uses): Likewise.
16575 (ipa_free_node_params_substructures): Likewise and free also lattices
16576 and known values.
16577 (duplicate_array): Removed.
16578 (ipa_edge_duplication_hook): Add the new edge to the list of edge
16579 clones.
16580 (ipa_node_duplication_hook): Update to use new lattices.
16581 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
16582 (ipa_free_all_structures_after_iinln): Likewise.
16583 (ipa_write_node_info): Update to use new lattices.
16584 (ipa_read_node_info): Likewise.
16585 (ipa_get_jf_pass_through_result): New function.
16586 (ipa_get_jf_ancestor_result): Likewise.
16587 (ipa_value_from_jfunc): Likewise.
16588 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
16589 * ipa-cp.c: Reimplemented.
16590 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
16591 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
16592 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
16593 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
16594 * doc/invoke.texi (devirt-type-list-size): Removed description.
16595 (ipa-cp-value-list-size): Added description.
16596
16597 2011-07-18 Richard Henderson <rth@redhat.com>
16598
16599 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
16600 before calling create_basic_block.
16601
16602 2011-07-18 Jakub Jelinek <jakub@redhat.com>
16603
16604 PR middle-end/49675
16605 * tree.c (build_common_builtin_nodes): Register
16606 __builtin_return_address, __cyg_profile_func_enter
16607 and __cyg_profile_func_exit.
16608
16609 2011-07-18 Richard Henderson <rth@redhat.com>
16610
16611 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
16612 (add_labels_and_missing_jumps): ... here.
16613 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
16614
16615 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
16616
16617 PR target/47744
16618 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
16619 of DImode hard registers in PLUS address chains.
16620
16621 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16622
16623 PR bootstrap/49769
16624 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
16625 (alpha*-*-freebsd*): Likewise.
16626 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
16627 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
16628 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
16629 crtprec80.o, crtfastmath.o to extra_parts for all targets.
16630 (ia64*-*-elf*): Remove extra_parts.
16631 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
16632 (sparc64-*-linux*): Likewise.
16633 (sparc64-*-freebsd*): Likewise.
16634
16635 Revert:
16636 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
16637 (ia64*-*-linux*): Likewise.
16638 (mips64*-*-linux*): Likewise.
16639 (mips*-*-linux*): Likewise.
16640
16641 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
16642
16643 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
16644
16645 2011-07-18 Richard Guenther <rguenther@suse.de>
16646
16647 * gimplify.c (gimplify_expr): Use input_location, not saved_location
16648 when building new trees.
16649
16650 2011-07-18 Richard Guenther <rguenther@suse.de>
16651
16652 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
16653 expansion result to bitfield precision if required.
16654
16655 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16656
16657 * config.gcc (i[3456x]86-*-netware*): Remove.
16658
16659 * gthr-nks.h: Remove.
16660 * configure.ac (enable_threads): Remove nks.
16661 * configure: Regenerate.
16662
16663 * config/i386/i386.c (ix86_encode_section_info): Remove netware
16664 reference.
16665 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
16666 <netware.h> reference.
16667
16668 * config/i386/netware-libgcc.c,
16669 gcc/config/i386/netware-libgcc.def,
16670 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
16671 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
16672 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
16673 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
16674
16675 * doc/extend.texi (Function Attributes,
16676 callee_pop_aggregate_return): Remove i?86-netware reference.
16677 * doc/install.texi (Configuration, --enable-threads): Remove nks.
16678
16679 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16680
16681 PR target/49746
16682 Revert:
16683 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16684
16685 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
16686 patterns.
16687
16688 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
16689
16690 PR middle-end/49732
16691 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
16692
16693 2011-07-16 Matthias Klose <doko@ubuntu.com>
16694
16695 * doc/install.texi: Document --enable-static-libjava.
16696
16697 2011-07-15 Richard Henderson <rth@redhat.com>
16698
16699 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
16700 Replace all three arguments by returning a VEC of edges.
16701 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
16702 pointers and counts.
16703 (fix_edges_for_rarely_executed_code): Merge ...
16704 (rest_of_handle_partition_blocks): ... into...
16705 (partition_hot_cold_basic_blocks): ... here. Return todo items if
16706 any work was performed.
16707 (pass_partition_blocks): Clear todo_flags_finish.
16708
16709 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
16710 Jakub Jelinek <jakub@redhat.com>
16711 Jonathan Wakely <jwakely.gcc@gmail.com>
16712
16713 PR libstdc++/49745
16714 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
16715 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
16716
16717 2011-07-15 Jason Merrill <jason@redhat.com>
16718
16719 PR testsuite/49741
16720 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
16721 rather than --tool_opts.
16722
16723 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
16724
16725 * doc/plugins.texi (Building GCC plugins): gengtype needs its
16726 corresponding gtype.state.
16727
16728 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16729
16730 PR target/49723
16731 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
16732
16733 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
16734
16735 PR target/48220
16736 * doc/md.texi (Standard Names): Document window_save.
16737 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
16738 expand_debug_expr and expand_debug_source_expr. If the target has
16739 a window_save instruction, adjust the ENTRY_VALUE_EXP.
16740 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
16741 SSA_NAME_VAR is a parameter.
16742 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
16743 * var-tracking.c (parm_reg_t): New type and associated vector type.
16744 (windowed_parm_regs): New variable.
16745 (adjust_insn): If the target has a window_save instruction and this
16746 is the instruction, make its effect on parameter registers explicit.
16747 (next_non_note_insn_var_location): New function.
16748 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
16749 (vt_add_function_parameter): If the target has a window_save insn,
16750 adjust the incoming RTL and record that in windowed_parm_regs.
16751 (vt_finalize): Free windowed_parm_regs.
16752
16753 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
16754
16755 * doc/invoke.texi (C6X Options): New section.
16756 * doc/md.texi (TI C6X family): New section.
16757 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
16758 tic6x-*-uclinux.
16759 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
16760 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
16761 Provide C6X definitions.
16762 * config/c6x/c6x.md: New file.
16763 * config/c6x/constraints.md: New file.
16764 * config/c6x/predicates.md: New file.
16765 * config/c6x/c6x-sched.md.in: New file.
16766 * config/c6x/c6x-sched.md: New file.
16767 * config/c6x/gensched.sh: New file.
16768 * config/c6x/c6x-mult.md.in: New file.
16769 * config/c6x/genmult.sh: New file.
16770 * config/c6x/c6x-mult.md: New file.
16771 * config/c6x/sync.md: New file.
16772 * config/c6x/c6x-protos.h: New file.
16773 * config/c6x/sfp-machine.h: New file.
16774 * config/c6x/c6x.c: New file.
16775 * config/c6x/c6x.h: New file.
16776 * config/c6x/crti.s: New file.
16777 * config/c6x/crtn.s: New file.
16778 * config/c6x/lib1funcs.asm: New file.
16779 * config/c6x/c6x-modes.def: New file.
16780 * config/c6x/genopt.sh: New file.
16781 * config/c6x/c6x.opt: New file.
16782 * config/c6x/c6x-tables.opt: New file.
16783 * config/c6x/c6x-opts.h: New file.
16784 * config/c6x/c6x-isas.def: New file.
16785 * config/c6x/elf.h: New file.
16786 * config/c6x/elf-common.h: New file.
16787 * config/c6x/uclinux-elf.h: New file.
16788 * config/c6x/t-c6x: New file.
16789 * config/c6x/t-c6x-elf: New file.
16790 * config/c6x/t-c6x-uclinux: New file.
16791 * config/c6x/t-c6x-softfp: New file.
16792 * config/c6x/gtd.c: New file.
16793 * config/c6x/gtf.c: New file.
16794 * config/c6x/ltd.c: New file.
16795 * config/c6x/ltf.c: New file.
16796 * config/c6x/ged.c: New file.
16797 * config/c6x/gef.c: New file.
16798 * config/c6x/led.c: New file.
16799 * config/c6x/lef.c: New file.
16800 * config/c6x/eqd.c: New file.
16801 * config/c6x/eqf.c: New file.
16802 * config/c6x/libgcc-c6xeabi.ver: New file.
16803
16804 Revert
16805 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
16806 PR rtl-optimization/11320
16807 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
16808 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
16809 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
16810 current_sched_info->compute_jump_reg_dependencies. Record which
16811 registers are used and which registers are set by the jump.
16812 Clear deps->reg_conditional_sets after a barrier.
16813 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
16814 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
16815 (init_deps): Initialize reg_conditional_sets.
16816 (free_deps): Clear reg_conditional_sets.
16817 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
16818 Mark registers live on entry of the fallthrough block and conditionally
16819 set as set by the jump. Mark registers live on entry of non-fallthrough
16820 blocks as used by the jump.
16821 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
16822 Mark new parameters as unused.
16823
16824 2011-07-14 Andrew Pinski <pinskia@gmail.com>
16825
16826 PR tree-opt/49309
16827 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
16828 Use fold_build2_loc instead of build2.
16829 Use the correct type for the new tree.
16830
16831 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
16832
16833 PR rtl-optimization/11320
16834 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
16835 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
16836
16837 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
16838
16839 PR target/49487
16840 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
16841 of REG.
16842 (*rotw<mode>): Use const_int_operand for operand2.
16843 Use match_scatch for operand3.
16844 (*rotb<mode>): Ditto
16845 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
16846
16847 2011-07-14 Richard Guenther <rguenther@suse.de>
16848
16849 PR tree-optimization/49651
16850 * tree-ssa-structalias.c (get_constraint_for_1): Properly
16851 handle dereferences with subvariables.
16852
16853 2011-07-14 Richard Guenther <rguenther@suse.de>
16854
16855 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
16856 (fold_stmt_1): Do it here directly on gimple and as a first thing.
16857
16858 2011-07-14 Richard Guenther <rguenther@suse.de>
16859
16860 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
16861 not bool_var when folding bool_var != 1 or bool_var == 0.
16862
16863 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
16864
16865 * haifa-sched.c (schedule_insns): Remove outdated comment.
16866 (schedule_block): When computing a known value for TODO_SPEC,
16867 just set it rather than using logical operations.
16868 (try_ready): Likewise. Use a local variable rather than a
16869 pointer to TODO_SPEC. Reorder an if statement to move the
16870 easy case to the then block.
16871 * sched-deps.c (dep_spec_p): New static function.
16872 (update_dep): Use it to decide whether to call
16873 change_spec_dep_to_hard.
16874 (get_back_and_forw_lists): Use it.
16875 (sd_resolve_dep): Likewise.
16876 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
16877 (haifa_note_mem_dep): Likewise.
16878 (check_dep): Likewise.
16879 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
16880 (sched_free_deps): Free in two passes.
16881
16882 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
16883
16884 PR middle-end/49736
16885 * expr.c (all_zeros_p): Undo bogus part of last change.
16886
16887 2011-07-14 Matthias Klose <doko@ubuntu.com>
16888
16889 * doc/extend.texi (optimize attribute): Fix typo.
16890
16891 2011-07-14 Richard Guenther <rguenther@suse.de>
16892
16893 * gimplify.c (gimplify_expr): Only do required conversions.
16894
16895 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
16896
16897 PR target/43746
16898 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
16899 i.e. use default_elf_select_section.
16900 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
16901 (READONLY_DATA_SECTION_ASM_OP): Remove.
16902 (TARGET_ASM_NAMED_SECTION): Move from here...
16903 * config/avr/avr.c: ...to here.
16904 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
16905 (avr_asm_named_section): Make static.
16906
16907 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16908
16909 PR bootstrap/49739
16910 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
16911 and crtfastmath.o for Linux/x86.
16912
16913 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
16914
16915 * haifa-sched.c: Include "hashtab.h"
16916 (sched_no_dce): New global variable.
16917 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
16918 SHADOW_P): New macros.
16919 (last_clock_var, cycle_issued_insns): Move declarations.
16920 (must_backtrack): New static variable.
16921 (struct delay_pair): New structure.
16922 (delay_htab, delay_htab_i2): New static variables.
16923 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
16924 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
16925 functions.
16926 (dep_cost_1): If delay pairs exist, try to look up the insns and
16927 use the correct pair delay if we find them.
16928 (rank-for_schedule): Tweak priority for insns that must be scheduled
16929 soon to avoid backtracking.
16930 (queue_insn): Detect conditions which force backtracking.
16931 (ready_add): Likewise.
16932 (struct sched_block_state): Add member shadows_only_p.
16933 (struct haifa_save_data): New structure.
16934 (backtrack_queue): New static variable.
16935 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
16936 unschedule_insns_until, restore_last_backtrack_point,
16937 free_topmost_backtrack_point, free_backtrack_queue,
16938 estimate_insn_tick, estimate_shadow_tick): New functions.
16939 (prune_ready_list): New arg shadows_only_p. All callers changed.
16940 If true, remove everything that isn't SHADOW_P. Look up delay
16941 pairs and estimate ticks to avoid scheduling the first insn too early.
16942 (verify_shadows): New function.
16943 (schedule_block): Add machinery to enable backtracking.
16944 (sched_init): Take sched_no_dce into account when setting
16945 DF_LR_RUN_DCE.
16946 (free_delay_pairs): New function.
16947 (init_h_i_d): Initialize INSN_EXACT_TICK.
16948 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
16949 * sched-deps.c (sd_unresolve_dep): New function.
16950 * sched-int. (struct haifa_sched_info): New fields save_state
16951 and restore_state.
16952 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
16953 feeds_backtrack_insn and shadow_p.
16954 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
16955 (sched_no_dce): Declare variable.
16956 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
16957 sd_unresolve_dep): Declare functions.
16958 * modulo-sched.c (sms_sched_info): Clear the two new fields.
16959 * sched-rgn.c (rgn_const_sched_info): Likewise.
16960 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
16961 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
16962 (ebb_sched_info): Add them for the two new fields.
16963 (add_deps_for_risky_insns): Call add_delay_dependencies.
16964
16965 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
16966
16967 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
16968 Rename -mr11.
16969 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
16970 (rs6000_call_indirect_aix): Ditto.
16971 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
16972 (call_indirect_aix<ptrsize>_internal): Ditto.
16973 (call_indirect_aix<ptrsize>_nor11): Ditto.
16974 (call_indirect_aix<ptrsize>_internal2): Ditto.
16975 (call_value_indirect_aix<ptrsize>): Ditto.
16976 (call_value_indirect_aix<ptrsize>_internal): Ditto.
16977 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
16978 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
16979 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
16980
16981 2011-07-13 Jason Merrill <jason@redhat.com>
16982
16983 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
16984
16985 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16986
16987 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
16988 * config/spu/spu.md ("clrsb<mode>2"): New expander.
16989
16990 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
16991
16992 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
16993 * configure: Regenerate.
16994
16995 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16996
16997 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
16998 (asm_file_start): Remove.
16999 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
17000 free_bb_for_insn around code that modifies insns before
17001 restarting df analysis.
17002
17003 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17004
17005 PR target/49541
17006 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
17007 (LINK_SPEC): ... here.
17008
17009 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
17010
17011 * haifa-sched.c (struct sched_block_state): New.
17012 (schedule_block): Move some local variables into such a structure.
17013
17014 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17015
17016 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
17017 * config/i386/t-crtpc: Remove.
17018 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
17019 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
17020 tmake_file.
17021 (x86_64-*-darwin*): Likewise.
17022 (i[34567]86-*-linux*): Likewise.
17023 (x86_64-*-linux*): Likewise.
17024
17025 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
17026 Handle -mpc32, -mpc64, -mpc80.
17027
17028 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17029
17030 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
17031 * config/alpha/t-crtfm: Remove.
17032 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
17033 * config/i386/t-crtfm: Remove.
17034 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
17035 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
17036 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
17037 * config/sparc/t-crtfm: Remove.
17038
17039 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
17040 (alpha*-*-freebsd*): Likewise.
17041 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
17042 (x86_64-*-darwin*): Likewise.
17043 (i[34567]86-*-linux*): Likewise.
17044 (x86_64-*-linux*): Likewise.
17045 (x86_64-*-mingw*): Likewise.
17046 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
17047 (ia64*-*-freebsd*): Likewise.
17048 (ia64*-*-linux*): Likewise.
17049 (mips64*-*-linux*): Likewise.
17050 (mips*-*-linux*): Likewise.
17051 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
17052 (sparc64-*-linux*): Likewise.
17053 (sparc64-*-freebsd*): Likewise.
17054
17055 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17056
17057 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
17058 * config/darwin-crt3.c: Move to ../libgcc/config.
17059 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
17060 ($(T)crt3$(objext)): Remove.
17061 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
17062 ($(T)crt2$(objext)): Remove.
17063 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
17064 (powerpc64-*-darwin*): Likewise.
17065
17066 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
17067
17068 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
17069
17070 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
17071 (addsi_1_zext): This.
17072
17073 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
17074
17075 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
17076 * doc/tm.texi: Regenerate.
17077 * target.def (mergeable_rodata_prefix): New defhookpod.
17078 * varasm.c (mergeable_string_section, mergeable_constant_section):
17079 Use it. Allocate name with alloca.
17080
17081 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
17082
17083 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
17084
17085 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
17086
17087 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
17088 overlap check.
17089
17090 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
17091
17092 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
17093 (count_type_elements): Delete.
17094 (complete_ctor_at_level_p): Declare.
17095 * expr.c (flexible_array_member_p): New function, split out from...
17096 (count_type_elements): ...here. Make static. Replace allow_flexarr
17097 parameter with for_ctor_p. When for_ctor_p is true, return the
17098 number of elements that should appear in the top-level constructor,
17099 otherwise return an estimate of the number of scalars.
17100 (categorize_ctor_elements): Replace p_must_clear with p_complete.
17101 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
17102 (complete_ctor_at_level_p): New function, borrowing union logic
17103 from old categorize_ctor_elements_1.
17104 (mostly_zeros_p): Return true if the constructor is not complete.
17105 (all_zeros_p): Update call to categorize_ctor_elements.
17106 * gimplify.c (gimplify_init_constructor): Update call to
17107 categorize_ctor_elements. Don't call count_type_elements.
17108 Unconditionally prevent clearing for variable-sized types,
17109 otherwise rely on categorize_ctor_elements to detect
17110 incomplete initializers.
17111
17112 2011-07-13 Richard Guenther <rguenther@suse.de>
17113
17114 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
17115 the final type is integral.
17116
17117 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
17118
17119 * sched-int.h (struct _dep): Add member cost.
17120 (DEP_COST, UNKNOWN_DEP_COST): New macros.
17121 * sched-deps.c (init_dep_1): Initialize DEP_COST.
17122 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
17123 (sched_change_pattern): Reset it for dependent insns.
17124
17125 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17126
17127 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
17128 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
17129 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
17130 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
17131 (CRT0_S, MCRT0_S): Remove.
17132 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
17133 Remove.
17134 (s-crt0): Remove.
17135 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
17136
17137 2011-07-12 Eric Botcazou <ebotcazou@adacore.com>
17138
17139 * cse.c (insert_with_costs): Put semi-colon after empty loop body
17140 on the next line.
17141 * emit-rtl.c (push_to_sequence): Likewise.
17142 * haifa-sched.c (max_issue): Likewise.
17143 * matrix-reorg.c (add_allocation_site): Likewise.
17144 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
17145 * reload.c (alternative_allows_const_pool_ref): Likewise.
17146 * sched-rgn.c (rgn_add_block): Likewise.
17147 (rgn_fix_recovery_cfg): Likewise.
17148 * tree.c (attribute_list_contained): Likewise.
17149
17150 2011-07-12 Uros Bizjak <ubizjak@gmail.com>
17151
17152 * config/i386/i386.c: Tidy processor feature bitmasks.
17153 (m_P4_NOCONA): New.
17154
17155 2011-07-12 Andrew Pinski <pinskia@gmail.com>
17156
17157 PR rtl-opt/49474
17158 * cprop.c (find_implicit_sets): Correct the condition.
17159
17160 2011-07-12 Richard Henderson <rth@redhat.com>
17161
17162 PR target/49713
17163 * dwarf2out.h (dwarf_frame_regnum): Remove.
17164 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
17165 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
17166 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
17167 (execute_dwarf2_frame): Initialize them.
17168 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
17169 users of the macros with the variables.
17170 (expand_builtin_dwarf_sp_column): Revert last change.
17171 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
17172 result of DWARF_FRAME_REGNUM into a local variable.
17173
17174 2011-07-12 Richard Henderson <rth@redhat.com>
17175
17176 PR target/49714
17177 * config/i386/i386.c (x86_output_mi_thunk): Use
17178 machopic_indirect_call_target instead of machopic_indirection_name
17179 directly.
17180
17181 2011-07-12 Laurent GUERBY <laurent@guerby.net>
17182 Eric Botcazou <ebotcazou@adacore.com>
17183
17184 * prefix.h: Wrap up in extern "C" block.
17185
17186 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
17187
17188 AMD bdver2 Enablement
17189 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
17190 (case ${target}): Add bdver2.
17191 * config/i386/driver-i386.c (host_detect_local_cpu): Let
17192 -march=native recognize bdver2 processors.
17193 * config/i386/i386-c.c (ix86_target_macros_internal): Add
17194 bdver2 def_and_undef
17195 * config/i386/i386.c (struct processor_costs bdver2_cost): New
17196 bdver2 cost table.
17197 (m_BDVER2): New definition.
17198 (m_AMD_MULTIPLE): Includes m_BDVER2.
17199 (initial_ix86_tune_features): Add bdver2 tuning.
17200 (processor_target_table): Add bdver2 entry.
17201 (static const char *const cpu_names): Add bdver2 entry.
17202 (ix86_option_override_internal): Add bdver2 instruction sets.
17203 (ix86_issue_rate): Add bdver2.
17204 (ix86_adjust_cost): Add bdver2.
17205 (has_dispatch): Add bdver2.
17206 * config/i386/i386.h (TARGET_BDVER2): New definition.
17207 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
17208 (enum processor_type): Add PROCESSOR_BDVER2.
17209 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
17210 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
17211 description.
17212
17213 2011-07-12 Richard Henderson <rth@redhat.com>
17214
17215 PR target/49714
17216 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
17217 destination address in memory on some paths.
17218
17219 2011-07-12 Bernd Schmidt <bernds@codesourcery.com>
17220
17221 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
17222 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
17223 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
17224 * function.c (locate_and_pad_parm): Take it into account.
17225 * target.def (function_arg_round_boundary): New hook.
17226 * targhooks.c (default_function_arg_round_boundary): New function.
17227 * targhooks.h (default_function_arg_round_boundary): Declare.
17228 * doc/tm.texi: Regenerate.
17229
17230 2011-07-12 Richard Guenther <rguenther@suse.de>
17231
17232 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
17233 Do not perform no-op changes.
17234
17235 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
17236
17237 * config/arm/predicates.md (neon_struct_operand): Make a normal
17238 predicate.
17239 (neon_struct_or_register_operand): New predicate.
17240 * config/arm/neon.md (movmisalign<mode>): Replace predicates
17241 with neon_struct_or_register_operand.
17242 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
17243 neon_struct_operand instead of memory_operand.
17244
17245 2011-07-12 Martin Jambor <mjambor@suse.cz>
17246
17247 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
17248 * cgraph.c (cgraph_get_node_or_alias): Removed.
17249 (change_decl_assembler_name): Changed all calls to
17250 cgraph_get_node_or_alias to a call to cgraph_get_node.
17251 (cgraph_make_decl_local): Likewise.
17252 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
17253 * varasm.c (default_binds_local_p_1): Likewise.
17254 (decl_binds_to_current_def_p): Likewise.
17255
17256 2011-07-12 Jakub Jelinek <jakub@redhat.com>
17257
17258 PR tree-optimization/49712
17259 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
17260
17261 2011-07-11 Bernd Schmidt <bernds@codesourcery.com>
17262
17263 * genautomata.c (add_arc): Return void. All callers changed.
17264 (make_automaton): Remove dead code.
17265
17266 2011-07-11 Richard Henderson <rth@redhat.com>
17267
17268 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
17269 (DW_FRAME_POINTER_REGNUM): New.
17270 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
17271 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
17272 (dwf_regno): New.
17273 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
17274 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
17275 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
17276 Use it.
17277 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
17278 * dwarf2out.h (dwarf_frame_regnum): New.
17279 (struct cfa_loc): Document the domain of the reg member.
17280
17281 2011-07-11 Uros Bizjak <ubizjak@gmail.com>
17282
17283 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
17284 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
17285
17286 2011-07-11 Jakub Jelinek <jakub@redhat.com>
17287
17288 PR debug/49676
17289 * dwarf2out.c (int_shift_loc_descriptor): New function.
17290 (int_loc_descriptor): If shorter, emit i as
17291 (i >> shift), shift, DW_OP_shl for suitable shift value.
17292 Similarly, try to optimize large negative values using
17293 DW_OP_neg of a positive value if shorter.
17294 (size_of_int_shift_loc_descriptor): New function.
17295 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
17296 changes.
17297 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
17298 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
17299 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
17300 is shorter.
17301 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
17302 addend as added DW_OP_plus if it is shorter.
17303
17304 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17305
17306 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
17307 (DTORS_SECTION_ASM_OP): Define.
17308
17309 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17310
17311 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
17312 * config/t-dfprules: Move to ../libgcc/config.
17313 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
17314 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
17315 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
17316 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
17317 Likewise.
17318 (i[34567]86-*-cygwin*): Likewise.
17319 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
17320 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
17321 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
17322 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
17323 D64PBIT_FUNCS, D128PBIT_FUNCS.
17324
17325 2011-07-11 Richard Guenther <rguenther@suse.de>
17326
17327 * tree-vrp.c (simplify_conversion_using_ranges): Manually
17328 translate the source value-range through the conversion chain.
17329
17330 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
17331
17332 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
17333
17334 2011-07-11 Arthur Loiret <aloiret@debian.org>
17335
17336 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
17337 a bi-arch compiler defaulting to 31-bit. In this case:
17338 (tmake_file): Add s390/t-linux64.
17339 * doc/install.texi: Add s390-linux to the list of targets supporting
17340 --enable-targets=all.
17341
17342 2011-07-11 Arthur Loiret <aloiret@debian.org>
17343 Matthias Klose <doko@debian.org>
17344
17345 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
17346 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
17347 (tm_file): Add mips/linux64.h.
17348 (tmake_file): Add mips/t-linux64.
17349 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
17350 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
17351 instead of hardcoded mabi=n32.
17352 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
17353 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
17354 convention.
17355
17356 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17357
17358 * passes.c (init_optimization_passes): Add invariant motion pass
17359 after induction variable optimization.
17360
17361 2011-07-11 Georg-Johann Lay <avr@gjlay.de>
17362
17363 PR target/39633
17364 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
17365 offsets 1..5 set cc0 in a usable way.
17366
17367 2011-07-11 Romain Geissler <romain.geissler@gmail.com>
17368
17369 * tree.h (call_expr_arg): Remove.
17370 (call_expr_argp): Likewise.
17371
17372 2011-07-11 Eric Botcazou <ebotcazou@adacore.com>
17373
17374 * config/sparc/sparc.md (save_register_window_1): Rename to...
17375 (window_save): ...this.
17376 * config/sparc/sparc.c (emit_save_register_window): Rename to...
17377 (emit_window_save): ...this.
17378 (sparc_expand_prologue): Adjust to above renaming.
17379
17380 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
17381
17382 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
17383 of movabs for x32.
17384
17385 2011-07-10 Richard Henderson <rth@redhat.com>
17386
17387 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
17388 run final, instead of emitting text directly.
17389
17390 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
17391
17392 * config/i386/i386.c (ix86_option_override_internal): Turn on
17393 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
17394 small PIC models for TARGET_X32.
17395
17396 2011-07-10 Hans-Peter Nilsson <hp@axis.com>
17397
17398 PR target/49684
17399 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
17400 $(LIBGCC2_CFLAGS).
17401
17402 PR bootstrap/49680
17403 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
17404 stray notes and debug insns by using prev_nonnote_nondebug_insn
17405 instead of PREV_INSN.
17406
17407 2011-07-09 Richard Henderson <rth@redhat.com>
17408
17409 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
17410 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
17411 * dwarf2out.c: ... here.
17412 (output_all_cfis): Remove.
17413 (dwarf2out_switch_text_section): Use output_cfis directly.
17414 (size_of_locs): Export.
17415 (output_loc_sequence, output_loc_sequence_raw): Export.
17416 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
17417 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
17418 output_cfa_loc_raw): Move to ...
17419 * dwarfcfi.c: ... here.
17420 * dwarf2out.h: Update decls.
17421
17422 2011-07-09 Richard Henderson <rth@redhat.com>
17423
17424 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
17425 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
17426 * dwarf2cfi.c: ... here.
17427 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
17428 (DWARF_ROUND, DWARF_CIE_ID): Remove.
17429 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
17430 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
17431 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
17432
17433 2011-07-09 Richard Henderson <rth@redhat.com>
17434
17435 * dwarf2cfi.c (cie_return_save): New.
17436 (queue_reg_save): Use compare_reg_or_pc.
17437 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
17438 (dwarf2out_frame_debug_expr): Likewise.
17439 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
17440 (initial_return_save): Likewise.
17441 (execute_dwarf2_frame): Save and restore initial return save from
17442 the cie to the fde.
17443 * config/mips/mips.c (mips_frame_set): Remove special case for
17444 DWARF_FRAME_RETURN_COLUMN.
17445
17446 2011-07-09 Richard Henderson <rth@redhat.com>
17447
17448 * dwarf2cfi.c (lookup_cfa): Remove.
17449 (execute_dwarf2_frame): Assert queues are empty on entry.
17450 Setup initial cfa directly, not via lookup_cfa.
17451 Don't clear args_size state here.
17452
17453 2011-07-09 Richard Henderson <rth@redhat.com>
17454
17455 * dwarf2cfi.c (add_cfi_vec): New.
17456 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
17457 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
17458 (execute_dwarf2_frame): Set add_cfi_vec.
17459
17460 2011-07-09 Richard Henderson <rth@redhat.com>
17461
17462 * defaults.h (ASM_COMMENT_START): Move here...
17463 * dwarf2asm.c: ... from here.
17464 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
17465 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
17466 * varasm.c: Likewise.
17467
17468 2011-07-09 Richard Henderson <rth@redhat.com>
17469
17470 PR debug/49686
17471 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
17472 (create_cfi_notes): ... do it here instead.
17473
17474 2011-07-09 Jakub Jelinek <jakub@redhat.com>
17475
17476 PR debug/49676
17477 * dwarf2out.c (size_of_int_loc_descriptor): New function.
17478 (address_of_int_loc_descriptor): Use it.
17479 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
17480
17481 2011-07-09 Richard Henderson <rth@redhat.com>
17482
17483 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
17484 (prologue, epilogue): New.
17485 (return, *rts): New.
17486 (blockage, setd, seti): New.
17487 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
17488 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
17489 (pdp11_saved_regno): New.
17490 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
17491 generate rtl instead of text.
17492 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
17493 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
17494 * config/pdp11/pdp11-protos.h: Update.
17495
17496 2011-07-09 Richard Henderson <rth@redhat.com>
17497
17498 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
17499 try to insert an rtl prologue here.
17500 (rs6000_output_function_epilogue): Similarly.
17501 * config/rs6000/rs6000.md (prologue): Emit a barrier to
17502 satisfy !TARGET_SCHED_PROLOG.
17503 (epilogue, sibcall_epilogue): Likewise.
17504
17505 2011-07-09 Eric Botcazou <ebotcazou@adacore.com>
17506
17507 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
17508 (FP_REG_P): Delete.
17509 (IN_OR_GLOBAL_P): Likewise.
17510
17511 2011-07-08 Jason Merrill <jason@redhat.com>
17512
17513 PR c++/45437
17514 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
17515 compound assignment.
17516
17517 * cgraph.c (cgraph_add_to_same_comdat_group): New.
17518 * cgraph.h: Declare it.
17519 * ipa.c (function_and_variable_visibility): Make sure thunks
17520 have the right visibility.
17521
17522 2011-07-08 Richard Henderson <rth@redhat.com>
17523
17524 PR bootstrap/49680
17525 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
17526 any tablejump vector.
17527
17528 PR bootstrap/49680
17529 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
17530 end of the prologue.
17531
17532 2011-07-08 Jakub Jelinek <jakub@redhat.com>
17533
17534 PR target/49621
17535 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
17536 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
17537 * config/rs6000/vector.md (vector_select_<mode>,
17538 vector_select_<mode>_uns): Change second operand of NE to
17539 CONST0_RTX (<MODE>mode) instead of const0_rtx.
17540 * config/rs6000/altivec.md (*altivec_vsel<mode>,
17541 *altivec_vsel<mode>_uns): Expect second operand of NE to be
17542 zero_constant of the corresponding vector mode.
17543 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
17544 Likewise.
17545
17546 2011-07-08 Sebastian Pop <sebastian.pop@amd.com>
17547
17548 * graphite-dependences.c (build_alias_set_powerset): Remove
17549 continue from loop, add one more assert.
17550
17551 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
17552
17553 PR target/46779
17554 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
17555 In particular, allow 8-bit values in r28 and r29.
17556 (avr_hard_regno_scratch_ok): Disallow any register that might be
17557 part of the frame pointer.
17558 (avr_hard_regno_rename_ok): Same.
17559 (avr_legitimate_address_p): Don't allow SUBREGs.
17560
17561 2011-07-08 Julian Brown <julian@codesourcery.com>
17562
17563 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
17564 big-endian mode.
17565 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
17566 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
17567 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
17568 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
17569 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
17570 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
17571 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
17572 registers in big-endian mode.
17573
17574 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
17575
17576 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
17577 in terms of another.
17578 (write_attr_value): Write a cast if necessary.
17579
17580 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
17581 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
17582 (REG_WORDS_BIG_ENDIAN): Document.
17583 * doc/tm.texi: Regenerate.
17584 * reload.c (operands_match_p): Take it into account.
17585 (reload_adjust_reg_for_mode): Likewise.
17586 * rtlanal.c (subreg_get_info): Likewise.
17587
17588 2011-07-08 Richard Guenther <rguenther@suse.de>
17589
17590 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
17591 folding.
17592
17593 2011-07-08 Kai Tietz <ktietz@redhat.com>
17594
17595 * fold-const.c (fold_truth_andor): Factored out truth_andor
17596 label from fold_binary as function.
17597 (fold_binary_loc): Replace truth_andor lable
17598 by function fold_truth_andor.
17599
17600 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
17601
17602 PR middle-end/49519
17603 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
17604 check if address is stored in register. If so - give up.
17605 (check_sibcall_argument_overlap_1): Do not perform check of
17606 overlapping when it is call to address.
17607
17608 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
17609
17610 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
17611 of magic '31'.
17612
17613 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
17614
17615 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
17616 GET_MODE_BITSIZE where appropriate.
17617 (widen_leading, expand_parity, expand_ctz, expand_ffs,
17618 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
17619 expand_float, expand_fix): Likewise.
17620 * expr.c (convert_move, convert_modes, expand_expr_real_2,
17621 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
17622 * stor-layout.c (get_mode_bounds): Likewise.
17623 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
17624 Likewise.
17625 * convert.c (convert_to_integer): Likewise.
17626 * expmed.c (expand_shift_1): Likewise.
17627
17628 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
17629 a bitsize.
17630
17631 * optabs.c (expand_binop): Tighten conditions for doubleword
17632 expansions.
17633 (widen_bswap): Assert that mode bitsize and precision are the same.
17634 * stor-layout.c (get_best_mode): Skip modes that have lower
17635 precision than bitsize.
17636 * recog.c (simplify_while_replacing): Assert that bitsize and
17637 precision are the same.
17638
17639 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17640
17641 * Makefile.in (LIBGCOV): Remove.
17642 (libgcc.mvars): Remove LIBGCOV.
17643 * libgov.c: Move to ../libgcc.
17644
17645 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17646
17647 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
17648
17649 2011-07-08 Martin Jambor <mjambor@suse.cz>
17650
17651 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
17652 is too big for total scalarization.
17653
17654 2011-07-07 Richard Henderson <rth@redhat.com>
17655
17656 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
17657 (DBX_DEBUGGING_INFO): Undef.
17658
17659 2011-07-07 Richard Henderson <rth@redhat.com>
17660
17661 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
17662 Handle some opcodes specially for debugging.
17663 * print-rtl.c: Include dwarf2out.h
17664 (print_rtx): Handle NOTE_INSN_CFI.
17665 * Makefile.in (print-rtl.o): Update.
17666
17667 2011-07-07 Richard Henderson <rth@redhat.com>
17668
17669 * tree-pass.h (pass_dwarf2_frame): Declare.
17670 * passes.c (init_optimization_passes): Add it.
17671 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
17672 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
17673 make static, do not call add_cfis_to_fde.
17674 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
17675 dwarf2out_frame_init): Merge into...
17676 (execute_dwarf2_frame): ... here. New function.
17677 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
17678 saved_do_cfi_asm to a tri-state variable.
17679 (gate_dwarf2_frame, pass_dwarf2_frame): New.
17680 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
17681 if it has yet to be done. Don't call dwarf2cfi_function_init.
17682 * dwarf2out.h, debug.h: Update decls.
17683 * final.c (final_start_function): Don't call
17684 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
17685 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
17686 * toplev.c (lang_dependent_init): Likewise.
17687
17688 2011-07-07 Richard Henderson <rth@redhat.com>
17689
17690 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
17691 FDE_TABLE_INCREMENT): Replace with...
17692 (fde_vec): ... this, a new vector.
17693 (current_fde): Remove. Replace all users with cfun->fde.
17694 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
17695 (size_of_aranges, dwarf2out_finish): Likewise.
17696 (dwarf2out_alloc_current_fde): Break out from ...
17697 (dwarf2out_begin_prologue): ... here.
17698 (dwarf2out_frame_init): Remove.
17699 * dwarf2cfi.c: Update all users of current_fde.
17700 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
17701 * dwarf2out.h: Update decls.
17702 (dw_fde_node): Add fde_index member.
17703 * function.h (struct function): Add fde member.
17704
17705 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
17706 Richard Henderson <rth@redhat.com>
17707
17708 * dwarf2cfi.c (add_cfi): Remove.
17709 (dwarf2out_cfi_label): Remove force argument. Only generate the
17710 label name.
17711 (add_fde_cfi): Simplify the different code paths.
17712 (add_cie_cfi): New.
17713 (old_cfa, old_cfa_remember): New.
17714 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
17715 (last_reg_save_label): Remove.
17716 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
17717 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
17718 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
17719 dwarf2out_frame_debug_cfa_expression,
17720 dwarf2out_frame_debug_cfa_restore,
17721 dwarf2out_frame_debug_cfa_window_save,
17722 dwarf2out_frame_debug_expr): Remove label parameter.
17723 (cfi_label_required_p, add_cfis_to_fde): New.
17724 (dwarf2out_frame_debug_after_prologue): New.
17725 (dwarf2cfi_frame_init): Initialize old_cfa.
17726 (dwarf2out_frame_debug_restore_state): Likewise.
17727 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
17728 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
17729 * final.c (final_start_function): Call
17730 dwarf2out_frame_debug_after_prologue.
17731
17732 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
17733 Richard Henderson <rth@redhat.com>
17734
17735 * dwarf2cfi.c (cfi_insn): New.
17736 (dwarf2out_cfi_label): Don't emit cfi label here.
17737 (add_fde_cfi): Create a NOTE_INSN_CFI.
17738 (dwarf2out_frame_debug): Setup cfi_insn.
17739 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
17740 (dwarf2out_cfi_begin_epilogue): Make static.
17741 (dwarf2out_frame_debug_restore_state): Make static.
17742 * dwarf2out.c (output_cfi_directive): Make static.
17743 (dwarf2out_emit_cfi): New.
17744 * dwarf2out.h: Update.
17745 * final.c (final): Remove CFI notes.
17746 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
17747 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
17748 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
17749 * insn-notes.def (NOTE_INSN_CFI): New.
17750 (NOTE_INSN_CFI_LABEL): New.
17751 * rtl.h (union rtunion_def): Add rt_cfi member.
17752 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
17753
17754 2011-07-07 Richard Henderson <rth@redhat.com>
17755
17756 * dwarf2cfi.c: New file.
17757 * Makefile.in (OBJS): Add it.
17758 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
17759 * gengtype.c (open_base_files): Include dwarf2out.h.
17760 * coretypes.h (enum var_init_status): Move from ...
17761 * rtl.h: ... here.
17762 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
17763 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
17764 expand_builtin_dwarf_sp_column, init_return_column_size,
17765 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
17766 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
17767 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
17768 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
17769 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
17770 compute_barrier_args_size, dwarf2out_args_size,
17771 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
17772 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
17773 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
17774 queue_reg_save, dwarf2out_flush_queued_reg_saves,
17775 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
17776 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
17777 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
17778 dwarf2out_frame_debug_cfa_expression,
17779 dwarf2out_frame_debug_cfa_restore,
17780 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
17781 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
17782 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
17783 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
17784 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
17785 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
17786 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
17787 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
17788 dw_loc_descr_node): Move to dwarf2out.h.
17789 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
17790 mem_loc_descriptor): Export.
17791 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
17792 (dwarf2out_frame_init): Extract CIE generation code to
17793 dwarf2cfi_frame_init.
17794
17795 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
17796
17797 PR target/49660
17798 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
17799 MASK_V8PLUS, remove commented out flag and reorder.
17800
17801 2011-07-07 Jakub Jelinek <jakub@redhat.com>
17802
17803 PR c/49644
17804 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
17805 one non-complex and one complex argument, call c_save_expr on both
17806 operands.
17807
17808 2011-07-07 Martin Jambor <mjambor@suse.cz>
17809
17810 PR middle-end/49495
17811 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
17812 (verify_cgraph_node): Some functinality moved to
17813 verify_edge_corresponds_to_fndecl, call it.
17814
17815 2011-07-07 Joseph Myers <joseph@codesourcery.com>
17816
17817 * config.gcc (*local*): Remove.
17818 * doc/install-old.texi: Don't mention local configurations.
17819
17820 2011-07-07 Jakub Jelinek <jakub@redhat.com>
17821
17822 PR debug/49522
17823 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
17824 referencing debug insns that have been reset.
17825 (dead_debug_insert_before): Don't assert reg is non-NULL,
17826 instead return immediately if it is NULL.
17827
17828 2011-07-07 Joseph Myers <joseph@codesourcery.com>
17829
17830 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
17831
17832 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
17833
17834 * hw-doloop.c: New file.
17835 * hw-doloop.h: New file.
17836 * Makefile.in (OBJS): Add hw-doloop.o.
17837 (hw-doloop.o): New rule.
17838 ($(obj_out_file)): Add hw-doloop.h dependency.
17839 * config/bfin/bfin.c: Include "hw-doloop.h".
17840 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
17841 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
17842 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
17843 type changed to hwloop_info. Return bool, true if the loop was
17844 successfully optimized. Remove code that was moved to
17845 hw-doloop.c, and adjust other parts.
17846 (hwloop_fail): New static function, containing parts that used
17847 to be in bfin_optimize_loop.
17848 (bfin_discover_loop, bfin_discover_loops, free_loops,
17849 bfin_reorder_loops): Remove.
17850 (hwloop_pattern_reg): New static function.
17851 (bfin_doloop_hooks): New variable.
17852 (bfin_reorg_loops): Remove most code, call reorg_loops.
17853 * config/bfin/bfin.md (doloop_end splitter): Also enable if
17854 loop counter is a memory_operand.
17855
17856 2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
17857
17858 * config.gcc: Support --with-multilib-list for x86 Linux targets.
17859
17860 * configure.ac: Mention x86-64 for --with-multilib-list.
17861 * configure: Regenerated.
17862
17863 * config/i386/gnu-user64.h (SPEC_64): Support x32.
17864 (SPEC_32): Likewise.
17865 (ASM_SPEC): Likewise.
17866 (LINK_SPEC): Likewise.
17867 (TARGET_THREAD_SSP_OFFSET): Likewise.
17868 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
17869 (SPEC_X32): New.
17870
17871 * config/i386/i386.h (TARGET_X32): New.
17872 (TARGET_LP64): New.
17873 (LONG_TYPE_SIZE): Likewise.
17874 (POINTER_SIZE): Likewise.
17875 (POINTERS_EXTEND_UNSIGNED): Likewise.
17876 (OPT_ARCH64): Support x32.
17877 (OPT_ARCH32): Likewise.
17878
17879 * config/i386/i386.opt (mx32): New.
17880
17881 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
17882 (GLIBC_DYNAMIC_LINKERX32): Likewise.
17883 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
17884 (GLIBC_DYNAMIC_LINKERX32): Likewise.
17885
17886 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
17887 (BIONIC_DYNAMIC_LINKERX32): Likewise.
17888 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
17889
17890 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
17891
17892 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
17893
17894 * doc/invoke.texi: Document -mx32.
17895
17896 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
17897
17898 * doc/invoke.texi (mwords-little-endian): Deprecate.
17899 * config/arm/arm.opt (mwords-little-endian): Likewise.
17900 * config/arm/arm.c (arm_option_override): Warn about the deprecation
17901 of -mwords-little-endian.
17902
17903 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
17904
17905 * reload1.c (choose_reload_regs): Use mode sizes to check whether
17906 an old reload register completely defines the required value.
17907
17908 2011-07-07 Richard Guenther <rguenther@suse.de>
17909
17910 * fold-const.c (fold_unary_loc): Do not strip sign-changes
17911 for NEGATE_EXPR.
17912
17913 2011-07-07 Richard Guenther <rguenther@suse.de>
17914
17915 * tree-vrp.c (simplify_conversion_using_ranges): New function.
17916 (simplify_stmt_using_ranges): Call it.
17917
17918 2011-07-07 Kai Tietz <ktietz@redhat.com>
17919
17920 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
17921 (lookup_logical_inverted_value): Likewise.
17922 (simplify_bitwise_binary_1): Likewise.
17923 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
17924
17925 2011-07-07 Joseph Myers <joseph@codesourcery.com>
17926
17927 * gcc.c (%[Spec]): Don't document.
17928 (struct spec_list): Update comment.
17929 (do_spec_1): Don't handle %[Spec].
17930 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
17931
17932 2011-07-07 Joseph Myers <joseph@codesourcery.com>
17933
17934 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
17935 default based on TARGET_ASM_NAMED_SECTION.
17936 * common/common-target.def (have_named_sections): Default to true.
17937 * common/config/default-common.c: Don't include tm.h.
17938 * common/config/picochip/picochip-common.c
17939 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
17940 * common/config/m32c/m32c-common.c: Remove.
17941 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
17942 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17943 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17944 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17945 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17946 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17947 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
17948
17949 2011-07-07 Jakub Jelinek <jakub@redhat.com>
17950
17951 PR middle-end/49640
17952 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
17953 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
17954
17955 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17956
17957 PR libmudflap/49550
17958 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
17959
17960 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17961
17962 PR target/39150
17963 * configure.ac (gcc_cv_as_hidden): Also accept
17964 x86_64-*-solaris2.1[0-9]*.
17965 (gcc_cv_as_cfi_directive): Likewise.
17966 (gcc_cv_as_comdat_group_group): Likewise.
17967 (set_have_as_tls): Likewise.
17968 * configure: Regenerate.
17969 * config.gcc (i[34567]86-*-solaris2*): Also handle
17970 x86_64-*-solaris2.1[0-9]*.
17971 * config.host (i[34567]86-*-solaris2*): Likewise.
17972 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
17973 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
17974 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
17975 (TARGET_LD_EMULATION): Use it.
17976 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
17977 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
17978 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
17979 (ASM_CPU64_DEFAULT_SPEC): Define.
17980 (ASM_CPU_SPEC): Use %(asm_cpu_default).
17981 (ASM_SPEC): Redefine.
17982 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
17983 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
17984 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
17985 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
17986 configuration.
17987 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
17988
17989 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17990
17991 * config/sol2.h (ASM_SPEC): Split into ...
17992 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
17993 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
17994 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
17995 (ASM_SPEC): Use ASM_SPEC_BASE.
17996 * config/sparc/sol2.h (ASM_SPEC): Redefine.
17997
17998 2011-07-07 Georg-Johann Lay <avr@gjlay.de>
17999
18000 * config/avr/avr.md (*reload_insi): Change predicate #1 to
18001 const_int_operand. Ditto for peep2 producing this insn.
18002 Add argument to output_reload_insisf call.
18003 (*movsi,*movsf): Add argument to output_movsisf call.
18004 (*reload_insf): New insn and new peep2 to produce it.
18005 * config/avr/avr-protos.h (output_movsisf): Change prototype.
18006 (output_reload_insisf): Change prototype.
18007 * config/avr/avr.c (avr_asm_len): New function.
18008 (output_reload_insisf): Rewrite.
18009 (output_movsisf): Change prototype. output_reload_insisf for
18010 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
18011 (adjust_insn_length): Add argument to output_movsisf and
18012 output_reload_insisf call.
18013
18014 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
18015
18016 * emit-rtl.c (paradoxical_subreg_p): New function.
18017 * rtl.h (paradoxical_subreg_p): Declare.
18018 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
18019 apply_distributive_law, simplify_comparison, simplify_set): Use it.
18020 * cse.c (record_jump_cond, cse_insn): Likewise.
18021 * expr.c (force_operand): Likewise.
18022 * rtlanal.c (num_sign_bit_copies1): Likewise.
18023 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
18024 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
18025 (push_reload): Use precision to check for paradoxical subregs.
18026 * expmed.c (extract_bit_field_1): Likewise.
18027
18028 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
18029 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
18030 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
18031 simplify_set, simplify_logical, expand_compound_operation,
18032 make_extraction, force_to_mode, if_then_else_cond, extended_count,
18033 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
18034 record_value_for_reg): Likewise.
18035 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
18036 * simplify-rtx. c (simplify_unary_operation_1,
18037 simplify_binary_operation_1, simplify_const_relational_operation):
18038 Likewise.
18039
18040 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
18041 instead of GET_MODE_BITSIZE where appropriate.
18042 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
18043 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
18044 init_num_sign_bit_copies_in_rep): Likewise.
18045 * cse.c (fold_rtx, cse_insn): Likewise.
18046 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
18047 * simplify-rtx.c (simplify_unary_operation_1,
18048 simplify_const_unary_operation, simplify_binary_operation_1,
18049 simplify_const_binary_operation, simplify_ternary_operation,
18050 simplify_const_relational_operation, simplify_subreg): Likewise.
18051 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
18052 simplify_if_then_else, simplify_set, expand_compound_operation,
18053 expand_field_assignment, make_extraction, if_then_else_cond,
18054 make_compound_operation, force_to_mode, make_field_assignment,
18055 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
18056 extended_count, try_widen_shift_mode, simplify_shift_const_1,
18057 simplify_comparison, record_promoted_value, simplify_compare_const,
18058 record_dead_and_set_regs_1): Likewise.
18059
18060 Revert:
18061 * simplify-rtx.c (simplify_const_binary_operation): Use the
18062 shift_truncation_mask hook instead of performing modulo by width.
18063 Compare against mode precision, not bitsize.
18064 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
18065 Use shift_truncation_mask instead of constructing the value manually.
18066
18067 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
18068
18069 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
18070 declaration.
18071 (rs6000_save_toc_in_prologue_p): Ditto.
18072
18073 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
18074 up the static chain (r11) during indirect function calls.
18075 (-msave-toc-indirect): New undocumented debug switch.
18076
18077 * config/rs6000/rs6000.c (struct machine_function): Add
18078 save_toc_in_prologue field to note whether the prologue needs to
18079 save the TOC value in the reserved stack location.
18080 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
18081 to save the TOC in the prologue, do so.
18082 (rs6000_trampoline_init): Don't allow creating AIX style
18083 trampolines if -mno-r11 is in effect.
18084 (rs6000_call_indirect_aix): New function to create AIX style
18085 indirect calls, adding support for -mno-r11 to suppress loading
18086 the static chain, and saving the TOC in the prologue instead of
18087 the call body.
18088 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
18089 TOC in the prologue.
18090
18091 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
18092 register numbers.
18093 (TOC_REGNUM): Ditto.
18094 (STATIC_CHAIN_REGNUM): Ditto.
18095 (ARG_POINTER_REGNUM): Ditto.
18096 (SFP_REGNO): Delete, unused.
18097 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
18098 function descriptor offsets.
18099 (TOC_SAVE_OFFSET_64BIT): Ditto.
18100 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
18101 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
18102 (AIX_FUNC_DESC_SC_32BIT): Ditto.
18103 (AIX_FUNC_DESC_SC_64BIT): Ditto.
18104 (ptrload): New mode attribute for the appropriate load of a pointer.
18105 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
18106 (call_indirect_aix64): Ditto.
18107 (call_value_indirect_aix32): Ditto.
18108 (call_value_indirect_aix64): Ditto.
18109 (call_indirect_nonlocal_aix32_internal): Ditto.
18110 (call_indirect_nonlocal_aix32): Ditto.
18111 (call_indirect_nonlocal_aix64_internal): Ditto.
18112 (call_indirect_nonlocal_aix64): Ditto.
18113 (call): Rewrite AIX indirect function calls. Add support for
18114 eliminating the static chain, and for moving the save of the TOC
18115 to the function prologue.
18116 (call_value): Ditto.
18117 (call_indirect_aix<ptrsize>): Ditto.
18118 (call_indirect_aix<ptrsize>_internal): Ditto.
18119 (call_indirect_aix<ptrsize>_internal2): Ditto.
18120 (call_indirect_aix<ptrsize>_nor11): Ditto.
18121 (call_value_indirect_aix<ptrsize>): Ditto.
18122 (call_value_indirect_aix<ptrsize>_internal): Ditto.
18123 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
18124 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
18125 (call_nonlocal_aix32): Relocate in the rs6000.md file.
18126 (call_nonlocal_aix64): Ditto.
18127
18128 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
18129 -mno-r11 documentation.
18130
18131 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
18132
18133 PR other/49658
18134 * doc/extend.texi (Compound Literals): Fix typo.
18135
18136 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
18137
18138 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
18139
18140 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
18141
18142 * configure.ac (plugin-version.h): Generate
18143 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
18144 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
18145 macros.
18146
18147 * configure: Regenerate.
18148
18149 * doc/plugins.texi (Building GCC plugins): Mention
18150 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
18151
18152 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
18153
18154 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
18155 * combine.c (make_extraction, gen_lowpart_or_truncate,
18156 apply_distributive_law, simplify_comparison,
18157 reg_truncated_to_mode, record_truncated_value): Use it.
18158 * cse.c (notreg_cost): Likewise.
18159 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
18160 * expr.c (convert_move, convert_modes): Likewise.
18161 * optabs.c (expand_binop, expand_unop): Likewise.
18162 * postreload.c (move2add_last_label): Likewise.
18163 * regmove.c (optimize_reg_copy_3): Likewise.
18164 * rtlhooks.c (gen_lowpart_general): Likewise.
18165 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18166
18167 2011-07-06 Joseph Myers <joseph@codesourcery.com>
18168
18169 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
18170
18171 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
18172
18173 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
18174 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
18175 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
18176 (simplify_const_unary_operation, simplify_binary_operation_1,
18177 simplify_const_binary_operation, simplify_const_relational_operation):
18178 Use them. Use GET_MODE_MASK for masking and sign-extensions.
18179 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
18180 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
18181 simplify_shift_const_1, simplify_comparison): Likewise.
18182 * expr.c (convert_modes): Likewise.
18183 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
18184 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
18185 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
18186
18187 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
18188
18189 2011-07-06 Richard Guenther <rguenther@suse.de>
18190
18191 PR tree-optimization/49645
18192 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
18193 register variables.
18194 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
18195 in type qualification here ...
18196 (copy_reference_ops_from_ref): ... not here.
18197 (vn_reference_lookup_3): ... or here.
18198 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
18199 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
18200
18201 2011-07-06 Ian Lance Taylor <iant@google.com>
18202
18203 * doc/install.texi (Configuration): It's
18204 --enable-gnu-indirect-function, not --enable-indirect-function.
18205
18206 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
18207
18208 * simplify-rtx.c (simplify_const_binary_operation): Use the
18209 shift_truncation_mask hook instead of performing modulo by width.
18210 Compare against mode precision, not bitsize.
18211 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
18212 Use shift_truncation_mask instead of constructing the value manually.
18213
18214 2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
18215
18216 PR middle-end/47383
18217 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
18218 address computation and convert to address_mode if needed.
18219
18220 2011-07-06 Richard Guenther <rguenther@suse.de>
18221
18222 * tree.c (build_common_tree_nodes_2): Merge with
18223 build_common_tree_nodes.
18224 * tree.h (build_common_tree_nodes): Adjust prototype.
18225 (build_common_tree_nodes_2): Remove.
18226 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
18227 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
18228
18229 2011-07-05 Jakub Jelinek <jakub@redhat.com>
18230
18231 PR tree-optimization/49618
18232 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
18233 t recurse on the decl.
18234 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
18235 return true if expr isn't known to be defined in current
18236 TU or some other LTO partition.
18237
18238 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
18239
18240 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
18241 override CASE_VALUES_THRESHOLD.
18242
18243 * stmt.c (toplevel): Include params.h.
18244 (case_values_threshold): Use the --param case-values-threshold
18245 value if non-zero, otherwise use machine dependent value.
18246 (expand_case): Use case_values_threshold.
18247
18248 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
18249
18250 * doc/invoke.texi (--param case-values-threshold): Document.
18251
18252 2011-07-05 Richard Henderson <rth@redhat.com>
18253
18254 * dwarf2out.c (dwarf2out_cfi_label): Make static.
18255 (dwarf2out_flush_queued_reg_saves): Make static.
18256 (dwarf2out_reg_save): Remove.
18257 (dwarf2out_return_save): Remove.
18258 (dwarf2out_return_reg): Remove.
18259 (dwarf2out_reg_save_reg): Remove.
18260 (dwarf2out_def_cfa): Merge into ...
18261 (dwarf2out_frame_init): ... here.
18262 * dwarf2out.h, tree.h: Remove declarations as necessary.
18263
18264 2011-07-05 Richard Henderson <rth@redhat.com>
18265
18266 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
18267 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
18268 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
18269 the alloc insn.
18270
18271 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
18272 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
18273 (process_epilogue): Don't call dwarf2out_def_cfa.
18274
18275 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
18276 indicate the return address save.
18277 (process_cfa_register): Likewise.
18278
18279 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
18280 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
18281
18282 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
18283 for ar.pfs save at alloc insn.
18284
18285 2011-07-05 Richard Henderson <rth@redhat.com>
18286
18287 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
18288 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
18289 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
18290 stack pointer save.
18291 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
18292 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
18293 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
18294 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
18295
18296 2011-07-05 Richard Henderson <rth@redhat.com>
18297
18298 * config/vax/vax.md (define_c_enum unspecv): New. Define the
18299 VUNSPEC_* constants here instead of via define_constants.
18300 (VUNSPEC_PEM): New constant.
18301 (procedure_entry_mask): New insn.
18302 (prologue): New expander.
18303 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
18304 (vax_expand_prologue): Rename from vax_output_function_prologue;
18305 emit rtl instead of text.
18306 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
18307 (print_operand): Add 'x' prefix.
18308
18309 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
18310
18311 PR middle-end/47715
18312 * calls.c (precompute_register_parameters): Promote the function
18313 argument before checking non-legitimate constant.
18314
18315 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
18316
18317 PR tree-optimization/47654
18318 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
18319 (lst_do_strip_mine_loop): Return an int.
18320 (lst_do_strip_mine): Same.
18321 (scop_do_strip_mine): Same.
18322 (scop_do_block): Loop blocking should strip-mine at least two loops.
18323 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
18324 (scop_do_interchange): Same.
18325 * graphite-poly.h (scop_do_interchange): Update declaration.
18326 (scop_do_strip_mine): Same.
18327
18328 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
18329
18330 * graphite-clast-to-gimple.c (precision_for_value): Removed.
18331 (precision_for_interval): Removed.
18332 (gcc_type_for_interval): Use mpz_sizeinbase.
18333
18334 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
18335
18336 * graphite-ppl.h (value_max): Correct computation of max.
18337
18338 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
18339
18340 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
18341
18342 2011-07-05 Richard Guenther <rguenther@suse.de>
18343
18344 * c-decl.c (c_init_decl_processing): Defer building common
18345 tree nodes to c_common_nodes_and_builtins.
18346
18347 2011-07-05 Razya Ladelsky <razya@il.ibm.com>
18348
18349 PR tree-optimization/49580
18350 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
18351 the loop's number of iterations.
18352 * tree-parloops.c (transform_to_exit_first_loop): Add the
18353 handling of the loop's number of iterations before the call
18354 to gimple_duplicate_sese_tail.
18355 Insert the stmt caclculating the new rhs of the loop's
18356 condition stmt to the preheader instead of iters_bb.
18357
18358 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
18359
18360 PR rtl-optimization/47449
18361 * fwprop.c (forward_propagate_subreg): Don't propagate hard
18362 register nor zero/sign extended hard register.
18363
18364 2011-07-05 Richard Guenther <rguenther@suse.de>
18365
18366 PR tree-optimization/49518
18367 PR tree-optimization/49628
18368 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
18369 irrelevant and invariant data-references.
18370 (vect_analyze_data_ref_access): For invariant loads clear the
18371 group association.
18372
18373 2011-07-04 Jakub Jelinek <jakub@redhat.com>
18374
18375 PR rtl-optimization/49619
18376 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
18377 pass VOIDmode as op0_mode to recursive call, and return temp even
18378 when different from tor, just if it is not IOR of the original
18379 PLUS arguments.
18380
18381 PR rtl-optimization/49472
18382 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
18383 negating MULT, negate the second operand instead of first.
18384 (simplify_binary_operation_1) <case MULT>: If one operand is
18385 a NEG and the other is MULT, don't attempt to optimize by negation
18386 of the MULT operand if it only moves the NEG operation around.
18387
18388 PR debug/49602
18389 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
18390 get_current_def return value if it can't be trusted to be
18391 the current value of the variable in the current bb.
18392
18393 2011-07-04 Uros Bizjak <ubizjak@gmail.com>
18394
18395 PR target/49600
18396 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
18397 general register to memory for !TARGET_INTER_UNIT_MOVES.
18398
18399 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
18400
18401 PR target/44643
18402 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
18403 instead of TREE_READONLY.
18404
18405 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
18406
18407 * doc/extend.texi (AVR Built-in Functions): Update documentation
18408 of __builtin_avr_fmul*.
18409 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
18410 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
18411 * config/avr/avr.md (fmul): Rename to fmul_insn.
18412 (fmuls): Rename to fmuls_insn.
18413 (fmulsu): Rename to fmulsu_insn.
18414 (fmul,fmuls,fmulsu): New expander.
18415 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
18416 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
18417 * config/avr/libgcc.S (__fmul): New function.
18418 (__fmuls): New function.
18419 (__fmulsu,__fmulsu_exit): New function.
18420
18421 2011-07-04 Richard Guenther <rguenther@suse.de>
18422
18423 PR tree-optimization/49615
18424 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
18425 basic-block index check.
18426
18427 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
18428
18429 * longlong.h (count_leading_zeros, count_trailing_zeros,
18430 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
18431 resp. 64.
18432
18433 2011-07-03 Ira Rosen <ira.rosen@linaro.org>
18434
18435 PR tree-optimization/49610
18436 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
18437 a basic block.
18438
18439 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
18440 Olivier Hainque <hainque@adacore.com>
18441 Nicolas Setton <setton@adacore.com>
18442
18443 * tree.h (TYPE_ARTIFICIAL): New flag.
18444 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
18445 the DIE of the type if it is artificial.
18446 (gen_array_type_die): Likewise.
18447 (gen_enumeration_type_die): Likewise.
18448 (gen_struct_or_union_type_die): Likewise.
18449 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
18450 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
18451
18452 2011-07-01 Jakub Jelinek <jakub@redhat.com>
18453
18454 * tree-object-size.c (pass_through_call): Handle
18455 BUILT_IN_ASSUME_ALIGNED.
18456
18457 2011-07-01 Martin Jambor <mjambor@suse.cz>
18458
18459 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
18460
18461 2011-07-01 H.J. Lu <hongjiu.lu@intel.com>
18462
18463 PR middle-end/48016
18464 * explow.c (update_nonlocal_goto_save_area): Use proper mode
18465 for stack save area.
18466 * function.c (expand_function_start): Likewise.
18467
18468 2011-07-01 Richard Guenther <rguenther@suse.de>
18469
18470 PR middle-end/49596
18471 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
18472 may have unknown refs.
18473
18474 2011-07-01 Kai Tietz <ktietz@redhat.com>
18475
18476 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
18477
18478 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18479
18480 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
18481 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
18482 (Specific, mips-sgi-irix6): Likewise.
18483
18484 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18485
18486 PR libmudflap/49549
18487 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
18488
18489 2011-07-01 Jakub Jelinek <jakub@redhat.com>
18490
18491 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
18492 [idx]= and [idx1 ... idx2]= before initializers if needed for
18493 array initializers.
18494
18495 2011-07-01 Chen Liqin <liqin.gcc@gmail.com>
18496
18497 * config.gcc (score-*-elf): Remove score7.o.
18498 * config/score/t-score-elf: Likewise.
18499 * config/score/score.c: Merge score7 to score.c and
18500 remove forwarding functions.
18501 * config/score/score7.c: Deleted.
18502 * config/score/score7.h: Deleted.
18503
18504 2011-07-01 Richard Guenther <rguenther@suse.de>
18505
18506 PR tree-optimization/49603
18507 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
18508
18509 2011-06-30 Martin Jambor <mjambor@suse.cz>
18510
18511 * tree-sra.c (struct access): Rename total_scalarization to
18512 grp_total_scalarization
18513 (completely_scalarize_var): New function.
18514 (sort_and_splice_var_accesses): Set total_scalarization in the
18515 representative access.
18516 (analyze_access_subtree): Propagate total scalarization accross the
18517 tree, no holes in totally scalarized trees, simplify coverage
18518 computation.
18519 (analyze_all_variable_accesses): Call completely_scalarize_var instead
18520 of completely_scalarize_record.
18521
18522 2011-06-30 Richard Henderson <rth@redhat.com>
18523
18524 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
18525 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
18526 * config/i386/i386.c: Don't include dwarf2out.h.
18527 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
18528 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
18529 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
18530 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
18531 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
18532
18533 2011-06-30 Richard Henderson <rth@redhat.com>
18534
18535 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
18536 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
18537 * final.c (final_scan_insn): Look for it, and invoke
18538 dwarf2out_frame_debug before the insn if found.
18539
18540 2011-06-30 Richard Henderson <rth@redhat.com>
18541
18542 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
18543 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
18544
18545 2011-06-30 Richard Henderson <rth@redhat.com>
18546
18547 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
18548 Define a vector of this type.
18549 (regs_saved_in_regs): Use a VEC.
18550 (num_regs_saved_in_regs): Remove.
18551 (compare_reg_or_pc): New.
18552 (record_reg_saved_in_reg): Split out from...
18553 (dwarf2out_flush_queued_reg_saves): ... here.
18554 (clobbers_queued_reg_save): Update for VEC.
18555 (reg_saved_in): Likewise.
18556 (dwarf2out_frame_debug_init): Likewise.
18557 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
18558 (dwarf2out_frame_debug_cfa_register): Likewise.
18559
18560 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
18561
18562 PR tree-optimization/49572
18563 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
18564 type of the RHS instead of that of the LHS for the expression type.
18565
18566 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
18567
18568 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
18569 unconditionally.
18570
18571 2011-06-30 Richard Guenther <rguenther@suse.de>
18572
18573 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
18574 * tree-ssa-structalias.c (create_variable_info_for): Do not
18575 add initial constraints for non-var-decls. Properly handle
18576 globals in other ltrans partitions.
18577 (intra_create_variable_infos): Manually create constraints for
18578 the fake no-alias parameter.
18579 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
18580 and assert there are no clones.
18581
18582 2011-06-30 Richard Guenther <rguenther@suse.de>
18583
18584 PR tree-optimization/46787
18585 * tree-data-ref.c (dr_address_invariant_p): Remove.
18586 (find_data_references_in_stmt): Invariant accesses are ok now.
18587 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
18588 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
18589 invariant loads.
18590
18591 2011-06-30 Martin Jambor <mjambor@suse.cz>
18592
18593 PR tree-optimization/49094
18594 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
18595 (build_accesses_from_assign): Use it.
18596
18597 2011-06-30 Jakub Jelinek <jakub@redhat.com>
18598
18599 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
18600 handling of BUILT_IN_ASSUME_ALIGNED.
18601
18602 PR debug/49364
18603 * dwarf2out.c (output_abbrev_section): Don't return early
18604 if abbrev_die_table_in_use is 1.
18605 (dwarf2out_finish): Instead don't call output_abbrev_section
18606 nor emit abbrev_section_label in that case.
18607
18608 2011-06-30 Nick Clifton <nickc@redhat.com>
18609
18610 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
18611 for the V850E.
18612
18613 2011-06-30 Jakub Jelinek <jakub@redhat.com>
18614
18615 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
18616 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
18617
18618 2011-06-30 Ira Rosen <ira.rosen@linaro.org>
18619
18620 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
18621 both pattern and original statements if necessary.
18622 (vect_transform_loop): Likewise.
18623 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
18624 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
18625 Mark the pattern statement only if the original statement doesn't
18626 have its own uses.
18627 (process_use): Call vect_mark_relevant with additional parameter.
18628 (vect_mark_stmts_to_be_vectorized): Likewise.
18629 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
18630 (vect_analyze_stmt): Handle both pattern and original statements
18631 if necessary.
18632 (vect_transform_stmt): Don't store vectorized pattern statement
18633 in the original statement.
18634 (vect_is_simple_use_1): Use related pattern statement only if the
18635 original statement is irrelevant.
18636 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
18637
18638 2011-06-29 Changpeng Fang <changpeng.fang@amd.com>
18639
18640 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
18641 option.
18642 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
18643 entry.
18644 (TARGET_AVX128_OPTIMAL): New definition.
18645 * config/i386/i386.c (initial_ix86_tune_features): Initialize
18646 X86_TUNE_AVX128_OPTIMAL entry.
18647 (ix86_option_override_internal): Enable the generation
18648 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
18649 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
18650 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
18651
18652 2011-06-29 Eric Botcazou <ebotcazou@adacore.com>
18653
18654 PR tree-optimization/49539
18655 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
18656 names by means of stmt_references_abnormal_ssa_name.
18657 (associate_plusminus): Call can_propagate_from before propagating
18658 from definition statements.
18659 (ssa_forward_propagate_and_combine): Remove superfluous newline.
18660
18661 2011-06-29 Richard Guenther <rguenther@suse.de>
18662
18663 * doc/invoke.texi: Document -scev dump modifier.
18664 * tree-pass.h (TDF_SCEV): New dump flag.
18665 * tree-dump.c (dump_option_value_in): Add scev.
18666 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
18667 * tree-scalar-evolution.c: Likewise.
18668
18669 2011-06-29 Nathan Sidwell <nathan@codesourcery.com>
18670
18671 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
18672 (cxa_type_match): Correct declaration.
18673 (__gnu_unwind_pr_common): Reconstruct additional indirection
18674 when __cxa_type_match returns succeeded_with_ptr_to_base.
18675
18676 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18677
18678 PR rtl-optimization/49114
18679 * reload.c (struct replacement): Remove SUBREG_LOC member.
18680 (push_reload): Do not set it.
18681 (push_replacement): Likewise.
18682 (subst_reload): Remove dead code.
18683 (copy_replacements): Remove assertion.
18684 (copy_replacements_1): Do not handle SUBREG_LOC.
18685 (move_replacements): Likewise.
18686 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
18687 Detect subregs via recursive descent instead of via SUBREG_LOC.
18688
18689 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
18690
18691 * config/avr/avr.c (avr_encode_section_info): Dispatch to
18692 default_encode_section_info.
18693
18694 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
18695
18696 PR tree-optimization/49545
18697 * builtins.c (get_object_alignment_1): Update function comment.
18698 Do not use DECL_ALIGN for functions, but test
18699 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
18700 * fold-const.c (get_pointer_modulus_and_residue): Don't check
18701 for functions here.
18702 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
18703
18704 2011-06-29 Jakub Jelinek <jakub@redhat.com>
18705
18706 PR debug/49567
18707 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
18708 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
18709
18710 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
18711
18712 PR target/34734
18713 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
18714 about uninitialized data attributed 'progmem' from here...
18715 (avr_encode_section_info): ...to this new function.
18716 (TARGET_ENCODE_SECTION_INFO): New define.
18717 (avr_section_type_flags): For data in ".progmem.data", remove
18718 section flag SECTION_WRITE.
18719
18720 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
18721
18722 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
18723 _xmulhisi3_exit.
18724 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
18725 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
18726 (__umulhisi3): Ditto.
18727 * config/avr/avr.md (mulhisi3): New insn expender.
18728 (umulhisi3): New insn expender.
18729 (*mulhisi3_call): New insn.
18730 (*umulhisi3_call): New insn.
18731
18732 2011-06-28 Joseph Myers <joseph@codesourcery.com>
18733
18734 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
18735
18736 2011-06-28 Richard Henderson <rth@redhat.com>
18737
18738 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
18739 all code and arguments that handled pushes. Update all callers.
18740
18741 2011-06-28 Richard Henderson <rth@redhat.com>
18742
18743 * config/arm/arm.c (arm_output_function_prologue): Don't call
18744 thumb1_output_function_prologue.
18745 (arm_expand_prologue): Avoid dead store.
18746 (number_of_first_bit_set): Use ctz_hwi.
18747 (thumb1_emit_multi_reg_push): New.
18748 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
18749 to emit the entire prologue as rtl.
18750 (thumb1_output_interwork): Split out from
18751 thumb1_output_function_prologue.
18752 (thumb1_output_function_prologue): Remove.
18753 (arm_attr_length_push_multi): Handle thumb1.
18754 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
18755 (prologue_thumb1_interwork): New.
18756 (*push_multi): Allow thumb1; use push_mult_memory_operand.
18757 * config/arm/predicates.md (push_mult_memory_operand): New.
18758
18759 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
18760
18761 * config/sparc/sync.md (*stbar): Delete.
18762 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
18763
18764 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
18765
18766 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
18767
18768 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18769
18770 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
18771 (TARGET_64BIT_DEFAULT): Define.
18772 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
18773 of tm_file.
18774 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
18775
18776 2011-06-28 Joseph Myers <joseph@codesourcery.com>
18777
18778 * common.opt (in_lto_p): New Variable entry.
18779 * flags.h (in_lto_p): Move to common.opt.
18780 * gcc.c: Include params.h.
18781 (set_option_handlers): Also use common_handle_option and
18782 target_handle_option.
18783 (main): Call global_init_params, finish_params and init_options_struct.
18784 * opts.c (debug_type_names): Move from toplev.c.
18785 (print_filtered_help): Access quiet_flag through opts pointer.
18786 (common_handle_option): Return early in the driver for some options.
18787 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
18788 opts pointer.
18789 * toplev.c (in_lto_p): Move to common.opt.
18790 (debug_type_names): Move to opts.c.
18791 * Makefile.in (OBJS): Remove opts.o.
18792 (OBJS-libcommon-target): Add opts.o.
18793 (gcc.o): Update dependencies.
18794
18795 2011-06-28 Kai Tietz <ktietz@redhat.com>
18796
18797 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
18798
18799 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18800
18801 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
18802 with '=' constraint modifier.
18803 (*divdf3_vfp): Likewise.
18804 ("*mulsf3_vfp"): Likewise.
18805 ("*muldf3_vfp"): Likewise.
18806 ("*mulsf3negsf_vfp"): Likewise.
18807 ("*muldf3negdf_vfp"): Likewise.
18808
18809 2011-06-28 Nick Clifton <nickc@redhat.com>
18810
18811 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
18812 relaxation when performing an incremental link.
18813
18814 2011-06-28 Kai Tietz <ktietz@redhat.com>
18815
18816 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
18817 within BB from last to first.
18818
18819 2011-06-28 Joseph Myers <joseph@codesourcery.com>
18820
18821 * genattr-common.c: New. Based on genattr.c.
18822 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
18823 (MOSTLYCLEANFILES): Add insn-attr-common.h.
18824 (opts.o): Update dependencies.
18825 (.PRECIOUS): Add insn-attr-common.h.
18826 (simple_rtl_generated_h): Add insn-attr-common.h.
18827 (build/genattr-common.o): New.
18828 (genprogrtl): Add attr-common.
18829 * genattr.c (main): Include insn-attr-common.h. Don't generate
18830 definitions of DELAY_SLOTS or INSN_SCHEDULING.
18831 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
18832
18833 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
18834
18835 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
18836 avr-*-* and avr-*-rtems* targets.
18837
18838 * config/avr/elf.h: New file.
18839 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
18840 (TARGET_ASM_SELECT_SECTION): Define.
18841 (INIT_SECTION_ASM_OP): Undefine.
18842 (FINI_SECTION_ASM_OP): Undefine.
18843 (READONLY_DATA_SECTION_ASM_OP): Undefine.
18844 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
18845 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
18846 * config/avr/avr.h:
18847 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
18848 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
18849 (MAX_OFILE_ALIGNMENT): Move to elf.h.
18850 (STRING_LIMIT): Move to elf.h.
18851 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
18852 (ASM_DECLARE_OBJECT_NAME): Remove.
18853 (ESCAPES): Remove.
18854 (ASM_OUTPUT_SKIP): Remove.
18855 (DWARF2_DEBUGGING_INFO): Remove.
18856 (OBJECT_FORMAT_ELF): Remove.
18857 (USER_LABEL_PREFIX): Remove.
18858 (ASM_OUTPUT_EXTERNAL): Remove.
18859 (ASM_OUTPUT_ASCII): Remove.
18860 (TYPE_ASM_OP): Remove.
18861 (SIZE_ASM_OP): Remove.
18862 (WEAK_ASM_OP): Remove.
18863 (STRING_ASM_OP): Remove.
18864 (SET_ASM_OP): Remove.
18865 (ASM_WEAKEN_LABEL): Remove.
18866 (TYPE_OPERAND_FMT): Remove.
18867 (ASM_DECLARE_FUNCTION_SIZE): Remove.
18868 (ASM_FINISH_DECLARE_OBJECT): Remove.
18869 (NO_DOLLAR_IN_LABEL): Remove.
18870 (ASM_GENERATE_INTERNAL_LABEL): Remove.
18871 (ASM_OUTPUT_CASE_LABEL): Remove.
18872 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
18873 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
18874 (gas_output_ascii): Remove.
18875 (gas_output_limited_string): Remove.
18876 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
18877 * config/avr/avr-protos.h
18878 (gas_output_ascii): Remove prototye.
18879 (gas_output_limited_string): Remove prototype.
18880
18881 2011-06-27 Richard Earnshaw <rearnsha@arm.com>
18882
18883 PR target/48637
18884 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
18885 asm operands.
18886
18887 2011-06-27 Jan Hubicka <jh@suse.cz>
18888
18889 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
18890 node instead of references in node.
18891
18892 2011-06-27 Richard Henderson <rth@redhat.com>
18893
18894 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
18895 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
18896 inside ifdef.
18897
18898 2011-06-27 Jakub Jelinek <jakub@redhat.com>
18899
18900 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
18901
18902 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
18903 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
18904 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
18905 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
18906 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
18907 (evaluate_stmt, execute_fold_all_builtins): Handle
18908 BUILT_IN_ASSUME_ALIGNED.
18909 * tree-ssa-dce.c (propagate_necessity): Likewise.
18910 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
18911 call_may_clobber_ref_p_1): Likewise.
18912 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
18913 (expand_builtin_assume_aligned): New function.
18914 * doc/extend.texi (__builtin_assume_aligned): Document.
18915
18916 PR debug/49544
18917 * cselib.c (promote_debug_loc): If cselib_preserve_constants
18918 and l has two DEBUG_INSN owned locs instead of just one, adjust
18919 the second location's setting_insn too.
18920
18921 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18922
18923 PR libmudflap/38738
18924 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
18925
18926 2011-06-27 Nick Clifton <nickc@redhat.com>
18927
18928 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
18929 bit position of highest bit set into a count of the high zero bits.
18930
18931 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
18932
18933 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
18934
18935 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
18936
18937 PR lto/48492
18938 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
18939 to a NULL parent.
18940
18941 2011-06-27 Richard Guenther <rguenther@suse.de>
18942
18943 PR tree-optimization/49394
18944 * passes.c (execute_one_pass): Restore current_pass after
18945 applying IPA transforms.
18946
18947 2011-06-27 Kai Tietz <ktietz@redhat.com>
18948
18949 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
18950 out of type precision after operation.
18951 (find_bswap): Take for limit value the integer auto-promotion
18952 into account.
18953
18954 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
18955
18956 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
18957 forward scan as well.
18958
18959 2011-06-27 Tristan Gingold <gingold@adacore.com>
18960
18961 PR target/44241
18962 * config/vms/vms-protos.h: New file.
18963 * config/vms/vms-crtlmap.map: New file.
18964 * config/vms/vms.c: New file.
18965 * config/vms/make-crtlmap.awk: New file.
18966 * config/vms/vms-crtl.h: File removed.
18967 * config/vms/vms-crtl-64.h: File removed.
18968 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
18969 * config/alpha/vms64.h: Do not include vms-crtl-64.h
18970 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
18971 clear some builtins on VMS. Calls vms_patch_builtins.
18972 (avms_asm_output_external): Remove.
18973 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
18974 (struct crtl_name_spec): Remove
18975 (DO_CTRL_NAMES): Remove.
18976 * config/ia64/vms.h (struct crtl_name_spec): Remove
18977 (DO_CTRL_NAMES): Remove.
18978 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
18979 clear some builtins on VMS. Calls vms_patch_builtins.
18980 (ia64_asm_output_external): Remove DO_CRTL_NAME.
18981 * config/ia64/vms64.h: Do not include vms-crtl-64.h
18982 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
18983
18984 2011-06-27 Tristan Gingold <gingold@adacore.com>
18985
18986 * config/alpha/alpha.c (alpha_end_function): Always generate .end
18987 directive on VMS.
18988
18989 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
18990
18991 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
18992 the function receives nonlocal gotos.
18993
18994 2011-06-27 Richard Guenther <rguenther@suse.de>
18995
18996 PR tree-optimization/49536
18997 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
18998 For non-scalar inner types use a scalar type according to
18999 the scalar inner mode.
19000
19001 2011-06-27 Richard Guenther <rguenther@suse.de>
19002
19003 PR tree-optimization/49365
19004 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
19005
19006 2011-06-27 Richard Guenther <rguenther@suse.de>
19007
19008 PR tree-optimization/49169
19009 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
19010 the alignment of function decls.
19011
19012 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
19013
19014 PR target/47997
19015 * config/darwin.c (darwin_mergeable_string_section): Place string
19016 constants in '.cstring' rather than '.const' when CF/NSStrings are
19017 active.
19018
19019 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
19020
19021 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
19022 (emit_save_register_window): Likewise.
19023 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
19024 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
19025 Swap back %o7/%i7 in register naming.
19026
19027 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
19028
19029 PR driver/49371
19030 * config/darwin.c (darwin_override_options): Improve warning when
19031 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
19032 is given with fpie/fPIE.
19033 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
19034 * config/darwin9.h (PIE_SPEC): New.
19035
19036 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
19037
19038 * timevar.c (timevar_print): Increase width for display of timevar
19039 name.
19040
19041 2011-06-24 Jakub Jelinek <jakub@redhat.com>
19042
19043 PR c++/46400
19044 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
19045 instead of TYPE_CHAIN for chain_next for types.
19046
19047 2011-06-24 Richard Henderson <rth@redhat.com>
19048
19049 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
19050 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
19051 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
19052 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
19053 (sparc_flat_expand_prologue): Emit individual instructions
19054 instead of one of the above.
19055
19056 2011-06-24 Easwaran Raman <eraman@google.com>
19057
19058 PR rtl-optimization/49429
19059 PR target/49454
19060 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
19061 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
19062 used to copy y into x.
19063 * calls.c (initialize_argument_information): Mark
19064 an argument addressable if it is passed by invisible reference.
19065 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
19066 if it is passed by reference.
19067
19068 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
19069
19070 PR rtl-optimization/49504
19071 * rtlanal.c (nonzero_bits1): Properly handle addition or
19072 subtraction of a pointer in Pmode if pointers extend unsigned.
19073 (num_sign_bit_copies1): Likewise.
19074
19075 2011-06-24 Martin Jambor <mjambor@suse.cz>
19076
19077 PR tree-optimizations/49516
19078 * tree-sra.c (sra_modify_assign): Choose the safe path for
19079 aggregate copies if we also did scalar replacements.
19080
19081 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19082
19083 PR target/49335
19084 * config/arm/predicates.md (add_operator): New.
19085 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
19086
19087 2011-06-24 Andi Kleen <ak@linux.intel.com>
19088
19089 * tree-sra.c (type_internals_preclude_sra_p): Add msg
19090 parameter. Split up ifs and report reason in *msg.
19091 (reject): Add.
19092 (find_var_candiate): Add msg variable.
19093 Split up ifs and report reason to reject.
19094 (find_param_candidates): Add msg variable.
19095 Pass msg to type_internals_preclude_sra_p.
19096
19097 2011-06-23 Jeff Law <law@redhat.com>
19098
19099 PR middle-end/48770
19100 * reload.h (reload): Change to return a bool.
19101 * ira.c (ira): If requested by reload, run a fast DCE pass after
19102 reload has completed. Fix comment typo.
19103 * reload1.c (need_dce): New file scoped static.
19104 (reload): Set reload_completed here. Return whether or not a DCE
19105 pass after reload is needed.
19106 (delete_dead_insn): Set need_dce as needed.
19107
19108 PR middle-end/49465
19109 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
19110 to detect threading through joiner block. If there was already
19111 an edge to the new target, then do not change the PHI nodes.
19112
19113 2011-06-23 Jakub Jelinek <jakub@redhat.com>
19114
19115 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
19116 get_pointer_alignment to see if base isn't sufficiently aligned.
19117
19118 2011-06-23 Jan Hubicka <jh@suse.cz>
19119
19120 PR tree-optimize/49373
19121 * tree-pass.h (all_late_ipa_passes): Declare.
19122 * cgraphunit.c (init_lowered_empty_function): Fix properties.
19123 (cgraph_optimize): Execute late passes; remove unreachable funcions
19124 after materialization.
19125 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
19126 LTOing.
19127 * passes.c (all_late_ipa_passes): Declare.
19128 (dump_passes, register_pass): Handle late ipa passes.
19129 (init_optimization_passes): Move ipa_pta to late passes; schedule
19130 fixup_cfg at beggining of all_passes.
19131 (apply_ipa_transforms): New function.
19132 (execute_one_pass): When doing simple ipa pass, apply all transforms.
19133
19134 2011-06-23 Joseph Myers <joseph@codesourcery.com>
19135
19136 * params.c: Include common/common-target.h. Don't include tm.h.
19137 (lang_independent_params): Move from toplev.c.
19138 (global_init_params): New.
19139 * params.h (global_init_params): Declare.
19140 * target.def (default_params): Move to common-target.def.
19141 * toplev.c (lang_independent_options): Remove.
19142 (lang_independent_params): Move to params.c.
19143 (general_init): Use global_init_params.
19144 * common/common-target.def (option_default_params): Move from
19145 target.def.
19146 * common/config/ia64/ia64-common.c: Include params.h.
19147 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19148 from ia64.c.
19149 * common/config/rs6000/rs6000-common.c: Include params.h.
19150 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19151 from rs6000.c.
19152 * common/config/sh/sh-common.c: Include params.h.
19153 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19154 from sh.c.
19155 * common/config/spu/spu-common.c: Include params.h.
19156 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
19157 from spu.c.
19158 * config/ia64/ia64.c (ia64_option_default_params,
19159 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
19160 * config/rs6000/rs6000.c (rs6000_option_default_params,
19161 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
19162 * config/sh/sh.c (sh_option_default_params,
19163 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
19164 * config/spu/spu.c (spu_option_default_params,
19165 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
19166 * Makefile.in (OBJS): Remove params.o.
19167 (OBJS-libcommon-target): Add params.o.
19168 (params.o, $(common_out_object_file)): Update dependencies.
19169 * doc/tm.texi: Regenerate.
19170
19171 2011-06-23 Alan Modra <amodra@gmail.com>
19172
19173 PR bootstrap/49383
19174 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
19175 invocation for 2011-06-09 changes.
19176
19177 2011-06-22 Jakub Jelinek <jakub@redhat.com>
19178
19179 PR libgomp/49490
19180 * omp-low.c (expand_omp_for_static_nochunk): Only
19181 use n ceil/ nthreads size for the first n % nthreads threads in the
19182 team instead of all threads except for the last few ones which
19183 get less work or none at all.
19184
19185 PR debug/49496
19186 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
19187 uses.
19188
19189 2011-06-22 Richard Guenther <rguenther@suse.de>
19190
19191 PR tree-optimization/49493
19192 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
19193 Refer to the alias target of variables.
19194 (associate_varinfo_to_alias_1): Remove.
19195 (ipa_pta_execute): Do not associate aliases with anything.
19196 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
19197 (cgraph_function_node): Likewise.
19198 (cgraph_function_or_thunk_node): Likewise.
19199 (varpool_variable_node): Likewise.
19200
19201 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
19202
19203 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
19204 * config.gcc (arm*-*-linux*): Default to gnu tls.
19205 (arm*-*-*): Add --with-tls option.
19206 (all_defaults): Add 'tls'.
19207
19208 2011-06-22 Richard Henderson <rth@redhat.com>
19209
19210 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
19211 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
19212 (dwarf2out_frame_debug_cfa_window_save): Rename from
19213 dwarf2out_window_save; make static.
19214 * tree.h (dwarf2out_window_save): Don't declare.
19215
19216 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
19217 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
19218 (emit_save_register_window): Rename from gen_save_register_window;
19219 emit the insn and add REG_CFA_* notes.
19220 (sparc_expand_prologue): Update to match.
19221 * config/sparc/sparc.md (save_register_window_1): Simplify from
19222 save_register_window<P:mode>.
19223
19224 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
19225
19226 PR target/49497
19227 * config/i386/i386.md (*lea_general_2): Always allow SImode.
19228 (*lea_general_2_zext): Likewise.
19229 (imul to lea peepholes): Use const359_operand and check
19230 TARGET_PARTIAL_REG_STALL.
19231
19232 * config/i386/predicates.md (const359_operand): New.
19233
19234 2011-06-22 Michael Matz <matz@suse.de>
19235
19236 * cgraphunit.c (assemble_thunk): Use correct return type.
19237
19238 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
19239 Dmitry Melnik <dm@ispras.ru>
19240
19241 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
19242 (neon_output_shift_immediate): Ditto.
19243 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
19244 prototype.
19245 (neon_output_shift_immediate): Ditto.
19246 * config/arm/neon.md (vashl<mode>3): Modified constraint.
19247 (vashr<mode>3_imm): New insn pattern.
19248 (vlshr<mode>3_imm): Ditto.
19249 (vashr<mode>3): Modified constraint.
19250 (vlshr<mode>3): Ditto.
19251 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
19252 predicate.
19253 (imm_for_neon_rshift_operand): Ditto.
19254 (imm_lshift_or_reg_neon): Ditto.
19255 (imm_rshift_or_reg_neon): Ditto.
19256
19257 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
19258
19259 2011-06-22 Jakub Jelinek <jakub@redhat.com>
19260
19261 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
19262 builtin calls even if likelyvalue is not CONSTANT.
19263 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
19264 Return get_value_for_expr of first operand
19265 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
19266 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
19267 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
19268 their non-checking counterparts.
19269 (call_may_clobber_ref_p_1): Likewise.
19270 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
19271 like their non-checking counterparts.
19272 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
19273 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
19274 like their non-checking counterparts.
19275 (find_func_clobbers): Likewise.
19276 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
19277 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
19278
19279 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
19280 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
19281 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
19282 of base type reference as argument.
19283 (resolve_addr_in_expr): Likewise. Fix keep computation.
19284 (convert_descriptor_to_signed): Renamed to...
19285 (convert_descriptor_to_mode): ... this. For wider types convert to
19286 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
19287 (typed_binop): New function.
19288 (scompare_loc_descriptor, ucompare_loc_descriptor,
19289 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
19290 default to unsigned type instead of signed.
19291
19292 PR debug/47858
19293 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
19294 (gimple_build_debug_source_bind_stat): New prototype.
19295 (gimple_build_debug_source_bind): Define.
19296 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
19297 gimple_debug_source_bind_get_value,
19298 gimple_debug_source_bind_get_value_ptr,
19299 gimple_debug_source_bind_set_var,
19300 gimple_debug_source_bind_set_value): New inlines.
19301 * gimple.c (gimple_build_debug_source_bind_stat): New function.
19302 * gimple-pretty-print.c (dump_gimple_debug): Handle
19303 GIMPLE_DEBUG_SOURCE_BIND.
19304 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
19305 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
19306 * tree-parloops.c (eliminate_local_variables,
19307 separate_decls_in_region): Likewise.
19308 (separate_decls_in_region_debug): Renamed from
19309 separate_decls_in_region_debug_bind. Handle
19310 gimple_debug_source_bind_p.
19311 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
19312 prototypes.
19313 (DECL_HAS_DEBUG_ARGS_P): Define.
19314 (struct tree_function_decl): Add has_debug_args_flag field.
19315 * tree.c (debug_args_for_decl): New variable.
19316 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
19317 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
19318 (rewrite_debug_stmt_uses): New function.
19319 (rewrite_stmt): Use it to rewrite debug stmt uses.
19320 * rtl.def (DEBUG_PARAMETER_REF): New.
19321 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
19322 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
19323 DEBUG_PARAMETER_REF.
19324 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
19325 * print-rtl.c (print_rtx): Likewise.
19326 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
19327 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
19328 debug stmts in the first bb.
19329 * tree-inline.c (remap_ssa_name): If remapping default def
19330 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
19331 a source bind debug stmt.
19332 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
19333 (maybe_move_debug_stmts_to_successors): Likewise.
19334 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
19335 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
19336 debug args vector from old_decl to new_decl.
19337 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
19338 or modified parameters, add debug bind stmts before call
19339 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
19340 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
19341 on DECL_DEBUG_EXPRs from debug args vector.
19342 (expand_debug_source_expr): New function.
19343 (expand_debug_locations): Use it for source bind insns.
19344 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
19345 * var-tracking.c (prepare_call_arguments): Add debug args
19346 to call_arguments if any.
19347 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
19348 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
19349 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
19350 (get_ref_die_offset, parameter_ref_descriptor): New functions.
19351 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
19352 (gen_subprogram_die): Handle parameters identified by
19353 DEBUG_PARAMETER_REF.
19354
19355 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
19356
19357 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
19358 * doc/install.texi (Configuration): Document --with-tls.
19359 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
19360 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
19361 (arm_tls_descseq_addr): New.
19362 (legitimize_tls_address): Add tlsdesc support.
19363 (arm_cannot_copy_insn_p): Check for tlscall.
19364 (arm_emit_tls_decoration): Likewise.
19365 * config/arm/arm.h (TARGET_GNU2_TLS): New.
19366 (OPTION_DEFAULT_SPECS): Add with-tls support.
19367 * config/arm/arm.md (R1_REGNUM): Define.
19368 (tlscall): New.
19369 * config/arm/arm.opt (tls_type): New enumeration type and values.
19370 (mtls-dialect): New switch.
19371 * config/arm/arm-opts.h (enum tls_type): New.
19372
19373 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
19374
19375 * attribs.c (register_attribute): Added assert to check that all
19376 attribute specs are registered with a name that is not empty and
19377 does not start with '_'.
19378 (decl_attributes): Avoid the lookup of the "naked" attribute spec
19379 if the function has no attributes.
19380 * tree.c (is_attribute_with_length_p): Removed.
19381 (is_attribute_p): Removed.
19382 (private_is_attribute_p): New.
19383 (private_lookup_attribute): New.
19384 (lookup_attribute): Removed.
19385 (lookup_ident_attribute): New.
19386 (remove_attribute): Require the first argument to be in the form
19387 'text', not '__text__'. Updated asserts.
19388 (merge_attributes): Use lookup_ident_attributes instead of
19389 lookup_attribute.
19390 (merge_dllimport_decl_attributes): Use remove_attribute.
19391 (attribute_list_contained): Likewise.
19392 (attribute_list_equal): Immediately return 1 if the arguments are
19393 identical pointers.
19394 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
19395 'int'. Require the first argument to be in the form 'text', not
19396 '__text__'. Require the second argument to be an identifier.
19397 (lookup_attribute): Made inline. Require the first argument to be
19398 in the form 'text', not '__text__'.
19399 (private_is_attribute_p, private_lookup_attribute): New.
19400 Updated comments.
19401
19402 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
19403
19404 * builtins.c: Add sync_ or SYNC__ to builtin names.
19405 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
19406 * omp-low.c: Add sync_ or SYNC__ to builtin names.
19407
19408 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
19409
19410 PR target/33049
19411 * config/avr/avr.md (extzv): New expander.
19412 (*extzv): New insn.
19413 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
19414 * config/avr/constraints.md (C04): New constraint.
19415 * doc/md.texi (Machine Constraints): Document it.
19416
19417 2011-06-21 Jakub Jelinek <jakub@redhat.com>
19418
19419 PR middle-end/49489
19420 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
19421 unsignedp argument instead of 1 for clrsb_optab.
19422 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
19423 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
19424 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
19425 * optabs.c (widen_leading): Call widen_operand and expand_unop
19426 with 0 as unsignedp argument instead of 1 for clrsb_optab.
19427 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
19428
19429 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
19430
19431 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
19432
19433 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
19434
19435 * gensupport.c (add_define_attr): New static function.
19436 (is_predicable): Allow multi-alternative lists for the "predicable"
19437 attribute.
19438 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
19439 (process_one_cond_exec): Call alter_attrs_for_insn.
19440 * doc/md.texi (Defining Attributes): Mention some standard names.
19441 (Conditional Execution): Update documentation for "predicable".
19442
19443 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
19444 __builtin_clrsbll): Document.
19445 * doc/rtl.texi (clrsb): New entry.
19446 * optabs.c (widen_leading): Renamed from widen_clz. New argument
19447 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
19448 (expand_unop): Handle clrsb_optab.
19449 (init_optabs): Initialize it.
19450 * optabs.h (enum optab_index): New entry OTI_clrsb.
19451 (clrsb_optab): Define.
19452 * genopinit.c (optabs): Add an entry for it.
19453 * builtins.c (expand_builtin): Handle clrsb builtin functions.
19454 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
19455 BUILT_IN_CLRSBLL): New.
19456 * rtl.def (CLRSB): New code.
19457 * dwarf2out.c (mem_loc_descriptor): Handle it.
19458 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
19459 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
19460 and popcount.
19461 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
19462 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
19463 (__ctzDI2): Move declaration.
19464 * config/bfin/bfin.md (clrsbsi2): New expander.
19465 (signbitssi2): Use the CLRSB rtx.
19466 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
19467 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
19468
19469 2011-06-21 Richard Guenther <rguenther@suse.de>
19470
19471 * ipa-inline-transform.c (inline_transform): Fix previous change.
19472
19473 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
19474
19475 PR tree-optimization/49478
19476 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
19477 with constant operand.
19478
19479 2011-06-21 Richard Guenther <rguenther@suse.de>
19480
19481 * ipa-inline-transform.c (inline_transform): Fix typo.
19482
19483 2011-06-21 Richard Guenther <rguenther@suse.de>
19484
19485 PR tree-optimization/49483
19486 * tree-vect-stmts.c (vectorizable_assignment): Also handle
19487 VIEW_CONVERT_EXPR conversions.
19488
19489 2011-06-21 Joseph Myers <joseph@codesourcery.com>
19490
19491 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
19492 * config/avr/avr-tables.opt: New file (generated).
19493 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
19494 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
19495 avr-mcus.def.
19496 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
19497 (avr_option_override): Don't process -mmcu= argument here. Set
19498 avr_current_device using avr_mcu_index.
19499 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
19500 * config/avr/avr.opt (mmcu=): Use Enum.
19501 * config/avr/t-avr (avr-devices.o): Update dependencies.
19502 ($(srcdir)/config/avr/avr-tables.opt): New.
19503 * target.def (help): Remove.
19504 * doc/tm.texi.in (TARGET_HELP): Remove.
19505 * doc/tm.texi: Regenerate.
19506 * opts.c: Don't include target.h.
19507 (common_handle_option): Don't call targetm.help.
19508 * system.h (TARGET_HELP): Poison.
19509 * Makefile.in (opts.o): Update dependencies.
19510
19511 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19512
19513 * config/usegld.h: New file.
19514 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
19515 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
19516 (LIB_SPEC): Likewise. Search /lib.
19517 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
19518 (RDYNAMIC_SPEC): Handle GNU ld.
19519 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
19520 Define.
19521 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
19522 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
19523 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
19524 (STACK_CHECK_STATIC_BUILTIN): Define.
19525 * config/sol2.opt (compat-bsd): Remove.
19526 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
19527 * config/sol2-bi.h: New file.
19528 * config/sol2-gld.h: Remove.
19529 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
19530 (NO_DBX_BNSYM_ENSYM): Remove.
19531 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
19532 (STACK_CHECK_STATIC_BUILTIN): Remove.
19533 Test USE_GLD instead of TARGET_GNU_LD.
19534 * config/i386/sol2-10.h: Rename to ...
19535 * config/i386/sol2-bi.h .. this.
19536 (SUBTARGET_EXTRA_SPECS): Redefine.
19537 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
19538 (MULTILIB_DEFAULTS): Remove.
19539 (DEFAULT_ARCH32_P): Define.
19540 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
19541 (ARCH64_SUBDIR): Define.
19542 Test USE_GLD instead of TARGET_GNU_LD.
19543 (I386_EMULATION): Rename to ...
19544 (ARCH32_EMULATION): ... this.
19545 (X86_64_EMULATION): Rename to ...
19546 (ARCH64_EMULATION): ... this.
19547 (TARGET_LD_EMULATION): Remove.
19548 (LINK_ARCH_SPEC): Remove.
19549 * config/i386/sol2-gas.h: Remove.
19550 * config/i386/t-sol2-10: Rename to ...
19551 * config/i386/t-sol2-64: ... this.
19552 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
19553 (AS_SPARC64_FLAG): Define.
19554 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
19555 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
19556 depending on TARGET_CPU_DEFAULT.
19557 (CPP_CPU_SPEC): Redefine.
19558 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
19559 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
19560 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
19561 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
19562 ASM_ARCH_DEFAULT_SPEC): Redefine.
19563 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
19564 LINK_ARCH_DEFAULT_SPEC.
19565 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
19566 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
19567 (ARCH64_SUBDIR): Define.
19568 (LINK_ARCH64_SPEC): Redefine.
19569 (CC1_SPEC): Redefine.
19570 (OPTION_DEFAULT_SPECS): Redefine.
19571 (MULTILIB_DEFAULTS): Define.
19572 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
19573 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
19574 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
19575 (NO_DBX_BNSYM_ENSYM): Remove.
19576 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
19577 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
19578 (TARGET_ASM_NAMED_SECTION): Likewise.
19579 (STACK_CHECK_STATIC_BUILTIN): Remove.
19580 * config/sparc/sol2-bi.h: Remove.
19581 * config/sparc/sol2-gas-bi.h: Remove.
19582 * config/sparc/sol2-gas.h: Remove.
19583 * config/sparc/sol2-gld-bi.h: Remove.
19584 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
19585 common parts ...
19586 (*-*-solaris2*): ... here.
19587
19588 2011-06-21 Christian Bruel <christian.bruel@st.com>
19589
19590 PR other/43564
19591 * ipa-inline.c (can_inline_edge_p): Check
19592 !DECL_DISREGARD_INLINE_LIMITS.
19593
19594 2011-06-21 Christian Bruel <christian.bruel@st.com>
19595
19596 PR middle-end/49139
19597 * cgraphunit.c (process_function_and_variable_attributes): warn when
19598 always_inline functions that are not inline.
19599 * ipa-inline-transform.c (inline_transform): Always call
19600 optimize_inline.
19601 * tree-inline.c (tree_inlinable_function_p): Use error instead
19602 of sorry.
19603 (expand_call_inline): Likewise.
19604
19605 2011-06-21 Jakub Jelinek <jakub@redhat.com>
19606
19607 * Makefile.in (dg_target_exps): Set.
19608 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
19609 instead of 7, try to divide it more evenly.
19610
19611 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
19612
19613 PR target/49089
19614 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
19615 (avx256_split_unaligned_store): New definition.
19616 (ix86_option_override_internal): Enable avx256 unaligned load/store
19617 splitting only when avx256_split_unaligned_load/store is set.
19618
19619 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
19620
19621 * regrename.c (scan_rtx_reg): Handle the case where we write to an
19622 open chain in a smaller mode without failing the entire block.
19623
19624 2011-06-21 Alan Modra <amodra@gmail.com>
19625
19626 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
19627 CONST high part large-toc address.
19628 (rs6000_tls_referenced_p): Make static.
19629 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
19630
19631 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19632
19633 PR target/49385
19634 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
19635 one of the operands is a register.
19636
19637 2011-06-20 Kai Tietz <ktietz@redhat.com>
19638
19639 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
19640 operations in combination with binary and.
19641
19642 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
19643
19644 * regrename.c (do_replace): Don't update notes.
19645
19646 2011-06-20 Alan Modra <amodra@gmail.com>
19647
19648 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
19649 of toc-relative address in CONST.
19650 (rs6000_delegitimize_address): Recognize changed address.
19651 (rs6000_legitimize_reload_address): Likewise.
19652 (rs6000_emit_move): Don't force these constants to memory.
19653 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
19654 toc-relative address in CONST.
19655 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
19656 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
19657
19658 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
19659
19660 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
19661 (count_trailing_zeros): Likewise.
19662
19663 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
19664
19665 PR other/49325
19666 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
19667 .init_array can be used with .ctors on targets.
19668 * configure: Regenerated.
19669
19670 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
19671
19672 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
19673 if the element type is volatile.
19674
19675 2011-06-18 Jan Hubicka <jh@suse.cz>
19676
19677 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
19678 extra name aliases.
19679 (lto_symtab_resolve_can_prevail_p): Likewise.
19680 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
19681 * cgraphbuild.c (record_reference): Remove extra body alias code.
19682 (mark_load): Likewise.
19683 (mark_store): Likewise.
19684 * cgraph.h (varpool_node): Remove extra_name filed;
19685 add alias_of and extraname_alias.
19686 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
19687 (varpool_alias_aliased_node): New inline function.
19688 (varpool_variable_node): New function.
19689 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
19690 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
19691 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
19692 (input_varpool_node): Likewise.
19693 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
19694 (varpool_externally_visible_p): Remove extra body alias code.
19695 (function_and_variable_visibility): Likewise.
19696 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
19697 (ipa_pta_execute): Use it.
19698 * varpool.c (varpool_remove_node): Remove extra name alias code.
19699 (varpool_mark_needed_node): Likewise.
19700 (varpool_analyze_pending_decls): Analyze aliases.
19701 (assemble_aliases): New functoin.
19702 (varpool_assemble_decl): Use it.
19703 (varpool_create_variable_alias): New function.
19704 (varpool_extra_name_alias): Rewrite.
19705 (varpool_for_node_and_aliases): New function.
19706
19707 2011-06-18 Jakub Jelinek <jakub@redhat.com>
19708
19709 PR target/49411
19710 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
19711 last_arg_constant and last argument doesn't match its predicate,
19712 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
19713 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
19714 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
19715 spelling of error message.
19716 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
19717 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
19718 const_0_to_255_operand instead of const_int_operand.
19719
19720 Revert:
19721 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
19722
19723 * config/i386/sse.md (blendbits): Remove mode attribute.
19724 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
19725 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
19726 Check integer value of operand 3 in insn constraint.
19727
19728 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
19729
19730 PR rtl-optimization/48542
19731 * reload.c (find_equiv_reg): Stop looking when finding a
19732 setjmp-type call.
19733 * reload1.c (reload_as_needed): Invalidate all reload
19734 registers when crossing a setjmp-type call.
19735
19736 2011-06-16 Jeff Law <law@redhat.com>
19737
19738 * tree-ssa-threadupdate.c (struct redirection_data): New field
19739 intermediate_edge.
19740 (THREAD_TARGET2): Define.
19741 (redirection_data_eq): Also check that the intermediate edge is equal.
19742 (lookup_redirection_data): Drop useless argument. Extract the
19743 outgoing_edge and intermediate edge from E. Callers updated.
19744 (copy_phi_args, update_destination_phis): New functions.
19745 (fix_duplicate_block_edges): Likewise.
19746 (create_edge_and_update_destination_phis): Duplicate all the edges
19747 hung off e->aux. Use copy_phi_args.
19748 (create_duplicates): Use fix_duplicate_block_edges.
19749 (fixup_template_block): Likewise.
19750 (redirect_edges): If necessary, redirect the joiner block's incoming
19751 edge to the duplicate of the joiner block.
19752 (thread_block): Don't muck up loops when threading through a joiner
19753 block.
19754 (thread_through_loop_header): Handle threading through a joiner block.
19755 (mark_threaded_blocks, register_jump_thread): Likewise.
19756 * tree-flow.h (register_jump_thread): Add new argument. Callers
19757 updated.
19758 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
19759 (thread_across_edge): Handle threading through a joiner block.
19760
19761 2011-06-16 Martin Jambor <mjambor@suse.cz>
19762
19763 PR tree-optimization/49343
19764 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
19765 calculate offset, provide 2nd operand for the new COMPONENT_REF.
19766
19767 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
19768
19769 * config/darwin-protos.h (machopic_select_rtx_section): Move to
19770 inside RTX_CODE ifdef.
19771
19772 2011-06-16 Tom de Vries <tom@codesourcery.com>
19773
19774 PR target/45098
19775 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
19776 Disallow NULL pointer for pointer arithmetic.
19777
19778 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
19779
19780 PR target/49398
19781 Revert.
19782 2011-06-10 Wei Guozhi <carrot@google.com>
19783
19784 PR target/45335
19785 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
19786 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
19787 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
19788 related peephole2.
19789 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
19790 related peephole2.
19791 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
19792 (arm_legitimate_ldrd_p): New prototype.
19793 (arm_output_ldrd): New prototype.
19794 * config/arm/arm.c (arm_check_ldrd_operands): New function.
19795 (arm_legitimate_ldrd_p): New function.
19796 (arm_output_ldrd): New function.
19797
19798 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
19799
19800 PR middle-end/46500
19801 * doc/tm.texi.in: Update Copyright date.
19802 * doc/tm.texi: Regenerate.
19803 * targhooks.c (default_setup_incoming_varargs): Replace
19804 CUMULATIVE_ARGS* argument type with cumulative_args_t.
19805 (default_pretend_outgoing_varargs_named): Likewise.
19806 (hook_pass_by_reference_must_pass_in_stack): Likewise.
19807 (hook_callee_copies_named): Likewise.
19808 (default_function_arg_advance): Likewise.
19809 (default_function_arg): Likewise.
19810 (default_function_incoming_arg): Likewise.
19811 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
19812 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
19813 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
19814 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
19815 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
19816 * targhooks.h (default_setup_incoming_varargs): Likewise.
19817 (default_pretend_outgoing_varargs_named): Likewise.
19818 (hook_pass_by_reference_must_pass_in_stack): Likewise.
19819 (hook_callee_copies_named): Likewise.
19820 (default_function_arg_advance): Likewise.
19821 (default_function_arg): Likewise.
19822 (default_function_incoming_arg): Likewise.
19823 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
19824 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
19825 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
19826 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
19827 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
19828 * target.def (pass_by_reference): Likewise.
19829 (setup_incoming_varargs, strict_argument_naming): Likewise.
19830 (pretend_outgoing_varargs_named, callee_copies): Likewise.
19831 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
19832 (function_incoming_arg): Likewise.
19833 * target.h: Don't include "tm.h" .
19834 (cumulative_args_t): New typedef.
19835 [GCC_TM_H] (get_cumulative_args): New static inline function.
19836 [GCC_TM_H] (pack_cumulative_args): Likewise.
19837 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
19838 argument type with cumulative_args_t.
19839 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
19840 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
19841 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
19842 (frv_arg_partial_bytes, frv_function_arg): Likewise.
19843 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
19844 (frv_function_arg_1): Likewise.
19845 * config/s390/s390.c (s390_pass_by_reference): Likewise.
19846 (s390_function_arg_advance, s390_function_arg): Likewise.
19847 * config/m32c/m32c.c (m32c_function_arg): Likewise.
19848 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
19849 (m32c_strict_argument_naming): Likewise.
19850 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
19851 (spu_function_arg_advance): Likewise.
19852 (spu_setup_incoming_varargs): Likewise. Make static.
19853 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
19854 Remove prototype.
19855 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
19856 CUMULATIVE_ARGS* argument type with cumulative_args_t.
19857 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
19858 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
19859 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
19860 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
19861 (mep_pass_by_reference, mep_function_arg): Likewise.
19862 (mep_function_arg_advance): Likewise.
19863 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
19864 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
19865 (m32r_function_arg, m32r_function_arg_advance): Likewise.
19866 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
19867 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
19868 (ix86_function_arg, ix86_pass_by_reference): Likewise.
19869 (ix86_setup_incoming_varargs): Likewise.
19870 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
19871 (sh_strict_argument_naming): Likewise.
19872 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
19873 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
19874 (sh_function_arg_advance, sh_function_arg): Likewise.
19875 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
19876 (pdp11_function_arg_advance): Likewise.
19877 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
19878 Likewise.
19879 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
19880 * config/avr/avr.c (avr_function_arg): Likewise.
19881 (avr_function_arg_advance): Likewise.
19882 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
19883 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
19884 (xtensa_function_arg_1): Likewise.
19885 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
19886 Likewise.
19887 (xstormy16_function_arg): Likewise.
19888 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
19889 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
19890 (fr30_function_arg_advance): Likewise.
19891 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
19892 (lm32_function_arg, lm32_function_arg_advance): Likewise.
19893 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
19894 (moxie_function_arg, moxie_function_arg_advance): Likewise.
19895 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
19896 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
19897 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
19898 (cris_function_arg, cris_function_incoming_arg): Likewise.
19899 (cris_function_arg_advance, cris_function_arg_1): Likewise.
19900 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
19901 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
19902 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
19903 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
19904 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
19905 (mn10300_arg_partial_bytes): Likewise.
19906 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
19907 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
19908 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
19909 (ia64_function_arg_1): Likewise.
19910 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
19911 (m68k_function_arg): Likewise.
19912 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
19913 (rs6000_function_arg, setup_incoming_varargs): Likewise.
19914 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
19915 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
19916 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
19917 (picochip_arg_advance): Likewise.
19918 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
19919 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
19920 (mcore_function_arg_advance): Likewise.
19921 * config/score/score.c (score_pass_by_reference): Likewise.
19922 (score_function_arg_advance): Likewise.
19923 (score_arg_partial_bytes): Likewise. Make static.
19924 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
19925 * config/arm/arm.c (arm_arg_partial_bytes): Replace
19926 CUMULATIVE_ARGS* argument type with cumulative_args_t.
19927 (arm_function_arg, arm_function_arg_advance): Likewise.
19928 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
19929 * config/pa/pa.c (pa_pass_by_reference): Likewise.
19930 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
19931 (pa_function_arg): Likewise.
19932 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
19933 (mips_function_arg, mips_function_arg_advance): Likewise.
19934 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
19935 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
19936 * config/vax/vax.c (vax_function_arg): Likewise.
19937 (vax_function_arg_advance): Likewise.
19938 * config/h8300/h8300.c (h8300_function_arg): Likewise.
19939 (h8300_function_arg_advance): Likewise.
19940 * config/v850/v850.c (v850_pass_by_reference): Likewise.
19941 (v850_strict_argument_naming, v850_function_arg): Likewise.
19942 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
19943 (v850_setup_incoming_varargs): Likewise.
19944 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
19945 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
19946 (mmix_function_arg, mmix_pass_by_reference): Likewise.
19947 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
19948 with const void *.
19949 * config/bfin/bfin.c (setup_incoming_varargs): Replace
19950 CUMULATIVE_ARGS* argument type with cumulative_args_t.
19951 (bfin_function_arg_advance, bfin_function_arg): Likewise.
19952 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
19953 * calls.c (emit_call_1): Change type of args_so_far to
19954 cumulative_args_t. Changed all callers.
19955 (initialize_argument_information): Likewise.
19956 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
19957 * dse.c (get_call_args): Likewise.
19958 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
19959 * function.c (pass_by_reference, reference_callee_copied): Likewise.
19960 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
19961 New member args_so_far_v. Changed all users.
19962 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
19963 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
19964 * config/mips/mips.c (mips_output_args_xfer): Likewise.
19965 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
19966 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
19967 * config/microblaze/microblaze.c (microblaze_expand_prologue):
19968 Likewise.
19969 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
19970 m32r_pass_by_reference.
19971
19972 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
19973
19974 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
19975 argument to be a VEC of statements.
19976 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
19977 assert that pattern statements have to have their vector type set.
19978 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
19979 Change the first argument to be a VEC of statements. Update
19980 documentation.
19981 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
19982 (vect_handle_widen_mult_by_const): New function.
19983 (vect_recog_widen_mult_pattern): Change the first argument to be a
19984 VEC of statements. Update documentation. Check that the constant is
19985 INTEGER_CST. Support multiplication by a constant that fits an
19986 intermediate type - call vect_handle_widen_mult_by_const.
19987 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
19988 call. Handle additional pattern statements if necessary.
19989
19990 2011-06-16 Nick Clifton <nickc@redhat.com>
19991
19992 PR target/49427
19993 * config.gcc: Set cpu_type to v850 for any V850 architecture.
19994 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
19995 md_file, extra_modes, out_file and extra_options are these are all
19996 deduced from cpu_type.
19997
19998 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
19999
20000 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
20001 truncation mask to 63.
20002
20003 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
20004
20005 PR target/49313
20006 PR target/29524
20007 * longlong.h: Add AVR support:
20008 (count_leading_zeros): New macro.
20009 (count_trailing_zeros): New macro.
20010 (COUNT_LEADING_ZEROS_0): New macro.
20011 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
20012 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
20013 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
20014 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
20015 (LIB2FUNCS_EXCLUDE): Add _clz.
20016 * config/avr/libgcc.S (XCALL): Move up in file.
20017 (XJMP): New C Macro.
20018 (DEFUN): New asm macro.
20019 (ENDF): New asm macro.
20020 (__ffssi2): New function.
20021 (__ffshi2): New function.
20022 (__loop_ffsqi2): New function.
20023 (__ctzsi2): New function.
20024 (__ctzhi2): New function.
20025 (__clzdi2): New function.
20026 (__clzsi2): New function.
20027 (__clzhi2): New function.
20028 (__paritydi2): New function.
20029 (__paritysi2): New function.
20030 (__parityhi2): New function.
20031 (__parityqi2): New function.
20032 (__popcounthi2): New function.
20033 (__popcountsi2): New function.
20034 (__popcountdi2): New function.
20035 (__popcountqi2): New function.
20036 (__bswapsi2): New function.
20037 (__bswapdi2): New function.
20038 (__ashldi3): New function.
20039 (__ashrdi3): New function.
20040 (__lshrdi3): New function.
20041 Fix suspicous lines.
20042
20043 2011-06-16 Richard Guenther <rguenther@suse.de>
20044
20045 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
20046 the same as x != 0.
20047 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
20048 to (bool) X & 1.
20049 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
20050 equality compares against zero for the lower bit.
20051
20052 2011-06-16 Jakub Jelinek <jakub@redhat.com>
20053
20054 PR tree-optimization/49419
20055 * tree-vrp.c (execute_vrp): Call init_range_assertions
20056 before estimate_numbers_of_iterations, call
20057 free_number_of_iterations_estimates before calling
20058 remove_range_assertions.
20059
20060 2011-06-16 Revital Eres <revital.eres@linaro.org>
20061
20062 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
20063 (struct partial_schedule): Add rows_length field.
20064 (verify_partial_schedule): Check rows_length.
20065 (ps_insert_empty_row): Handle rows_length.
20066 (create_partial_schedule): Likewise.
20067 (free_partial_schedule): Likewise.
20068 (reset_partial_schedule): Likewise.
20069 (create_ps_insn): Remove rest_count argument.
20070 (remove_node_from_ps): Update rows_length.
20071 (add_node_to_ps): Update rows_length and call create_ps_insn
20072 without passing row_rest_count.
20073 (rotate_partial_schedule): Update rows_length.
20074
20075 2011-06-16 Revital Eres <revital.eres@linaro.org>
20076
20077 * ddg.c (add_intra_loop_mem_dep): New function.
20078 (build_intra_loop_deps): Call it.
20079
20080 2011-06-13 Jeff Law <law@redhat.com>
20081
20082 * df-problems.c (df_lr_local_compute): Manually CSE
20083 PIC_OFFSET_TABLE_REGNUM.
20084 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
20085 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
20086
20087 2011-06-13 Jan Hubicka <jh@suse.cz>
20088
20089 * cgraphunit.c (handle_alias_pairs): New function.
20090 (cgraph_finalize_compilation_unit): Use it.
20091 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
20092 as externally visible.
20093
20094 2011-06-15 Richard Guenther <rguenther@suse.de>
20095
20096 * expr.c (expand_expr_real_2): Reduce all integral types to
20097 bitfield precision.
20098 (expand_expr_real_1): Likewise.
20099
20100 2011-06-15 Martin Jambor <mjambor@suse.cz>
20101
20102 PR tree-optimization/48613
20103 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
20104 ipa_node_params_vector is NULL.
20105
20106 2011-06-15 Jakub Jelinek <jakub@redhat.com>
20107
20108 PR debug/49382
20109 * dwarf2out.c (dw_loc_list_node): Add force field.
20110 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
20111 location in the list, even if it is modified before first real insn.
20112 (output_loc_list): Emit empty ranges with force flag set.
20113 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
20114
20115 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
20116
20117 PR target/49349
20118 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
20119 (fence_to_rewind). Use it to notice when bookkeeping will be placed
20120 above a fence. Update comments.
20121 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
20122 placed just above it. Do not allow NULL place_to_insert.
20123
20124 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
20125
20126 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
20127 (slpeel_tree_peel_loop_to_edge): Don't call
20128 remove_dead_stmts_from_loop.
20129 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
20130 remove irrelevant pattern statements. For irrelevant statements
20131 check if it is the last statement of a detected pattern, use
20132 corresponding pattern statement instead.
20133 (destroy_loop_vec_info): No need to remove pattern statements,
20134 only free stmt_vec_info.
20135 (vect_transform_loop): For irrelevant statements check if it is
20136 the last statement of a detected pattern, use corresponding
20137 pattern statement instead.
20138 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
20139 pattern statements. Set basic block for the new statement.
20140 (vect_pattern_recog): Update documentation.
20141 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
20142 operands of pattern statements.
20143 (vectorizable_call): Fix printing. In case of a pattern statement
20144 use the lhs of the original statement when creating a dummy
20145 statement to replace the original call.
20146 (vect_analyze_stmt): For irrelevant statements check if it is
20147 the last statement of a detected pattern, use corresponding
20148 pattern statement instead.
20149 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
20150 statements use gsi of the original statement.
20151
20152 2011-06-14 Joseph Myers <joseph@codesourcery.com>
20153
20154 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
20155 common/common-target-def.h.
20156 * target.def (default_target_flags, handle_option,
20157 supports_split_stack, optimization_table, init_struct,
20158 except_unwind_info, unwind_tables_default, have_named_sections):
20159 Move to common/common-target.def.
20160 * target.h (enum opt_levels, struct default_options): Move to
20161 common/common-target.h.
20162 * targhooks.c (default_except_unwind_info,
20163 dwarf2_except_unwind_info, sjlj_except_unwind_info,
20164 default_target_handle_option, empty_optimization_table): Move to
20165 common/common-targhooks.c.
20166 * targhooks.h (default_except_unwind_info,
20167 dwarf2_except_unwind_info, sjlj_except_unwind_info,
20168 default_target_handle_option, empty_optimization_table): Move to
20169 common/common-targhooks.h.
20170 * common/common-target-def.h: Include common/common-targhooks.h.
20171 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
20172 defined.
20173 * common/common-target.def (handle_option, option_init_struct,
20174 option_optimization_table, default_target_flags,
20175 except_unwind_info, supports_split_stack, unwind_tables_default,
20176 have_named_sections): Move from target.def.
20177 (HOOK_PREFIX): Undefine at end of file.
20178 * common/common-target.h: Include input.h.
20179 (enum opt_levels, struct default_options): Move from target.h.
20180 * common/common-targhooks.c, common/common-targhooks.h: New.
20181 * config.gcc (target_has_targetm_common): Default to yes.
20182 (moxie*): Set target_has_targetm_common=no.
20183 (hppa*-*-*): Don't set target_has_targetm_common=yes.
20184 * doc/tm.texi: Regenerate.
20185 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
20186 (C_TARGET_DEF_H): Add common/common-targhooks.h.
20187 (GCC_OBJS): Remove vec.o.
20188 (OBJS): Remove hooks.o and vec.o.
20189 (OBJS-libcommon-target): Add vec.o, hooks.o and
20190 common/common-targhooks.o.
20191 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
20192 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
20193 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
20194 cfglayout.o, $(out_object_file), $(common_out_object_file)):
20195 Update dependencies.
20196 (common/common-targhooks.o): New.
20197 * common/config/default-common.c: Include tm.h. Add FIXME comment.
20198 * common/config/pa/pa-common.c: Include more headers. Take
20199 copyright dates from pa.c.
20200 (pa_option_optimization_table, pa_handle_option,
20201 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
20202 TARGET_HANDLE_OPTION): Move from pa.c.
20203 * common/config/alpha/alpha-common.c,
20204 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
20205 common/config/bfin/bfin-common.c,
20206 common/config/cris/cris-common.c,
20207 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
20208 common/config/h8300/h8300-common.c,
20209 common/config/i386/i386-common.c,
20210 common/config/ia64/ia64-common.c,
20211 common/config/iq2000/iq2000-common.c,
20212 common/config/lm32/lm32-common.c,
20213 common/config/m32c/m32c-common.c,
20214 common/config/m32r/m32r-common.c,
20215 common/config/m68k/m68k-common.c,
20216 common/config/mcore/mcore-common.c,
20217 common/config/mep/mep-common.c,
20218 common/config/microblaze/microblaze-common.c,
20219 common/config/mips/mips-common.c,
20220 common/config/mmix/mmix-common.c,
20221 common/config/mn10300/mn10300-common.c,
20222 common/config/pdp11/pdp11-common.c,
20223 common/config/picochip/picochip-common.c,
20224 common/config/rs6000/rs6000-common.c,
20225 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
20226 common/config/score/score-common.c, common/config/sh/sh-common.c,
20227 common/config/sparc/sparc-common.c,
20228 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
20229 common/config/vax/vax-common.c,
20230 common/config/xstormy16/xstormy16-common.c,
20231 common/config/xtensa/xtensa-common.c: New.
20232 * config/alpha/alpha.c: Include common/common-target.h.
20233 (alpha_option_optimization_table, alpha_handle_option,
20234 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20235 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
20236 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
20237 * config/arm/arm.c (arm_option_optimization_table,
20238 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20239 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
20240 arm-common.c.
20241 * config/avr/avr.c (avr_option_optimization_table,
20242 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
20243 to avr-common.c.
20244 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
20245 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
20246 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
20247 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
20248 * config/cris/cris.c (cris_option_optimization_table,
20249 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20250 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
20251 cris-common.c.
20252 * config/fr30/fr30.c (fr30_option_optimization_table,
20253 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
20254 to fr30-common.c.
20255 * config/frv/frv.c (frv_option_optimization_table,
20256 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
20257 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
20258 * config/h8300/h8300.c (h8300_option_optimization_table,
20259 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20260 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
20261 * config/i386/i386-protos.h (ix86_handle_option): Declare.
20262 * config/i386/i386.c: Include common/common-target.h.
20263 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
20264 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
20265 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
20266 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
20267 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
20268 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
20269 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
20270 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
20271 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
20272 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
20273 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
20274 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
20275 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
20276 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
20277 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
20278 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
20279 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
20280 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
20281 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
20282 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
20283 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
20284 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
20285 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
20286 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
20287 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
20288 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
20289 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
20290 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
20291 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
20292 ix86_option_optimization_table, ix86_option_init_struct,
20293 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
20294 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
20295 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
20296 i386-common.c.
20297 * config/i386/t-i386 (i386.o): Update dependencies.
20298 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
20299 * config/ia64/ia64.c (ia64_option_optimization_table,
20300 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
20301 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20302 ia64_handle_option): Move to ia64-common.c.
20303 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
20304 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
20305 * config/lm32/lm32.c (lm32_option_optimization_table,
20306 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
20307 to lm32-common.c.
20308 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
20309 m32c-common.c.
20310 * config/m32r/m32r.c (m32r_option_optimization_table,
20311 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20312 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
20313 m32r_handle_option): Move to m32r-common.c.
20314 (m32r_memory_move_cost): Remove comment referring to
20315 TARGET_HANDLE_OPTION.
20316 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
20317 Move to m68k-common.c.
20318 * config/mcore/mcore.c (mcore_option_optimization_table,
20319 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20320 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
20321 * config/mep/mep.c (mep_option_optimization_table,
20322 mep_handle_option, TARGET_HANDLE_OPTION,
20323 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
20324 Move to mep-common.c.
20325 * config/microblaze/microblaze.c
20326 (microblaze_option_optimization_table,
20327 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
20328 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
20329 * config/mips/mips.c (mips_handle_option,
20330 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
20331 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
20332 mips-common.c.
20333 * config/mmix/mmix.c (mmix_option_optimization_table,
20334 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
20335 Move to mmix-common.c.
20336 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
20337 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
20338 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20339 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
20340 * config/pa/pa.c: Include common/common-target.h.
20341 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
20342 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20343 pa_handle_option): Move to pa-common.c.
20344 (pa_option_override): Use targetm_common.except_unwind_info.
20345 (pa_asm_output_mi_thunk, pa_function_section): Use
20346 targetm_common.have_named_sections.
20347 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
20348 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20349 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
20350 pdp11_handle_option, pdp11_option_init_struct): Move to
20351 pdp11-common.c.
20352 * config/picochip/picochip.c (picochip_option_optimization_table,
20353 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
20354 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
20355 * config/rs6000/rs6000.c: Include common/common-target.h.
20356 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
20357 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
20358 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
20359 rs6000_handle_option): Move to rs6000-common.c.
20360 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
20361 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
20362 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
20363 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
20364 * config/s390/s390.c (processor_flags_table,
20365 s390_option_optimization_table, s390_option_init_struct,
20366 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
20367 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
20368 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
20369 * config/s390/s390.h (processor_flags_table): Declare.
20370 * config/score/score.c (score_option_optimization_table,
20371 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20372 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
20373 score_handle_option): Move to score-common.c.
20374 * config/sh/sh.c (sh_option_optimization_table,
20375 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
20376 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
20377 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
20378 * config/sparc/sparc.c: Include common/common-target.h.
20379 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
20380 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
20381 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
20382 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
20383 spu_option_init_struct): Move to spu-common.c.
20384 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
20385 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
20386 * config/v850/v850.c (small_memory_physical_max,
20387 v850_handle_memory_optionn v850_handle_option,
20388 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
20389 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
20390 v850-common.c.
20391 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
20392 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
20393 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
20394 Move to xtensa-common.c.
20395 * cfglayout.c: Include common/common-target.h.
20396 (fixup_reorder_chain): Use targetm_common.have_named_sections.
20397 * cfgrtl.c: Include common/common-target.h.
20398 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
20399 targetm_common.have_named_sections.
20400 * dbxout.c: Include common/common-target.h.
20401 (dbxout_function_end): Use targetm_common.have_named_sections.
20402 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
20403 targetm_common.except_unwind_info.
20404 * dwarf2out.c: Include common/common-target.h.
20405 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
20406 dwarf2out_begin_prologue, dwarf2out_frame_init,
20407 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
20408 targetm_common.except_unwind_info.
20409 * except.c: Include common/common-target.h.
20410 (init_eh, finish_eh_generation,
20411 output_one_function_exception_table): Use
20412 targetm_common.except_unwind_info.
20413 (switch_to_exception_section): Use targetm_common.have_named_sections.
20414 * explow.c: Include common/common-target.h.
20415 * expr.c: Include common/common-target.h.
20416 (build_personality_function): Use targetm_common.except_unwind_info.
20417 * function.c: Include common/common-target.h.
20418 (expand_function_end): Use targetm_common.except_unwind_info.
20419 * haifa-sched.c: Include common/common-target.h.
20420 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
20421 * lto-opts.c: Include common/common-target.h instead of target.h.
20422 (lto_reissue_options): Use targetm_common.handle_option.
20423 * opts.c: Include common/common-target.h.
20424 (target_handle_option): Use targetm_common.handle_option.
20425 (init_options_struct): Update comment referring to
20426 targetm.target_option.optimization. Use
20427 targetm_common.default_target_flags,
20428 targetm_common.unwind_tables_default and
20429 targetm_common.option_init_struct.
20430 (default_options_optimization): Use
20431 targetm_common.option_optimization_table.
20432 (finish_options): Use targetm_common.except_unwind_info,
20433 targetm_common.unwind_tables_default,
20434 targetm_common.have_named_sections and
20435 targetm_common.supports_split_stack.
20436 * toplev.c: Include common/common-target.h.
20437 (process_options): Use targetm_common.have_named_sections.
20438 * tree-tailcall.c: Include common/common-target.h.
20439 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
20440 * tree.c: Include common/common-target.h.
20441 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
20442 * varasm.c: Include common/common-target.h.
20443 (resolve_unique_section, hot_function_section,
20444 default_function_section): Use targetm_common.have_named_sections.
20445
20446 2011-06-14 Easwaran Raman <eraman@google.com>
20447
20448 PR rtl-optimization/44194
20449 * dse.c: Include tree-flow.h
20450 (insn_info): Add new field non_frame_wild_read.
20451 (group_info): Add new fields escaped_n and escaped_p.
20452 (kill_on_calls): New variable.
20453 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
20454 (dse_step0): Initialize kill_on_calls.
20455 (can_escape): New function.
20456 (set_usage_bits): Add additional parameter; record information
20457 about escaped locations.
20458 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
20459 (dse_step2_nospill): Set kill_on_calls based on
20460 group->escaped_n and group->escaped_n.
20461 (add_wild_read): Refactor into...
20462 (reset_active_stores): ... New function, and
20463 (free_read_records): ... New function.
20464 (add_non_frame_wild_read): New function.
20465 (scan_insn): Call add_non_frame_wild_read on non-const calls.
20466 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
20467 (dse_step5_nospill): Call scan_reads_nospill for instructions
20468 marked as non_frame_wild_read.
20469 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
20470
20471 2011-06-14 Joseph Myers <joseph@codesourcery.com>
20472
20473 * common/common-target-def.h, common/common-target.def,
20474 common/common-target.h, common/config/default-common.c,
20475 common/config/pa/pa-common.c: New files.
20476 * Makefile.in (common_out_file, common_out_object_file,
20477 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
20478 (OBJS-libcommon-target): Include $(common_out_object_file).
20479 (prefix.o): Update dependencies.
20480 ($(common_out_object_file), common/common-target-hooks-def.h,
20481 s-common-target-hooks-def-h): New.
20482 (s-tm-texi): Also check timestamp on common-target.def.
20483 (build/genhooks.o): Update dependencies.
20484 * config.gcc (common_out_file, target_has_targetm_common): Define.
20485 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
20486 TARGET_ALWAYS_STRIP_DOTDOT.
20487 * configure.ac (common_out_object_file): Define.
20488 (common_out_file, common_out_object_file): Substitute.
20489 (common): Create directory.
20490 * configure: Regenerate.
20491 * doc/tm.texi.in (targetm_common): Document.
20492 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
20493 * doc/tm.texi: Regenerate.
20494 * genhooks.c (hook_array): Also include common/common-target.def.
20495 * prefix.c (tm.h): Don't include.
20496 (common/common-target.h): Include.
20497 (ALWAYS_STRIP_DOTDOT): Don't define.
20498 (update_path): Use targetm_common.always_strip_dotdot instead of
20499 ALWAYS_STRIP_DOTDOT.
20500 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
20501
20502 2011-06-14 David Li <davidxl@google.com>
20503
20504 * passes.c (execute_function_todo): Remove TODO_dump_func.
20505 (execute_one_pass): Remove TODO_dump_func.
20506 (execute_function_dump): New function.
20507 * tree-vrp.c: Remove TODO_dump_func.
20508 * regrename.c: Remove TODO_dump_func.
20509 * fwprop.c: Remove TODO_dump_func.
20510 * tree-into-ssa.c: Remove TODO_dump_func.
20511 * tree-complex.c: Remove TODO_dump_func.
20512 * tracer.c: Remove TODO_dump_func.
20513 * tree-loop-distribution.c: Remove TODO_dump_func.
20514 * postreload-gcse.c: Remove TODO_dump_func.
20515 * postreload.c: Remove TODO_dump_func.
20516 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
20517 * tree-tailcall.c: Remove TODO_dump_func.
20518 * ipa-cp.c: Remove TODO_dump_func.
20519 * final.c: Remove TODO_dump_func.
20520 * tree-emutls.c: Remove TODO_dump_func.
20521 * omp-low.c: Remove TODO_dump_func.
20522 * tree-ssa-dse.c: Remove TODO_dump_func.
20523 * tree-ssa-uncprop.c: Remove TODO_dump_func.
20524 * auto-inc-dec.c: Remove TODO_dump_func.
20525 * reorg.c: Remove TODO_dump_func.
20526 * tree-ssa-copyrename.c: Remove TODO_dump_func.
20527 * tree-ssa-ccp.c: Remove TODO_dump_func.
20528 * compare-elim.c: Remove TODO_dump_func.
20529 * mode-switching.c: Remove TODO_dump_func.
20530 * modulo-sched.c: Remove TODO_dump_func.
20531 * tree-call-cdce.c: Remove TODO_dump_func.
20532 * cse.c: Remove TODO_dump_func.
20533 * web.c: Remove TODO_dump_func.
20534 * tree-stdarg.c: Remove TODO_dump_func.
20535 * lto-streamer-out.c: Remove TODO_dump_func.
20536 * tree-ssa-math-opts.c: Remove TODO_dump_func.
20537 * tree-ssa-dom.c: Remove TODO_dump_func.
20538 * tree-nrv.c: Remove TODO_dump_func.
20539 * loop-init.c: Remove TODO_dump_func.
20540 * gimple-low.c: Remove TODO_dump_func.
20541 * ipa-inline.c: Remove TODO_dump_func.
20542 * tree-ssa-sink.c: Remove TODO_dump_func.
20543 * jump.c: Remove TODO_dump_func.
20544 * ifcvt.c: Remove TODO_dump_func.
20545 * tree-ssa-loop.c: Remove TODO_dump_func.
20546 * recog.c: Remove TODO_dump_func.
20547 * dse.c: Remove TODO_dump_func.
20548 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
20549 * matrix-reorg.c: Remove TODO_dump_func.
20550 * tree-eh.c: Remove TODO_dump_func.
20551 * regmove.c: Remove TODO_dump_func.
20552 * function.c: Remove TODO_dump_func.
20553 * tree-vectorizer.c: Remove TODO_dump_func.
20554 * ipa-split.c: Remove TODO_dump_func.
20555 * gcse.c: Remove TODO_dump_func.
20556 * tree-if-conv.c: Remove TODO_dump_func.
20557 * init-regs.c: Remove TODO_dump_func.
20558 * tree-ssa-phiopt.c: Remove TODO_dump_func.
20559 * implicit-zee.c: Remove TODO_dump_func.
20560 * lower-subreg.c: Remove TODO_dump_func.
20561 * bt-load.c: Remove TODO_dump_func.
20562 * tree-dfa.c: Remove TODO_dump_func.
20563 * except.c: Remove TODO_dump_func.
20564 * emit-rtl.c: Remove TODO_dump_func.
20565 * store-motion.c: Remove TODO_dump_func.
20566 * cfgexpand.c: Remove TODO_dump_func.
20567 * tree-cfgcleanup.c: Remove TODO_dump_func.
20568 * cfgcleanup.c: Remove TODO_dump_func.
20569 * tree-ssa-pre.c: Remove TODO_dump_func.
20570 * tree-sra.c: Remove TODO_dump_func.
20571 * tree-mudflap.c: Remove TODO_dump_func.
20572 * tree-ssa-copy.c: Remove TODO_dump_func.
20573 * cfglayout.c: Remove TODO_dump_func.
20574 * tree-ssa-forwprop.c: Remove TODO_dump_func.
20575 * tree-ssa-dce.c: Remove TODO_dump_func.
20576 * ira.c: Remove TODO_dump_func.
20577 * tree-ssa.c: Remove TODO_dump_func.
20578 * integrate.c: Remove TODO_dump_func.
20579 * tree-optimize.c: Remove TODO_dump_func.
20580 * tree-ssa-phiprop.c: Remove TODO_dump_func.
20581 * tree-object-size.c: Remove TODO_dump_func.
20582 * combine.c: Remove TODO_dump_func.
20583 * bb-reorder.c: Remove TODO_dump_func.
20584 * cprop.c: Remove TODO_dump_func.
20585 * var-tracking.c: Remove TODO_dump_func.
20586 * tree-profile.c: Remove TODO_dump_func.
20587 * tree-vect-generic.c: Remove TODO_dump_func.
20588 * reg-stack.c: Remove TODO_dump_func.
20589 * sched-rgn.c: Remove TODO_dump_func.
20590 * tree-ssa-structalias.c: Remove TODO_dump_func.
20591 * tree-switch-conversion.c: Remove TODO_dump_func.
20592 * tree-cfg.c: Remove TODO_dump_func.
20593 * tree-ssa-reassoc.c: Remove TODO_dump_func.
20594 * combine-stack-adj.c: Remove TODO_dump_func.
20595 * dce.c: Remove TODO_dump_func.
20596 * tree-ssanames.c: Remove TODO_dump_func.
20597 * regcprop.c: Remove TODO_dump_func.
20598
20599 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
20600
20601 PR middle-end/47364
20602 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
20603 and properly handle result not in Pmode.
20604
20605 2011-06-14 Robert Millan <rmh@gnu.org>
20606
20607 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
20608 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
20609 `config/linux.h'.
20610
20611 * config/i386/kfreebsd-gnu64.h: New file.
20612 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
20613 with `i386/kfreebsd-gnu64.h'.
20614
20615 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
20616 (GNU_USER_LINK_EMULATION64): New macros.
20617 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
20618 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
20619 of hardcoding `elf_i386' and `elf_x86_64'.
20620
20621 2011-06-14 Nick Clifton <nickc@redhat.com>
20622
20623 PR target/49403
20624 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
20625
20626 PR target/49402
20627 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
20628
20629 2011-06-14 Jakub Jelinek <jakub@redhat.com>
20630
20631 PR fortran/49103
20632 * tree.h (DECL_NONSHAREABLE): Define.
20633 (struct tree_decl_common): Change decl_common_unused to
20634 decl_nonshareable_flag.
20635 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
20636 Ignore vars with DECL_NONSHAREABLE bit set.
20637 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
20638 on stores to automatic aggregate vars.
20639
20640 PR rtl-optimization/49390
20641 Revert:
20642 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
20643
20644 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
20645 MEM_ALIAS_SET.
20646
20647 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
20648 Tom de Vries <tom@codesourcery.com>
20649
20650 PR target/45098
20651 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
20652 Document changed semantics.
20653 (max_stmt_executions, max_stmt_executions_int): Declare.
20654 * tree-data-ref.c (estimated_loop_iterations)
20655 (estimated_loop_iterations_int): Move functions...
20656 * tree-ssa-loop-niter.c (estimated_loop_iterations)
20657 (estimated_loop_iterations_int): here.
20658 (record_estimate): Change nb_iterations_upper_bound and
20659 nb_iterations_estimate semantics.
20660 (max_stmt_executions, max_stmt_executions_int): New function.
20661 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
20662 (max_stmt_executions_tree): this.
20663 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
20664 estimated_loop_iterations_tree.
20665 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
20666 max_stmt_executions_int instead of estimated_loop_iterations_int.
20667 * predict.c (predict_loops): Idem.
20668 * tree-parloops.c (parallelize_loops): Idem.
20669 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
20670 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
20671 (init_omega_for_ddr_1): Idem.
20672 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
20673 (loop_prefetch_arrays): Idem
20674 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
20675 max_stmt_executions instead of estimated_loop_iterations.
20676 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
20677 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
20678 instead of nb_iterations_upper_bound.
20679
20680 2011-06-13 Jan Hubicka <jh@suse.cz>
20681
20682 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
20683
20684 2011-06-14 Richard Henderson <rth@redhat.com>
20685
20686 PR debug/48459
20687 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
20688 (based_loc_descr): Assert it's true.
20689 (compute_frame_pointer_to_fb_displacement): Set it, rather than
20690 aborting immediately.
20691
20692 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
20693 Mingfeng Wu <mingfeng@faraday-tech.com>
20694
20695 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
20696
20697 2011-06-13 Jan Hubicka <jh@suse.cz>
20698
20699 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
20700
20701 2011-06-13 Jan Hubicka <jh@suse.cz>
20702
20703 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
20704 similarly to DECL_COMDAT.
20705 * cgraphunit.c (cgraph_analyze_function): Likewise.
20706 * ipa.c (function_and_variable_visibility): Likewise.
20707
20708 2011-06-13 Jan Hubicka <jh@suse.cz>
20709
20710 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
20711 BINFO_VIRTUALS when streaming for ltrans unit.
20712
20713 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
20714
20715 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
20716 (movdi_internal64): Same.
20717
20718 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
20719
20720 PR target/44618
20721 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
20722 a set of similar patterns, where the MATCH_OPERAND for the function
20723 argument is replaced with individual references to hardware registers.
20724 (save_fpregs_<mode>): Ditto
20725 (restore_gpregs_<mode>): Ditto
20726 (return_and_restore_gpregs_<mode>): Ditto
20727 (return_and_restore_fpregs_<mode>): Ditto
20728 (return_and_restore_fpregs_aix_<mode>): Ditto
20729
20730 2011-06-13 Jan Hubicka <jh@suse.cz>
20731
20732 * ipa-utils.c (postorder_stack): New structure.
20733 (ipa_reverse_postorder): Handle aliases.
20734
20735 2011-06-13 Jan Hubicka <jh@suse.cz>
20736
20737 * ipa-inline.c (reset_edge_caches): Walk aliases.
20738 (update_caller_keys): Do not test inlinability of aliases.
20739 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
20740 (do_estimate_growth): Fix typo.
20741
20742 2011-06-13 Jan Hubicka <jh@suse.cz>
20743
20744 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
20745 (can_remove_node_now_p): ... here; handle same comdat groups.
20746 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
20747 (inline_call): Update use of can_remove_node_now_p.
20748
20749 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
20750
20751 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
20752 condition to disallow non-identical memory locations.
20753 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
20754 preference to bit manipulation instructions.
20755
20756 2011-06-13 Jan Hubicka <jh@suse.cz>
20757
20758 * cgraph.c (cgraph_for_node_thunks_and_aliases,
20759 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
20760 (nonremovable_p): New function.
20761 (cgraph_can_remove_if_no_direct_calls_p): New function.
20762 (used_from_object_file_p): New functoin.
20763 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
20764 references from aliases.
20765 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
20766 * ipa-inline.c (check_caller_edge): New function.
20767 (want_inline_function_called_once_p): Use it; accept aliases called
20768 once, too.
20769 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
20770
20771 2011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20772
20773 PR target/48454
20774 * config/arm/neon.md (vec_pack_trunc): Set the lengths
20775 correctly for the case with Quad vectors.
20776
20777 2011-06-13 Jakub Jelinek <jakub@redhat.com>
20778 Ira Rosen <ira.rosen@linaro.org>
20779
20780 PR tree-optimization/49352
20781 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
20782 all, make sure loop_use_stmt after the loop is a def stmt of a used
20783 SSA_NAME that is the only one defined inside of the loop. Don't
20784 check for COND_EXPR and GIMPLE_BINARY_RHS.
20785 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
20786 check_reduction is true.
20787
20788 2011-06-11 Jan Hubicka <jh@suse.cz>
20789
20790 PR middle-end/49373
20791 * ipa.c (cgraph_externally_visible_p): Check resolution info.
20792
20793 2011-06-11 Jan Hubicka <jh@suse.cz>
20794
20795 PR middle-end/48836
20796 * ipa-inline-transform.c: Include tree-pass.h
20797 (inline_transform): Set TODO_update_ssa_only_virtuals.
20798 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
20799
20800 2011-06-11 Jan Hubicka <jh@suse.cz>
20801
20802 PR middle-end/49378
20803 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
20804 aliases and thunks.
20805
20806 2011-06-12 Ira Rosen <ira.rosen@linaro.org>
20807
20808 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
20809 Take number of iterations to peel into account for equally frequent
20810 misalignment values.
20811
20812 2011-06-11 Jan Hubicka <jh@suse.cz>
20813
20814 * lto-streamer-out.c (produce_symtab): Stream out the newly
20815 represented aliases.
20816
20817 2011-06-11 Jan Hubicka <jh@suse.cz>
20818
20819 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
20820 varying args.
20821 (ipa_update_after_lto_read): Likewise.
20822 (ipa_write_node_info): Do not sream call_with_var_arguments.
20823 (ipa_read_node_info): Likewise.
20824
20825 2011-06-11 Jan Hubicka <jh@suse.cz>
20826
20827 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
20828
20829 2011-06-11 Jan Hubicka <jh@suse.cz>
20830
20831 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
20832 (lto_symtab_resolve_can_prevail_p): Likewise.
20833 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
20834 * cgraph.c (same_body_aliases_done): New global var.
20835 (cgraph_same_body_alias_1): Rename to ...
20836 (cgraph_create_function_alias): ... this one; reorg to new
20837 representation.
20838 (cgraph_same_body_alias): Use cgraph_create_function_alias;
20839 record references when asked to.
20840 (cgraph_add_thunk): Fix formating.
20841 (cgraph_get_node): Kill same body alias code.
20842 (cgraph_node_for_asm): Likewise.
20843 (cgraph_remove_same_body_alias): Remove.
20844 (cgraph_remove_node): Kill same body alias code.
20845 (cgraph_mark_address_taken_node): Mark also the aliased function
20846 as having address taken.
20847 (dump_cgraph_node): Dump same body aliases.
20848 (cgraph_for_node_thunks_and_aliases): Update for new alias
20849 representation.
20850 (cgraph_for_node_and_aliases): Likewise.
20851 * cgraph.h (same_body): Kll pointer.
20852 (same_body_alias): Update comment.
20853 (same_body_aliases_done): Declare.
20854 (cgraph_remove_same_body_alias): Remove declaration.
20855 (cgraph_create_function_alias): Declare.
20856 (cgraph_process_same_body_aliases): Declare.
20857 (cgraph_function_with_gimple_body_p): Check for alias.
20858 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
20859 (cgraph_alias_aliased_node): New function.
20860 (cgraph_function_node): Update for new aliases.
20861 (cgraph_function_or_thunk_node): Likewise.
20862 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
20863 (inline_call): Remove dead aliases.
20864 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
20865 name hack for same body aliases.
20866 (clone_of_p): Look through aliases.
20867 (verify_cgraph_node): Verify aliases.
20868 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
20869 (cgraph_process_same_body_aliases): New function.
20870 (process_function_and_variable_attributes): Disable weakref warning on
20871 alias.
20872 (cgraph_analyze_functions): Handle aliases.
20873 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
20874 (assemble_thunks): Rename to ...
20875 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
20876 (cgraph_expand_function): Remove alias output code.
20877 (cgraph_output_in_order): Skip aliases.
20878 (cgraph_preserve_function_body_p): Aliases don't need preserving.
20879 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
20880 (ipa_record_reference): Do not assert on alias references.
20881 (ipa_ref_has_aliases_p): New function.
20882 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
20883 (ipa_ref_has_aliases_p): Declare.
20884 * lto-cgraph.c (lto_output_node): Handle aliases.
20885 (input_node): Likewise.
20886 * lto-streamer-out.c (lto_output): Skip aliases.
20887 (produce_symtab): Kill same_body_alias code.
20888 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
20889 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
20890 * ipa-inline.c (update_caller_keys): Walk aliases.
20891 (inline_small_functions): Fix thinko in previous patch.
20892 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
20893 (function_and_variable_visibility): Do not walk same body aliases.
20894 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
20895 (ipa_pta_execute): Use it.
20896
20897 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
20898
20899 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
20900 (*vec_dupv2df): Rename from vec_dupv2df.
20901 (vec_dupv2df): New expander.
20902
20903 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
20904
20905 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
20906
20907 2011-06-11 Uros Bizjak <ubizjak@gmail.com>
20908
20909 * config/i386/i386.md: Use default value in "isa" attribute.
20910 * config/i386/sse.md: Ditto.
20911 * config/i386/mmx.md: Ditto.
20912
20913 2011-06-10 Wei Guozhi <carrot@google.com>
20914
20915 PR target/45335
20916 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
20917 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
20918 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
20919 related peephole2.
20920 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
20921 related peephole2.
20922 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
20923 (arm_legitimate_ldrd_p): New prototype.
20924 (arm_output_ldrd): New prototype.
20925 * config/arm/arm.c (arm_check_ldrd_operands): New function.
20926 (arm_legitimate_ldrd_p): New function.
20927 (arm_output_ldrd): New function.
20928
20929 2011-06-10 David Li <davidxl@google.com>
20930
20931 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
20932 * passes.c (passr_eq): New function.
20933 (create_pass_tab): New function.
20934 (pass_traverse): New function.
20935 (dump_one_pass): New function.
20936 (dump_pass_list): New function.
20937 (dump_passes): New function.
20938
20939 2011-06-10 Jan Hubicka <jh@suse.cz>
20940
20941 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
20942 setting the nothrow flag.
20943 * ipa-reference.c (propagate): Skip aliases.
20944 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
20945 (propagate_nothrow): Skip aliases; do not update cgraph.
20946 (local_pure_const): Do not update cgraph.
20947 * tree-profile.c (tree_profiling): Do fixup_cfg.
20948
20949 2011-06-10 Jan Hubicka <jh@suse.cz>
20950
20951 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
20952 (cgraph_local_node_p): ... here; handle aliases.
20953 (has_addr_references_p): Break out from ...;
20954 (cgraph_remove_unreachable_nodes) ... here.
20955
20956 2011-06-10 Jan Hubicka <jh@suse.cz>
20957
20958 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
20959 * common.opt (flag_inline_functions_called_once): Do not
20960 initialize to 1.
20961
20962 2011-06-10 Jan Hubicka <jh@suse.cz>
20963
20964 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
20965 (ipcp_initialize_node_lattices): Do not deal with aliases;
20966 Do not try to propagate through thunks.
20967 (ipcp_change_tops_to_bottom): Do not deal with aliases.
20968
20969 2011-06-10 Jan Hubicka <jh@suse.cz>
20970
20971 * ipa-prop.c (ipa_write_node_info): Stream jump functions
20972 for indirect calls.
20973 (ipa_read_node_info): Likewise.
20974
20975 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20976
20977 PR lto/49302
20978 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
20979 (build_and_insert_call): Likewise.
20980 (build_and_insert_ref): New.
20981 (gimple_expand_builtin_pow): Minor cleanup.
20982 (gimple_expand_builtin_cabs): New.
20983 (execute_cse_sincos): Add case for BUILT_IN_CABS.
20984
20985 2011-06-10 Jan Hubicka <jh@suse.cz>
20986
20987 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
20988 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
20989 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
20990 (ipcp_propagate_stage): Skip aliases when propagating.
20991 (ipcp_need_redirect_p): Skip aliases.
20992 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
20993 collect_callers_of_node.
20994 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
20995 for aliases.
20996 (ipa_compute_jump_functions): Look through aliases.
20997
20998 2011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20999
21000 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
21001
21002 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
21003
21004 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
21005 Adjust comments.
21006 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
21007
21008 2011-06-10 Jan Hubicka <jh@suse.cz>
21009
21010 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
21011 Update call of gimple_get_virt_method_for_binfo.
21012 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
21013 refuse_thunks parameter.
21014 (gimple_fold_call): Update.
21015 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
21016
21017 2011-06-10 Jan Hubicka <jh@suse.cz>
21018
21019 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
21020 (not_all_callers_have_enough_arguments_p): ... this one; turn into
21021 worker for cgraph_for_node_and_aliases.
21022 (convert_callers_for_node): Break out from ...
21023 (convert_callers): ... here.
21024 (modify_function): Use collect_callers_of_node.
21025 (ipa_early_sra): Use cgraph_for_node_and_aliases.
21026
21027 2011-06-10 Richard Guenther <rguenther@suse.de>
21028
21029 PR tree-optimization/49361
21030 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
21031 when not already in gimple form.
21032
21033 2011-06-10 Richard Guenther <rguenther@suse.de>
21034
21035 PR bootstrap/49344
21036 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
21037 FOR_EACH_PHI_OR_STMT_USE.
21038
21039 2011-06-10 Jan Hubicka <jh@suse.cz>
21040
21041 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
21042 (clone_inlined_nodes): ... here.
21043 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
21044 to real destination prior inlining.
21045 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
21046 can_early_inline_edge_p, want_early_inline_function_p,
21047 want_early_inline_function_p, want_inline_small_function_p,
21048 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
21049 edge_badness, update_all_callee_keys, lookup_recursive_calls,
21050 add_new_edges_to_heap, inline_small_functions, flatten_function,
21051 inline_always_inline_functions, early_inline_small_functions): Use
21052 cgraph_function_or_thunk_node.
21053 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
21054 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
21055 (do_estimate_edge_growth_1): Break out from ...
21056 (do_estimate_growth) ... here; walk aliases.
21057 (inline_generate_summary): Skip aliases.
21058
21059 2011-06-10 Richard Guenther <rguenther@suse.de>
21060
21061 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
21062 forward when combining, visit inserted stmts when a stmt was changed.
21063
21064 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
21065
21066 * tree.h (error_operand_p): Add.
21067 * dbxout.c (dbxout_type_fields): Use the latter.
21068 * c-decl.c (add_stmt): Likewise.
21069 * gimplify.c (omp_add_variable, omp_notice_variable,
21070 gimplify_scan_omp_clauses): Likewise.
21071
21072 2011-06-10 Georg-Johann Lay <avr@gjlay.de>
21073
21074 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
21075 when a value is actually passed in regs.
21076
21077 2011-06-10 Eric Botcazou <ebotcazou@adacore.com>
21078 Laurent Rougé <laurent.rouge@menta.fr>
21079
21080 * doc/invoke.texi (SPARC options): Add -mflat.
21081 * config/sparc/sparc.opt: Likewise.
21082 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
21083 (sparc_flat_expand_prologue): Declare.
21084 (sparc_flat_expand_epilogue): Likewise.
21085 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
21086 (CPP_ENDIAN_SPEC): Replace with...
21087 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
21088 (CPP_SPEC): Adjust to above change.
21089 (EXTRA_SPECS): Likewise.
21090 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
21091 (INCOMING_REGNO): Likewise.
21092 (OUTGOING_REGNO): Likewise.
21093 (LOCAL_REGNO): Likewise.
21094 (SETUP_FRAME_ADDRESSES): Likewise.
21095 (FIXED_REGISTERS): Set 0 for %fp.
21096 (CALL_USED_REGISTERS): Likewise.
21097 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
21098 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
21099 (RETURN_ADDR_REGNUM): Define.
21100 (RETURN_ADDR_RTX): Use it.
21101 (INCOMING_RETURN_ADDR_REGNUM): Define.
21102 (INCOMING_RETURN_ADDR_RTX): Use it.
21103 (DWARF_FRAME_RETURN_COLUMN): Likewise.
21104 (EH_RETURN_REGNUM): Define.
21105 (EH_RETURN_STACKADJ_RTX): Use it.
21106 (EH_RETURN_HANDLER_RTX): Delete.
21107 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
21108 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
21109 Delete.
21110 (struct machine_function): Add frame_size, apparent_frame_size,
21111 frame_base_reg, frame_base_offset, n_global_fp_regs and
21112 save_local_in_regs_p fields.
21113 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
21114 sparc_frame_base_offset, sparc_n_global_fp_regs,
21115 sparc_save_local_in_regs_p): New macros.
21116 (sparc_option_override): Error out if -fcall-saved-REG is specified
21117 for Out registers.
21118 (eligible_for_restore_insn): Fix formatting.
21119 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
21120 (eligible_for_sibcall_delay): Likewise.
21121 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
21122 (sparc_legitimate_address_p): Adjust to above change.
21123 (save_global_or_fp_reg_p): New predicate.
21124 (return_addr_reg_needed_p): Likewise.
21125 (save_local_or_in_reg_p): Likewise.
21126 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
21127 (SORR_SAVE, SORR_RESTORE): Delete.
21128 (sorr_pred_t): New typedef.
21129 (sorr_act_t): New enum.
21130 (save_or_restore_regs): Rename to...
21131 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
21132 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
21133 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
21134 mechanism. Add CFI information for double-word saves in 32-bit mode.
21135 (emit_adjust_base_to_offset): New function extracted from...
21136 (emit_save_or_restore_regs): ...this. Rename the rest to...
21137 (emit_save_or_restore_regs_global_fp_regs): ...this.
21138 (emit_save_or_restore_regs_local_in_regs): New function.
21139 (gen_create_flat_frame_[123]): New functions.
21140 (sparc_expand_prologue): Use SIZE local variable. Adjust.
21141 (sparc_flat_expand_prologue): New function.
21142 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
21143 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
21144 (sparc_flat_expand_epilogue): New function.
21145 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
21146 (output_return): Likewise.
21147 (output_sibcall): Likewise.
21148 (sparc_output_mi_thunk): Likewise.
21149 (sparc_frame_pointer_required): Likewise.
21150 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
21151 function optimization.
21152 * config/sparc/sparc.md (flat): New attribute.
21153 (prologue): Add TARGET_FLAT handling.
21154 (save_register_window): Disable if TARGET_FLAT.
21155 (create_flat_frame_[123]): New patterns.
21156 (epilogue): Add TARGET_FLAT handling.
21157 (sibcall_epilogue): Likewise.
21158 (eh_return): New expander.
21159 (eh_return_internal): New insn and splitter.
21160 (return_internal): Add TARGET_FLAT handling.
21161 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
21162 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
21163 (nonlocal_goto): Add TARGET_FLAT handling.
21164 * config/sparc/t-elf: Add -mflat multilib.
21165 * config/sparc/t-leon: Likewise.
21166
21167 2011-06-10 Jan Hubicka <jh@suse.cz>
21168
21169 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
21170 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
21171 (self_recursive_p): Use cgraph_function_node.
21172 (propagate_pure_const): Likewise.
21173 (propagate_nothrow): Likewise.
21174 * ipa-reference.c (ipa_reference_get_not_read_global): Use
21175 cgraph_function_node.
21176 (propagate_bits): Likewise.
21177 (propagate): Likewise.
21178
21179 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
21180 Richard Earnshaw <rearnsha@arm.com>
21181
21182 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
21183 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
21184 (*thumb2_movdi_vfp): Delete.
21185 (*arm_movdi_vfp_cortexa8): Delete.
21186 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
21187 (*movdi_vfp_cortexa8): Likewise.
21188
21189 2011-06-10 Richard Guenther <rguenther@suse.de>
21190
21191 * stor-layout.c (initialize_sizetypes): Give names to all
21192 sizetype kinds.
21193
21194 2011-06-10 Ira Rosen <ira.rosen@linaro.org>
21195
21196 PR tree-optimization/49318
21197 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
21198 irrelevant pattern statements.
21199
21200 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
21201
21202 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
21203
21204 PR bootstrap/49354
21205 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
21206 to last assignment.
21207
21208 2011-06-09 Jan Hubicka <jh@suse.cz>
21209
21210 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
21211 do not recompute reachable flag.
21212 (cgraph_finalize_function, cgraph_analyze_functions): Set
21213 redefined_extern_inline here.
21214
21215 2011-06-09 Jan Hubicka <jh@suse.cz>
21216
21217 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
21218 (cgraph_only_called_directly_p): ... this one; bring offline.
21219 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
21220 varpool_used_from_object_file_p): Drop names from the declaratoin.
21221 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
21222 collect_callers_of_node): New.
21223 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
21224 (cgraph_edge_recursive_p): Use cgraph_function_node.
21225 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
21226 (cgraph_node_cannot_be_local_p_1): Break out from ...
21227 (cgraph_node_can_be_local_p): ... here; walk aliases.
21228 (cgraph_for_node_thunks_and_aliases): New function.
21229 (cgraph_for_node_and_aliases): New function.
21230 (cgraph_make_node_local_1): Break out from ...
21231 (cgraph_make_node_local) ... here; use
21232 cgraph_for_node_thunks_and_aliases.
21233 (cgraph_set_nothrow_flag_1): Break out from ...
21234 (cgraph_set_nothrow_flag) ... here;
21235 use cgraph_for_node_thunks_and_aliases.
21236 (cgraph_set_const_flag_1): Break out from ...
21237 (cgraph_set_const_flag) ... here;
21238 use cgraph_for_node_thunks_and_aliases.
21239 (cgraph_set_pure_flag_1): Break out from ...
21240 (cgraph_set_pure_flag) ... here;
21241 use cgraph_for_node_thunks_and_aliases.
21242 (cgraph_propagate_frequency_1): Break out from ...
21243 (cgraph_propagate_frequency) ... here; use
21244 cgraph_for_node_thunks_and_aliases.
21245 (cgraph_used_from_object_file_p): Do not care about aliases.
21246 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
21247 New functions.
21248 (collect_callers_of_node_1, collect_callers_of_node): New functions.
21249
21250 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
21251
21252 PR rtl-optimization/49154
21253 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
21254 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
21255 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
21256 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
21257 * config/cris/cris.h (cris_register_move_cost): Remove
21258 !TARGET_V32 code. Tweak comments.
21259
21260 2011-06-09 Jan Hubicka <jh@suse.cz>
21261
21262 * cgraphbuild.c (record_eh_tables): Mark personality function as having
21263 address taken.
21264
21265 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
21266
21267 PR rtl-optimization/49154
21268 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
21269 is a matching slot in the hashtable, assign it to classes_ptr.
21270
21271 PR rtl-optimization/49154
21272 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
21273 register classes.
21274 * doc/tm.texi: Regenerate.
21275
21276 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
21277
21278 PR target/49307
21279 * config/sh/sh.md (UNSPEC_CHKADD): New.
21280 (chk_guard_add): New define_insn_and_split.
21281 (symGOT_load): Use chk_guard_add instead of blockage.
21282
21283 2011-06-09 Kai Tietz <ktietz@redhat.com>
21284
21285 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
21286
21287 2011-06-09 Eric Botcazou <ebotcazou@adacore.com>
21288
21289 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
21290
21291 2011-06-09 Wei Guozhi <carrot@google.com>
21292
21293 PR target/46975
21294 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
21295 (peephole2 for conditional move): Generate 16 bit instructions.
21296
21297 2011-06-09 Uros Bizjak <ubizjak@gmail.com>
21298
21299 * config/i386/i386.md (*movdi_internal_rex64): Merge
21300 alternatives 6 and 8.
21301
21302 2011-06-09 David Li <davidxl@google.com>
21303
21304 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
21305 * passes.c (passr_eq): New function.
21306 (create_pass_tab): New function.
21307 (pass_traverse): New function.
21308 (dump_one_pass): New function.
21309 (dump_pass_list): New function.
21310 (dump_passes): New function.
21311
21312 2011-06-09 David Li <davidxl@google.com>
21313
21314 * tree-complex.c (tree_lower_complex): Gate cleanup.
21315 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
21316 (execute_optimize_stdarg): Ditto.
21317 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
21318 (execute_cleanup_eh_1): Ditto.
21319 (execute_cleanup_eh): Ditto.
21320 * gcse.c (gate_rtl_pre): Ditto.
21321 (execute_rtl_pre): Ditto.
21322 * except.c (finish_eh_generation): Ditto.
21323 (convert_to_eh_region_ranges): Ditto.
21324 * cprop.c (one_cprop_pass): Ditto.
21325
21326 2011-06-09 Bernd Schmidt <bernds@codesourcery.com>
21327
21328 PR target/48673
21329 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
21330 in all basic blocks.
21331
21332 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21333
21334 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
21335 (HAVE_ENABLE_EXECUTE_STACK): Define.
21336 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
21337 (HAVE_ENABLE_EXECUTE_STACK): Define.
21338 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
21339 (HAVE_ENABLE_EXECUTE_STACK): Define.
21340 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
21341 (ENABLE_EXECUTE_STACK): Remove.
21342 (HAVE_ENABLE_EXECUTE_STACK): Define.
21343 [IN_LIBGCC2]: Don't include <windows.h>.
21344 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
21345 (HAVE_ENABLE_EXECUTE_STACK): Define.
21346 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
21347 (HAVE_ENABLE_EXECUTE_STACK): Define.
21348 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
21349 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
21350 (HAVE_ENABLE_EXECUTE_STACK): Define.
21351 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
21352 (HAVE_ENABLE_EXECUTE_STACK): Define.
21353 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
21354 (HAVE_ENABLE_EXECUTE_STACK): Define.
21355 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
21356 (HAVE_ENABLE_EXECUTE_STACK): Define.
21357 * config/alpha/alpha.c (alpha_trampoline_init): Test
21358 HAVE_ENABLE_EXECUTE_STACK.
21359 * config/i386/i386.c (ix86_trampoline_init): Likewise.
21360 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
21361 (sparc64_initialize_trampoline): Likewise.
21362 * libgcc2.c [L_enable_execute_stack]: Remove.
21363 * system.h (ENABLE_EXECUTE_STACK): Poison.
21364 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
21365 * doc/tm.texi: Regenerate.
21366 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
21367
21368 2011-06-09 Jakub Jelinek <jakub@redhat.com>
21369
21370 PR middle-end/49308
21371 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
21372 variable. After resetting and rescanning insn continue with previous
21373 statement.
21374
21375 2011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21376
21377 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
21378 (gcc_cv_ld_hidden): Likewise.
21379 * configure: Regenerate.
21380 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
21381 (ix86_stack_protect_fail): Mark unused.
21382 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
21383 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
21384 [TARGET_MACHO]: Don't define.
21385 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
21386 (TARGET_STACK_PROTECT_FAIL): Likewise.
21387 (rs6000_stack_protect_fail): Mark unused.
21388 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
21389 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
21390
21391 2011-06-08 Andi Kleen <ak@linux.intel.com>
21392
21393 * varasm.c (get_section): Print location of other conflict
21394 for section conflicts.
21395
21396 2011-06-08 Andi Kleen <ak@linux.intel.com>
21397
21398 * config/i386/driver-i386.c (host_detect_local_cpu):
21399 Add model 0x2d Intel CPU.
21400
21401 2011-06-08 Andi Kleen <ak@linux.intel.com>
21402
21403 * reginfo.c (global_regs_decl): Add.
21404 (globalize_reg): Add decl parameter. Compute location. Pass location
21405 to warnings and add inform. Store decl in global_regs_decl.
21406 * rtl.h (globalize_reg): Update prototype.
21407 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
21408
21409 2011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
21410
21411 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
21412
21413 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
21414
21415 PR target/49305
21416 * config/sh/predicates.md (general_movsrc_operand): Check
21417 mode for memory with indexed address for QI and HImode.
21418 (general_movdst_operand): Likewise.
21419
21420 2011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
21421
21422 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
21423
21424 2011-06-08 Alexandre Oliva <aoliva@redhat.com>
21425
21426 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
21427 (num_ssa_operands): Likewise.
21428 (op_iter_init_phiuse): Forward-declare.
21429 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
21430
21431 2011-06-08 Nick Clifton <nickc@redhat.com>
21432
21433 * doc/invoke.texi (ARM Options): Update description of
21434 -mthumb-interwork.
21435
21436 2011-06-08 H.J. Lu <hongjiu.lu@intel.com>
21437
21438 * config/i386/driver-i386.c (host_detect_local_cpu): Support
21439 unknown Intel family 0x6 CPUs.
21440
21441 2011-06-08 Martin Jambor <mjambor@suse.cz>
21442
21443 * tree-sra.c (mark_rw_status): Removed.
21444 (analyze_access_subtree): New parameter parent instead of
21445 mark_read and mark_write, propagate from that.
21446
21447 2011-06-08 Julian Brown <julian@codesourcery.com>
21448
21449 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
21450 for double-precision helper functions in hard-float mode if only
21451 single-precision arithmetic is supported in hardware.
21452
21453 2011-06-08 Alexander Monakov <amonakov@ispras.ru>
21454
21455 PR rtl-optimization/49303
21456 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
21457 code_motion_path_driver returned 0 or 1.
21458 (sel_region_finish): Clear h_d_i_d.
21459
21460 2011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
21461
21462 * config/sh/sh.c (prepare_move_operands): Set pic register
21463 appropriately for global and local dynamic tls models even
21464 if flag_pic is unset.
21465
21466 2011-06-07 Jason Merrill <jason@redhat.com>
21467
21468 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
21469
21470 2011-06-07 Xinliang David Li <davidxl@google.com>
21471 * passes.c (enable_disable_pass): Handle assembler name.
21472 (is_pass_explicitly_enabled_or_disabled): Ditto.
21473
21474 2011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21475
21476 PR tree-optimization/48497
21477 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
21478
21479 2011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21480
21481 PR tree-optimization/46728
21482 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
21483 to use gimple_val_nonnegative_real_p.
21484 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
21485 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
21486
21487 2011-06-07 H.J. Lu <hongjiu.lu@intel.com>
21488
21489 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
21490
21491 2011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
21492
21493 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
21494 constant vectors.
21495
21496 2011-06-07 Richard Guenther <rguenther@suse.de>
21497
21498 * stor-layout.c (initialize_sizetypes): Initialize all
21499 sizetypes based on target definitions.
21500 (set_sizetype): Remove.
21501 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
21502 * tree.h (set_sizetype): Remove.
21503
21504 2011-06-07 Nick Clifton <nickc@redhat.com>
21505
21506 * config.gcc: Unify V850 architecture options and add support for
21507 newer V850 architectures.
21508 * config/v850/t-v850e: Delete.
21509
21510 2011-06-07 Richard Guenther <rguenther@suse.de>
21511
21512 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
21513 Call set_sizetype from here.
21514
21515 2011-06-07 Andrew Stubbs <ams@codesourcery.com>
21516
21517 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
21518 (*maddhisi4tb, *maddhisi4tt): New define_insns.
21519
21520 2011-06-07 Bernd Schmidt <bernds@codesourcery.com>
21521 Andrew Stubbs <ams@codesourcery.com>
21522
21523 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
21524 multiplies.
21525 * doc/md.texi (Canonicalization of Instructions): Document widening
21526 multiply canonicalization.
21527
21528 2011-06-07 Jakub Jelinek <jakub@redhat.com>
21529
21530 PR gcov-profile/49299
21531 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
21532
21533 2011-06-07 Ira Rosen <ira.rosen@linaro.org>
21534
21535 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
21536 a pointer.
21537 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
21538 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
21539 vect_recog_pow_pattern): Likewise.
21540 (vect_pattern_recog_1): Remove declaration.
21541 (widened_name_p): Remove declaration. Add new argument to specify
21542 whether to check that both types are either signed or unsigned.
21543 (vect_recog_widen_mult_pattern): Update documentation. Handle
21544 unsigned patterns and multiplication by constants.
21545 (vect_pattern_recog_1): Update vect_recog_func references. Use
21546 statement information from the statement returned from pattern
21547 detection functions.
21548 (vect_pattern_recog): Update vect_recog_func reference.
21549 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
21550 multiplication by a constant use the type of the other operand.
21551
21552 2011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
21553
21554 PR rtl-optimization/49145
21555 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
21556
21557 2011-06-06 Jakub Jelinek <jakub@redhat.com>
21558
21559 PR debug/49262
21560 * dwarf2out.c (native_encode_initializer): Decrement count in each
21561 iteration.
21562
21563 PR debug/49294
21564 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
21565 non-MODE_INT modes.
21566
21567 PR c++/49264
21568 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
21569 if stmt folded into nothing.
21570 * tree-inline.c (fold_marked_statements): If a builtin at the end of
21571 a bb folded into nothing, just update cgraph edges and move to next bb.
21572 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
21573 to be NULL. Don't compute count and frequency if new_call is NULL.
21574
21575 2011-06-04 Diego Novillo <dnovillo@google.com>
21576
21577 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
21578 (cgraph.o): Likewise.
21579 (cgraphunit.o): Likewise.
21580 * cgraphunit.c: Include lto-streamer.h
21581 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
21582 if LTO is enabled.
21583 * lto-streamer-in.c (unpack_value_fields): Call
21584 streamer_hooks.unpack_value_fields if set.
21585 (lto_materialize_tree): For unhandled nodes, first try to
21586 call lto_streamer_hooks.alloc_tree, if it exists.
21587 (lto_input_ts_decl_common_tree_pointers): Move reading of
21588 DECL_INITIAL to lto_streamer_read_tree.
21589 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
21590 (lto_streamer_read_tree): New.
21591 (lto_reader_init): Rename from lto_init_reader.
21592 Move initialization code to lto/lto.c.
21593 * lto-streamer-out.c (pack_value_fields): Call
21594 streamer_hooks.pack_value_fields if set.
21595 (lto_output_tree_ref): For tree nodes that are not normally indexable,
21596 call streamer_hooks.indexable_with_decls_p before giving up.
21597 (lto_output_ts_decl_common_tree_pointers): Move handling
21598 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
21599 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
21600 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
21601 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
21602 (lto_streamer_write_tree): New.
21603 (lto_output): Call lto_streamer_init directly.
21604 (lto_writer_init): Remove.
21605 * lto-streamer.c (streamer_hooks): New.
21606 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
21607 instead of lto_preload_common_nodes.
21608 (lto_is_streamable): Move from lto-streamer.h
21609 (lto_streamer_hooks_init): New.
21610 (streamer_hooks): New.
21611 (streamer_hooks_init): New.
21612 * lto-streamer.h (struct output_block): Forward declare.
21613 (struct lto_input_block): Likewise.
21614 (struct data_in): Likewise.
21615 (struct bitpack_d): Likewise.
21616 (struct streamer_hooks): Declare.
21617 (streamer_hooks): Declare.
21618 (lto_streamer_hooks_init): Declare.
21619 (lto_streamer_write_tree): Declare.
21620 (lto_streamer_read_tree): Declare.
21621 (streamer_hooks_init): Declare.
21622 (lto_is_streamable): Move to lto-streamer.c
21623
21624 2011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21625
21626 * longlong.h (smul_ppmm): The resulting register pair contains the
21627 higher order word first.
21628
21629 2011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21630
21631 PR tree-optimization/46728
21632 * builtins.c (powi_table): Remove.
21633 (powi_lookup_cost): Remove.
21634 (powi_cost): Remove.
21635 (expand_powi_1): Remove.
21636 (expand_powi): Remove.
21637 (expand_builtin_pow_root): Remove.
21638 (expand_builtin_pow): Remove.
21639 (expand_builtin_powi): Eliminate handling of constant exponent.
21640 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
21641
21642 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
21643
21644 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
21645
21646 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
21647
21648 * dce.c (reset_unmarked_insns_debug_uses): New.
21649 (delete_unmarked_insns): Skip debug insns.
21650 (prescan_insns_for_dce): Likewise.
21651 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
21652 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
21653 active reg can be found.
21654 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
21655 (convert_regs_1): Use it.
21656
21657 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
21658
21659 * tree-pretty-print.c (dump_function_header): Add flags.
21660 Don't dump decl_uid with nouid.
21661 * tree-pretty-print.h (dump_function_header): Adjust.
21662 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
21663 * passes.c (pass_init_dump_file): Pass dump_flags on.
21664 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
21665
21666 2011-06-06 Alexandre Oliva <aoliva@redhat.com>
21667
21668 PR bootstrap/49270
21669 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
21670
21671 2011-06-06 Mikael Pettersson <mikpe@it.uu.se>
21672
21673 PR tree-optimization/49243
21674 * calls.c (setjmp_call_p): Also check if fndecl has the
21675 returns_twice attribute.
21676
21677 2011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21678
21679 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
21680 -ffast-math etc.
21681
21682 2011-06-06 Richard Henderson <rth@redhat.com>
21683 Georg-Johann Lay <avr@gjlay.de>
21684
21685 PR target/42210
21686 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
21687 New predicates.
21688 * config/avr/avr.md ("insv"): New insn expander.
21689 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
21690 "*insv.not.io", "*insv.reg"): New insns.
21691
21692 2011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
21693
21694 PR target/49285
21695 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
21696 to nonimmediate_operand from memory_operand for the operand that is to
21697 be forced to memory by the expander. Lose the constraints.
21698
21699 2011-06-05 Eric Botcazou <ebotcazou@adacore.com>
21700
21701 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
21702 EH return when delayed branches are disabled.
21703
21704 2011-06-05 Uros Bizjak <ubizjak@gmail.com>
21705
21706 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
21707 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
21708 calculation.
21709 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
21710 Simplify MODE_V1DF and MODE_V2SF handling.
21711 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
21712 Simplify MODE_SF handling.
21713
21714 2011-06-04 Jan Hubicka <jh@suse.cz>
21715
21716 PR tree-optimization/48893
21717 PR tree-optimization/49091
21718 PR tree-optimization/49179
21719 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
21720 Bounds check.
21721
21722 2011-06-04 Jan Hubicka <jh@suse.cz>
21723
21724 PR lto/48954
21725 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
21726 bitmaps.
21727
21728 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
21729
21730 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
21731
21732 2011-06-04 Jakub Jelinek <jakub@redhat.com>
21733
21734 PR target/49281
21735 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
21736 to be strictly smaller than 1 << shiftcount.
21737
21738 2011-06-04 Jan Hubicka <jh@suse.cz>
21739
21740 PR tree-optimize/48929
21741 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
21742 of empty predicate.
21743
21744 2011-06-04 Alexandre Oliva <aoliva@redhat.com>
21745
21746 PR debug/48333
21747 * calls.c (emit_call_1): Prefer the __builtin declaration of
21748 builtin functions.
21749
21750 2011-06-03 Diego Novillo <dnovillo@google.com>
21751
21752 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
21753 (lto_input_tree_pointers): Likewise.
21754 * lto-streamer-out.c (pack_value_fields): Likewise.
21755 (lto_output_tree_pointers): Likewise.
21756 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
21757 and OPTIMIZATION_NODE.
21758
21759 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21760
21761 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
21762 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
21763 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
21764 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
21765 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
21766 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
21767 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
21768 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
21769 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
21770 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
21771 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
21772 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
21773 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
21774 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
21775 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
21776 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
21777 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
21778 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
21779 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
21780 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
21781 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
21782 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
21783 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
21784 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
21785 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
21786 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
21787 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
21788 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
21789 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
21790 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
21791 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
21792 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
21793 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
21794 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
21795 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
21796 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
21797 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
21798 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
21799 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
21800 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
21801 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
21802 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
21803 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
21804 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
21805 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
21806 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
21807 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
21808 * system.h (MD_UNWIND_SUPPORT): Poison.
21809 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
21810 * doc/tm.texi: Regenerate.
21811 * unwind-dw2.c: Include md-unwind-support.h instead of
21812 MD_UNWIND_SUPPORT.
21813 * config/ia64/unwind-ia64.c: Likewise.
21814 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
21815
21816 2011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
21817
21818 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
21819
21820 2011-06-03 Richard Henderson <rth@redhat.com>
21821 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21822
21823 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
21824 (sigill_hdlr): Correct insn, insn size.
21825 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
21826
21827 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21828
21829 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
21830 t-slibgcc-dummy.
21831 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
21832 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
21833 * config/mips/t-iris: Remove.
21834 * config/mips/t-irix6: New file.
21835 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
21836
21837 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21838
21839 * Makefile.in (LIB2ADDEHDEP): Remove.
21840 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
21841 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
21842 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
21843 * config/t-darwin (LIB2ADDEHDEP): Remove.
21844 * config/t-freebsd (LIB2ADDEHDEP): Remove.
21845 * config/t-linux (LIB2ADDEHDEP): Remove.
21846
21847 2011-06-03 Diego Novillo <dnovillo@google.com>
21848
21849 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
21850 (lto_register_var_decl_in_symtab): Likewise.
21851 (lto_register_function_decl_in_symtab): Likewise.
21852 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
21853 logic to uniquify_nodes.
21854
21855 2011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21856
21857 * config/alpha/t-osf5: Remove.
21858 * config/alpha/t-osf-pthread: Remove.
21859 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
21860 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
21861
21862 2011-06-03 Julian Brown <julian@codesourcery.com>
21863
21864 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
21865 (strongarm1110): Use strongarm tuning.
21866 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
21867 * config/arm/arm.c (arm_strongarm_tune): New.
21868 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
21869 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
21870 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
21871 setting, using previous defaults or 1 for Cortex-A5.
21872 (arm_option_override): Set max_insns_skipped from current tuning.
21873
21874 2011-06-03 Nathan Sidwell <nathan@codesourcery.com>
21875
21876 * doc/install.texi (Options specification): Document --with-specs.
21877
21878 2011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
21879
21880 * config/arm/neon.md (orndi3_neon): Actually split it.
21881
21882 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
21883
21884 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
21885 * var-tracking.c (reverse_op): Limite recurse depth to 5.
21886
21887 2011-06-02 Alexandre Oliva <aoliva@redhat.com>
21888
21889 PR debug/47590
21890 * target.def (delay_sched2, delay_vartrack): New.
21891 * doc/tm.texi.in: Update.
21892 * doc/tm.texi: Rebuild.
21893 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
21894 * var-tracking.c (gate_handle_var_tracking): Likewise.
21895 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
21896 (bfin_flag_var_tracking): Drop.
21897 (output_file_start): Don't save and override flag_var_tracking.
21898 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
21899 (bfin_reorg): Test original variables.
21900 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
21901 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
21902 (ia64_flag_var_tracking): Drop.
21903 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
21904 (ia64_file_start): Don't save and override flag_var_tracking.
21905 (ia64_override_options_after_change): Ditto
21906 flag_schedule_insns_after_reload.
21907 (ia64_reorg): Test original variables.
21908 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
21909 (picochip_flag_var_tracking): Drop.
21910 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
21911 (picochip_option_override): Don't save and override
21912 flag_schedule_insns_after_reload.
21913 (picochip_asm_file_start): Ditto flag_var_tracking.
21914 (picochip_reorg): Test original variables.
21915 * config/spu/spu.c (spu_flag_var_tracking): Drop.
21916 (TARGET_DELAY_VARTRACK): Define.
21917 (spu_var_tracking): New.
21918 (spu_machine_dependent_reorg): Call it.
21919 (asm_file_start): Don't save and override flag_var_tracking.
21920
21921 2011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
21922
21923 PR target/49163
21924 * config/sh/predicates.md (general_movsrc_operand): Return 0
21925 for memory and memory subreg of which address is an invalid
21926 indexed address for QI and HImode.
21927 (general_movdst_operand): Likewise.
21928
21929 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
21930
21931 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
21932 edges only, when there is a non-local label in the function.
21933 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
21934
21935 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
21936
21937 * config/i386/constraints.md (Y3): New register constraint.
21938 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
21939 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
21940 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
21941 *sse2_interleave_lowv2df.
21942
21943 2011-06-02 Julian Brown <julian@codesourcery.com>
21944
21945 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
21946 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
21947 (arm_cortex_a5_tune): New.
21948
21949 2011-06-02 Julian Brown <julian@codesourcery.com>
21950
21951 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
21952 * config/arm/arm.c (arm_default_branch_cost): New.
21953 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
21954 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
21955 (arm_fa726_tune): Set branch_cost field using
21956 arm_default_branch_cost.
21957 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
21958 current_tune structure.
21959 * dojump.c (tm_p.h): Include file.
21960
21961 2011-06-02 Julian Brown <julian@codesourcery.com>
21962
21963 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
21964 tuning.
21965 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
21966 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
21967 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
21968 field.
21969 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
21970 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
21971 (arm_fa726te_tune): Add prefer_constant_pool setting.
21972 (arm_v6t2_tune, arm_cortex_tune): New.
21973 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
21974 prefer_constant_pool setting.
21975
21976 2011-06-02 Uros Bizjak <ubizjak@gmail.com>
21977
21978 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
21979 switch statement.
21980 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
21981 (*movdf_internal) <case 6,7,8>: Ditto.
21982
21983 * config/i386/constraints.md (Y4): New register constraint.
21984 * config/i386/sse.md (vec_set<mode>_0): Merge with
21985 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
21986 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
21987 *vec_extractv2di_1_sse.
21988 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
21989 and *vec_concatv2di_rex64_sse.
21990
21991 2011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
21992
21993 PR target/48807
21994 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
21995 of cgraph_local_info for null before attempting to use it.
21996
21997 2011-06-02 Eric Botcazou <ebotcazou@adacore.com>
21998
21999 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
22000 (current_function_dynamic_alloc_count): Delete.
22001 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
22002 (expand_builtin_nonlocal_goto): Remove obsolete comment.
22003 (expand_builtin_update_setjmp_buf): Remove dead code.
22004 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
22005 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
22006 support.
22007 * function.c (instantiate_virtual_regs): Likewise.
22008 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
22009 for a block with a single abnormal incoming edge.
22010 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
22011 (SETJMP_VIA_SAVE_AREA): Delete.
22012 * config/sparc/sparc-protos.h (load_got_register): Declare.
22013 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
22014 (load_got_register): Make global.
22015 (sparc_frame_pointer_required): Add 'static'.
22016 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
22017 (sparc_builtin_setjmp_frame_value): New function.
22018 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
22019 (save_stack_nonlocal): New expander.
22020 (restore_stack_nonlocal): Likewise.
22021 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
22022 (nonlocal_goto_internal): New insn.
22023 (goto_handler_and_restore): Delete.
22024 (builtin_setjmp_setup): Likewise.
22025 (do_builtin_setjmp_setup): Likewise.
22026 (setjmp): Likewise.
22027 (builtin_setjmp_receiver): New expander.
22028
22029 2011-06-01 David Li <davidxl@google.com>
22030
22031 PR middle-end/49261
22032 * tree-pretty-print.c (dump_function_header): Format cleanup.
22033
22034 2011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
22035
22036 PR target/49238
22037 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
22038 needed when original operands are used for msw_skip comparison.
22039
22040 2011-06-01 Jakub Jelinek <jakub@redhat.com>
22041
22042 PR debug/49250
22043 * var-tracking.c (add_uses, add_stores): Don't call
22044 cselib_subst_to_values on ENTRY_VALUE.
22045
22046 2011-06-01 Diego Novillo <dnovillo@google.com>
22047
22048 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
22049 output_record_start with LTO_null instead of output_zero.
22050 (lto_output_ts_binfo_tree_pointers): Likewise.
22051 (lto_output_tree): Likewise.
22052 (output_eh_try_list): Likewise.
22053 (output_eh_region): Likewise.
22054 (output_eh_lp): Likewise.
22055 (output_eh_regions): Likewise.
22056 (output_bb): Likewise.
22057 (output_function): Likewise.
22058 (output_unreferenced_globals): Likewise.
22059 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
22060 instead of NUM_TREE_CODES.
22061 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
22062 (lto_output_int_in_range): Change << to >> when shifting VAL.
22063
22064 2011-06-01 Diego Novillo <dnovillo@google.com>
22065
22066 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
22067 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
22068
22069 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
22070
22071 PR target/45074
22072 * optabs.h (valid_multiword_target_p): Declare.
22073 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
22074 doing multi-word operations.
22075 * optabs.c (expand_binop): Likewise.
22076 (expand_doubleword_bswap): Likewise.
22077 (expand_absneg_bit): Likewise.
22078 (expand_unop): Likewise.
22079 (expand_copysign_bit): Likewise.
22080 (multiword_target_p): New function.
22081
22082 2011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
22083
22084 PR rtl-optimization/48830
22085 PR rtl-optimization/48808
22086 PR rtl-optimization/48792
22087 * reload.c (push_reload): Check contains_reg_of_mode.
22088 * reload1.c (strip_paradoxical_subreg): New function.
22089 (gen_reload_chain_without_interm_reg_p): Use it to handle
22090 paradoxical subregs.
22091 (emit_output_reload_insns, gen_reload): Likewise.
22092
22093 2011-06-01 David Li <davidxl@google.com>
22094
22095 * predict.c : Change pass name
22096 * ipa.c: Ditto.
22097 * dce.c: Ditto.
22098 * tree-profile.c: Ditto.
22099 * except.c: Ditto.
22100
22101 2011-06-01 David Li <davidxl@google.com>
22102
22103 * tree-pretty-print.c (dump_function_header): New function.
22104 * final.c (rest_of_clean_state): Use header dumper.
22105 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
22106 * passes.c (pass_init_dump_file): Use header dumper.
22107
22108 2011-06-01 Jakub Jelinek <jakub@redhat.com>
22109
22110 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
22111 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
22112 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
22113 New functions.
22114 (mem_loc_descriptor): Use them.
22115
22116 * var-tracking.c (create_entry_value): New function.
22117 (vt_add_function_parameter): Use it.
22118
22119 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22120
22121 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
22122 Include <signal.h>, <ucontext.h>.
22123 (sigill_caught): Define.
22124 (sigill_hdlr): New function.
22125 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
22126 insns can be executed.
22127 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
22128 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
22129
22130 2011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22131
22132 * config/t-slibgcc-darwin: Move to ...
22133 * config/t-slibgcc-dummy: ... this. Clarify comments.
22134 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
22135 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
22136 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
22137 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
22138 Remove i386/t-crtstuff from tmake_file.
22139 (i[34567]86-*-solaris2*): Remove t-svr4,
22140 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
22141 t-slibgcc-dummy.
22142 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
22143 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
22144 sparc/t-crtfm from tmake_file.
22145 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
22146 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
22147 Remove extra_parts.
22148 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
22149 * config/i386/t-nwld (SHLIB_LINK): Remove.
22150 * config/i386/t-rtems-i386: Rename to ...
22151 * config/i386/t-rtems: ... this.
22152 ($(T)crti.o, $(T)crtn.o): Remove.
22153 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
22154 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
22155 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
22156 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
22157 EXTRA_MULTILIB_PARTS): Remove.
22158 * config/sparc/t-sol2-64: Likewise.
22159 * config/sparc/t-sol2: Remove.
22160 * config/sparc/t-crtin: Remove.
22161 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
22162 * config/i386/gmon-sol2.c: Remove.
22163 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
22164 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
22165 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
22166 * config/i386/sol2-gc1.asm: Remove.
22167 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
22168 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
22169 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
22170 * config/t-slibgcc-sld: Remove.
22171
22172 2011-06-01 Jakub Jelinek <jakub@redhat.com>
22173
22174 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
22175 base_type_for_mode with op_mode instead of mode.
22176
22177 2011-06-01 Paul Brook <paul@cpodesourcery.com>
22178
22179 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
22180 Cortex-A15.
22181 * config/arm/arm-tune.md: Regenerate.
22182 * config/arm/arm-tables.opt: Regenerate.
22183 * config/arm/arm.c (FL_DIV): Rename...
22184 (FL_THUMB_DIV): ... to this.
22185 (FL_ARM_DIV): Define.
22186 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
22187 (arm_arch_hwdiv): Remove.
22188 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
22189 (arm_issue_rate): Add cortexr5.
22190 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
22191 __ARM_ARCH_EXT_IDIV__.
22192 (TARGET_IDIV): Define.
22193 (arm_arch_hwdiv): Remove.
22194 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
22195 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
22196 (divsi3, udivsi3): New patterns.
22197 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
22198 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
22199
22200 2011-06-01 Martin Jambor <mjambor@suse.cz>
22201
22202 * ipa-utils.c (ipa_dfs_info): New field scc_no.
22203 * ipa-utils.c (searchc): Set scc_no.
22204
22205 2011-06-01 Martin Jambor <mjambor@suse.cz>
22206
22207 * ipa-utils.c (searchc_env): New field allow_overwritable.
22208 (searchc): do not ignore edges to overwritable nodes if indicated
22209 by env->allow_overwritable.
22210 (ipa_reduced_postorder): Set env.allow_overwritable.
22211
22212 2011-06-01 Richard Guenther <rguenther@suse.de>
22213
22214 * tree.c (free_lang_data): Do not reset boolean_type_node nor
22215 char_type_node.
22216 * lto-streamer.c (lto_record_common_node): Take node pointer,
22217 do not register types.
22218 (lto_preload_common_nodes): Explicitly skip preloading nodes
22219 that differ between frontends.
22220
22221 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
22222
22223 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
22224 NON_FLOAT_REGS.
22225
22226 2011-05-31 Pat Haugen <pthaugen@us.ibm.com>
22227
22228 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
22229 parameter value for dump. Dump cost on outermost call only.
22230 (rs6000_memory_move_cost): Dump cost on outermost call only.
22231
22232 2011-05-31 Jakub Jelinek <jakub@redhat.com>
22233
22234 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
22235 DW_OP_GNU_convert ops.
22236
22237 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
22238 cselib_preserve_constants.
22239 (cselib_lookup_1): If cselib_preserve_constants,
22240 a new VALUE is being created for REG and there is a VALUE for the
22241 same register in wider mode, add another loc with lowpart SUBREG of
22242 the wider VALUE.
22243 (cselib_subst_to_values): Handle ENTRY_VALUE.
22244 * var-tracking.c (replace_expr_with_values): Return NULL for
22245 ENTRY_VALUE too.
22246 * dwarf2out.c (convert_descriptor_to_signed): New function.
22247 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
22248 instead of two shifts.
22249 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
22250 the right mode if needed.
22251 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
22252 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
22253 convert_descriptor_to_signed.
22254 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
22255 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
22256
22257 PR target/48688
22258 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
22259
22260 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
22261
22262 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
22263 of X87MODEI12 and SWI48x instead of SSEMODEI24.
22264 (SWI248x): New mode iterator, rename from X87MODEI.
22265 (X87MODEI): Remove mode iterator.
22266 (X87MODEI12): Ditto.
22267 (SSEMODEI24): Ditto.
22268
22269 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
22270
22271 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
22272 * doc/invoke.texi: Document max-vartrack-expr-depth.
22273 * var-tracking.c (EXPR_DEPTH): New.
22274 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
22275
22276 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
22277
22278 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
22279 * config/i386/sse.md: Add n to negated FMA pattern names.
22280
22281 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
22282
22283 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
22284
22285 2011-05-31 Alexandre Oliva <aoliva@redhat.com>
22286
22287 * gengtype-state.c (read_state_params_structs): Initialize previous.
22288
22289 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
22290
22291 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
22292 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
22293
22294 2011-05-31 Uros Bizjak <ubizjak@gmail.com>
22295
22296 * config/i386/i386.md (*movtf_internal): Avoid allocating general
22297 registers. Penalize F*r->o alternative to prevent partial memory
22298 stalls. Slightly penalize *roF->*r alternative. Generate SSE
22299 CONST_DOUBLE immediates when optimizing function for size. Do not move
22300 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
22301 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
22302 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
22303 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
22304 alternatives.
22305 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
22306
22307 (fp_register_operand splitters): Use fp_register_operand
22308 constraint. Do not use FP_REG_P in insn condition.
22309 (any_fp_register_operand splitters): Use any_fp_register_operand
22310 constraint. Do not use ANY_FP_REG_P in insn condition.
22311
22312 2011-05-31 Jan Hubicka <jh@suse.cz>
22313
22314 * cgraph.h (cgraph_inline_failed_t): Give enum a name
22315 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
22316 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
22317 (lto_output_edge): Use output_enum and var_len_unsigned.
22318 (lto_output_varpool_node): Likewise.
22319 (input_overwrite_node): Do not take resolution parameter;
22320 extract it from a bitpack.
22321 (input_node): Do not read resolution; use input_enum and
22322 var_len_unsigned.
22323 (input_varpool_node): Likewise.
22324 (input_edge): Likewise.
22325 (input_cgraph_1): Likewise.
22326
22327 2011-05-31 Richard Guenther <rguenther@suse.de>
22328
22329 * gimple.c (gimple_register_canonical_type): Do not register
22330 any types via gimple_register_type.
22331
22332 2011-05-31 Jan Hubicka <jh@suse.cz>
22333
22334 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
22335 of thunks.
22336
22337 2011-05-31 Jakub Jelinek <jakub@redhat.com>
22338
22339 PR rtl-optimization/49235
22340 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
22341 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
22342
22343 2011-05-31 Ira Rosen <ira.rosen@linaro.org>
22344
22345 PR tree-optimization/49093
22346 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
22347 data references.
22348
22349 2011-05-31 Dodji Seketeli <dodji@redhat.com>
22350
22351 PR debug/49047
22352 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
22353 for concrete functions containing the code of cloned functions.
22354
22355 2011-05-31 Richard Guenther <rguenther@suse.de>
22356
22357 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
22358 to ...
22359 (forward_propagate_into_comparison_1): ... this.
22360 (forward_propagate_comparison): Rename to ...
22361 (forward_propagate_into_comparison): ... this. Split out
22362 real forward propagation code to ...
22363 (forward_propagate_comparison): ... this.
22364 (forward_propagate_into_gimple_cond): Remove looping.
22365 (forward_propagate_into_cond): Likewise.
22366 (simplify_not_neg_expr): Return whether we have done something.
22367 (simplify_gimple_switch): Likewise.
22368 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
22369 (ssa_forward_propagate_and_combine): ... this. Re-structure
22370 to do a forward forward-propagation walk on BBs and a backward
22371 stmt combining walk on BBs. Consistently re-scan changed statements.
22372 (pass_forwprop): Adjust.
22373
22374 2011-05-30 Ian Lance Taylor <iant@google.com>
22375
22376 * godump.c (go_format_type): Correct length of name added to
22377 obstack for anonymous field.
22378
22379 2011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
22380
22381 PR target/49186
22382 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
22383 part of the second operand is 0.
22384
22385 2011-05-30 Uros Bizjak <ubizjak@gmail.com>
22386
22387 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
22388 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
22389 to memory for !TARGET_MEMORY_MISMATCH_STALL.
22390 (*movdf_internal_rex64): Do not penalize F->r alternative.
22391 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
22392 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
22393 when optimizing function for size. Do not move CONST_DOUBLEs
22394 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
22395 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
22396 SUBREGs. Do not check for MEM_P operands in the insn condition,
22397 check for ANY_FP_REGNO_P instead.
22398 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
22399 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
22400 function for speed.
22401 * config/i386/i386.c (ix86_option_override_internal): Do not
22402 set TARGET_INTEGER_DFMODE_MOVES here.
22403
22404 2011-05-30 H.J. Lu <hongjiu.lu@intel.com>
22405
22406 PR target/49168
22407 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
22408
22409 2011-05-30 Jakub Jelinek <jakub@redhat.com>
22410
22411 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
22412 DW_TAG_rvalue_reference_type even for
22413 -gdwarf-4 -fno-debug-types-section.
22414
22415 2011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22416
22417 PR tree-optimization/46728
22418 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
22419 (build_and_insert_binop): New.
22420 (gimple_expand_builtin_pow): Reorder args for
22421 build_and_insert_call; use build_and_insert_binop; add more
22422 optimizations for fractional exponents.
22423
22424 2011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
22425
22426 PR bootstrap/49190
22427
22428 Revert:
22429 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
22430
22431 * tree.h (struct tree_identifier): Inherit from tree_typed, not
22432 tree_common.
22433 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
22434 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
22435 TS_BASE instead of TS_COMMON.
22436 * varasm.c (assemble_name): Remove assert.
22437
22438 2011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
22439
22440 * config.gcc: Keep obselete list sorted.
22441
22442 2011-05-30 Jakub Jelinek <jakub@redhat.com>
22443 Eric Botcazou <ebotcazou@adacore.com>
22444
22445 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
22446 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
22447 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
22448 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
22449 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
22450
22451 2011-05-30 Richard Guenther <rguenther@suse.de>
22452
22453 * gimple.c (gimple_types_compatible_p_1): Compare record
22454 and union type members properly.
22455
22456 2011-05-30 Richard Guenther <rguenther@suse.de>
22457
22458 PR tree-optimization/49210
22459 * ipa-split.c (split_function): Care for the case where the call
22460 result is not trivially convertible to the result holding variable.
22461
22462 2011-05-30 Richard Guenther <rguenther@suse.de>
22463
22464 PR tree-optimization/49218
22465 * tree-vrp.c (adjust_range_with_scev): Properly check whether
22466 overflow occured.
22467
22468 2011-05-30 Richard Guenther <rguenther@suse.de>
22469
22470 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
22471 New function split out from ...
22472 (forward_propagate_into_gimple_cond): ... here. Adjust.
22473 (forward_propagate_into_cond): Likewise.
22474 (forward_propagate_comparison): Also propagate into
22475 comparisons on assignment RHS. Change return value to
22476 behave similar to forward_propagate_into_cond.
22477 (tree_ssa_forward_propagate_single_use_vars): Handle
22478 strict-overflow warnings properly for forward_propagate_comparison.
22479
22480 2011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22481
22482 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
22483 from plugin linker.
22484 * configure: Regenerate.
22485
22486 2011-05-30 Ira Rosen <ira.rosen@linaro.org>
22487
22488 PR tree-optimization/49199
22489 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
22490 non-reduction operands are either defined in the loop or by induction.
22491
22492 2011-05-29 Xinliang David Li <davidxl@google.com>
22493
22494 * opts-global.c (handle_common_deferred_options): Handle new options.
22495 * passes.c (register_one_dump_file): Call register_pass_name.
22496 (execute_one_pass): Check explicit enable/disable flag.
22497 (passr_hash): New function.
22498 (passr_eq): Ditto.
22499 (register_pass_name): Ditto.
22500 (get_pass_by_name): Ditto.
22501 (pass_hash): Ditto.
22502 (pass_eq): Ditto.
22503 (enable_pass): Ditto.
22504 (disable_pass): Ditto.
22505 (is_pass_explicitly_enabled_or_disabled): Ditto.
22506
22507 2011-05-29 Uros Bizjak <ubizjak@gmail.com>
22508
22509 * config/i386/i386.md (*movoi_internal_avx): Use
22510 standard_sse_constant_opcode for alternative 0.
22511 (*movti_internal_sse): Ditto.
22512 (*movti_internal_rex64): Use standard_sse_constant_opcode for
22513 alternative 2.
22514 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
22515 sselog1 type moves.
22516 (*movsi_internal): Ditto.
22517 (*movdi_internal): Ditto. Add ssecvt type moves.
22518
22519 2011-05-29 Eric Botcazou <ebotcazou@adacore.com>
22520
22521 PR target/48830
22522 * rtlanal.c (simplify_subreg_regno): Adjust comment.
22523
22524 2011-05-29 Jakub Jelinek <jakub@redhat.com>
22525
22526 PR rtl-optimization/49095
22527 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
22528 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
22529
22530 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
22531
22532 PR target/43995
22533 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
22534 recurse_p argument. Only follow register copies if it is set,
22535 and prevent mips_find_pic_call_symbol from recursing.
22536 (mips_find_pic_call_symbol): Add a recurse_p argument.
22537 Pass it to mips_pic_call_symbol_from_set.
22538 (mips_annotate_pic_calls): Update accordingly.
22539
22540 2011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
22541
22542 * emit-rtl.c (try_split): Use a loop to search for
22543 NOTE_INSN_CALL_ARG_LOCATIONs.
22544
22545 2011-05-29 Richard Guenther <rguenther@suse.de>
22546
22547 PR tree-optimization/49217
22548 * ipa-pure-const.c (propagate_pure_const): Fix typos.
22549
22550 2011-05-28 Jan Hubicka <jh@suse.cz>
22551
22552 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
22553 length.
22554 (string_slot_free): Remove
22555 (create_output_block): Initialize obstack.
22556 (destroy_output_block): Free obstack.
22557 (lto_string_index): Add PERSISTENT parameter; do not duplicate
22558 the string unless it needs to be added into the hash.
22559 (lto_output_string_with_length): Add persistent attribute;
22560 handle NULL strings.
22561 (lto_output_string): Add PERSISTENT parameter.
22562 (output_string_cst, output_identifier): Simplify.
22563 (lto_output_location_bitpack): Update.
22564 (lto_output_builtin_tree): Update.
22565 * lto-streamer.h (struct output_block): Add obstack.
22566 (lto_output_string, lto_output_string_with_length): Remove
22567 declarations; functions are static now.
22568
22569 2011-05-28 Jan Hubicka <jh@suse.cz>
22570
22571 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
22572 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
22573 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
22574 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
22575 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
22576 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
22577 unpack_ts_decl_with_vis_value_fields,
22578 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
22579 lto_get_builtin_tree): Use enum and variable length i/o.
22580 * basic-block.h (profile_status_d): Add PROFILE_LAST.
22581 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
22582 New functions.
22583 (bp_pack_enum, bp_unpack_enum): New macros.
22584
22585 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
22586
22587 * genrecog.c: Remove redundant forward declarations.
22588
22589 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
22590
22591 * config.gcc: Deprecate mips*-*-openbsd*.
22592
22593 2011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
22594
22595 PR bootstrap/49195
22596 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
22597 for match_op_dup.
22598
22599 2011-05-27 Andrew Pinski <pinskia@gmail.com>
22600
22601 PR middle-end/48981
22602 * gengtype.c (vec_prefix_type): New function.
22603 (note_def_vec): Use vec_prefix_type and change the length
22604 attribute to be based on the prefix.
22605 * vec.c: Include coretypes.h before vec.h.
22606 (struct vec_prefix): Remove.
22607 (vec_gc_p_reserve): Change the offsetof to sizeof.
22608 (vec_gc_p_reserve_exact): Likewise.
22609 (vec_heap_p_reserve): Likewise.
22610 (vec_heap_p_reserve_exact): Likewise.
22611 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
22612 (vec_stack_p_reserve): Change the offsetof to sizeof.
22613 (vec_stack_p_reserve_exact): Likewise.
22614 * vec.h (struct vec_prefix): New struct definition.
22615 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
22616 (VEC_T_GTY(T,B)): Likewise.
22617 (DEF_VEC_FUNC_P(T)): Use prefix field.
22618 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
22619 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
22620
22621 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22622
22623 PR tree-optimization/46728
22624 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
22625 (powi_as_mults): Add gimple_set_location.
22626 (build_and_insert_call): New.
22627 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
22628 0.5, 0.25, 0.75, 1./3., or 1./6.
22629
22630 2011-05-27 Alexander Monakov <amonakov@ispras.ru>
22631
22632 * doc/contrib.texi: Update copyright years.
22633 (Contributors): Add Zdenek Sojka.
22634
22635 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
22636
22637 * c-decl.c (c_push_function_context): Copy the current statement
22638 list stack.
22639 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
22640 (finish_struct): Call building_stmt_list_p instead of checking
22641 cur_stmt_list.
22642 * c-parser.c (c_parser_postfix_expression): Likewise.
22643 * c-typeck.c (c_end_compound_stmt): Likewise.
22644 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
22645 * tree-iterator.c (stmt_list_cache): Change to a VEC.
22646 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
22647 (free_stmt_list): Likewise.
22648 * tree.h (struct tree_statement_list): Include typed_tree instead
22649 of tree_common.
22650 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
22651 as TS_TYPED instead of TS_COMMON.
22652
22653 2011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22654 Uros Bizjak <ubizjak@gmail.com>
22655
22656 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
22657 (HAVE_AS_IX86_TLSGDPTL): Define.
22658 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
22659 (HAVE_AS_IX86_TLSLDMPLT): Define.
22660 * configure: Regenerate.
22661 * config.in: Regenerate.
22662 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
22663 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
22664 TARGET_SUN_TLS, use @tlsgdplt or @plt.
22665 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
22666 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
22667 @tlsldmplt or @plt.
22668 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
22669
22670 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
22671
22672 * sched-int.h (struct _haifa_deps_insn_data): New members cond
22673 and reverse_cond.
22674 (INSN_COND, INSN_REVERSE_COND): New macros.
22675 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
22676 once.
22677 (sched_get_condition_with_rev): Cache the results, and look them up
22678 if possible.
22679 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
22680 are clobbered by the current insn.
22681 * target.def (exposed_pipline): New sched data hook.
22682 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
22683 * doc/tm.texi: Regenerate.
22684
22685 2011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22686
22687 PR tree-optimization/49170
22688 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
22689 sincos or cexp.
22690
22691 2011-05-27 Richard Guenther <rguenther@suse.de>
22692
22693 PR middle-end/49189
22694 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
22695 of comparisons.
22696
22697 2011-05-27 Bernd Schmidt <bernds@codesourcery.com>
22698
22699 * haifa-sched.c (sched_scan_info): Remove.
22700 (schedule_block): Call sched_extend_luids rather than sched_init_luids
22701 with NULL args.
22702 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
22703 Remove functions.
22704 (sched_scan): Remove.
22705 (sched_extend_luids): Renamed from luids_extend_insn and no longer
22706 static. All callers changed.
22707 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
22708 static. All callers changed.
22709 (sched_init_luids): Remove all arguments except the first. All
22710 callers changed. Don't use sched_scan.
22711 (haifa_init_h_i_d): Likewise.
22712 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
22713 manually rather than using sched_init_luids. Likewise with
22714 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
22715 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
22716 rather than sched_init_luids with NULL args.
22717 * sel-sched-ir.c (new_insns): Remove variable.
22718 (sched_scan): New static function, previously in haifa-sched.c. Remove
22719 all arguments but the first two; all callers changed.
22720 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
22721 rather than sched_init_luids.
22722 (sel_init_bbs): Remove second argument. All callers changed.
22723 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
22724 with NULL arguments.
22725 (create_insn_rtx_from_pattern): Likewise.
22726 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
22727 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
22728 (sched_init_insn_luid, sched_extend_luids): Declare.
22729 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
22730 declarations.
22731
22732 2011-05-27 Richard Guenther <rguenther@suse.de>
22733
22734 PR middle-end/49177
22735 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
22736 A CMP B ? (T) true : (T) false for non-integral types T again.
22737
22738 2011-05-27 Jan Hubicka <jh@suse.cz>
22739
22740 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
22741 so 0 means NULL string.
22742 (lto_output_string_with_length): ... here.
22743 (lto_output_string, output_string_cst, output_identifier): Update
22744 handling of NULL strings.
22745 (lto_output_location_bitpack): New function.
22746 (lto_output_location): Use it.
22747 (lto_output_tree_ref): Use output_record_start.
22748 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
22749 len values.
22750 * lto-streamer-in.c (string_for_index): Break out from ...; offset
22751 values by 1.
22752 (input_string_internal): ... here;
22753 (input_string_cst, input_identifier, lto_input_string): Update handling
22754 of NULL strings.
22755 (lto_input_location_bitpack): New function
22756 (lto_input_location): Use it.
22757 (unpack_ts_type_common_value_fields): Pack align & alias in var len
22758 values.
22759 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
22760 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
22761 (bp_pack_value): Sanity check the value range.
22762 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
22763 New functions.
22764 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
22765 New functions.
22766
22767 2011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
22768
22769 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
22770 call_arg_location instructions down the floor.
22771
22772 2011-05-26 Vladimir Makarov <vmakarov@redhat.com>
22773
22774 PR rtl-optimization/49154
22775 * ira.c (setup_pressure_classes): Process class without sublcasses
22776 as a candidate for pressure classes.
22777
22778 2011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
22779
22780 PR rtl-optimization/48575
22781 * genrecog.c (position_type): New enum.
22782 (position): New structure.
22783 (decision): Use position structure instead of a string.
22784 (root_pos, peep2_insn_pos_list): New variables.
22785 (next_position, compare_positions): New functions.
22786 (new_decision): Use position structures instead of strings.
22787 (maybe_both_true): Likewise.
22788 (change_state): Likewise.
22789 (write_tree): Likewise.
22790 (make_insn_sequence): Likewise.
22791
22792 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
22793
22794 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
22795 TS_BASE instead of TS_COMMON.
22796 (find_decls_types_r): Check for TS_TYPED structure before looking at
22797 TREE_TYPE.
22798 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
22799 Add chain field.
22800 (BLOCK_CHAIN): Use new chain field.
22801
22802 2011-05-26 Pat Haugen <pthaugen@us.ibm.com>
22803
22804 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
22805 moves expensive on Power7 also.
22806
22807 2011-05-26 Richard Guenther <rguenther@suse.de>
22808
22809 * fold-const.c (fold_unary_loc): Remove bogus code.
22810
22811 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
22812
22813 * tree.h (struct tree_identifier): Inherit from tree_typed, not
22814 tree_common.
22815 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
22816 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
22817 TS_BASE instead of TS_COMMON.
22818 * varasm.c (assemble_name): Remove assert.
22819
22820 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
22821
22822 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
22823 substituted first.
22824 * libgcc-std.ver: Delete file.
22825
22826 2011-05-26 Richard Guenther <rguenther@suse.de>
22827
22828 PR tree-optimization/48702
22829 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
22830 only when we know the base address is within bounds.
22831 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
22832 assume the base address of TARGET_MEM_REFs is in bounds.
22833
22834 2011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22835
22836 PR target/49099
22837 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
22838 declaration in TARGET_SOLARIS.
22839
22840 2011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
22841
22842 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
22843 The instruction is then expanded explicitly.
22844 (supported_compare): Callable instruction.
22845 (compare): Likewise.
22846
22847 2011-05-26 Jakub Jelinek <jakub@redhat.com>
22848
22849 PR c++/49165
22850 * gimplify.c (shortcut_cond_r): Don't special case
22851 COND_EXPRs if they have void type on one of their arms.
22852
22853 2011-05-26 Bernd Schmidt <bernds@codesourcery.com>
22854
22855 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
22856 to reduce duplication, and to achieve a slightly more logical order
22857 of operations.
22858
22859 2011-05-26 Jakub Jelinek <jakub@redhat.com>
22860
22861 PR tree-optimization/49161
22862 * tree-vrp.c (struct case_info): New type.
22863 (compare_case_labels): Sort case_info structs instead of
22864 trees, and not primarily by CASE_LABEL uids but by
22865 label_for_block indexes.
22866 (find_switch_asserts): Put case labels into struct case_info
22867 array instead of TREE_VEC, adjust sorting, compare label_for_block
22868 values instead of CASE_LABELs.
22869
22870 2011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22871
22872 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
22873 ("orndi3_neon"): Likewise.
22874 ("bic<mode>3_neon"): Likewise.
22875
22876 2011-05-26 Ira Rosen <ira.rosen@linaro.org>
22877
22878 PR tree-optimization/49038
22879 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
22880 Ensure at least one epilogue iteration if required by data
22881 accesses with gaps.
22882 * tree-vectorizer.h (struct _loop_vec_info): Add new field
22883 to mark loops that require peeling for gaps.
22884 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
22885 (vect_get_known_peeling_cost): Take peeling for gaps into
22886 account.
22887 (vect_transform_loop): Generate epilogue if required by data
22888 access with gaps.
22889 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
22890 loop as requiring an epilogue if there are gaps in the end of
22891 the strided group.
22892
22893 2011-05-25 Ian Lance Taylor <iant@google.com>
22894
22895 * godump.c (go_format_type): Output the first field with a usable
22896 Go type, if any.
22897
22898 2011-05-25 Ian Lance Taylor <iant@google.com>
22899
22900 * godump.c (go_format_type): Check for invalid type names, pointer
22901 target types, and struct field types.
22902
22903 2011-05-25 Jason Merrill <jason@redhat.com>
22904
22905 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
22906
22907 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
22908
22909 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
22910
22911 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
22912
22913 * config/i386/i386.md (*movqi_extv_1)): Put back
22914 "register_operand" check in "type" calculation.
22915 (*movqi_extzv_2): Likewise.
22916
22917 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
22918
22919 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
22920
22921 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
22922
22923 PR bootstrap/49160
22924 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
22925 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
22926 __divxc3, __divtc3): Wrap definitions in #ifndef.
22927
22928 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
22929
22930 PR target/49142
22931 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
22932 "register_operand" check and replace q_regs_operand with
22933 QIreg_operand in "type" calculation.
22934 (*movqi_extv_1): Likewise.
22935 (*movqi_extzv_2_rex64): Likewise.
22936 (*movqi_extzv_2): Likewise.
22937
22938 * config/i386/predicates.md (QIreg_operand): New.
22939
22940 2011-05-25 Richard Guenther <rguenther@suse.de>
22941
22942 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
22943 type-based offset disambiguation, streamline MEM_REF and
22944 TARGET_MEM_REF handling.
22945
22946 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
22947
22948 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
22949 (bdesc_special_args): Add pause intrinsic.
22950
22951 * config/i386/i386.md (UNSPEC_PAUSE): New.
22952 (pause): Likewise.
22953 (*pause): Likewise.
22954 * config/i386/ia32intrin.h (__pause): Likewise.
22955
22956 * doc/extend.texi (X86 Built-in Functions): Add documentation for
22957 pause intrinsic.
22958
22959 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22960
22961 PR tree-optimization/46728
22962 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
22963 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
22964
22965 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
22966
22967 * tree.h (struct tree_exp): Inherit from struct tree_typed.
22968 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
22969 instead of TS_COMMON.
22970
22971 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
22972
22973 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
22974 LIBGCC2_GNU_PREFIX is defined.
22975 (__N): New macro.
22976 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
22977 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
22978 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
22979 __clz_tab): Define using __N.
22980 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
22981 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
22982 * target.def (libfunc_gnu_prefix): New hook.
22983 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
22984 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
22985 * doc/tm.texi: Regenerate.
22986 * system.h (LIBGCC2_GNU_PREFIX): Poison.
22987 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
22988 account.
22989 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
22990 (init_optabs): Likewise for the bswap libfuncs.
22991 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
22992 and divide.
22993 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
22994 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
22995 * libgcc-std.ver: Remove.
22996 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
22997 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
22998 libgcc-std.ver.
22999 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23000 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
23001 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
23002 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
23003 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
23004 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23005 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
23006 * config/fixed-bit.h (FIXED_OP): Define differently depending on
23007 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
23008 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
23009
23010 2011-05-25 Jan Hubicka <jh@suse.cz>
23011
23012 * lto-streamer-out.c (output_record_start): Use lto_output_enum
23013 (lto_output_tree): Use output_record_start.
23014 * lto-streamer-in.c (input_record_start): Use lto_input_enum
23015 (lto_get_pickled_tree): Use input_record_start.
23016 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
23017 (lto_value_range_error): New function.
23018 * lto-streamer.h (lto_value_range_error): Declare.
23019 (lto_output_int_in_range, lto_input_int_in_range): New functions.
23020 (lto_output_enum, lto_input_enum): New macros.
23021
23022 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
23023
23024 * common.opt (flag_stack_usage_info): New variable.
23025 (-Wstack-usage): New option.
23026 * doc/invoke.texi (Warning options): Document -Wstack-usage.
23027 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
23028 <OPT_fstack_usage>: Likewise.
23029 * toplev.c (output_stack_usage): Handle -Wstack-usage.
23030 * calls.c (expand_call): Test flag_stack_usage_info variable instead
23031 of flag_stack_usage.
23032 (emit_library_call_value_1): Likewise.
23033 * explow.c (allocate_dynamic_stack_space): Likewise.
23034 * function.c (instantiate_virtual_regs ): Likewise.
23035 (prepare_function_start): Likewise.
23036 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
23037 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
23038 * config/arm/arm.c (arm_expand_prologue): Likewise.
23039 (thumb1_expand_prologue): Likewise.
23040 * config/avr/avr.c (expand_prologue): Likewise.
23041 * config/i386/i386.c (ix86_expand_prologue): Likewise.
23042 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
23043 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
23044 * config/mips/mips.c (mips_expand_prologue): Likewise.
23045 * config/pa/pa.c (hppa_expand_prologue): Likewise.
23046 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
23047 * config/s390/s390.c (s390_emit_prologue): Likewise.
23048 * config/sh/sh.c (sh_expand_prologue): Likewise.
23049 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
23050 * config/spu/spu.c (spu_expand_prologue): Likewise.
23051
23052 2011-05-25 Richard Guenther <rguenther@suse.de>
23053
23054 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
23055 (gimple_canonical_types_compatible_p): Likewise.
23056
23057 2011-05-25 Jan Hubicka <jh@suse.cz>
23058
23059 PR middle-end/49062
23060 * ipa.c (function_and_variable_visibility): Only add to same
23061 comdat group list if DECL_ONE_ONLY.
23062
23063 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
23064
23065 PR rtl-optimization/49014
23066 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
23067
23068 2011-05-25 Jakub Jelinek <jakub@redhat.com>
23069
23070 PR target/49128
23071 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
23072
23073 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
23074
23075 PR rtl-optimization/48757
23076 * ira-build.c (loop_with_eh_edge_p): Rename to
23077 loop_with_complex_edge_p, check edges on complexity, make function
23078 conditional.
23079 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
23080 conditional.
23081
23082 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
23083
23084 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
23085 force flag_ira_share_save_slots to 0.
23086
23087 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
23088
23089 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
23090 (vt_initialize): Set PROLOGUE_BB unconditionally.
23091 Add block comment about CFA_BASE_RTX machinery.
23092 Reset FP_CFA_OFFSET to -1 on all invalid paths.
23093 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
23094
23095 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
23096
23097 PR objc/48187
23098 * c-parser.c (c_parser_objc_class_instance_variables): More robust
23099 parsing of syntax error in ObjC instance variable lists. In
23100 particular, avoid an infinite loop if there is a stray ']'.
23101 Updated error message.
23102
23103 2011-05-24 Ian Lance Taylor <iant@google.com>
23104
23105 * godump.c (go_define): Don't accept a string immediately after
23106 another operand.
23107
23108 2011-05-24 Ian Lance Taylor <iant@google.com>
23109
23110 * godump.c (struct godump_container): Add invalid_hash field.
23111 (go_format_type): Return false if type is found in invalid_hash.
23112 (go_output_typedef): Add invalid type to invalid_hash.
23113 (go_finish): Create and delete invalid_hash.
23114
23115 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23116
23117 PR tree-optimization/46728
23118 * tree-ssa-math-opts.c (powi_table): New.
23119 (powi_lookup_cost): New.
23120 (powi_cost): New.
23121 (powi_as_mults_1): New.
23122 (powi_as_mults): New.
23123 (gimple_expand_builtin_powi): New.
23124 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
23125 (gate_cse_sincos): Remove sincos/cexp restriction.
23126
23127 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23128
23129 PR target/3746
23130 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
23131 mips-tdump native.
23132 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
23133 * mips-tdump.c: Likewise.
23134
23135 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
23136
23137 PR target/49128
23138 * config/i386/driver-i386.c (host_detect_local_cpu): Always
23139 add -mno-XXX. Handle FMA.
23140
23141 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
23142
23143 PR rtl-optimization/48633
23144 * ira-build.c (loop_with_eh_edge_p): New function.
23145 (mark_loops_for_removal): Use it.
23146
23147 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
23148
23149 PR rtl-optimization/48971
23150 * ira.c (setup_pressure_classes): Don't check register move cost
23151 for classes with one registers. Don't add pressure class if there
23152 is a pressure class with the same available hard registers.
23153 Check contains_reg_of_mode. Fix a typo in collecting
23154 temp_hard_regset. Ignore hard registers not belonging to a class.
23155
23156 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
23157
23158 PR target/49133
23159 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
23160
23161 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
23162 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23163
23164 PR gcov-profile/48845
23165 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
23166
23167 2011-05-24 Richard Guenther <rguenther@suse.de>
23168
23169 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
23170 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
23171 (gimple_types_compatible_p_1): Adjust.
23172 (iterative_hash_canonical_type): Do not bother about complete vs.
23173 incomplete types.
23174 (gimple_canonical_types_compatible_p): Likewise.
23175
23176 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23177
23178 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
23179
23180 2011-05-24 Richard Guenther <rguenther@suse.de>
23181
23182 PR bootstrap/49078
23183 * gimple.c (gimple_register_canonical_type): Revert
23184 previous change.
23185 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
23186 does not for a tree for the case where it matters. Cache
23187 pointer-type alias-sets.
23188
23189 2011-05-24 Joseph Myers <joseph@codesourcery.com>
23190
23191 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
23192 (OBJS): Remove options.o, opts-common.o and prefix.o.
23193 (OBJS-libcommon-target): New.
23194 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
23195 (BACKEND): Include libcommon-target.a.
23196 (MOSTLYCLEANFILES): Include libcommon-target.a.
23197 (libcommon-target.a): New.
23198 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
23199 prefix.o.
23200
23201 2011-05-23 Joseph Myers <joseph@codesourcery.com>
23202
23203 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
23204 parts of output shared with the driver.
23205 * optc-gen.awk: Don't generate parts of output not shared with the
23206 driver.
23207 * opth-gen.awk: Remove GCC_DRIVER conditionals.
23208 * doc/options.texi (SourcerInclude): Mention options-save.c.
23209 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
23210 (OBJS): Add options-save.o.
23211 (options-save.c, options-save.o): New.
23212 (options.o): Update dependencies.
23213 (gcc-options.o): Remove.
23214 (mostlyclean): Remove options-save.c.
23215
23216 2011-05-23 Jakub Jelinek <jakub@redhat.com>
23217
23218 PR debug/49032
23219 * dbxout.c: Include cgraph.h.
23220 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
23221 and without value expr, return NULL if no varpool node exists for
23222 it or if it is not needed.
23223 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
23224
23225 PR c/49120
23226 * c-decl.c (start_decl): Convert expr to void_type_node.
23227
23228 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
23229
23230 PR rtl-optimization/48826
23231 * emit-rtl.c (try_split): When splitting a call that is followed
23232 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
23233
23234 2011-05-23 Jakub Jelinek <jakub@redhat.com>
23235
23236 * cfgexpand.c (expand_debug_expr): For unused non-addressable
23237 parameters passed in memory prefer using DECL_INCOMING_RTL over
23238 the pseudos it will be copied into.
23239
23240 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
23241
23242 PR target/47315
23243 * config/i386/i386.c (ix86_option_override_internal): Save the
23244 initial options after checking vzeroupper.
23245
23246 2011-05-23 David Li <davidxl@google.com>
23247
23248 PR tree-optimization/48988
23249 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
23250 Initialize has_valid_pred for each pred chain.
23251
23252 2011-05-23 Richard Guenther <rguenther@suse.de>
23253
23254 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
23255 (iterative_hash_gimple_type): Always hash type names.
23256
23257 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
23258
23259 * c-typeck.c (build_function_call_vec): Tweak call to
23260 check_function_arguments.
23261
23262 2011-05-23 Richard Guenther <rguenther@suse.de>
23263
23264 PR tree-optimization/49115
23265 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
23266 is not necessarily carried out, do not claim it kills the ref.
23267 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
23268
23269 2011-05-23 Richard Guenther <rguenther@suse.de>
23270
23271 PR middle-end/15419
23272 * builtins.c (fold_builtin_memory_op): Be less restrictive about
23273 what pointer types we accept for folding.
23274
23275 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23276
23277 * gthr-gnat.c: Remove.
23278 * gthr-gnat.h: Remove.
23279 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
23280 * config/t-freebsd (LIB2ADDEH): Likewise.
23281 * config/t-linux (LIB2ADDEH): Likewise.
23282 * config/t-sol2 (LIB2ADDEH): Likewise.
23283 * config/ia64/t-vms (LIB2ADDEH): Likewise.
23284 * configure.ac (target_thread_file): Remove gnat handling.
23285 * configure: Regenerate.
23286 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
23287
23288 2011-05-23 Tristan Gingold <gingold@adacore.com>
23289 Eric Botcazou <ebotcazou@adacore.com>
23290
23291 * gcov.c (create_file_names): If no object directory is specified,
23292 keep the directory of the file.
23293
23294 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23295
23296 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
23297 * configure: Regenerate.
23298
23299 2011-05-23 Jakub Jelinek <jakub@redhat.com>
23300
23301 PR middle-end/48973
23302 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
23303 failed and the comparison has a single bit signed type, use
23304 constm1_rtx instead of const1_rtx for true value.
23305 (do_store_flag): If ops->type is single bit signed type, disable
23306 signel bit test optimization and pass -1 instead of 1 as last
23307 parameter to emit_store_flag_force.
23308
23309 2011-05-23 Tom de Vries <tom@codesourcery.com>
23310
23311 PR target/45098
23312 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
23313 function.
23314 (infer_loop_bounds_from_undefined): Use new function.
23315
23316 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
23317
23318 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
23319 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
23320 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
23321 and -O0 otherwise.
23322 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
23323
23324 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
23325
23326 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
23327 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
23328 returns true.
23329
23330 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
23331
23332 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
23333
23334 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
23335
23336 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
23337 UNSPEC_MOVE_PIC pattern.
23338
23339 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
23340
23341 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
23342 (sparc-*-rtems*): Likewise.
23343 (sparc64-*-elf*): Likewise.
23344 (sparc64-*-rtems*): Likewise.
23345 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
23346 * config/sparc/t-crtin: New file.
23347 * config/sparc/t-sol2 (crti.o): Delete rule.
23348 (crtn.o): Likewise.
23349 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
23350 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
23351 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
23352 (ENDFILE_SPEC): Add crtn.o.
23353
23354 2011-05-22 Tom de Vries <tom@codesourcery.com>
23355
23356 PR middle-end/48689
23357 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
23358 CODE_CONTAINS_STRUCT (TS_COMMON).
23359
23360 2011-05-22 Jakub Jelinek <jakub@redhat.com>
23361
23362 PR middle-end/49029
23363 * expmed.c (extract_fixed_bit_field): Test whether target can be used
23364 only after deciding which mode to use.
23365
23366 2011-05-22 Tom de Vries <tom@codesourcery.com>
23367
23368 PR target/45098
23369 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
23370 for call to get_shiftadd_cost.
23371
23372 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
23373
23374 PR target/49104
23375 * config/i386/cpuid.h (bit_MMXEXT): New define.
23376
23377 2011-05-22 Nick Clifton <nickc@redhat.com>
23378
23379 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
23380 initialisation of non-existant args[2] element. Use args[] array
23381 not arg[] array to pass arguments to build_function_type_list.
23382
23383 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
23384
23385 PR tree-optimization/49087
23386 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
23387
23388 2011-05-21 Jason Merrill <jason@redhat.com>
23389
23390 PR c++/49092
23391 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
23392 static storage duration.
23393
23394 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
23395
23396 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
23397 frame pointer.
23398
23399 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
23400
23401 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
23402 false if there are call-saved registers here...
23403 (sparc_can_use_return_insn_p): ...but here instead.
23404 (save_or_restore_regs): Fix thinko.
23405 (sparc_expand_prologue): Use current_function_is_leaf.
23406 (sparc_frame_pointer_required): Likewise.
23407
23408 2011-05-21 Nick Clifton <nickc@redhat.com>
23409
23410 PR target/49098
23411 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
23412
23413 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
23414
23415 * gengtype.c (walk_type): Implemented "atomic" GTY option.
23416 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
23417
23418 2011-05-21 Joseph Myers <joseph@codesourcery.com>
23419
23420 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
23421 * optc-gen.awk: Move common code to opt-read.awk.
23422 * opth-gen.awk: Likewise.
23423 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
23424
23425 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
23426
23427 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
23428
23429 2011-05-20 Tom de Vries <tom@codesourcery.com>
23430
23431 PR target/45098
23432 * tree-ssa-loop-ivopts.c: Include expmed.h.
23433 (get_shiftadd_cost): New function.
23434 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
23435
23436 2011-05-20 Jakub Jelinek <jakub@redhat.com>
23437
23438 PR bootstrap/49086
23439 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
23440 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
23441
23442 2011-05-20 Joseph Myers <joseph@codesourcery.com>
23443
23444 * Makefile.in: Update comment referring to $(OBJS-common).
23445
23446 2011-05-20 Ian Lance Taylor <iant@google.com>
23447
23448 * godump.c (go_output_typedef): Put enum constants in the macro
23449 hash table to avoid duplicate Go const definitions.
23450
23451 2011-05-20 Joseph Myers <joseph@codesourcery.com>
23452
23453 * Makefile.in (LIBDEPS): Add libcommon.a.
23454 (LIBS): Likewise.
23455 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
23456 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
23457 pretty-print.o and version.o.
23458 (OBJS-libcommon): New.
23459 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
23460 (BACKEND): Add libcommon.a.
23461 (MOSTLYCLEANFILES): Likewise.
23462 (libcommon.a): New.
23463 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
23464 (cpp$(exeext)): Likewise.
23465 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
23466 pretty-print.o and input.o.
23467 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
23468 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
23469 (errors.o): Remove.
23470 (mips-tfile): Don't explicitly use version.o.
23471 (mips-tdump): Likewise.
23472 (gcov.o): Depend on $(DIAGNOSTIC_H).
23473 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
23474 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
23475 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
23476 * gcov-dump.c: Include intl.h and diagnostic.h.
23477 (main): Initialize diagnostics.
23478 * gcov.c: Include diagnostic.h.
23479 (fnotice): Remove.
23480 (main): Initialize diagnostics.
23481 * lto-wrapper.c: Include diagnostic.h.
23482 (main): Initialize diagnostics.
23483
23484 2011-05-20 Michael Matz <matz@suse.de>
23485
23486 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
23487
23488 2011-05-20 Michael Matz <matz@suse.de>
23489 Richard Guenther <rguenther@suse.de>
23490
23491 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
23492 use lto_streamer_cache_append directly instead of returning a VEC.
23493 (preload_common_node): Remove.
23494 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
23495 track seen nodes.
23496 (lto_streamer_cache_create): Call lto_preload_common_nodes.
23497
23498 2011-05-20 Richard Guenther <rguenther@suse.de>
23499
23500 PR tree-optimization/49079
23501 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
23502 MEM_REFs correctly for the trailing array access detection.
23503 Special case constants the same way as decls for overall size
23504 constraining.
23505
23506 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
23507
23508 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
23509 argument expansion.
23510
23511 2011-05-20 Jakub Jelinek <jakub@redhat.com>
23512
23513 PR tree-optimization/49073
23514 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
23515 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
23516 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
23517
23518 2011-05-20 Richard Guenther <rguenther@suse.de>
23519
23520 PR middle-end/48849
23521 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
23522 of pointer types the same way the middle-end does.
23523
23524 2011-05-20 Richard Guenther <rguenther@suse.de>
23525
23526 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
23527 or pointer-to chains. Delay all fixup to uniquify_nodes.
23528
23529 2011-05-19 Quentin Neill <quentin.neill@amd.com>
23530
23531 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
23532 (fma4_fmaddsub): Likewise
23533
23534 2011-05-19 Jan Hubicka <jh@suse.cz>
23535
23536 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
23537 (GIMPLE_TYPE_PAIR_SIZE): New macro.
23538 (type_pair_cache): New static var.
23539 (lookup_type_pair): Use fixed sized custom hash; make inline.
23540 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
23541 calls of lookup_type_pair.
23542 (print_gimple_types_stats): Remove cache stats.
23543 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
23544 and gtc_ob.
23545
23546 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
23547
23548 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
23549 when TARGET_RDRND is active.
23550 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
23551 Generate dummy SImode target register when target is NULL.
23552
23553 2011-05-19 Joseph Myers <joseph@codesourcery.com>
23554
23555 * config/arm/arm-fpus.def: New.
23556 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
23557 arm-fpus.def.
23558 * config/arm/arm-tables.opt: Regenerate.
23559 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
23560 (arm_option_override): Don't decode FPU name to string here.
23561 * config/arm/arm.opt (mfpu=): Use Enum.
23562 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
23563 Update dependencies.
23564
23565 2011-05-19 Joseph Myers <joseph@codesourcery.com>
23566
23567 * collect2.c: Include diagnostic.h.
23568 (fatal_perror, fatal, error, fancy_abort): Remove.
23569 (main): Set progname. Call xmalloc_set_program_name and
23570 diagnostic_initialize.
23571 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
23572 scan_libraries, resolve_lib_name): Call fatal_error instead of
23573 fatal and fatal_perror.
23574 * collect2.h (error, fatal, fatal_perror): Don't declare.
23575 * tlink.c: Include diagnostic-core.h.
23576 (recompile_files): Call fatal_error instead of fatal_perror.
23577 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
23578 pretty-print.o and input.o.
23579 (collect2.o, tlink.o): Update dependencies.
23580
23581 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23582
23583 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
23584
23585 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23586
23587 PR target/40483
23588 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
23589 COMDAT group syntax, both SPARC and x86 variants.
23590 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
23591 * configure: Regenerate.
23592 * config/sol2.h (TARGET_SOLARIS): Define.
23593 (PUSHSECTION_FORMAT): Remove.
23594 (SECTION_NAME_FORMAT): Define.
23595 * config/sol2.c: Include hashtab.h.
23596 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
23597 expansion, using SECTION_NAME_FORMAT.
23598 (solaris_comdat_htab): New variable.
23599 (struct comdat_entry): Define.
23600 (comdat_hash): New function.
23601 (comdat_eq): New function.
23602 (solaris_elf_asm_comdat_section): New function.
23603 (solaris_define_comdat_signature): New function.
23604 (solaris_code_end): New function.
23605 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
23606 (solaris_code_end): Declare.
23607 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
23608 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
23609 solaris_code_end.
23610 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
23611 Remove ATTRIBUTE_UNUSED.
23612 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
23613 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
23614 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
23615 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
23616 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
23617 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
23618 (PUSHSECTION_FORMAT): Remove.
23619 (SECTION_NAME_FORMAT): Redefine.
23620
23621 2011-05-19 Kai Tietz <ktietz@redhat.com>
23622
23623 * tree-cfg.c (verify_gimple_assign_binary): Barf on
23624 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
23625 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
23626
23627 2011-05-19 Anatoly Sokolov <aesok@post.ru>
23628 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23629
23630 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
23631
23632 2011-05-19 Richard Guenther <rguenther@suse.de>
23633
23634 PR middle-end/48985
23635 * tree-object-size.c (addr_object_size): If the pointed-to
23636 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
23637
23638 2011-05-19 Richard Guenther <rguenther@suse.de>
23639
23640 * gimple.c (gimple_types_compatible_p_1): Compare names of
23641 the types themselves.
23642 (iterative_hash_gimple_type): And hash them that way.
23643 (gimple_register_type_1): If we register a main variant properly
23644 initialize the leader to ourselves.
23645
23646 2011-05-19 Tom de Vries <tom@codesourcery.com>
23647
23648 PR target/45098
23649 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
23650 get_loop_invariant_expr_id.
23651 (get_loop_invariant_expr_id): Use get_expr_id.
23652 (parm_decl_cost): New function.
23653 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
23654 Improve bound cost estimation. Use different inv_expr_id for elim and
23655 express cases.
23656
23657 2011-05-19 Tom de Vries <tom@codesourcery.com>
23658
23659 PR target/45098
23660 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
23661 cost_base.cost == 0.
23662
23663 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
23664
23665 PR target/49002
23666 * config/i386/sse.md
23667 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
23668 load cast.
23669
23670 2011-05-18 Jakub Jelinek <jakub@redhat.com>
23671
23672 PR tree-optimization/49039
23673 * tree-vrp.c (extract_range_from_binary_expr): For
23674 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
23675 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
23676
23677 2011-05-18 Tom de Vries <tom@codesourcery.com>
23678
23679 PR target/45098
23680 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
23681
23682 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
23683
23684 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
23685 (*tls_global_dynamic_64): Ditto.
23686 (*tls_local_dynamic_base_32_gnu): Ditto.
23687 (*tls_local_dynamic_base_64): Ditto.
23688 (tls_initial_exec_64_sun): Ditto.
23689
23690 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
23691
23692 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
23693 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
23694 bf592-none.
23695 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
23696 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
23697 * config/bfin/bfin.c (bfin_cpus): Add bf592.
23698 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
23699 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
23700 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
23701 * config/bfin/elf.h (LIB_SPEC): Add bf592.
23702
23703 2011-05-18 Joseph Myers <joseph@codesourcery.com>
23704
23705 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
23706 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
23707 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
23708 target_thread_pointer, arm_structure_size_boundary, struct
23709 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
23710 struct abi_name, arm_all_abis): Remove.
23711 (arm_option_override) Don't process most enumerated option values here.
23712 Don't process target_fpe_name here. Work with integer not string for
23713 structure size boundary; use separate diagnostics for each case.
23714 * config/arm/arm.h (enum float_abi_type, enum
23715 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
23716 to arm-opts.h.
23717 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
23718 arm_structure_size_boundary): Remove.
23719 * config/arm/arm.opt (mabi=): Use Enum and Init.
23720 (arm_abi_type): New Enum and EnumValue entries.
23721 (mfloat-abi=): Use Enum and Init.
23722 (float_abi_type): New Enum and EnumValue entries.
23723 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
23724 (mfp16-format=): Use Enum and Init.
23725 (arm_fp16_format_type): New Enum and EnumValue entries.
23726 (mstructure-size-boundary=): Use UInteger and Init.
23727 (mtp=): Use Enum and Init.
23728 (arm_tp_type): New Enum and EnumValue entries.
23729
23730 2011-05-18 Richard Guenther <rguenther@suse.de>
23731
23732 PR tree-optimization/49018
23733 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
23734 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
23735 gimple_has_side_effects.
23736
23737 2011-05-18 Richard Guenther <rguenther@suse.de>
23738
23739 * gimple.c (gimple_register_type_1): New function, split out from ...
23740 (gimple_register_type): ... here. Avoid infinite recursion.
23741
23742 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
23743
23744 PR tree-optimization/41881
23745 * tree-vectorizer.h (struct _loop_vec_info): Add new field
23746 reduction_chains along with a macro for its access.
23747 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
23748 (destroy_loop_vec_info): Free reduction chains.
23749 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
23750 (vect_is_slp_reduction): New function.
23751 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
23752 (vect_create_epilog_for_reduction): Support SLP reduction chains.
23753 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
23754 definition types for reduction chains.
23755 (vect_supported_load_permutation_p): Don't allow permutations for
23756 reduction chains.
23757 (vect_analyze_slp_instance): Support reduction chains.
23758 (vect_analyze_slp): Try to build SLP instance from reduction chains.
23759 (vect_get_constant_vectors): Handle reduction chains.
23760 (vect_schedule_slp_instance): Mark the first statement of the
23761 reduction chain as reduction.
23762
23763 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
23764
23765 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
23766 names for group elements access.
23767 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
23768 reduction chains as well. Remove data reference and interleaving
23769 related words from the fields names.
23770 * tree-vect-loop.c (vect_transform_loop): Use new names for group
23771 elements access.
23772 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
23773 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
23774 vect_update_interleaving_chain, vect_same_range_drs,
23775 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
23776 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
23777 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
23778 vect_analyze_group_access, vect_analyze_data_ref_access,
23779 vect_create_data_ref_ptr, vect_transform_strided_load,
23780 vect_record_strided_load_vectors): Likewise.
23781 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
23782 vect_model_load_cost, vectorizable_store, vectorizable_load,
23783 vect_remove_stores, new_stmt_vec_info): Likewise.
23784 * tree-vect-slp.c (vect_build_slp_tree,
23785 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
23786
23787 2011-05-18 Richard Guenther <rguenther@suse.de>
23788
23789 PR middle-end/48989
23790 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
23791 operand verification.
23792 (verify_gimple_assign_binary): Likewise.
23793 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
23794 to non-1-precision BOOLEAN_TYPEs.
23795
23796 2011-05-18 Tom de Vries <tom@codesourcery.com>
23797
23798 PR target/45098
23799 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
23800
23801 2011-05-18 Jakub Jelinek <jakub@redhat.com>
23802
23803 PR tree-optimization/49000
23804 * tree-ssa.c (execute_update_addresses_taken): Call
23805 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
23806 be rewritten and decl has been marked for renaming, reset
23807 the debug stmt.
23808
23809 2011-05-17 Joseph Myers <joseph@codesourcery.com>
23810
23811 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
23812 enum_opts_set when testing if attributes have set -mfpmath=.
23813
23814 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
23815
23816 * config/mips/mips.c (mips_handle_option): Remove unused variable.
23817
23818 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
23819
23820 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
23821 info->entry with 0
23822 * tree-inline.c (maybe_inline_call_in_expr): Initialize
23823 id.transform_lang_insert_block with NULL.
23824
23825 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
23826
23827 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
23828 (output_fp_compare): Change args 3 and 4 to bool.
23829 (ix86_expand_call): Change arg 6 to bool.
23830 (ix86_attr_length_immediate_default): Change arg 2 to bool.
23831 (ix86_attr_length_vex_default): Change arg 3 to bool.
23832 * config/i386/i386.md: Update all uses.
23833 * config/i386/i386.c: Ditto.
23834 (ix86_flags_dependent): Change return type to bool.
23835
23836 2011-05-17 Richard Guenther <rguenther@suse.de>
23837
23838 * gimple.c (type_hash_pair_compare): Fix comparison.
23839
23840 2011-05-17 Richard Guenther <rguenther@suse.de>
23841
23842 * gimple.c (iterative_hash_gimple_type): Simplify singleton
23843 case some more, fix final hash value of the non-singleton case.
23844
23845 2011-05-17 Richard Guenther <rguenther@suse.de>
23846
23847 PR bootstrap/49013
23848 Revert
23849 2011-05-16 Richard Guenther <rguenther@suse.de>
23850
23851 * gimple.c (gimple_types_compatible_p_1): Use names of the
23852 type itself, not its main variant.
23853 (iterative_hash_gimple_type): Likewise.
23854
23855 2011-05-17 Richard Guenther <rguenther@suse.de>
23856
23857 * gimple.c (gimple_register_canonical_type): Use the main-variant
23858 leader for computing the canonical type.
23859
23860 2011-05-17 Nick Clifton <nickc@redhat.com>
23861
23862 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
23863 moves.
23864
23865 * config/rx/rx.md: Add peephole to remove redundant extensions
23866 after loads.
23867 (bitset_in_memory): Use rx_restricted_mem_operand.
23868 (bitinvert_in_memory): Likewise.
23869 (bitclr_in_memory): Likewise.
23870
23871 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
23872 Nick Clifton <nickc@redhat.com>
23873
23874 * config/rx/rx.md: Add peepholes to match a register move followed
23875 by a comparison of the moved register. Replace these with an
23876 addition of zero that does both actions in one instruction.
23877
23878 2011-05-17 Jakub Jelinek <jakub@redhat.com>
23879
23880 PR target/48986
23881 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
23882 predicate to allow CONST_INT.
23883 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
23884
23885 2011-05-16 Joseph Myers <joseph@codesourcery.com>
23886
23887 * opts-common.c (opt_enum_arg_to_value): New.
23888 * opts.h (opt_enum_arg_to_value): Declare.
23889 * config/i386/i386.opt (fpmath): Remove.
23890 (mfpmath=): Use Enum, Init and Save.
23891 (fpmath_unit): New Enum and EnumValue entries.
23892 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
23893 name for function fpmath state.
23894 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
23895 * config/i386/i386.c: Include diagnostic.h.
23896 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
23897 (ix86_target_string): Take enum fpmath_unit value instead of string.
23898 (ix86_debug_options): Update call to ix86_target_string.
23899 (ix86_option_override_internal): Don't process fpmath strings here.
23900 (x86_function_specific_save, ix86_function_specific_restore):
23901 Don't handle fpmath state specially.
23902 (ix86_function_specific_print): Pass fpmath state to
23903 ix86_target_string instead of printing in this function.
23904 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
23905 Handle enum attributes.
23906 (IX86_ATTR_ENUM, ix86_opt_enum): New.
23907 (ix86_valid_target_attribute_tree): Update option_strings
23908 handling. Handle fpmath as enum option.
23909 (ix86_can_inline_p): Update field names for function fpmath state.
23910 (ix86_expand_builtin): Update call to ix86_target_string.
23911 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
23912 (ix86_fpmath): Remove.
23913 * config/i386/t-i386 (i386.o): Update dependencies.
23914
23915 2011-05-16 Joseph Myers <joseph@codesourcery.com>
23916
23917 PR preprocessor/48677
23918 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
23919 from decoded_options[0], not from itself.
23920
23921 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
23922
23923 * config/i386/constraints.md (z): New constraint.
23924 * config/i386/i386.c (c): New mode attribute.
23925 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
23926 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
23927 constraint for operand 0.
23928 (*call_vzeroupper): Ditto.
23929 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
23930 (*call_rex64_ms_sysv_vzeroupper): Ditto.
23931 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
23932 Use "lzm" constraint for operand 0.
23933 (*call_pop_vzeroupper): Ditto.
23934 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
23935 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
23936 constraint for operand 0.
23937 (*sibcall_vzeroupper): Ditto.
23938 (*sibcall_rex64_ms_sysv): Ditto.
23939 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
23940 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
23941 *sibcall_pop_1. Use "Uz" constraint for operand 0.
23942 (*sibcall_pop_vzeroupper): Ditto.
23943 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
23944 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
23945 mode iterator. Use "<c>zm" constraint for operand 1.
23946 (*call_value_vzeroupper): Ditto.
23947 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
23948 for operand 1.
23949 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
23950 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
23951 *call_value_pop_1. Use "lzm" constraint for operand 1.
23952 (*call_value_pop_vzeroupper): Ditto.
23953 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
23954 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
23955 mode iterator. Use "Uz" constraint for operand 1.
23956 (*sibcall_value_vzeroupper): Ditto.
23957 (*sibcall_value_rex64_ms_sysv): Ditto.
23958 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
23959 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
23960 constraint for operand 1.
23961 (*sibcall_value_pop_vzeroupper): Ditto.
23962 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
23963 and "z" constraint for operand 2.
23964 (*tls_global_dynamic_32_gnu): Ditto.
23965 (*tls_local_dynamic_base_32_gnu): Ditto.
23966 (*tls_local_dynamic_base_64): Ditto.
23967 (*tls_local_dynamic_32_once): Ditto.
23968 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
23969 Update all callers.
23970 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
23971
23972 2011-05-16 Richard Guenther <rguenther@suse.de>
23973
23974 * gimple.c (gimple_types_compatible_p_1): Use names of the
23975 type itself, not its main variant.
23976 (iterative_hash_gimple_type): Likewise.
23977
23978 2011-05-16 Richard Guenther <rguenther@suse.de>
23979
23980 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
23981 always visit pointer target and function result and argument types.
23982
23983 2011-05-16 Jason Merrill <jason@redhat.com>
23984
23985 PR c++/48999
23986 * tree-inline.c (copy_statement_list): Put back recursion.
23987
23988 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
23989
23990 PR target/27663
23991 PR target/41076
23992 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
23993 * config/avr/avr.md ("*ior<mode>qi.byte0",
23994 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
23995
23996 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
23997
23998 PR target/45099
23999 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
24000 register is needed for a function argument.
24001
24002 2011-05-16 Richard Guenther <rguenther@suse.de>
24003
24004 * gimple.c (struct type_hash_pair): New type.
24005 (type_hash_pair_compare): New function.
24006 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
24007
24008 2011-05-16 Revital Eres <revital.eres@linaro.org>
24009
24010 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
24011
24012 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
24013
24014 * config/i386/i386.md (floating point move splitters): Fix
24015 usage of standard_80387_constant_p.
24016 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
24017
24018 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
24019
24020 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
24021
24022 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
24023
24024 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
24025 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
24026 (tree_ssa_lim_finalize): Likewise.
24027
24028 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
24029
24030 * config/i386/constraint.md (Yd, Yx): New register constraints.
24031 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
24032 Yd conditional register constraint.
24033 (*movtf_internal): Use standard_sse_constant_opcode.
24034 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
24035 Yx conditional register constraint.
24036 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
24037 Yd conditional register constraint. Use standard_sse_constant_p to
24038 check for valid SSE constants and call standard_sse_constant_opcode to
24039 output SSE insn.
24040 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
24041 constants and call standard_sse_constant_opcode to output SSE insn.
24042 * config/i386/i386.c (ix86_option_ovverride_internal): Set
24043 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
24044 optimize_size is set.
24045 (standard_sse_constant_opcode): Output conditional AVX insn templates.
24046
24047 2011-05-14 Tobias Burnus <burnus@net-b.de>
24048
24049 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
24050
24051 2011-05-13 Martin Jambor <mjambor@suse.cz>
24052
24053 * ipa-prop.c (ipa_cst_from_jfunc): New function.
24054 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
24055 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
24056 (evaluate_conditions_for_ipcp_clone): Removed.
24057 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
24058 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
24059 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
24060
24061 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
24062
24063 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
24064 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
24065 lieu of MAY_HAVE_DEBUG_STMTS.
24066 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
24067 debug statements if !MAY_HAVE_DEBUG_STMTS.
24068
24069 2011-05-13 Martin Thuresson <martint@google.com>
24070
24071 PR gcov-profile/47793
24072 * libgcov.c (gcov_exit): Support relative profile paths.
24073 * doc/invoke.texi (-fprofile-dir): Update for above change.
24074
24075 2011-05-13 Richard Guenther <rguenther@suse.de>
24076
24077 * gimple.c (gimple_canonical_types_compatible_p): Do not use
24078 type-pair caching, do not compare hashes.
24079
24080 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
24081
24082 PR middle-end/48965
24083 * tree-cfg.c (edge_to_cases_cleanup): Return true.
24084 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
24085
24086 2011-05-13 Kai Tietz <ktietz@redhat.com>
24087
24088 * gimplify.c (gimplify_expr): Make sure operand is boolified.
24089 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
24090 compatible type for TRUTH_NOT_EXPR.
24091
24092 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
24093
24094 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
24095 (ix86_hard_regno_mode_ok): Change return value to bool. Use
24096 can_create_pseudo_p ().
24097
24098 2011-05-13 Richard Guenther <rguenther@suse.de>
24099
24100 PR lto/48978
24101 * gimple.c (iterative_hash_gimple_type): Revert change in
24102 pointer target and function result and argument hashing.
24103
24104 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
24105
24106 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
24107 (*movxf_internal_nointeger): Ditto.
24108 (*movdf_internal_rex64): Ditto.
24109 (*movdf_internal): Ditto.
24110 (*movdf_internal_nointeger): Ditto.
24111 (*movsf_internal): Ditto.
24112 (sincos splitters): Use can_create_pseudo ().
24113
24114 2011-05-13 Joseph Myers <joseph@codesourcery.com>
24115
24116 * config/i386/i386-opts.h: New.
24117 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
24118 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
24119 ix86_section_threshold): Remove.
24120 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
24121 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
24122 OPT_mbranch_cost_.
24123 (ix86_option_override_internal): Don't decode strings for options
24124 other than -march=, -mtune= and -mfpmath=. Don't allow for
24125 __attribute__ uses in remaining diagnostics for options with
24126 string arguments. Don't check for integer arguments being negative.
24127 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
24128 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
24129 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
24130 ix86_branch_cost, ix86_section_threshold): Remove.
24131 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
24132 HeaderInclude.
24133 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
24134 but not Var.
24135 (masm=): Use Enum and Init.
24136 (asm_dialect): New Enum and EnumValue entries.
24137 (mbranch-cost=): Use UInteger.
24138 (mlarge-data-threshold=): Use UInteger and Init.
24139 (mcmodel=): Use Enum and Init.
24140 (cmodel): New Enum and EnumValue entries.
24141 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
24142 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
24143 mregparm=): Use UInteger.
24144 (mstringop-strategy=): Use Enum and Init.
24145 (stringop_alg): New Enum and EnumValue entries.
24146 (mtls-dialect=): Use Enum and Init.
24147 (tls_dialect): New Enum and EnumValue entries.
24148 (mabi=): Use Enum and Init.
24149 (calling_abi): New Enum and EnumValue entries.
24150 (mveclibabi=): Use Enum and Init.
24151 (ix86_veclibabi): New Enum and EnumValue entries.
24152
24153 2011-05-13 Nick Clifton <nickc@redhat.com>
24154
24155 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
24156 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
24157
24158 2011-05-13 Kai Tietz <ktietz@redhat.com>
24159
24160 PR middle-end/48984
24161 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
24162 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
24163 (gimple_boolify): Check for cast for boolean_type_node instead for
24164 BOOLEAN_TYPE.
24165
24166 2011-05-13 Richard Guenther <rguenther@suse.de>
24167
24168 PR tree-optimization/48172
24169 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
24170 multiplying by number of iterations for equal step.
24171 (vect_create_cond_for_alias_checks): Likewise.
24172
24173 2011-05-13 Andreas Schwab <schwab@redhat.com>
24174
24175 * configure.ac: Use AS_HELP_STRING throughout.
24176 * configure: Regenerate.
24177
24178 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
24179
24180 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
24181 (ix86_emit_restore_regs_using_mov): Likewise.
24182 (ix86_emit_restore_sse_regs_using_mov): Likewise.
24183
24184 2011-05-12 Anatoly Sokolov <aesok@post.ru>
24185
24186 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
24187 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
24188 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
24189 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
24190 RTX_OK_FOR_OLO10_P): ...here.
24191 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
24192 SYMBOLIC_CONST.
24193
24194 2011-05-12 Kai Tietz <ktietz@redhat.com>
24195
24196 * gimplify.c (gimple_boolify): Re-boolify expression
24197 arguments even if expression type is of kind BOOLEAN_TYPE.
24198 (gimplify_boolean_expr): Removed.
24199 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
24200 and XOR. Additional take care that we keep expression's type.
24201 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
24202 of TRUTH_AND|OR|XOR_EXPR.
24203
24204 2011-05-12 Jakub Jelinek <jakub@redhat.com>
24205
24206 PR tree-optimization/48975
24207 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
24208 on all bbs here and free and clear ifc_bbs at the end.
24209
24210 2011-05-12 Richard Guenther <rguenther@suse.de>
24211
24212 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
24213 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
24214 until after simple checks.
24215 (gimple_types_compatible_p): Likewise.
24216 (iterative_hash_gimple_type): Always hash pointer targets
24217 and function return and argument types.
24218 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
24219 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
24220 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
24221 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
24222 completely in the simple compare section.
24223 (gimple_register_canonical_type): Query the cache again after
24224 registering.
24225
24226 2011-05-12 Richard Guenther <rguenther@suse.de>
24227
24228 PR tree-optimization/48172
24229 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
24230 the number of iterations from the segment size calculation.
24231 (vect_create_cond_for_alias_checks): Adjust.
24232
24233 2011-05-12 Jakub Jelinek <jakub@redhat.com>
24234
24235 PR debug/48967
24236 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
24237 if validate_subreg fails.
24238
24239 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
24240
24241 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
24242 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
24243 early.
24244
24245 2011-05-12 DJ Delorie <dj@redhat.com>
24246
24247 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
24248 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
24249 created builtin into rx_builtins array.
24250 (rx_builtin_decl): New function.
24251 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
24252
24253 2011-05-12 DJ Delorie <dj@redhat.com>
24254 Nick Clifton <nickc@redhat.com>
24255
24256 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
24257 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
24258 (rx_is_legitimate_address): Add pre-decrement and post-increment
24259 addressing in HImode and QImode. Fix test for out of range
24260 REG+INT addressing.
24261 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
24262 (rx_align_for_label): Test label before extracting its usage count.
24263 (rx_adjust_insn_lengths): Fix selection of insn codes.
24264 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
24265
24266 2011-05-11 Jason Merrill <jason@redhat.com>
24267
24268 * tree.c (type_hash_canon): Use struct tree_type_non_common.
24269
24270 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
24271
24272 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
24273 reindent the subsequent block.
24274
24275 2011-05-11 Satoru Takabayashi <satorux@google.com>
24276 Paul Pluzhnikov <ppluzhnikov@google.com>
24277
24278 * doc/install.texi (Configuration): Document --with-linker-hash-style.
24279 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
24280 * config.in: Add LINKER_HASH_STYLE.
24281 * configure.ac: Add --with-linker-hash-style.
24282 * configure: Regenerate.
24283
24284 2011-05-11 Richard Guenther <rguenther@suse.de>
24285
24286 PR middle-end/48964
24287 * gimple.c (iterative_hash_canonical_type): Fix typo.
24288
24289 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
24290
24291 * config/i386/i386.c (legitimize_tls_address)
24292 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
24293 expanders directly for TARGET_GNU2_TLS. Determine pic and
24294 __tls_get_addr symbol reference here. Update call to
24295 gen_tls_global_dynamic_{32,64} for added arguments.
24296 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
24297 expanders directly for TARGET_GNU2_TLS. Determine
24298 __tls_get_addr symbol reference here. Update call to
24299 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
24300 unique UNSPEC REG_EQUIV to libcall block.
24301 (ix86_tls_get_addr): Declare static.
24302 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
24303 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
24304 Do not determine pic and __tls_get_addr symbol reference here. Do not
24305 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
24306 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
24307 (tls_global_dynamic_64): Add operand 2. Do not determine
24308 __tls_get_addr symbol reference here. Do not call
24309 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
24310 (tls_local_dynamic_base64): Ditto for operand 1.
24311
24312 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
24313
24314 * function.c (expand_function_start): Initialize stack_check_probe_note
24315 only if the generic stack checking mechanism is used.
24316
24317 2011-05-11 Richard Guenther <rguenther@suse.de>
24318
24319 PR tree-optimization/15256
24320 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
24321 (A & B) | C, combine (A op CST1) op CST2.
24322 (tree_ssa_forward_propagate_single_use_vars): Only bother to
24323 visit assigns that have uses.
24324
24325 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
24326
24327 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
24328 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
24329 (unpack_ts_type_common_value_fields): ...this. Update comment.
24330 (unpack_value_fields): Adjust for renaming.
24331 (lto_input_ts_type_tree_pointers): Split into...
24332 (lto_input_ts_type_common_tree_pointer): ...this and...
24333 (lto_input_ts_type_non_common_tree_pointers): ...this.
24334 (lto_input_tree_pointers): Adjust for above split.
24335 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
24336 (pack_ts_type_common_value_fields): ...this. Update comment.
24337 (lto_output_ts_type_tree_pointers): Split into...
24338 (lto_output_ts_type_common_tree_pointers): ...this and...
24339 (lto_output_ts_type_non_common_tree_pointers): ...this.
24340 (lto_output_tree_pointers): Adjust for above split.
24341 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
24342 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
24343 * stor-layout.c (vector_type_mode): Adjust location of mode field.
24344 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
24345 Define.
24346 (struct tree_type): Split into...
24347 (struct tree_type_common: ...this and...
24348 (struct tree_type_with_lang_specific): ...this and...
24349 (struct tree_type_non_common): ...this. Adjust accessor macros
24350 accordingly.
24351 (TYPE_VALUES_RAW): Define.
24352 (union tree_node): Update for above changes.
24353 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
24354 TS_TYPE_NON_COMMON.
24355 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
24356 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
24357 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
24358 * treestructu.def (TS_TYPE): Remove.
24359 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
24360 Define.
24361
24362 2011-05-11 Jakub Jelinek <jakub@redhat.com>
24363
24364 PR debug/48159
24365 * tree-ssa.c (reset_debug_uses): New function.
24366 * tree-flow.h (reset_debug_uses): New prototype.
24367 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
24368 * tree-loop-distribution.c (generate_loops_for_partition): Call
24369 reset_debug_uses on the stmts that will be removed. Keep around
24370 all debug stmts, don't count them as bits in partition bitmap.
24371 (generate_builtin): Don't count debug stmts or labels as bits in
24372 partition bitmap.
24373
24374 2011-05-11 Richard Guenther <rguenther@suse.de>
24375
24376 * gimple.c (gimple_type_hash_1): Merge with ...
24377 (gimple_type_hash): ... this.
24378 (gtc_visit): Remove mode parameter and simplify accordingly.
24379 (gimple_types_compatible_p_1): Likewise.
24380 (gimple_types_compatible_p): Likewise.
24381 (iterative_hash_gimple_type): Likewise.
24382 (visit): Likewise.
24383 (gimple_type_eq): Adjust.
24384
24385 2011-05-11 Revital Eres <revital.eres@linaro.org>
24386
24387 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
24388 enters the branch create an anti edge in the opposite direction
24389 to prevent the creation of reg-moves.
24390 * modulo-sched.c: Adjust comment to reflect the fact we are
24391 scheduling closing branch.
24392 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
24393 (stage_count): New field in struct partial_schedule.
24394 (calculate_stage_count): New function.
24395 (normalize_sched_times): Rename to reset_sched_times and handle
24396 incrementing the sched time of the nodes by a constant value
24397 passed as parameter.
24398 (duplicate_insns_of_cycles): Skip closing branch.
24399 (sms_schedule_by_order): Schedule closing branch.
24400 (ps_insn_find_column): Handle closing branch.
24401 (sms_schedule): Call reset_sched_times and adjust the code to
24402 support scheduling of the closing branch.
24403 (ps_insert_empty_row): Update calls to normalize_sched_times
24404 and rotate_partial_schedule functions.
24405
24406 2011-05-11 Richard Guenther <rguenther@suse.de>
24407
24408 PR middle-end/48953
24409 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
24410
24411 2011-05-11 Joseph Myers <joseph@codesourcery.com>
24412
24413 * opts.c (finish_options): Move warning settings from process_options.
24414 * toplev.c (process_options): Move warning settings to finish_options.
24415
24416 2011-05-11 Richard Guenther <rguenther@suse.de>
24417
24418 PR tree-optimization/18041
24419 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
24420 (simplify_bitwise_binary): ... this. Handle operand conversions
24421 by applying them to the result instead.
24422 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
24423
24424 2011-05-11 Richard Guenther <rguenther@suse.de>
24425
24426 * gimple.c (gimple_canonical_types_compatible_p): Split out
24427 from gimple_types_compatible_p and friends. Do not recurse
24428 to pointed-to types.
24429 (gimple_canonical_type_eq): Use it.
24430 (iterative_hash_canonical_type): Split out from
24431 iterative_hash_gimple_type and friends. Do not recurse
24432 to pointed-to types.
24433 (gimple_canonical_type_hash): Use it, allocate the hash here.
24434
24435 2011-05-11 Revital Eres <revital.eres@linaro.org>
24436
24437 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
24438 recognizing doloop.
24439
24440 2011-05-11 Revital Eres <revital.eres@linaro.org>
24441
24442 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
24443 instead of PREV_INSN.
24444
24445 2011-05-11 Revital Eres <revital.eres@linaro.org>
24446
24447 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
24448 * loop-doloop.c (doloop_condition_get): Likewise.
24449 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
24450 (doloop_end): New.
24451 * config/arm/arm.md (*addsi3_compare0): Remove "*".
24452
24453 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
24454
24455 * tree.def (CASE_LABEL_EXPR): Add an operand.
24456 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
24457
24458 2011-05-10 Joseph Myers <joseph@codesourcery.com>
24459
24460 * c-decl.c (c_override_global_bindings_to_false): Remove.
24461 (global_bindings_p): Don't check
24462 c_override_global_bindings_to_false.
24463 * c-tree.h (c_override_global_bindings_to_false): Remove.
24464 * c-typeck.c (composite_type): Don't set
24465 c_override_global_bindings_to_false.
24466
24467 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
24468
24469 PR target/48857, 48495
24470 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
24471 (VSX_MODE): Ditto.
24472 (VSX_MOVE_MODE): Ditto.
24473 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
24474 VSX vector types. Add V2DImode.
24475 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
24476 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
24477 (MODES_TIEABLE_P): Ditto.
24478
24479 * config/rs6000/rs6000.c (rs6000_emit_move): Use
24480 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
24481 VSX_VECTOR_MODE.
24482 (init_cumulative_args): Ditto.
24483 (rs6000_function_arg_boundary): Ditto.
24484 (rs6000_function_arg_advance_1): Ditto.
24485 (rs6000_function_arg): Ditto.
24486 (rs6000_function_ok_for_sibcall): Ditto.
24487 (emit_frame_save): Ditto.
24488 (rs6000_function_value): Ditto.
24489 (rs6000_libcall_value): Ditto.
24490
24491 2011-05-10 Joseph Myers <joseph@codesourcery.com>
24492
24493 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
24494 i386/darwin-lib.h to $libgcc_tm_file.
24495 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
24496
24497 2011-05-10 Joseph Myers <joseph@codesourcery.com>
24498
24499 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
24500
24501 2011-05-10 Joseph Myers <joseph@codesourcery.com>
24502
24503 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
24504 * config/rs6000/rs6000-tables.opt: New file (generated).
24505 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
24506 rs6000/rs6000-tables.opt to extra_options.
24507 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
24508 * config/rs6000/rs6000.c (rs6000_select): Remove.
24509 (processor_target_table): Move contents to rs6000-cpus.def.
24510 (darwin_rs6000_override_options): Check
24511 global_options_set.x_rs6000_cpu_index instead of
24512 rs6000_select[1].string.
24513 (rs6000_option_override_internal): Likewise.
24514 (rs6000_handle_option): Don't assert that global structures are in
24515 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
24516 (rs6000_default_cpu): New variable.
24517 (rs6000_file_start): Set it instead of local default_cpu. Check
24518 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
24519 global_options_set.x_rs6000_tune_index instead of rs6000_select.
24520 (rs6000_darwin_file_start): Check rs6000_default_cpu and
24521 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
24522 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
24523 rs6000_select): Remove.
24524 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
24525 Remove.
24526 (mcpu=, mtune=): Use Var, Init, Enum and Save.
24527 * config/rs6000/t-rs6000
24528 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
24529 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
24530 global_options_set.x_rs6000_cpu_index instead of
24531 rs6000_select[1].string.
24532 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
24533 global_options_set.x_rs6000_cpu_index instead of
24534 rs6000_select[1].string.
24535
24536 2011-05-10 Joseph Myers <joseph@codesourcery.com>
24537
24538 * config.gcc (libgcc_tm_file): Define instead of including files
24539 from ../../libgcc/config/ in tm_file.
24540 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
24541 * configure: Regenerate.
24542 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
24543 libgcc_tm.h, cs-libgcc_tm.h): New.
24544 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
24545 (clean): Remove libgcc_tm.h.
24546 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
24547 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
24548 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
24549
24550 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
24551
24552 PR target/48896
24553 * config/avr/avr.c (avr_ret_register): Return unsigned int
24554 instead of int.
24555 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
24556 it to avr_libcall_value.
24557 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
24558 expand_expr.
24559 (avr_expand_binop_builtin): Ditto.
24560 (avr_expand_unop_builtin): Ditto.
24561
24562 2011-05-10 DJ Delorie <dj@redhat.com>
24563
24564 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
24565 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
24566 * config/rx/rx.c (rx_align_for_label): Add label and
24567 uses_threshold parameters. Do not align when the label is not
24568 used enough.
24569 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
24570
24571 2011-05-10 Richard Guenther <rguenther@suse.de>
24572
24573 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
24574 a series of conversions and apply foldings similar to what
24575 fold-const does.
24576 (tree_ssa_forward_propagate_single_use_vars): Call it.
24577
24578 2011-05-10 Jakub Jelinek <jakub@redhat.com>
24579
24580 PR tree-optimization/48611
24581 PR tree-optimization/48794
24582 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
24583 referenced from RESX or EH_DISPATCH arguments.
24584
24585 PR debug/48928
24586 * dfp.c (decimal_to_decnumber): Handle conversion from
24587 dconst{1,2,m1,half}.
24588
24589 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
24590
24591 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
24592 for !flag_prefer_avx128.
24593 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
24594
24595 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
24596
24597 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
24598 (fold_ternary_loc): Use expr_location_or.
24599
24600 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
24601
24602 PR debug/48853
24603 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
24604 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
24605 Pmode and mem_mode is not VOIDmode.
24606
24607 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
24608
24609 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
24610 TYPE_QUAL_RESTRICT): Convert to enum.
24611
24612 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
24613
24614 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
24615 (const_pow2_1_to_8_operand): Ditto.
24616 (const_pow2_1_to_128_operand): Ditto.
24617 (const_pow2_1_to_32768_operand): Ditto.
24618 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
24619 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
24620 in insn constraint to check integer value of operand 3.
24621 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
24622
24623 (PINSR_MODE): New mode iterator.
24624 (sse2p4_1): New mode attribute.
24625 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
24626 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
24627 iterator. Use const_int_operand instead of
24628 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
24629 exact_log2 in insn constraint to check integer value of operand 3.
24630
24631 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
24632
24633 * config/i386/sse.md (blendbits): Remove mode attribute.
24634 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
24635 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
24636 Check integer value of operand 3 in insn constraint.
24637
24638 2011-05-09 Richard Guenther <rguenther@suse.de>
24639
24640 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
24641 for diagnostics.
24642 (lto_symtab_merge): Likewise. Do not register types here.
24643 (lto_symtab_merge_decls_2): Likewise.
24644 (lto_symtab_merge_decls_1): Likewise.
24645 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
24646 * gimple.c (enum gtc_mode): Declare.
24647 (gimple_types_compatible_p): Make static.
24648
24649 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24650
24651 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
24652 temporary register to match Pmode.
24653
24654 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
24655
24656 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
24657 and *vec_concatv4si_1_avx.
24658
24659 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
24660
24661 PR rtl-optimization/48927
24662 * ira-conflicts.c (commutative_constraint_p): Use
24663 recog_data.alternative_enabled_p to disable alternatives where
24664 "enabled" attribute is false.
24665 (get_dup_num): Ditto.
24666 * ira-lives.c (single_reg_class): Ditto.
24667 (ira_implicitly_set_insn_hard_regs): Ditto.
24668
24669 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
24670
24671 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
24672 (dataflow_set_preserve_mem_locs): Likewise.
24673
24674 2011-05-09 Philipp Thomas <pth@suse.de>
24675
24676 * config/mep/mep.c (mep_validate_vliw): Syntax description
24677 should not be translated.
24678
24679 2011-05-09 Joseph Myers <joseph@codesourcery.com>
24680
24681 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
24682 * config/mips/mips-tables.opt: New file (generated).
24683 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
24684 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
24685 MIPS_ARCH_OPTION_NATIVE): Define.
24686 * config/mips/mips.c (mips_cpu_info_table): Move contents to
24687 mips-cpus.def.
24688 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
24689 mips_parse_cpu): Remove.
24690 (mips_cpu_info_from_opt, mips_default_arch): New.
24691 (mips_handle_option): Don't assert that global structures are in
24692 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
24693 (mips_option_override): Use new variables and functions to set
24694 state of these options. Use strcmp to check for individual CPU names.
24695 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
24696 definition.
24697 * config/mips/mips.opt (march=): Use ToLower and Enum.
24698 (mips): Use ToLower, Enum and Var.
24699 (mtune=): Use ToLower and Enum.
24700 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
24701
24702 2011-05-08 Jan Hubicka <jh@suse.cz>
24703
24704 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
24705 Arrange type pairs to be UID ordered.
24706 (gimple_lookup_type_leader): Make inline.
24707
24708 2011-05-09 Nick Clifton <nickc@redhat.com>
24709
24710 PR target/48899
24711 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
24712 PROCESSOR_DEFAULT.
24713
24714 PR target/48897
24715 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
24716 variable 's'.
24717
24718 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
24719
24720 * combine.c (simplify_comparison): Abstract out parts into...
24721 (simplify_compare_const): ... new function.
24722 (try_combine): Generalize parallel arithmetic/compare combining
24723 to call simplify_compare_const() and CANONICALIZE_COMPARE().
24724
24725 2011-05-08 Jan Hubicka <jh@suse.cz>
24726
24727 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
24728 (cgraph_create_virtual_clone): Call hooks once virtual clone
24729 is finished.
24730 * cgraph.h (cgraph_clone_node): Update prototype.
24731 * ipa-cp.c (ipcp_estimate_growth): Use
24732 estimate_ipcp_clone_size_and_time.
24733 * ipa-inline-transform.c (clone_inlined_nodes): Update.
24734 * lto-cgraph.c (input_node): Update.
24735 * ipa-inline.c (recursive_inlining): Update.
24736 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
24737 (evaluate_conditions_for_known_args): Break out from ...
24738 (evaluate_conditions_for_edge): ... here.
24739 (evaluate_conditions_for_ipcp_clone): New function.
24740 (inline_node_duplication_hook): Update clone summary based
24741 on parameter map.
24742 (estimate_callee_size_and_time): Rename to ...
24743 (estimate_node_size_and_time): take NODE instead of EDGE;
24744 take POSSIBLE_TRUTHS as argument.
24745 (estimate_callee_size_and_time): Update.
24746 (estimate_ipcp_clone_size_and_time): New function.
24747 (do_estimate_edge_time): Update.
24748
24749 2011-05-08 Richard Guenther <rguenther@suse.de>
24750
24751 PR middle-end/48908
24752 PR middle-end/48905
24753 * expmed.c (expand_shift_1): Compute adjusted constant shift
24754 amount manually.
24755
24756 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
24757
24758 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
24759
24760 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
24761
24762 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
24763
24764 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
24765
24766 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
24767
24768 2011-05-07 Jan Hubicka <jh@suse.cz>
24769
24770 * ipa-inline-transform.c (inline_call): Account when program size
24771 decreases.
24772 * ipa-inline.c (relative_time_benefit): New function.
24773 (edge_badness): Reorganize to be power 2 based; fix thinko when
24774 computing badness for negative growth; update comments to match
24775 reality; better dumps.
24776
24777 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
24778
24779 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
24780 type to bool and adjust comment.
24781 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
24782 (fold_mathfn_compare): Remove calls to global_bindings_p.
24783 (fold_inf_compare): Likewise.
24784 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
24785 * c-tree.h (global_bindings_p): Adjust prototype.
24786 * c-decl.c (global_bindings_p): Return bool and simplify.
24787
24788 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
24789
24790 PR tree-optimization/48837
24791 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
24792 when accumulator transformation is performed.
24793
24794 2011-05-06 Jan Hubicka <jh@suse.cz>
24795
24796 * i386.h (ix86_tune_indices): Add
24797 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
24798 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
24799 * i386.c (initial_ix86_tune_features): Add
24800 X86_SOFTARE_PREFETCHING_BENEFICIAL.
24801 (software_prefetching_beneficial_p): Remove predicate.
24802 (ix86_option_override_internal): Use new macro.
24803
24804 2011-05-06 Jan Hubicka <jh@suse.cz>
24805
24806 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
24807
24808 2011-05-06 Jan Hubicka <jh@suse.cz>
24809
24810 * cgraph.c (cgraph_add_thunk): Create real function node instead
24811 of alias node; finalize it and mark needed/reachale; arrange visibility
24812 to be right and add it into the corresponding same comdat group list.
24813 (dump_cgraph_node): Dump thunks.
24814 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
24815 cgraph_function_with_gimple_body_p,
24816 cgraph_first_function_with_gimple_body,
24817 cgraph_next_function_with_gimple_body): New functions.
24818 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
24819 New macros.
24820 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
24821 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
24822 * cgraphunit.c (cgraph_finalize_function): Only look into possible
24823 devirtualization when optimizing.
24824 (verify_cgraph_node): Verify thunks.
24825 (cgraph_analyze_function): Analyze thunks.
24826 (cgraph_mark_functions_to_output): Output thunks only in combination
24827 with function they are assigned to.
24828 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
24829 alias into normal node.
24830 (assemble_thunks): New functoin.
24831 (cgraph_expand_function): Use it.
24832 * lto-cgraph.c (lto_output_node): Stream thunks.
24833 (input_overwrite_node): Stream in thunks.
24834 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
24835 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
24836 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
24837 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
24838 (inline_analyze_function): Do not care about thunk jump functions.
24839 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
24840 * ipa-prop.c (ipa_prop_write_jump_functions): Use
24841 cgraph_function_with_gimple_body_p.
24842 * passes.c (do_per_function_toporder): Use
24843 cgraph_function_with_gimple_body_p.
24844 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
24845 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
24846 (function_called_by_processed_nodes_p): Likewise.
24847
24848 2011-05-06 Joseph Myers <joseph@codesourcery.com>
24849
24850 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
24851 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
24852 entries.
24853 (mabi=): Replace with separate entries for mabi=altivec,
24854 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
24855 mabi=ieeelongdouble and mabi=ibmlongdouble.
24856 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
24857 check for -mabi=spe without SPE ABI support here.
24858 (rs6000_handle_option): Replace OPT_mabi_ handling with
24859 OPT_mabi_altivec and OPT_mabi_spe handling.
24860
24861 2011-05-06 Cary Coutant <ccoutant@google.com>
24862
24863 * dwarf2out.c (contains_subprogram_definition): New function.
24864 (should_move_die_to_comdat): Call it.
24865
24866 2011-05-06 Jeff Law <law@redhat.com>
24867
24868 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
24869 remove_ctrl_stmt_and_useless_edges.
24870 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
24871 (fixup_template_block, thread_single_edge): Likewise.
24872 (mark_threaded_blocks): Use THREAD_TARGET.
24873
24874 2011-05-06 Alan Modra <amodra@gmail.com>
24875
24876 PR target/48900
24877 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
24878 const0_rtx as the arg to the dummy __tls_get_addr libcall.
24879
24880 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
24881
24882 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
24883 constraint modifier to "r".
24884
24885 2011-05-06 Joseph Myers <joseph@codesourcery.com>
24886
24887 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
24888 fall through for OPT_mcmodel_.
24889
24890 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24891
24892 * config/s390/s390.c (s390_asm_trampoline_template): Comment
24893 instruction sizes.
24894 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
24895
24896 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
24897
24898 PR target/47930
24899 * config/arm/arm.opt (marm): Document it.
24900 (mthumb): Reject negative variant.
24901
24902 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
24903
24904 PR target/48898
24905 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
24906 Fix typo in "ccvt" variable name.
24907
24908 2011-05-06 Tristan Gingold <gingold@adacore.com>
24909
24910 PR target/48895
24911 * config/vms/vms-ar.c (main): Remove cwd variable.
24912
24913 2011-05-06 Jakub Jelinek <jakub@redhat.com>
24914
24915 PR debug/48902
24916 * var-tracking.c (prepare_call_arguments): Move else before #endif.
24917
24918 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
24919
24920 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
24921 * gimplify.c (gimplify_switch_expr): Likewise.
24922 * omp-low.c (expand_omp_sections): Likewise.
24923 * tree-eh.c (lower_try_finally_switch): Likewise.
24924 (lower_eh_dispatch): Likewise.
24925 * tree.h (build_case_label): Declare.
24926 * tree.c (build_case_label): Define.
24927
24928 2011-05-05 Jason Merrill <jason@redhat.com>
24929
24930 PR c++/40975
24931 * tree-inline.c (copy_tree_r): Use copy_statement_list.
24932 (copy_statement_list): Don't recurse.
24933 * stor-layout.c (copy_self_referential_tree_r): Don't allow
24934 STATEMENT_LIST.
24935
24936 2011-05-05 Joseph Myers <joseph@codesourcery.com>
24937
24938 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
24939 through from -mfpu= handling.
24940 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
24941
24942 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
24943
24944 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
24945 POST_MODIFY.
24946
24947 2011-05-05 Steve Ellcey <sje@cup.hp.com>
24948
24949 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
24950 for 11.31.
24951 (hppa[12]*-*-hpux11*): Ditto.
24952 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
24953 * config/ia64/hpux-unix2003.h: New.
24954 * config/pa/pa-hpux1131.opt: New.
24955 * config/pa/pa-hpux1131.h: New.
24956 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
24957 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
24958 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
24959
24960 2011-05-05 Jakub Jelinek <jakub@redhat.com>
24961
24962 PR debug/48853
24963 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
24964 instead of mode as 3rd argument to recursive call.
24965 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
24966 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
24967 VOIDmode.
24968 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
24969 don't give up if mode is Pmode and mem_mode is not VOIDmode.
24970 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
24971 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
24972
24973 2011-05-05 Julian Brown <julian@codesourcery.com>
24974
24975 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
24976 parenthesis in D-register case.
24977
24978 2011-05-05 Joseph Myers <joseph@codesourcery.com>
24979
24980 * opt-functions.awk (var_type_struct): Handle Enum options.
24981 * optc-gen.awk: Don't check range of variables of character type.
24982 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
24983 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
24984 rs6000_sdata_name, rs6000_explicit_options): Remove.
24985 (rs6000_option_override_internal): Check for -malign-power here.
24986 Use global_options_set instead of rs6000_explicit_options.
24987 (rs6000_parse_fpu_option): Remove.
24988 (rs6000_handle_option): Access variables via opts and opts_set
24989 pointers. Use error_at and warning_at. Add fall-through
24990 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
24991 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
24992 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
24993 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
24994 here. Don't use rs6000_parse_fpu_option.
24995 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
24996 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
24997 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
24998 (mrecip=): Use Var.
24999 (mspe): Use Var and Save.
25000 (mtraceback=): Use Enum and Var.
25001 (rs6000_traceback_type): New Enum and EnumValue entries.
25002 (mfloat-gprs=): Use Enum, Var and Save.
25003 (rs6000_float_gprs): New Enum and EnumValue entries.
25004 (mlong-double-): use Var and Save.
25005 (msched-costly-dep=, minsert-sched-nops=): Use Var.
25006 (malign-): Use Enum and Var.
25007 (rs6000_alignment_flags): New Enum and EnumValue entries.
25008 (mfpu=): Use Enum.
25009 (fpu_type_t): New Enum and EnumValue entries.
25010 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25011 global_options_set instead of rs6000_explicit_options.
25012 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25013 global_options_set instead of rs6000_explicit_options.
25014 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25015 global_options_set instead of rs6000_explicit_options.
25016 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
25017 global_options_set instead of rs6000_explicit_options.
25018 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
25019 global_options_set instead of rs6000_explicit_options.
25020 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25021 global_options_set instead of rs6000_explicit_options.
25022 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
25023 definition.
25024 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25025 global_options_set instead of rs6000_explicit_options.
25026 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
25027 (rs6000_cmodel): New Enum and EnumValue entries.
25028 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
25029 global_options_set instead of rs6000_explicit_options.
25030 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
25031 (mtls-size=): Use Enum and Var.
25032 (rs6000_tls_size): New Enum and EnumValue entries.
25033
25034 2011-05-05 Michael Matz <matz@suse.de>
25035
25036 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
25037 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
25038 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
25039 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
25040 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
25041 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
25042 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
25043 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
25044 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
25045 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
25046 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
25047 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
25048 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
25049 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
25050 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
25051 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
25052
25053 2011-05-05 Richard Guenther <rguenther@suse.de>
25054
25055 * expmed.c (expand_variable_shift): Rename to ...
25056 (expand_shift_1): ... this. Take an expanded shift amount.
25057 For rotates recurse directly not building trees for the shift amount.
25058 (expand_variable_shift): Wrap around expand_shift_1.
25059 (expand_shift): Adjust.
25060
25061 2011-05-05 Jakub Jelinek <jakub@redhat.com>
25062
25063 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
25064
25065 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
25066
25067 * tree.h (get_pending_sizes): Remove prototype.
25068 (put_pending_size): Likewise.
25069 (put_pending_sizes): Likewise.
25070 * stor-layout.c (pending_sizes): Delete.
25071 (get_pending_sizes): Likewise.
25072 (put_pending_size): Likewise.
25073 (put_pending_sizes): Likewise.
25074 (variable_size): Do not call put_pending_size and tidy up.
25075 * function.h (struct function): Remove dont_save_pending_sizes_p.
25076 * lto-streamer-in.c (input_function): Do not stream it.
25077 * lto-streamer-out.c (output_function): Likewise.
25078 * tree-inline.c (initialize_cfun): Do not copy it.
25079 * c-decl.c (store_parm_decls): Do not set it.
25080 * omp-low.c (create_task_copyfn): Likewise.
25081 * tree-optimize.c (tree_rest_of_compilation): Likewise.
25082
25083 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
25084
25085 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
25086 conditions.
25087 (*movdf_internal): Ditto.
25088 (*movdf_internal_nointeger): Ditto.
25089 (*movsf_internal): Ditto.
25090
25091 2011-05-05 Joseph Myers <joseph@codesourcery.com>
25092
25093 * c-decl.c (finish_decl): Don't call get_pending_sizes.
25094 (grokparm): Add parameter expr. Pass it to grokdeclarator.
25095 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
25096 (c_variable_size): Remove.
25097 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
25098 call put_pending_sizes.
25099 (get_parm_info): Add parameter expr. Use it to set
25100 arg_info->pending_sizes.
25101 (store_parm_decls): Use arg_info->pending_sizes instead or calling
25102 get_pending_sizes.
25103 * c-parser.c (c_parser_parms_declarator): Update call to
25104 c_parser_parms_list_declarator.
25105 (c_parser_parms_list_declarator): Take parameter expr. Update
25106 call to push_parm_decl. Update recursive call. Don't call
25107 get_pending_sizes. Update calls to get_parm_info.
25108 (c_parser_objc_method_definition): Update calls to
25109 c_parser_objc_method_decl and objc_start_method_definition.
25110 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
25111 (c_parser_objc_method_decl): Add parameter expr. Update call to
25112 grokparm.
25113 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
25114 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
25115 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
25116
25117 2011-05-05 Michael Hope <michael.hope@linaro.org>
25118
25119 PR pch/45979
25120 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
25121 __ARM_EABI__ hosts.
25122
25123 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25124
25125 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25126 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
25127 (spu_output_mi_thunk): New function.
25128
25129 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25130
25131 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
25132 targetm.asm_out.print_operand.
25133 * config/sol2.c: Include target.h.
25134
25135 2011-05-04 Jan Hubicka <jh@suse.cz>
25136
25137 * ipa-inline.c (reset_edge_caches): New function.
25138 (update_caller_keys): Add check_inlinablity_for; do not
25139 reset edge caches; remove now unnecesary loop.
25140 (update_callee_keys): Add comments; reset node_growth_cache of callee.
25141 (update_all_callee_keys): Likewise.
25142 (inline_small_functions): Sanity check cache; update code
25143 recomputing it.
25144
25145 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
25146
25147 PR rtl-optimization/47612
25148 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
25149 as the last insn of the sequence to be moved.
25150
25151 2011-05-04 Tobias Burnus <burnus@net-b.de>
25152
25153 PR fortran/48864
25154 * doc/invoke.texi (Ofast): Document that it
25155 enables Fortran's -fno-protect-parens.
25156
25157 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
25158
25159 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
25160
25161 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
25162
25163 * stor-layout.c (variable_size): Do not issue errors.
25164
25165 2011-05-04 Richard Guenther <rguenther@suse.de>
25166
25167 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
25168 for array-ref indices.
25169 (tree_coverage_counter_addr): Likewise.
25170 (build_fn_info_type): Use size_int for index types.
25171 (build_gcov_info): Likewise.
25172
25173 2011-05-04 Richard Guenther <rguenther@suse.de>
25174
25175 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
25176 to build_int_cst.
25177 * c-typeck.c (really_start_incremental_init): Use bitsize_int
25178 for constructor indices.
25179 (push_init_level): Likewise.
25180
25181 2011-05-04 Richard Guenther <rguenther@suse.de>
25182
25183 * explow.c (promote_mode): Move variable declarations before code.
25184
25185 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
25186
25187 * tree.h (build_function_type_array): Declare.
25188 (build_varargs_function_type_array): Declare.
25189 (build_function_type_vec, build_varargs_function_type_vec): Define.
25190 * tree.c (build_function_type_array_1): New function.
25191 (build_function_type_array): New function.
25192 (build_varargs_function_type_array): New function.
25193
25194 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
25195
25196 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
25197 before setting STMT_VINFO_TYPE.
25198
25199 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25200
25201 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
25202 instead of spu_pass_by_reference.
25203
25204 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25205
25206 * calls.c (emit_library_call_value_1): Invoke
25207 promote_function_mode hook on libcall arguments.
25208 * explow.c (promote_function_mode, promote_mode): Handle TYPE
25209 argument being NULL.
25210 * targhooks.c (default_promote_function_mode): Lisewise.
25211 * config/s390/s390.c (s390_promote_function_mode): Likewise.
25212 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
25213
25214 * doc/tm.texi: Document that TYPE argument might be NULL.
25215
25216 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
25217
25218 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
25219
25220 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
25221
25222 From Bernd Schmidt
25223 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
25224
25225 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25226
25227 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
25228 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
25229 Move ...
25230 * mips-tfile.c: ... here.
25231 Don't include coretypes.h, tm.h, filenames.h.
25232 (saber_stop): Remove definition and all calls.
25233 [__SABER__]: Remove.
25234 (__LINE__): Remove default.
25235 (Size_t, Ptrdiff_t): Remove definitions.
25236 Replace by size_t, ptrdiff_t.
25237 [!MIPS_DEBUGGING_INFO]: Remove.
25238 (SHASH_SIZE, THASH_SIZE): Remove defaults.
25239 (progname): Add const.
25240 (STATIC): Remove.
25241 Replace all uses by static.
25242 (ALIGN_SYMTABLE_OFFSET): Remove default.
25243 * mips-tdump.c: Don't include coretypes.h, tm.h.
25244 Remove !MIPS_IS_STAB guard.
25245 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
25246 $(TM_H), filenames.h dependencies.
25247 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
25248
25249 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
25250
25251 From Jie Zhang
25252 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
25253 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
25254
25255 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
25256
25257 From Bernd Schmidt
25258 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
25259 account and save/restore RETS.
25260 (PROFILE_BEFORE_PROLOGUE): Define.
25261 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
25262 the push insn to use predecrement.
25263
25264 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
25265
25266 From Jie Zhang
25267 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
25268
25269 2011-05-04 Nick Clifton <nickc@redhat.com>
25270
25271 * config/mn10300/mn10300.c: Include cfgloop.h.
25272 (DUMP): New macro.
25273 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
25274 Lcc or a FLcc insn into the instruction stream.
25275 (mn10300_block_contains_call): New function. Returns true if the
25276 given basic block contains a CALL insn.
25277 (mn10300_loop_contains_call_insn): New function. Returns true if
25278 the given loop contains a CALL insn.
25279 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
25280 to use the SETLB and Lcc or FLcc insns.
25281 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
25282 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
25283 * config/mn10300/mn10300.opt (msetlb): New option. Used to
25284 disable the SETLB optimization.
25285 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
25286 __SETLB__ or __NO_SETLB__.
25287 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
25288 (movsf_internal): Handle MDR register.
25289 (cmpsi): Make visible.
25290 (setlb): New pattern.
25291 (Lcc): New pattern.
25292 (FLcc): New pattern.
25293
25294 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
25295
25296 PR target/48860
25297 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
25298 for reg<->xmm moves.
25299 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
25300 (vec_concatv2di_rex64_sse): Ditto.
25301 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
25302 (*vec_extractv2di_1_rex64): Ditto.
25303
25304 Revert:
25305 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
25306
25307 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
25308 reg<->xmm moves.
25309 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
25310
25311 2011-05-04 Richard Guenther <rguenther@suse.de>
25312
25313 * tree.h (int_const_binop): Remove notrunc argument.
25314 * fold-const.c (int_const_binop): Remove notrunc argument. Always
25315 create integer constants that are properly truncated.
25316 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
25317 (const_binop): Remove zero notrunc argument to int_const_binop.
25318 (size_binop_loc): Likewise.
25319 (fold_div_compare): Likewise.
25320 (maybe_canonicalize_comparison_1): Likewise.
25321 (fold_comparison): Likewise.
25322 (fold_binary_loc): Likewise.
25323 (multiple_of_p): Likewise.
25324 * expr.c (store_constructor): Likewise.
25325 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
25326 (maybe_fold_stmt_addition): Likewise.
25327 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
25328 * stor-layout.c (layout_type): Likewise.
25329 * tree-data-ref.c (tree_fold_divides_p): Likewise.
25330 * tree-sra.c (build_ref_for_offset): Likewise.
25331 (build_user_friendly_ref_for_offset): Likewise.
25332 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
25333 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
25334 * tree-ssa-loop-niter.c (inverse): Likewise.
25335 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
25336 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
25337 * tree-switch-conversion.c (check_range): Likewise.
25338 (build_constructors): Likewise.
25339 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
25340 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
25341 (extract_range_from_assert): Likewise.
25342 (vrp_int_const_binop): Likewise.
25343 (extract_range_from_binary_expr): Likewise.
25344 (extract_range_from_unary_expr): Likewise.
25345 (check_array_ref): Likewise.
25346 (find_case_label_range): Likewise.
25347 (simplify_div_or_mod_using_ranges): Likewise.
25348 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
25349 comparing case labels for merging.
25350
25351 2011-05-03 Mark Wielaard <mjw@redhat.com>
25352
25353 * dwarf2out.c (debug_str_hash_forced): Removed.
25354 (gen_label_for_indirect_string): Removed.
25355 (get_debug_string_label): Removed.
25356 (AT_string_form): Generate label directly.
25357 (output_indirect_string): Test indirect_string_node for
25358 DW_FORM_strp instead of checking label and refcount.
25359 (prune_indirect_string): Removed.
25360 (prune_unused_types): Don't check debug_str_hash_forced or
25361 call prune_indirect_string.
25362
25363 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
25364
25365 PR other/48093
25366 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
25367
25368 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
25369
25370 PR debug/47994
25371 PR debug/47919
25372 * combine.c (try_combine): Skip debug insns at m_split tests.
25373
25374 2011-04-26 Mark Wielaard <mjw@redhat.com>
25375
25376 PR42288
25377 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
25378 when info_section_emitted.
25379
25380 2011-05-03 Joseph Myers <joseph@codesourcery.com>
25381
25382 * config/mips/mips-opts.h: New.
25383 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
25384 to mips-opts.h.
25385 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
25386 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
25387 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
25388 via opts pointer.
25389 * config/mips/mips.h (enum mips_code_readable_setting): Move to
25390 mips-opts.h.
25391 (mips_abi, mips_code_readable): Don't declare.
25392 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
25393 (mabi=): Use Enum and Var.
25394 (mips_abi): New Enum and EnumValue entries.
25395 (mcode-readable=): Use Enum and Var.
25396 (mips_code_readable_setting): New Enum and EnumValue entries.
25397 (mr10k-cache-barrier=): Use Enum and Var.
25398 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
25399
25400 2011-05-03 Jan Hubicka <jh@suse.cz>
25401
25402 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
25403 replace hash by pointer map.
25404 (cgraph_node_set_element_def, cgraph_node_set_element,
25405 const_cgraph_node_set_element, varpool_node_set_element_def,
25406 varpool_node_set_element, const_varpool_node_set_element): Remove.
25407 (free_cgraph_node_set, free_varpool_node_set): New function.
25408 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
25409 * tree-emutls.c: Free varpool node set.
25410 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
25411 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
25412 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
25413 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
25414 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
25415 Move here from ipa.c; implement using pointer_map
25416 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
25417 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
25418 debug_cgraph_node_set, varpool_node_set_new,
25419 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
25420 dump_varpool_node_set, debug_varpool_node_set):
25421 Move to ipa-uitls.c.
25422 * passes.c (ipa_write_summaries): Update.
25423
25424 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25425
25426 From Mike Frysinger:
25427 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
25428 bf542/bf544/bf547/bf548/bf549.
25429
25430 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
25431
25432 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
25433
25434 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25435
25436 From Bernd Schmidt:
25437 * config/bfin/bfin.md (MOVCC): New mode_macro.
25438 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
25439 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
25440 comments from generated assembly.
25441
25442 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25443
25444 From Bernd Schmidt
25445 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
25446 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
25447 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
25448 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
25449 * config/bfin/lib1funcs.asm (___muldi3): New function.
25450
25451 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25452
25453 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
25454 build_function_type_list instead of build_function_type.
25455 Rearrange initialization of `args' to do so.
25456
25457 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25458
25459 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
25460 instead of build_function_type.
25461
25462 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25463
25464 * config/rs6000/rs6000.c (spe_init_builtins): Call
25465 build_function_type_list instead of build_function_type.
25466 (paired_init_builtins, altivec_init_builtins): Likewise.
25467 (builtin_function_type): Likewise.
25468
25469 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25470
25471 * config/sh/sh.c (sh_media_init_builtins): Call
25472 build_function_type_list instead of build_function_type.
25473
25474 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25475
25476 * config/sparc/sparc.c (sparc_file_end): Call
25477 build_function_type_list instead of build_function_type.
25478
25479 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25480
25481 * config/alpha/alpha.c (alpha_init_builtins): Call
25482 build_function_type_list instead of build_function_type.
25483
25484 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25485
25486 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
25487 build_function_type_list instead of build_function_type.
25488
25489 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25490
25491 * config/iq2000/i2000.c (iq2000_init_builtins): Call
25492 build_function_type_list instead of build_function_type.
25493 Delete `endlink' variable.
25494
25495 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25496
25497 * config/avr/avr.c (avr_init_builtins): Call
25498 build_function_type_list instead of build_function_type.
25499
25500 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25501
25502 * config/picochip/picochip.c (picochip_init_builtins): Call
25503 build_function_type_list instead of build_function_type.
25504 Delete `endlink' variable.
25505
25506 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
25507
25508 * config/bfin/bfin.c (bfin_init_builtins): Call
25509 build_function_type_list instead of build_function_type.
25510
25511 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25512
25513 From Bernd Schmidt
25514 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
25515 that's not CONST_INT. Seemingly redundant check is due to PR39768.
25516
25517 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25518
25519 From Jie Zhang:
25520 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
25521 libbffastfp overrides libgcc when -mfast-fp.
25522
25523 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25524
25525 Originally from Bernd Schmidt
25526 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
25527 * config/bfin/bfin.c (override_options): Test it and error if
25528 TARGET_FDPIC.
25529
25530 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
25531
25532 Originally From Bernd Schmidt
25533 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
25534 FD-PIC.
25535
25536 2011-05-03 Jeff Law <law@redhat.com>
25537
25538 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
25539 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
25540 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
25541 than accessing AUX field directly. Free the AUX field before
25542 clearing it.
25543 (thread_block, thread_through_loop_header): Likewise.
25544 (thread_single_edge, mark_threaded_blocks): Likewise.
25545 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
25546 (register_jump_thread): Do not attempt to thread to a NULL edge.
25547
25548 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
25549
25550 * function.c (init_function_start): Call decide_function_section.
25551 * varasm.c (decide_function_section): New function.
25552 (assemble_start_function): When not using
25553 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
25554 or first_function_block_is_cold.
25555 * rtl.h (decide_function_section): Declare.
25556
25557 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
25558 Jakub Jelinek <jakub@redhat.com>
25559
25560 PR target/48774
25561 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
25562 only succeed if req_mode is the same as set_mode.
25563
25564 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
25565
25566 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
25567 * genemit.c (gen_exp): Handle RETURN.
25568 * emit-rtl.c (verify_rtx_sharing): Likewise.
25569 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
25570 * rtl.c (copy_rtx): RETURN is shared.
25571 * rtl.h (enum global_rtl_index): Add GR_RETURN.
25572 (ret_rtx): New.
25573 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
25574 * config/s390/s390.c (s390_emit_epilogue): Likewise.
25575 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
25576 * config/cris/cris.c (cris_expand_return): Likewise.
25577 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
25578 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
25579 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
25580 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
25581 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
25582 Likewise.
25583 * config/v850/v850.c (expand_epilogue): Likewise.
25584 * config/bfin/bfin.c (bfin_expand_call): Likewise.
25585 * config/arm/arm.md (epilogue): Likewise.
25586 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
25587 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
25588 variable to ret_reg.
25589
25590 2011-05-03 Richard Guenther <rguenther@suse.de>
25591
25592 PR lto/48846
25593 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
25594 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
25595 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
25596
25597 2011-05-03 Richard Guenther <rguenther@suse.de>
25598
25599 * c-decl.c (grokdeclarator): Instead of looking at
25600 TREE_OVERFLOW check if the constant fits in the index type.
25601
25602 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
25603
25604 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
25605 (vec_store_lanes<mode><mode>): Likewise.
25606
25607 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
25608
25609 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
25610 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
25611 convert_optab_index values.
25612 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
25613 * genopinit.c (optabs): Initialize the new optabs.
25614 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
25615 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
25616 (expand_STORE_LANES): New functions.
25617 * tree.h (build_array_type_nelts): Declare.
25618 * tree.c (build_array_type_nelts): New function.
25619 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
25620 (vect_model_load_cost): Likewise.
25621 (vect_store_lanes_supported, vect_load_lanes_supported)
25622 (vect_record_strided_load_vectors): Declare.
25623 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
25624 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
25625 (vect_transform_strided_load): Split out statement recording into...
25626 (vect_record_strided_load_vectors): ...this new function.
25627 * tree-vect-stmts.c (create_vector_array, read_vector_array)
25628 (write_vector_array, create_array_ref): New functions.
25629 (vect_model_store_cost): Add store_lanes_p argument.
25630 (vect_model_load_cost): Add load_lanes_p argument.
25631 (vectorizable_store): Try to use store-lanes functions for
25632 interleaved stores.
25633 (vectorizable_load): Likewise load-lanes and loads.
25634 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
25635 to vect_model_store_cost.
25636 (vect_build_slp_tree): Likewise vect_model_load_cost.
25637
25638 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
25639
25640 * hooks.h (hook_bool_mode_uhwi_false): Declare.
25641 * hooks.c (hook_bool_mode_uhwi_false): New function.
25642 * target.def (array_mode_supported_p): New hook.
25643 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
25644 * doc/tm.texi: Regenerate.
25645 * stor-layout.c (mode_for_array): New function.
25646 (layout_type): Use it.
25647 * config/arm/arm.c (arm_array_mode_supported_p): New function.
25648 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
25649
25650 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
25651
25652 PR target/48723
25653 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
25654 for -fstack-check if the size to allocate is negative.
25655
25656 2011-05-02 Lawrence Crowl <crowl@google.com>
25657
25658 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
25659 (timevar_cond_start): New for starting a timer only when it is not
25660 already running.
25661 (timevar_cond_stop): New for stopping a timer when it was not already
25662 running.
25663
25664 * timevar.c (timevar_stop): Enable start/stop timers to start again.
25665 (timevar_cond_start): New as above.
25666 (timevar_cond_stop): New as above.
25667
25668 * timevar.def: Add start/stop timers for compiler phases,
25669 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
25670 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
25671 and TV_PHASE_FINALIZE.
25672 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
25673 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
25674 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
25675 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
25676 Make unused TV_OVERLOAD into a start/stop timer.
25677
25678 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
25679 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
25680 to indicate that they are start/stop timers.
25681
25682 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
25683 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
25684 Move initialization to do_compile.
25685 (do_compile): Add initialization from above.
25686 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
25687
25688 * c-decl.c (c_write_global_declarations): Add start/stop of
25689 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
25690
25691 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
25692 or TV_PARSE_INLINE, as appropriate.
25693 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
25694 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
25695
25696 2011-05-02 Jason Merrill <jason@redhat.com>
25697
25698 PR c++/40975
25699 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
25700
25701 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
25702
25703 PR c/35445
25704 * c-decl.c (finish_decl): Only create a composite if the types are
25705 compatible.
25706
25707 2011-05-02 Joseph Myers <joseph@codesourcery.com>
25708
25709 * config/fr30/fr30-protos.h (Mmode): Don't define.
25710 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
25711 definition where used.
25712 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
25713 define. Expand definitions where used.
25714 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
25715 Expand definitions where used.
25716 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
25717 rx_function_arg, rx_function_arg_advance,
25718 rx_function_arg_boundary): Expand definitions of those macros.
25719 * config/v850/v850-protos.h (Mmode): Don't define. Expand
25720 definition where used.
25721
25722 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
25723
25724 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
25725 reg<->xmm moves.
25726 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
25727 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
25728 with *movv2sf_internal_rex64_avx.
25729 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
25730 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
25731 Use %v prefix in insn mnemonic to handle TARGET_AVX.
25732 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
25733 "vex" in "prefix" attribute calculation.
25734 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
25735
25736 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
25737
25738 PR target/47951
25739 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
25740 inputs match the output.
25741
25742 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
25743
25744 PR target/47955
25745 * config/m68k/m68k.c (m68k_expand_prologue): Set
25746 current_function_static_stack_size.
25747
25748 2011-05-02 Jan Hubicka <jh@suse.cz>
25749
25750 * lto-streamer.c (lto_streamer_cache_insert_1,
25751 lto_streamer_cache_lookup, lto_streamer_cache_create,
25752 lto_streamer_cache_delete): Use pointer map instead of hashtable.
25753 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
25754
25755 2011-05-02 Joseph Myers <joseph@codesourcery.com>
25756
25757 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
25758 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
25759 config/m68k/t-opts: New files.
25760 * config/m68k/m68k-tables.opt: New file (generated).
25761 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
25762 extra_options and m68k/t-opts to tmake_file.
25763 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
25764 (all_isas): Initialize using m68k-isas.def.
25765 (all_microarchs): Initialize using m68k-microarchs.def.
25766 (m68k_find_selection): Remove.
25767 (m68k_handle_option): Don't assert that global structures are in
25768 use. Use error_at. Access variables via opts pointer. Don't
25769 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
25770 directly for -m68020-40 and -m68020-60.
25771 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
25772 m68k_tune_entry here.
25773 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
25774 to m68k-opts.h.
25775 (m68k_library_id_string): Remove declaration.
25776 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
25777 (m68k_library_id_string): New Variable.
25778 (march=, mcpu=, mtune=): Use Enum and Var.
25779
25780 2011-05-02 Richard Guenther <rguenther@suse.de>
25781
25782 * varasm.c (output_constructor_regular_field): Compute zero-based
25783 index with double-ints. Make sure to ICE instead of producing
25784 wrong code.
25785 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
25786 in asserts. Properly use a signed type.
25787
25788 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
25789
25790 * config/i386/sse.md (V): New mode iterator.
25791 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
25792 TARGET_SSE2.
25793 (V_256): Rename from AVX256MODE.
25794 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
25795 condition to all users.
25796 (VF1): Ditto.
25797 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
25798 condition to all users.
25799 (VF_128): Make V4SF mode unconditional.
25800 (VF_256): Rename from AVX256MODEF2P.
25801 (VI4F_128): Rename from SSEMODE4S.
25802 (VI8F_128): Rename from SSEMODE2D.
25803 (VI4F_256): Rename from AVX256MODE8P.
25804 (VI8F_256): Rename from AVX256MODE4P.
25805 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
25806 (ssescalarmodesuffix): Remove SF and DF modes.
25807 (SSEMODE124): Remove.
25808 (SSEMODE1248): Ditto.
25809 (SSEMODEF2P): Ditto.
25810 (AVXMODEF2P): Ditto.
25811 (AVXMODEFDP): Ditto.
25812 (AVXMODEFSP): Ditto.
25813 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
25814 unconditional.
25815 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
25816 unconditional.
25817 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
25818 xop_pcmov_<mode>256. Use V mode iterator.
25819
25820 Adjust RTX patterns globally for renamed mode attributes.
25821
25822 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25823
25824 * haifa-sched.c (sched_emit_insn): Emit insn before first
25825 non-scheduled insn. Inform back-end about new insn. Add
25826 new insn to scheduled_insns list.
25827
25828 2011-05-02 Richard Guenther <rguenther@suse.de>
25829
25830 PR tree-optimization/48822
25831 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
25832 (process_scc): Indicate which iteration we start.
25833
25834 2011-05-02 Jan Hubicka <jh@suse.cz>
25835
25836 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
25837 (lto_section_overrun): New.
25838 * lto-section-out.c (append_block): Rename to ...
25839 (lto_append_block): ... this one; export.
25840 (lto_output_1_stream): Move lto lto-streamer.h
25841 (lto_output_data_stream): Update.
25842 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
25843 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
25844 functions.
25845
25846 2011-05-02 Richard Guenther <rguenther@suse.de>
25847
25848 * tree.c (tree_code_counts): New global array.
25849 (record_node_allocation_statistics): Count individual tree codes.
25850 (dump_tree_statistics): Dump individual code stats.
25851
25852 2011-05-01 Jan Hubicka <jh@suse.cz>
25853
25854 * ipa-inline.c (caller_growth_limits): Fix thinko when
25855 looking for largest stack frame.
25856 * ipa-inline.h (dump_inline_summary): Declare.
25857 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
25858 on stack usage.
25859 (dump_inline_summary): Export.
25860 (debug_inline_summary): Declare as DEBUG_FUNCTION.
25861
25862 2011-05-01 Anatoly Sokolov <aesok@post.ru>
25863
25864 * reginfo.c (memory_move_cost): Change rclass argument type form
25865 'enum reg_class' to reg_class_t.
25866 * reload.h (memory_move_cost): Update prototype.
25867 * postreload.c reload_cse_simplify_set): Change type dclass var to
25868 reg_class_t.
25869 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
25870 Update prototype.
25871 (ira_allocate_and_set_costs): Change aclass argument type form
25872 'enum reg_class' to reg_class_t.
25873 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
25874 Change aclass argument type to reg_class_t.
25875 (update_conflict_hard_reg_costs): Change type aclass and pref vars
25876 to reg_class_t.
25877 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
25878 memory_move_cost call.
25879
25880 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
25881 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
25882 Change type tmp var to reg_class_t.
25883
25884 2011-04-30 Jan Hubicka <jh@suse.cz>
25885
25886 * ipa-inline.c (can_inline_edge_p): Disregard limits when
25887 inlining into function with flatten attribute.
25888 (want_inline_small_function_p): Be more realistic about inlining
25889 cold calls where callee size grows.
25890
25891 2011-04-30 Jan Hubicka <jh@suse.cz>
25892
25893 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
25894 flags.
25895
25896 2011-04-30 Anatoly Sokolov <aesok@post.ru>
25897
25898 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
25899 PRINT_OPERAND_PUNCT_VALID_P): Remove.
25900 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
25901 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
25902 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
25903 (print_operand): Rename to...
25904 (sparc_print_operand): ...this. Make static. Adjust
25905 sparc_print_operand function call.
25906 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
25907 functions.
25908
25909 2011-04-30 Jan Hubicka <jh@suse.cz>
25910
25911 PR middle-end/48752
25912 * ipa-inline.c (early_inliner): Disable when doing late
25913 addition of function.
25914
25915 2011-04-30 Jakub Jelinek <jakub@redhat.com>
25916
25917 * dwarf2out.c (get_address_mode): New inline.
25918 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
25919 if not dwarf_strict emit
25920 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
25921 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
25922 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
25923 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
25924 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
25925 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
25926 mem_loc_descriptor callers.
25927 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
25928 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
25929 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
25930 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
25931 (base_types): New variable.
25932 (get_base_type_offset, calc_base_type_die_sizes,
25933 base_type_for_mode, mark_base_types, base_type_cmp,
25934 move_marked_base_types): New functions.
25935 (calc_die_sizes): Assert that die_offset is 0 or equal to
25936 next_die_offset.
25937 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
25938 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
25939 callers. If not dwarf_strict, call mem_loc_descriptor even for
25940 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
25941 (gen_subprogram_die): Don't give up on call site parameters
25942 with non-integral or large integral modes. Adjust
25943 mem_loc_descriptor callers.
25944 (prune_unused_types): Call prune_unused_types_mark on base_types
25945 vector entries.
25946 (resolve_addr): Call mark_base_types.
25947 (dwarf2out_finish): Call move_marked_base_types.
25948
25949 PR tree-optimization/48809
25950 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
25951 type.
25952 (gen_inbound_check): Don't compute index_expr - range_min in utype
25953 again, instead reuse SSA_NAME initialized in build_arrays.
25954 Remove two useless gsi_for_stmt calls.
25955
25956 2011-04-29 Jeff Law <law@redhat.com>
25957
25958 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
25959
25960 2011-04-29 Martin Jambor <mjambor@suse.cz>
25961
25962 * cgraph.h (cgraph_postorder): Remove declaration.
25963 * ipa-utils.h (ipa_free_postorder_info): Declare.
25964 (ipa_reverse_postorder): Likewise.
25965 * cgraphunit.c: Include ipa-utils.h.
25966 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
25967 * ipa-inline.c: Include ipa-utils.h.
25968 (ipa_inline): Update call to ipa_reverse_postorder.
25969 * ipa-pure-const.c (propagate_pure_const): Update call to
25970 ipa_reduced_postorder and ipa_print_order. Call
25971 ipa_free_postorder_info to clean up.
25972 (propagate_nothrow): Likewise.
25973 * ipa-reference.c (propagate): Removed a useless call to
25974 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
25975 and ipa_print_order. Call ipa_free_postorder_info to clean up.
25976 * ipa.c: Include ipa-utils.h.
25977 (ipa_profile): Update call to ipa_reverse_postorder.
25978 (cgraph_postorder): Moved to...
25979 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
25980 (ipa_utils_print_order): Renamed to ipa_print_order.
25981 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
25982 comments.
25983 (ipa_free_postorder_info): New function.
25984 * passes.c: Include ipa-utils.h.
25985 (do_per_function_toporder): Update call to ipa_reverse_postorder.
25986 (ipa_write_summaries): Likewise.
25987 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
25988 (cgraphunit.o): Likewise.
25989 (ipa.o): Likewise.
25990 (ipa-inline.o): Likewise.
25991
25992 2011-04-29 Jan Hubicka <jh@suse.cz>
25993
25994 * ipa-inline.h (clause_t): Turn into unsigned int.
25995 * ipa-inline-analysis.c (add_clause): Do more simplification.
25996 (and_predicates): Shortcut more cases.
25997 (predicates_equal_p): Move forward; check that clauses are properly
25998 ordered.
25999 (or_predicates): Shortcut more cases.
26000 (edge_execution_predicate): Rewrite as...
26001 (set_cond_stmt_execution_predicate): ... this function; handle
26002 __builtin_constant_p.
26003 (set_switch_stmt_execution_predicate): New .
26004 (compute_bb_predicates): New.
26005 (will_be_nonconstant_predicate): Update TODO.
26006 (estimate_function_body_sizes): Use compute_bb_predicates
26007 and free them later, always try to estimate if stmt is constant.
26008 (estimate_time_after_inlining, estimate_size_after_inlining):
26009 Gracefully handle optimized out edges.
26010 (read_predicate): Fix off by one error.
26011
26012 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
26013
26014 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
26015
26016 2011-04-27 Xinliang David Li <davidxl@google.com>
26017
26018 * tree-profile.c (init_ic_make_global_vars): Set
26019 tls attribute on ic vars.
26020 * coverage.c (coverage_end_function): Initialize
26021 function_list with zero.
26022
26023 2011-04-29 Richard Guenther <rguenther@suse.de>
26024
26025 * builtins.c (fold_builtin_classify_type): Use integer_type_node
26026 for the type of the result.
26027 (fold_builtin_isascii): Likewise.
26028 (fold_builtin_toascii): Use integer_type_node where appropriate.
26029 (fold_builtin_logb): Likewise.
26030 (fold_builtin_frexp): Likewise.
26031 (fold_builtin_strstr): Likewise.
26032 (fold_builtin_strpbrk): Likewise.
26033 (fold_builtin_fputs): Likewise.
26034 (fold_builtin_sprintf): Likewise.
26035 (fold_builtin_snprintf): Likewise.
26036 (fold_builtin_printf): Likewise.
26037 (do_mpfr_remquo): Use a proper type for the assigned constant.
26038 (do_mpfr_lgamma_r): Likewise.
26039 * dwarf2out.c (resolve_one_addr): Use size_int.
26040 * except.c (init_eh): Likewise.
26041 (assign_filter_values): Use integer_type_node for filter values.
26042 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
26043 indices.
26044 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
26045 for EH region numbers.
26046 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
26047 for the shift amount.
26048
26049 2011-04-29 Richard Guenther <rguenther@suse.de>
26050
26051 * expr.h (expand_shift): Rename to ...
26052 (expand_variable_shift): ... this.
26053 (expand_shift): Take a constant shift amount.
26054 * expmed.c (expand_shift): Rename to ...
26055 (expand_variable_shift): ... this.
26056 (expand_shift): New wrapper around expand_variable_shift.
26057 * expr.c (convert_move, emit_group_load_1, emit_group_store,
26058 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
26059 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
26060 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
26061 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
26062 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
26063 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
26064 emit_store_flag_1, emit_store_flag): Likewise.
26065 * builtins.c (expand_builtin_signbit): Likewise.
26066 * calls.c (load_register_parameters): Likewise.
26067 * function.c (assign_parm_setup_block): Likewise.
26068 * lower-subreg.c (resolve_shift_zext): Likewise.
26069 * optabs.c (widen_bswap, expand_abs_nojump,
26070 expand_one_cmpl_abs_nojump, expand_float): Likewise.
26071 * spu/spu.c (spu_expand_extv): Likewise.
26072 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
26073
26074 2011-04-29 Richard Guenther <rguenther@suse.de>
26075
26076 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
26077 for the remapped region number.
26078 * predict.c (build_predict_expr): Use integer_type_node for the
26079 predict kind.
26080 * fold-const.c (fold_binary_loc): Use integer_type_node for
26081 the shift amount. Use a proper type for the PLUS_EXPR operand.
26082
26083 2011-04-29 Michael Matz <matz@suse.de>
26084
26085 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
26086 other trees that just builtins.
26087 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
26088
26089 2011-04-29 Richard Guenther <rguenther@suse.de>
26090
26091 * tree-nested.c (get_trampoline_type): Use size_int.
26092 (get_nl_goto_field): Likewise.
26093 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
26094 for all indexes.
26095 (lower_eh_constructs_2): Likewise.
26096 (lower_resx): Likewise.
26097 (lower_eh_dispatch): Likewise.
26098 * tree-mudflap.c (mf_build_string): Use size_int.
26099 (mudflap_register_call): Use integer_type_node for the flag.
26100 (mudflap_enqueue_constant): Use size_int.
26101 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
26102 instead of rebuilding it.
26103
26104 2011-04-29 Richard Guenther <rguenther@suse.de>
26105
26106 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
26107 Handle OBJ_TYPE_REF.
26108 (find_func_aliases_for_call): Use it more consistently.
26109
26110 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
26111
26112 * haifa-sched.c (last_nondebug_scheduled_insn): New.
26113 (rank_for_schedule): Use it.
26114 (schedule_block): Set it.
26115
26116 2011-04-28 David Li <davidxl@google.com>
26117
26118 * tree.c (crc32_string): Use crc32_byte.
26119 (crc32_byte): New function.
26120 * tree.h (crc32_byte): New function.
26121 * gcov.c (read_graph_file): Handle new cfg_cksum.
26122 (read_count_file): Ditto.
26123 * profile.c (instrument_values): Ditto.
26124 (get_exec_counts): Ditto.
26125 (read_profile_edge_counts): Ditto.
26126 (compute_branch_probabilities): Ditto.
26127 (compute_value_histograms): Ditto.
26128 (branch_prob): Ditto.
26129 (end_branch_prob): Ditto.
26130 * coverage.c (read_counts_file): Ditto.
26131 (get_coverage_counts): Ditto.
26132 (tree_coverage_counter_addr): Ditto.
26133 (coverage_checksum_string): Ditto.
26134 (coverage_begin_output): Ditto.
26135 (coverage_end_function): Ditto.
26136 (build_fn_info_type): Ditto.
26137 (build_fn_info_value): Ditto.
26138 * libgcov.c (gcov_exit): Ditto.
26139 * gcov-dump.c (tag_function): Ditto.
26140 (compute_checksum): Remove.
26141
26142 2011-04-29 Alan Modra <amodra@gmail.com>
26143
26144 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
26145 unspec plus offset. Tidy macho code.
26146
26147 2011-04-29 Martin Jambor <mjambor@suse.cz>
26148
26149 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
26150 node instead of a decl. Update all callers.
26151 * cgraph.h: Update declaration.
26152
26153 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
26154
26155 PR tree-optimization/48765
26156 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
26157 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
26158 to indicate if loop aware SLP is being used. Scan the statements
26159 and update the vectorization factor according to the type of
26160 vectorization before statement analysis.
26161 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
26162 pass it to vect_analyze_loop_operations.
26163 (vectorizable_reduction): Set number of copies to 1 in case of pure
26164 SLP statement.
26165 * tree-vect-stmts.c (vectorizable_conversion,
26166 vectorizable_assignment, vectorizable_shift,
26167 vectorizable_operation, vectorizable_type_demotion,
26168 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
26169 Likewise.
26170 (vectorizable_condition): Move the check that it is not SLP
26171 vectorization before the number of copies check.
26172 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
26173 to vectorize the loop using SLP.
26174
26175 2011-04-28 Jakub Jelinek <jakub@redhat.com>
26176
26177 PR middle-end/48597
26178 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
26179 inline asm.
26180
26181 2011-04-28 Joseph Myers <joseph@codesourcery.com>
26182
26183 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
26184 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
26185 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
26186 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
26187 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
26188 linux*.h headers.
26189 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
26190 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26191 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26192 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26193 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
26194 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
26195 REG_NAME.
26196 * config/i386/linux.h (REG_NAME): Don't define.
26197 * config/i386/linux64.h (REG_NAME): Don't define.
26198 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
26199 Undefine before defining.
26200
26201 2011-04-28 Jan Hubicka <jh@suse.cz>
26202
26203 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
26204 nonconstant_names array.
26205 (estimate_function_body_sizes): Build nonconstant_names array; handle
26206 BUILT_IN_CONSTANT_P.
26207
26208 2011-04-28 Richard Guenther <rguenther@suse.de>
26209
26210 PR bootstrap/48804
26211 Revert
26212 2011-04-28 Richard Guenther <rguenther@suse.de>
26213
26214 * tree-ssa-structalias.c (solve_constraints): Build succ graph
26215 as late as possible.
26216
26217 2011-04-28 Richard Guenther <rguenther@suse.de>
26218
26219 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
26220 (debug_constraint): Do it here.
26221 (dump_constraints): And here.
26222 (rewrite_constraints): And here.
26223 (dump_constraint_edge): Remove.
26224 (dump_constraint_graph): Rewrite to produce DOT output.
26225 (solve_constraints): Build succ graph as late as possible.
26226 Dump constraint graphs before and after solving.
26227
26228 2011-04-28 Richard Guenther <rguenther@suse.de>
26229
26230 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
26231 New function split out from ...
26232 (find_func_aliases): ... here. Call it.
26233 (find_func_aliases_for_call): Likewise.
26234
26235 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
26236
26237 * internal-fn.h (internal_fn_name_array): Declare.
26238 (internal_fn_flags_array): Likewise.
26239
26240 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
26241
26242 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
26243 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
26244 Move from sse.md.
26245 (ssemodefsuffix): Remove.
26246 (ssevecmodesuffix): New mode attribute.
26247 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
26248 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
26249 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
26250 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
26251 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
26252 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
26253 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
26254 ssemodesuffix mode attribute.
26255 (float splitters): Use ssevecmodesuffix mode attribute.
26256 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
26257 (sseinsmode): Rename from avxvecmode.
26258 (avxsizesuffix): Rename from avxmodesuffix.
26259 (sseintvecmode): Rename from avxpermvecmode.
26260 (ssedoublevecmode): Rename from ssedoublesizemode.
26261 (ssehalfvecmode): Rename from avxhalfvecmode.
26262 (ssescalarmode): Rename from avxscalarmode.
26263 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
26264 templates for ssemodesuffix mode attribute.
26265 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
26266 mode attribute.
26267
26268 Adjust RTX patterns globally for renamed mode attributes.
26269
26270 2011-04-27 Jan Hubcika <jh@suse.cz>
26271
26272 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
26273 * ipa-inline-analysis.c: Include alloc-pool.h.
26274 (edge_predicate_pool): New.
26275 (trye_predicate_p): New function
26276 (false_predicate_p): New function.
26277 (add_clause): Sanity check that false clauses are "optimized";
26278 never add clauses to predicate that is already known to be false.
26279 (and_predicate): Use flase_predicate_p.
26280 (evaulate_predicate): Rename to ...
26281 (evaluate_predicate): ... this one; update all callers; assert
26282 that false is not listed among possible truths.
26283 (dump_predicate): Use true_predicate_p.
26284 (account_size_time): Use false_predicate_p.
26285 (evaulate_conditions_for_edge): Rename to ...
26286 (evaluate_conditions_for_edge) ... this one.
26287 (edge_set_predicate): New function.
26288 (inline_edge_duplication_hook): Duplicate edge predicates.
26289 (inline_edge_removal_hook): Free edge predicates.
26290 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
26291 (dump_inline_summary): Update.
26292 (estimate_function_body_sizes): Set edge predicates.
26293 (estimate_calls_size_and_time): Handle predicates.
26294 (estimate_callee_size_and_time): Update.
26295 (remap_predicate): Add toplev_predicate; update comment.
26296 (remap_edge_predicates): New function.
26297 (inline_merge_summary): Compute toplev predicate; update.
26298 (read_predicate): New function.
26299 (read_inline_edge_summary): Use it.
26300 (inline_read_section): Likewise.
26301 (write_predicate): New function.
26302 (write_inline_edge_summary): Use it.
26303 (inline_write_summary): Likewise.
26304 (inline_free_summary): Free alloc pool and edge summary vec.
26305
26306 2011-04-27 Richard Guenther <rguenther@suse.de>
26307
26308 * tree-ssa-structalias.c (changed_count): Remove.
26309 (changed): Use a bitmap.
26310 (unify_nodes): Adjust.
26311 (do_sd_constraint): Likewise.
26312 (do_ds_constraint): Likewise.
26313 (do_complex_constraint): Likewise.
26314 (solve_graph): Likewise.
26315
26316 2011-04-27 Jan Hubicka <jh@suse.cz>
26317
26318 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
26319
26320 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
26321
26322 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
26323 (avx_vperm2f128_*_operand): Ditto.
26324 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
26325 Use avx_vpermilp_parallel in insn condition.
26326 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
26327 Use avx_vperm2f128_parallel in insn condition.
26328
26329 2011-04-27 Richard Guenther <rguenther@suse.de>
26330
26331 * Makefile.in (tree-ssa-structalias.o): Remove
26332 gt-tree-ssa-structalias.h dependency.
26333 (GTFILES): Remove tree-ssa-structalias.c.
26334 * tree.c (allocate_decl_uid): New function.
26335 (make_node_stat): Use it.
26336 (copy_node_stat): Likewise.
26337 * tree.h (allocate_decl_uid): Declare.
26338 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
26339 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
26340 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
26341 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
26342 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
26343 (struct heapvar_map): Likewise.
26344 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
26345 heapvar_insert): Likewise.
26346 (make_heapvar_for): Rename to ...
26347 (make_heapvar): ... this. Simplify.
26348 (fake_var_decl_obstack): New global var.
26349 (build_fake_var_decl): New function.
26350 (make_constraint_from_heapvar): Adjust.
26351 (handle_lhs_call): Likewise.
26352 (create_function_info_for): Likewise.
26353 (intra_create_variable_infos): Likewise.
26354 (init_alias_vars): Allocate fake_var_decl_obstack.
26355 (init_alias_heapvars, delete_alias_heapvars): Remove.
26356 (compute_points_to_sets): Do not call init_alias_heapvars.
26357 (ipa_pta_execute): Likewise.
26358 (delete_points_to_sets): Free fake_var_decl_obstack.
26359
26360 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26361
26362 * config/spu/divmovti4.c (union qword_UTItype): New data type.
26363 (si_from_UTItype, si_to_UTItype): New functions.
26364 (__udivmodti4): Use them to implement type-punning.
26365 * config/spu/multi3.c (union qword_TItype): New data type.
26366 (si_from_TItype, si_to_TItype): New functions.
26367 (__multi3): Use them to implement type-punning.
26368
26369 2011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26370
26371 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
26372
26373 2011-04-27 Jan Hubicka <jh@suse.cz>
26374
26375 * ipa-prop.c (function_insertion_hook_holder): New holder.
26376 (ipa_add_new_function): New function.
26377 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
26378 Register/deregister holder.
26379
26380 2011-04-27 Richard Guenther <rguenther@suse.de>
26381
26382 PR tree-optimization/48772
26383 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
26384
26385 2011-04-27 Richard Guenther <rguenther@suse.de>
26386
26387 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
26388 TARGET_MEM_REF handling.
26389
26390 2011-04-27 Nick Clifton <nickc@redhat.com>
26391
26392 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
26393 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
26394 (REG_CLASS_NAMES): Likewise.
26395 (REG_CLASS_CONTENTS): Likewise.
26396 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
26397 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
26398 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
26399 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
26400 (EVEN_REGS): New macro. Alias for QUAD_REGS.
26401 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
26402 duplicate register classes.
26403 (frv_class_likely_spilled_p): Likewise.
26404 (frv_register_move_cost): Likewise.
26405
26406 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
26407 end of the regno_reg_class array.
26408
26409 2011-04-27 Jakub Jelinek <jakub@redhat.com>
26410
26411 PR c/48742
26412 * c-typeck.c (build_binary_op): Don't wrap arguments if
26413 int_operands is true.
26414
26415 2011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
26416
26417 PR target/48767
26418 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
26419 targetm.calls.must_pass_in_stack for void type.
26420
26421 2011-04-26 Jan Hubicka <jh@suse.cz>
26422
26423 * cgraphbuild.c (build_cgraph_edges): Update call
26424 of cgraph_create_edge and cgraph_create_indirect_edge.
26425 * cgraph.c (cgraph_create_edge_including_clones,
26426 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
26427 cgraph_update_edges_for_call_stmt_node): Do not take nest
26428 argument; do not initialize call_stmt_size/time.
26429 (dump_cgraph_node): Do not dump nest.
26430 (cgraph_clone_edge): Do not take loop_nest argument;
26431 do not propagate it; do not clone call_stmt_size/time.
26432 (cgraph_clone_node): Likewise.
26433 (cgraph_create_virtual_clone): Update.
26434 * cgraph.h (struct cgraph_edge): Remove
26435 call_stmt_size/call_stmt_time/loop_nest.
26436 (cgraph_create_edge, cgraph_create_indirect_edge,
26437 cgraph_create_edge_including_clones, cgraph_clone_node): Update
26438 prototype.
26439 * tree-emutls.c (gen_emutls_addr): Update.
26440 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
26441 loop_nest; handle indirect calls, too.
26442 (clone_inlined_nodes): Do not care about updating inline summaries.
26443 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
26444 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
26445 stream call_stmt_size/call_stmt_time/loop_nest.
26446 * ipa-inline.c (edge_badness): Update.
26447 (ipa_inline): dump summaries after inlining.
26448 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
26449 New.
26450 (inline_edge_summary): New function.
26451 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
26452 (inline_edge_removal_hook): Handle edge summaries.
26453 (inline_edge_duplication_hook): New hook.
26454 (inline_summary_alloc): Alloc hooks.
26455 (initialize_growth_caches): Do not register removal hooks.
26456 (free_growth_caches); Do not free removal hook.
26457 (dump_inline_edge_summary): New function.
26458 (dump_inline_summary): Use it.
26459 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
26460 (inline_update_callee_summaries): New function.
26461 (inline_merge_summary): Use it.
26462 (do_estimate_edge_time, do_estimate_edge_growth): Update.
26463 (read_inline_edge_summary): New function.
26464 (inline_read_section): Use it.
26465 (write_inline_edge_summary): New function.
26466 (inline_write_summary): Use it.
26467 (inline_free_summary): Free edge new holders.
26468 * tree-inline.c (copy_bb): Update.
26469
26470 2011-04-26 Jason Merrill <jason@redhat.com>
26471
26472 * tree-eh.c (lower_try_finally_switch): Create the label along with
26473 the CASE_LABEL_EXPR.
26474
26475 2011-04-26 David S. Miller <davem@davemloft.net>
26476 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26477
26478 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
26479 * configure: Regenerate.
26480
26481 2011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
26482
26483 PR target/48258
26484 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
26485 reduction.
26486 (VEC_reduc): New code iterator and splitters for vector reduction.
26487 (VEC_reduc_name): Ditto.
26488 (VEC_reduc_rtx): Ditto.
26489 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
26490 (reduc_<VEC_reduc_name>_v4sf): Ditto.
26491
26492 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
26493 support for extracting SF on VSX.
26494
26495 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
26496 generating xscvspdp.
26497 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
26498 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
26499 double add, minimum, maximum vector reduction.
26500 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
26501 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
26502 optimize double vector reduction.
26503 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
26504
26505 2011-04-26 Joseph Myers <joseph@codesourcery.com>
26506
26507 * config/fr30/fr30.h (inhibit_libc): Don't define.
26508 * config/m32r/m32r-protos.h: Correct comment.
26509 * config/v850/v850.h (GHS_default_section_names,
26510 GHS_current_section_names): Use tree, not union tree_node *.
26511
26512 2011-04-26 Xinliang David Li <davidxl@google.com>
26513
26514 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
26515 * c-family/c-opts.c (c_common_handle_option): Set
26516 warn_maybe_uninitialized.
26517 * opts.c (common_handle_option): Ditto.
26518 * common.opt: New option.
26519 * tree-ssa.c (warn_uninit): Add one more parameter.
26520 (warn_uninitialized_var): Pass warning code.
26521 * tree-flow.h: Interface change.
26522
26523 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26524
26525 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
26526 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
26527 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
26528
26529 2011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26530
26531 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
26532 * config/mips/mips.opt (mmips-tfile): Remove.
26533
26534 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
26535 mips-tdump reference to ...
26536 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
26537 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
26538 reference by Tru64 UNIX.
26539
26540 2011-04-26 Jakub Jelinek <jakub@redhat.com>
26541
26542 PR debug/48768
26543 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
26544 is error_mark_node, set value to NULL.
26545
26546 PR tree-optimization/48734
26547 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
26548 if return value from maybe_fold_*_comparsions isn't something
26549 the code is prepared to handle.
26550
26551 2011-04-26 Uros Bizjak <ubizjak@gmail.com>
26552
26553 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
26554 mode check.
26555 (ext_QIreg_nomode_operands): Remove.
26556 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
26557 (*andsi_1): Ditto.
26558 (*andhi_1): Ditto.
26559
26560 2011-04-26 Andrew Stubbs <ams@codesourcery.com>
26561
26562 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
26563
26564 2011-04-26 Richard Guenther <rguenther@suse.de>
26565
26566 * c-typeck.c (build_unary_op): Do not expand array-refs via
26567 pointer arithmetic. Only adjust qualifiers for function types.
26568
26569 2011-04-26 Richard Guenther <rguenther@suse.de>
26570
26571 PR middle-end/48694
26572 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
26573 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
26574 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
26575 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
26576
26577 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
26578
26579 * doc/extend.texi: Document __underlying_type.
26580
26581 2011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
26582
26583 * config/rs6000/titan.md (automata_option "progress"): Remove.
26584
26585 2011-04-25 Jeff Law <law@redhat.com>
26586
26587 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
26588
26589 2011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
26590
26591 * system.h (ENUM_BITFIELD): Remove.
26592
26593 2011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
26594 Eric Botcazou <ebotcazou@adacore.com>
26595
26596 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
26597 for STORE_FLAG_VALUE==-1 case.
26598
26599 2011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
26600
26601 PR target/43804
26602 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
26603 LEGITIMATE_PIC_OPERAND_P.
26604
26605 2011-04-24 Jan Hubicka <jh@suse.cz>
26606
26607 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
26608 WPA hack.
26609 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
26610 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
26611 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
26612 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
26613 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
26614 Sanity check predicate length.
26615 (remap_predicate): Likewise; sanity check jump functions.
26616 (inline_read_section, inline_write_summary): Sanity check
26617 predicate length.
26618
26619 2011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
26620
26621 PR other/48748
26622 * doc/extend.texi (Type Traits): Document __is_standard_layout,
26623 __is_literal_type, and __is_trivial; update throughout about
26624 possibly cv-qualified void types.
26625
26626 2011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
26627
26628 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
26629 testsuite and make it version agnostic.
26630
26631 2011-04-22 Jan Hubicka <jh@suse.cz>
26632
26633 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
26634
26635 2011-04-23 Jakub Jelinek <jakub@redhat.com>
26636
26637 PR c/48685
26638 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
26639 to VOID_TYPE even around MODIFY_EXPR.
26640
26641 2011-04-22 Mike Stump <mikestump@comcast.net>
26642
26643 * gensupport.c (read_md_rtx): Fix typo in comment.
26644 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
26645 comment.
26646
26647 2011-04-22 Jan Hubicka <jh@suse.cz>
26648
26649 * gengtype.c (open_base_files): Add ipa-inline.h include.
26650 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
26651 ipa-prop.c; update all uses.
26652 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
26653 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
26654 merge summary of inlined function into former caller.
26655 * ipa-inline.c (max_benefit): Remove.
26656 (edge_badness): Compensate for removal of benefits.
26657 (update_caller_keys): Use
26658 reset_node_growth_cache/reset_edge_growth_cache.
26659 (update_callee_keys): Likewise.
26660 (update_all_callee_keys): Likewise.
26661 (inline_small_functions): Do not collect max_benefit; do not reset
26662 estimated_growth; call free_growth_caches and initialize_growth_caches.
26663 * ipa-inline.h (struct condition, type clause_t, struct predicate,
26664 struct size_time_entry): New structures.
26665 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
26666 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
26667 and estimated_growth.
26668 (edge_growth_cache_entry): New structure.
26669 (node_growth_cache, edge_growth_cache): New global vars.
26670 (estimate_growth): Turn into inline.
26671 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
26672 initialize_growth_caches, free_growth_caches): Declare.
26673 (estimate_edge_growth): Rewrite.
26674 (estimate_edge_time): Implement as inline cache lookup.
26675 (reset_node_growth_cache, reset_edge_growth_cache): New inline
26676 functions.
26677 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
26678 (NUM_CONDITIONS): New constant.
26679 (predicate_conditions): New enum.
26680 (IS_NOT_CONSTANT): New constant.
26681 (edge_removal_hook_holder): New var.
26682 (node_growth_cache, edge_growth_cache): New global vars.
26683 (true_predicate, single_cond_predicate, false_predicate,
26684 not_inlined_predicate, add_condition, add_clause, and_predicates,
26685 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
26686 dump_clause, dump_predicate, account_size_time,
26687 evaulate_conditions_for_edge): New functions.
26688 (inline_summary_alloc): Move to heap.
26689 (inline_node_removal_hook): Clear condition and entry vectors.
26690 (inline_edge_removal_hook): New function.
26691 (initialize_growth_caches, free_growth_caches): New function.
26692 (dump_inline_summary): Update.
26693 (edge_execution_predicate): New function.
26694 (will_be_nonconstant_predicate): New function.
26695 (estimate_function_body_sizes): Compute BB and constantness predicates.
26696 (compute_inline_parameters): Do not clear estimated_growth.
26697 (estimate_edge_size_and_time): New function.
26698 (estimate_calls_size_and_time): New function.
26699 (estimate_callee_size_and_time): New function.
26700 (remap_predicate): New function.
26701 (inline_merge_summary): New function.
26702 (do_estimate_edge_time): New function based on...
26703 (estimate_edge_time): ... this one.
26704 (do_estimate_edge_growth): New function.
26705 (do_estimate_growth): New function based on....
26706 (estimate_growth): ... this one.
26707 (inline_analyze_function): Analyze after deciding on jump functions.
26708 (inline_read_section): New function.
26709 (inline_read_summary): Use it.
26710 (inline_write_summary): Write all the new data.
26711 * ipa-prop.c (ipa_get_param_decl_index): Export.
26712 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
26713 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
26714 Declare.
26715 (ipa_get_lattice): Move here from ipa-cp.c
26716 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
26717 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
26718 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
26719 cgraph_edge_inlinable_p): Remove.
26720 * cgraphunit.c: Include ipainline.h
26721 (cgraph_process_new_functions): Update call of
26722 compute_inline_parameters.
26723
26724 2011-04-22 Richard Guenther <rguenther@suse.de>
26725
26726 * tree.c (build_int_cst): Properly create canonicalized integer
26727 constants.
26728 (build_int_cst_type): Remove scary comments.
26729
26730 2011-04-22 Xinliang David Li <davidxl@google.com>
26731
26732 * toplev.c (process_options): Enable -Werror=coverage-mismatch
26733 by default when -Wno-error is not specified.
26734 * opts-global.c (decode_options): Remove call to
26735 control_warning_options.
26736
26737 2011-04-22 Jakub Jelinek <jakub@redhat.com>
26738
26739 PR tree-optimization/48717
26740 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
26741 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
26742
26743 2011-04-22 Joseph Myers <joseph@codesourcery.com>
26744
26745 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
26746 definition where used.
26747
26748 2011-04-22 Jakub Jelinek <jakub@redhat.com>
26749
26750 PR c/48716
26751 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
26752 TREE_STATIC variables declared inside of some OpenMP construct.
26753
26754 2011-04-22 Martin Jambor <mjambor@suse.cz>
26755
26756 PR middle-end/48585
26757 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
26758
26759 2011-04-22 Alexander Monakov <amonakov@ispras.ru>
26760
26761 PR c/36750
26762 * c-typeck.c (pop_init_level): Do not warn about initializing
26763 with ` = {0}'.
26764
26765 2011-04-22 Alan Modra <amodra@gmail.com>
26766
26767 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
26768 when returning call_cookie.
26769 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
26770 pointers, to functions with no more vector args than the current
26771 function, and some non-local calls for ABI_V4.
26772 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
26773 sibcall_nonlocal_aix64): Combine to ..
26774 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
26775 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
26776 (sibcall_value_nonlocal_aix<mode>): ..likewise.
26777 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
26778 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
26779 operand.
26780 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
26781 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
26782 sibcall_value_symbolic_64): Delete.
26783
26784 2011-04-21 Xinliang David Li <davidxl@google.com>
26785
26786 * cgraph.h: Remove pid.
26787 * cgraph.c: Remove pid.
26788 * value-prof.c (init_node_map): New function.
26789 (del_node_map): New function.
26790 (find_func_by_funcdef_no): New function.
26791 (gimple_ic_transform): Call new function.
26792 * cgraphunit.c (cgraph_finalize_function): Remove pid.
26793 * function.c (get_last_funcdef_no): New function.
26794 * function.h (get_last_funcdef_no): New function.
26795 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
26796 to libgcov function.
26797 (tree-profiling): Call node map init and delete function.
26798
26799 2011-04-21 Ian Lance Taylor <iant@google.com>
26800
26801 * godump.c (go_format_type): Use exported Go name for anonymous
26802 field name.
26803
26804 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
26805
26806 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
26807 Call builtin_function_type_list instead of builtin_function_type.
26808 (UNARY, BINARY, TRINARY, QUAD): Likewise.
26809
26810 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
26811
26812 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
26813 build_function_type_list instead of build_function_type.
26814 Delete variable `endlink'.
26815
26816 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
26817
26818 * config/s390/s390.c (s390_init_builtins): Call
26819 build_function_type_list instead of build_function_type.
26820
26821 2011-04-21 Nathan Froyd <froydnj@codesourcery.com>
26822
26823 * config/ia64/ia64.c (ia64_init_builtins): Call
26824 build_function_type_list instead of builtin_function_type.
26825
26826 2011-04-21 Easwaran Raman <eraman@google.com>
26827
26828 * cfgexpand.c (stack_var): Remove OFFSET...
26829 (add_stack_var): ...and its reference here...
26830 (expand_stack_vars): ...and here.
26831 (stack_var_cmp): Sort by descending order of size.
26832 (partition_stack_vars): Change heuristic.
26833 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
26834 (dump_stack_var_partition): Add newline after each partition.
26835
26836 2011-04-21 Dimitrios Apostolou <jimis@gmx.net>
26837 Jeff Law <law@redhat.com>
26838
26839 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
26840 * gengtype.c (matching_file_name_substitute): Likewise.
26841
26842 2011-04-21 Richard Guenther <rguenther@suse.de>
26843
26844 PR lto/48703
26845 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
26846
26847 2011-04-21 Eric Botcazou <ebotcazou@adacore.com>
26848
26849 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
26850
26851 2011-04-21 Richard Guenther <rguenther@suse.de>
26852
26853 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
26854 file name.
26855
26856 2011-04-21 Richard Guenther <rguenther@suse.de>
26857
26858 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
26859 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
26860 Use DECL_P, not SSA_VAR_P.
26861 (ptr_derefs_may_alias_p): Likewise.
26862 (ptr_deref_may_alias_ref_p_1): Likewise.
26863 (decl_refs_may_alias_p): Likewise.
26864 (refs_may_alias_p_1): Likewise.
26865 (ref_maybe_used_by_call_p_1): Likewise.
26866 (call_may_clobber_ref_p_1): Likewise.
26867 (indirect_ref_may_alias_decl_p): Assume indirect refrences
26868 are either MEM_REF or TARGET_MEM_REF.
26869 (indirect_refs_may_alias_p): Likewise.
26870 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
26871 for MEM_EXPR of indirect calls.
26872
26873 2011-04-21 Tristan Gingold <gingold@adacore.com>
26874
26875 * vmsdbgout.c (write_srccorr): Compute file length from the string.
26876 (dst_file_info_struct): Remove flen field.
26877 (lookup_filename): Remove code that set flen field.
26878
26879 2011-04-21 Tristan Gingold <gingold@adacore.com>
26880
26881 * config/ia64/ia64.c (ia64_start_function): Add a guard.
26882
26883 2011-04-21 Uros Bizjak <ubizjak@gmail.com>
26884
26885 PR target/48708
26886 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
26887 vec_extract and vec_concat for non-SSE4_1 targets.
26888
26889 2011-04-21 Richard Guenther <rguenther@suse.de>
26890
26891 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
26892 return statements.
26893
26894 2011-04-21 Joseph Myers <joseph@codesourcery.com>
26895
26896 * config/i386/cygming.h (union tree_node, TREE): Don't define or
26897 undefine.
26898 (FILE): Don't undefine.
26899
26900 2011-04-21 Joseph Myers <joseph@codesourcery.com>
26901
26902 * config/alpha/alpha.c (struct machine_function): Use rtx, not
26903 struct rtx_def *.
26904 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
26905 struct rtx_def *.
26906 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
26907 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
26908 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
26909 rtx_def *.
26910 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
26911 definitions where used.
26912 * config/microblaze/microblaze.h (struct microblaze_args): Use
26913 rtx, not struct rtx_def *.
26914 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
26915 rtx_def *.
26916 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
26917 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
26918 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
26919 not struct rtx_def *.
26920 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
26921 struct rtx_def *.
26922 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
26923 rtx_def *.
26924 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
26925
26926 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
26927
26928 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
26929 operand_equal_p to compare DR_BASE_ADDRESSes.
26930 (vect_check_interleaving): Likewise.
26931
26932 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
26933
26934 PR target/46329
26935 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
26936 for all Neon struct constants.
26937
26938 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
26939
26940 * target.def (legitimate_constant_p): New hook.
26941 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
26942 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
26943 * doc/tm.texi: Regenerate.
26944 * hooks.h (hook_bool_mode_rtx_true): Declare.
26945 * hooks.c (hook_bool_mode_rtx_true): Define.
26946 * system.h (LEGITIMATE_CONSTANT_P): Poison.
26947 * calls.c (precompute_register_parameters): Replace uses of
26948 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
26949 (emit_library_call_value_1): Likewise.
26950 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
26951 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
26952 * ira-costs.c (scan_one_insn): Likewise.
26953 * recog.c (general_operand, immediate_operand): Likewise.
26954 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
26955 * reload1.c (init_eliminable_invariants): Likewise.
26956
26957 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
26958 mode argument.
26959 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
26960 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
26961 argument.
26962 (TARGET_LEGITIMATE_CONSTANT_P): Define.
26963 * config/alpha/predicates.md (input_operand): Update call to
26964 alpha_legitimate_constant_p.
26965
26966 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
26967 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
26968 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
26969 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
26970 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
26971 (arm_legitimate_constant_p): New functions.
26972 (arm_cannot_force_const_mem): Make static.
26973
26974 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
26975
26976 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
26977 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
26978 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
26979 instead of bfin_legitimate_constant_p.
26980 (bfin_legitimate_constant_p): Make static. Add a mode argument.
26981 (TARGET_LEGITIMATE_CONSTANT_P): Define.
26982
26983 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
26984
26985 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
26986
26987 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
26988 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
26989 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
26990 (frv_legitimate_constant_p): Make static. Add a mode argument.
26991
26992 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
26993 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
26994 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
26995
26996 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
26997 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
26998 * config/i386/i386.c (legitimate_constant_p): Rename to...
26999 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
27000 argument.
27001 (ix86_cannot_force_const_mem): Update accordingly.
27002 (ix86_legitimate_address_p): Likewise.
27003 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27004 * config/i386/i386.md: Update commentary.
27005
27006 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
27007 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
27008 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27009 (ia64_legitimate_constant_p): Make static. Add a mode argument.
27010
27011 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
27012
27013 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
27014 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
27015 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27016 (lm32_legitimate_constant_p): Make static. Add a mode argument.
27017
27018 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
27019 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
27020 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
27021
27022 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
27023 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27024 (m32r_legitimate_constant_p): New function.
27025
27026 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
27027 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
27028 LEGITIMATE_CONSTANT_P.
27029 (LEGITIMATE_CONSTANT_P): Delete.
27030 * config/m68k/m68k.c (m68k_expand_prologue): Call
27031 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
27032 (m68k_legitimate_constant_p): New function.
27033 * config/m68k/m68k.md: Update comments.
27034
27035 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
27036 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27037 (mcore_legitimate_constant_p): New function.
27038
27039 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
27040 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
27041 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
27042 Add a mode argument.
27043 (mep_legitimate_address): Update accordingly.
27044 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27045
27046 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
27047 Delete.
27048 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
27049 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
27050 static. Check OP's mode for VOIDmode.
27051 (microblaze_legitimate_constant_p): New function.
27052 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27053
27054 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
27055 * config/mips/mips.c (mips_legitimate_constant_p): New function.
27056 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
27057 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27058 * config/mips/predicates.md: Update comments.
27059
27060 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
27061 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
27062 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27063 (mmix_legitimate_constant_p): Make static, return a bool, and take
27064 a mode argument.
27065 (mmix_print_operand_address): Update accordingly.
27066
27067 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
27068 Delete.
27069 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
27070 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
27071 static. Add a mode argument.
27072 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27073
27074 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
27075
27076 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
27077 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27078 (pa_legitimate_constant_p): New function.
27079
27080 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
27081
27082 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
27083 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27084 (pdp11_legitimate_constant_p): New function.
27085
27086 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
27087 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27088 (rs6000_legitimate_constant_p): New function.
27089
27090 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
27091 (rx_legitimate_constant_p): ...this.
27092 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
27093 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
27094 (rx_legitimate_constant_p): ...this.
27095 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27096 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
27097
27098 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
27099 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
27100 * config/s390/s390.c (legitimate_constant_p): Rename to...
27101 (s390_legitimate_constant_p): ...this. Make static, return a bool,
27102 and add a mode argument.
27103 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27104
27105 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
27106
27107 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
27108 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27109 (sh_legitimate_constant_p): New function.
27110
27111 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
27112 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
27113 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27114 (legitimate_constant_p): Rename to...
27115 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
27116 argument.
27117 (constant_address_p): Update accordingly.
27118
27119 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
27120 argument and return a bool.
27121 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
27122 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27123 (spu_legitimate_constant_p): Add a mode argument and return a bool.
27124 (spu_rtx_costs): Update accordingly.
27125 * config/spu/predicates.md (vec_imm_operand): Likewise.
27126
27127 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
27128
27129 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
27130 * config/v850/v850.c (v850_legitimate_constant_p): New function.
27131 (TARGET_LEGITIMATE_CONSTANT_P): Define.
27132
27133 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
27134 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
27135 * config/vax/vax.c (legitimate_constant_p): Likewise.
27136
27137 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
27138 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
27139 (xtensa_legitimate_constant_p): New function.
27140
27141 2011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
27142
27143 * target.def (cannot_force_const_mem): Add a mode argument.
27144 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
27145 * doc/tm.texi: Regenerate.
27146 * hooks.h (hook_bool_mode_rtx_false): Declare.
27147 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
27148 (hook_bool_mode_const_rtx_true): Likewise.
27149 (hook_bool_mode_rtx_false): New function.
27150 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
27151 to be non-VOID. Update call to cannot_force_const_mem.
27152 (find_reloads): Update accordingly.
27153 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
27154 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
27155 argument.
27156 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
27157 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
27158 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
27159 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
27160 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
27161 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
27162 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
27163 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
27164 (m68k_cannot_force_const_mem): ...this new function.
27165 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
27166 argument.
27167 (mips_const_insns, mips_legitimize_const_move): Update calls.
27168 (mips_secondary_reload_class): Likewise.
27169 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
27170 (pa_cannot_force_const_mem): ...this new function.
27171 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
27172 (rs6000_cannot_force_const_mem): ...this new function.
27173 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
27174 argument.
27175 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
27176 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
27177 to...
27178 (xtensa_cannot_force_const_mem): ...this new function.
27179
27180 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
27181
27182 * config/mips/mips.c (mips16_build_function_stub): Call
27183 build_function_type_list instead of build_function_type.
27184 (mips16_build_call_stub): Likewise.
27185
27186 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
27187
27188 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
27189 instead of build_function_type.
27190
27191 2011-04-20 Nathan Froyd <froydnj@codesourcery.com>
27192
27193 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
27194 instead of build_function_type.
27195
27196 2011-04-20 Uros Bizjak <ubizjak@gmail.com>
27197
27198 PR target/48678
27199 * config/i386/i386.md (insv): Change operand 0 constraint to
27200 "register_operand". Change operand 1 and 2 constraint to
27201 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
27202 * config/i386/sse.md (sse4_1_pinsrb): Export.
27203 (sse2_pinsrw): Ditto.
27204 (sse4_1_pinsrd): Ditto.
27205 (sse4_1_pinsrq): Ditto.
27206 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
27207 * config/i386/i386.c (ix86_expand_pinsr): New.
27208
27209 2011-04-20 Easwaran Raman <eraman@google.com>
27210
27211 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
27212 containing union type only with -fstrict-aliasing.
27213
27214 2011-04-20 Jim Meyering <meyering@redhat.com>
27215
27216 Remove useless if-before-free tests.
27217 * calls.c (expand_call, save_area): Likewise.
27218 * cfgcleanup.c (try_forward_edges): Likewise.
27219 * collect2.c (collect_execute): Likewise.
27220 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
27221 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
27222 * coverage.c (coverage_checksum_string): Likewise.
27223 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
27224 * cselib.c (cselib_init): Likewise.
27225 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
27226 (df_set_clean_cfg): Likewise.
27227 * function.c (free_after_compilation): Likewise.
27228 * gcc.c (do_spec_1, main): Likewise.
27229 * gcov.c (create_file_names): Likewise.
27230 * gensupport.c (identify_predicable_attribute): Likewise.
27231 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
27232 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
27233 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
27234 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
27235 * ipa-pure-const.c (local_pure_const): Likewise.
27236 * ipa-reference.c (propagate): Likewise.
27237 * ira-costs.c (free_ira_costs): Likewise.
27238 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
27239 * matrix-reorg.c (mat_free): Likewise.
27240 * prefix.c (get_key_value): Likewise.
27241 * profile.c (compute_value_histograms): Likewise.
27242 * reload1.c (free_reg_equiv): Likewise.
27243 * sched-deps.c (free_deps): Likewise.
27244 * sel-sched-ir.c (fence_clear): Likewise.
27245 * sese.c (set_rename, if_region_set_false_region): Likewise.
27246 * tree-data-ref.c (free_rdg): Likewise.
27247 * tree-eh.c (lower_try_finally): Likewise.
27248 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
27249 * tree-ssa-live.c (delete_var_map): Likewise.
27250 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
27251 * tree-ssa-pre.c (phi_trans_add): Likewise.
27252
27253 2011-04-20 Jakub Jelinek <jakub@redhat.com>
27254
27255 PR tree-optimization/48611
27256 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
27257 beyond ERT_MUST_NOT_THROW region.
27258
27259 2011-04-20 Catherine Moore <clm@codesourcery.com>
27260
27261 * config/mips/mips.opt (mfix-24k): New.
27262 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
27263 * config/mips/mips.md (length): Increase by 4 for stores if
27264 fixing 24K errata.
27265 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
27266 all noreorder if fixing 24K errata.
27267 * doc/invoke.texi: Document mfix-24k.
27268
27269 2011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
27270
27271 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
27272 quad-word modes, reduce to 9-bit index range when above 1016 limit.
27273
27274 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
27275
27276 * config/arm/arm.c (arm_gen_constant): Move movw support ....
27277 (const_ok_for_op): ... to here.
27278
27279 2011-04-20 Kai Tietz <ktietz@redhat.com>
27280
27281 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
27282 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
27283
27284 2011-04-20 Andrew Stubbs <ams@codesourcery.com>
27285
27286 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
27287
27288 2011-04-20 Richard Guenther <rguenther@suse.de>
27289
27290 PR tree-optimization/47892
27291 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
27292 are if-convertible.
27293
27294 2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
27295
27296 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
27297
27298 2011-04-20 Tristan Gingold <gingold@adacore.com>
27299
27300 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
27301
27302 2011-04-20 Georg-Johann Lay <avr@gjlay.de>
27303
27304 PR target/18145
27305
27306 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
27307 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
27308 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
27309 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
27310 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
27311
27312 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
27313 New prototype.
27314
27315 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
27316 (avr_asm_named_section, avr_asm_output_aligned_common,
27317 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
27318 New functions to update...
27319 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
27320 (avr_asm_init_sections): Overwrite section callbacks for
27321 data_section, bss_section.
27322 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
27323 from here to...
27324 (avr_file_end): ...here.
27325
27326 2011-04-20 Richard Guenther <rguenther@suse.de>
27327
27328 PR middle-end/48695
27329 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
27330 objects and types here. Adjust for their offset before comparing.
27331
27332 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
27333
27334 * tree-vect-stmts.c (vectorizable_store): Only chain one related
27335 statement per copy.
27336
27337 2011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
27338
27339 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
27340 (GIMPLE_H): Include $(INTERNAL_FN_H).
27341 (OBJS-common): Add internal-fn.o.
27342 (internal-fn.o): New rule.
27343 * internal-fn.def: New file.
27344 * internal-fn.h: Likewise.
27345 * internal-fn.c: Likewise.
27346 * gimple.h: Include internal-fn.h.
27347 (GF_CALL_INTERNAL): New gf_mask.
27348 (gimple_statement_call): Put fntype into a union with a new
27349 internal_fn field.
27350 (gimple_build_call_internal): Declare.
27351 (gimple_build_call_internal_vec): Likewise.
27352 (gimple_call_same_target_p): Likewise.
27353 (gimple_call_internal_p): New function.
27354 (gimple_call_internal_fn): Likewise.
27355 (gimple_call_fntype): Return null for internal calls.
27356 (gimple_call_set_fntype): Assert that the function is not internal.
27357 (gimple_call_set_fn): Likewise.
27358 (gimple_call_set_fndecl): Likewise.
27359 (gimple_call_set_internal_fn): New function.
27360 (gimple_call_addr_fndecl): Handle null functions.
27361 (gimple_call_return_type): Likewise null types.
27362 * gimple.c (gimple_build_call_internal_1): New function.
27363 (gimple_build_call_internal): Likewise.
27364 (gimple_build_call_internal_vec): Likewise.
27365 (gimple_call_same_target_p): Likewise.
27366 (gimple_call_flags): Handle calls to internal functions.
27367 (gimple_call_fnspec): New function.
27368 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
27369 (gimple_has_side_effects): Handle null functions.
27370 (gimple_rhs_has_side_effects): Likewise.
27371 (gimple_call_copy_skip_args): Handle calls to internal functions.
27372 * cfgexpand.c (expand_call_stmt): Likewise.
27373 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
27374 * gimple-fold.c (gimple_fold_call): Handle null functions.
27375 (gimple_fold_stmt_to_constant_1): Don't fold
27376 calls to internal functions.
27377 * gimple-low.c (gimple_check_call_args): Handle calls to internal
27378 functions.
27379 * gimple-pretty-print.c (dump_gimple_call): Likewise.
27380 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
27381 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
27382 (do_warn_unused_result): Likewise.
27383 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
27384 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
27385 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
27386 the target of a call.
27387 (initialize_hash_element): Update accordingly.
27388 (hashable_expr_equal_p): Use gimple_call_same_target_p.
27389 (iterative_hash_hashable_expr): Handle calls to internal functions.
27390 (print_expr_hash_elt): Likewise.
27391 * tree-ssa-pre.c (can_value_number_call): Likewise.
27392 (eliminate): Handle null functions.
27393 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
27394 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
27395 (find_func_aliases): Likewise.
27396 * value-prof.c (gimple_ic_transform): Likewise.
27397 (gimple_indirect_call_to_profile): Likewise.
27398 * lto-streamer-in.c (input_gimple_stmt): Likewise.
27399 * lto-streamer-out.c (output_gimple_stmt): Likewise.
27400
27401 2011-04-19 Jan Hubicka <jh@suse.cz>
27402
27403 * ipa-inline-transform.c (save_inline_function_body): Add comments.
27404 * ipa-inline.c (inline_small_functions): Compute summaries first,
27405 populate heap later.
27406
27407 2011-04-19 Jan Hubicka <jh@suse.cz>
27408
27409 * cgraph.h (save_inline_function_body): Remove.
27410 * ipa-inline-transform.c: New file, broke out of...
27411 * ipa-inline.c: ... this one; Update toplevel comment.
27412 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
27413 make global.
27414 (update_noncloned_frequencies): Move to ipa-inline-transform.c
27415 (cgraph_mark_inline_edge): Rename to inline_call; move to
27416 ipa-inline-transform.c.
27417 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
27418 move to ipa-inline-transform.c
27419 (recursive_inlining, inline_small_functions, flatten_function,
27420 ipa_inline, inline_always_inline_functions,
27421 early_inline_small_functions): Update.
27422 (inline_transform): Move to ipa-inline-transform.c.
27423 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
27424 Declare.
27425 * Makefile.in (ipa-inline-transform.o): New file.
27426 * cgraphunit.c (save_inline_function_body): Move to
27427 ipa-inline-transform.c
27428
27429 2011-04-19 DJ Delorie <dj@redhat.com>
27430
27431 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
27432 registers if we already know there aren't any.
27433 (m32c_emit_epilogue): Don't emit a barrier here.
27434 (m32c_emit_eh_epilogue): Likewise.
27435 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
27436 operands at expand time.
27437 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
27438 int" wchar type.
27439 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
27440 duplicates. Provide aliases instead.
27441 * config/m32c/prologue.md (eh_return): Emit a barrier here.
27442 (eh_epilogue): Add a "(return)" here as a hint to other parts of
27443 the compiler.
27444
27445 2011-04-19 Anatoly Sokolov <aesok@post.ru>
27446
27447 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
27448 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
27449 (general_or_i64_p, sparc_register_move_cost): New function.
27450
27451 2011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27452
27453 * doc/install.texi (Configuration, --enable-threads): Remove mach.
27454 Add lynx, mipssde. Sort table.
27455
27456 2011-04-19 Xinliang David Li <davidxl@google.com>
27457
27458 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
27459 not negative.
27460
27461 2011-04-19 Jakub Jelinek <jakub@redhat.com>
27462
27463 PR target/48678
27464 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
27465 is a SUBREG with non-MODE_INT mode inside of it.
27466
27467 2011-04-19 Martin Jambor <mjambor@suse.cz>
27468
27469 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
27470 also according to actual contants.
27471 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
27472 (gimple_fold_call): Use it.
27473 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
27474
27475 2011-04-19 Martin Jambor <mjambor@suse.cz>
27476
27477 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
27478 non-pointer assignments.
27479
27480 2011-04-19 Martin Jambor <mjambor@suse.cz>
27481
27482 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
27483 account anc_offset and otr_type from the indirect edge info.
27484 * ipa-prop.c (get_ancestor_addr_info): New function.
27485 (compute_complex_ancestor_jump_func): Assignment analysis moved to
27486 get_ancestor_addr_info, call it.
27487 (ipa_note_param_call): Do not initialize information about polymorphic
27488 calls, return the indirect call graph edge. Remove the last
27489 parameter, adjust all callers.
27490 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
27491 parameters. Initialize polymorphic information in the indirect edge.
27492
27493 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
27494
27495 PR lto/48148
27496 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
27497 the types if they have different enumeration identifiers.
27498
27499 2011-04-19 Jan Hubicka <jh@suse.cz>
27500
27501 * cgraph.h (cgraph_optimize_for_size_p): Declare.
27502 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
27503 * predict.c (cgraph_optimize_for_size_p): Break out from ...
27504 (optimize_function_for_size_p) ... here.
27505
27506 2011-04-19 Richard Guenther <rguenther@suse.de>
27507
27508 PR lto/48207
27509 * tree.c (free_lang_data): Do not reset the decl-assembler-name
27510 langhook.
27511
27512 2011-04-19 Eric Botcazou <ebotcazou@adacore.com>
27513
27514 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
27515 if DECL_NO_INLINE_WARNING_P is set on the function.
27516
27517 2011-04-19 Bernd Schmidt <bernds@codesourcery.com>
27518
27519 PR fortran/47976
27520 * reload1.c (inc_for_reload): Return void. All callers changed.
27521 (emit_input_reload_insns): Don't try to delete previous output
27522 reloads to a register, or record spill_reg_store for autoincs.
27523
27524 2011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
27525
27526 * gengtype.h: Updated copyright year.
27527 (struct input_file_st): Add inpisplugin field.
27528 (type_fileloc): New function.
27529 * gengtype.c
27530 (write_typed_struct_alloc_def): Add gcc_assert.
27531 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
27532 (write_typed_alloc_defns): Don't output for plugin files.
27533 (input_file_by_name): Clear inpisplugin field.
27534 (main): Set inpisplugin field for plugin files.
27535
27536 2011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
27537
27538 * gengtype-state.c (string_eq): New.
27539 (read_state): Use string_eq instead of strcmp when creating the
27540 state_ident_tab.
27541
27542 2011-04-19 Wei Guozhi <carrot@google.com>
27543
27544 PR target/47855
27545 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
27546 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
27547 linkage.
27548 * config/arm/constraints.md (Uu): New constraint.
27549 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
27550
27551 2011-04-19 Tristan Gingold <gingold@adacore.com>
27552
27553 * config.gcc (-*-*-*vms): Added.
27554 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
27555 definitions moved.
27556 * config/vms/vms-ld.c: New file.
27557 * config/vms/vms-ar.c: New file.
27558 * config/vms/t-vmsnative: New file.
27559
27560 2011-04-18 Xinliang David Li <davidxl@google.com>
27561
27562 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
27563
27564 2011-04-18 Jakub Jelinek <jakub@redhat.com>
27565
27566 PR middle-end/48661
27567 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
27568 if TREE_TYPE (v) is non-NULL.
27569
27570 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
27571 gimple_get_virt_mehtod_for_binfo.
27572 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
27573 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
27574 callers.
27575 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
27576
27577 2011-04-18 Michael Matz <matz@suse.de>
27578 Steve Ellcey <sje@cup.hp.com>
27579
27580 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
27581 use its mode as source mode if it isn't VOIDmode.
27582
27583 2011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
27584
27585 * doc/passes.texi: Fill crossref nodes.
27586
27587 2011-04-18 Jim Meyering <meyering@redhat.com>
27588
27589 Fix doubled-word typos in comments and strings
27590 * config/alpha/vms-unwind.h: s/for for/for/
27591 * config/arm/unwind-arm.h: Likewise.
27592 * config/microblaze/microblaze.c: Likewise.
27593 * config/sh/constraints.md: s/in in/in/
27594 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
27595
27596 2011-04-18 Uros Bizjak <ubizjak@gmail.com>
27597
27598 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
27599 (AVX_FLOAT_MODE_P): Ditto.
27600 (AVX128_VEC_FLOAT_MODE_P): Ditto.
27601 (AVX256_VEC_FLOAT_MODE_P): Ditto.
27602 (AVX_VEC_FLOAT_MODE_P): Ditto.
27603 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
27604 (UNSPEC_MASKSTORE): Ditto.
27605 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
27606 Merge from <sse>_movmsk<ssemodesuffix> and
27607 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
27608 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
27609 iterator.
27610 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
27611 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
27612 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
27613
27614 2011-04-18 Jan Hubicka <jh@suse.cz>
27615
27616 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
27617
27618 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
27619 (want_inline_function_called_once_p): Break out the logic from
27620 ipa_inline.
27621 (edge_badness): Ensure that profile is not misupdated.
27622 (lookup_recursive_calls): Prioritize by call frequencies.
27623 (inline_small_functions): Move program size estimates here;
27624 actually process whole queue even when unit growth has been
27625 met. (to properly compute inline_failed reasons and for the
27626 case unit size decrease.) Revisit comments on recursive inlining.
27627 (ipa_inline): Remove unit summary code; first inline hot calls
27628 of functions called once, cold calls next.
27629 (order, nnodes): Remove unused variables.
27630 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
27631 (GTFILES): Remove ipa-inline.c
27632 * sel-sched.c (fill_insns): Silence uninitialized var warning.
27633
27634 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
27635
27636 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
27637
27638 2011-04-18 Jie Zhang <jie@codesourcery.com>
27639 Richard Earnshaw <rearnsha@arm.com>
27640
27641 * arm.c (neon_builtin_type_bits): Remove.
27642 (typedef enum neon_builtin_mode): New.
27643 (T_MAX): Don't define.
27644 (typedef enum neon_builtin_datum): Remove bits, codes[],
27645 num_vars and base_fcode. Add mode, code and fcode.
27646 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
27647 VAR10): Change accordingly.
27648 (neon_builtin_data[]): Change accordingly
27649 (arm_init_neon_builtins): Change accordingly.
27650 (neon_builtin_compare): Remove.
27651 (locate_neon_builtin_icode): Remove.
27652 (arm_expand_neon_builtin): Change accordingly.
27653
27654 * arm.h (enum arm_builtins): Move to ...
27655 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
27656
27657 * arm.c (arm_builtin_decl): Declare.
27658 (TARGET_BUILTIN_DECL): Define.
27659 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
27660 (arm_builtin_decls[]): New.
27661 (arm_init_neon_builtins): Store builtin declarations in
27662 arm_builtin_decls[].
27663 (arm_init_tls_builtins): Likewise.
27664 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
27665 (arm_builtin_decl): New.
27666
27667 2011-04-18 Richard Guenther <rguenther@suse.de>
27668
27669 * tree.c (upper_bound_in_type): Build properly canonicalized
27670 INTEGER_CSTs.
27671 (lower_bound_in_type): Likewise.
27672
27673 2011-04-18 Richard Guenther <rguenther@suse.de>
27674
27675 * gimple.h (gimple_call_addr_fndecl): New function.
27676 (gimple_call_fndecl): Use it.
27677 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
27678 for direct calls.
27679 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
27680 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
27681
27682 2011-04-18 Richard Guenther <rguenther@suse.de>
27683
27684 PR middle-end/48650
27685 * tree.c (build_string): STRING_CST is now derived from tree_typed.
27686
27687 2011-04-18 Eric Botcazou <ebotcazou@adacore.com>
27688
27689 PR lto/48492
27690 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
27691 DECL_IN_CONSTANT_POOL without RTL.
27692
27693 2011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
27694 Ira Rosen <ira.rosen@linaro.org>
27695
27696 PR target/48252
27697 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
27698 to match neon_vzip/vuzp/vtrn_internal.
27699 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
27700 outputs explicitly dependent on both inputs.
27701 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
27702
27703 2011-04-18 Jakub Jelinek <jakub@redhat.com>
27704
27705 PR tree-optimization/48616
27706 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
27707 whether the shift is by scalar or vector based on whether all SLP
27708 scalar stmts have the same rhs.
27709
27710 2011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
27711
27712 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
27713 memory operands.
27714
27715 2011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
27716
27717 PR target/43700
27718 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
27719 registers.
27720
27721 2011-04-17 Jan Hubicka <jh@suse.cz>
27722
27723 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
27724 * cgrpahunit.c (cgraph_finalize_function): Do not set
27725 finalized_by_frontend.
27726 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
27727 finalized_by_frontend.
27728
27729 2011-04-17 Jan Hubicka <jh@suse.cz>
27730
27731 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
27732 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
27733 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
27734 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
27735 method.
27736 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
27737 gimple-fold.c
27738 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
27739
27740 2011-04-17 Eric Botcazou <ebotcazou@adacore.com>
27741
27742 PR lto/48538
27743 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
27744 is non-null before accessing it.
27745 (input_cgraph): Remove trailing spaces.
27746
27747 2011-04-17 Revital Eres <revital.eres@linaro.org>
27748
27749 * params.def (sms-min-sc): New param flag.
27750 * modulo-sched.c (sms_schedule): Use it.
27751 * doc/invoke.texi (sms-min-sc): Document it.
27752
27753 2011-04-17 Jan Hubicka <jh@suse.cz>
27754
27755 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
27756 present, also set gimple_call_set_cannot_inline.
27757 * ipa-inline.c: Update toplevel comment.
27758 (MAX_TIME): Remove.
27759 (cgraph_clone_inlined_nodes): Fix linebreaks.
27760 (cgraph_check_inline_limits): Restructure to ...
27761 (caller_growth_limits): ... this one; be more tolerant
27762 on growth in nested inline chains; add explanatory comment;
27763 fix stack accounting thinko introduced by previous patch.
27764 (cgraph_default_inline_p): Remove.
27765 (report_inline_failed_reason): New function.
27766 (can_inline_edge_p): New function.
27767 (can_early_inline_edge_p): New function.
27768 (leaf_node_p): Move upwards in file.
27769 (want_early_inline_function_p): New function.
27770 (want_inline_small_function_p): New function.
27771 (want_inline_self_recursive_call_p): New function.
27772 (cgraph_edge_badness): Rename to ...
27773 (edge_badness) ... this one; fix linebreaks.
27774 (update_edge_key): Update call of edge_baddness; add
27775 detailed dump about queue updates.
27776 (update_caller_keys): Use can_inline_edge_p and
27777 want_inline_small_function_p.
27778 (cgraph_decide_recursive_inlining): Rename to...
27779 (recursive_inlining): Use can_inline_edge_p and
27780 want_inline_self_recursive_call_p; simplify and remove no longer
27781 valid FIXME.
27782 (cgraph_set_inline_failed): Remove.
27783 (add_new_edges_to_heap): Use can_inline_edge_p and
27784 want_inline_small_function_p.
27785 (cgraph_decide_inlining_of_small_functions): Rename to ...
27786 (inline_small_functions): ... this one; cleanup; use
27787 can/want predicates; cleanup debug ouput; work edges till fibheap
27788 is exhausted and do not stop once unit growth is reached; remove
27789 later loop processing remaining edges.
27790 (cgraph_flatten): Rename to ...
27791 (flatten_function): ... this one; use can_inline_edge_p
27792 and can_early_inline_edge_p predicates.
27793 (cgraph_decide_inlining): Rename to ...
27794 (ipa_inline): ... this one; remove unreachable nodes before
27795 inlining functions called once; simplify the pass.
27796 (cgraph_perform_always_inlining): Rename to ...
27797 (inline_always_inline_functions): ... this one; use
27798 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
27799 (cgraph_decide_inlining_incrementally): Rename to ...
27800 (early_inline_small_functions): ... this one; simplify
27801 using new predicates; cleanup; make dumps prettier.
27802 (cgraph_early_inlining): Rename to ...
27803 (early_inliner): newer inline regular functions into always-inlines;
27804 fix updating of call stmt summaries.
27805 (pass_early_inline): Update for new names.
27806 (inline_transform): Fix formating.
27807 (gate_cgraph_decide_inlining): Rename to ...
27808 (pass_ipa_inline): ... this one.
27809 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
27810 * ipa-inline-analysis.c (dump_inline_summary): Update.
27811 (compute_inline_parameters): Do not compute disregard_inline_limits;
27812 look for mismatching arguments.
27813 (estimate_growth): Fix handlig of non-trivial self recursion.
27814 (inline_read_summary): Do not read info->disregard_inline_limits.
27815 (inline_write_summary): Do not write info->disregard_inline_limits.
27816 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
27817 and move all checks into can_inline_edge_p predicate; re-enable code
27818 comparing optimization levels.
27819 (expand_call_inline): Do not test inline_forbidden_into_p.
27820 * Makefile.in (ipa-inline.o): Update arguments.
27821
27822 2011-04-17 Revital Eres <revital.eres@linaro.org>
27823
27824 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
27825
27826 2011-04-17 Revital Eres <revital.eres@linaro.org>
27827
27828 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
27829
27830 2011-04-17 Michael Matz <matz@suse.de>
27831
27832 PR tree-optimization/48622
27833 PR lto/48645
27834 * ipa-inline-analysis.c (inline_read_summary): Read size/time
27835 in same order as they're written.
27836
27837 2011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27838
27839 * config/pa/predicates.md: Reorganize and simplify predicates.
27840 Eliminate duplicate code checks.
27841 (arith_operand): Rename to arith14_operand
27842 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
27843 * config/pa/pa.md: Use renamed operands.
27844 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
27845 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
27846 arith11_operand, adddi3_operand, indexed_memory_operand,
27847 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
27848 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
27849 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
27850 move_dest_operand, move_src_operand, prefetch_cc_operand,
27851 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
27852 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
27853 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
27854 div_operand, int5_operand, movb_comparison_operator,
27855 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
27856 arith_double_operand, ireg_operand, lhs_lshift_operand,
27857 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
27858 integer_store_memory_operand): Likewise.
27859 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
27860 (integer_store_memory_operand, read_only_operand,
27861 function_label_operand, borx_reg_operand,
27862 non_hard_reg_operand): Likewise.
27863 (eq_neq_comparison_operator): Delete unused operator.
27864 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
27865 function_label_operand.
27866 (emit_move_sequence): Likewise.
27867
27868 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
27869
27870 * config/i386/sse.md (sseunpackmode): New mode attribute.
27871 (ssepackmode): Ditto.
27872 (vec_pack_trunc_<mode>): Macroize expander from
27873 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
27874 (vec_unpacks_lo_<mode>): Macroize expander from
27875 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
27876 (vec_unpacks_hi_<mode>): Macroize expander from
27877 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
27878 (vec_unpacku_lo_<mode>): Macroize expander from
27879 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
27880 (vec_unpacku_hi_<mode>): Macroize expander from
27881 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
27882 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
27883 ix86_expand_sse4_unpack.
27884 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
27885
27886 2011-04-16 Jan Hubicka <jh@suse.cz>
27887
27888 * cgraphbuild.c: Include ipa-inline.h.
27889 (reset_inline_failed): Use initialize_inline_failed.
27890 * cgraph.c: Include ipa-inline.h.
27891 (cgraph_create_node_1): Do not initialize estimated_growth.
27892 (initialize_inline_failed): More to ipa-inline-analysis.c
27893 (dump_cgraph_node): Do not dump inline flags.
27894 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
27895 and disregard_inline_limits flags.
27896 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
27897 time, size, estimated_growth.
27898 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
27899 Update.
27900 * cgraphunit.c (cgraph_decide_is_function_needed): Use
27901 DECL_DISREGARD_INLINE_LIMITS.
27902 (cgraph_analyze_function): Do not initialize
27903 node->local.disregard_inline_limits.
27904 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
27905 inlinable, versionable and disregard_inline_limits.
27906 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
27907 cgraph_check_inline_limits, cgraph_default_inline_p,
27908 cgraph_edge_badness, update_caller_keys, update_callee_keys,
27909 add_new_edges_to_heap): Update.
27910 (cgraph_decide_inlining_of_small_function): Update; set
27911 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
27912 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
27913 cgraph_decide_inlining_incrementally): Update.
27914 * ipa-inline.h (inline_summary): Add inlinable, versionable,
27915 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
27916 time, size and estimated_growth parameters.
27917 (estimate_edge_growth): Update.
27918 (initialize_inline_failed): Declare.
27919 * ipa-split.c: Include ipa-inline.h
27920 (execute_split_functions): Update.
27921 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
27922 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
27923 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
27924 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
27925 estimated_growth to INT_MIN.
27926 (inline_node_duplication_hook): Likewise.
27927 (dump_inline_summary): Dump new fields.
27928 (compute_inline_parameters): Update.
27929 (estimate_edge_time, estimate_time_after_inlining,
27930 estimate_size_after_inlining, estimate_growth, inline_read_summary,
27931 inline_write_summary):
27932 (initialize_inline_failed): Move here from cgraph.c.
27933 * tree-sra.c: Include ipa-inline.h.
27934 (ipa_sra_preliminary_function_checks): Update.
27935 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
27936 ipa-inline.h.
27937
27938 2011-04-16 Uros Bizjak <ubizjak@gmail.com>
27939
27940 * config/i386/sse.md (V16): New mode iterator.
27941 (VI1, VI8): Ditto.
27942 (AVXMODEQI, AVXMODEDI): Remove.
27943 (sse2, sse3): New mode attribute.
27944 (mov<mode>): Use V16 mode iterator.
27945 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
27946 (push<mode>1): Use V16 mode iterator.
27947 (movmisalign<mode>): Ditto.
27948 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
27949 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
27950 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
27951 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
27952 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
27953 avx_movdqu<avxmodesuffix>.
27954 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
27955 *avx_movdqu<avxmodesuffix>.
27956 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
27957 avx_lddqu<avxmodesuffix>.
27958 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
27959 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
27960 avx_movnt<AVXMODEDI:mode>.
27961 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
27962 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
27963
27964 2011-04-16 Bernd Schmidt <bernds@codesourcery.com>
27965
27966 PR target/48629
27967 * haifa-sched.c (prune_ready_list, schedule_block): Use
27968 sched_pressure_p rather than flag_sched_pressure.
27969
27970 2011-04-15 Pat Haugen <pthaugen@us.ibm.com>
27971
27972 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
27973 cgraph_get_node instead of cgraph_get_create_node.
27974
27975 2011-04-15 Jakub Jelinek <jakub@redhat.com>
27976
27977 * cfgexpand.c (expand_debug_expr): Use
27978 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
27979
27980 2011-04-15 Michael Matz <matz@suse.de>
27981
27982 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
27983 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
27984 * function.c (gimplify_parameters): Ditto.
27985 * gimplify.c (gimplify_vla_decl): Ditto.
27986
27987 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
27988 (gimple_call_set_alloca_for_var): New inline function.
27989 (gimple_call_alloca_for_var_p): Ditto.
27990 * gimple.c (gimple_build_call_from_tree): Remember
27991 CALL_ALLOCA_FOR_VAR_P state.
27992 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
27993
27994 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
27995 calls if they were for VLA objects.
27996
27997 2011-04-15 Martin Jambor <mjambor@suse.cz>
27998
27999 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
28000 of ADR_EXPRs.
28001
28002 2011-04-15 Martin Jambor <mjambor@suse.cz>
28003
28004 PR middle-end/48601
28005 * tree-emutls.c (lower_emutls_function_body): Call
28006 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
28007 result is non-NULL.
28008
28009 2011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
28010
28011 * c-decl.c (detect_field_duplicates): Call
28012 objc_detect_field_duplicates instead of objc_get_interface_ivars.
28013
28014 2011-04-15 Nathan Froyd <froydnj@codesourcery.com>
28015
28016 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
28017 * gimple.c (gimple_asm_clobbers_memory_p): Define.
28018 * ipa-pure-const.c (check_stmt): Call it.
28019 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
28020
28021 2011-04-15 Richard Guenther <rguenther@suse.de>
28022
28023 PR tree-optimization/48290
28024 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
28025 Properly decide inhibiting propagation based on the valueized
28026 operand. Do loop-closed SSA form preserving here ...
28027 (init_copy_prop): ... not here.
28028
28029 2011-04-15 H.J. Lu <hongjiu.lu@intel.com>
28030
28031 PR target/48612
28032 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
28033 (*ieee_smax<mode>3): Likewise.
28034
28035 2011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28036
28037 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
28038 Replace match_operand with match_dup for the third operand in
28039 these expanders.
28040
28041 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
28042
28043 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
28044 to track processing of conditionals. Update all callers.
28045 (try_combine, simplify_if_then_else): Update.
28046
28047 2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
28048
28049 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
28050 -fsched-pressure.
28051
28052 2011-04-15 Georg-Johann Lay <avr@gjlay.de>
28053
28054 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
28055 instead of match_operand for operand 3.
28056
28057 2011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
28058
28059 * recog.h (insn_operand_data): Add an "allows_mem" field.
28060 * genoutput.c (output_operand_data): Initialize it.
28061 * optabs.c (maybe_legitimize_operand_same_code): New function.
28062 (maybe_legitimize_operand): Use it when matching the original
28063 op->value.
28064
28065 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
28066
28067 * gimplify.c: Fix issues in comments throughout.
28068 (voidify_wrapper_expr): Fix long line.
28069 (build_stack_save_restore): Likewise.
28070 (gimplify_loop_expr): Likewise.
28071 (gimplify_compound_lval): Likewise.
28072 (gimplify_init_ctor_eval): Likewise.
28073 (gimplify_modify_expr_rhs): Likewise.
28074 (omp_notice_threadprivate_variable): Likewise.
28075
28076 2011-04-15 Eric Botcazou <ebotcazou@adacore.com>
28077
28078 * cfgexpand.c (expand_call_stmt): Convert the function type to the
28079 original one if this is not a builtin function.
28080
28081 2011-04-14 Jakub Jelinek <jakub@redhat.com>
28082
28083 PR target/48605
28084 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
28085 offset it as needed based on top 2 bits in operands[3], change
28086 MEM mode to SFmode and mask those 2 bits away from operands[3].
28087
28088 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
28089
28090 * c-parser.c (c_parser_objc_protocol_definition): Updated for
28091 change from objc_declare_protocols() to objc_declare_protocol().
28092
28093 2011-04-14 Uros Bizjak <ubizjak@gmail.com>
28094
28095 * config/i386/sse.md (sse4_1): New mode attribute.
28096 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
28097 avx_blend<ssemodesuffix><avxmodesuffix> and
28098 sse4_1_blend<ssemodesuffix> using VF mode iterator.
28099 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
28100 avx_blendv<ssemodesuffix><avxmodesuffix> and
28101 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
28102 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
28103 avx_dp<ssemodesuffix><avxmodesuffix> and
28104 sse4_1_dp<ssemodesuffix> using VF mode iterator.
28105 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
28106 (sse4_1_packusdw): Merge with *avx_packusdw.
28107 (sse4_1_pblendvb): Merge with *avx_pblendvb.
28108 (sse4_1_pblendw): Merge with *avx_pblendw.
28109 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
28110 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
28111 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
28112 VF mode iterator.
28113 (sse4_1_round<ssescalarmodesuffix>): Merge with
28114 *avx_round<ssescalarmodesuffix>.
28115 (aesenc): Merge with *avx_aesenc.
28116 (aesenclast): Merge with *avx_aesenclast.
28117 (aesdec): Merge with *avx_aesdec.
28118 (aesdeclast): Merge with *avx_aesdeclast.
28119 (pclmulqdq): Merge with *pclmulqdq.
28120 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
28121 New predicate.
28122 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
28123
28124 2011-04-14 H.J. Lu <hongjiu.lu@intel.com>
28125
28126 PR middle-end/48608
28127 * cfgexpand.c (get_decl_align_unit): Renamed to ...
28128 (align_local_variable): This. Update DECL_ALIGN.
28129 (add_stack_var): Updated.
28130 (expand_one_stack_var): Likewise.
28131
28132 2011-04-14 Richard Guenther <rguenther@suse.de>
28133
28134 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
28135 Remove.
28136 (dse_initialize_block_local_data, dse_leave_block,
28137 record_voperand_set, get_stmt_uid): Likewise.
28138 (dse_possible_dead_store_p): Allow any kind of killing stmt.
28139 (dse_optimize_stmt): Remove voperand set handling code.
28140 Simplify and improve to handle any kind of killing stmt.
28141 (dse_record_phi): Remove.
28142 (dse_enter_block): Simplify.
28143 (tree_ssa_dse): Likewise.
28144 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
28145
28146 2011-04-14 Jan Hubicka <jh@suse.cz>
28147
28148 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
28149 * cgraph.h (struct inline_summary): Move to ipa-inline.h
28150 (cgraph_local_info): Remove inline_summary.
28151 * ipa-cp.c: Include ipa-inline.h.
28152 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
28153 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
28154 accesor.
28155 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
28156 (input_overwrite_node): Do not set inline summary.
28157 (input_node): Do not stream inline summary.
28158 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
28159 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
28160 growth; we do not have inline parameters computed for that anyway.
28161 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
28162 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
28163 (inline_summary_t): New type and VECtor.
28164 (debug_inline_summary, dump_inline_summaries): Declare.
28165 (inline_summary): Use VOCtor.
28166 (estimate_edge_growth): Kill hack computing call stmt size directly.
28167 * lto-section-in.c (lto_section_name): Add inline section.
28168 * ipa-inline-analysis.c: Include lto-streamer.h
28169 (node_removal_hook_holder, node_duplication_hook_holder): New holders
28170 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
28171 (inline_summary_vec): Define.
28172 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
28173 dump_inline_summaries): New functions.
28174 (estimate_function_body_sizes): Properly compute size/time of outgoing
28175 calls.
28176 (compute_inline_parameters): Alloc inline_summary; do not compute
28177 size/time of incomming calls.
28178 (estimate_edge_time): Avoid missing time summary hack.
28179 (inline_read_summary): Read inline summary info.
28180 (inline_write_summary): Write inline summary info.
28181 (inline_free_summary): Free all hooks and inline summary vector.
28182 * lto-streamer.h: Add LTO_section_inline_summary section.
28183 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
28184 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
28185
28186 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
28187
28188 * tree-vectorizer.h (vect_strided_store_supported): Add a
28189 HOST_WIDE_INT argument.
28190 (vect_strided_load_supported): Likewise.
28191 (vect_permute_store_chain): Return void.
28192 (vect_transform_strided_load): Likewise.
28193 (vect_permute_load_chain): Delete.
28194 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
28195 count argument. Check that the count is a power of two.
28196 (vect_strided_load_supported): Likewise.
28197 (vect_permute_store_chain): Return void. Update after above changes.
28198 Assert that the access is supported.
28199 (vect_permute_load_chain): Likewise.
28200 (vect_transform_strided_load): Return void.
28201 * tree-vect-stmts.c (vectorizable_store): Update calls after
28202 above interface changes.
28203 (vectorizable_load): Likewise.
28204 (vect_analyze_stmt): Don't check for strided powers of two here.
28205
28206 2011-04-14 Richard Guenther <rguenther@suse.de>
28207
28208 PR tree-optimization/48590
28209 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
28210 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
28211 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
28212 BUILT_IN_STACK_SAVE.
28213 * tree-ssa-dce.c (propagate_necessity): Handle
28214 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
28215
28216 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
28217
28218 * c-parser.c (c_parser_objc_class_declaration): Updated call to
28219 objc_declare_class.
28220
28221 2011-04-14 Richard Guenther <rguenther@suse.de>
28222
28223 * tree.h (get_object_alignment_1): Declare.
28224 * builtins.c (get_object_alignment_1): Split out worker from ...
28225 (get_object_alignment): ... here.
28226 * fold-const.c (get_pointer_modulus_and_residue): Use
28227 get_object_alignment_1.
28228
28229 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
28230
28231 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
28232 type parameter.
28233 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
28234 parameter. Generalise code to handle arrays as well as vectors.
28235 (vect_setup_realignment): Update accordingly.
28236 * tree-vect-stmts.c (vectorizable_store): Likewise.
28237 (vectorizable_load): Likewise.
28238
28239 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
28240
28241 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
28242 within the per-copy loop.
28243
28244 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
28245
28246 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
28247 in the dump file.
28248
28249 2011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
28250
28251 * doc/options.texi (Negative): Explicitly mention that the
28252 Negative chain must be circular.
28253
28254 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
28255
28256 * function.h (block_chainon): Declare.
28257 * function.c (block_chainon): Define.
28258
28259 2011-04-14 Anatoly Sokolov <aesok@post.ru>
28260 Eric Weddington <eric.weddington@atmel.com>
28261 Georg-Johann Lay <avr@gjlay.de>
28262
28263 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
28264 New Includes
28265 (avr_init_builtins, avr_expand_builtin,
28266 avr_expand_delay_cycles, avr_expand_unop_builtin,
28267 avr_expand_binop_builtin ): New functions.
28268 (avr_builtin_id): New enum
28269 (struct avr_builtin_description): New struct
28270 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
28271 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
28272
28273 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
28274 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
28275 UNSPECV_DELAY_CYCLES): new enumeration values
28276 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
28277 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
28278 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
28279 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
28280 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
28281 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
28282 "fmulsu"): New insns
28283
28284 * config/avr/avr-c.c: fix line endings
28285 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
28286 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
28287 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
28288 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
28289 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
28290
28291 * doc/extend.texi (AVR Built-in Functions): New node
28292 (Target Builtins): Add documentation of AVR
28293 built-in functions.
28294
28295 2011-04-14 Georg-Johann Lay <avr@gjlay.de>
28296
28297 PR target/44643
28298 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
28299 alone. Error if non-const data has attribute progmem.
28300
28301 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
28302
28303 * tree.h (struct tree_constructor): Include tree_typed instead of
28304 tree_common.
28305 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
28306 TS_TYPED instead of TS_COMMON.
28307
28308 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
28309
28310 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
28311 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
28312 (sse2_psadbw): Merge with *avx_psadbw.
28313 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
28314 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
28315 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
28316 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
28317 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
28318 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
28319 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
28320 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
28321 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
28322 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
28323 (ssse3_palignrti): Merge with *avx_palignrti.
28324
28325 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
28326
28327 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
28328 * tree-ssanames.c (fini_ssanames): VEC_free it.
28329 (make_ssa_name_fn): Update for VECness of free_ssanames.
28330 (release_ssa_name, release_dead_ssa_names): Likewise.
28331 * tree.h (struct tree_ssa_name): Include tree_typed instead of
28332 tree_common.
28333 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
28334 TS_TYPED instead of TS_COMMON.
28335
28336 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
28337
28338 * postreload-gcse.c (gcse_after_reload_main): Add calls to
28339 statistics_counter_event.
28340 * tree-ssa-copyrename.c (stats): Define.
28341 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
28342 statistics_counter_event.
28343 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
28344 (bswap_stats, widen_mul_stats): Define.
28345 (insert_reciprocals): Increment rdivs_inserted.
28346 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
28347 rfuncs_inserted. Add calls to statistics_counter_event.
28348 (execute_cse_sincos_1): Increment inserted.
28349 (execute_cse_sincos): Zeroize sincos_stats. Add call to
28350 statistics_counter_event.
28351 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
28352 of bswap_stats. Add calls to statistics_counter_event.
28353 (convert_mult_to_widen): Increment widen_mults_inserted.
28354 (convert_plusminus_to_widen): Increment maccs_inserted.
28355 (convert_mult_to_fma): Increment fmas_inserted.
28356 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
28357 calls to statistics_counter_event.
28358
28359 2011-04-13 Vladimir Makarov <vmakarov@redhat.com>
28360
28361 PR rtl-optimization/48455
28362 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
28363 `temp_costs->mem_cost'.
28364
28365 2011-04-13 Jan Hubicka <jh@suse.cz>
28366
28367 * ipa-inline.h: New file.
28368 * ipa-inline-analysis.c: New file. Broken out of ...
28369 * ipa-inline.c: ... this file; update toplevel comment;
28370 include ipa-inline.h
28371 (inline_summary): Move to ipa-inline.h
28372 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
28373 ipa-inline-analysis.c.
28374 (cgraph_estimate_time_after_inlining): Rename to
28375 estiamte_time_after_inlining; move to ipa-inline-analysis.c
28376 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
28377 to estimate_edge_growth.
28378 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
28379 rename to estimate_size_after_inlining.
28380 (cgraph_mark_inline_edge): Update for new naming convention.
28381 (cgraph_check_inline_limits): Likewise.
28382 (cgraph_edge_badness): Likewise.
28383 (cgraph_decide_recursive_inlining): Likewise.
28384 (cgraph_decide_inlining_of_small_functions): Likewise.
28385 (cgraph_decide_inlining_incrementally): Likewise.
28386 (cgraph_estimate_growth): Rename to estimate_growth; move to
28387 ipa-inline-analysis.c.
28388 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
28389 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
28390 (compute_inline_parameters): Likewise.
28391 (compute_inline_parameters_for_current): Likewise.
28392 (pass_inline_parameters): Likewise.
28393 (inline_indirect_intraprocedural_analysis): Likewise.
28394 (analyze_function): Rename to inline_analyze_function; likewise.
28395 (add_new_function): Move to ipa-inline-analysis.c.
28396 (inline_generate_summary): Likewise.
28397 (inline_read_summary): Likewise.
28398 (inline_write_summary): Likewise.
28399 * Makefile.in (ipa-inline-analysis.c): New file.
28400
28401 2011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28402
28403 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
28404 * configure: Regenerate.
28405
28406 2011-04-13 Nathan Froyd <froydnj@codesourcery.com>
28407
28408 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
28409 instead of tree_common.
28410 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
28411 Likewise.
28412 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
28413 TS_TYPED rather than TS_COMMON.
28414 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
28415
28416 2011-04-01 Georg-Johann Lay <avr@gjlay.de>
28417
28418 PR target/45263
28419 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
28420 r20 around calls of __tablejump_elpm__
28421
28422 2011-04-13 Jakub Jelinek <jakub@redhat.com>
28423
28424 PR middle-end/48591
28425 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
28426 NULL.
28427 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
28428
28429 2011-04-13 Bernd Schmidt <bernds@codesourcery.com>
28430
28431 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
28432 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
28433 (cfi_vec): New typedef.
28434 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
28435 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
28436 (cie_cfi_vec): New static variable.
28437 (cie_cfi_head): Delete.
28438 (add_cfi): Accept a cfi_vec * as first argument. All callers and
28439 declaration changed. Use vector rather than list operations.
28440 (new_cfi): Don't initialize the dw_cfi_next field.
28441 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
28442 rather than list operations.
28443 (lookup_cfa): Use vector rather than list operations.
28444 (output_cfis): New argument upto. Accept a cfi_vec rather than
28445 a dw_cfi_ref list head as argument. All callers changed.
28446 Iterate over the vector using upto as a maximum index.
28447 (output_all_cfis): New static function.
28448 (output_fde): Use vector rather than list operations. Use the
28449 new upto argument for output_cfis rather than manipulating a
28450 list.
28451 (dwarf2out_begin_prologue): Change initializations to match
28452 new struct members.
28453 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
28454 from the vector length rather than searching for the end of a list.
28455 Use output_all_cfis.
28456 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
28457
28458 2011-04-13 Nick Clifton <nickc@redhat.com>
28459
28460 * config/rx/rx.md (movmemsi): Do not use this pattern when
28461 volatile pointers are involved.
28462
28463 2011-04-13 Uros Bizjak <ubizjak@gmail.com>
28464
28465 * config/i386/sse.md (pinsrbits): Remove.
28466 (sse2_packsswb): Merge with *avx_packsswb.
28467 (sse2_packssdw): Merge with *avx_packssdw.
28468 (sse2_packuswb): Merge with *avx_packuswb.
28469 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
28470 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
28471 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
28472 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
28473 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
28474 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
28475 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
28476 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
28477 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
28478 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
28479 (sse2_loadld): Merge with *avx_loadld.
28480 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
28481 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
28482 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
28483 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
28484 (vec_concatv2di): Merge with *vec_concatv2di_avx.
28485
28486 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
28487
28488 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
28489 calling TREE_CHAIN.
28490 * print-tree.c (print_node): Likewise.
28491 * tree-inline.c (copy_tree_r): Likewise.
28492 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
28493 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
28494 instead of TS_COMMON.
28495 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
28496 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
28497 (copy_node_stat): Zero TREE_CHAIN only if necessary.
28498 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
28499 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
28500 ...and these...
28501 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
28502 * tree.h: ...here.
28503 (TREE_CHAIN): Check for a TS_COMMON structure.
28504 (TREE_TYPE): Check for a TS_TYPED structure.
28505
28506 2011-04-12 Pat Haugen <pthaugen@us.ibm.com>
28507
28508 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
28509 cgraph_get_create_node instead of cgraph_node.
28510
28511 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
28512
28513 * c-parser.c (c_parser_initelt): Updated call to
28514 objc_build_message_expr.
28515 (c_parser_postfix_expression): Likewise.
28516
28517 2011-04-12 Kai Tietz <ktietz@redhat.com>
28518
28519 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
28520 MASK_MS_BITFIELD_LAYOUT bit.
28521
28522 2011-04-12 Jakub Jelinek <jakub@redhat.com>
28523
28524 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
28525 assert it is always true.
28526 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
28527 moves.
28528
28529 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
28530
28531 * c-parser.c (c_lex_one_token): Rewritten conditional used when
28532 compiling Objective-C to be more efficient.
28533
28534 2011-04-12 Axel Freyn <axel-freyn@gmx.de>
28535
28536 * opts-common.c (decode_cmdline_options_to_array): Remove variable
28537 argv_copied.
28538
28539 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
28540
28541 * recog.h, genoutput.c, optabs.c: Revert last patch.
28542
28543 2011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
28544
28545 PR target/48090
28546 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
28547
28548 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
28549
28550 * recog.h (insn_operand_data): Add an "allows_mem" field.
28551 * genoutput.c (output_operand_data): Initialize it.
28552 * optabs.c (maybe_legitimize_operand_same_code): New function.
28553 (maybe_legitimize_operand): Use it when matching the original
28554 op->value.
28555
28556 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
28557
28558 * genpreds.c (process_define_predicate): Move most processing
28559 to gensupport.c. Continue to validate the expression.
28560 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
28561 (process_define_predicate): Move processing to gensupport.c.
28562 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
28563 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
28564 (compute_predicate_codes): Moved from genrecog.c. Add lineno
28565 argument.
28566 (valid_predicate_name_p): New function, split out from old
28567 genpreds.c:process_define_predicate.
28568 (process_define_predicate): New function, combining code from
28569 old genpreds.c and genrecog.c functions.
28570 (process_rtx): Call it for DEFINE_PREDICATE and
28571 DEFINE_SPECIAL_PREDICATE.
28572
28573 2011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
28574
28575 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
28576 size of a '%A' memory reference.
28577 (T_DREG, T_QREG): New neon_builtin_type_bits.
28578 (arm_init_neon_builtins): Assert that the load and store operands
28579 are neon_struct_operands.
28580 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
28581 (NEON_ARG_MEMORY): New builtin_arg.
28582 (neon_dereference_pointer): New function.
28583 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
28584 Handle NEON_ARG_MEMORY.
28585 (arm_expand_neon_builtin): Update after above interface changes.
28586 Use NEON_ARG_MEMORY for loads and stores.
28587 * config/arm/predicates.md (neon_struct_operand): New predicate.
28588 * config/arm/iterators.md (V_two_elem): Tweak formatting.
28589 (V_three_elem): Use BLKmode for accesses that have no associated mode.
28590 (V_four_elem): Tweak formatting.
28591 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
28592 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
28593 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
28594 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
28595 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
28596 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
28597 (neon_vst4<mode>): Replace pointer operand with a memory operand.
28598 Use %A in the output template.
28599 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
28600 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
28601 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
28602 the width of the memory access. Remove post-increment.
28603 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
28604
28605 2011-04-12 Nick Clifton <nickc@redhat.com>
28606
28607 * config/v850/v850.c (expand_prologue): Do not use the CALLT
28608 instruction for interrupt handlers if the target is the basic V850
28609 architecture.
28610 (expand_epilogue): Likewise.
28611
28612 2011-04-12 Jakub Jelinek <jakub@redhat.com>
28613
28614 PR rtl-optimization/48549
28615 * combine.c (propagate_for_debug): Also stop after BB_END of
28616 this_basic_block. Process LAST and just stop processing after it.
28617 (combine_instructions): If last_combined_insn has been deleted,
28618 set last_combined_insn to its PREV_INSN.
28619
28620 2011-04-12 Richard Guenther <rguenther@suse.de>
28621
28622 PR tree-optimization/46076
28623 * gimple.h (struct gimple_statement_call): Add fntype field.
28624 (gimple_call_fntype): Adjust.
28625 (gimple_call_set_fntype): New function.
28626 * gimple.c (gimple_build_call_1): Set the call function type.
28627 * gimplify.c (gimplify_call_expr): Preserve the function
28628 type the frontend used for the call.
28629 (gimplify_modify_expr): Likewise.
28630 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
28631 function type.
28632 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
28633 function type.
28634 * tree-ssa.c (useless_type_conversion_p): Function pointer
28635 conversions are useless.
28636
28637 2011-04-12 Martin Jambor <mjambor@suse.cz>
28638
28639 * cgraph.h (cgraph_node): Remove function declaration.
28640 (cgraph_create_node): Declare.
28641 (cgraph_get_create_node): Likewise.
28642 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
28643 Updated all callers.
28644 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
28645 the decl does not already exist. Call cgraph_get_create_node instead
28646 of cgraph_node.
28647 (cgraph_get_create_node): New function.
28648 (cgraph_same_body_alias): Update comment.
28649 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
28650 assert it does not return NULL.
28651 (cgraph_update_edges_for_call_stmt): Likewise.
28652 (cgraph_clone_edge): Likewise.
28653 (cgraph_create_virtual_clone): Likewise.
28654 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
28655 instead of cgraph_node.
28656 (cgraph_add_new_function): Call cgraph_create_node or
28657 cgraph_get_create_node instead of cgraph_node.
28658 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
28659 instead of cgraph_node.
28660 (record_eh_tables): Likewise.
28661 (mark_address): Likewise.
28662 (mark_load): Likewise.
28663 (build_cgraph_edges): Call cgraph_get_create_node instead
28664 of cgraph_node.
28665 (rebuild_cgraph_edges): Likewise.
28666 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
28667 instead of cgraph_node.
28668 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
28669 cgraph_node.
28670 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
28671 cgraph_create_node instead of cgraph_node.
28672 * c-decl.c (finish_function): Call cgraph_get_create_node instead
28673 of cgraph_node.
28674 * lto-cgraph.c (input_node): Likewise.
28675 * lto-streamer-in.c (input_function): Likewise.
28676 * varasm.c (mark_decl_referenced): Likewise.
28677 (assemble_alias): Likewise.
28678
28679 2011-04-12 Martin Jambor <mjambor@suse.cz>
28680
28681 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
28682 instead of cgraph_node and assert it does not return NULL.
28683 * lto-streamer-in.c (lto_read_body): Likewise.
28684 * omp-low.c (new_omp_context): Likewise.
28685 (create_task_copyfn): Likewise.
28686 * tree-emutls.c (lower_emutls_function_body): Likewise.
28687 * matrix-reorg.c (transform_allocation_sites): Likewise.
28688
28689 2011-04-12 Jakub Jelinek <jakub@redhat.com>
28690
28691 PR c/48552
28692 * c-typeck.c (build_asm_expr): Error out on attempts to use
28693 void type outputs or inputs for constraints that allow reg or
28694 don't allow memory.
28695
28696 2011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
28697 Richard Earnshaw <rearnsha@arm.com>
28698
28699 PR target/48250
28700 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
28701 to use sign-magnitude offsets. Reject unsupported unaligned
28702 cases. Add detailed description in comments.
28703 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
28704 condition from TARGET_32BIT to TARGET_ARM.
28705
28706 2011-04-11 Nathan Froyd <froydnj@codesourcery.com>
28707
28708 * tree.h (struct typed_tree): New.
28709 (struct tree_common): Include it instead of tree_base.
28710 (TREE_TYPE): Update for new location of type field.
28711 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
28712 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
28713 (union tree_node): Add typed field.
28714 * treestruct.def (TS_TYPED): New.
28715 * lto-streamer.c (check_handled_ts_structures): Handle it.
28716 * tree.c (MARK_TS_TYPED): New macro.
28717 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
28718
28719 2011-04-11 Eric Botcazou <ebotcazou@adacore.com>
28720
28721 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
28722 (force_nonfallthru): Do not alter the loop nest if no basic block
28723 was created.
28724
28725 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
28726
28727 * config/i386/sse.md (VI): New mode iterator.
28728 (SSEMODEI): Remove.
28729 (AVX256MODEI): Ditto.
28730 (AVXMODEF4P): Ditto.
28731 (avxvecpsmode): Ditto.
28732 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
28733 (sse2_andnot<mode>3): New expander.
28734 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
28735 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
28736 (<any_logic:code><mode>3): Use VI mode iterator.
28737 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
28738 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
28739 (*andnottf3): Handle AVX three-operand constraints.
28740 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
28741
28742 2011-04-11 Joseph Myers <joseph@codesourcery.com>
28743 Robert Millan <rmh@gnu.org>
28744
28745 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
28746 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
28747 GNU_USER_DYNAMIC_LINKER64): Define.
28748 (REG_NAME): Don't undefine.
28749 (MD_UNWIND_SUPPORT): Undefine.
28750 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
28751 (REG_NAME): Don't undefine.
28752 (MD_UNWIND_SUPPORT): Undefine.
28753 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
28754
28755 2011-04-11 Joseph Myers <joseph@codesourcery.com>
28756
28757 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
28758 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
28759
28760 2011-04-11 Xinliang David Li <davidxl@google.com>
28761
28762 * value-profile.c (check_ic_target): New function.
28763 (gimple_ic_transform): Sanity check indirect call target.
28764 * gimple-low.c (gimple_check_call_args): Interface change.
28765 (gimple_check_call_matching_types): New function.
28766 * tree-inline.c (tree_can_inline_p): Call new function.
28767
28768 2011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
28769
28770 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
28771 tree-pretty-print.h & realmpfr.h.
28772
28773 2011-04-11 Vladimir Makarov <vmakarov@redhat.com>
28774
28775 PR middle-end/48464
28776 * ira.c (setup_pressure_classes): Fix typo in loop condition.
28777 (setup_allocno_and_important_classes): Ditto.
28778
28779 2011-04-11 Joseph Myers <joseph@codesourcery.com>
28780
28781 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
28782 GNU_USER_DYNAMIC_LINKER.
28783 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
28784 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28785 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
28786 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
28787 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
28788 GNU_USER_TARGET_OS_CPP_BUILTINS.
28789 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
28790 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28791 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
28792 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28793 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
28794 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
28795 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
28796 GNU_USER_TARGET_OS_CPP_BUILTINS.
28797 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28798 GNU_USER_DYNAMIC_LINKER.
28799 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
28800 GNU_USER_TARGET_OS_CPP_BUILTINS.
28801 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
28802 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28803 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
28804 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28805 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
28806 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
28807 GNU_USER_DYNAMIC_LINKER64): Remove.
28808 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
28809 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28810 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28811 GNU_USER_DYNAMIC_LINKER.
28812 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
28813 GNU_USER_TARGET_OS_CPP_BUILTINS.
28814 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
28815 GNU_USER_TARGET_OS_CPP_BUILTINS.
28816 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
28817 to GNU_USER_TARGET_OS_CPP_BUILTINS.
28818 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
28819 GNU_USER_TARGET_OS_CPP_BUILTINS.
28820 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
28821 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
28822 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
28823 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
28824 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28825 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28826 GNU_USER_DYNAMIC_LINKER.
28827 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
28828 GNU_USER_TARGET_OS_CPP_BUILTINS.
28829 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
28830 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28831 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28832 GNU_USER_DYNAMIC_LINKER.
28833 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
28834 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28835 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
28836 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28837 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28838 GNU_USER_DYNAMIC_LINKER.
28839 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
28840 GNU_USER_DYNAMIC_LINKERN32.
28841 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
28842 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
28843 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
28844 GNU_USER_DYNAMIC_LINKER32.
28845 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
28846 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28847 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28848 GNU_USER_DYNAMIC_LINKER.
28849 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
28850 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28851 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
28852 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28853 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
28854 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
28855 GNU_USER_DYNAMIC_LINKER32.
28856 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
28857 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
28858 GNU_USER_DYNAMIC_LINKER.
28859 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
28860 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28861 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
28862 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
28863 GNU_USER_DYNAMIC_LINKER64.
28864 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
28865 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28866 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28867 GNU_USER_DYNAMIC_LINKER.
28868 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
28869 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28870 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
28871 GNU_USER_DYNAMIC_LINKER.
28872 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
28873 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28874 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
28875 GNU_USER_DYNAMIC_LINKER32.
28876 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
28877 GNU_USER_DYNAMIC_LINKER64.
28878 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
28879 GNU_USER_DYNAMIC_LINKER64.
28880 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
28881 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28882 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
28883 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
28884 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
28885
28886 2011-04-11 Joseph Myers <joseph@codesourcery.com>
28887
28888 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
28889 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
28890 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
28891 GNU_USER_DYNAMIC_LINKER.
28892 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
28893 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
28894 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
28895 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
28896 GNU_USER_DYNAMIC_LINKER64.
28897 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
28898 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
28899 GNU_USER_LINK_EMULATION.
28900 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
28901 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
28902 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
28903 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
28904 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
28905 CPP_SPEC, CC1_SPEC): Remove.
28906 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
28907 (GNU_USER_DYNAMIC_LINKER): Define.
28908 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
28909 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
28910 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
28911 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
28912 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
28913 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
28914 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
28915 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
28916 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
28917 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
28918 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
28919 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
28920 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
28921 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
28922 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
28923 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
28924 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
28925 GNU_USER_DYNAMIC_LINKER.
28926 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
28927 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
28928 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
28929 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
28930 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
28931 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
28932 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
28933 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
28934 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
28935 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
28936
28937 2011-04-11 Kai Tietz <ktietz@redhat.com>
28938
28939 PR target/9601
28940 PR target/11772
28941 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
28942 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
28943 comment.
28944 (ix86_is_msabi_thiscall): Removed.
28945 (ix86_is_type_thiscall): Likewise.
28946 (ix86_get_callcvt): New function.
28947 (ix86_comp_type_attributes): Simplify check.
28948 (ix86_function_regparm): Use ix86_get_callcvt for calling
28949 convention attribute checks.
28950 (ix86_return_pops_args): Likewise.
28951 (ix86_static_chain): Likewise.
28952 (x86_this_parameter): Likewise.
28953 (x86_output_mi_thunk): Likewise.
28954 (ix86_function_type_abi): Optimize check for types without attributes.
28955 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
28956 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
28957 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
28958 by flag-values.
28959 (IX86_BASE_CALLCVT): Helper macro.
28960 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
28961 Use ix86_get_callcvt for calling convention attribute checks and avoid
28962 symbol-decoration for stdcall in TARGET_RTD case.
28963 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
28964 Likewise.
28965 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
28966 for declaration.
28967
28968 2011-04-11 Uros Bizjak <ubizjak@gmail.com>
28969
28970 * config/i386/sse.md (VI_128): New mode iterator.
28971 (VI12_128): Rename from SSEMODE12.
28972 (VI14_128): Rename from SSEMODE14.
28973 (VI124_128): New mode iterator.
28974 (VI24_128): Rename from SSEMODE248.
28975 (VI248_128): Rename from SSEMODE248.
28976 (SSEMODE124C8): Remove.
28977 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
28978 (*sse2_<plusminus_insn><mode>3): Merge with
28979 *avx_<plusminus_insn><mode>3.
28980 (*mulv8hi3): Merge with *avx_mulv8hi3.
28981 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
28982 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
28983 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
28984 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
28985 (ashr<mode>3): Merge with *avx_ashr<mode>3.
28986 (lshr<mode>3): Merge with *avx_lshr<mode>3.
28987 (ashl<mode>3): Merge with *avx_ashl<mode>3.
28988 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
28989 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
28990 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
28991 (*<smaxmin:code>v8hi3): Ditto.
28992 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
28993 (*<smaxmin:code>v16qi3): Ditto.
28994 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
28995 (*sse2_eq<mode>3): Ditto.
28996 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
28997 (*sse2_gt<mode>3): Ditto.
28998 (vcondv2di): Split out of vcond<mode>.
28999 (vconduv2di): Split out of vcondu<mode>.
29000
29001 2011-04-11 Richard Guenther <rguenther@suse.de>
29002
29003 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
29004 before calling tree_low_cst.
29005
29006 2011-04-11 Richard Guenther <rguenther@suse.de>
29007
29008 * stor-layout.c (layout_type): Compute all array index size operations
29009 in the original type.
29010 (initialize_sizetypes): Add comment.
29011 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
29012
29013 2011-04-11 Joseph Myers <joseph@codesourcery.com>
29014
29015 * common.opt (Tbss=, Tdata=, Ttext=): New options.
29016
29017 2011-04-11 Martin Jambor <mjambor@suse.cz>
29018
29019 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
29020 of cgraph_node, handle NULL return value.
29021 (cgraph_global_info): Likewise.
29022 (cgraph_rtl_info): Likewise.
29023 * tree-inline.c (estimate_num_insns): Likewise.
29024 * gimplify.c (unshare_body): Likewise.
29025 (unvisit_body): Likewise.
29026 (gimplify_body): Likewise.
29027 * predict.c (optimize_function_for_size_p): Likewise.
29028 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
29029 (call_may_clobber_ref_p_1): Likewise.
29030 * varasm.c (function_section_1): Likewise.
29031 (assemble_start_function): Likewise.
29032
29033 2011-04-11 Martin Jambor <mjambor@suse.cz>
29034
29035 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
29036 of cgraph_node.
29037 * final.c (rest_of_clean_state): Likewise.
29038 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
29039 * passes.c (pass_init_dump_file): Likewise.
29040 (execute_all_ipa_transforms): Likewise.
29041 (function_called_by_processed_nodes_p): Likewise.
29042 * predict.c (maybe_hot_frequency_p): Likewise.
29043 (probably_never_executed_bb_p): Likewise.
29044 (compute_function_frequency): Likewise.
29045 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
29046 (unnest_nesting_tree_1): Likewise.
29047 (lower_nested_functions): Likewise.
29048 * tree-optimize.c (execute_fixup_cfg): Likewise.
29049 (tree_rest_of_compilation): Likewise.
29050 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
29051 * tree-sra.c (ipa_early_sra): Likewise.
29052 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
29053 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
29054 * ipa.c (record_cdtor_fn): Likewise.
29055 * ipa-inline.c (cgraph_early_inlining): Likewise.
29056 (compute_inline_parameters_for_current): Likewise.
29057 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
29058 * ipa-pure-const.c (local_pure_const): Likewise.
29059 * ipa-split.c (split_function): Likewise.
29060 (execute_split_functions): Likewise.
29061 * cgraphbuild.c (build_cgraph_edges): Likewise.
29062 (rebuild_cgraph_edges): Likewise.
29063 (cgraph_rebuild_references): Likewise.
29064 (remove_cgraph_callee_edges): Likewise.
29065 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
29066 (verify_cgraph_node): Likewise.
29067 (cgraph_analyze_functions): Likewise.
29068 (cgraph_preserve_function_body_p): Likewise.
29069 (save_inline_function_body): Likewise.
29070 (save_inline_function_body): Likewise.
29071 * tree-inline.c (copy_bb): Likewise.
29072 (optimize_inline_calls): Likewise.
29073
29074 2011-04-11 Martin Jambor <mjambor@suse.cz>
29075
29076 PR tree-optimization/48195
29077 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
29078 ipa_check_create_edge_args.
29079 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
29080 ipa_check_create_edge_args.
29081 * ipa-inline.c (inline_generate_summary): Do not call
29082 ipa_check_create_node_params and ipa_check_create_edge_args.
29083 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
29084 ipa_check_create_edge_args.
29085
29086 2011-04-09 Anatoly Sokolov <aesok@post.ru>
29087
29088 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
29089 instead of loop.
29090 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
29091 * function.c (record_hard_reg_sets): Likewise.
29092 * ira.c (compute_regs_asm_clobbered): Likewise.
29093 * sched-deps.c (sched_analyze_1): Likewise.
29094 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
29095
29096 2011-04-09 Xinliang David Li <davidxl@google.com>
29097
29098 PR tree-optimization/PR48484
29099 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
29100 has_valid_pred lazily
29101
29102 2011-04-09 Duncan Sands <baldrick@free.fr>
29103
29104 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
29105
29106 2011-04-08 Eric Botcazou <ebotcazou@adacore.com>
29107
29108 * combine.c (combine_validate_cost): Adjust comments. Set registered
29109 cost of I0 to zero at the end, if any.
29110
29111 2011-04-08 Xinliang David Li <davidxl@google.com>
29112
29113 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
29114 to insane profile data.
29115
29116 2011-04-08 Xinliang David Li <davidxl@google.com>
29117
29118 * ipa-cp.c (ipcp_update_profiling): Correct
29119 negative scale factor due to insane profile data.
29120
29121 2011-04-08 Xinliang David Li <davidxl@google.com>
29122
29123 * final.c (dump_basic_block_info): New function.
29124 (final): Dump basic block.
29125 (final_scan_insn): Remove old dump.
29126
29127 2011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
29128
29129 PR target/47829
29130 * config.gcc (i386-*-freebsd): Disable unwind table generation for
29131 crtbegin/crtend.
29132
29133 2011-04-08 Michael Matz <matz@suse.de>
29134
29135 PR middle-end/48389
29136 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
29137 functions.
29138 (rebuild_jump_labels): Call rebuild_jump_labels_1.
29139 * rtl.h (rebuild_jump_labels_chain): Declare.
29140 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
29141 insns inserted on edges.
29142
29143 2011-04-08 Joseph Myers <joseph@codesourcery.com>
29144
29145 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
29146 * config/arm/arm-arches.def: New.
29147 * config/arm/arm-opts.h: New.
29148 * config/arm/genopt.sh: New.
29149 * config/arm/arm-tables.opt: New (generated).
29150 * config/arm/arm.c (arm_handle_option, arm_target_help,
29151 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
29152 (all_architectures): Get most table contents from arm-arches.def.
29153 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
29154 arm_selected_tune here.
29155 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
29156 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
29157 (march=, mcpu=, mtune=): Use Enum and Var.
29158 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
29159 (arm.o): Update dependencies.
29160
29161 2011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
29162
29163 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
29164 of header_file.
29165 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
29166 (write_typed_alloc_defns): Likewise.
29167 (main): Calls write_typed_alloc_defns with output_header.
29168
29169 2011-04-08 Vladimir Makarov <vmakarov@redhat.com>
29170
29171 PR inline-asm/48435
29172 * ira-color.c (setup_profitable_hard_regs): Add comments.
29173 Don't take prohibited hard regs into account.
29174 (setup_conflict_profitable_regs): Rename to
29175 get_conflict_profitable_regs.
29176 (check_hard_reg_p): Check prohibited hard regs.
29177
29178 2011-04-08 Nathan Froyd <froydnj@codesourcery.com>
29179
29180 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
29181 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
29182 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
29183
29184 2011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29185
29186 PR target/48366
29187 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
29188 move from floating point to shift amount register.
29189 (emit_move_sequence): Remove secondary reload support for floating
29190 point to shift amount amount register copies.
29191 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
29192 amount register copies.
29193 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
29194 register, return false if mode isn't a scalar integer mode.
29195 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
29196
29197 2011-04-08 Richard Guenther <rguenther@suse.de>
29198
29199 * gimple.c (gimple_call_flags): Remove kludge.
29200
29201 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
29202
29203 * sel-sched.c (sel_region_init): Move call to
29204 sel_setup_region_sched_flags after setup_current_loop_nest.
29205
29206 2011-04-08 Andrey Belevantsev <abel@ispras.ru>
29207
29208 PR rtl-optimization/48272
29209 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
29210 init_insn_reg_pressure_info. Adjust a caller.
29211 * sched-int.h (init_insn_reg_pressure_info): Declare.
29212 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
29213 when sched-pressure is enabled.
29214
29215 2011-04-08 Richard Guenther <rguenther@suse.de>
29216
29217 * gimple.c (gimple_set_modified): Do not queue calls to
29218 MODIFIED_NORETURN_CALLS here ...
29219 * tree-ssa-operands.c (update_stmt_operands): ... but here.
29220
29221 2011-04-08 Richard Guenther <rguenther@suse.de>
29222
29223 PR lto/48467
29224 * toplev.c (lang_dependent_init): Do not open asm_out_file
29225 in WPA mode, nor perform debug machinery initialization.
29226 (finalize): Do not unlink asm_out_file in WPA mode.
29227
29228 2011-04-08 Richard Guenther <rguenther@suse.de>
29229
29230 * gimple.h (gimple_call_fntype): New function.
29231 (gimple_call_return_type): Use it.
29232 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
29233 * gimple-low.c (gimple_check_call_args): Likewise.
29234 * gimple.c (gimple_call_flags): Likewise.
29235 (gimple_call_arg_flags): Likewise.
29236 (gimple_call_return_flags): Likewise.
29237 * tree-cfg.c (verify_gimple_call): Likewise.
29238 (do_warn_unused_result): Likewise.
29239 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
29240 * value-prof.c (gimple_ic_transform): Fix fndecl check.
29241
29242 2011-04-08 Dmitry Melnik <dm@ispras.ru>
29243
29244 PR rtl-optimization/48235
29245 * sel-sched.c (code_motion_process_successors): Recompute the last
29246 insn in basic block if control flow changed.
29247 (code_motion_path_driver): Ditto. Recompute the first insn as well.
29248 Update condition for ilist_remove.
29249
29250 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
29251
29252 PR rtl-optimization/48302
29253 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
29254 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
29255 it to record added preheader blocks.
29256 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
29257 on to sel_add_loop_preheaders.
29258 (sel_region_init): Move call to setup_current_loop_nest after
29259 sel_init_bbs.
29260
29261 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
29262
29263 PR target/48273
29264 * cfgloop.h (loop_has_exit_edges): New helper.
29265 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
29266 non-clonable.
29267 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
29268 that have no exit edges.
29269
29270 2011-04-08 Alexander Monakov <amonakov@ispras.ru>
29271
29272 PR rtl-optimization/48442
29273 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
29274 all callers. Adjust assert.
29275
29276 2011-04-08 Jakub Jelinek <jakub@redhat.com>
29277
29278 PR tree-optimization/48377
29279 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
29280 is_packed to true even for types with smaller TYPE_ALIGN than
29281 TYPE_SIZE.
29282
29283 2011-04-08 Richard Guenther <rguenther@suse.de>
29284
29285 PR bootstrap/48513
29286 * doc/tm.texi: Re-generate.
29287
29288 2011-04-08 Wei Guozhi <carrot@google.com>
29289
29290 PR target/47855
29291 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
29292 * config/arm/arm.c (arm_attr_length_push_multi): New function.
29293 * config/arm/arm.md (*push_multi): Change the length computation to
29294 call a C function.
29295
29296 2011-04-08 Anatoly Sokolov <aesok@post.ru>
29297
29298 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
29299 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
29300 * doc/tm.texi: Regenerate.
29301 * system.h (ASM_OUTPUT_BSS): Poison.
29302 * varasm.c (asm_output_bss): Remove function.
29303 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
29304
29305 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
29306 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
29307 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
29308 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29309 Likewise.
29310 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29311 Likewise.
29312 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
29313 Likewise.
29314 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
29315
29316 2011-04-07 Joseph Myers <joseph@codesourcery.com>
29317
29318 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
29319 EnumValue lines.
29320
29321 2011-04-07 Joseph Myers <joseph@codesourcery.com>
29322
29323 * config/m68k/m68k.c (m68k_handle_option): Don't handle
29324 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
29325 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
29326 OPT_mcpu32.
29327 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
29328 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
29329 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
29330 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
29331 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
29332 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
29333 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
29334 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
29335 options. Don't map other m68k options manually. Don't handle
29336 old-style options as canonical.
29337 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
29338 * doc/install.texi (m68k-*-*): Document binutils version requirement.
29339
29340 2011-04-07 Eric Botcazou <ebotcazou@adacore.com>
29341
29342 * basic-block.h (force_nonfallthru): Move to...
29343 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
29344 (force_nonfallthru): ...here.
29345 * cfghooks.c (force_nonfallthru): New function.
29346 * cfgrtl.c (force_nonfallthru): Rename into...
29347 (rtl_force_nonfallthru): ...this.
29348 (commit_one_edge_insertion): Do not set AUX field.
29349 (commit_edge_insertions): Do not discover new basic blocks.
29350 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
29351 (cfg_layout_rtl_cfg_hooks): Likewise.
29352 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
29353 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
29354 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
29355
29356 2011-04-07 Anatoly Sokolov <aesok@post.ru>
29357
29358 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
29359 Remove macros.
29360
29361 2011-04-07 Uros Bizjak <ubizjak@gmail.com>
29362
29363 * config/i386/sse.md: Update copyright year.
29364 (avxcvtvecmode): Remove.
29365 (sse_movhlps): Merge with *avx_movhlps.
29366 (sse_movlhps): Merge with *avx_movlhps.
29367 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
29368 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
29369 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
29370 (sse_loadhps): Merge with *avx_loadhps.
29371 (sse_storelps): Merge with *avx_storelps.
29372 (sse_loadlps): Merge with *avx_loadlps.
29373 (sse_movss): Merge with *avx_movss.
29374 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
29375 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
29376 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
29377 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
29378 (vec_set<mode>_0): Ditto.
29379 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
29380 (sse4_1_insertps): Merge with *avx_insertps.
29381 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
29382 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
29383 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
29384 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
29385 (sse2_storehpd): Merge with *avx_storehpd.
29386 (sse2_loadhpd): Merge with *avx_loadhpd.
29387 (sse2_loadlpd): Merge with *avx_loadlpd.
29388 (sse2_movsd): Merge with *avx_movsd.
29389 (*vec_concatv2df): Merge with *vec_concatv2df.
29390
29391 2011-04-07 Jakub Jelinek <jakub@redhat.com>
29392
29393 PR debug/48343
29394 * combine.c (combine_instructions): Add last_combined_insn,
29395 update it if insn is after it, pass it to all try_combine calls.
29396 (try_combine): Add last_combined_insn parameter, pass it instead of
29397 i3 to propagate_for_debug.
29398
29399 2011-04-07 Nick Clifton <nickc@redhat.com>
29400
29401 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
29402 to handle MDR <-> data register transfers.
29403 (movhi_internal): Likewise.
29404
29405 2011-04-07 Alan Modra <amodra@gmail.com>
29406
29407 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
29408 previous stack info.
29409
29410 2011-04-07 Tom de Vries <tom@codesourcery.com>
29411
29412 PR target/43920
29413 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
29414 flow_find_cross_jump. Swap variables to implement backward replacement.
29415 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
29416
29417 2011-04-07 Tom de Vries <tom@codesourcery.com>
29418
29419 PR target/43920
29420 * cfgcleanup.c (walk_to_nondebug_insn): New function.
29421 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
29422 and bb2.
29423 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
29424 src1 or src2. Redirect edges to the last basic block. Update
29425 frequency and count on multiple basic blocks in case of fallthru.
29426
29427 2011-04-07 Tom de Vries <tom@codesourcery.com>
29428
29429 PR target/43920
29430 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
29431 function.
29432 (old_insns_match_p): Change return type. Replace return false/true
29433 with return dir_none/dir_both. Use can_replace_by.
29434 (flow_find_cross_jump): Add dir_p parameter. Init replacement
29435 direction from dir_p. Register replacement direction in dir, last_dir
29436 and afterlast_dir. Handle new return type of old_insns_match_p using
29437 merge_dir. Return replacement direction in dir_p.
29438 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
29439 return type of old_insns_match_p.
29440 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
29441 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
29442 flow_find_cross_jump.
29443 * basic-block.h (enum replace_direction): New type.
29444 (flow_find_cross_jump): Add parameter to declaration.
29445
29446 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
29447
29448 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
29449 (AVXMODEDCVTPS2DQ): Ditto.
29450 (VEC_FLOAT_MODE): Ditto.
29451 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
29452 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
29453 (<any_logic:code><mode>3): Use VF mode iterator.
29454 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
29455 Use VF mode iterator.
29456 (copysign<mode>3): Use VF mode iterator.
29457 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
29458 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
29459 (*<any_logic:code><MODEF:mode>3): Merge with
29460 *avx_<any_logic:code><MODEF:mode>3.
29461 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
29462 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
29463 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
29464 (avx_cvtdq2ps<avxmodesuffix>): Remove.
29465 (sse2_cvtdq2ps): Use %v modifier.
29466 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
29467 (avx_cvtps2dq<avxmodesuffix>): Remove.
29468 (sse2_cvtps2dq): Use %v modifier.
29469 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
29470 (avx_cvttps2dq<avxmodesuffix>): Remove.
29471 (sse2_cvttps2dq): Use %v modifier.
29472 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
29473 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
29474 (sse2_cvtsd2siq): Fix insn template.
29475 (sse2_cvtsd2siq_2): Ditto.
29476 (sse2_cvttsd2siq): Ditto.
29477 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
29478 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
29479
29480 2011-04-06 Joseph Myers <joseph@codesourcery.com>
29481
29482 * gcov-io.c: Use GCC Runtime Library Exception.
29483
29484 2011-04-06 Jakub Jelinek <jakub@redhat.com>
29485
29486 PR debug/48466
29487 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
29488 as base_reg whatever register reg has been eliminated to, instead
29489 of hardcoding STACK_POINTER_REGNUM.
29490
29491 2011-04-06 Joseph Myers <joseph@codesourcery.com>
29492
29493 * doc/tm.texi.in: Document C target hooks as separate from general
29494 target hooks.
29495 * doc/tm.texi: Regenerate.
29496 * genhooks.c (struct hook_desc): Add docname field.
29497 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
29498 docname field.
29499 (hook_array): Include c-target.def.
29500 (emit_documentation): Use docname field in output.
29501 (emit_init_macros): Take docname argument. Only emit definitions
29502 for hooks matching docname.
29503 (main): Expect additional arguments in all cases. Pass argument
29504 to emit_init_macros.
29505 * target.def: Move initial macro definitions and comments to
29506 target-hooks-macros.h.
29507 (gcc_targetcm): Move to c-family/c-target.def.
29508 * target.h (targetcm): Move declaration to c-family/c-target.h.
29509 * targhooks.c (default_handle_c_option): Move to
29510 c-family/c-opts.c.
29511 * targhooks.h (default_handle_c_option): Move declaration to
29512 c-family/c-common.h.
29513 * target-hooks-macros.h: New file.
29514 * config.gcc (target_has_targetcm): Define and use to add to
29515 c_target_objs and cxx_target_objs.
29516 * config/default-c.c: New file.
29517 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
29518 of target.h and target-def.h.
29519 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
29520 (darwin_objc_construct_string, darwin_cfstring_ref_p,
29521 darwin_check_cfstring_format_arg): Make static.
29522 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
29523 TARGET_STRING_OBJECT_REF_TYPE_P,
29524 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
29525 * config/darwin-protos.h (darwin_objc_construct_string,
29526 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
29527 declare.
29528 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
29529 TARGET_STRING_OBJECT_REF_TYPE_P,
29530 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
29531 * config/t-darwin (darwin-c.o): Update dependencies.
29532 * system.h (TARGET_HAS_TARGETCM): Poison.
29533 * Makefile.in (TARGET_H): Update.
29534 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
29535 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
29536 (default-c.o): New target.
29537 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
29538 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
29539 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
29540 c-target.def.
29541 (build/genhooks.o): Update dependencies.
29542
29543 2011-04-06 Richard Guenther <rguenther@suse.de>
29544
29545 * ipa-inline.c (enum inlining_mode): Remove.
29546 (cgraph_flatten): Use some other token.
29547 (cgraph_edge_early_inlinable_p): New function, split out from ...
29548 (cgraph_perform_always_inlining): New function, split out from ...
29549 (cgraph_decide_inlining_incrementally): ... here.
29550 (cgraph_mark_inline_edge): Adjust.
29551 (cgraph_early_inlining): Re-structure.
29552 (pass_early_inline): Require SSA form.
29553
29554 2011-04-06 Andrew Stubbs <ams@codesourcery.com>
29555 Julian Brown <julian@codesourcery.com>
29556 Mark Shinwell <shinwell@codesourcery.com>
29557
29558 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
29559 LO_REGS only for Thumb-1.
29560 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
29561 be used in short instructions when optimising for size on Thumb-2.
29562
29563 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
29564
29565 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
29566 associated with user returns to be preserved.
29567
29568 2011-04-06 Tristan Gingold <gingold@adacore.com>
29569
29570 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
29571 symbol_queue_size, DBXOUT_DECR_NESTING,
29572 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
29573 if XCOFF_DEBUGGING_INFO.
29574
29575 2011-04-06 Uros Bizjak <ubizjak@gmail.com>
29576
29577 * config/i386/i386.md (attribute isa): New.
29578 (attribute enabled): New.
29579 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
29580 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
29581 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
29582 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
29583 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
29584 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
29585 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
29586 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
29587
29588 * config/i386/sse.md (VF): New mode iterator.
29589 (VF1): Ditto.
29590 (VF2): Ditto.
29591 (VF_128): Ditto.
29592 (SSEMODEF4): Remove.
29593 (attribute sse): Handle V8SF and V4DF modes.
29594 (<absneg:code><mode>2): Use VF mode iterator.
29595 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
29596 mode iterator.
29597 (<plusminus_insn><mode>3): Use VF mode iterator.
29598 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
29599 Use VF mode iterator.
29600 (<sse>_vm<plusminus_insn><mode>3): Merge with
29601 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
29602 (mul<mode>3): Use VF mode iterator.
29603 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
29604 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
29605 mode iterator.
29606 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
29607 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
29608 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
29609 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
29610 mode iterator.
29611 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
29612 Use VF1 mode iterator.
29613 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
29614 (sqrt<VF2:mode>2): New expander.
29615 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
29616 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
29617 and sqrtv2df2. Use VF mode iterator.
29618 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
29619 mode iterator.
29620 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
29621 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
29622 Use VF1 mode iterator.
29623 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
29624 (<smaxmin:code><mode>3): Use VF mode iterator.
29625 (*<smaxmin:code><mode>3_finite): Merge with
29626 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
29627 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
29628 (<sse>_vm<smaxmin:code><mode>2): Merge with
29629 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
29630 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
29631 mode iterator.
29632 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
29633 mode iterator.
29634 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
29635 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
29636 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
29637 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
29638 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
29639 VF mode iterator.
29640 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
29641 Use VF_128 mode iterator.
29642 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
29643 mode iterator.
29644 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
29645 VF_128 mode iterator.
29646 (vcond<mode>): Use VF mode iterator.
29647 * config/i386/predicates.md (sse_comparison_operator): Merge with
29648 avx_comparison_float_operator. Do not declare as special_predicate.
29649 * config/i386/i386.c (struct builtin_description): Update for renamed
29650 compare patterns.
29651 (ix86_expand_args_builtin): Ditto.
29652 (ix86_expand_sse_compare_mask): Ditto.
29653
29654 2011-04-06 Richard Guenther <rguenther@suse.de>
29655
29656 * tree-inline.c (estimate_num_insns): For calls simply account
29657 for all passed arguments and a used return value.
29658
29659 2011-04-06 Richard Guenther <rguenther@suse.de>
29660
29661 PR tree-optimization/47663
29662 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
29663 call_stmt_time fields.
29664 (cgraph_edge_inlinable_p): Declare.
29665 (cgraph_edge_recursive_p): New inline function.
29666 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
29667 (cgraph_clone_edge): Copy it.
29668 * ipa-inline.c (cgraph_estimate_edge_time): New function.
29669 Account for call stmt time.
29670 (cgraph_estimate_time_after_inlining): Take edge argument.
29671 (cgraph_estimate_edge_growth): Account call stmt size.
29672 (cgraph_estimate_size_after_inlining): Take edge argument.
29673 (cgraph_mark_inline_edge): Adjust.
29674 (cgraph_check_inline_limits): Likewise.
29675 (cgraph_recursive_inlining_p): Remove.
29676 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
29677 (cgraph_decide_recursive_inlining): Take edge argument and
29678 adjust.
29679 (cgraph_decide_inlining_of_small_functions): Do not avoid
29680 diags for recursive inlining here.
29681 (cgraph_flatten): Adjust.
29682 (cgraph_decide_inlining_incrementally): Likewise.
29683 (estimate_function_body_sizes): Remove call cost handling.
29684 (compute_inline_parameters): Initialize caller edge call costs.
29685 (cgraph_estimate_edge_growth): New function.
29686 (cgraph_estimate_growth): Use it.
29687 (cgraph_edge_badness): Likewise.
29688 (cgraph_check_inline_limits): Take an edge argument.
29689 (cgraph_decide_inlining_of_small_functions): Adjust.
29690 (cgraph_decide_inlining): Likewise.
29691 * tree-inline.c (estimate_num_insns): Only account for call
29692 return value if it is used.
29693 (expand_call_inline): Avoid diagnostics on recursive inline
29694 functions here.
29695 * lto-cgraph.c (lto_output_edge): Output edge call costs.
29696 (input_edge): Input edge call costs.
29697
29698 2011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29699
29700 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
29701
29702 2011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
29703
29704 * doc/invoke.texi (Spec Files): Fix typo.
29705
29706 2011-04-06 Eric Botcazou <ebotcazou@adacore.com>
29707
29708 * profile.c (branch_prob): Move declaration of local variable. Remove
29709 obsolete ??? comment. Expand the location explicitly instead of using
29710 the LOCATION_FILE and LOCATION_LINE macros.
29711
29712 2011-04-06 Wei Guozhi <carrot@google.com>
29713
29714 PR target/47855
29715 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
29716 (arm_cond_branch): Likewise.
29717 (arm_cond_branch_reversed): Likewise.
29718 (arm_jump): Likewise.
29719 (push_multi): Likewise.
29720 * config/arm/constraints.md (Py): New constraint.
29721
29722 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29723
29724 PR bootstrap/48471
29725 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
29726 Move these...
29727 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
29728 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
29729 #ifdef DBX_DEBUGGING_INFO.
29730
29731 2011-04-05 Bernd Schmidt <bernds@codesourcery.com>
29732
29733 PR bootstrap/48403
29734 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
29735 if old and new states differ.
29736
29737 2011-04-05 Joseph Myers <joseph@codesourcery.com>
29738
29739 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
29740 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
29741 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
29742 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
29743 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
29744 mcfv4e): Use Alias.
29745 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
29746 ColdFire options to -mcpu= options.
29747
29748 2011-04-05 Jeff Law <law@redhat.com>
29749
29750 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
29751 check if BB is a successor of LOOP->header and return
29752 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
29753
29754 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
29755
29756 * cprop.c (struct reg_use): Remove.
29757 (reg_use_table): Make an array of RTX.
29758 (find_used_regs, constprop_register, local_cprop_pass,
29759 bypass_block): Simplify users of reg_use_table.
29760 (cprop_insn): Likewise. Iterate if copy propagation succeeded
29761 on one of the uses found by find_used_regs.
29762
29763 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29764
29765 PR bootstrap/48469
29766 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
29767 declaration.
29768
29769 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29770
29771 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
29772 as an rtx.
29773 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
29774
29775 2011-04-05 Steven Bosscher <steven@gcc.gnu.org>
29776
29777 PR middle-end/48441
29778 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
29779
29780 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29781
29782 * combine.c: Include obstack.h.
29783 (struct insn_link): Define.
29784 (uid_log_links): Adjust type.
29785 (FOR_EACH_LOG_LINK): New macro.
29786 (insn_link_obstack): Declare.
29787 (alloc_insn_link): Define.
29788 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
29789 type of link variables.
29790 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
29791 (try_combine, record_promoted_values, distribute_notes): Likewise.
29792 (distribute_links): Likewise. Tweak prototype.
29793 (clear_log_links): Delete.
29794 (adjust_for_new_dest): Call alloc_insn_link.
29795 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
29796
29797 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29798
29799 * gcse.c (modify_mem_list): Convert to an array of VECs.
29800 (canon_modify_mem_list, compute_transp): Tweak formatting.
29801 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
29802 (load_killed_in_block_p): Likewise.
29803 (record_last_mem_set_info): Likewise.
29804 (clear_modify_mem_tables): Likewise.
29805
29806 2011-04-05 Tom de Vries <tom@codesourcery.com>
29807
29808 PR middle-end/48461
29809 * function.c (emit_use_return_register_into_block): Only define if
29810 HAVE_return.
29811
29812 2011-04-05 Eric Botcazou <ebotcazou@adacore.com>
29813
29814 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
29815
29816 2011-04-05 Joseph Myers <joseph@codesourcery.com>
29817
29818 * config/rx/rx-opts.h: New.
29819 * config/rx/rx.c (rx_cpu_type): Remove.
29820 (rx_handle_option): Don't assert that global structures are in
29821 use. Access variables via opts pointer. Defer most handling of
29822 OPT_mint_register_. Use error_at.
29823 (rx_option_override): Handle deferred OPT_mint_register_ here.
29824 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
29825 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
29826 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
29827 (rx_cpu_types): New Enum and EnumValue entries.
29828 (mint-register=): Use Defer and use Var accordingly.
29829
29830 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29831
29832 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
29833 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
29834 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
29835 Move these...
29836 (debug_free_queue, debug_nesting, symbol_queue_index):
29837 ...and these...
29838 * dbxout.c: ...to here. Make static.
29839
29840 2011-04-05 Nathan Froyd <froydnj@codesourcery.com>
29841
29842 * gcse.c (modify_pair): Define. Define a VEC of it.
29843 (canon_modify_mem_list): Convert to an array of VECs.
29844 (free_insn_expr_list_list): Delete.
29845 (clear_modify_mem_tables): Call VEC_free instead.
29846 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
29847 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
29848 (canon_list_insert, compute_transp): Likewise.
29849
29850 2011-04-05 Tom de Vries <tom@codesourcery.com>
29851
29852 PR target/43920
29853 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
29854 for size.
29855
29856 2011-04-05 Tom de Vries <tom@codesourcery.com>
29857
29858 PR target/43920
29859 * function.c (emit_use_return_register_into_block): New function.
29860 (thread_prologue_and_epilogue_insns): Use
29861 emit_use_return_register_into_block.
29862
29863 2011-04-05 Tom de Vries <tom@codesourcery.com>
29864
29865 PR target/43920
29866 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
29867 insn.
29868
29869 2011-04-05 Tom de Vries <tom@codesourcery.com>
29870
29871 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
29872
29873 2011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
29874
29875 * config/arm/arm.md (define_constants for unspec): Replace with
29876 define_c_enum.
29877 (define_constants for unspecv): Replace with define_c_enum.
29878 * config/arm/neon.md (define_constants for unspec): Replace with
29879 define_c_enum.
29880
29881 2011-04-04 Richard Henderson <rth@redhat.com>
29882
29883 PR bootstrap/48400
29884 * dwarf2out.c (output_line_info): Always emit line info from
29885 at least one section.
29886 (dwarf2out_init): Create text_section_line_info here ...
29887 (set_cur_line_info_table): ... not here.
29888
29889 2011-04-04 Vladimir Makarov <vmakarov@redhat.com>
29890
29891 PR target/48380
29892 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
29893 not called.
29894
29895 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
29896
29897 2011-04-04 Steven Bosscher <steven@gcc.gnu.org>
29898
29899 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
29900 (expr_equiv_p): Remove.
29901 (insert_set_in_table): Look at <dest, src> pair instead of expr.
29902 (hash_scan_set): Update call to insert_set_in_table.
29903 (dump_hash_table): Dump <dest, src> pair.
29904 (lookup_set): Simplify. Lookup <dest, src> pair.
29905 (compute_transp): Remove, fold heavily simplified code into...
29906 (compute_local_properties): ...here. Expect COMP and TRANSP
29907 unconditionally.
29908 (find_avail_set): Take set directly from struct expr.
29909 (find_bypass-set): Likewise.
29910 (bypass_block): Likewise.
29911 (cprop_insn): Likewise. Remove redundant INSN_P test.
29912
29913 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
29914 checks on form of COND from find_implicit_sets to here.
29915 (find_implicit_sets): Cleanup control flow. Split critical edges
29916 if it exposes implicit sets. Allocate/resize implicit_sets as
29917 necessary.
29918 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
29919 changed something. Run df_analyze after find_implicit_sets if any
29920 edges were split. Do not allocate implicit_sets here.
29921
29922 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
29923 (gcse_obstack): Renamed to cprop_obstack.
29924 (GNEW, GNEWVEC, GNEWVAR): Remove.
29925 (gmalloc): Remove.
29926 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
29927 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
29928 (gcse_alloc): Likewise, and rename to cprop_alloc.
29929 (alloc_gcse_men, free_gcse_mem): Remove.
29930 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
29931 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
29932 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
29933
29934 * cprop.c (oprs_not_set_p): Remove.
29935 (mark_set, mark_clobber): Remove.
29936 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
29937 (reg_not_set_p): New function.
29938 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
29939 (cprop_insn): Likewise.
29940 (cprop_jump): Use FOR_EACH_EDGE.
29941
29942 2011-04-04 Bernd Schmidt <bernds@codesourcery.com>
29943
29944 PR bootstrap/48403
29945 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
29946 (rank_for_schedule): Use scheduled_insns vector instead of
29947 last_scheduled_insn.
29948 (ok_for_early_queue_removal): Likewise.
29949 (queue_to_ready): Search forward in nonscheduled_insns_begin if
29950 we have a dbg_cnt.
29951 (choose_ready): Likewise.
29952 (commit_schedule): Use VEC_iterate.
29953 (schedule_block): Initialize nonscheduled_insns_begin. If we have
29954 a dbg_cnt, use it and ensure the first insn is in the ready list.
29955 (haifa_sched_init): Allocate scheduled_insns.
29956 (sched_extend_ready_list): Don't allocate it; reserve space.
29957 (haifa_sched_finish): Free it.
29958
29959 2011-04-04 Joseph Myers <joseph@codesourcery.com>
29960
29961 * optc-gen.awk: Always remove type from Variable entry before
29962 recording in var_seen.
29963
29964 2011-04-04 Eric Botcazou <ebotcazou@adacore.com>
29965
29966 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
29967 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
29968 call to tidy_fallthru_edges.
29969
29970 2011-04-04 Joseph Myers <joseph@codesourcery.com>
29971
29972 * doc/options.texi (ToLower): Document.
29973 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
29974 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
29975 * opts.h (cl_option): Add cl_tolower field.
29976 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
29977 arguments with lowercase strings.
29978 * config/rx/rx.opt (mcpu=): Add ToLower.
29979 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
29980 argument.
29981
29982 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
29983
29984 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
29985
29986 2011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
29987
29988 * config/vax/vax.c: Include reload.h.
29989
29990 2011-04-04 Anatoly Sokolov <aesok@post.ru>
29991
29992 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
29993 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
29994 (sparc_preferred_reload_class): New function.
29995
29996 2011-04-04 Jakub Jelinek <jakub@redhat.com>
29997
29998 PR debug/48401
29999 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
30000 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
30001
30002 2011-04-03 Nathan Froyd <froydnj@codesourcery.com>
30003
30004 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
30005 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
30006
30007 2011-04-03 Anatoly Sokolov <aesok@post.ru>
30008
30009 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
30010 (ASM_OUTPUT_ALIGNED_BSS): Define.
30011
30012 2011-04-03 Michael Matz <matz@suse.de>
30013
30014 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
30015 and next_slot members.
30016 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
30017 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
30018 (lto_streamer_cache_append): Declare.
30019 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
30020 unsigned index, remove offset parameter, ensure that we append
30021 or update existing entries.
30022 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
30023 parameter, update next_slot for append.
30024 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
30025 parameter.
30026 (lto_streamer_cache_insert_at): Likewise.
30027 (lto_streamer_cache_append): New function.
30028 (lto_streamer_cache_lookup): Use unsigned index.
30029 (lto_streamer_cache_get): Likewise.
30030 (lto_record_common_node): Don't test tree_node_can_be_shared.
30031 (preload_common_node): Adjust call to lto_streamer_cache_insert.
30032 (lto_streamer_cache_delete): Don't free offsets member.
30033 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
30034 (lto_output_string_with_length): Use lto_output_data_stream.
30035 (lto_output_tree_header): Remove ix parameter, don't write it.
30036 (lto_output_builtin_tree): Likewise.
30037 (lto_write_tree): Adjust callers to above, don't track and write
30038 offset, write unsigned index.
30039 (output_unreferenced_globals): Don't emit all global vars.
30040 (write_global_references): Use unsigned indices.
30041 (lto_output_decl_state_refs): Likewise.
30042 (write_symbol): Likewise.
30043 * lto-streamer-in.c (lto_input_chain): Move earlier.
30044 (input_function): Use unsigned index.
30045 (input_alias_pairs): Don't read and then ignore all global vars.
30046 (lto_materialize_tree): Remove ix_p parameter, don't read index,
30047 don't pass it back, use lto_streamer_cache_append.
30048 (lto_register_var_decl_in_symtab): Use unsigned index.
30049 (lto_register_function_decl_in_symtab): Likewise.
30050 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
30051 index.
30052 (lto_get_builtin_tree): Don't read index, use
30053 lto_streamer_cache_append.
30054 (lto_read_tree): Adjust call to lto_materialize_tree.
30055
30056 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
30057 don't use function calls in arguments to MIN.
30058
30059 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
30060 twice.
30061
30062 * gimple.c (gimple_type_leader_entry): Mark deletable.
30063
30064 2011-04-03 Alan Modra <amodra@gmail.com>
30065
30066 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
30067
30068 2011-04-03 Michael Matz <matz@suse.de>
30069
30070 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
30071 an integer.
30072 * tree.h (tree_decl_non_common.vindex): Adjust comment.
30073
30074 2011-04-03 Michael Matz <matz@suse.de>
30075
30076 * cgraphbuild.c (record_reference): Canonicalize constructor values.
30077 * gimple-fold.c (canonicalize_constructor_val): Accept being called
30078 without function context.
30079 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
30080 current_function_decl and cfun.
30081
30082 2011-04-03 Michael Matz <matz@suse.de>
30083
30084 * tree.c (decl_init_priority_insert): Don't create entry for
30085 default priority.
30086 (decl_fini_priority_insert): Ditto.
30087 (fields_compatible_p, find_compatible_field): Remove.
30088 * tree.h (fields_compatible_p, find_compatible_field): Remove.
30089 * gimple.c (gimple_compare_field_offset): Adjust block comment.
30090
30091 2011-04-03 Eric Botcazou <ebotcazou@adacore.com>
30092
30093 * combine.c (try_combine): Remove useless local variable.
30094
30095 2011-04-03 Richard Guenther <rguenther@suse.de>
30096 Ira Rosen <ira.rosen@linaro.org>
30097
30098 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
30099 non-variable offsets and compare the remaining bases of the two
30100 accesses instead of looking for exact same data-ref.
30101
30102 2011-04-02 Kai Tietz <ktietz@redhat.com>
30103
30104 PR target/48416
30105 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
30106
30107 * i386.c (ix86_is_msabi_thiscall): New helper function.
30108 (ix86_is_type_thiscall): New helper function.
30109 (ix86_comp_type_attributes): Handle thiscall for method-functions
30110 special.
30111 (init_cumulative_args): Likewise.
30112 (find_drap_reg): Likewise.
30113 (ix86_static_chain): Likewise.
30114 (x86_this_parameter): Likewise.
30115 (x86_output_mi_thunk): Likewise.
30116
30117 2011-04-01 Olivier Hainque <hainque@adacore.com>
30118 Nicolas Setton <setton@adacore.com>
30119 Eric Botcazou <ebotcazou@adacore.com>
30120
30121 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
30122 (add_gnat_descriptive_type_attribute): New function.
30123 (gen_array_type_die): Call it.
30124 (gen_enumeration_type_die): Likewise.
30125 (gen_struct_or_union_type_die): Likewise.
30126 (modified_type_die): Likewise.
30127 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
30128 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
30129 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
30130
30131 2011-04-01 Jakub Jelinek <jakub@redhat.com>
30132
30133 PR bootstrap/48148
30134 * dwarf2out.c (resolve_addr): Don't call force_decl_die
30135 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
30136
30137 Revert:
30138 2011-03-17 Richard Guenther <rguenther@suse.de>
30139
30140 PR bootstrap/48148
30141 * lto-cgraph.c (input_overwrite_node): Clear the abstract
30142 origin for decls in other ltrans units.
30143 (input_varpool_node): Likewise.
30144
30145 2011-04-01 Jakub Jelinek <jakub@redhat.com>
30146
30147 PR middle-end/48335
30148 * expr.c (expand_assignment): Handle all possibilities
30149 if TO_RTX is CONCAT.
30150 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
30151 (store_split_bit_field): If SUBREG_REG (op0) or
30152 op0 itself has smaller mode than word, return it
30153 for offset 0 and const0_rtx for out-of-bounds stores.
30154 If word is const0_rtx, skip it.
30155
30156 2011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
30157
30158 * config/h8300/h8300.c (print_operand_address): Rename to...
30159 (h8300_print_operand_address): ...this. Make static. Adjust comments.
30160 Call h8300_print_operand and h8300_print_operand_address instead of
30161 print_operand and print_operand_address. Declare.
30162 (print_operand): Renake to...
30163 (h8300_print_operand): ...this. Make static. Adjust comments.
30164 Call h8300_print_operand instead of print_operand. Declare.
30165 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
30166 (h8300_register_move_cost): Likewise.
30167 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
30168 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
30169 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
30170 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
30171 * config/h8300/h8300-protos.h (print_operand): Delete.
30172 (print_operand_address): Delete.
30173
30174 2011-04-01 Richard Henderson <rth@redhat.com>
30175
30176 PR 48400
30177 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
30178 in strict mode before dwarf4. Re-order tests to early out
30179 before switching sections.
30180
30181 2011-04-01 Nathan Froyd <froydnj@codesourcery.com>
30182
30183 * config/h8300/constraints.md: New file.
30184 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
30185 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
30186 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
30187 * config/h8300/predicates.md (bit_operand): Likewise.
30188 (incdec_operand): Use satisfies_constraint_M and
30189 satisfies_constraint_O. Don't use C code block.
30190 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
30191 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
30192 (compute_mov_length): Use satisfies_constraint_G.
30193 (fix_bit_operand): Use satisfies_constraint_U.
30194 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
30195 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
30196 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
30197 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
30198 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
30199 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
30200 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
30201 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
30202 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
30203 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
30204 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
30205 (EXTRA_MEMORY_CONSTRAINT): Delete.
30206
30207 2011-04-01 Andrew Pinski <pinskia@gmail.com>
30208 Michael Meissner <meissner@linux.vnet.ibm.com>
30209
30210 PR target/48262
30211 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
30212 operands, as per the specifications.
30213
30214 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
30215 (vec_extract_evenv4sf): Ditto.
30216 (vec_extract_evenv8hi): Ditto.
30217 (vec_extract_evenv16qi): Ditto.
30218 (vec_extract_oddv4si): Ditto.
30219
30220 2011-03-31 Mark Wielaard <mjw@redhat.com>
30221
30222 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
30223 high_pc attribute if the CU has no associated code. Only output
30224 DW_AT_entry_pc for CU if not generating strict dwarf and
30225 dwarf_version < 4.
30226
30227 2011-04-01 Bernd Schmidt <bernds@codesourcery.com>
30228
30229 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
30230 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
30231 out of ...
30232 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
30233 * final.c (final_start_function): Call the new function rather
30234 than using a NULL argument for dwarf2out_frame_debug.
30235
30236 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
30237 that contains the prologue.
30238
30239 * haifa-sched.c (queue_insn): New arg REASON. All callers
30240 changed. Print it in debugging output.
30241
30242 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
30243
30244 * sched-ebb.c (begin_schedule_ready): Remove second argument.
30245 Split most of the code into...
30246 (begin_move_insn): ... here. New function.
30247 (ebb_sched_info): Add a pointer to it.
30248 * haifa-sched.c (scheduled_insns): New static variable.
30249 (sched_extend_ready_list): Allocate it.
30250 (schedule_block): Use it to record the order of scheduled insns.
30251 Perform RTL changes to move insns only after all scheduling
30252 decisions have been made.
30253 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
30254 begin_move_insn field.
30255 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
30256 * sched-int.h (struct haifa_sched_info): Remove second argument
30257 from begin_schedule_ready hook. Add new member begin_move_insn.
30258 * sched-rgn.c (begin_schedule_ready): Remove second argument.
30259 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
30260
30261 * haifa-sched.c (prune_ready_list): New function, broken out of
30262 schedule_block.
30263 (schedule_block): Use it.
30264
30265 2011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30266
30267 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
30268
30269 2011-04-01 Kai Tietz <ktietz@redhat.com>
30270
30271 * config.gcc (*-*-mingw*): Allow as option the
30272 posix threading model.
30273 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
30274 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
30275 definition.
30276 (CPP_SPEC): Add pthread/no-pthread handling.
30277 (LIB_SPEC): Likewise.
30278 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
30279 (LIB_SPEC): Likewise.
30280 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
30281 flag to pass -pthread option for shared libgcc build.
30282 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
30283 for shared libgcc build.
30284 * config/i386/t-mingw-pthread: New file.
30285 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
30286 New define to enable use of library pthread by default.
30287 * config/i386/mingw.opt (pthread): New driver option.
30288 (no-pthread): New driver option.
30289 * config/i386/cygming.opt: Make sure trailing empty line is retained.
30290 * config/i386/mingw-w64.opt: Likewise.
30291
30292 2011-04-01 Gary Funck <gary@intrepid.com>
30293
30294 * c-decl.c (grokdeclarator): Fix formatting.
30295
30296 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
30297
30298 * expr.c (emit_block_move_via_movmem): Use n_generator_args
30299 instead of n_operands.
30300 (set_storage_via_setmem): Likewise.
30301 * optabs.c (maybe_gen_insn): Likewise.
30302 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
30303 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
30304 (mips_expand_builtin_direct): Likewise.
30305 * config/spu/spu.c (expand_builtin_args): Likewise.
30306
30307 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
30308
30309 * recog.h (insn_data_d): Add n_generator_args.
30310 * genoutput.c (data): Likewise.
30311 (output_insn_data): Print it.
30312 (max_opno, num_dups): Delete.
30313 (scan_operands): Just fill in "d->operand[...]".
30314 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
30315
30316 2011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
30317
30318 * gensupport.h (pattern_stats): New structure.
30319 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
30320 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
30321 (max_operand_1, max_operand_vec): Delete.
30322 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
30323
30324 2011-03-31 Nathan Froyd <froydnj@codesourcery.com>
30325
30326 * emit-rtl.c (emit_pattern_after_setloc): New function.
30327 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
30328 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
30329 (emit_pattern_after): New function.
30330 (emit_insn_after, emit_jump_insn_after): Call it.
30331 (emit_call_insn_after, emit_debug_insn_after): Likewise.
30332 (emit_pattern_before_setloc): New function.
30333 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
30334 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
30335 Likewise.
30336 (emit_pattern_before): New function.
30337 (emit_insn_before, emit_jump_insn_before): Call it.
30338 (emit_call_insn_before, emit_debug_insn_before): Likewise.
30339
30340 2011-03-31 Richard Henderson <rth@redhat.com>
30341
30342 * dwarf2out.c (dw_separate_line_info_ref): Remove.
30343 (dw_separate_line_info_entry): Remove.
30344 (enum dw_line_info_opcode): New.
30345 (dw_line_info_entry): Use it.
30346 (dw_line_info_table, dw_line_info_table_p): New.
30347 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
30348 (line_info_table, line_info_label_num): Remove.
30349 (line_info_table_in_use): Remove.
30350 (separate_line_info_table): Remove.
30351 (separate_line_info_table_allocated): Remove.
30352 (separate_line_info_table_in_use): Remove.
30353 (LINE_INFO_TABLE_INCREMENT): Remove.
30354 (line_info_label_num): New.
30355 (cur_line_info_table): New.
30356 (text_section_line_info, cold_text_section_line_info): New.
30357 (separate_line_info): New.
30358 (SEPARATE_LINE_CODE_LABEL): Remove.
30359 (print_dwarf_line_table): Remove.
30360 (debug_dwarf): Don't dump it.
30361 (output_one_line_info_table): New.
30362 (output_line_info): Use it.
30363 (new_line_info_table): New.
30364 (set_cur_line_info_table): New.
30365 (dwarf2out_switch_text_section): Use it.
30366 (dwarf2out_begin_function): Likewise.
30367 (push_dw_line_info_entry): New.
30368 (dwarf2out_source_line): Rewrite for new line info tables.
30369 (dwarf2out_init): Remove dead initailizations.
30370
30371 2011-03-31 Joseph Myers <joseph@codesourcery.com>
30372
30373 * opts.h (cl_option): Add comments to fields. Add bit-fields for
30374 various flags.
30375 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
30376 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
30377 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
30378 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
30379 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
30380 * opt-functions.awk (flag_init, switch_bit_fields): New.
30381 (switch_flags): Don't handle flags moved to bit-fields. Don't
30382 generate CL_MISSING_OK or CL_SAVE.
30383 * optc-gen.awk: Update to generate bit-field output as well as
30384 flags field.
30385 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
30386 bit-field instead of CL_REJECT_DRIVER flag.
30387 * opts-common.c (generate_canonical_option,
30388 decode_cmdline_option): Use bit-fields instead of CL_* flags.
30389 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
30390 instead of CL_REJECT_NEGATIVE flag.
30391 * toplev.c (print_switch_values): Use cl_report bit-field instead
30392 of CL_REPORT flag.
30393
30394 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
30395
30396 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
30397 a zero minimum index only if it is redundant.
30398
30399 2011-03-31 Vladimir Makarov <vmakarov@redhat.com>
30400
30401 PR rtl-optimization/48381
30402 * ira-color.c (assign_hard_reg): Use hard reg set intersection
30403 instead of ira_class_hard_reg_index for calculating conflicting
30404 hard registers.
30405
30406 2011-03-31 Steven Bosscher <steven@gcc.gnu.org>
30407
30408 * cprop.c: Clean up hash table building.
30409 (reg_avail_info): Remove.
30410 (oprs_available_p): Remove.
30411 (record_last_reg_set_info): Remove.
30412 (record_last_set_info): Remove.
30413 (reg_available_p): New function.
30414 (gcse_constant_p): Do not treat unfolded conditions as constants.
30415 (make_set_regs_unavailable): New function.
30416 (hash_scan_set): Simplify with new reg_available_p.
30417 (compute_hash_table_work): Traverse insns stream only once.
30418 Do not compute reg_avail_info. Traverse insns in reverse order.
30419 Record implicit sets after recording explicit sets from the block.
30420
30421 2011-03-31 Michael Matz <matz@suse.de>
30422
30423 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
30424
30425 2011-03-31 Anatoly Sokolov <aesok@post.ru>
30426
30427 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
30428 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
30429 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
30430 (h8300_mode_dependent_address_p): New function.
30431 (h8300_get_index): Make static.
30432
30433 2011-03-31 Jeff Law <law@redhat.com>
30434
30435 * reload1.c (elimination_effects): Fix typo in recent change.
30436
30437 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
30438 typo potentially leading to null pointer dereference.
30439
30440 * caller-save.c (new_saved_hard_reg): Eliminate return value.
30441 (setup_save_areas): Corresponding changes to avoid useless
30442 assignments.
30443
30444 * jump.c (reversed_comparison_code_parts): Avoid successive return
30445 statements when REVERSE_CONDITION is defined.
30446
30447 * expr.c (expand_assignment): Avoid useless assignments.
30448 (expand_expr_real_1): Likewise.
30449 (expand_expr_real_2): Avoid useless statements.
30450
30451 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
30452
30453 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
30454
30455 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
30456 statements.
30457
30458 * stmt.c (expand_expr_stmt): Avoid useless assignment.
30459
30460 2011-03-31 Joseph Myers <joseph@codesourcery.com>
30461
30462 PR target/47109
30463 * doc/tm.texi.in (TARGET_VERSION): Remove.
30464 * doc/tm.texi: Regenerate.
30465 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
30466 * collect2.c (main): Don't use TARGET_VERSION.
30467 * mips-tdump.c (main): Don't use TARGET_VERSION.
30468 * mips-tfile.c (main): Don't use TARGET_VERSION.
30469 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
30470 * config/rs6000/vxworksae.h: Remove.
30471 * config/alpha/alpha.h (TARGET_VERSION): Remove.
30472 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
30473 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
30474 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
30475 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
30476 * config/arm/arm.h (TARGET_VERSION): Remove.
30477 * config/arm/coff.h (TARGET_VERSION): Remove.
30478 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
30479 * config/arm/elf.h (TARGET_VERSION): Remove.
30480 * config/arm/freebsd.h (TARGET_VERSION): Remove.
30481 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
30482 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
30483 * config/arm/pe.h (TARGET_VERSION): Remove.
30484 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
30485 * config/arm/semi.h (TARGET_VERSION): Remove.
30486 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
30487 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
30488 * config/arm/vxworks.h (TARGET_VERSION): Remove.
30489 * config/avr/avr.h (TARGET_VERSION): Remove.
30490 * config/bfin/bfin.h (TARGET_VERSION): Remove.
30491 * config/fr30/fr30.h (TARGET_VERSION): Remove.
30492 * config/frv/frv.h (TARGET_VERSION): Remove.
30493 * config/h8300/h8300.h (TARGET_VERSION): Remove.
30494 * config/i386/cygwin.h (TARGET_VERSION): Remove.
30495 * config/i386/darwin.h (TARGET_VERSION): Remove.
30496 * config/i386/darwin64.h (TARGET_VERSION): Remove.
30497 * config/i386/djgpp.h (TARGET_VERSION): Remove.
30498 * config/i386/freebsd.h (TARGET_VERSION): Remove.
30499 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
30500 * config/i386/gnu.h (TARGET_VERSION): Remove.
30501 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
30502 * config/i386/i386elf.h (TARGET_VERSION): Remove.
30503 * config/i386/linux.h (TARGET_VERSION): Remove.
30504 * config/i386/linux64.h (TARGET_VERSION): Remove.
30505 * config/i386/lynx.h (TARGET_VERSION): Remove.
30506 * config/i386/mingw32.h (TARGET_VERSION): Remove.
30507 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
30508 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
30509 * config/i386/netware.h (TARGET_VERSION): Remove.
30510 * config/i386/nto.h (TARGET_VERSION): Remove.
30511 * config/i386/openbsd.h (TARGET_VERSION): Remove.
30512 * config/i386/vxworks.h (TARGET_VERSION): Remove.
30513 * config/ia64/elf.h (TARGET_VERSION): Remove.
30514 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
30515 * config/ia64/hpux.h (TARGET_VERSION): Remove.
30516 * config/ia64/linux.h (TARGET_VERSION): Remove.
30517 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
30518 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
30519 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
30520 * config/lm32/lm32.h (TARGET_VERSION): Remove.
30521 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
30522 * config/m32c/m32c.h (TARGET_VERSION): Remove.
30523 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
30524 * config/m32r/m32r.h (TARGET_VERSION): Remove.
30525 * config/m68k/linux.h (TARGET_VERSION): Remove.
30526 * config/m68k/m68k.h (TARGET_VERSION): Remove.
30527 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
30528 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
30529 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
30530 * config/mep/mep.h (TARGET_VERSION): Remove.
30531 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
30532 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
30533 * config/mips/iris6.h (MACHINE_TYPE): Remove.
30534 * config/mips/linux.h (TARGET_VERSION): Remove.
30535 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
30536 * config/mips/vxworks.h (TARGET_VERSION): Remove.
30537 * config/mmix/mmix.h (TARGET_VERSION): Remove.
30538 * config/mn10300/linux.h (TARGET_VERSION): Remove.
30539 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
30540 * config/pa/pa.h (TARGET_VERSION): Remove.
30541 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
30542 * config/picochip/picochip.h (TARGET_VERSION): Remove.
30543 * config/rs6000/aix.h (TARGET_VERSION): Remove.
30544 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
30545 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
30546 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
30547 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
30548 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
30549 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
30550 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
30551 * config/rs6000/linux.h (TARGET_VERSION): Remove.
30552 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
30553 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
30554 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
30555 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
30556 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
30557 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
30558 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
30559 * config/s390/linux.h (TARGET_VERSION): Remove.
30560 * config/s390/s390.h (TARGET_VERSION): Remove.
30561 * config/s390/tpf.h (TARGET_VERSION): Remove.
30562 * config/score/score.h (TARGET_VERSION): Remove.
30563 * config/sh/linux.h (TARGET_VERSION): Remove.
30564 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
30565 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
30566 * config/sh/sh.h (TARGET_VERSION): Remove.
30567 * config/sh/sh64.h (TARGET_VERSION): Remove.
30568 * config/sh/superh.h (TARGET_VERSION): Remove.
30569 * config/sh/vxworks.h (TARGET_VERSION): Remove.
30570 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
30571 * config/sparc/linux.h (TARGET_VERSION): Remove.
30572 * config/sparc/linux64.h (TARGET_VERSION): Remove.
30573 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
30574 TARGET_NAME32, TARGET_NAME): Remove.
30575 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
30576 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
30577 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
30578 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
30579 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
30580 * config/spu/spu.h (TARGET_VERSION): Remove.
30581 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
30582 * config/v850/v850.h (TARGET_VERSION): Remove.
30583 * config/vax/linux.h (TARGET_VERSION): Remove.
30584 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
30585 * config/xtensa/elf.h (TARGET_VERSION): Remove.
30586 * config/xtensa/linux.h (TARGET_VERSION): Remove.
30587
30588 2011-03-31 Eric Botcazou <ebotcazou@adacore.com>
30589
30590 PR target/48142
30591 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
30592 frame-related from frame-unrelated adjustments to the stack pointer.
30593
30594 2011-03-31 Jakub Jelinek <jakub@redhat.com>
30595
30596 * common.opt (fdebug-types-section): Move earlier.
30597 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
30598
30599 2011-03-31 Andreas Tobler <andreast@fgznet.ch>
30600
30601 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
30602 var.
30603
30604 2011-03-30 Nathan Froyd <froydnj@codesourcery.com>
30605
30606 * tree.h (CASE_CHAIN): Define.
30607 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
30608 (gimple_redirect_edge_and_branch): Likewise.
30609
30610 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
30611
30612 PR middle-end/48367
30613 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
30614 calculation.
30615
30616 2011-03-30 Jeff Law <law@redhat.com>
30617
30618 * PR bootstrap/48371
30619 * reload1.c (reload): Fix botch in last change.
30620
30621 * reload.h (struct reload): Fix typo introduced in last change.
30622
30623 2011-03-30 Joseph Myers <joseph@codesourcery.com>
30624
30625 * config/arm/arm.opt (mhard-float, msoft-float): Mark
30626 Undocumented. Remove help text.
30627 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
30628 -mhard-float.
30629
30630 2011-03-30 Joseph Myers <joseph@codesourcery.com>
30631
30632 * doc/options.texi (NegativeAlias): Document.
30633 (Alias): Mention NegativeAlias.
30634 * opt-functions.awk: Handle NegativeAlias.
30635 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
30636 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
30637 * opts.h (CL_NEGATIVE_ALIAS): Define.
30638 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
30639 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
30640 OPT_mspe_.
30641 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
30642 Alias entries.
30643 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
30644 mno-spe and mno-isel instead of mspe=no and -misel=no.
30645
30646 2011-03-29 Mark Wielaard <mjw@redhat.com>
30647
30648 * common.opt (fdebug-types-section): New flag.
30649 * doc/invoke.texi: Document new -fno-debug-types-section flag.
30650 * dwarf2out.c (use_debug_types): New define.
30651 (struct die_struct): Mark die_id with GTY desc use_debug_types.
30652 (print_die): Guard output of type unit signatures using
30653 use_debug_types.
30654 (build_abbrev_table): Replace assert of dwarf_version >= 4
30655 with assert on use_debug_types.
30656 (size_of_die): Likewise.
30657 (unmark_dies): Likewise.
30658 (value_format): Decide AT_ref_external form on use_debug_types.
30659 (output_die): Replace dwarf_version version check guard with
30660 use_debug_types where appropriate.
30661 (modified_type_die): Likewise.
30662 (gen_reference_type_die): Likewise.
30663 (dwarf2out_start_source_file): Likewise.
30664 (dwarf2out_end_source_file): Likewise.
30665 (prune_unused_types_walk_attribs): Likewise.
30666 (dwarf2out_finish): Likewise.
30667
30668 2011-03-30 Vladimir Makarov <vmakarov@redhat.com>
30669
30670 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
30671
30672 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
30673
30674 PR rtl-optimization/48332
30675 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
30676 mode of input operand N and modeN to its actual mode.
30677
30678 2011-03-30 Jeff Law <law@redhat.com>
30679
30680 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
30681 define accessor macro.
30682 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
30683 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
30684 (reg_equiv_init): Likewise.
30685 (reg_equivs_size): New variable.
30686 (reg_equiv_init_size): Remove.
30687 (allocate_initial_values): Move prototype to here from....
30688 * integrate.h (allocate_initial_values): Remove prototype.
30689 * integrate.c: Include reload.h.
30690 (allocate_initial_values): Corresponding changes.
30691 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
30692 (fix_reg_equiv_init, no_equiv): Corresponding changes.
30693 (update_equiv_regs): Corresponding changes.
30694 (ira): Corresponding changes.
30695 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
30696 (push_secondary_reload): Corresponding changes.
30697 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
30698 (make_memloc, find_reloads_address): Corresponding changes.
30699 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
30700 (find_reloads_address_1): Corresponding changes.
30701 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
30702 (refers_to_regno_for_reload_p): Corresponding changes.
30703 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
30704 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
30705 * reload1.c: Include ggc.h.
30706 (grow_reg_equivs): New function.
30707 (replace_pseudos_in, reload): Corresponding changes.
30708 (calculate_needs_all_insns, alter_regs): Corresponding changes.
30709 (eliminate_regs_1, elimination_effects): Corresponding changes.
30710 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
30711 (delete_output_reload): Likewise.
30712 * caller-save.c (mark_referenced_regs): Corresponding changes.
30713 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
30714 * frv/predicates.md (frv_load_operand): Corresponding changes.
30715 * microblaze/microblaze.c (double_memory_operand): Corresponding
30716 changes.
30717 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
30718 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
30719 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
30720 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
30721 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
30722 changes.
30723 * pa/pa.c (emit_move_sequence): Corresponding changes.
30724 * vax/vax.c (nonindexed_address_p): Corresponding changes.
30725
30726 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
30727
30728 PR target/47551
30729 * config/arm/arm.c (coproc_secondary_reload_class): Handle
30730 structure modes. Don't check neon_vector_mem_operand for
30731 vector or structure modes.
30732
30733 2011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
30734 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
30735
30736 PR target/43590
30737 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
30738 operand 1 and reshuffle the operands to match.
30739 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
30740
30741 2011-03-30 Christian Schüler <cschueler@gmx.de>
30742
30743 PR driver/48208
30744 * config/c.opt (F): Added 'Driver' to -F option.
30745
30746 PR driver/48260
30747 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
30748 handler function.
30749 * config/darwin.opt: Added '-arch' option.
30750
30751 2011-03-30 Nick Clifton <nickc@redhat.com>
30752
30753 * config/rx/rx.md: Add peepholes and patterns to combine
30754 extending loads and simple arithmetic instructions.
30755 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
30756 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
30757 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
30758 modes to use pre-decrement and post-increment addressing.
30759 (rx_is_restricted_memory_address): Add range checking of REG+INT
30760 addresses.
30761 (rx_print_operand): Add support for %Q. Fix handling of %Q.
30762 (rx_memory_move_cost): Adjust cost of stores.
30763 (rx_adjust_insn_length): New function.
30764
30765 2011-03-30 Jakub Jelinek <jakub@redhat.com>
30766
30767 PR c/48305
30768 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
30769 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
30770 matching arg00/arg01 types.
30771
30772 2011-03-30 Eric Botcazou <ebotcazou@adacore.com>
30773
30774 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
30775 last_location to UNKNOWN_LOCATION.
30776
30777 2011-03-30 H.J. Lu <hongjiu.lu@intel.com>
30778
30779 PR target/48349
30780 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
30781 FLOAT_SSE_REGS.
30782
30783 2011-03-30 Joseph Myers <joseph@codesourcery.com>
30784 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30785
30786 PR bootstrap/48337
30787 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
30788 Init(PROCESSOR_V7).
30789 (sparc_cpu): Likewise.
30790 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
30791 PROCESSOR_V7.
30792
30793 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
30794
30795 PR target/48336
30796 PR middle-end/48342
30797 PR rtl-optimization/48345
30798 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
30799 hard regs for given mode from profitable regs when doing secondary
30800 allocation.
30801
30802 2011-03-29 Jeff Law <law@redhat.com>
30803
30804 PR bootstrap/48327
30805 * tree-ssa-threadupdate.c (struct redirection_data): Remove
30806 do_not_duplicate field.
30807 (lookup_redirection_data): Corresponding changes.
30808 (create_duplicates): Always create a template block.
30809 (redirect_edges): Remove code which reused the original block
30810 when it was going to become unreachable code.
30811 (thread_block): Don't set do_not_duplicate field.
30812
30813 2011-03-29 Joseph Myers <joseph@codesourcery.com>
30814
30815 * lto-opts.c (register_user_option_p, lto_register_user_option):
30816 Make type argument unsigned.
30817 * lto-streamer.h (lto_register_user_option): Make type argument
30818 unsigned.
30819 * opth-gen.awk: Make CL_* macros unsigned.
30820 * opts-common.c (find_opt): Make lang_mask argument unsigned.
30821 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
30822 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
30823 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
30824 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
30825 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
30826 (find_opt): Make lang_mask argument unsigned.
30827
30828 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
30829
30830 PR rtl-optimization/48331
30831 PR rtl-optimization/48334
30832 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
30833 for any used algorithm.
30834
30835 2011-03-29 Vladimir Makarov <vmakarov@redhat.com>
30836
30837 * ira-conflicts.c (build_object_conflicts): Add unused attribute
30838 to parent_max.
30839
30840 2011-03-29 Uros Bizjak <ubizjak@gmail.com>
30841
30842 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
30843 (alpha_option_override): Don't set alpha_sr_alias_set.
30844 (emit_frame_store_1): Use gen_frame_mem rather than calling
30845 set_mem_alias_set.
30846 (alpha_expand_epilogue): Ditto.
30847
30848 2011-03-29 Ira Rosen <ira.rosen@linaro.org>
30849
30850 PR tree-optimization/48290
30851 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
30852 vectorization, check that relevant phis in the basic block after
30853 the inner loop are really inner loop's exit phis.
30854
30855 2011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
30856
30857 PR debug/48190
30858 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
30859 (cached_dw_loc_list_def): New structure.
30860 (cached_dw_loc_list): New typedef.
30861 (cached_dw_loc_list_table): New variable.
30862 (cached_dw_loc_list_table_hash): New function.
30863 (cached_dw_loc_list_table_eq): Likewise.
30864 (add_location_or_const_value_attribute): Take a bool cache_p.
30865 Cache the list when the parameter is true.
30866 (gen_formal_parameter_die): Update caller.
30867 (gen_variable_die): Likewise.
30868 (dwarf2out_finish): Likewise.
30869 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
30870 while generating debug info for the decl.
30871 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
30872 (dwarf2out_init): Initialize cached_dw_loc_list_table.
30873 (resolve_addr): Cache the result of resolving a chain of
30874 location lists.
30875
30876 2011-03-28 Vladimir Makarov <vmakarov@redhat.com>
30877
30878 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
30879 conflict object hard regset nodes have intersecting hard reg sets.
30880
30881 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
30882 after regstat_init_n_sets_and_refs.
30883
30884 * ira.c: Add more comments at the top.
30885 (setup_stack_reg_pressure_class, setup_pressure_classes):
30886 Add comments how we compute the register pressure classes.
30887 (setup_allocno_and_important_classes): Add more comments.
30888 (setup_class_translate_array, reorder_important_classes)
30889 (setup_reg_class_relations): Add comments.
30890
30891 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
30892 start of the file.
30893
30894 * ira-color.c: Add 2011 to the Copyright line.
30895 (assign_hard_reg): Add more comments.
30896 (improve_allocation): Ditto.
30897
30898 * ira-costs.c: Add 2011 to the Copyright line.
30899 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
30900 comments.
30901 (setup_regno_cost_classes_by_mode): Ditto.
30902
30903 Initial patches from ira-improv branch:
30904
30905 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
30906
30907 * ira-build.c (ira_create_object): Remove initialization of
30908 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
30909 (ira_create_allocno): Remove initialization of
30910 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
30911 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
30912 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
30913 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
30914 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
30915 Initialize ALLOCNO_ADD_DATA.
30916 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
30917 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
30918 ALLOCNO_REG.
30919 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
30920 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
30921
30922 * ira.c (ira_reallocate): Remove.
30923 (setup_pressure_classes): Call
30924 ira_init_register_move_cost_if_necessary. Use
30925 ira_register_move_cost instead of ira_get_register_move_cost.
30926 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
30927 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
30928
30929 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
30930 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
30931 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
30932 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
30933 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
30934 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
30935 Fix formatting.
30936 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
30937 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
30938 (struct allocno_color_data): New.
30939 (allocno_color_data_t): New typedef.
30940 (allocno_color_data): New definition.
30941 (ALLOCNO_COLOR_DATA): New macro.
30942 (struct object_color_data): New.
30943 (object_color_data_t): New typedef.
30944 (object_color_data): New definition.
30945 (OBJECT_COLOR_DATA): New macro.
30946 (update_copy_costs, calculate_allocno_spill_cost): Call
30947 ira_init_register_move_cost_if_necessary. Use
30948 ira_register_move_cost instead of ira_get_register_move_cost.
30949 (move_spill_restore, update_curr_costs): Ditto.
30950 (allocno_spill_priority): Make it inline.
30951 (color_pass): Allocate and free allocno_color_dat and object_color_data.
30952 (struct coalesce_data, coalesce_data_t): New.
30953 (allocno_coalesce_data): New definition.
30954 (ALLOCNO_COALESCE_DATA): New macro.
30955 (merge_allocnos, coalesced_allocno_conflict_p): Use
30956 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
30957 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
30958 (coalesce_allocnos): Ditto.
30959 (setup_coalesced_allocno_costs_and_nums): Ditto.
30960 (collect_spilled_coalesced_allocnos): Ditto.
30961 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
30962 (setup_slot_coalesced_allocno_live_ranges): Ditto.
30963 (coalesce_spill_slots): Ditto.
30964 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
30965 free allocno_coalesce_data.
30966
30967 * ira-conflicts.c: Fix formatting.
30968 (process_regs_for_copy): Call
30969 ira_init_register_move_cost_if_necessary. Use
30970 ira_register_move_cost instead of ira_get_register_move_cost.
30971 (build_object_conflicts): Optimize.
30972
30973 * ira-costs.c (record_reg_classes): Optimize. Call
30974 ira_init_register_move_cost_if_necessary. Use
30975 ira_register_move_cost, ira_may_move_in_cost, and
30976 ira_may_move_out_cost instead of ira_get_register_move_cost and
30977 ira_get_may_move_cost.
30978 (record_address_regs): Ditto.
30979 (scan_one_insn): Optimize.
30980 (find_costs_and_classes): Optimize.
30981 (process_bb_node_for_hard_reg_moves): Call
30982 ira_init_register_move_cost_if_necessary. Use
30983 ira_register_move_cost instead of ira_get_register_move_cost.
30984
30985 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
30986 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
30987 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
30988 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
30989 definitions.
30990 (ira_initiate_emit_data, ira_finish_emit_data)
30991 (create_new_allocno): New functions.
30992 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
30993 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
30994 Use ira_register_move_cost instead of ira_get_register_move_cost.
30995
30996 * ira-int.h: Fix some comments.
30997 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
30998 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
30999 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
31000 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
31001 add_data.
31002 (struct ira_allocno): Make mode and aclass a bitfield. Move other
31003 bitfield after mode. Make hard_regno a short int. Make
31004 hard_regno short. Remove first_coalesced_allocno and
31005 next_coalesced_allocno. Move mem_optimized_dest_p,
31006 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
31007 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
31008 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
31009 temp, colorable_p. Add new member add_data.
31010 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
31011 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
31012 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
31013 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
31014 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
31015 (ALLOCNO_ADD_DATA): New macro.
31016 (ira_emit_data_t): New typedef.
31017 (struct ira_emit_data): New. Move mem_optimized_dest_p,
31018 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
31019 from struct ira_allocno.
31020 (ALLOCNO_EMIT_DATA): New macro.
31021 (ira_allocno_emit_data, allocno_emit_reg): New.
31022 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
31023 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
31024 (OBJECT_ADD_DATA): New macro.
31025 (ira_reallocate): Remove.
31026 (ira_initiate_emit_data, ira_finish_emit_data): New.
31027 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
31028 (ira_init_register_move_cost_if_necessary): New.
31029 (ira_object_conflict_iter_next): Merge into
31030 ira_object_conflict_iter_cond.
31031 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
31032
31033 * ira-live.c (process_single_reg_class_operands): Call
31034 ira_init_register_move_cost_if_necessary. Use
31035 ira_register_move_cost instead of ira_get_register_move_cost.
31036
31037 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
31038
31039 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
31040
31041 * ira-costs.c: Fix formatting.
31042 (cost_classes, cost_classes_num): Remove.
31043 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
31044 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
31045 (cost_classes_del, cost_classes_htab): New.
31046 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
31047 (initiate_regno_cost_classes, setup_cost_classes): New.
31048 (setup_regno_cost_classes_by_aclass): New.
31049 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
31050 (record_reg_classes): Use regno_cost_classes instead of
31051 cost_classes. Move checking opposite operand up.
31052 (record_address_regs): Use regno_cost_classes
31053 instead of cost_classes.
31054 (scan_one_insn): Ditto. Use always general register.
31055 (print_allocno_costs): Use regno_cost_classes instead of
31056 cost_classes.
31057 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
31058 (find_costs_and_classes): Set up cost classes for each registers.
31059 Use also their mode for this. Use regno_cost_classes instead of
31060 cost_classes.
31061 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
31062 cost_classes.
31063 (free_ira_costs, ira_init_costs): Don't use cost_classes.
31064 (ira_costs, ira_set_pseudo_classes): Call
31065 initiate_regno_cost_classes and finish_regno_cost_classes.
31066
31067 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
31068
31069 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
31070
31071 * target.def (ira_cover_classes): Remove.
31072
31073 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
31074
31075 * doc/tm.texi.in: Ditto.
31076
31077 * ira-conflicts.c: Remove mentioning cover classes from the file.
31078 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
31079 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
31080
31081 * targhooks.c (default_ira_cover_classes): Remove.
31082
31083 * targhooks.h (default_ira_cover_classes): Ditto.
31084
31085 * haifa-sched.c: Remove mentioning cover classes from the file.
31086 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
31087 ira_pressure_classes and ira_pressure_classes_num instead of
31088 ira_reg_class_cover_size and ira_reg_class_cover. Use
31089 sched_regno_pressure_class instead of sched_regno_cover_class.
31090 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
31091 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31092
31093 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
31094 classes from the file.
31095 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
31096 (struct object_hard_regs, struct object_hard_regs_node): New.
31097 (struct ira_object): New members profitable_hard_regs,
31098 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
31099 (struct ira_allocno): Rename cover_class to aclass. Rename
31100 cover_class_cost and updated_cover_class_cost to class_cost and
31101 updated_class_cost. Remove splay_removed_p and
31102 left_conflict_size. Add new members colorable_p.
31103 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
31104 (ALLOCNO_COLORABLE_P): New macro.
31105 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
31106 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
31107 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
31108 (OBJECT_...): Rename parameter C to O.
31109 (OBJECT_PROFITABLE_HARD_REGS): New macro.
31110 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
31111 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
31112 (struct target_ira_int): New members x_ira_max_memory_move_cost,
31113 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
31114 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
31115 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
31116 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
31117 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
31118 x_ira_reg_class_subunion.
31119 (ira_max_memory_move_cost, ira_max_register_move_cost)
31120 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
31121 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
31122 (ira_important_class_nums, ira_reg_class_superunion): New macros.
31123 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
31124 (ira_reg_class_union): Rename to ira_reg_class_subunion.
31125 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
31126 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
31127 (ira_tune_allocno_costs_and_cover_classes): Rename to
31128 ira_tune_allocno_costs.
31129 (ira_debug_hard_regs_forest): New.
31130 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
31131 (ira_object_conflict_iter_next): Fix comments.
31132 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
31133 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
31134 cover_class to aclass.
31135 (ira_allocate_and_accumulate_costs): Ditto.
31136 (ira_allocate_and_set_or_copy_costs): Ditto.
31137
31138 * opts.c (decode_options): Remove ira_cover_class check.
31139
31140 * ira-color.c: Remove mentioning cover classes from the file. Use
31141 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
31142 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
31143 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
31144 (splay-tree.h): Remove include.
31145 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
31146 before copy_freq_compare_func.
31147 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
31148 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
31149 New definitions.
31150 (hard_regs_roots, hard_regs_node_vec): Ditto.
31151 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
31152 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
31153 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
31154 (create_new_object_hard_regs_node): Ditto.
31155 (add_new_object_hard_regs_node_to_forest): Ditto.
31156 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
31157 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
31158 Ditto.
31159 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
31160 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
31161 (remove_unused_object_hard_regs_nodes): Ditto.
31162 (enumerate_object_hard_regs_nodes): Ditto.
31163 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
31164 (object_hard_regs_subnode_t): Ditto.
31165 (struct object_hard_regs_subnode): Ditto.
31166 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
31167 (setup_object_hard_regs_subnode_index): Ditto.
31168 (get_object_hard_regs_subnodes_num): Ditto.
31169 (form_object_hard_regs_nodes_forest): Ditto.
31170 (finish_object_hard_regs_nodes_tree): Ditto.
31171 (finish_object_hard_regs_nodes_forest): Ditto.
31172 (allocnos_have_intersected_live_ranges_p): Rename to
31173 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
31174 (pseudos_have_intersected_live_ranges_p): Rename to
31175 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
31176 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
31177 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
31178 (update_copy_costs): Remove assert. Skip cost update if the hard
31179 reg does not belong the class.
31180 (assign_hard_reg): Process only profitable hard regs.
31181 (uncolorable_allocnos_num): Make it scalar.
31182 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
31183 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
31184 and ira_reg_class_max_nregs.
31185 (bucket_allocno_compare_func): Check frequency first.
31186 (sort_bucket): Add compare function as a parameter.
31187 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
31188 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
31189 (push_allocno_to_stack): Rewrite for checking new allocno
31190 colorability.
31191 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
31192 (push_only_colorable): Pass new parameter to sort_bucket.
31193 (push_allocno_to_spill): Remove.
31194 (allocno_spill_priority_compare): Make it inline and rewrite.
31195 (splay_tree_allocate, splay_tree_free): Remove.
31196 (allocno_spill_sort_compare): New function.
31197 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
31198 build and use splay tree. Choose first allocno in uncolorable
31199 allocno bucket to spill. Remove setting spill cost.
31200 (all_conflicting_hard_regs): Remove.
31201 (setup_allocno_available_regs_num): Check only profitable hard
31202 regs. Print info about hard regs nodes.
31203 (setup_allocno_left_conflicts_size): Remove.
31204 (put_allocno_into_bucket): Don't call
31205 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
31206 (improve_allocation): New.
31207 (color_allocnos): Call setup_profitable_hard_regs,
31208 form_object_hard_regs_nodes_forest, improve_allocation,
31209 finish_object_hard_regs_nodes_forest. Setup spill cost.
31210 (print_loop_title): Use pressure classes.
31211 (color_allocnso): Ditto.
31212 (do_coloring): Remove allocation and freeing splay_tree_node_pool
31213 and allocnos_for_spilling.
31214 (ira_sort_regnos_for_alter_reg): Don't setup members
31215 {first,next}_coalesced_allocno.
31216 (color): Remove allocating and freeing removed_splay_allocno_vec.
31217 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
31218 prohibited_class_mode_regs.
31219
31220 * ira-lives.c: Remove mentioning cover classes from the file. Fix
31221 formatting.
31222 (update_allocno_pressure_excess_length): Use pressure classes.
31223 (inc_register_pressure, dec_register_pressure): Check for pressure
31224 class.
31225 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
31226 pressure class. Use ira_reg_class_nregs instead of
31227 ira_reg_class_max_nregs.
31228 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
31229 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
31230 (single_reg_class): Use ira_reg_class_nregs instead of
31231 ira_reg_class_max_nregs.
31232 (process_bb_node_lives): Use pressure classes.
31233
31234 * ira-emit.c: Remove mentioning cover classes from the file. Use
31235 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
31236 (change_loop): Use pressure classes.
31237 (modify_move_list): Call ira_set_allocno_class instead of
31238 ira_set_allocno_cover_class.
31239
31240 * ira-build.c: Remove mentioning cover classes from the file. Use
31241 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
31242 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
31243 ALLOCNO_UPDATED_CLASS_COST instead of
31244 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
31245 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
31246 (ira_create_allocno): Remove initialization of
31247 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
31248 ALLOCNO_COLORABLE_P.
31249 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
31250 Update conflict regs for the objects.
31251 (create_cap_allocno): Remove assert. Don't propagate
31252 ALLOCNO_AVAILABLE_REGS_NUM.
31253 (ira_free_allocno_costs): New function.
31254 (finish_allocno): Change a part of code into call of
31255 ira_free_allocno_costs.
31256 (low_pressure_loop_node_p): Use pressure classes.
31257 (object_range_compare_func): Don't compare classes.
31258 (setup_min_max_conflict_allocno_ids): Ditto.
31259
31260 * loop-invariant.c: Remove mentioning cover classes from the file.
31261 Use ira_pressure_classes and ira_pressure_classes_num instead of
31262 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
31263 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
31264 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31265 Use reg_allocno_class instead of reg_cover_class.
31266 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
31267 STACK_REG_COVER_CLASS.
31268 (get_regno_cover_class): Rename to get_regno_pressure_class.
31269 (move_loop_invariants): Initialize and finalize regstat.
31270
31271 * ira.c: Remove mentioning cover classes from the file. Add
31272 comments about coloring without cover classes. Use ALLOCNO_CLASS
31273 instead of ALLOCNO_COVER_CLASS. Fix formatting.
31274 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
31275 setup_class_subset_and_memory_move_costs.
31276 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
31277 (setup_cover_and_important_classes): Rename to
31278 setup_allocno_and_important_classes.
31279 (setup_class_translate_array): New.
31280 (setup_class_translate): Call it for allocno and pressure classes.
31281 (cover_class_order): Rename to allocno_class_order.
31282 (comp_reg_classes_func): Use ira_allocno_class_translate instead
31283 of ira_class_translate.
31284 (reorder_important_classes): Set up ira_important_class_nums.
31285 (setup_reg_class_relations): Set up ira_reg_class_superunion.
31286 (print_class_cover): Rename to print_classes. Add parameter.
31287 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
31288 Print pressure classes too.
31289 (find_reg_class_closure): Rename to find_reg_classes. Don't call
31290 setup_reg_subclasses.
31291 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
31292 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
31293 (setup_prohibited_class_mode_regs): Use
31294 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
31295 (clarify_prohibited_class_mode_regs): New function.
31296 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
31297 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
31298 (ira_init_once): Initialize them.
31299 (free_register_move_costs): Process them.
31300 (ira_init): Move calls of find_reg_classes and
31301 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
31302 Call clarify_prohibited_class_mode_regs.
31303 (ira_no_alloc_reg): Remove.
31304 (too_high_register_pressure_p): Use pressure classes.
31305
31306 * sched-deps.c: Remove mentioning cover classes from the file.
31307 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
31308 ira_pressure_classes and ira_pressure_classes_num instead of
31309 ira_reg_class_cover_size and ira_reg_class_cover.
31310 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
31311 sched_regno_pressure_class instead of sched_regno_cover_class.
31312 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
31313 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
31314
31315 * ira.h: Add 2010 to Copyright.
31316 (ira_no_alloc_reg): Remove external.
31317 (struct target_ira): Rename x_ira_hard_regno_cover_class,
31318 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
31319 x_ira_class_translate to x_ira_hard_regno_allocno_class,
31320 x_ira_allocno_classes_num, x_ira_allocno_classes, and
31321 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
31322 x_ira_pressure_classes, x_ira_pressure_class_translate, and
31323 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
31324 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
31325 x_ira_no_alloc_regs.
31326 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
31327 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
31328 ira_allocno_classes_num and ira_allocno_classes.
31329 (ira_class_translate): Rename to ira_allocno_class_translate.
31330 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
31331 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
31332 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
31333 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
31334 (ira_no_alloc_regs): New.
31335
31336 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
31337 classes from the file. Use ALLOCNO_CLASS instead of
31338 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
31339 ALLOCNO_COVER_CLASS_COST.
31340 (regno_cover_class): Rename to regno_aclass.
31341 (record_reg_classes): Use ira_reg_class_subunion instead of
31342 ira_reg_class_union.
31343 (record_address_regs): Check overflow.
31344 (scan_one_insn): Ditto.
31345 (print_allocno_costs): Print total mem cost fore regional allocation.
31346 (print_pseudo_costs): Use REG_N_REFS.
31347 (find_costs_and_classes): Use classes intersected with them on the
31348 1st pass. Check overflow. Use ira_reg_class_subunion instead of
31349 ira_reg_class_union. Use ira_allocno_class_translate and
31350 regno_aclass instead of ira_class_translate and regno_cover_class.
31351 Modify code for finding regno_aclass. Setup preferred classes for
31352 the next pass.
31353 (setup_allocno_cover_class_and_costs): Rename to
31354 setup_allocno_class_and_costs. Use regno_aclass instead of
31355 regno_cover_class. Use ira_set_allocno_class instead of
31356 ira_set_allocno_cover_class.
31357 (init_costs, finish_costs): Use regno_aclass instead of
31358 regno_cover_class.
31359 (ira_costs): Use setup_allocno_class_and_costs instead of
31360 setup_allocno_cover_class_and_costs.
31361 (ira_tune_allocno_costs_and_cover_classes): Rename to
31362 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
31363 by processing objects. Use ira_reg_class_max_nregs instead of
31364 ira_reg_class_nregs.
31365
31366 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
31367
31368 * sched-int.h: Remove mentioning cover classes from the file.
31369 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
31370
31371 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
31372 classes from the file.
31373 (struct reg_pref): Rename coverclass into allocnoclass.
31374 (reg_cover_class): Rename to reg_allocno_class.
31375
31376 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
31377
31378 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
31379
31380 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
31381
31382 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
31383
31384 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
31385
31386 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
31387
31388 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
31389
31390 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
31391
31392 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
31393
31394 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
31395
31396 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
31397 (i386_ira_cover_classes): Ditto.
31398
31399 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
31400
31401 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
31402
31403 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
31404
31405 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
31406
31407 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
31408
31409 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
31410
31411 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
31412 (mips_ira_cover_classes): Ditto.
31413
31414 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
31415
31416 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
31417
31418 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
31419
31420 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
31421
31422 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
31423
31424 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
31425 (IRA_COVER_CLASSES_VSX): Ditto.
31426
31427 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
31428 (rs6000_ira_cover_classes): Ditto.
31429
31430 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
31431
31432 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
31433
31434 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
31435
31436 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
31437
31438 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
31439
31440 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
31441
31442 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
31443
31444 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
31445
31446 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
31447
31448 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
31449
31450 2011-03-29 Jakub Jelinek <jakub@redhat.com>
31451
31452 PR debug/48253
31453 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
31454 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
31455 dw_fde_unlikely_section_end_label, cold_in_std_section,
31456 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
31457 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
31458 fields.
31459 (output_fde): Use dw_fde_second_{begin,end} if second is
31460 true, otherwise dw_fde_{begin,end}.
31461 (output_call_frame_info): Test dw_fde_second_begin != NULL
31462 instead of dw_fde_switched_sections.
31463 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
31464 fields, initialize new fields. Initialize in_std_section
31465 unconditionally from the first partition.
31466 (dwarf2out_end_epilogue): Don't override dw_fde_end when
31467 dw_fde_second_begin is non-NULL.
31468 (dwarf2out_switch_text_section): Stop initializing removed
31469 dw_fde_struct fields, initialize new fields, initialize
31470 also dw_fde_end here. Set dw_fde_switch_cfi even when
31471 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
31472 (struct var_loc_list_def): Add last_before_switch field.
31473 (arange_table, arange_table_allocated, arange_table_in_use,
31474 ARANGE_TABLE_INCREMENT, add_arange): Removed.
31475 (size_of_aranges): Count !in_std_section and !second_in_std_section
31476 hunks in fdes, instead of looking at arange_table_in_use.
31477 (output_aranges): Add aranges_length argument, don't call
31478 size_of_aranges here. Instead of using aranges_table*
31479 emit ranges for fdes when !in_std_section resp.
31480 !second_in_std_section.
31481 (dw_loc_list): Break ranges crossing section switch.
31482 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
31483 use dw_fde_second_end instead of dw_fde_end as end of last range.
31484 (gen_subprogram_die): Don't call add_arange. Use
31485 dw_fde_{begin,end} for first partition and if switched
31486 section dw_fde_second_{begin,end} for the second.
31487 (var_location_switch_text_section_1,
31488 var_location_switch_text_section): New functions.
31489 (dwarf2out_begin_function): Initialize cold_text_section even
31490 when function_section () isn't text_section.
31491 (prune_unused_types): Don't walk arange_table.
31492 (dwarf2out_finish): Don't needlessly test
31493 flag_reorder_blocks_and_partition when testing cold_text_section_used.
31494 If info_section_emitted, call size_of_aranges and if it indicates
31495 non-empty .debug_aranges, call output_aranges with the computed
31496 size. Stop using removed dw_fde_struct fields, use
31497 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
31498 for second.
31499
31500 PR debug/48203
31501 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
31502 create ENTRY_VALUE if incoming or address of incoming's MEM
31503 is a hard REG.
31504 * dwarf2out.c (mem_loc_descriptor): Don't emit
31505 DW_OP_GNU_entry_value of DW_OP_fbreg.
31506 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
31507 on ENTRY_VALUE is able to find the canonical parameter VALUE.
31508 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
31509 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
31510 ENTRY_VALUE_EXPs.
31511 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
31512 is a REG_P or MEM_P with REG_P address, compute hash directly
31513 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
31514 (preserve_only_constants): Don't clear VALUES forwaring
31515 ENTRY_VALUE to some other VALUE.
31516
31517 2011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
31518
31519 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
31520 instead of GEN_INT.
31521
31522 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
31523
31524 * cfgexpand.c (expand_gimple_cond): Always set the source location and
31525 block before expanding the statement.
31526 (expand_gimple_stmt_1): Likewise. Set them here...
31527 (expand_gimple_stmt): ...and not here. Tidy.
31528 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
31529 unknown.
31530
31531 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
31532
31533 * Makefile.in: New rule for cprop.o.
31534 * gcse.c: Move constant/copy propagation to cprop.c.
31535 (compute_local_properties): Only handle expression tables.
31536 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
31537 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
31538 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
31539 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
31540 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
31541 compute_cprop_data, find_used_regs, try_replace_reg,
31542 find_avail_set, cprop_jump, constprop_register, cprop_insn,
31543 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
31544 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
31545 find_bypass_set, reg_killed_on_edge, bypass_block,
31546 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
31547 execute_rtl_cprop, pass_rtl_cprop): Move to...
31548 * cprop.c: ...here. New file, constant/copy propagation for RTL
31549 moved from gcse.c to here with minor cleanups in duplicated code.
31550
31551 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
31552
31553 * config/i386/i386.c (flag_opts): Fix a typo in
31554 -mavx256-split-unaligned-store.
31555
31556 2011-03-28 Anatoly Sokolov <aesok@post.ru>
31557
31558 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
31559 LIBCALL_VALUE): Remove macros.
31560 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
31561 TARGET_FUNCTION_VALUE_REGNO_P): Define.
31562 (h8300_function_value, h8300_libcall_value,
31563 h8300_function_value_regno_p): New functions.
31564
31565 2011-03-28 Anatoly Sokolov <aesok@post.ru>
31566
31567 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
31568
31569 2011-03-28 Jeff Law <law@redhat.com>
31570
31571 * tree-ssa-threadupdate.c (redirect_edges): Call
31572 create_edge_and_update_destination_phis as needed.
31573 (create_edge_and_update_destination_phis): Accept new BB argument.
31574 All callers updated.
31575 (thread_block): Do not update the profile when threading around
31576 intermediate blocks.
31577 (thread_single_edge): Likewise.
31578 (determine_bb_domination_status): If BB is not a successor of the
31579 loop header, return NONDOMINATING.
31580 (register_jump_thread): Note when we register a jump thread around
31581 an intermediate block.
31582 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
31583 (thread_across_edge): Use it.
31584
31585 2011-03-28 Tristan Gingold <gingold@adacore.com>
31586
31587 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
31588 when for_return is 2.
31589
31590 2011-03-28 Jeff Law <law@redhat.com>
31591
31592 * var-tracking.c (canonicalize_values_mark): Delete unused
31593 lhs assignment.
31594 (canonicalize_values_star, set_variable_part): Likewise.
31595 (clobber_variable_part, delete_variable_part): Likewise.
31596
31597 2011-03-28 Steven Bosscher <steven@gcc.gnu.org>
31598
31599 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
31600
31601 2011-03-28 Martin Jambor <mjambor@suse.cz>
31602
31603 * tree-inline.c (expand_call_inline): Do not check that destination
31604 node is analyzed.
31605 (optimize_inline_calls): Assert that destination node is analyzed.
31606 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
31607 not call tree_lowering_passes.
31608 * cgraph.h (cgraph_analyze_function): Declare.
31609 * cgraphunit.c (cgraph_analyze_function): Make public.
31610
31611 2011-03-28 Joseph Myers <joseph@codesourcery.com>
31612
31613 * config/sparc/sparc-opts.h: New.
31614 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
31615 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
31616 (sparc_option_override): Store processor_type enumeration rather
31617 than string in cpu_default. Remove name and enumeration from
31618 cpu_table. Directly default -mcpu then default -mtune from -mcpu
31619 without using sparc_select. Use target_flags_explicit instead of
31620 fpu_option_set.
31621 * config/sparc/sparc.h (enum processor_type): Move to
31622 sparc-opts.h.
31623 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
31624 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
31625 HeaderInclude entry.
31626 (mcpu=, mtune=): Use Var and Enum.
31627 (sparc_processor_type): New Enum and EnumValue entries.
31628
31629 2011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31630 Iain Sandoe <iains@gcc.gnu.org>
31631
31632 PR target/48245
31633 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
31634
31635 2011-03-28 Eric Botcazou <ebotcazou@adacore.com>
31636
31637 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
31638 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
31639 Insert new statements at it in lieu of STMT.
31640 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
31641 * tree-vect-stmts.c (vectorizable_store): Likewise.
31642 (vectorizable_load): Likewise.
31643
31644 2011-03-28 Uros Bizjak <ubizjak@gmail.com>
31645
31646 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
31647 (divtf3): Ditto.
31648 (multf3): Ditto.
31649 (subtf3): Ditto.
31650
31651 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
31652
31653 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
31654 unaligned 256bit load/store.
31655 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
31656 (*avx_movdqu<avxmodesuffix>): Likewise.
31657
31658 2011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31659
31660 PR target/48288
31661 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
31662 * config/pa/pa.md (iordi3): Use new predicate in expander.
31663 (iorsi3): Likewise.
31664
31665 2011-03-27 Anatoly Sokolov <aesok@post.ru>
31666
31667 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
31668 FUNCTION_VALUE_REGNO_P): Remove macros.
31669 * config/mips/mips-protos.h (mips_function_value): Remove.
31670 * config/mips/mips.c (mips_function_value): Rename to...
31671 (mips_function_value_1): ... this. Make static. Handle receiving
31672 the function type in 'fn_decl_or_type' argument.
31673 (mips_function_value, mips_libcall_value,
31674 mips_function_value_regno_p): New function.
31675 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
31676 TARGET_FUNCTION_VALUE_REGNO_P): Define.
31677
31678 2011-03-27 H.J. Lu <hongjiu.lu@intel.com>
31679
31680 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
31681 and -mavx256-split-unaligned-store.
31682 (ix86_option_override_internal): Split 32-byte AVX unaligned
31683 load/store by default.
31684 (ix86_avx256_split_vector_move_misalign): New.
31685 (ix86_expand_vector_move_misalign): Use it.
31686
31687 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
31688 -mavx256-split-unaligned-store.
31689
31690 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
31691 256bit load/store. Generate unaligned store on misaligned memory
31692 operand.
31693 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
31694 256bit load/store.
31695 (*avx_movdqu<avxmodesuffix>): Likewise.
31696
31697 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
31698 -mavx256-split-unaligned-store.
31699
31700 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
31701
31702 PR target/38598
31703 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
31704 Update commentary.
31705
31706 2011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
31707
31708 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
31709 opno arguments with an expand_operand. Use create_input_operand.
31710 (mips_prepare_builtin_target): Delete.
31711 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
31712 functions.
31713 (mips_expand_builtin_direct): Use create_output_operand and
31714 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
31715 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
31716 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
31717
31718 2011-03-27 Ira Rosen <ira.rosen@linaro.org>
31719
31720 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
31721 function.
31722 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
31723
31724 2011-03-26 Eric Botcazou <ebotcazou@adacore.com>
31725
31726 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
31727 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
31728 basic blocks and call commit_edge_insertions directly.
31729 (fixup_abnormal_edges): Move from here to...
31730 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
31731 on the edges and return whether some have actually been inserted.
31732 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
31733 compensation code.
31734
31735 2011-03-26 Andrey Belevantsev <abel@ispras.ru>
31736
31737 PR rtl-optimization/48144
31738 * sel-sched-ir.c (merge_history_vect): Factor out from ...
31739 (merge_expr_data): ... here.
31740 (av_set_intersect): Rename to av_set_code_motion_filter.
31741 Update all callers. Call merge_history_vect when an expression
31742 is found in both sets.
31743 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
31744
31745 2011-03-26 Alan Modra <amodra@gmail.com>
31746
31747 * config/rs6000/predicates.md (word_offset_memref_op): Handle
31748 cmodel medium addresses.
31749 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
31750 64-bit gpr loads and stores.
31751 (rs6000_secondary_reload_ppc64): New function.
31752 * config/rs6000/rs6000-protos.h: Declare it.
31753 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
31754
31755 2011-03-26 Alan Modra <amodra@gmail.com>
31756
31757 PR target/47487
31758 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
31759 GNU Go in traceback table.
31760
31761 2011-03-25 Richard Henderson <rth@redhat.com>
31762
31763 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
31764 if there are exactly 6 operands.
31765 (set_storage_via_setmem): Similarly.
31766
31767 2011-03-25 Kai Tietz <ktietz@redhat.com>
31768
31769 * collect2.c (write_c_file_stat): Handle backslash
31770 as right-hand directory separator.
31771 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
31772 checking just for slash.
31773 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
31774 instead of checking for trailing slash.
31775 * gcc.c (record_temp_file): Use filename_cmp instead
31776 of strcmp.
31777 (do_spec_1): Likewise.
31778 (replace_outfile_spec_function): Likewise.
31779 (is_directory): Use filename_ncmp instead of strncmp.
31780 (print_multilib_info): Likewise.
31781 * gcov.c (find_source): Use filename_cmp instead
31782 instead of strcmp.
31783 (make_gcov_file_name): Fix order of slash/backslash
31784 checks.
31785 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
31786 (add_standard_paths): Likewise.
31787 * mips-tfile.c (saber_stop): Handle backslash.
31788 * prefix.c (update_path): Use filename_ncmp instead of
31789 strncmp.
31790 * profile.c (output_location): Use filename_cmp instead
31791 of strcmp.
31792 * read-md.c (handle_toplevel_file): Handle backslash.
31793 * tlink.c (frob_extension): Likewise.
31794 * tree-cfg.c (same_line_p): Use filename_cmp instead of
31795 strcmp.
31796 * tree-dump.c (dequeue_and_dump): Handle backslash.
31797 * tree.c (get_file_function_name): Likewise.
31798 * gengtype.c (read_input_list): Likewise.
31799 (get_file_realbasename): Likewise.
31800 (get_output_file_with_visibility): Use filename_cmp
31801 instead of strcmp.
31802
31803 2011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
31804
31805 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
31806 case to VFPv1.
31807
31808 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
31809
31810 * fold-const.c (expr_location_or): New function.
31811 (fold_truth_not_expr): Call it.
31812
31813 2011-03-25 Jeff Law <law@redhat.com>
31814
31815 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
31816 va_end.
31817 * c-family/c-common.c (def_fn_type): Likewise.
31818 * emit-rtl.c (gen_rtvec): Likewise.
31819 * lto/lto-lang.c (def_fn_type): Likewise.
31820
31821 2011-03-25 Richard Guenther <rguenther@suse.de>
31822
31823 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
31824 also generate copies.
31825 (fini_copy_prop): Handle constant values properly.
31826
31827 2011-03-25 Jakub Jelinek <jakub@redhat.com>
31828
31829 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
31830 mode size instead of bitsize with DWARF2_ADDR_SIZE.
31831 (hash_loc_operands, compare_loc_operands): Handle
31832 DW_OP_GNU_entry_value.
31833
31834 2011-03-25 Kai Tietz <ktietz@redhat.com>
31835
31836 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
31837 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
31838 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
31839 comment and use macro TARGET_64BIT_MS_ABI instead.
31840 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
31841 and change default behavior for 32-bit MS_ABI.
31842 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
31843 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
31844 32-bit, too.
31845 (ix86_cfun_abi): Likewise.
31846 (ix86_maybe_switch_abi): Adjust comment.
31847 (init_cumulative_args): Check for bit-ness in MS_ABI case.
31848 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
31849 instead of checking for SYSV_ABI.
31850 (ix86_nsaved_sseregs): Likewise.
31851 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
31852 to 16 bytes.
31853 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
31854 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
31855 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
31856 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
31857 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
31858
31859 2011-03-25 Richard Guenther <rguenther@suse.de>
31860
31861 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
31862 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
31863 (verify_gimple): Remove.
31864 * tree-cfg.c (verify_gimple_call): Merge verification
31865 from verify_stmts.
31866 (verify_gimple_phi): Merge verification from verify_stmts.
31867 (verify_gimple_label): New function.
31868 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
31869 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
31870 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
31871 (verify_stmts): Rename to verify_gimple_in_cfg.
31872 (verify_gimple_in_cfg): New function.
31873 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
31874 * tree-ssa.c (verify_ssa): Likewise.
31875 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
31876
31877 2011-03-25 Richard Guenther <rguenther@suse.de>
31878
31879 * passes.c (init_optimization_passes): Add FRE pass after
31880 early SRA.
31881
31882 2011-03-25 Bernd Schmidt <bernds@codesourcery.com>
31883 Andrew Stubbs <ams@codesourcery.com>
31884
31885 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
31886 for Cortex-A8.
31887 (arm_movdi_vfp_cortexa8): New pattern.
31888 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
31889 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
31890 instructions when tuning for Cortex-A8. Set attribute "arch".
31891 * config/arm/arm.md: Move include arm-tune.md up a bit.
31892 (define_attr "arch"): Add "onlya8" and "nota8" values.
31893 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
31894
31895 2011-03-25 Nathan Froyd <froydnj@codesourcery.com>
31896
31897 PR bootstrap/48282
31898 Revert:
31899 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
31900
31901 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
31902 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
31903 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
31904 * passes.c (init_optimization_passes): Move
31905 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
31906
31907 2011-03-25 Kai Tietz <ktietz@redhat.com>
31908
31909 * c-typeck.c (comptypes_internal): Replace target
31910 hook call of comp_type_attributes by version in tree.c file.
31911 * gimple.c (gimple_types_compatible_p_1): Likewise.
31912 * tree-ssa.c (useless_type_conversion_p): Likewise.
31913 * tree.c (build_type_attribute_qual_variant): Likewise.
31914 (attribute_value_equal): New static helper function.
31915 (comp_type_attributes): New function.
31916 (merge_attributes): Use attribute_value_equal for comparison.
31917 (attribute_list_contained): Likewise.
31918 * tree.h (comp_type_attributes): New prototype.
31919
31920 2011-03-25 Richard Guenther <rguenther@suse.de>
31921
31922 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
31923 of complex types at -O0.
31924 (verify_gimple_assign_binary): Likewise.
31925 (verify_gimple_assign_ternary): Likewise.
31926
31927 2011-03-24 Mark Wielaard <mjw@redhat.com>
31928
31929 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
31930 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
31931
31932 2011-03-24 Mark Wielaard <mjw@redhat.com>
31933
31934 PR debug/48041
31935 * dwarf2out.c (output_abbrev_section): Only write table when
31936 abbrev_die_table_in_use > 1.
31937
31938 2011-02-24 Richard Henderson <rth@redhat.com>
31939
31940 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
31941 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
31942 (alpha_expand_unaligned_load_words): Use extql.
31943 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
31944 (emit_insxl): Handle all modes for consistency.
31945
31946 2011-02-24 Richard Henderson <rth@redhat.com>
31947
31948 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
31949 (alpha_expand_unaligned_load): Likewise.
31950 (alpha_expand_unaligned_store): Likewise.
31951 (alpha_expand_unaligned_load_words): Likewise.
31952 (alpha_expand_unaligned_store_words): Likewise.
31953 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
31954 (alpha_split_lock_test_and_set_12): Likewise.
31955 (print_operand, alpha_fold_builtin_extxx): Likewise.
31956 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
31957 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
31958 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
31959 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
31960 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
31961 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
31962 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
31963 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
31964 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
31965 (extwl, extll, extql): Similarly.
31966 (inswh, inslh, insqh): Similarly.
31967 (mskbl, mskwl, mskll, mskql): Similarly.
31968 (mskwh, msklh, mskqh): Similarly.
31969
31970 2011-02-24 Richard Henderson <rth@redhat.com>
31971
31972 * config/alpha/alpha.md (attribute isa): Add er, ner.
31973 (attribute enabled): Handle them.
31974 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
31975
31976 2011-02-24 Richard Henderson <rth@redhat.com>
31977
31978 * config/alpha/alpha.md (attribute isa): Add vms.
31979 (attribute enabled): Handle it.
31980 (*movsf): Merge *movsf_{nofix,fix,nofp}.
31981 (*movdf): Merge *movdf_{nofix,fix,nofp}.
31982 (*movtf): Rename from *movtf_internal for consistency.
31983 (*movsi): Merge with *movsi_nt_vms.
31984 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
31985 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
31986 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
31987 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
31988
31989 2011-02-24 Richard Henderson <rth@redhat.com>
31990
31991 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
31992 (extendqisi2, extendhisi2): Likewise.
31993 (extendqidi2): Simplify BWX/non-BWX expansions.
31994 (extendhidi2): Similarly.
31995
31996 2011-02-24 Richard Henderson <rth@redhat.com>
31997
31998 * config/alpha/alpha.md (attribute isa): New.
31999 (attribute enabled): New.
32000 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
32001 (zero_extendqisi2, zero_extendqidi2): Similarly.
32002 (zero_extendhisi2, zero_extendhidi2): Similarly.
32003 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
32004
32005 2011-02-24 Richard Henderson <rth@redhat.com>
32006
32007 * config/alpha/predicates.md (input_operand): Revert last change;
32008 update comment to mention 32-bit VMS rather than Windows.
32009
32010 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
32011
32012 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
32013 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
32014 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
32015 * passes.c (init_optimization_passes): Move
32016 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
32017
32018 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
32019
32020 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
32021
32022 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
32023
32024 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
32025 correctly.
32026
32027 2011-03-24 Jakub Jelinek <jakub@redhat.com>
32028
32029 PR debug/48204
32030 * simplify-rtx.c (simplify_const_unary_operation): Call
32031 real_convert when changing mode class with FLOAT_EXTEND.
32032
32033 2011-03-24 Nick Clifton <nickc@redhat.com>
32034
32035 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
32036 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
32037 * config/rx/rx.c (rx_option_override): Set align_jumps,
32038 align_loops and align_labels if not set by the user.
32039 (rx_align_for_label): New function.
32040 (rx_max_skip_for_label): New function.
32041 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
32042 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
32043 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
32044 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
32045 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
32046
32047 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
32048
32049 PR rtl-optimization/48263
32050 * optabs.c (expand_binop_directly): Reinstate convert_modes code
32051 and original commutative_p handling. Use maybe_gen_insn.
32052
32053 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32054
32055 * reload.c (find_reloads_subreg_address): Add address_reloaded
32056 parameter and return true there if the full address has been
32057 reloaded.
32058 (find_reloads_toplev): Pass address_reloaded flag.
32059 (find_reloads_address_1): Don't use address_reloaded parameter.
32060
32061 2011-03-24 Jeff Law <law@redhat.com>
32062
32063 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
32064 unused variable "ann".
32065 (remove_unused_locals): Likewise.
32066
32067 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
32068 statement.
32069
32070 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
32071 after it is freed.
32072
32073 2011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32074
32075 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
32076 for invalid symbolic addresses.
32077 (s390_secondary_reload): Don't use s390_check_symref_alignment for
32078 larl operands.
32079
32080 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
32081
32082 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
32083 the argument in calls to fold_truth_not_expr.
32084
32085 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
32086
32087 * tree.c (record_node_allocation_statistics): New function.
32088 (make_node_stat, copy_node_stat, build_string): Call it.
32089 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
32090 (build1_stat, build_omp_clause): Likewise.
32091
32092 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
32093
32094 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
32095 last commit.
32096
32097 2011-03-24 Richard Guenther <rguenther@suse.de>
32098
32099 PR tree-optimization/48271
32100 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
32101 blocks that still exist.
32102
32103 2011-03-24 Richard Guenther <rguenther@suse.de>
32104
32105 PR tree-optimization/48270
32106 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
32107 not free datarefs before ddrs.
32108
32109 2011-03-24 Eric Botcazou <ebotcazou@adacore.com>
32110
32111 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
32112 from the address built for a reference with variable offset.
32113
32114 2011-03-24 Uros Bizjak <ubizjak@gmail.com>
32115
32116 PR target/48237
32117 * config/i386/i386.md (*movdf_internal_rex64): Do not split
32118 alternatives that can be handled with movq or movabsq insn.
32119 (*movdf_internal): Disable for !TARGET_64BIT.
32120 (*movdf_internal_nointeger): Ditto.
32121 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
32122
32123 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
32124
32125 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
32126 (FUNCTION_ARG_ADVANCE): Likewise.
32127 * tm.texi.in: Change references to them to hook references.
32128 * tm.texi: Regenerate.
32129 * targhooks.c (default_function_arg): Eliminate check for target macro.
32130 (default_function_incoming_arg): Likewise.
32131 (default_function_arg_advance): Likewise.
32132 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
32133 (function_arg_advance): Likewise.
32134 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
32135
32136 2011-03-24 Richard Guenther <rguenther@suse.de>
32137
32138 PR middle-end/48269
32139 * tree-object-size.c (addr_object_size): Do not double-account
32140 for MEM_REF offsets.
32141
32142 2011-03-24 Diego Novillo <dnovillo@google.com>
32143
32144 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
32145 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
32146 (lto_input_data_block): Move from lto-opts.c. Make extern.
32147 Update all users.
32148 (lto_input_string): Rename from input_string. Make extern.
32149 Update all users.
32150 * lto-streamer-out.c (lto_output_string_with_length): Rename from
32151 output_string_with_length.
32152 Output 0 to indicate a non-NULL string. Update all callers to
32153 not emit 0.
32154 (lto_output_string): Rename from output_string. Make extern.
32155 Update all users.
32156 (lto_output_decl_state_streams): Make extern.
32157 (lto_output_decl_state_refs): Make extern.
32158 * lto-streamer.h (lto_input_string): Declare.
32159 (lto_input_data_block): Declare.
32160 (lto_output_string): Declare.
32161 (lto_output_string_with_length): Declare.
32162 (lto_output_decl_state_streams): Declare.
32163 (lto_output_decl_state_refs): Declare.
32164
32165 2011-03-24 Richard Guenther <rguenther@suse.de>
32166
32167 PR tree-optimization/46562
32168 * tree.c (build_invariant_address): New function.
32169 * tree.h (build_invariant_address): Declare.
32170 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
32171 a renamed function moved ...
32172 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
32173 Take valueization callback parameter.
32174 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
32175 * gimple-fold.h: New file.
32176 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
32177 (ccp_fold, fold_const_aggregate_ref,
32178 fold_ctor_reference, fold_nonarray_ctor_reference,
32179 fold_array_ctor_reference, fold_string_cst_ctor_reference,
32180 get_base_constructor): Move ...
32181 * gimple-fold.c: ... here.
32182 (gimple_fold_stmt_to_constant_1): New function
32183 split out from ccp_fold. Take a valueization callback parameter.
32184 Valueize all operands.
32185 (gimple_fold_stmt_to_constant): New wrapper function.
32186 (fold_const_aggregate_ref_1): New function split out from
32187 fold_const_aggregate_ref. Take a valueization callback parameter.
32188 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
32189 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
32190 invariant POINTER_PLUS_EXPRs to invariant form.
32191 (vn_valueize): New function.
32192 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
32193 * tree-vrp.c (vrp_valueize): New function.
32194 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
32195 to fold statements to constants.
32196 * tree-ssa-pre.c (eliminate): Properly guard propagation of
32197 function declarations.
32198 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
32199 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
32200
32201 2011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
32202
32203 * config/h8300/predicates.md (jump_address_operand): Fix register
32204 mode check.
32205
32206 2011-03-24 Ira Rosen <ira.rosen@linaro.org>
32207
32208 * doc/invoke.texi (max-stores-to-sink): Document.
32209 * params.h (MAX_STORES_TO_SINK): Define.
32210 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
32211 if either vectorization or if-conversion is disabled.
32212 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
32213 tree-vect-data-refs.c vect_equal_offsets.
32214 (dr_equal_offsets_p): New function.
32215 (find_data_references_in_bb): Remove static.
32216 * tree-data-ref.h (find_data_references_in_bb): Declare.
32217 (dr_equal_offsets_p): Likewise.
32218 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
32219 (vect_drs_dependent_in_basic_block): Update calls to
32220 vect_equal_offsets.
32221 (vect_check_interleaving): Likewise.
32222 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
32223 (cond_if_else_store_replacement): Rename to...
32224 (cond_if_else_store_replacement_1): ... this. Change arguments and
32225 documentation.
32226 (cond_if_else_store_replacement): New function.
32227 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
32228 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
32229
32230 2011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
32231
32232 PR target/46934
32233 * config/arm/arm.md (casesi): Use the gen_int_mode() function
32234 to subtract lower bound instead of GEN_INT().
32235
32236 2011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
32237
32238 PR other/48179
32239 PR other/48221
32240 PR other/48234
32241 * doc/extend.texi (Alignment): Move section to match order in TOC.
32242 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
32243 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
32244
32245 2011-03-23 Jeff Law <law@redhat.com>
32246
32247 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
32248 before removing the edge.
32249
32250 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
32251 it may have been freed by redirect_branch_edge or
32252 redirect_edge_succ_nodup.
32253
32254 2011-03-23 Richard Guenther <rguenther@suse.de>
32255
32256 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
32257 (check_va_list_escapes): Likewise.
32258 (check_all_va_list_escapes): Likewise.
32259
32260 2011-03-23 Richard Guenther <rguenther@suse.de>
32261
32262 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
32263 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
32264 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
32265 (alias.o): Likewise.
32266 (ipa-type-escape.o): Remove.
32267 (ipa-struct-reorg.o): Likewise.
32268 (GTFILES): Remove ipa-struct-reorg.c.
32269 * alias.c: Do not include ipa-type-escape.h.
32270 * tree-ssa-alias.c: Likewise.
32271 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
32272 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
32273 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
32274 and ipa-type-escape passes.
32275 * tree-pass.h (pass_ipa_type_escape): Remove.
32276 (pass_ipa_struct_reorg): Likewise.
32277 * ipa-struct-reorg.h: Remove.
32278 * ipa-struct-reorg.c: Likewise.
32279 * ipa-type-escape.h: Likewise.
32280 * ipa-type-escape.c: Likewise.
32281 * doc/invoke.texi (-fipa-struct-reorg): Remove.
32282 (--param struct-reorg-cold-struct-ratio): Likewise.
32283 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
32284 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
32285 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
32286
32287 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32288
32289 * config/s390/2084.md: Enable all insn reservations also for z9_ec
32290 cpu attribute value.
32291 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
32292 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
32293 * config/s390/s390.c (processor_flags_table): New constant array.
32294 (s390_handle_arch_option): Remove.
32295 (s390_handle_option): Remove s390_handle_arch_option invocations
32296 and OPT_mwarn_framesize_ handling.
32297 (s390_option_override): Remove s390_handle_arch_option invocation.
32298 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
32299 warnings.
32300 * config/s390/s390.md (cpu attribute): Add z9_ec value.
32301 * config/s390/s390.opt (s390_tune, s390_arch)
32302 (march=): Replace s390_arch_option enum and values with
32303 processor_type. Set variable name to s390_arch. Set
32304 initialization value.
32305 (mtune=): Replace s390_arch_option with processor_type. Set
32306 variable name to s390_tune. Set initialization value.
32307
32308 2011-03-23 Julian Brown <julian@codesourcery.com>
32309
32310 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
32311 accesses which are not naturally aligned.
32312
32313 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
32314
32315 PR target/47553
32316 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
32317
32318 2011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
32319
32320 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
32321 parameter from "int" to "enum insn_code".
32322 (expand_operand_type): New enum.
32323 (expand_operand): New structure.
32324 (create_expand_operand): New function.
32325 (create_fixed_operand, create_output_operand): Likewise
32326 (create_input_operand, create_convert_operand_to): Likewise.
32327 (create_convert_operand_from, create_address_operand): Likewise.
32328 (create_integer_operand): Likewise.
32329 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
32330 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
32331 (expand_insn, expand_jump_insn): Likewise.
32332 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
32333 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
32334 (expand_movstr, expand_builtin___clear_cache): Likewise.
32335 (expand_builtin_lock_release): Likewise.
32336 * explow.c (allocate_dynamic_stack_space): Likewise.
32337 (probe_stack_range): Likewise. Allow check_stack to FAIL,
32338 and use the default handling in that case.
32339 * expmed.c (check_predicate_volatile_ok): Delete.
32340 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
32341 (emit_cstore): Likewise.
32342 * expr.c (emit_block_move_via_movmem): Likewise.
32343 (set_storage_via_setmem, expand_assignment): Likewise.
32344 (emit_storent_insn, try_casesi): Likewise.
32345 (emit_single_push_insn): Likewise. Allow the expansion to fail.
32346 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
32347 (expand_vec_shift_expr, expand_binop_directly): Likewise.
32348 (expand_twoval_unop, expand_twoval_binop): Likewise.
32349 (expand_unop_direct, emit_indirect_jump): Likewise.
32350 (emit_conditional_move, vector_compare_rtx): Likewise.
32351 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
32352 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
32353 (expand_sync_lock_test_and_set): Likewise.
32354 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
32355 (emit_unop_insn): Likewise.
32356 (expand_copysign_absneg): Change icode to an insn_code.
32357 (create_convert_operand_from_type): New function.
32358 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
32359 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
32360 (expand_insn, expand_jump_insn): Likewise.
32361 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
32362 than const_int_operand for operand 2.
32363
32364 2011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32365
32366 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
32367 if possible.
32368
32369 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
32370
32371 * emit-rtl.c (emit_pattern_before_noloc): New function.
32372 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
32373 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
32374 (emit_pattern_after_noloc): New function.
32375 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
32376 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
32377
32378 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
32379
32380 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
32381 (__ffsDI2): Likewise.
32382
32383 2011-03-22 Richard Henderson <rth@redhat.com>
32384
32385 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
32386 of !TARGET_ABI_OPEN_VMS.
32387 (alpha_trampoline_init, alpha_start_function): Likewise.
32388 (alpha_expand_epilogue, alpha_file_start): Likewise.
32389 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
32390 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
32391 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
32392 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
32393 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
32394
32395 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32396
32397 * config/s390/s390-opts.h: New.
32398 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
32399 s390_arch_flags, s390_warn_framesize, s390_stack_size,
32400 s390_stack_guard): Remove.
32401 (s390_handle_arch_option): Return void. Take enum
32402 s390_arch_option value instead of string and searching array.
32403 (s390_handle_option): Don't assert that global structures are in
32404 use. Access variables via opts pointer. Use error_at. Don't use
32405 sscanf for -mstack-guard= or -mstack-size=. Update call to
32406 s390_handle_arch_option.
32407 (s390_option_override): Update call to s390_handle_arch_option.
32408 (s390_emit_prologue): Use %d format for s390_stack_size in
32409 diagnostic. Use %wd for HOST_WIDE_INT.
32410 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
32411 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
32412 * config/s390/s390.opt (config/s390/s390-opts.h): New
32413 HeaderInclude entry.
32414 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
32415 s390_arch_flags, s390_warn_framesize): New Variable entries.
32416 (s390_arch_option): New Enum and EnumValue entries.
32417 (march=): Use Enum instead of Var.
32418 (mstack-guard=, mstack-size=): Use UInteger and Var.
32419 (mtune=): Use Enum.
32420
32421 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32422
32423 * config/score/score.c (score_handle_option): Don't assert that
32424 global structures are in use. Access target_flags via opts
32425 pointer. Use value of -march= option to determine target_flags
32426 settings.
32427 * config/score/score.opt (march=): Use Enum.
32428 (score_arch): New Enum and EnumValue entries.
32429
32430 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32431
32432 * config/mep/mep.c (option_mtiny_specified): Remove.
32433 (mep_option_override): Move register handling for -mivc2 from
32434 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
32435 instead of option_mtiny_specified.
32436 (mep_handle_option): Access target_flags via opts pointer. Don't
32437 assert that global structures are in use. Defer part of -mivc2
32438 handling and move it to mep_option_override.
32439 * config/mep/mep.opt (IVC2): New Mask entry.
32440 (mivc2): Use Var and Defer instead of Mask.
32441
32442 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32443
32444 * config/v850/v850-opts.h: New.
32445 * config/v850/v850.c (small_memory): Replace with
32446 small_memory_physical_max array. Make that array static const.
32447 (v850_handle_memory_option): Take integer value of argument. Take
32448 gcc_options pointer, option text and location. Return void.
32449 Update for changes to small memory structures.
32450 (v850_handle_option): Access target_flags via opts pointer. Don't
32451 assert that global structures are in use. Update calls to
32452 v850_handle_memory_option.
32453 (v850_encode_data_area): Update references to small memory settings.
32454 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
32455 (enum small_memory_type): Move to v850-opts.h.
32456 * config/v850/v850.opt (config/v850/v850-opts.h): New
32457 HeaderInclude entry.
32458 (small_memory_max): New Variable entry.
32459 (msda): Replace by pair of options msda= and msda-. Use UInteger.
32460 (mtda, mzda): Likewise.
32461
32462 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32463
32464 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
32465 pointer. Don't assert that global structures are in use.
32466
32467 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32468
32469 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
32470 via opts pointer. Don't assert that global structures are in use.
32471
32472 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32473
32474 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
32475 (munix=93): Use Var.
32476 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
32477 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
32478 * config/pa/pa-opts.h: New.
32479 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
32480 (pa_handle_option): Don't assert that global structures are in
32481 use. Access target_flags via opts pointer. Don't handle
32482 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
32483 OPT_munix_98 here.
32484 (pa_option_override): Handle deferred OPT_mfixed_range_.
32485
32486 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32487
32488 * config/mn10300/mn10300-opts.h: New.
32489 * config/mn10300/mn10300.c (mn10300_processor,
32490 mn10300_tune_string): Remove.
32491 (mn10300_handle_option): Don't assert that global structures are
32492 in use. Access mn10300_processor via opts pointer. Don't handle
32493 OPT_mtune_ here.
32494 * config/mn10300/mn10300.h (enum processor_type): Move to
32495 mn10300-opts.h.
32496 (mn10300_processor): Remove.
32497 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
32498 HeaderInclude entry.
32499 (mn10300_processor): New Variable entry.
32500 (mtune=): Use Var.
32501
32502 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32503
32504 * config/microblaze/microblaze.c: Don't include opts.h.
32505 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
32506 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
32507 (mno-clearbss): Use Var and Warn.
32508
32509 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32510
32511 * config/m32r/m32r-opts.h: New.
32512 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
32513 (m32r_handle_option): Don't assert that global structures are in
32514 use. Access target_flags and m32r_cache_flush_func via opts
32515 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
32516 OPT_mno_flush_trap here.
32517 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
32518 include of m32r-opts.h.
32519 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
32520 HeaderInclude entry.
32521 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
32522 (mmodel=): Use Enum and Var.
32523 (m32r_model): New Enum and EnumValue entries.
32524 (mno-flush-trap): Use Var.
32525 (msdata=): Use Enum and Var.
32526 (m32r_sdata): New Enum and EnumValue entries.
32527
32528 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32529
32530 * config/m32c/m32c.c: Don't include opts.h.
32531 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
32532 m32c_handle_option): Remove.
32533 (m32c_option_override): Check global_options_set.x_target_memregs
32534 instead of target_memregs_set.
32535 * config/m32c/m32c.h (target_memregs): Remove.
32536 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
32537 variable.
32538
32539 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32540
32541 * config/iq2000/iq2000-opts.h: New.
32542 * config/iq2000/iq2000.c: Don't include opts.h.
32543 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
32544 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
32545 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
32546 HeaderInclude entry.
32547 (iq2000_tune): New Variable entry.
32548 (march=): Add comment. Use Enum.
32549 (iq2000_arch): New Enum and EnumValue entries.
32550 (mcpu=): Use Enum and Var.
32551 (iq2000_tune): New Enum and EnumValue entries.
32552
32553 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32554
32555 * config/ia64/ia64-opts.h: New.
32556 * config/ia64/ia64.c (ia64_tune): Remove.
32557 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
32558 here. Use error_at.
32559 (ia64_option_override): Handle deferred OPT_mfixed_range_.
32560 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
32561 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
32562 HeaderInclude entry.
32563 (ia64_tune): New Variable entry.
32564 (mfixed-range=): Use Defer and Var.
32565 (mtune=): Use Enum and Var.
32566 (ia64_tune): New Enum and EnumValue entries.
32567
32568 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32569
32570 * config/frv/frv-opts.h: New.
32571 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
32572 frv-opts.h.
32573 (frv_cpu_type): Remove.
32574 * config/frv/frv.c: Don't include opts.h.
32575 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
32576 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
32577 (frv_cpu_type): New Variable entry.
32578 (frv_cpu): New Enum and EnumValue entries.
32579
32580 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32581
32582 * config/cris/cris.c (cris_handle_option): Access target_flags via
32583 opts pointer. Don't assert that global structures are in use.
32584 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
32585 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
32586
32587 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32588
32589 * config/bfin/bfin-opts.h: New.
32590 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
32591 bfin_si_revision, bfin_workarounds): Remove.
32592 (bfin_cpus): Make static const.
32593 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
32594 not bfin_lib_id_given.
32595 (bfin_handle_option): Don't set bfin_lib_id_given. Access
32596 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
32597 pointer. Use error_at. Don't assert that global structures are in use.
32598 * config/bfin/bfin.h: Include bfin-opts.h.
32599 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
32600 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
32601 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
32602 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
32603 entries.
32604
32605 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32606
32607 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
32608 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
32609 or -msoft-float here.
32610 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
32611 -msoft-float and -mhard-float.
32612 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
32613 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
32614 msoft-float.
32615 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
32616 -msoft-float.
32617 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
32618 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
32619 not mhard-float.
32620 (LIBGCC_SPEC): Don't handle -msoft-float.
32621 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
32622 -mhard-float.
32623 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
32624 msoft-float.
32625 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
32626 -mfloat-abi=*, not -msoft-float and -mhard-float.
32627 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
32628 -msoft-float.
32629 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
32630 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
32631 mhard-float and msoft-float.
32632 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
32633 mfloat-abi=soft in comments, not mhard-float and msoft-float.
32634 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
32635 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
32636 mhard-float.
32637 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
32638 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
32639 msoft-float.
32640 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
32641 not mhard-float.
32642 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
32643 not msoft-float.
32644
32645 2011-03-22 Richard Henderson <rth@redhat.com>
32646
32647 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
32648 TARGET_ABI_WINDOWS_NT.
32649 (alpha_output_function_end_prologue): Likewise.
32650 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
32651 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
32652 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
32653 (trap, *movsi_nt_vms): Likewise.
32654 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
32655 (*tablejump_osf_nt_internal): Remove.
32656 * config/alpha/predicates.md (input_operand): Only test Pmode.
32657
32658 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32659
32660 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
32661 via opts pointer. Use error_at. Don't assert that global
32662 structures are in use.
32663
32664 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32665
32666 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
32667 (ix86_handle_option): Access ix86_isa_flags and
32668 ix86_isa_flags_explicit via opts pointer. Don't assert that
32669 global structures are in use.
32670 (ix86_function_specific_save, ix86_function_specific_restore):
32671 Update ix86_isa_flags_explicit field name.
32672 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
32673 (ix86_isa_flags_explicit): Rename TargetSave entry to
32674 x_ix86_isa_flags_explicit.
32675
32676 2011-03-22 Richard Henderson <rth@redhat.com>
32677
32678 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
32679 (alpha_option_override, direct_return): Likewise.
32680 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
32681 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
32682 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
32683 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
32684 (alpha_expand_epilogue, alpha_end_function): Likewise.
32685 (alpha_init_libfuncs): Likewise.
32686 (struct machine_function): Remove unicosmk members.
32687 (print_operand) ['t']: Remove.
32688 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
32689 unicosmk_output_module_name, unicosmk_output_common,
32690 current_section_align, unicosmk_output_text_section_asm_op,
32691 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
32692 unicosmk_section_type_flags, unicosmk_unique_section,
32693 unicosmk_asm_named_section, unicosmk_insert_attributes,
32694 unicosmk_output_align, unicosmk_defer_case_vector,
32695 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
32696 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
32697 unicosmk_output_ssib, unicosmk_add_call_info_word,
32698 unicosmk_extern_head, unicosmk_output_default_externs,
32699 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
32700 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
32701 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
32702 * config/alpha/alpha-protos.h: Update.
32703 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
32704 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
32705 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
32706 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
32707 (*mulsi_se, mulvsi3): Likewise.
32708 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
32709 (*divmodsi_internal, call, call_value, realign): Likewise.
32710 (moddi3, umoddi3): Likewise; remove duplicate expander.
32711 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
32712 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
32713 (*movdi_nofix): Remove r/U alternative.
32714 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
32715 * config/alpha/constraints.md ("U"): Remove.
32716 * config/alpha/predicates.md (call_operand"): Don't test
32717 TARGET_ABI_UNICOSMK.
32718
32719 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32720
32721 * target.def (handle_option): Take gcc_options and
32722 cl_decoded_option pointers and location_t.
32723 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
32724 * doc/tm.texi: Regenerate.
32725 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
32726 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
32727 * lto-opts.c (lto_reissue_options): Generate option structure for
32728 targetm.handle_option call.
32729 * opts.c (target_handle_option): Update call to
32730 targetm.handle_option. Remove assertions about values now passed
32731 down to hook.
32732 * targhooks.c (default_target_handle_option): New.
32733 * targhooks.h (default_target_handle_option): Declare.
32734 * config/alpha/alpha.c: Include opts.h.
32735 (alpha_handle_option): Update to new hook interface.
32736 * config/arm/arm.c: Include opts.h.
32737 (arm_handle_option): Update to new hook interface.
32738 * config/arm/t-arm (arm.o): Update dependencies.
32739 * config/bfin/bfin.c: Include opts.h.
32740 (bfin_handle_option): Update to new hook interface.
32741 * config/cris/cris.c: Include opts.h.
32742 (cris_handle_option): Update to new hook interface.
32743 * config/frv/frv.c: Include opts.h.
32744 (frv_handle_option): Update to new hook interface.
32745 * config/i386/i386.c: Include opts.h.
32746 (ix86_handle_option): Update to new hook interface.
32747 (ix86_valid_target_attribute_inner_p): Generate option structure
32748 for call to ix86_handle_option.
32749 * config/i386/t-i386 (i386.o): Update dependencies.
32750 * config/ia64/ia64.c: Include opts.h.
32751 (ia64_handle_option): Update to new hook interface.
32752 * config/ia64/t-ia64 (ia64.o): Update dependencies.
32753 * config/iq2000/iq2000.c: Include opts.h.
32754 (iq2000_handle_option): Update to new hook interface.
32755 * config/m32c/m32c.c: Include opts.h.
32756 (m32c_handle_option): Update to new hook interface.
32757 * config/m32r/m32r.c: Include opts.h.
32758 (m32r_handle_option): Update to new hook interface.
32759 * config/m68k/m68k.c: Include opts.h.
32760 (m68k_handle_option): Update to new hook interface.
32761 * config/mep/mep.c: Include opts.h.
32762 (mep_handle_option): Update to new hook interface.
32763 * config/microblaze/microblaze.c: Include opts.h.
32764 (microblaze_handle_option): Update to new hook interface.
32765 * config/mips/mips.c: Include opts.h.
32766 (mips_handle_option): Update to new hook interface.
32767 * config/mn10300/mn10300.c: Include opts.h.
32768 (mn10300_handle_option): Update to new hook interface.
32769 * config/pa/pa.c: Include opts.h.
32770 (pa_handle_option): Update to new hook interface.
32771 * config/pdp11/pdp11.c: Include opts.h.
32772 (pdp11_handle_option): Update to new hook interface.
32773 * config/rs6000/rs6000.c: Include opts.h.
32774 (rs6000_handle_option): Update to new hook interface.
32775 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
32776 * config/rx/rx.c: Include opts.h.
32777 (rx_handle_option): Update to new hook interface.
32778 * config/s390/s390.c: Include opts.h.
32779 (s390_handle_option): Update to new hook interface.
32780 * config/score/score.c: Include opts.h.
32781 (score_handle_option): Update to new hook interface.
32782 * config/sh/sh.c: Include opts.h.
32783 (sh_handle_option): Update to new hook interface.
32784 * config/sparc/sparc.c: Include opts.h.
32785 (sparc_handle_option): Update to new hook interface.
32786 * config/v850/v850.c: Include opts.h.
32787 (v850_handle_option): Update to new hook interface.
32788
32789 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32790
32791 * gcc.c (driver_unknown_option_callback): Only permit and save
32792 unknown -Wno- options.
32793 (driver_wrong_lang_callback): Save options directly instead of via
32794 driver_unknown_option_callback.
32795
32796 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
32797
32798 * combine.c (simplify_set): Try harder to find the best CC mode when
32799 simplifying a nested COMPARE on the RHS.
32800
32801 2011-03-22 Joseph Myers <joseph@codesourcery.com>
32802
32803 * config/alpha/gnu.h: Remove.
32804 * config/arc: Remove directory.
32805 * config/arm/netbsd.h: Remove.
32806 * config/arm/t-pe: Remove.
32807 * config/crx: Remove directory.
32808 * config/i386/netbsd.h: Remove.
32809 * config/m68hc11: Remove directory.
32810 * config/m68k/uclinux-oldabi.h: Remove.
32811 * config/mcore/mcore-pe.h: Remove.
32812 * config/mcore/t-mcore-pe: Remove.
32813 * config/netbsd-aout.h: Remove.
32814 * config/rs6000/gnu.h: Remove.
32815 * config/sh/sh-symbian.h: Remove.
32816 * config/sh/symbian-base.c: Remove.
32817 * config/sh/symbian-c.c: Remove.
32818 * config/sh/symbian-cxx.c: Remove.
32819 * config/sh/symbian-post.h: Remove.
32820 * config/sh/symbian-pre.h: Remove.
32821 * config/sh/t-symbian: Remove.
32822 * config/svr3.h: Remove.
32823 * config/vax/netbsd.h: Remove.
32824 * config.build: Don't handle i[34567]86-*-pe.
32825 * config.gcc: Remove handling of deprecations for most deprecated
32826 targets.
32827 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
32828 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
32829 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
32830 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
32831 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
32832 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
32833 Remove cases.
32834 * config.host: Don't handle i[34567]86-*-pe.
32835 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
32836 (ASM_SPEC32): Don't handle -mcall-gnu.
32837 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
32838 -mcall-gnu.
32839 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
32840 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
32841 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
32842 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
32843 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
32844 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
32845 conditional on SYMBIAN.
32846 * configure.ac: Don't handle powerpc*-*-gnu*.
32847 * configure: Regenerate.
32848 * doc/extend.texi (interrupt attribute): Don't mention CRX.
32849 * doc/install-old.texi (m6811, m6812): Don't mention.
32850 * doc/install.texi (arc-*-elf*): Don't document multilib option.
32851 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
32852 (m68k-uclinuxoldabi): Don't mention.
32853 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
32854 Remove.
32855 (-mcall-gnu): Remove.
32856 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
32857 families): Remove constraint documentation.
32858
32859 2011-03-22 Marius Strobl <marius@FreeBSD.org>
32860
32861 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
32862 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
32863 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
32864
32865 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
32866
32867 PR target/48226
32868 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
32869 vector when peeking at the next token for vector, don't expand the
32870 keywords.
32871
32872 2011-03-21 Georg-Johann Lay <avr@gjlay.de>
32873
32874 * config/avr/avr-protos.h (expand_epilogue): Change prototype
32875 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
32876 * config/avr/avr.c (init_cumulative_args)
32877 (avr_function_arg_advance): Use it.
32878 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
32879 sibcall epilogues.
32880 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
32881 (avr_function_ok_for_sibcall): ...this new function.
32882 (avr_lookup_function_attribute1): New static Function.
32883 (avr_naked_function_p, interrupt_function_p)
32884 (signal_function_p, avr_OS_task_function_p)
32885 (avr_OS_main_function_p): Use it.
32886 * config/avr/avr.md ("sibcall", "sibcall_value")
32887 ("sibcall_epilogue"): New expander.
32888 ("*call_insn", "*call_value_insn"): New insn.
32889 ("call_insn", "call_value_insn"): Remove
32890 ("call", "call_value", "epilogue"): Change expander to handle
32891 sibling calls.
32892
32893 2011-03-21 Nick Clifton <nickc@redhat.com>
32894
32895 * doc/invoke.texi (Overall Options): Move closing brace to end of
32896 options list.
32897 (Optimization Options): Add missing @gol.
32898 (Directory Options): Likewise.
32899 (i386 and x86-64 Options): Likewise.
32900 (RS6000 and PowerPC Options): Likewise.
32901 (i386 and x86-64 Windows Options): Likewise.
32902 (V850 Options): Add text missing from descriptions.
32903
32904 2011-03-22 Richard Henderson <rth@redhat.com>
32905
32906 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
32907 (avr_incoming_return_addr_rtx): New.
32908 (emit_push_byte): New.
32909 (expand_prologue): Use it. Remove incorrect dwarf annotation for
32910 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
32911 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
32912 (emit_pop_byte): New.
32913 (expand_epilogue): Use it. Pop frame pointer by bytes.
32914 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
32915 (INCOMING_RETURN_ADDR_RTX): New.
32916 (INCOMING_FRAME_SP_OFFSET): New.
32917 (ARG_POINTER_CFA_OFFSET): New.
32918 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
32919 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
32920 (pophi): Remove.
32921
32922 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
32923
32924 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
32925
32926 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
32927 (FUNCTION_ARG_ADVANCE): Likewise.
32928 * tm.texi.in: Change references to them to hook references.
32929 * tm.texi: Regenerate.
32930 * targhooks.c (default_function_arg): Eliminate check for target
32931 macro.
32932 (default_function_incoming_arg): Likewise.
32933 (default_function_arg_advance): Likewise.
32934 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
32935 (function_arg_advance): Likewise.
32936 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
32937
32938 2011-03-22 Nathan Froyd <froydnj@codesourcery.com>
32939
32940 * tree.c (build_call_1): New function.
32941 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
32942
32943 2011-03-22 Richard Guenther <rguenther@suse.de>
32944
32945 PR tree-optimization/48228
32946 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
32947 for single-arg PHIs.
32948
32949 2011-03-22 Andrey Belevantsev <abel@ispras.ru>
32950
32951 PR rtl-optimization/48143
32952 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
32953 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
32954 sse2_cvtps2pd): Likewise.
32955
32956 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32957
32958 * recog.c (canonicalize_change_group): Use validate_unshare_change.
32959
32960 2011-03-22 Richard Guenther <rguenther@suse.de>
32961
32962 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
32963 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
32964 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
32965 and REALIGN_LOAD_EXPR.
32966 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
32967 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
32968 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
32969 DOT_PROD_EXPR case ...
32970 (expand_expr_real_2): ... here.
32971 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
32972 and REALIGN_LOAD_EXPR.
32973 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
32974 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
32975 (vect_create_epilog_for_reduction): Likewise.
32976 (vectorizable_reduction): Likewise.
32977 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
32978 * tree-vect-stmts.c (vectorizable_load): Likewise.
32979
32980 2011-03-22 Eric Botcazou <ebotcazou@adacore.com>
32981
32982 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
32983
32984 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32985
32986 * config/s390/s390.c (s390_delegitimize_address): Fix offset
32987 handling for PLTOFF/GOTOFF.
32988
32989 2011-03-22 Nick Clifton <nickc@redhat.com>
32990
32991 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
32992 trailing backslash from the end of the macro definition.
32993
32994 2011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
32995
32996 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
32997 and PLT unspecs.
32998
32999 2011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
33000
33001 * expr.h (prepare_operand): Move to...
33002 * optabs.h (prepare_operand): ...here and change the insn code
33003 parameter from "int" to "enum insn_code".
33004 (insn_operand_matches): Declare.
33005 * expr.c (init_expr_target): Use insn_operand_matches.
33006 (compress_float_constant): Likewise.
33007 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
33008 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
33009 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
33010 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
33011 Likewise.
33012 (gen_cond_trap): Likewise.
33013 (prepare_operand): Likewise. Change icode to an insn_code.
33014 (insn_operand_matches): New function.
33015 * reload.c (find_reloads_address_1): Use insn_operand_matches.
33016 * reload1.c (gen_reload): Likewise.
33017 * targhooks.c (default_secondary_reload): Likewise.
33018
33019 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
33020
33021 * config/alpha/alpha.md (unspec): New define_c_enum.
33022 (unspecv): Ditto.
33023
33024 2011-03-21 Uros Bizjak <ubizjak@gmail.com>
33025
33026 PR debug/48214
33027 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
33028 between a call and its CALL_ARG_LOCATION note.
33029
33030 2011-03-21 Eric Botcazou <ebotcazou@adacore.com>
33031
33032 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
33033
33034 2011-03-21 Jakub Jelinek <jakub@redhat.com>
33035
33036 PR c/42544
33037 PR c/48197
33038 * c-common.c (shorten_compare): If primopN is first sign-extended
33039 to opN and then zero-extended to result type, set primopN to opN.
33040
33041 2011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
33042
33043 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
33044 for barrier handlers.
33045
33046 2011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
33047
33048 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
33049 UNSPEC constants to be in the unspec enumeration, and redefine
33050 all UNSPECV constants to be in the unspecv enumeration, so that
33051 dumps print which unspec/unspec_volatile this is.
33052 * config/rs6000/vector.md (UNSPEC_*): Ditto.
33053 * config/rs6000/paired.md (UNSPEC_*): Ditto.
33054 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
33055 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
33056 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
33057
33058 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
33059 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
33060 UNSPECV_LWSYNC, since these are used as unspec_volatile.
33061 * config/rs6000/sync.md (isync, lwsync): Ditto.
33062
33063 2011-03-21 Richard Guenther <rguenther@suse.de>
33064
33065 * params.def (lto-min-partition): Fix typo.
33066
33067 2011-03-21 Richard Guenther <rguenther@suse.de>
33068
33069 PR c/47939
33070 * c-decl.c (grokdeclarator): Drop to the main variant only
33071 for array types. Drop flag_gen_aux_info check.
33072
33073 2011-03-21 Richard Guenther <rguenther@suse.de>
33074
33075 PR translation/47911
33076 * params.def (lto-partitions): Fix typo.
33077 (lto-min-partition): Fix wording.
33078
33079 2011-03-21 Andreas Tobler <andreast@fgznet.ch>
33080
33081 * config/rs6000/t-freebsd: Remove duplication from file.
33082
33083 2011-03-21 Richard Guenther <rguenther@suse.de>
33084
33085 PR middle-end/47661
33086 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
33087
33088 2011-03-21 Richard Guenther <rguenther@suse.de>
33089
33090 PR lto/48210
33091 * params.def (lto-partitions): Require at least 1 partition.
33092
33093 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33094
33095 * gthr-solaris.h: Remove.
33096 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
33097 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
33098 (LIB_SPEC): Likewise.
33099 * config/sol2.opt (threads): Remove.
33100 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
33101 (sparc*-*-solaris2*): Likewise.
33102 * configure.ac (enable_threads): Enable solaris support.
33103 * configure: Regenerate.
33104 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
33105 * doc/install.texi (Configuration, --enable-threads=lib): Remove
33106 solaris.
33107
33108 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33109
33110 * config.gcc: Obsolete *-*-solaris2.8*.
33111 * doc/install.texi (Specific, *-*-solaris2*): Document it.
33112
33113 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33114
33115 PR bootstrap/48135
33116 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
33117 reference. Solaris 8 perl works.
33118
33119 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33120
33121 PR bootstrap/48135
33122 * doc/install.texi (Prerequisites): Move jar etc. up.
33123 Explain support library version requirements.
33124
33125 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33126
33127 PR bootstrap/48135
33128 * doc/install.texi (Prerequisites): Move Perl to build
33129 requirements. Always necessary on Solaris 2 with Sun ld.
33130
33131 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33132
33133 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
33134 binutils 2.21.
33135 (Specific, i?86-*-solaris2.[89]): Likewise.
33136 (Specific, i?86-*-solaris2.10): Likewise.
33137 (Specific, mips-sgi-irix6): Likewise.
33138 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
33139 Update for binutils 2.21.
33140
33141 2011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33142
33143 * configure.ac (gcc_cv_lto_plugin): Fix typo.
33144 Allow -fuse-linker-plugin for non-default plugin linker.
33145 * configure: Regenerate.
33146
33147 2011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
33148
33149 PR bootstrap/48167
33150 * gengtype.c (files_rules): Added rule for cp/parser.h.
33151
33152 2011-03-21 Jakub Jelinek <jakub@redhat.com>
33153
33154 PR target/48213
33155 * config/s390/s390.c (s390_delegitimize_address): Don't call
33156 lowpart_subreg if orig_x has BLKmode.
33157
33158 2011-03-21 Kai Tietz <ktietz@redhat.com>
33159
33160 PR target/12171
33161 * doc/plugins.texi: Adjust documentation for plugin register_callback.
33162 * tree.h (attribute_spec): Add new member affects_type_identity.
33163 * attribs.c (empty_attribute_table): Adjust attribute_spec
33164 initializers.
33165 * config/alpha/alpha.c: Likewise.
33166 * config/arc/arc.c: Likewise.
33167 * config/arm/arm.c: Likewise.
33168 * config/avr/avr.c: Likewise.
33169 * config/bfin/bfin.c: Likewise.
33170 * config/crx/crx.c: Likewise.
33171 * config/darwin.h: Likewise.
33172 * config/h8300/h8300.c: Likewise.
33173 * config/i386/cygming.h: Likewise.
33174 * config/i386/i386.c: Likewise.
33175 * config/ia64/ia64.c: Likewise.
33176 * config/m32c/m32c.c: Likewise.
33177 * config/m32r/m32r.c: Likewise.
33178 * config/m68hc11/m68hc11.c: Likewise.
33179 * config/m68k/m68k.c: Likewise.
33180 * config/mcore/mcore.c: Likewise.
33181 * config/mep/mep.c: Likewise.
33182 * config/microblaze/microblaze.c: Likewise.
33183 * config/mips/mips.c: Likewise.
33184 * config/rs6000/rs6000.c: Likewise.
33185 * config/rx/rx.c: Likewise.
33186 * config/sh/sh.c: Likewise.
33187 * config/sol2.h: Likewise.
33188 * config/sparc/sparc.c: Likewise.
33189 * config/spu/spu.c: Likewise.
33190 * config/stormy16/stormy16.c: Likewise.
33191 * config/v850/v850.c: Likewise.
33192
33193 2011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
33194
33195 * simplify-rtx.c (simplify_binary_operation_1): Handle
33196 (xor (and A B) C) case when B and C are both constants.
33197
33198 2011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
33199
33200 * tree-dfa.c (add_referenced_var): Fix typo in comment.
33201
33202 2011-03-20 Eric Botcazou <ebotcazou@adacore.com>
33203
33204 PR bootstrap/48168
33205 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
33206
33207 2011-03-20 Jakub Jelinek <jakub@redhat.com>
33208
33209 PR rtl-optimization/48156
33210 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
33211 assume df and df_lr are not NULL.
33212
33213 2011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
33214
33215 PR debug/48023
33216 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
33217 between a call and its CALL_ARG_LOCATION note.
33218
33219 2011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
33220
33221 PR debug/48178
33222 * config/sh/sh.c (find_barrier): Don't emit a constant pool
33223 between a call and its corresponding CALL_ARG_LOCATION note.
33224
33225 2011-03-19 Anatoly Sokolov <aesok@post.ru>
33226
33227 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
33228 instead of loop. Use HARD_REGISTER_NUM_P predicate.
33229 * haifa-sched.c (setup_ref_regs): Ditto.
33230 * caller-save.c (add_used_regs_1): Ditto.
33231 * dse.c (look_for_hardregs): Ditto.
33232 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
33233 * sched-rgn.c (check_live_1): Ditto.
33234
33235 2011-03-18 Joseph Myers <joseph@codesourcery.com>
33236
33237 * c-decl.c (diagnose_mismatched_decls): Give an error for
33238 redefining a typedef with variably modified type.
33239
33240 2011-03-18 Joseph Myers <joseph@codesourcery.com>
33241
33242 * c-decl.c (grokfield): Don't allow typedefs for structures or
33243 unions with no tag by default.
33244 * doc/extend.texi (Unnamed Fields): Update.
33245
33246 2011-03-18 Uros Bizjak <ubizjak@gmail.com>
33247
33248 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
33249 Rewrite using indirect functions.
33250 (lwp_slwpcb): Ditto.
33251 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
33252 (avx_vinsertf128<mode>): Ditto.
33253
33254 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33255
33256 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
33257 unspecs.
33258
33259 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33260
33261 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
33262 splitting between a call and its corresponding CALL_ARG_LOCATION note.
33263
33264 2011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
33265
33266 PR rtl-optimization/48170
33267 * gcse.c (hoist_code): Remove bogus asserts.
33268
33269 2011-03-18 Georg-Johann Lay <avr@gjlay.de>
33270
33271 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
33272 computation for prologue/epilogue.
33273
33274 2011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33275
33276 * Makefile.in (check-consistency): Remove.
33277
33278 2011-03-18 Jakub Jelinek <jakub@redhat.com>
33279
33280 PR debug/48176
33281 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
33282 arange_table_in_use is 0, but either text_section_used or
33283 cold_text_section_used is true. Don't call it if
33284 !info_section_emitted.
33285
33286 2011-03-18 Anatoly Sokolov <aesok@post.ru>
33287
33288 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
33289 FUNCTION_VALUE_REGNO_P): Remove.
33290 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
33291 Remove.
33292 * config/avr/avr.c (avr_ret_register): Make static inline.
33293 (avr_function_value_regno_p): New function.
33294 (avr_libcall_value): Make static. Add 'func' argument.
33295 (avr_function_value): Make static. Rename 'func' argument to
33296 'fn_decl_or_type', forward it to avr_libcall_value. Call
33297 avr_ret_register function instead of RET_REGISTER macro.
33298 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
33299
33300 2011-03-18 Jason Merrill <jason@redhat.com>
33301
33302 PR c++/23372
33303 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
33304
33305 2011-03-18 Richard Guenther <rguenther@suse.de>
33306
33307 * doc/install.texi (--enable-gold): Remove.
33308 (--with-plugin-ld): Document.
33309 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
33310
33311 2011-03-18 Andrew Pinski <pinskia@gmail.com>
33312
33313 PR middle-end/47790
33314 * expr.c (optimize_bitfield_assignment_op): Revamp to work
33315 again after expansion changes.
33316
33317 2011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
33318
33319 * combine.c (try_combine): Do simplification only call of
33320 subst() on i2 even when i1 is present. Update comments.
33321
33322 2011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
33323
33324 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
33325 and UNSPEC_PCREL_SYMOFF.
33326
33327 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33328
33329 * config/s390/s390.md: Use define_c_enum for the unspec constant
33330 definitions.
33331
33332 2011-03-18 Richard Henderson <rth@redhat.com>
33333 Jakub Jelinek <jakub@redhat.com>
33334
33335 PR bootstrap/48161
33336 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
33337 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
33338
33339 2011-03-17 Anatoly Sokolov <aesok@post.ru>
33340
33341 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
33342 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
33343 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
33344 Change return type to bool.
33345 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
33346
33347 2011-03-17 Jakub Jelinek <jakub@redhat.com>
33348
33349 PR debug/48163
33350 * var-tracking.c (prepare_call_arguments): If CALL target
33351 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
33352 pc instead of looking it up using cselib_lookup and use
33353 Pmode for it if x has VOIDmode.
33354 * dwarf2out.c (gen_subprogram_die): If also both first and
33355 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
33356
33357 PR debug/48163
33358 * function.c (assign_parms): For data.passed_pointer parms
33359 use MEM of data.entry_parm instead of data.entry_parm itself
33360 as DECL_INCOMING_RTL.
33361 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
33362 also when passed and declared mode is the same, DECL_RTL
33363 is a MEM with pseudo as address and DECL_INCOMING_RTL is
33364 a MEM too.
33365
33366 2011-03-16 Jeff Law <law@redhat.com>
33367
33368 PR rtl-optimization/37273
33369 * ira-costs.c (scan_one_insn): Detect constants living in memory and
33370 handle them like argument loads from stack slots. Do not double
33371 count memory for memory constants and argument loads from stack slots.
33372
33373 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
33374
33375 PR debug/48160
33376 * var-tracking.c (prepare_call_arguments): Check SUBREG.
33377
33378 2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
33379
33380 PR target/48171
33381 * config/i386/i386.opt: Add Save to -mavx and -mfma.
33382
33383 2011-03-17 Jakub Jelinek <jakub@redhat.com>
33384
33385 PR bootstrap/48153
33386 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
33387 if dwarf_strict.
33388 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
33389 Clear call_arg_locations and call_arg_loc_last always.
33390
33391 PR middle-end/48152
33392 * var-tracking.c (prepare_call_arguments): If argument needs to be
33393 passed by reference, adjust argtype and mode.
33394
33395 2011-03-17 Richard Guenther <rguenther@suse.de>
33396
33397 PR middle-end/48134
33398 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
33399 a value make sure to fold the statement.
33400
33401 2011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
33402
33403 PR target/43872
33404 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
33405 return condition with !cfun->calls_alloca.
33406
33407 2011-03-17 Richard Guenther <rguenther@suse.de>
33408
33409 PR bootstrap/48148
33410 * lto-cgraph.c (input_overwrite_node): Clear the abstract
33411 origin for decls in other ltrans units.
33412 (input_varpool_node): Likewise.
33413
33414 2011-03-17 Richard Guenther <rguenther@suse.de>
33415
33416 PR middle-end/48165
33417 * tree-object-size.c (compute_object_offset): Properly return
33418 the offset operand of MEM_REFs as sizetype.
33419
33420 2011-03-17 Jakub Jelinek <jakub@redhat.com>
33421
33422 PR rtl-optimization/48141
33423 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
33424 * dse.c: Include params.h.
33425 (active_local_stores_len): New variable.
33426 (add_wild_read, dse_step1): Clear it when setting active_local_stores
33427 to NULL.
33428 (record_store, check_mem_read_rtx): Decrease it when removing
33429 from the chain.
33430 (scan_insn): Likewise. Increase it when adding to chain, if it
33431 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
33432 set active_local_stores to NULL before the addition.
33433 * Makefile.in (dse.o): Depend on $(PARAMS_H).
33434
33435 PR rtl-optimization/48141
33436 * dse.c (record_store): If no positions are needed in an insn
33437 that cannot be deleted, at least unchain it from active_local_stores.
33438
33439 2011-03-16 Dodji Seketeli <dodji@redhat.com>
33440
33441 PR debug/47510
33442 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
33443 (lookup_type_die_strip_naming_typedef): ... here.
33444 (get_context_die): Use it.
33445 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
33446 the anonymous struct named by the naming typedef.
33447
33448 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
33449
33450 PR target/48154
33451 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
33452 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
33453
33454 2011-03-16 Jeff Law <law@redhat.com>
33455
33456 * tree-vrp.c (identify_jump_threads): Slightly simplify type
33457 check for operands of conditional. Allow type to be a pointer.
33458
33459 2011-03-16 Richard Guenther <rguenther@suse.de>
33460
33461 PR tree-optimization/48149
33462 * fold-const.c (fold_binary_loc): Fold
33463 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
33464
33465 2011-03-16 Richard Guenther <rguenther@suse.de>
33466
33467 PR tree-optimization/26134
33468 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
33469 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
33470 (non_rewritable_mem_ref_base): Handle complex type component
33471 accesses, constrain offsets for vector and complex extracts
33472 more properly.
33473
33474 2011-03-16 Richard Guenther <rguenther@suse.de>
33475
33476 PR tree-optimization/48146
33477 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
33478 operands avoiding the need for renaming.
33479
33480 2011-03-16 Richard Guenther <rguenther@suse.de>
33481
33482 * gimple-fold.c (maybe_fold_reference): Open-code relevant
33483 constant folding. Move MEM_REF canonicalization first.
33484 Rely on fold_const_aggregate_ref for initializer folding.
33485 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
33486
33487 2011-03-16 Jakub Jelinek <jakub@redhat.com>
33488
33489 PR middle-end/48136
33490 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
33491 arg0/arg1 or their arguments are always fold converted to matching
33492 types.
33493
33494 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
33495 to nargs.
33496
33497 2011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33498
33499 PR lto/46944
33500 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
33501 Handle in-tree gold.
33502 (ld_vers): Extract binutils version for gold.
33503 (gcc_cv_ld_hidden): Handle gold here.
33504 (gcc_cv_lto_plugin): Determine level of linker plugin support.
33505 * configure: Regenerate.
33506 * config.in: Regenerate.
33507 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
33508 -fuse-linker-plugin otherwise.
33509 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
33510 (LINK_COMMAND_SPEC): Use it.
33511 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
33512
33513 2011-03-16 Jakub Jelinek <jakub@redhat.com>
33514
33515 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
33516 * calls.c: Remove debug.h include.
33517 (emit_call_1): Don't call virtual_call_token debug hook.
33518 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
33519 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
33520 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
33521 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
33522 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
33523 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
33524 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
33525 dwarf2out_virtual_call): Remove.
33526 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
33527 copy_call_info and virtual_call hooks.
33528 (dwarf2out_init): Don't initialize vcall_insn_table,
33529 debug_dcall_section and debug_vcall_section.
33530 (prune_unused_types): Don't mark nodes from dcall_table.
33531 (dwarf2out_finish): Don't output dcall or vcall tables.
33532 * final.c (final_scan_insn): Don't call direct_call or
33533 virtual_call debug hooks.
33534 * debug.h (struct gcc_debug_hooks): Remove direct_call,
33535 virtual_call_token, copy_call_info and virtual_call hooks.
33536 (debug_nothing_uid): Remove prototype.
33537 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
33538 copy_call_info and virtual_call hooks.
33539 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
33540 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
33541 * debug.c (do_nothing_debug_hooks): Likewise.
33542 (debug_nothing_uid): Remove.
33543 * doc/invoke.texi (-fenable-icf-debug): Remove.
33544 * common.opt (-fenable-icf-debug): Likewise.
33545
33546 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
33547 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
33548 call's MEM. Handle functions returning aggregate through a hidden
33549 first pointer. For virtual calls add clobbered pc to call arguments
33550 chain.
33551 * dwarf2out.c (gen_subprogram_die): Emit
33552 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
33553 can't be emitted.
33554
33555 PR debug/45882
33556 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
33557 * rtl.h (ENTRY_VALUE_EXP): Define.
33558 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
33559 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
33560 * print-rtl.c (print_rtx): Likewise.
33561 * gengtype.c (adjust_field_rtx_def): Likewise.
33562 * var-tracking.c (vt_add_function_parameter): Adjust
33563 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
33564 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
33565 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
33566 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
33567 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
33568
33569 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
33570 Call var_location debug hook even on CALL_INSNs.
33571 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
33572 * rtl.def (ENTRY_VALUE): New.
33573 * dwarf2out.c: Include cfglayout.h.
33574 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
33575 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
33576 (struct call_arg_loc_node): New type.
33577 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
33578 tail_call_site_count): New variables.
33579 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
33580 DW_TAG_GNU_call_site_parameter.
33581 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
33582 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
33583 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
33584 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
33585 and DW_AT_GNU_all_source_call_sites.
33586 (mem_loc_descriptor): Handle ENTRY_VALUE.
33587 (add_src_coords_attributes): Don't add enything if
33588 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
33589 (dwarf2out_abstract_function): Save and clear call_arg_location,
33590 call_site_count and tail_call_site_count around dwarf2out_decl call.
33591 (gen_call_site_die): New function.
33592 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
33593 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
33594 (dwarf2out_function_decl): Clear call_arg_locations,
33595 call_arg_loc_last, set call_site_count and tail_call_site_count
33596 to -1 and free block_map.
33597 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
33598 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
33599 followed by any real instructions.
33600 (dwarf2out_begin_function): Set call_site_count and
33601 tail_call_site_count to 0.
33602 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
33603 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
33604 attempt to force a DIE for it and worst case remove the attribute.
33605 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
33606 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
33607 the decl itself.
33608 * var-tracking.c: Include tm_p.h.
33609 (vt_stack_adjustments): For calls call note_register_arguments.
33610 (argument_reg_set): New variable.
33611 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
33612 ensure the VALUE is resolved.
33613 (call_arguments): New variable.
33614 (prepare_call_arguments): New function.
33615 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
33616 (struct expand_loc_callback_data): Add ignore_cur_loc field.
33617 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
33618 always use the best expression.
33619 (vt_expand_loc): Add ignore_cur_loc argument.
33620 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
33621 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
33622 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
33623 note for all calls.
33624 (vt_add_function_parameter): Use cselib_lookup_from_insn.
33625 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
33626 argument. Don't call cselib_preserve_only_values and
33627 cselib_reset_table.
33628 (note_register_arguments): New function.
33629 (vt_initialize): Compute argument_reg_set. Call
33630 vt_add_function_parameters before processing basic blocks instead of
33631 afterwards. For calls call prepare_call_arguments before calling
33632 cselib_process_insn.
33633 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
33634 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
33635 (var-tracking.o): Depend on $(TM_P_H).
33636 * cfglayout.h (insn_scope): New prototype.
33637 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
33638 * cfglayout.c (insn_scope): No longer static.
33639 * insn-notes.def (CALL_ARG_LOCATION): New.
33640 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
33641 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
33642 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
33643 nothing for DECL_EXTERNAL BLOCK_VARS.
33644
33645 2011-03-16 Alan Modra <amodra@gmail.com>
33646
33647 PR target/45844
33648 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
33649 create invalid offset address for vsx splat insn.
33650 * config/rs6000/predicates.md (splat_input_operand): New.
33651 * config/rs6000/vsx.md (vsx_splat_*): Use it.
33652
33653 2011-03-15 Xinliang David Li <davidxl@google.com>
33654
33655 PR c/47837
33656 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
33657 (normalize_preds): New function.
33658 (is_use_properly_guarded): Normalize def predicates.
33659
33660 2011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
33661
33662 PR target/46788
33663 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
33664 in the output template.
33665
33666 2011-03-15 Richard Guenther <rguenther@suse.de>
33667
33668 PR middle-end/47650
33669 * tree-pretty-print.c (dump_function_declaration): Properly
33670 dump unprototyped and varargs function types.
33671
33672 2011-03-15 Richard Guenther <rguenther@suse.de>
33673
33674 PR tree-optimization/13954
33675 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
33676 and friends.
33677
33678 2011-03-15 Richard Guenther <rguenther@suse.de>
33679
33680 PR tree-optimization/48037
33681 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
33682 selects into BIT_FIELD_REFs.
33683 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
33684 vector select.
33685
33686 2011-03-15 Jakub Jelinek <jakub@redhat.com>
33687
33688 PR tree-optimization/48129
33689 * builtins.c (fold_builtin_snprintf): Convert to type of
33690 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
33691 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
33692
33693 2011-03-15 Richard Guenther <rguenther@suse.de>
33694
33695 PR tree-optimization/41490
33696 * tree-ssa-dce.c (propagate_necessity): Handle returns without
33697 value but with VUSE.
33698 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
33699 return statements.
33700 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
33701 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
33702 * tree-tailcall.c (find_tail_calls): Ignore returns.
33703
33704 2011-03-15 Richard Guenther <rguenther@suse.de>
33705
33706 PR middle-end/48031
33707 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
33708 or variable-indexed array accesses when in gimple form.
33709
33710 2011-03-15 Richard Guenther <rguenther@suse.de>
33711
33712 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
33713
33714 2011-03-15 Alan Modra <amodra@gmail.com>
33715
33716 PR target/48032
33717 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
33718 presume symbol_refs without a symbol_ref_decl are suitably
33719 aligned, nor other trees we may see here. Handle anchor symbols.
33720 (legitimate_constant_pool_address_p): Comment. Add mode param.
33721 Check cmodel=medium addresses. Adjust all calls.
33722 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
33723 creating cmodel=medium optimized access to locals.
33724 * config/rs6000/constraints.md (R): Pass QImode to
33725 legitimate_constant_pool_address_p.
33726 * config/rs6000/predicates.md (input_operand): Pass mode to
33727 legitimate_constant_pool_address_p.
33728 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
33729 Update prototype.
33730
33731 2011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
33732
33733 PR target/48053
33734 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
33735 64-bit constants being loaded into registers other than GPRs such
33736 as loading 0 into a VSX register.
33737
33738 2011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33739
33740 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
33741
33742 2011-03-14 Jakub Jelinek <jakub@redhat.com>
33743
33744 PR middle-end/47917
33745 * builtins.c (fold_builtin_snprintf): New function.
33746 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
33747 (fold_builtin_4): Likewise.
33748
33749 PR middle-end/38878
33750 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
33751 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
33752 and C - X == X also strip nops from +/-/p+ operand.
33753 When optimizing -X == C, fold C to arg0's type.
33754
33755 PR debug/47946
33756 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
33757 emit it as add_AT_int instead of add_AT_unsigned.
33758
33759 2011-03-14 Tom Tromey <tromey@redhat.com>
33760
33761 * unwind-dw2.c: Include sys/sdt.h if it exists.
33762 (_Unwind_DebugHook): Use STAP_PROBE2.
33763 * config.in, configure: Rebuild.
33764 * configure.ac: Check for sys/sdt.h.
33765
33766 2011-03-14 Uros Bizjak <ubizjak@gmail.com>
33767
33768 * config/i386/i386.md (ROUND_FLOOR): New constant.
33769 (ROUND_CEIL): Ditto.
33770 (ROUND_TRUNC): Ditto.
33771 (ROUND_MXCSR): Ditto.
33772 (ROUND_NO_EXC): Ditto.
33773 (rint<mode>2): Use new defines instead of numerical constants.
33774 (floor<mode>2): Ditto.
33775 (ceil<mode>2): Ditto.
33776 (btrunc<mode>2): Ditto.
33777 * config/i386/i386-builtin-types.def: Define ROUND function type
33778 aliases.
33779 * config/i386/i386.c (enum ix86_builtins): Add
33780 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
33781 (struct builtin_description): Add
33782 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
33783 (ix86_expand_sse_round): New static function.
33784 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
33785 function types.
33786 (ix86_builtin_vectorized_function): Handle
33787 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
33788
33789 2011-03-14 Tom Tromey <tromey@redhat.com>
33790
33791 * c-parser.c (c_parser_asm_string_literal): Clear
33792 warn_overlength_strings.
33793
33794 2011-03-14 Tom Tromey <tromey@redhat.com>
33795
33796 * c-parser.c (disable_extension_diagnostics): Save
33797 warn_overlength_strings.
33798 (restore_extension_diagnostics): Restore warn_overlength_strings.
33799
33800 2011-03-14 Jakub Jelinek <jakub@redhat.com>
33801
33802 * BASE-VER: Change to 4.7.0.
33803
33804 2011-03-14 Richard Guenther <rguenther@suse.de>
33805
33806 PR middle-end/48098
33807 * tree.c (build_vector_from_val): Adjust assert to requirements
33808 and reality.
33809
33810 2011-03-14 Jakub Jelinek <jakub@redhat.com>
33811
33812 PR bootstrap/48102
33813 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
33814
33815 2011-03-14 Andreas Tobler <andreast@fgznet.ch>
33816
33817 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
33818 terms of target_flags_explicit. Adjust copyright year.
33819
33820 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
33821 * config/rs6000/t-freebsd: New file. Add override for
33822 LIB2FUNCS_EXTRA.
33823
33824 2011-03-13 Chris Demetriou <cgd@google.com>
33825
33826 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
33827 (-fno-diagnostics-show-option): this, to reflect current default.
33828 (-Werror=): Update text about -fno-diagnostics-show-option.
33829
33830 2011-03-12 Peter Bergner <bergner@vnet.ibm.com>
33831
33832 PR target/48053
33833 * config/rs6000/predicates.md (easy_vector_constant_add_self,
33834 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
33835 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
33836 mode is not V2DImode or V2DFmode.
33837 (vspltis_constant): Do not handle V2DImode and V2DFmode.
33838 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
33839 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
33840 registers to 0.
33841 (movdi_internal64): Likewise.
33842
33843 2011-03-12 Sebastian Pop <sebastian.pop@amd.com>
33844
33845 PR tree-optimization/47127
33846 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
33847 parameter.
33848 (set_cloog_options): Same.
33849 (scop_to_clast): Same.
33850 (print_clast_stmt): Do not call cloog_state_malloc and
33851 cloog_state_free.
33852 (print_generated_program): Same.
33853 (gloog): Same.
33854 * graphite-clast-to-gimple.h (cloog_state): Declared.
33855 (scop_to_clast): Adjust declaration.
33856 * graphite.c (cloog_state): Defined here.
33857 (graphite_initialize): Call cloog_state_malloc.
33858 (graphite_finalize): Call cloog_state_free.
33859
33860 2011-03-11 Jason Merrill <jason@redhat.com>
33861
33862 * attribs.c (lookup_attribute_spec): Take const_tree.
33863 * tree.h: Adjust.
33864
33865 2011-03-11 Joseph Myers <joseph@codesourcery.com>
33866
33867 * config/sparc/sparc.c (sparc_option_override): Use
33868 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
33869
33870 2011-03-11 Richard Guenther <rguenther@suse.de>
33871
33872 PR tree-optimization/48067
33873 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
33874 multiplication result will be only used once on the target
33875 stmt.
33876
33877 2011-03-11 Richard Guenther <rguenther@suse.de>
33878
33879 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
33880
33881 2011-03-11 Richard Guenther <rguenther@suse.de>
33882
33883 PR lto/48073
33884 * tree.c (find_decls_types_r): Do not walk types only reachable
33885 from IDENTIFIER_NODEs.
33886
33887 2011-03-11 Jakub Jelinek <jakub@redhat.com>
33888
33889 PR middle-end/48044
33890 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
33891 all vnode->force_output nodes as needed.
33892
33893 2011-03-11 Jason Merrill <jason@redhat.com>
33894
33895 PR c++/48069
33896 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
33897 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
33898
33899 2011-03-11 Martin Jambor <mjambor@suse.cz>
33900
33901 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
33902 cgraph_node.
33903
33904 2011-03-11 Jakub Jelinek <jakub@redhat.com>
33905
33906 PR tree-optimization/48063
33907 * ipa-inline.c (cgraph_decide_inlining): Don't try to
33908 inline functions called once if !tree_can_inline_p (node->callers).
33909
33910 2011-03-11 Chen Liqin <liqin.gcc@gmail.com>
33911
33912 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
33913 extra_objs.
33914 * config/score/score3.c: Delete.
33915 * config/score/score3.h: Delete.
33916 * config/score/mul-div.S: Delete.
33917 * config/score/sfp-machine.h: Add new file.
33918 * config/score/constraints.md: Add new file.
33919 * config/score/t-score-softfp: Add new file.
33920 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
33921 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
33922 (score7_extra_constraint): Delete.
33923 (score7_option_override): Remove unused code.
33924 * config/score/score.c: Remove score3 and score5 define and code.
33925 * config/score/score.h: Remove score3 and score5 define and code.
33926 * config/score/score.md: Remove score3 template and unusual insn.
33927 * config/score/score.opt: Remove score3 and score5 options.
33928
33929 2011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33930
33931 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
33932 when _HPUX_SOURCE is defined.
33933 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
33934
33935 2011-03-10 Jason Merrill <jason@redhat.com>
33936
33937 PR c++/48029
33938 * stor-layout.c (layout_type): Don't set structural equality
33939 on arrays of incomplete type.
33940 * tree.c (type_hash_eq): Handle comparing them properly.
33941
33942 2011-03-10 Jakub Jelinek <jakub@redhat.com>
33943
33944 PR debug/48043
33945 * config/s390/s390.c (s390_delegitimize_address): Make sure the
33946 result mode matches original rtl mode.
33947
33948 2011-03-10 Nick Clifton <nickc@redhat.com>
33949
33950 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
33951 (andsi3, andsi3_flags): Fix timings for three operand alternative.
33952
33953 2011-03-09 Jakub Jelinek <jakub@redhat.com>
33954
33955 PR rtl-optimization/47866
33956 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
33957 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
33958 if target wasn't scalar.
33959 * function.c (assign_stack_temp_for_type): Assert that neither
33960 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
33961 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
33962 macro.
33963 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
33964
33965 2011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33966
33967 * config/s390/s390-protos.h (s390_label_align): New prototype.
33968 * config/s390/s390.c (s390_label_align): New function.
33969 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
33970
33971 2011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
33972
33973 PR target/47755
33974 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
33975 V2DI/V2DF constants. Only all 0's or all 1's are easy.
33976 (output_vec_const_move): Ditto.
33977
33978 2011-03-08 Anatoly Sokolov <aesok@post.ru>
33979
33980 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
33981 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
33982 * config/mips/mips.c (mips_preferred_reload_class): Make static.
33983 Change 'rclass' argument and result type to reg_class_t.
33984 (TARGET_PREFERRED_RELOAD_CLASS): Define.
33985
33986 2011-03-08 Georg-Johann Lay <avr@gjlay.de>
33987
33988 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
33989 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
33990 (TARGET_MEMORY_MOVE_COST): Define.
33991 (avr_register_move_cost, avr_memory_move_cost): New Functions.
33992
33993 2011-03-08 Jakub Jelinek <jakub@redhat.com>
33994
33995 PR debug/47881
33996 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
33997 removed anything.
33998
33999 PR tree-optimization/48022
34000 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
34001 for EQ/NE_EXPR.
34002
34003 2011-03-07 Jakub Jelinek <jakub@redhat.com>
34004
34005 PR debug/47991
34006 * var-tracking.c (find_use_val): Return NULL for
34007 cui->sets && cui->store_p BLKmode MEMs.
34008
34009 2011-03-07 Anatoly Sokolov <aesok@post.ru>
34010
34011 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
34012 Remove.
34013 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
34014 xstormy16_print_operand_address): Remove.
34015 * config/stormy16/stormy16.c (xstormy16_print_operand,
34016 xstormy16_print_operand_address): Make static.
34017 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
34018
34019 2011-03-07 Pat Haugen <pthaugen@us.ibm.com>
34020
34021 PR target/47862
34022 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
34023 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
34024 before definition.
34025
34026 2011-03-07 Zdenek Dvorak <ook@ucw.cz>
34027
34028 PR bootstrap/48000
34029 * cfgloopmanip.c (fix_bb_placements): Return immediately
34030 if FROM is BASE_LOOP's header.
34031
34032 2011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
34033
34034 * gimplify.c (gimplify_function_tree): Fix building calls
34035 to __builtin_return_address.
34036
34037 2011-03-07 Alan Modra <amodra@gmail.com>
34038
34039 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
34040 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
34041 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
34042 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
34043 return_mode args.
34044 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
34045 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
34046 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
34047 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
34048 * config/rs6000/rs6000.c
34049 (rs6000_elf_end_indicate_exec_stack): Rename to..
34050 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
34051 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
34052 (rs6000_file_start): ..here.
34053 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
34054 file scope variables.
34055 (call_ABI_of_interest): New function.
34056 (init_cumulative_args): Set above vars when function return value
34057 is a float, vector, or small struct.
34058 (rs6000_function_arg_advance_1): Likewise for function args.
34059 (rs6000_va_start): Set rs6000_passes_float if variable arg function
34060 references float args.
34061
34062 2011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
34063
34064 * doc/cfg.texi: Remove "See" before @ref.
34065 * doc/invoke.texi: Likewise.
34066
34067 2011-03-05 Jason Merrill <jason@redhat.com>
34068
34069 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
34070
34071 2011-03-05 Anthony Green <green@moxielogic.com>
34072
34073 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
34074
34075 2011-03-05 Zdenek Dvorak <ook@ucw.cz>
34076
34077 PR rtl-optimization/47899
34078 * cfgloopmanip.c (fix_bb_placements): Fix first argument
34079 to flow_loop_nested_p when moving the loop upward.
34080
34081 2011-03-05 Richard Earnshaw <rearnsha@arm.com>
34082
34083 PR target/47719
34084 * arm.md (movhi_insn_arch4): Accept any immediate constant.
34085
34086 2011-03-05 Jakub Jelinek <jakub@redhat.com>
34087
34088 PR tree-optimization/47967
34089 * ipa-cp.c (build_const_val): Return NULL instead of creating
34090 VIEW_CONVERT_EXPR for mismatching sizes.
34091 (ipcp_create_replace_map): Return NULL if build_const_val failed.
34092 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
34093 give up on versioning.
34094
34095 2011-03-05 Alan Modra <amodra@gmail.com>
34096
34097 PR target/47986
34098 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
34099 full cmodel medium/large lo_sum + high addresses.
34100
34101 2011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34102
34103 * config/s390/s390.c (s390_decompose_address): Reject non-literal
34104 pool references in UNSPEC_LTREL_OFFSET.
34105
34106 2011-03-04 Jan Hubicka <jh@suse.cz>
34107
34108 PR lto/47497
34109 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
34110 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
34111 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
34112 Add node pointers.
34113 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
34114 cgraph_add_thunk): Add node pointers.
34115 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
34116 associated to right node.
34117 (input_node): Update use of cgraph_same_body_alias
34118 and cgraph_add_thunk.
34119
34120 2011-03-04 Changpeng Fang <changpeng.fang@amd.com>
34121
34122 * config/i386/i386.opt (mprefer-avx128): New flag.
34123 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
34124 modes when the flag -mprefer-avx128 is on.
34125
34126 2011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
34127
34128 * dwarf2out.c (compare_loc_operands): Fix address handling.
34129
34130 2011-03-04 Alan Modra <amodra@gmail.com>
34131
34132 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
34133
34134 2011-03-04 Richard Guenther <rguenther@suse.de>
34135
34136 PR middle-end/47968
34137 * expmed.c (extract_bit_field_1): Prefer vector modes that
34138 vec_extract patterns can handle.
34139
34140 2011-03-04 Richard Guenther <rguenther@suse.de>
34141
34142 PR middle-end/47975
34143 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
34144
34145 2011-03-04 Richard Henderson <rth@redhat.com>
34146
34147 * explow.c (emit_stack_save): Remove 'after' parameter.
34148 (emit_stack_restore): Likewise.
34149 * expr.h: Update to match.
34150 * builtins.c, calls.c, stmt.c: Likewise.
34151 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
34152 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
34153 * function.c (expand_function_end): Insert the emit_stack_save
34154 sequence before parm_birth_insn instead of after.
34155
34156 2011-03-03 Uros Bizjak <ubizjak@gmail.com>
34157
34158 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
34159 (ssse3_pmaddubsw128): Ditto.
34160 (ssse3_pmaddubsw): Ditto.
34161
34162 2011-03-03 Steve Ellcey <sje@cup.hp.com>
34163
34164 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
34165
34166 2011-03-03 Jakub Jelinek <jakub@redhat.com>
34167
34168 PR c/47963
34169 * gimplify.c (omp_add_variable): Only call omp_notice_variable
34170 on TYPE_SIZE_UNIT if it is a DECL.
34171
34172 PR debug/47283
34173 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
34174 first operand is not is_gimple_mem_ref_addr, try to fold it.
34175 If the operand still isn't is_gimple_mem_ref_addr, clear
34176 MEM_EXPR on op0.
34177
34178 2011-03-03 Richard Guenther <rguenther@suse.de>
34179
34180 PR middle-end/47283
34181 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
34182 match comment.
34183 (refs_may_alias_p_1): For release branches return true if
34184 we are confused by our input.
34185
34186 2011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
34187
34188 * config/s390/s390.c (s390_function_value): Rename to ...
34189 (s390_function_and_libcall_value): ... this.
34190 (s390_function_value): New function.
34191 (s390_libcall_value): New function.
34192 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
34193 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
34194 target macro definitions.
34195 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
34196
34197 2011-03-02 Joseph Myers <joseph@codesourcery.com>
34198
34199 * config/i386/freebsd64.h (CC1_SPEC): Define.
34200 * config/i386/linux64.h (CC1_SPEC): Define.
34201 * config/i386/x86-64.h (CC1_SPEC): Don't define.
34202
34203 2011-03-02 Anatoly Sokolov <aesok@post.ru>
34204
34205 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
34206 Remove.
34207 * config/stormy16/stormy16.c: Include reload.h.
34208 (xstormy16_memory_move_cost): New function.
34209 (TARGET_MEMORY_MOVE_COST): Define.
34210
34211 2011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
34212
34213 PR rtl-optimization/47925
34214 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
34215 with side effects. Remove the more-specific check for volatile asms.
34216
34217 2011-03-02 Alan Modra <amodra@gmail.com>
34218
34219 PR target/47935
34220 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
34221 toc relative addresses for valid offsets.
34222
34223 2011-03-01 Richard Guenther <rguenther@suse.de>
34224
34225 PR tree-optimization/47890
34226 * tree-vect-loop.c (get_initial_def_for_induction): Set
34227 related stmt properly.
34228
34229 2011-03-01 Richard Guenther <rguenther@suse.de>
34230
34231 PR lto/47924
34232 * lto-streamer.c (lto_record_common_node): Also register
34233 the canonical type.
34234
34235 2011-03-01 Richard Guenther <rguenther@suse.de>
34236
34237 PR lto/46911
34238 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
34239 Do not stream DECL_ABSTRACT_ORIGIN.
34240 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
34241 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
34242 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
34243 Do not stream DECL_ABSTRACT_ORIGIN.
34244 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
34245 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
34246
34247 2011-02-28 Anatoly Sokolov <aesok@post.ru>
34248
34249 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
34250 FUNCTION_VALUE_REGNO_P): Remove.
34251 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
34252 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
34253 Add 'outgoing' argument.
34254 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
34255 function.
34256 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
34257 TARGET_FUNCTION_VALUE_REGNO_P): Define.
34258
34259 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
34260
34261 PR debug/28047
34262 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
34263 (lookup_filename): Likewise.
34264 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
34265
34266 2011-02-28 Bernd Schmidt <bernds@codesourcery.com>
34267 Jakub Jelinek <jakub@redhat.com>
34268
34269 PR middle-end/47893
34270 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
34271 (assign_stack_local_1): Change last argument type to int.
34272 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
34273 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
34274 don't record padding space into frame_space_list nor use those areas.
34275 (assign_stack_local): Adjust caller.
34276 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
34277 of assign_stack_local, pass 0 as last argument.
34278 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
34279 callers.
34280
34281 2011-02-28 Jakub Jelinek <jakub@redhat.com>
34282
34283 PR debug/47283
34284 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
34285 Use target address_mode and pointer_mode hooks instead of hardcoded
34286 Pmode and ptr_mode. Handle some simple cases of extending if
34287 POINTERS_EXTEND_UNSIGNED < 0.
34288 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
34289 Call convert_debug_memory_address.
34290 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
34291 convert_debug_memory_address.
34292
34293 PR middle-end/46790
34294 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
34295 * configure: Regenerated.
34296 * config.in: Regenerated.
34297 * varasm.c (default_function_section): Return NULL
34298 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
34299
34300 2011-02-28 Martin Jambor <mjambor@suse.cz>
34301
34302 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
34303 the description to match the printed values.
34304
34305 2011-02-28 Richard Guenther <rguenther@suse.de>
34306
34307 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
34308 of the copied scope tree.
34309
34310 2011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
34311
34312 * doc/extend.texi (Function Attributes): Avoid deeply (and
34313 wrongly) nested tables.
34314
34315 2011-02-27 Jakub Jelinek <jakub@redhat.com>
34316
34317 PR middle-end/47903
34318 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
34319 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
34320 r isn't op0 nor op1.
34321
34322 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
34323
34324 * config/avr/avr.md: Remove magic comment for emacs.
34325
34326 2011-02-23 Georg-Johann Lay <avr@gjlay.de>
34327
34328 PR target/45261
34329 * config/avr/avr.c (avr_option_override): Use error on bad options.
34330 (avr_help): New function.
34331 (TARGET_HELP): Define.
34332
34333 2011-02-22 Georg-Johann Lay <avr@gjlay.de>
34334
34335 PR target/42240
34336 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
34337 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
34338
34339 2011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
34340
34341 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
34342 (ARM Options): Ditto.
34343 (i386 and x86-64 Options): Ditto.
34344 (RX Options): Ditto.
34345 (SPARC Options): Ditto.
34346
34347 2011-02-26 Tijl Coosemans <tijl@coosemans.org>
34348
34349 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
34350 FreeBSD 6 and later. Generally use cpu generic.
34351
34352 2011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
34353
34354 * doc/cpp.texi: Update copyright years.
34355
34356 2011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
34357
34358 PR target/46898
34359 * config/lm32/lm32.md (ashrsi3): Added needed variable.
34360
34361 2011-02-25 Jon Beniston <jon@beniston.com>
34362
34363 PR target/46898
34364 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
34365 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
34366 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
34367 (lm32_block_move_inline): Add type cast to remove warning.
34368 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
34369 (gen_int_relational): Move declarations to start of function.
34370
34371 2011-02-25 Eric Botcazou <ebotcazou@adacore.com>
34372
34373 PR tree-optimization/45470
34374 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
34375 can throw internally only.
34376 * tree-vect-stmts.c (vectorizable_call): Likewise.
34377
34378 2011-02-24 Anatoly Sokolov <aesok@post.ru>
34379
34380 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
34381 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
34382 * config/stormy16/stormy16-protos.h
34383 (xstormy16_preferred_reload_class): Remove.
34384 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
34385 static. Change 'rclass' argument and return type to reg_class_t.
34386 (TARGET_PREFERRED_RELOAD_CLASS,
34387 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
34388
34389 2011-02-24 Richard Guenther <rguenther@suse.de>
34390
34391 * lto-streamer-in.c (input_bb): Do not find referenced vars
34392 in debug statements.
34393
34394 2011-02-23 Jason Merrill <jason@redhat.com>
34395
34396 * common.opt (fabi-version): Document v5 and v6.
34397
34398 2011-02-23 Richard Guenther <rguenther@suse.de>
34399
34400 PR tree-optimization/47849
34401 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
34402
34403 2011-02-23 Jie Zhang <jie@codesourcery.com>
34404
34405 * opts-common.c (decode_cmdline_option): Print empty string
34406 argument as "" in decoded->orig_option_with_args_text.
34407 * gcc.c (execute): Print empty string argument as ""
34408 in the verbose output.
34409 (do_spec_1): Keep empty string argument.
34410
34411 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
34412
34413 * config.gcc: Declare score-* and crx-* obsolete.
34414
34415 2011-02-23 Jie Zhang <jie@codesourcery.com>
34416
34417 PR rtl-optimization/47763
34418 * web.c (web_main): Ignore naked clobber when replacing register.
34419
34420 2011-02-22 Anatoly Sokolov <aesok@post.ru>
34421
34422 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
34423 Remove.
34424
34425 2011-02-22 Sebastian Pop <sebastian.pop@amd.com>
34426
34427 PR doc/47848
34428 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
34429
34430 2011-02-22 Mike Stump <mikestump@comcast.net>
34431
34432 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
34433 assembler.
34434 * configure: Regenerate.
34435
34436 2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
34437
34438 PR rtl-optimization/46002
34439 * ira-color.c (update_copy_costs): Change class intersection
34440 test to reg_class_contents[] test of 'hard_regno'.
34441
34442 2011-02-21 Joseph Myers <joseph@codesourcery.com>
34443
34444 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
34445 than Driver option.
34446 * config/hpux11.opt (mt): Likewise.
34447 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
34448 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
34449 * config/vax/elf.opt (mno-asm-pic): Likewise.
34450 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
34451
34452 2011-02-21 Mike Stump <mikestump@comcast.net>
34453
34454 PR target/47822
34455 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
34456 tree so we can get save the type.
34457 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
34458 for CFString instead of trying to use past the end of the builtins.
34459 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
34460 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
34461 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
34462 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
34463 Rename to darwin_builtin_cfstring.
34464 (darwin_init_cfstring_builtins): Return the built type.
34465
34466 2011-02-21 Uros Bizjak <ubizjak@gmail.com>
34467
34468 PR target/47840
34469 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
34470 (_mm256_insert_epi64): Use _mm_insert_epi64.
34471
34472 2011-02-21 Anatoly Sokolov <aesok@post.ru>
34473
34474 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
34475 * config/stormy16/stormy16-protos.h
34476 (xstormy16_mode_dependent_address_p): Remove.
34477 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
34478 Make static. Change return type to bool. Change argument type to
34479 const_rtx. Remove dead code.
34480 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
34481
34482 2011-02-21 Richard Guenther <rguenther@suse.de>
34483
34484 PR lto/47820
34485 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
34486 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
34487 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
34488 TUs context.
34489 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
34490 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
34491
34492 2011-02-20 Richard Guenther <rguenther@suse.de>
34493
34494 PR lto/47822
34495 * tree.c (free_lang_data_in_decl): Clean builtins from
34496 the TU decl BLOCK_VARS.
34497
34498 2011-02-19 Alexandre Oliva <aoliva@redhat.com>
34499
34500 PR debug/47620
34501 PR debug/47630
34502 * haifa-sched.c (fix_tick_ready): Skip tick computation
34503 for debug insns.
34504
34505 2011-02-19 Richard Guenther <rguenther@suse.de>
34506
34507 PR lto/47647
34508 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
34509 Remove lazy BLOCK_VARS streaming.
34510 (lto_input_ts_block_tree_pointers): Likewise.
34511 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
34512
34513 2011-02-19 Joseph Myers <joseph@codesourcery.com>
34514
34515 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
34516
34517 2011-02-19 Joseph Myers <joseph@codesourcery.com>
34518
34519 * config/i386/biarch32.h, config/i386/mach.h,
34520 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
34521
34522 2011-02-19 Jakub Jelinek <jakub@redhat.com>
34523
34524 PR target/47800
34525 * config/i386/i386.md (peephole2 for shift and plus): Use
34526 operands[1] original mode in the first insn.
34527
34528 2011-02-18 Mike Stump <mikestump@comcast.net>
34529
34530 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
34531
34532 2011-02-18 Jan Hubicka <jh@suse.cz>
34533
34534 PR middle-end/47788
34535 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
34536 to zero when the function is not inlinable at all.
34537
34538 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34539
34540 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
34541 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
34542 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
34543 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
34544 * config/pa/t-pa64: Likewise.
34545 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
34546
34547 2011-02-18 Jakub Jelinek <jakub@redhat.com>
34548
34549 PR driver/47787
34550 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
34551
34552 2011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34553
34554 PR target/47792
34555 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
34556
34557 2011-02-18 Anatoly Sokolov <aesok@post.ru>
34558
34559 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
34560 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
34561 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
34562 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
34563 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
34564 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
34565 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
34566 m32r_load_postinc_p, m32r_store_preinc_predec_p,
34567 m32r_legitimate_address_p): New functions.
34568 * config/m32r/constraints.md (constraint "S"): Don't use
34569 STORE_PREINC_PREDEC_P.
34570 (constraint "U"): Don't use LOAD_POSTINC_P.
34571
34572 2011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
34573
34574 PR rtl-optimization/46178
34575 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
34576 compute ira_hard_regno_cover_class[].
34577
34578 2011-02-18 Richard Guenther <rguenther@suse.de>
34579
34580 PR lto/47798
34581 * lto-streamer.h (lto_global_var_decls): Declare.
34582 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
34583 statics for global var processing.
34584
34585 2011-02-18 Richard Guenther <rguenther@suse.de>
34586
34587 PR tree-optimization/47737
34588 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
34589 edge dominance check.
34590
34591 2011-02-18 Jakub Jelinek <jakub@redhat.com>
34592
34593 PR debug/47780
34594 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
34595 avoid invalid rtx sharing.
34596
34597 2011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
34598
34599 * doc/cpp.texi (Obsolete Features): Add background on the
34600 origin of assertions.
34601
34602 2011-02-17 Iain Sandoe <iains@gcc.gnu.org>
34603
34604 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
34605 objc_abi == 2.
34606 * config/darwin.c (output_objc_section_asm_op): Added support for
34607 ABI v1 and v2.
34608 (is_objc_metadata): New.
34609 (darwin_objc2_section): New.
34610 (darwin_objc1_section): New.
34611 (machopic_select_section): Added support for ABI v1 and v2.
34612 (darwin_emit_objc_zeroed): New.
34613 (darwin_output_aligned_bss): Detect objc metadata and treat it
34614 appropriately.
34615 (darwin_asm_output_aligned_decl_common): Same.
34616 (darwin_asm_output_aligned_decl_local): Same.
34617 * config/darwin-sections.def: Updated for ABI v1 and v2.
34618 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
34619 compiling Objective-C code for the NeXT runtime, default to using
34620 ABI version 0 for 32-bit, and version 2 for 64-bit.
34621
34622 2011-02-17 Joseph Myers <joseph@codesourcery.com>
34623
34624 * common.opt (optimize_fast): New Variable.
34625 * opts.c (default_options_optimization): Use opts->x_optimize_fast
34626 instead of local variable ofast.
34627
34628 2011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
34629
34630 * doc/invoke.texi (fobjc-abi-version): Documented.
34631 (fobjc-nilcheck): Documented.
34632 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
34633 version.
34634
34635 2011-02-17 Joseph Myers <joseph@codesourcery.com>
34636
34637 PR driver/47390
34638 * common.opt (export-dynamic): New Driver option.
34639 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
34640
34641 2011-02-17 Joseph Myers <joseph@codesourcery.com>
34642
34643 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
34644
34645 2011-02-17 Alexandre Oliva <aoliva@redhat.com>
34646 Jan Hubicka <jh@suse.cz>
34647
34648 PR debug/47106
34649 PR debug/47402
34650 * cfgexpand.c (account_used_vars_for_block): Remove.
34651 (estimated_stack_frame_size): Use referenced vars.
34652 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
34653 that were referenced in the original function. Test src_fn
34654 rather than cfun. Drop redundant get_var_ann.
34655 (setup_one_parameter): Drop redundant get_var_ann.
34656 (declare_return_variable): Likewise.
34657 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
34658 (copy_arguments_for_versioning): Drop redundant get_var_ann.
34659 * ipa-inline.c (compute_inline_parameters): Do not compute
34660 disregard_inline_limits here.
34661 (compute_inlinable_for_current, pass_inlinable): New.
34662 (pass_inline_parameters): Require PROP_referenced_vars.
34663 * cgraphunit.c (cgraph_process_new_functions): Don't run
34664 compute_inline_parameters explicitly unless function is in SSA form.
34665 (cgraph_analyze_function): Set .disregard_inline_limits.
34666 * tree-sra.c (convert_callers): Compute inliner parameters
34667 only for functions already in SSA form.
34668
34669 2011-02-17 Joseph Myers <joseph@codesourcery.com>
34670
34671 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
34672 -mlittle-endian-data.
34673
34674 2011-02-17 Joseph Myers <joseph@codesourcery.com>
34675
34676 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
34677 -mno-fpu, not -fpu and -no-fpu.
34678 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
34679 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
34680
34681 2011-02-17 Uros Bizjak <ubizjak@gmail.com>
34682
34683 PR target/43653
34684 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
34685 input reload with PLUS RTX.
34686
34687 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34688
34689 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
34690 of InverseVar(MDMX).
34691
34692 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34693
34694 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
34695 --m4-340.
34696
34697 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34698
34699 * config/mn10300/mn10300.opt (mno-crt0): New.
34700
34701 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34702
34703 * config/m68k/uclinux.opt (static-libc): New Driver option.
34704
34705 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34706
34707 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
34708
34709 2011-02-16 Joseph Myers <joseph@codesourcery.com>
34710
34711 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
34712 %{muser-extend-enabled}.
34713
34714 2011-02-16 Richard Guenther <rguenther@suse.de>
34715
34716 PR tree-optimization/47738
34717 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
34718 the TODO from tree_predictive_commoning.
34719
34720 2011-02-15 Jeff Law <law@redhat.com>
34721
34722 Revert
34723 2011-01-25 Jeff Law <law@redhat.com>
34724
34725 PR rtl-optimization/37273
34726 * ira-costs.c (scan_one_insn): Detect constants living in memory and
34727 handle them like argument loads from stack slots. Do not double
34728 count memory for memory constants and argument loads from stack slots.
34729
34730 2011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
34731
34732 PR target/47755
34733 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
34734 mode for vector constants. Remove code that checks for TImode.
34735
34736 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
34737
34738 PR debug/47106
34739 PR debug/47402
34740 * cgraph.h (compute_inline_parameters): Return void.
34741 * ipa-inline.c (compute_inline_parameters): Adjust.
34742
34743 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
34744
34745 PR debug/47106
34746 PR debug/47402
34747 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
34748 rather than decl.
34749 * cfgexpand.c (estimated_stack_frame_size): Likewise.
34750 * ipa-inline.c (compute_inline_parameters): Adjust.
34751
34752 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
34753
34754 PR debug/47106
34755 PR debug/47402
34756 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
34757 Adjust all users. Pass FN to...
34758 * tree-flow-inline.h (first_referenced_var): ... this. Add
34759 fn argument.
34760 * ipa-struct-reorg.c: Adjust.
34761 * tree-dfa.c: Adjust.
34762 * tree-into-ssa.c: Adjust.
34763 * tree-sra.c: Adjust.
34764 * tree-ssa-alias.c: Adjust.
34765 * tree-ssa-live.c: Adjust.
34766 * tree-ssa.c: Adjust.
34767 * tree-ssanames.c: Adjust.
34768 * tree-tailcall.c: Adjust.
34769
34770 2011-02-15 Alexandre Oliva <aoliva@redhat.com>
34771
34772 PR debug/47106
34773 PR debug/47402
34774 * tree-flow.h (referenced_var_lookup): Add fn parameter.
34775 Adjust all callers.
34776 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
34777 * tree-flow-inline.h: Adjust.
34778 * gimple-pretty-print.c: Adjust.
34779 * tree-into-ssa.c: Adjust.
34780 * tree-ssa.c: Adjust.
34781 * cfgexpand.c: Adjust.
34782
34783 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
34784
34785 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
34786 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
34787 (EXTRA_CONSTRAINT): Delete.
34788 * config/iq2000/constraints.md: New file.
34789 * config/iq2000/iq2000.md: Include it.
34790 (define_insn ""): Delete.
34791 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
34792 unsupported constraint letters from patterns.
34793 (call_value, call_value_internal1): Likewise.
34794 (call_value_multiple_internal1): Likewise.
34795
34796 2011-02-15 Nick Clifton <nickc@redhat.com>
34797
34798 * config/mn10300/mn10300.c: Include tm-constrs.h.
34799 (struct liw_data): New data structure describing an LIW candidate
34800 instruction.
34801 (extract_bundle): Use struct liw_data. Allow small integer
34802 operands for some instructions.
34803 (check_liw_constraints): Use struct liw_data. Remove swapped
34804 parameter. Add comments describing the checks. Fix bug when
34805 assigning the source of liw1 to the source of liw2.
34806 (liw_candidate): Delete. Code moved into extract_bundle.
34807 (mn10300_bundle_liw): Use struct liw_data. Check constraints
34808 before swapping.
34809 * config/mn10300/predicates.md (liw_operand): New predicate.
34810 Allows registers and small integer constants.
34811 * config/mn10300/constraints.md (O): New constraint. Accetps
34812 integers in the range -8 to +7 inclusive.
34813 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
34814 for moving a small integer into a register. Give this alternative
34815 LIW attributes.
34816 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
34817 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
34818 using the J,K,L and M constraints,
34819 (liw): Remove SI mode on second operands to allow for HI and QI
34820 mode values.
34821 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
34822 instruction.
34823
34824 2011-02-15 Richard Guenther <rguenther@suse.de>
34825
34826 PR tree-optimization/47743
34827 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
34828 for a non-type-compatible VN lookup bail out.
34829
34830 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
34831
34832 * config/fr30/constraints.md: New file.
34833 * config/fr30/fr30.md: Include it.
34834 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
34835 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
34836 (EXTRA_CONSTRAINT): Delete.
34837
34838 2011-02-15 Nathan Froyd <froydnj@codesourcery.com>
34839
34840 * config/frv/constraints.md: New file.
34841 * config/frv/predicates.md: Include it.
34842 * config/frv/frv.c (reg_class_from_letter): Delete.
34843 (frv_option_override): Don't initialize it.
34844 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
34845 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
34846 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
34847 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
34848 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
34849 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
34850 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
34851 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
34852 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
34853 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
34854 (REG_CLASS_FROM_CONSTRAINT): Delete.
34855
34856 2011-02-15 Jakub Jelinek <jakub@redhat.com>
34857
34858 PR middle-end/47581
34859 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
34860 if frame size is 0 in a leaf function.
34861
34862 2011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34863
34864 PR pch/14940
34865 * config/alpha/host-osf.c: New file.
34866 * config/alpha/x-osf: New file.
34867 * config.host (alpha*-dec-osf*): Use it.
34868
34869 2011-02-14 Anatoly Sokolov <aesok@post.ru>
34870
34871 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
34872 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
34873 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
34874 (rx_mode_dependent_address_p): ...this. Make static. Change argument
34875 type to const_rtx.
34876 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
34877
34878 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
34879
34880 * config/stormy16/constraints.md: New file.
34881 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
34882 Use satisfies_constraint_Q and satisfies_constraint_R.
34883 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
34884 Delete.
34885 (xstormy16_legitiamte_address_p): Declare.
34886 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
34887 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
34888 (EXTRA_CONSTRAINT): Delete.
34889 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
34890 Un-staticize.
34891 (xstormy16_extra_constraint_p): Delete.
34892
34893 2011-02-14 Eric Botcazou <ebotcazou@adacore.com>
34894
34895 PR tree-optimization/46494
34896 * loop-unroll.c (split_edge_and_insert): Adjust comment.
34897 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
34898 (pass_rtl_loop_done): Add TODO_verify_flow.
34899 * fwprop.c (pass_rtl_fwprop): Likewise.
34900 * modulo-sched.c (pass_sms): Likewise.
34901 * tree-ssa-dom.c (pass_dominator): Likewise.
34902 * tree-ssa-loop-ch.c (pass_ch): Likewise.
34903 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
34904 (pass_tree_loop_done): Likewise.
34905 * tree-ssa-pre.c (execute_pre): Likewise.
34906 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
34907 * tree-ssa-sink.c (pass_sink_code): Likewise.
34908 * tree-vrp.c (pass_vrp): Likewise.
34909
34910 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
34911
34912 * config/v850/constraints.md: New file.
34913 * config/v850/v850.md: Include it.
34914 * config/v850/predicates.md (reg_or_0_operand): Use
34915 satisfies_constraint_G.
34916 (special_symbolref_operand): Use satisfies_constraint_K.
34917 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
34918 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
34919 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
34920 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
34921 (EXTRA_CONSTRAINT): Delete.
34922 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
34923 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
34924 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
34925
34926 2011-02-14 Anatoly Sokolov <aesok@post.ru>
34927
34928 PR target/47696
34929 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
34930 description.
34931
34932 2011-02-14 Nathan Froyd <froydnj@codesourcery.com>
34933
34934 * config/mcore/constraints.md: New file.
34935 * config/mcore/mcore.md: Include it.
34936 * config/mcore/mcore.c (reg_class_from_letter): Delete.
34937 * config/mcore/mcore.h (reg_class_from_letter): Delete.
34938 (REG_CLASS_FROM_LETTER): Delete.
34939 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
34940 insn_const_int_ok_for_constraint.
34941 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
34942 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
34943 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
34944 (EXTRA_CONSTRAINT): Delete.
34945
34946 2011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34947
34948 PR ada/41929
34949 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
34950 (IS_SIGHANDLER): Define.
34951 (sparc64_is_sighandler): New function, split off from
34952 sparc64_fallback_frame_state.
34953 (sparc_is_sighandler): New function, split off from
34954 sparc_fallback_frame_state.
34955 (sparc64_fallback_frame_state): Merge with ...
34956 (sparc_fallback_frame_state): ... this into ...
34957 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
34958 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
34959 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
34960 stack instead of hardcoded offsets.
34961
34962 2011-02-14 Andriy Gapon <avg@freebsd.org>
34963
34964 PR target/45808
34965 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
34966
34967 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
34968
34969 * configure: Regenerate.
34970
34971 2011-02-12 Joseph Myers <joseph@codesourcery.com>
34972
34973 PR driver/45731
34974 * gcc.c (asm_options): Correct spec matching --target-help.
34975
34976 2011-02-12 Martin Jambor <mjambor@suse.cz>
34977
34978 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
34979 to gimple call error.
34980
34981 2011-02-12 Mike Stump <mikestump@comcast.net>
34982
34983 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
34984 comments in backslash regions.
34985
34986 2011-02-12 Mike Stump <mikestump@comcast.net>
34987 Jakub Jelinek <jakub@redhat.com>
34988 Iain Sandoe <iains@gcc.gnu.org>
34989
34990 PR target/47324
34991 * dwarf2out.c (output_cfa_loc): When required, apply the
34992 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
34993 (output_loc_sequence): Likewise.
34994 (output_loc_operands_raw): Likewise.
34995 (output_loc_sequence_raw): Likewise.
34996 (output_cfa_loc): Likewise.
34997 (output_loc_list): Suppress register number adjustment when
34998 calling output_loc_sequence()
34999 (output_die): Likewise.
35000
35001 2011-02-12 Anatoly Sokolov <aesok@post.ru>
35002
35003 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
35004 Remove macros.
35005 * config/xtensa/xtensa.c (xtensa_register_move_cost,
35006 xtensa_memory_move_cost): New functions.
35007 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
35008
35009 2011-02-12 Alexandre Oliva <aoliva@redhat.com>
35010
35011 PR lto/47225
35012 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
35013 in the current directory.
35014 * configure: Rebuilt.
35015
35016 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
35017
35018 * config/darwin.c (darwin_override_options): Add a hunk missed
35019 from the commit of r168571. Trim comment line lengths and
35020 correct indents of the preceding block.
35021
35022 2011-02-12 Iain Sandoe <iains@gcc.gnu.org>
35023
35024 * gcc.c (driver_handle_option): Concatenate the argument to -F with
35025 the switch.
35026
35027 2011-02-11 Joseph Myers <joseph@codesourcery.com>
35028
35029 * common.opt (nostartfiles): New Driver option.
35030
35031 2011-02-11 Xinliang David Li <davidxl@google.com>
35032
35033 PR tree-optimization/47707
35034 * tree-chrec.c (convert_affine_scev): Keep type precision.
35035
35036 2011-02-11 Eric Botcazou <ebotcazou@adacore.com>
35037
35038 PR tree-optimization/47420
35039 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
35040
35041 2011-02-11 Pat Haugen <pthaugen@us.ibm.com>
35042
35043 PR rtl-optimization/47614
35044 * rtl.h (check_for_inc_dec): Declare.
35045 * dse.c (check_for_inc_dec): Externalize...
35046 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
35047 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
35048
35049 2011-02-11 Joseph Myers <joseph@codesourcery.com>
35050
35051 PR driver/47678
35052 * gcc.c (main): Do not compile inputs if there were errors in
35053 option handling.
35054 * opts-common.c (read_cmdline_option): Check for wrong language
35055 after other error checks.
35056
35057 2011-02-11 Nathan Froyd <froydnj@codesourcery.com>
35058
35059 * cgraph.c: Fix comment typos.
35060 * cgraph.h: Likewise.
35061 * cgraphunit.c: Likewise.
35062 * ipa-cp.c: Likewise.
35063 * ipa-inline.c: Likewise.
35064 * ipa-prop.c: Likewise.
35065 * ipa-pure-const.c: Likewise.
35066 * ipa-ref.c: Likewise.
35067 * ipa-reference.c: Likewise.
35068
35069 2011-02-11 Jakub Jelinek <jakub@redhat.com>
35070
35071 PR debug/47684
35072 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
35073
35074 2011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35075
35076 PR testsuite/47400
35077 * doc/sourcebuild.texi (Require Support): Document
35078 dg-require-ascii-locale.
35079
35080 2011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
35081
35082 * doc/lto.texi (Write summary): Fix missing parentheses.
35083
35084 2011-02-10 DJ Delorie <dj@redhat.com>
35085
35086 * config/m32c/m32c.c (m32c_option_override): Disable
35087 -fcombine-stack-adjustments until flag value tracking and compare
35088 optimization can be rewritten.
35089
35090 2011-02-10 Peter Bergner <bergner@vnet.ibm.com>
35091
35092 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
35093 PROCESSOR_POWER7.
35094 (PROCESSOR_DEFAULT64): Likewise.
35095
35096 2011-02-10 Richard Henderson <rth@redhat.com>
35097
35098 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
35099 change from 2011-02-03.
35100 * config/rx/rx.c (flags_from_code): Likewise.
35101 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
35102 is valid, n/pz otherwise.
35103 (rx_select_cc_mode): Return CCmode if Y is not zero.
35104
35105 2011-02-10 Richard Guenther <rguenther@suse.de>
35106
35107 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
35108
35109 2011-02-10 Richard Guenther <rguenther@suse.de>
35110
35111 PR tree-optimization/47677
35112 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
35113
35114 2011-02-10 Jakub Jelinek <jakub@redhat.com>
35115
35116 PR target/47665
35117 * combine.c (make_compound_operation): Only change shifts into
35118 multiplication for SCALAR_INT_MODE_P.
35119
35120 2011-02-10 Jie Zhang <jie@codesourcery.com>
35121
35122 PR testsuite/47622
35123 Revert
35124 2011-02-05 Jie Zhang <jie@codesourcery.com>
35125 PR debug/42631
35126 * web.c (entry_register): Don't clobber the number of the
35127 first uninitialized reference in used[].
35128
35129 2011-02-09 Richard Guenther <rguenther@suse.de>
35130
35131 PR tree-optimization/47664
35132 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
35133 all edges again.
35134
35135 2011-02-09 David Edelsohn <dje.gcc@gmail.com>
35136
35137 PR target/46481
35138 PR target/47032
35139 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
35140 PROCESSOR_POWER7.
35141 (PROCESSOR_DEFAULT64): Same.
35142 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
35143
35144 2011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35145
35146 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
35147
35148 2011-02-09 Martin Jambor <mjambor@suse.cz>
35149
35150 PR middle-end/45505
35151 * tree-sra.c (struct access): New flags grp_scalar_read and
35152 grp_scalar_write. Changed description of assignment read and write
35153 flags.
35154 (dump_access): Dump new flags, reorder all of them.
35155 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
35156 to detect multiple scalar reads.
35157 (analyze_access_subtree): Use the new scalar read write flags instead
35158 of the old flags. Adjusted comments.
35159
35160 2011-02-08 DJ Delorie <dj@redhat.com>
35161
35162 PR target/47548
35163 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
35164 patterns.
35165
35166 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35167
35168 * config/m68k/uclinux.opt: New.
35169 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
35170
35171 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35172
35173 * config/cris/elf.opt (sim): New Driver option.
35174
35175 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35176
35177 * config/xtensa/elf.opt: New.
35178 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
35179
35180 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35181
35182 * config/vax/elf.opt: New.
35183 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
35184
35185 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35186
35187 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
35188
35189 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35190
35191 * config/gnu-user.opt: New.
35192 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
35193 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
35194 *-*-uclinux*): Use gnu-user.opt.
35195
35196 2011-02-08 Thomas Schwinge <thomas@schwinge.name>
35197
35198 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
35199 * config/i386/gnu.h (CPP_SPEC): Likewise.
35200
35201 2011-02-08 Ian Lance Taylor <iant@google.com>
35202
35203 * common.opt (fcx-limited-range): Add SetByCombined flag.
35204 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
35205 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
35206 (fassociative-math, freciprocal-math): Likewise.
35207 (funsafe-math-optimizations): Likewise.
35208 * opth-gen.awk: Handle SetByCombined.
35209 * optc-gen.awk: Likewise.
35210 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
35211 (set_unsafe_math_optimizations_flags): Likewise.
35212 * doc/options.texi (Option properties): Document SetByCombined.
35213
35214 2011-02-08 Joseph Myers <joseph@codesourcery.com>
35215
35216 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
35217 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
35218 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
35219 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
35220 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
35221
35222 2011-02-08 Sebastian Pop <sebastian.pop@amd.com>
35223
35224 PR tree-optimization/46834
35225 PR tree-optimization/46994
35226 PR tree-optimization/46995
35227 * graphite-sese-to-poly.c (used_outside_reduction): New.
35228 (detect_commutative_reduction): Call used_outside_reduction.
35229 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
35230 translate_scalar_reduction_to_array only when at least one
35231 loop-phi/close-phi tuple has been detected.
35232
35233 2011-02-08 Richard Guenther <rguenther@suse.de>
35234
35235 PR middle-end/47639
35236 * tree-vect-generic.c (expand_vector_operations_1): Update
35237 stmts here ...
35238 (expand_vector_operations): ... not here. Cleanup EH info
35239 and the CFG if required.
35240
35241 2011-02-08 Richard Guenther <rguenther@suse.de>
35242
35243 PR tree-optimization/47641
35244 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
35245 require type compatibility.
35246
35247 2011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
35248
35249 * gimple-low.c (lower_function_body): Don't remove the location of
35250 the return statement here.
35251 (lower_gimple_return): Do it here instead but only if the return
35252 statement is actually used twice.
35253
35254 2011-02-08 Richard Guenther <rguenther@suse.de>
35255
35256 PR tree-optimization/47632
35257 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
35258 unused up_to_stmt parameter, return whether cfg-cleanup is
35259 necessary, remove EH info properly.
35260 (forward_propagate_into_gimple_cond): Adjust caller.
35261 (forward_propagate_into_cond): Likewise.
35262 (forward_propagate_comparison): Likewise.
35263 (tree_ssa_forward_propagate_single_use_vars): Make
35264 forward_propagate_comparison case similar to the two others.
35265
35266 2011-02-08 Nick Clifton <nickc@redhat.com>
35267
35268 * config/mn10300/mn10300.opt (mliw): New command line option.
35269 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
35270 (liw_bundling): New automaton.
35271 (liw): New attribute.
35272 (liw_op): New attribute.
35273 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
35274 (movsi_internal): Add LIW attributes.
35275 (andsi3): Likewise.
35276 (iorsi3): Likewise.
35277 (xorsi3): Likewise.
35278 (addsi3): Separate register and immediate alternatives.
35279 Add LIW attributes.
35280 (subsi3): Likewise.
35281 (cmpsi): Likewise.
35282 (aslsi3): Likewise.
35283 (lshrsi3): Likewise.
35284 (ashrsi3): Likewise.
35285 (liw): New pattern.
35286 * config/mn10300/mn10300.c (liw_op_names): New
35287 (mn10300_print_operand): Handle 'W' operand descriptor.
35288 (extract_bundle): New function.
35289 (check_liw_constraints): New function.
35290 (liw_candidate): New function.
35291 (mn10300_bundle_liw): New function.
35292 (mn10300_reorg): New function.
35293 (TARGET_MACHINE_DEPENDENT_REORG): Define.
35294 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
35295 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
35296 __LIW__ or __NO_LIW__.
35297 * doc/invoke.texi: Describe the -mliw command line option.
35298
35299 2011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
35300
35301 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
35302 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
35303 pthread_mutex_unlock): Remove.
35304 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
35305 * config/pa/t-pa64: Likewise.
35306 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
35307 shared libc if not linking against libpthread.
35308 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
35309
35310 2011-02-07 Iain Sandoe <iains@gcc.gnu.org>
35311
35312 PR target/47558
35313 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
35314 on 10.6 and later to ensure that we always use the unwinder from
35315 the system. Only add -no_compact_unwind when tarteting darwin
35316 10.6 or later.
35317
35318 2011-02-07 Steve Ellcey <sje@cup.hp.com>
35319
35320 PR target/46997
35321 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
35322 (vec_interleave_lowv2sf): Ditto.
35323 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
35324 (vec_extract_oddv2sf): Ditto.
35325
35326 2011-02-07 Mike Stump <mikestump@comcast.net>
35327
35328 PR target/42333
35329 Add __ieee_divdc3 entry point.
35330 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
35331 entry point.
35332 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
35333 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
35334 * config/darwin.c (darwin_rename_builtins): Add.
35335 * config/darwin-protos.h (darwin_rename_builtins): Add.
35336
35337 2011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
35338
35339 PR target/47636
35340 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
35341 for the condition.
35342
35343 2011-02-07 Mike Stump <mikestump@comcast.net>
35344
35345 * config/darwin.opt (mmacosx-version-min): Update default OS version.
35346
35347 2011-02-07 Denis Chertykov <chertykov@gmail.com>
35348
35349 PR target/47534
35350 * config/avr/libgcc.S (exit): Move .endfunc
35351
35352 2011-02-07 Richard Guenther <rguenther@suse.de>
35353
35354 PR tree-optimization/47615
35355 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
35356 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
35357 (run_scc_vn): Initialize it.
35358 (visit_reference_op_load): Use it.
35359 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
35360
35361 2011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
35362
35363 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
35364 DImode trapping arithmetic libfuncs.
35365
35366 2011-02-07 Richard Guenther <rguenther@suse.de>
35367
35368 PR tree-optimization/47621
35369 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
35370 two duplicates ...
35371 (execute_update_addresses_taken): ... here. Make it more
35372 conservative in what we accept.
35373
35374 2011-02-06 Joseph Myers <joseph@codesourcery.com>
35375
35376 * config/sparc/freebsd.h (ASM_SPEC): Define.
35377 * config/sparc/vxworks.h (ASM_SPEC): Define.
35378
35379 2011-02-06 Joseph Myers <joseph@codesourcery.com>
35380
35381 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
35382
35383 2011-02-06 Steven Bosscher <steven@gcc.gnu.org>
35384
35385 * doc/invoke.texi: Remove reference to compiler internals from
35386 user documentation.
35387
35388 * reg-notes.def: Remove REG_VALUE_PROFILE.
35389 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
35390
35391 2011-02-05 Jakub Jelinek <jakub@redhat.com>
35392
35393 PR middle-end/47610
35394 * varasm.c (default_section_type_flags): If decl is NULL,
35395 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
35396
35397 2011-02-05 Jie Zhang <jie@codesourcery.com>
35398
35399 PR debug/42631
35400 * web.c (entry_register): Don't clobber the number of the
35401 first uninitialized reference in used[].
35402
35403 2011-02-04 Sebastian Pop <sebastian.pop@amd.com>
35404
35405 PR tree-optimization/46194
35406 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
35407 (build_classic_dist_vector_1): Do not represent classic distance
35408 vectors when the access functions are variating in different loops.
35409
35410 2011-02-04 Joseph Myers <joseph@codesourcery.com>
35411
35412 * config/mips/iris6.opt: New.
35413 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
35414
35415 2011-02-04 Richard Henderson <rth@redhat.com>
35416 Steve Ellcey <sje@cup.hp.com>
35417
35418 PR target/46997
35419 * config/ia64/predicates.md (mux1_brcst_element): New.
35420 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
35421 * config/ia64/ia64.c (ia64_unpack_assemble): New.
35422 (ia64_unpack_sign): New.
35423 (ia64_expand_unpack): Rewrite using new routines.
35424 (ia64_expand_widen_sum): Ditto.
35425 (ia64_expand_dot_prod_v8qi): Ditto.
35426 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
35427 routines, add endian check.
35428 (pmpy2_even): Rename from pmpy2_r, add endian check.
35429 (pmpy2_odd): Rename from pmpy2_l, add endian check.
35430 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
35431 (vec_widen_smult_hi_v4hi): Ditto.
35432 (vec_widen_umult_lo_v4hi): Ditto.
35433 (vec_widen_umult_hi_v4hi): Ditto.
35434 (mulv2si3): Change endian checks.
35435 (sdot_prodv4hi): Rewrite with new calls.
35436 (udot_prodv4hi): New.
35437 (vec_pack_ssat_v4hi): Add endian check.
35438 (vec_pack_usat_v4hi): Ditto.
35439 (vec_pack_ssat_v2si): Ditto.
35440 (max1_even): Rename from max1_r, add endian check.
35441 (max1_odd): Rename from max1_l, add endian check.
35442 (*mux1_rev): Format change.
35443 (*mux1_mix): Ditto.
35444 (*mux1_shuf): Ditto.
35445 (*mux1_alt): Ditto.
35446 (*mux1_brcst_v8qi): Use new predicate.
35447 (vec_extract_evenv8qi): Remove endian check.
35448 (vec_extract_oddv8qi): Ditto.
35449 (vec_interleave_lowv4hi): Format change.
35450 (vec_interleave_highv4hi): Ditto.
35451 (mix2_even): Rename from mix2_r, add endian check.
35452 (mix2_odd): Rename from mux2_l, add endian check.
35453 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
35454 (vec_extract_evenodd_helper): Format change.
35455 (vec_extract_evenv4hi): Remove endian check.
35456 (vec_extract_oddv4hi): Remove endian check.
35457 (vec_interleave_lowv2si): Format change.
35458 (vec_interleave_highv2si): Format change.
35459 (vec_initv2si): Remove endian check.
35460 (vecinit_v2si): Add endian check.
35461 (reduc_splus_v2sf): Add endian check.
35462 (reduc_smax_v2sf): Ditto.
35463 (reduc_smin_v2sf): Ditto.
35464 (vec_initv2sf): Remove endian check.
35465 (fpack): Add endian check.
35466 (fswap): Add endian check.
35467 (vec_interleave_highv2sf): Add endian check.
35468 (vec_interleave_lowv2sf): Add endian check.
35469 (fmix_lr): Add endian check.
35470 (vec_setv2sf): Format change.
35471 (*vec_extractv2sf_0_be): Use shift to extract operand.
35472 (*vec_extractv2sf_1_be): New.
35473 (vec_pack_trunc_v4hi): Add endian check.
35474 (vec_pack_trunc_v2si): Format change.
35475
35476 2011-02-04 Jakub Jelinek <jakub@redhat.com>
35477
35478 PR inline-asm/23200
35479 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
35480 do bb, locus and block comparison and disallow loads if it is not set.
35481 (stmt_is_replaceable_p): New function.
35482 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
35483 callers.
35484 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
35485 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
35486 SSA_NAME_DEF_STMT.
35487 * tree-flow.h (stmt_is_replaceable_p): New prototype.
35488
35489 2011-02-04 Joseph Myers <joseph@codesourcery.com>
35490
35491 * config/rs6000/xilinx.opt: New.
35492 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
35493
35494 2011-02-04 Joseph Myers <joseph@codesourcery.com>
35495
35496 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
35497
35498 2011-02-03 Anatoly Sokolov <aesok@post.ru>
35499
35500 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
35501 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
35502 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
35503 secondary_reload_info, xtensa_secondary_reload): Remove.
35504 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
35505 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
35506 (xtensa_preferred_reload_class): Make static. Change return and
35507 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
35508 Use CONST_DOUBLE_P predicate.
35509 (xtensa_preferred_output_reload_class): New function.
35510 (xtensa_secondary_reload): Make static.
35511
35512 2011-02-03 Joseph Myers <joseph@codesourcery.com>
35513
35514 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
35515 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
35516 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
35517
35518 2011-02-03 Jakub Jelinek <jakub@redhat.com>
35519
35520 PR middle-end/31490
35521 * output.h (SECTION_RELRO): Define.
35522 (SECTION_MACH_DEP): Adjust.
35523 (get_variable_section): New prototype.
35524 * varpool.c (varpool_finalize_named_section_flags): New function.
35525 (varpool_assemble_pending_decls): Call it.
35526 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
35527 * cgraphunit.c (cgraph_output_in_order): Call
35528 varpool_finalize_named_section_flags.
35529 * varasm.c (get_section): Allow section flags conflicts between
35530 relro and read-only sections if the section hasn't been declared yet.
35531 Set SECTION_OVERRIDE after diagnosing section type conflict.
35532 (get_variable_section): No longer static.
35533 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
35534 readonly sections that need relocations.
35535 (decl_readonly_section_1): New function.
35536 (decl_readonly_section): Use it.
35537
35538 Revert:
35539 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
35540 Steve Ellcey <sje@cup.hp.com>
35541
35542 PR middle-end/31490
35543 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
35544 if section attribute used.
35545
35546 2011-02-03 Jakub Jelinek <jakub@redhat.com>
35547
35548 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
35549 * config/darwin.c (SECTION_NO_ANCHOR): Define.
35550 (darwin_init_sections): Remove assertion.
35551
35552 2011-02-03 Nick Clifton <nickc@redhat.com>
35553
35554 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
35555 lt and ge.
35556 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
35557 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
35558 instead of "n" and "pz".
35559 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
35560 CC_FLAG_S.
35561
35562 2011-02-03 Jakub Jelinek <jakub@redhat.com>
35563
35564 PR target/47312
35565 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
35566 fma, expand FMA_EXPR as fma{,f,l} call.
35567
35568 PR lto/47274
35569 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
35570 copy them into a unsigned char variable and pass address of it to
35571 lto_output_data_stream.
35572
35573 PR target/47564
35574 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
35575 around backend_init_target and lang_dependent_init_target calls.
35576 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
35577 (verify_cgraph_node): Don't call set_cfun here. Use
35578 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
35579 Set error_found for incorrectly represented calls to thunks.
35580
35581 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
35582
35583 PR debug/43092
35584 PR rtl-optimization/43494
35585 * rtl.h (for_each_inc_dec_fn): New type.
35586 (for_each_inc_dec): Declare.
35587 * rtlanal.c (struct for_each_inc_dec_ops): New type.
35588 (for_each_inc_dec_find_inc_dec): New fn.
35589 (for_each_inc_dec_find_mem): New fn.
35590 (for_each_inc_dec): New fn.
35591 * dse.c (struct insn_size): Remove.
35592 (replace_inc_dec, replace_inc_dec_mem): Remove.
35593 (emit_inc_dec_insn_before): New fn.
35594 (check_for_inc_dec): Use it, along with for_each_inc_dec.
35595 (canon_address): Pass mem modes to cselib_lookup.
35596 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
35597 (cselib_lookup_from_insn): Likewise.
35598 (cselib_subst_to_values): Likewise.
35599 * cselib.c (find_slot_memmode): New var.
35600 (cselib_find_slot): New fn. Use it instead of
35601 htab_find_slot_with_hash everywhere.
35602 (entry_and_rtx_equal_p): Use find_slot_memmode.
35603 (autoinc_split): New fn.
35604 (rtx_equal_for_cselib_p): Rename and implement in terms of...
35605 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
35606 Deal with autoinc. Special-case recursion into MEMs.
35607 (cselib_hash_rtx): Likewise.
35608 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
35609 address and MEM modes.
35610 (cselib_subst_to_values): Add memmode, pass it on.
35611 Deal with autoinc.
35612 (cselib_lookup): Add memmode argument, pass it on.
35613 (cselib_lookup_from_insn): Add memmode.
35614 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
35615 (struct cselib_record_autoinc_data): New.
35616 (cselib_record_autoinc_cb): New fn.
35617 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
35618 mode to cselib_lookup. Reset autoinced REGs here instead of...
35619 (cselib_process_insn): ... here.
35620 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
35621 to cselib_lookup.
35622 (add_uses): Likewise, also to cselib_subst_to_values.
35623 (add_stores): Likewise.
35624 * sched-deps.c (add_insn_mem_dependence): Pass mode to
35625 cselib_subst_to_values.
35626 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
35627 * gcse.c (do_local_cprop): Adjusted.
35628 * postreload.c (reload_cse_simplify_set): Adjusted.
35629 (reload_cse_simplify_operands): Adjusted.
35630 * sel-sched-dump (debug_mem_addr_value): Pass mode.
35631
35632 2011-02-03 Alexandre Oliva <aoliva@redhat.com>
35633
35634 PR tree-optimization/45122
35635 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
35636 unsafe assumptions when there's more than one loop exit.
35637
35638 2011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
35639
35640 PR target/47272
35641 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
35642 Document using vector double with the load/store builtins, and
35643 that the load/store builtins always use Altivec instructions.
35644
35645 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
35646 to use altivec memory instructions, even on VSX.
35647 (vector_altivec_store_<mode>): Ditto.
35648
35649 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
35650 function.
35651
35652 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
35653 V2DF, V2DI support to load/store overloaded builtins.
35654
35655 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
35656 altivec load/store builtins for V2DF/V2DI types.
35657
35658 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
35659 set avoid indexed addresses on power6 if -maltivec.
35660 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
35661 vector_altivec_load/vector_altivec_store builtins.
35662 (altivec_expand_st_builtin): Ditto.
35663 (altivec_expand_builtin): Add VSX memory builtins.
35664 (rs6000_init_builtins): Add V2DI types to internal types.
35665 (altivec_init_builtins): Add support for V2DF/V2DI altivec
35666 load/store builtins.
35667 (rs6000_address_for_altivec): Insure memory address is appropriate
35668 for Altivec.
35669
35670 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
35671 vec_vsx_ld and vec_vsx_st.
35672 (vsx_store_<mode>): Ditto.
35673
35674 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
35675 variables to hold long long types for VSX vector memory builtins.
35676 (RS6000_BTI_unsigned_long_long): Ditto.
35677 (long_long_integer_type_internal_node): Ditti.
35678 (long_long_unsigned_type_internal_node): Ditti.
35679
35680 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
35681 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
35682 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
35683
35684 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
35685 short cuts.
35686 (vec_vsx_st): Ditto.
35687
35688 2011-02-02 Joseph Myers <joseph@codesourcery.com>
35689
35690 * config/pa/pa-hpux10.opt: New.
35691 * config/hpux11.opt (pthread): New Driver option.
35692 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
35693 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
35694
35695 2011-02-02 Joseph Myers <joseph@codesourcery.com>
35696
35697 * config/ia64/vms.opt: New.
35698 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
35699
35700 2011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
35701
35702 PR target/47580
35703 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
35704 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
35705 generator functions.
35706 (vsx_floatuns<VSi><mode>2): Ditto.
35707 (vsx_fix_trunc<mode><VSi>2): Ditto.
35708 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
35709
35710 2011-02-02 Joseph Myers <joseph@codesourcery.com>
35711
35712 * config/i386/djgpp.opt (posix): New Driver option.
35713
35714 2011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
35715
35716 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
35717 Move to the unsupported targets list.
35718
35719 2011-02-02 Peter Bergner <bergner@vnet.ibm.com>
35720
35721 PR rtl-optimization/47525
35722 * df-scan.c: Update copyright years.
35723 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
35724 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
35725
35726 2011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35727
35728 * config/i386/sysv4.h (TARGET_VERSION): Remove.
35729 (SUBTARGET_RETURN_IN_MEMORY): Remove.
35730 (ASM_OUTPUT_ASCII): Remove.
35731 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
35732
35733 2011-02-02 Jeff Law <law@redhat.com>
35734
35735 PR middle-end/47543
35736 * reload.c (find_reloads_address): Handle reg+d address where both
35737 components are invalid by reloading the entire address.
35738
35739 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
35740 Richard Guenther <rguenther@suse.de>
35741
35742 PR tree-optimization/40979
35743 PR bootstrap/47044
35744 * passes.c (init_optimization_passes): After LIM call copy_prop
35745 and DCE to clean up.
35746 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
35747
35748 2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
35749
35750 PR tree-optimization/47576
35751 PR tree-optimization/47555
35752 * doc/invoke.texi (scev-max-expr-complexity): Documented.
35753 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
35754 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
35755 * tree-scalar-evolution.c (follow_ssa_edge): Use
35756 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
35757
35758 2011-02-02 Richard Guenther <rguenther@suse.de>
35759
35760 PR tree-optimization/47566
35761 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
35762
35763 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
35764
35765 PR debug/47106
35766 PR debug/47402
35767 * tree-inline.c (declare_return_variable): Remove unused caller
35768 variable.
35769
35770 PR debug/47106
35771 PR debug/47402
35772 * tree-flow-inline.h (clear_is_used, is_used_p): New.
35773 * cfgexpand.c (account_used_vars_for_block): Use them.
35774 * tree-nrv.c (tree_nrv): Likewise.
35775 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
35776 (dump_scope_block): Likewise.
35777 (remove_unused_locals): Likewise.
35778
35779 PR debug/47106
35780 PR debug/47402
35781 * tree-inline.c (declare_return_variable): Add result decl to
35782 local decls only once.
35783 * gimple-low.c (record_vars_into): Mark newly-created variables
35784 as referenced.
35785
35786 2011-02-02 Alexandre Oliva <aoliva@redhat.com>
35787
35788 PR debug/47498
35789 PR debug/47501
35790 PR debug/45136
35791 PR debug/45130
35792 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
35793 debug insns.
35794 (no_real_insns_p, schedule_block, set_priorities): Drop special
35795 treatment of boundary debug insns.
35796 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
35797 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
35798 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
35799 (BOUNDARY_DEBUG_INSN_P): Likewise.
35800 (SCHEDULE_DEBUG_INSN_P): Likewise.
35801 * sched-rgn.c (init_ready_list): Drop special treatment of
35802 boundary debug insns.
35803 * final.c (rest_of_clean_state): Clear notes' BB.
35804
35805 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35806
35807 * config/openbsd.opt (assert=): New Driver option.
35808
35809 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35810
35811 * config/i386/nto.opt: New.
35812 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
35813
35814 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35815
35816 * config/i386/netware.opt: New.
35817 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
35818
35819 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35820
35821 * config/interix.opt (posix): New Driver option.
35822
35823 2011-02-01 DJ Delorie <dj@redhat.com>
35824
35825 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
35826
35827 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
35828 class for A0/A1.
35829
35830 2011-02-01 Sebastian Pop <sebastian.pop@amd.com>
35831
35832 PR tree-optimization/47561
35833 * toplev.c (process_options): Print the Graphite flags. Add
35834 flag_loop_flatten to the list of options requiring Graphite.
35835
35836 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35837
35838 * config/i386/cygming.opt (posix): New Driver option.
35839
35840 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35841
35842 * config/arm/vxworks.opt: New.
35843 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
35844
35845 2011-02-01 Joseph Myers <joseph@codesourcery.com>
35846
35847 * config/alpha/elf.opt: New.
35848 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
35849 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
35850
35851 2011-02-01 Richard Guenther <rguenther@suse.de>
35852
35853 PR tree-optimization/47559
35854 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
35855 store-motion on references that can throw.
35856
35857 2011-02-01 Bernd Schmidt <bernds@codesourcery.com>
35858
35859 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
35860 * tree-pass.h (TDF_CSELIB): New macro.
35861 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
35862 cselib_lookup): Check for it rather than for TDF_DETAILS.
35863
35864 2011-02-01 H.J. Lu <hongjiu.lu@intel.com>
35865
35866 PR driver/47547
35867 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
35868 is HOST_BIT_BUCKET.
35869
35870 * opts.c (finish_options): Don't add x_aux_base_name if it is
35871 HOST_BIT_BUCKET.
35872
35873 2011-02-01 Richard Guenther <rguenther@suse.de>
35874
35875 PR tree-optimization/47555
35876 Revert
35877 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
35878
35879 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
35880
35881 2011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
35882
35883 PR gcc/46692
35884 * config/lm32/t-lm32: Add multilib for all CPU options.
35885
35886 2011-02-01 Richard Guenther <rguenther@suse.de>
35887
35888 PR tree-optimization/47541
35889 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
35890 sure to have a field at offset zero.
35891
35892 2011-01-31 Joseph Myers <joseph@codesourcery.com>
35893
35894 * config/arc/arc.opt (EB, EL): New Driver options.
35895
35896 2011-01-31 Joseph Myers <joseph@codesourcery.com>
35897
35898 * config/alpha/osf5.opt: New.
35899 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
35900
35901 2011-01-31 Joseph Myers <joseph@codesourcery.com>
35902
35903 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
35904
35905 2011-01-31 Sebastian Pop <sebastian.pop@amd.com>
35906
35907 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
35908 -floop-interchange.
35909 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
35910 is an alias of -floop-interchange and that it requires the
35911 Graphite infrastructure.
35912 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
35913 flag_loop_interchange based on the value of flag_tree_loop_linear.
35914
35915 2011-01-31 Jakub Jelinek <jakub@redhat.com>
35916 Richard Guenther <rguenther@suse.de>
35917
35918 PR tree-optimization/47538
35919 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
35920 type instead of r1type, except for comparisons. For right
35921 shifts and comparisons punt if there are mismatches in
35922 sizetype vs. non-sizetype types.
35923
35924 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35925
35926 * doc/sourcebuild.texi (Effective-Target Keywords): Document
35927 avx_runtime.
35928
35929 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35930
35931 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
35932 version number.
35933 * configure: Regenerate.
35934
35935 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
35936
35937 * configure.ac (gcc_cv_ld_static_option): Define.
35938 (gcc_cv_ld_dynamic_option): Define.
35939 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
35940 instead.
35941 (HAVE_LD_STATIC_DYNAMIC): Update message.
35942 (LD_STATIC_OPTION): Define.
35943 (LD_DYNAMIC_OPTION): Define.
35944 * configure: Regenerate.
35945 * config.in: Regenerate.
35946 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
35947 HAVE_LD_STATIC_DYNAMIC]: Use them.
35948
35949 2011-01-31 Nick Clifton <nickc@redhat.com>
35950
35951 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
35952 registers inside interrupt handlers if the handler is not a leaf
35953 function.
35954
35955 2011-01-31 Nick Clifton <nickc@redhat.com>
35956
35957 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
35958 reg_renumber returning an INVALID_REGNUM.
35959
35960 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
35961
35962 PR libgcj/44341
35963 * doc/install.texi: Document host options discarded when cross
35964 configuring target libraries.
35965
35966 2011-01-31 Alexandre Oliva <aoliva@redhat.com>
35967
35968 Reverted:
35969 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
35970 PR debug/45136
35971 PR debug/45130
35972 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
35973 debug insns.
35974 (no_real_insns_p, schedule_block, set_priorities): Drop special
35975 treatment of boundary debug insns.
35976 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
35977 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
35978 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
35979 (BOUNDARY_DEBUG_INSN_P): Likewise.
35980 (SCHEDULE_DEBUG_INSN_P): Likewise.
35981 * sched-rgn.c (init_ready_list): Drop special treatment of
35982 boundary debug insns.
35983 * final.c (rest_of_clean-state): Clear notes' BB.
35984
35985 2011-01-31 Alan Modra <amodra@gmail.com>
35986
35987 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
35988 toc relative expressions as we do in print_operand_address.
35989
35990 2011-01-30 Kazu Hirata <kazu@codesourcery.com>
35991
35992 * doc/extend.texi: Follow spelling conventions.
35993 * doc/invoke.texi: Fix a typo.
35994
35995 2011-01-30 Joseph Myers <joseph@codesourcery.com>
35996
35997 * config/hpux11.opt: New.
35998 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
35999 ia64*-*-hpux*): Use hpux11.opt.
36000
36001 2011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
36002
36003 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
36004 to tmake_file.
36005
36006 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
36007
36008 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
36009 support sites.
36010
36011 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
36012
36013 * doc/install.texi (Binaries): Remove outdated reference for
36014 Motorola 68HC11/68HC12 downloads.
36015
36016 2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
36017
36018 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
36019 Drepper's paper.
36020
36021 2011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
36022
36023 PR bootstrap/47147
36024 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
36025 used by NetBSD.
36026
36027 2011-01-28 Ahmad Sharif <asharif@google.com>
36028
36029 * value-prof.c (check_counter): Corrected error message.
36030
36031 2011-01-29 Jie Zhang <jie@codesourcery.com>
36032
36033 * config/arm/arm.c (arm_legitimize_reload_address): New.
36034 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
36035 arm_legitimize_reload_address.
36036 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
36037
36038 2011-01-28 Ian Lance Taylor <iant@google.com>
36039
36040 * godump.c (go_define): Ignore macros whose definitions include
36041 two adjacent operands.
36042
36043 2011-01-28 Jakub Jelinek <jakub@redhat.com>
36044
36045 PR target/42894
36046 * varasm.c (force_const_mem): Store copy of x in desc->constant
36047 instead of x itself.
36048 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
36049 itself into REG_EQUAL note.
36050
36051 2011-01-28 Joseph Myers <joseph@codesourcery.com>
36052
36053 * config/freebsd.opt (posix, rdynamic): New Driver options.
36054
36055 2011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
36056
36057 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
36058 -Bstatic/-Bdynamic.
36059 * configure: Regenerate.
36060
36061 2011-01-27 Joseph Myers <joseph@codesourcery.com>
36062
36063 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
36064 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
36065
36066 2011-01-27 Anatoly Sokolov <aesok@post.ru>
36067
36068 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
36069 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
36070 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
36071 (s390_preferred_reload_class): Make static. Change return and
36072 'rclass' argument type to reg_class_t.
36073
36074 2011-01-27 Jan Hubicka <jh@suse.cz>
36075
36076 PR middle-end/46949
36077 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
36078 (process_function_and_variable_attributes): Check defined weakrefs.
36079
36080 2011-01-27 Martin Jambor <mjambor@suse.cz>
36081
36082 PR tree-optimization/47228
36083 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
36084 build_ref_for_offset.
36085
36086 2011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
36087
36088 * config/spu/spu-elf.h (ASM_SPEC): Remove.
36089
36090 2011-01-26 Mikael Pettersson <mikpe@it.uu.se>
36091
36092 PR rtl-optimization/46856
36093 * postreload.c (reload_combine_recognize_const_pattern): Do not
36094 separate cc0 setter and user on cc0 targets.
36095
36096 2011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
36097
36098 PR c/43082
36099 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
36100 passed a VOID_TYPE expression, immediately emit an error and
36101 return error_mark_node.
36102
36103 2011-01-26 Jeff Law <law@redhat.com>
36104
36105 PR rtl-optimization/47464
36106 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
36107 rather than may_trap_p as needed.
36108
36109 2011-01-26 DJ Delorie <dj@redhat.com>
36110
36111 PR rtl-optimization/46878
36112 * combine.c (insn_a_feeds_b): Check for the implicit cc0
36113 setter/user dependency as well.
36114
36115 2011-01-26 Eric Botcazou <ebotcazou@adacore.com>
36116
36117 PR rtl-optimization/44469
36118 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
36119 after removing trivially dead basic blocks.
36120
36121 2011-01-26 Joseph Myers <joseph@codesourcery.com>
36122
36123 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
36124 * config/frv/frv.h (LINK_SPEC): Likewise.
36125 * config/i386/netware.h (LINK_SPEC): Likewise.
36126 * config/m68k/linux.h (ASM_SPEC): Likewise.
36127 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
36128 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
36129 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36130 * config/sparc/linux.h (ASM_SPEC): Likewise.
36131 * config/sparc/linux64.h (ASM_SPEC): Likewise.
36132 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36133
36134 2011-01-26 Joseph Myers <joseph@codesourcery.com>
36135
36136 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
36137 * config/frv/frv.h (ASM_SPEC): Likewise.
36138 * config/m68k/linux.h (ASM_SPEC): Likewise.
36139 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
36140 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
36141 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36142 * config/sparc/linux.h (ASM_SPEC): Likewise.
36143 * config/sparc/linux64.h (ASM_SPEC): Likewise.
36144 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36145
36146 2011-01-26 Joseph Myers <joseph@codesourcery.com>
36147
36148 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
36149 * config/frv/frv.h (LINK_SPEC): Likewise.
36150 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
36151
36152 2011-01-26 Joseph Myers <joseph@codesourcery.com>
36153
36154 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
36155 * config/frv/frv.h (ASM_SPEC): Likewise.
36156 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
36157 * config/m68k/linux.h (ASM_SPEC): Likewise.
36158 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
36159 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
36160 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
36161 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
36162 * config/sparc/linux.h (ASM_SPEC): Likewise.
36163 * config/sparc/linux64.h (ASM_SPEC): Likewise.
36164 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
36165 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
36166
36167 2011-01-26 Steve Ellcey <sje@cup.hp.com>
36168
36169 PR target/46997
36170 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
36171 (*mux2): Ditto.
36172 (vec_extract_evenodd_help): Ditto.
36173 (vec_extract_evenv4hi): Ditto.
36174 (vec_extract_oddv4hi): Ditto.
36175 (vec_interleave_lowv2si): Ditto.
36176 (vec_interleave_highv2si): Ditto.
36177 (vec_extract_evenv2si): Ditto.
36178 (vec_extract_oddv2si: Ditto.
36179 (vec_pack_trunc_v2si): Ditto.
36180
36181 2011-01-22 Jan Hubicka <jh@suse.cz>
36182
36183 PR target/47237
36184 * cgraph.h (cgraph_local_info): New field can_change_signature.
36185 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
36186 signature can change.
36187 (ipcp_estimate_growth): Call sequence simplify only if calle signature
36188 can change.
36189 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
36190 (cgraph_function_versioning): We can not change signature of functions
36191 that don't allow that.
36192 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
36193 (lto_input_node): Likewise.
36194 * ipa-inline.c (compute_inline_parameters): Compute
36195 local.can_change_signature.
36196 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
36197 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
36198 functions that can not change signature.
36199 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
36200 init_cumulative_args): Do not use local calling conventions
36201 for functions that can not change signature.
36202
36203 2011-01-22 Jan Hubicka <jh@suse.cz>
36204
36205 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
36206
36207 2011-01-26 Richard Guenther <rguenther@suse.de>
36208
36209 PR tree-optimization/47190
36210 * cgraphunit.c (process_common_attributes): New function.
36211 (process_function_and_variable_attributes): Use it.
36212
36213 2011-01-26 Richard Guenther <rguenther@suse.de>
36214
36215 PR lto/47423
36216 * cgraphbuild.c (record_eh_tables): Record reference to personality
36217 function.
36218
36219 2011-01-26 Alexandre Oliva <aoliva@redhat.com>
36220
36221 PR debug/45454
36222 * sel-sched.c (moveup_expr): Don't let debug insns prevent
36223 non-debug insns from moving up.
36224
36225 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
36226
36227 PR target/40125
36228 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
36229 t-dlldir{,-x} fragment for build and add it to tmake_file.
36230 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
36231 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
36232 * config/i386/t-dlldir: New file.
36233 (SHLIB_DLLDIR): Define.
36234 * config/i386/t-dlldir-x: New file.
36235 (SHLIB_DLLDIR): Define.
36236 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
36237 (SHLIB_INSTALL): Use it.
36238
36239 2011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
36240
36241 PR target/47246
36242 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
36243 lower bound of the allowed Thumb-2 coprocessor load/store
36244 index range to -256. Add explaining comment.
36245
36246 2011-01-25 Ian Lance Taylor <iant@google.com>
36247
36248 * godump.c (go_define): Improve lexing of macro expansion to only
36249 accept expressions which match Go spec.
36250
36251 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
36252
36253 PR c++/43601
36254 * tree.c (handle_dll_attribute): Handle it.
36255 * doc/extend.texi (@item dllexport): Mention it.
36256 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
36257
36258 2011-01-25 Ian Lance Taylor <iant@google.com>
36259
36260 PR tree-optimization/26854
36261 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
36262 (decl_jump_unsafe): Move higher in file, with no other change.
36263 (bind): Set has_jump_unsafe_decl if appropriate.
36264 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
36265 (check_earlier_gotos): Likewise.
36266 (c_check_switch_jump_warnings): Likewise.
36267
36268 2011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
36269
36270 * doc/invoke.texi (Warning Options): Add missing hyphen.
36271 (-fprofile-dir): Minor grammatical fixes.
36272 (-fbranch-probabilities): Likewise.
36273
36274 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
36275
36276 PR debug/45136
36277 PR debug/45130
36278 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
36279 debug insns.
36280 (no_real_insns_p, schedule_block, set_priorities): Drop special
36281 treatment of boundary debug insns.
36282 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
36283 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
36284 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
36285 (BOUNDARY_DEBUG_INSN_P): Likewise.
36286 (SCHEDULE_DEBUG_INSN_P): Likewise.
36287 * sched-rgn.c (init_ready_list): Drop special treatment of
36288 boundary debug insns.
36289 * final.c (rest_of_clean-state): Clear notes' BB.
36290
36291 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36292
36293 * Makefile.in (LAMBDA_H): Removed.
36294 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
36295 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
36296 lambda-trans.o, and tree-loop-linear.o.
36297 (lto-symtab.o): Remove dependence on LAMBDA_H.
36298 (tree-loop-linear.o): Remove rule.
36299 (lambda-mat.o): Same.
36300 (lambda-trans.o): Same.
36301 (lambda-code.o): Same.
36302 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
36303 (tree-vect-slp.o): Same.
36304 * hwint.h (gcd): Moved here.
36305 (least_common_multiple): Same.
36306 * lambda-code.c: Removed.
36307 * lambda-mat.c: Removed.
36308 * lambda-trans.c: Removed.
36309 * lambda.h: Removed.
36310 * tree-loop-linear.c: Removed.
36311 * lto-symtab.c: Do not include lambda.h.
36312 * omega.c (gcd): Removed.
36313 * passes.c (init_optimization_passes): Remove pass_linear_transform.
36314 * tree-data-ref.c (print_lambda_vector): Moved here.
36315 (lambda_vector_copy): Same.
36316 (lambda_matrix_copy): Same.
36317 (lambda_matrix_id): Same.
36318 (lambda_vector_first_nz): Same.
36319 (lambda_matrix_row_add): Same.
36320 (lambda_matrix_row_exchange): Same.
36321 (lambda_vector_mult_const): Same.
36322 (lambda_vector_negate): Same.
36323 (lambda_matrix_row_negate): Same.
36324 (lambda_vector_equal): Same.
36325 (lambda_matrix_right_hermite): Same.
36326 * tree-data-ref.h: Do not include lambda.h.
36327 (lambda_vector): Moved here.
36328 (lambda_matrix): Same.
36329 (dependence_level): Same.
36330 (lambda_transform_legal_p): Removed declaration.
36331 (lambda_collect_parameters): Same.
36332 (lambda_compute_access_matrices): Same.
36333 (lambda_vector_gcd): Same.
36334 (lambda_vector_new): Same.
36335 (lambda_vector_clear): Same.
36336 (lambda_vector_lexico_pos): Same.
36337 (lambda_vector_zerop): Same.
36338 (lambda_matrix_new): Same.
36339 * tree-flow.h (least_common_multiple): Removed declaration.
36340 * tree-parloops.c (lambda_trans_matrix): Moved here.
36341 (LTM_MATRIX): Same.
36342 (LTM_ROWSIZE): Same.
36343 (LTM_COLSIZE): Same.
36344 (LTM_DENOMINATOR): Same.
36345 (lambda_trans_matrix_new): Same.
36346 (lambda_matrix_vector_mult): Same.
36347 (lambda_transform_legal_p): Same.
36348 * tree-pass.h (pass_linear_transform): Removed declaration.
36349 * tree-ssa-loop.c (tree_linear_transform): Removed.
36350 (gate_tree_linear_transform): Removed.
36351 (pass_linear_transform): Removed.
36352 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
36353 flag_loop_interchange.
36354
36355 2011-01-25 Jakub Jelinek <jakub@redhat.com>
36356
36357 PR tree-optimization/47265
36358 PR tree-optimization/47443
36359 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
36360 if name still has some uses.
36361
36362 2011-01-25 Martin Jambor <mjambor@suse.cz>
36363
36364 PR tree-optimization/47382
36365 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
36366 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
36367
36368 2011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
36369
36370 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
36371 sjlj_except_unwind_info.
36372
36373 2011-01-25 Richard Guenther <rguenther@suse.de>
36374
36375 PR tree-optimization/47426
36376 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
36377 visible functions results escape.
36378
36379 2011-01-25 Jakub Jelinek <jakub@redhat.com>
36380
36381 PR target/45701
36382 * config/arm/arm.c (any_sibcall_uses_r3): New function.
36383 (arm_get_frame_offsets): Use it.
36384
36385 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36386 Jakub Jelinek <jakub@redhat.com>
36387
36388 PR tree-optimization/47271
36389 * tree-if-conv.c (bb_postdominates_preds): New.
36390 (if_convertible_bb_p): Call bb_postdominates_preds.
36391 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
36392 (predicate_scalar_phi): Call bb_postdominates_preds.
36393
36394 2011-01-25 Nick Clifton <nickc@redhat.com>
36395
36396 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
36397 * config/rx/rx.c (rx_function_value): Likewise.
36398 (rx_promote_function_mode): Likewise.
36399 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
36400 in order to make it legitimate.
36401 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
36402 make sure that the first operand is the same as the result register.
36403 (addsi3_unspec): Delete.
36404 (subdi3): Do not accept immediate operands.
36405 (subdi3_internal): Likewise.
36406
36407 2011-01-25 Jeff Law <law@redhat.com>
36408
36409 PR rtl-optimization/37273
36410 * ira-costs.c (scan_one_insn): Detect constants living in memory and
36411 handle them like argument loads from stack slots. Do not double
36412 count memory for memory constants and argument loads from stack slots.
36413
36414 2011-01-25 Jakub Jelinek <jakub@redhat.com>
36415
36416 PR tree-optimization/47427
36417 PR tree-optimization/47428
36418 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
36419 coalesce if the new root var would be TREE_READONLY.
36420
36421 2011-01-25 Richard Guenther <rguenther@suse.de>
36422
36423 PR middle-end/47414
36424 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
36425 correct type for TBAA.
36426
36427 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36428
36429 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
36430 (close_phi_written_to_memory): Call for_each_index with
36431 dr_indices_valid_in_loop.
36432
36433 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36434
36435 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
36436 when it is initialized.
36437
36438 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36439
36440 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
36441 call to graphite_find_data_references_in_stmt.
36442 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
36443 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
36444 call to graphite_find_data_references_in_stmt.
36445 (analyze_drs_in_stmts): Same.
36446 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
36447 in which the scalar analysis of indices is performed.
36448 (create_data_ref): Same. Update call to dr_analyze_indices.
36449 (find_data_references_in_stmt): Update call to create_data_ref.
36450 (graphite_find_data_references_in_stmt): Same.
36451 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
36452 declaration.
36453 (create_data_ref): Same.
36454 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
36455 call to create_data_ref.
36456
36457 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36458
36459 * graphite-sese-to-poly.c (build_poly_scop): Move
36460 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
36461
36462 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36463
36464 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
36465 VAR_DECL, PARM_DECL, and RESULT_DECL.
36466
36467 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36468
36469 * graphite-dependences.c (reduction_dr_1): Allow several reductions
36470 in a reduction PBB.
36471 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
36472 that have already been marked as PBB_IS_REDUCTION.
36473
36474 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36475
36476 * graphite-scop-detection.c (same_close_phi_node): New.
36477 (remove_duplicate_close_phi): New.
36478 (make_close_phi_nodes_unique): New.
36479 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
36480
36481 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36482
36483 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
36484 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
36485 of both data references to be the same.
36486
36487 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36488
36489 * graphite-dependences.c (build_lexicographical_constraint): Remove
36490 the gdim parameter.
36491 (build_lexicographical_constraint): Adjust call to
36492 ppl_powerset_is_empty.
36493 (dependence_polyhedron): Same.
36494 (graphite_legal_transform_dr): Same.
36495 (graphite_carried_dependence_level_k): Same.
36496 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
36497 parameter.
36498 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
36499
36500 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36501
36502 * graphite-sese-to-poly.c
36503 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
36504 (close_phi_written_to_memory): New.
36505 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
36506 and unshare_expr.
36507
36508 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36509
36510 * doc/install.texi: Update the expected version number of PPL to 0.11.
36511 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
36512 #if PPL_VERSION_MINOR < 11.
36513
36514 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36515
36516 * graphite-dependences.c: Include graphite-cloog-util.h.
36517 (new_poly_ddr): Inlined into dependence_polyhedron.
36518 (free_poly_ddr): Moved close by new_poly_ddr.
36519 (dependence_polyhedron_1): Renamed dependence_polyhedron.
36520 Early return NULL when ppl_powerset_is_empty returns true.
36521 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
36522 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
36523 (graphite_legal_transform_dr): Call new_poly_ddr.
36524 (graphite_carried_dependence_level_k): Same.
36525 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
36526 (dot_transformed_deps_stmt_1): Removed.
36527 (dot_deps_stmt_1): Call dot_deps_stmt_2.
36528 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
36529 (dot_deps_1): Call dot_deps_2.
36530 * Makefile.in (graphite-dependences.o): Add missing dependence on
36531 graphite-cloog-util.h.
36532
36533 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36534
36535 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
36536 (build_lexicographical_constraint): Same.
36537 (dependence_polyhedron_1): Same.
36538 (graphite_legal_transform_dr): Same.
36539 (graphite_carried_dependence_level_k): Same.
36540 * graphite-ppl.c (ppl_powerset_is_empty): New.
36541 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
36542 * tree-data-ref.c (dump_data_reference): Print the basic block index.
36543
36544 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36545
36546 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
36547 the "a followed by b" relation and document it.
36548
36549 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36550
36551 * graphite-dependences.c (build_lexicographical_constraint): Stop the
36552 iteration when the bag of constraints is empty.
36553
36554 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36555
36556 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
36557
36558 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36559
36560 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
36561 nest and two loop depths as parameters.
36562 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
36563 lst_perfect_nestify.
36564
36565 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36566
36567 * graphite-dependences.c (print_pddr): Call
36568 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
36569
36570 2011-01-25 Sebastian Pop <sebastian.pop@amd.com>
36571
36572 * graphite-ppl.c (debug_gmp_value): New.
36573 * graphite-ppl.h (debug_gmp_value): Declared.
36574
36575 2011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
36576
36577 * doc/install.texi: Document availability of cloog-0.16.
36578
36579 2011-01-25 Vladimir Kargov <kargov@gmail.com>
36580
36581 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
36582 invalid postdominance info.
36583
36584 2011-01-24 Jan Hubicka <jh@suse.cz>
36585
36586 PR c/21659
36587 * doc/extend.texi (weak pragma): Drop claim that it must
36588 appear before definition.
36589 * varasm.c (merge_weak, declare_weak): Only sanity check
36590 that DECL is not output at a time it is declared weak.
36591
36592 2011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
36593
36594 * machmode.def: Fixed comments.
36595
36596 2011-01-24 Kai Tietz <kai.tietz@onevision.com>
36597
36598 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
36599
36600 2011-01-24 Paul Koning <ni1d@arrl.net>
36601
36602 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
36603 WORDS_BIG_ENDIAN.
36604
36605 2011-01-24 H.J. Lu <hongjiu.lu@intel.com>
36606
36607 PR target/46519
36608 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
36609 (block_info): Add scanned and prev.
36610 (move_or_delete_vzeroupper_2): Return if the basic block
36611 has been scanned and the upper 128bit state is unchanged
36612 from the last scan.
36613 (move_or_delete_vzeroupper_1): Return true if the exit
36614 state is changed.
36615 (move_or_delete_vzeroupper): Visit basic blocks using the
36616 work-list based algorithm based on vt_find_locations in
36617 var-tracking.c.
36618
36619 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
36620
36621 2011-01-24 Nick Clifton <nickc@redhat.com>
36622
36623 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
36624 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
36625 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
36626 then define __v850e1__.
36627 * doc/invoke.texi: Document -mv850es.
36628
36629 2011-01-24 Richard Henderson <rth@redhat.com>
36630
36631 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
36632 compound unordered comparisons.
36633 * config/rx/rx.c (rx_split_fp_compare): Remove.
36634 * config/rx/rx-protos.h: Update.
36635 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
36636 (cbranchsf4): Don't call rx_split_fp_compare.
36637 (*cbranchsf4): Use rx_split_cbranch.
36638 (*cmpsf): Don't accept "i" constraint.
36639 (*conditional_branch): Only valid after reload.
36640 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
36641
36642 2011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
36643
36644 PR target/47385
36645 * config/rs6000/altivec.md (vector constant splitters): Add
36646 support for creating vector single precision constants if -mvsx is
36647 used and we would create the constant using Altivec primitives.
36648
36649 2011-01-23 Bernd Schmidt <bernds@codesourcery.com>
36650 Richard Sandiford <rdsandiford@googlemail.com>
36651
36652 PR rtl-optimization/47166
36653 * reload1.c (emit_reload_insns): Disable the spill_reg_store
36654 mechanism for PRE_MODIFY and POST_MODIFY.
36655 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
36656 reloadreg.
36657
36658 2011-01-23 Andreas Schwab <schwab@linux-m68k.org>
36659
36660 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
36661
36662 2011-01-22 Jan Hubicka <jh@suse.cz>
36663
36664 PR lto/47333
36665 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
36666
36667 2011-01-22 Jan Hubicka <jh@suse.cz>
36668
36669 PR tree-optimization/43884
36670 PR lto/44334
36671 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
36672 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
36673
36674 2011-01-22 Anatoly Sokolov <aesok@post.ru>
36675
36676 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
36677 * config/s390/s390.c (s390_register_move_cost,
36678 s390_memory_move_cost): New.
36679 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
36680
36681 2011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
36682
36683 PR middle-end/47401
36684 * except.c (sjlj_assign_call_site_values): Move setting the
36685 crtl->uses_eh_lsda flag to ...
36686 (sjlj_mark_call_sites): ... here.
36687 (sjlj_emit_function_enter): Support NULL dispatch label.
36688 (sjlj_build_landing_pads): In a function with no landing pads
36689 that still has must-not-throw regions, generate code to register
36690 a personality function with empty LSDA.
36691
36692 2011-01-21 Richard Henderson <rth@redhat.com>
36693
36694 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
36695
36696 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
36697
36698 * compare-elim.c: New file.
36699 * Makefile.in (OBJS-common): Add it.
36700 (compare-elim.o): New.
36701 * common.opt (fcompare-elim): New.
36702 * opts.c (default_options_table): Add OPT_fcompare_elim.
36703 * tree-pass.h (pass_compare_elim_after_reload): New.
36704 * passes.c (init_optimization_passes): Add it.
36705 * recog.h: Protect against re-inclusion.
36706 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
36707 * doc/invoke.texi (-fcompare-elim): Document it.
36708 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
36709 * doc/tm.texi: Rebuild.
36710
36711 2011-01-22 Nick Clifton <nickc@redhat.com>
36712
36713 * config/rx/rx.md (cstoresf4): Pass comparison operator to
36714 rx_split_fp_compare.
36715
36716 2011-01-22 Nick Clifton <nickc@redhat.com>
36717
36718 * config/rx/rx.md (UNSPEC_CONST): New.
36719 (deallocate_and_return): Wrap the amount popped off the stack in
36720 an UNSPEC_CONST in order to stop it being rejected by
36721 -mmax-constant-size.
36722 (pop_and_return): Add a "(return)" rtx.
36723 (call): Drop the immediate operand.
36724 (call_internal): Likewise.
36725 (call_value): Likewise.
36726 (call_value_internal): Likewise.
36727 (sibcall_internal): Likewise.
36728 (sibcall_value_internal): Likewise.
36729 (sibcall): Likewise. Generate an explicit call using
36730 sibcall_internal.
36731 (sibcall_value): Likewise.
36732 (mov<>): FAIL if a constant operand is not legitimate.
36733 (addsi3_unpsec): New pattern.
36734
36735 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
36736 (ok_for_max_constant): New function.
36737 (gen_safe_add): New function.
36738 (rx_expand_prologue): Use gen_safe_add.
36739 (rx_expand_epilogue): Likewise.
36740 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
36741 UNSPEC CONSTs.
36742
36743 2011-01-21 Jeff Law <law@redhat.com>
36744
36745 PR tree-optimization/47053
36746 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
36747 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
36748 statements are deleted.
36749 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
36750 is nonempty, then purge dead edges and cleanup the CFG.
36751
36752 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
36753
36754 PR debug/47402
36755 Temporarily revert:
36756 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
36757 PR debug/47106
36758 * tree-dfa.c (create_var_ann): Mark variable as used.
36759
36760 2011-01-21 Jakub Jelinek <jakub@redhat.com>
36761
36762 PR middle-end/45566
36763 * except.c (convert_to_eh_region_ranges): Emit queued no-region
36764 notes from other section in hot/cold partitioning even if
36765 last_action is -3. Increment call_site_base.
36766
36767 PR rtl-optimization/47366
36768 * fwprop.c (forward_propagate_into): Return bool. If
36769 any changes are made, -fnon-call-exceptions is used and
36770 REG_EH_REGION note is present, call purge_dead_edges
36771 and return true if it purged anything.
36772 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
36773 any EH edges were purged.
36774
36775 2011-01-21 Jeff Law <law@redhat.com>
36776
36777 PR rtl-optimization/41619
36778 * caller-save.c (setup_save_areas): Break out code to determine
36779 which hard regs are live across calls by examining the reload chains
36780 so that it is always used.
36781 Eliminate code which checked REG_N_CALLS_CROSSED.
36782
36783 2011-01-21 Jakub Jelinek <jakub@redhat.com>
36784
36785 PR tree-optimization/47355
36786 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
36787 NOP has non-debug uses beyond PHIs in new_bb.
36788
36789 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
36790
36791 PR debug/47106
36792 * cfgexpand.c (account_used_vars_for_block): Only account vars
36793 that are annotated as used.
36794 (estimated_stack_frame_size): Don't set TREE_USED.
36795 * tree-dfa.c (create_var_ann): Mark variable as used.
36796
36797 2011-01-21 Richard Guenther <rguenther@suse.de>
36798
36799 PR middle-end/47395
36800 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
36801
36802 2011-01-21 Richard Guenther <rguenther@suse.de>
36803
36804 PR tree-optimization/47365
36805 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
36806 (vn_reference_lookup_pieces): Adjust.
36807 (vn_reference_lookup): Likewise.
36808 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
36809 (vn_reference_lookup_3): Only look through kills if in
36810 VN_WALKREWRITE mode.
36811 (vn_reference_lookup_pieces): Adjust.
36812 (vn_reference_lookup): Likewise.
36813 (visit_reference_op_load): Likewise.
36814 (visit_reference_op_store): Likewise.
36815 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
36816 (compute_avail): Likewise.
36817 (eliminate): Likewise.
36818
36819 2011-01-21 Jakub Jelinek <jakub@redhat.com>
36820
36821 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
36822 DECL_IGNORED_P non-reg vars if they are used.
36823
36824 PR tree-optimization/47391
36825 * varpool.c (const_value_known_p): Return false if
36826 decl is volatile.
36827
36828 2011-01-21 Kai Tietz <kai.tietz@onevision.com>
36829
36830 PR bootstrap/47215
36831 * config/i386/i386.c (ix86_local_alignment): Handle
36832 case for va_list_type_node is nil.
36833 (ix86_canonical_va_list_type): Likewise.
36834
36835 2011-01-21 Alan Modra <amodra@gmail.com>
36836
36837 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
36838 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
36839
36840 2011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
36841
36842 * config/arm/arm.md (define_attr type): Rename f_load
36843 and f_store to f_fpa_load and f_fpa_store. Update.
36844 (write_conflict): Deal with rename fallout.
36845 (*push_fp_multi): Likewise.
36846 * config/arm/fpa.md (f_load): Use f_fpa_load.
36847 (f_store): Use f_fpa_store.
36848 (*movsf_fpa): Likewise.
36849 (*movdf_fpa): Likewise.
36850 (*movxf_fpa): Likewise.
36851 (*thumb2_movsf_fpa): Likewise.
36852 (*thumb2_movdf_fpa): Likewise.
36853 (*thumb2_movxf_fpa): Likewise.
36854 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
36855 f_loadd and f_stored.
36856 (*thumb2_movdi_vfp): Likewise.
36857 (*thumb2_movsf_vfp): Fix attribute to f_loads.
36858 (*thumb2_movsi_vfp): Likewise.
36859 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
36860 Use f_loads instead of f_load.
36861 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
36862
36863 2011-01-20 Anatoly Sokolov <aesok@post.ru>
36864
36865 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
36866 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
36867 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
36868 (xtensa_mode_dependent_address_p): New function.
36869 (constantpool_address_p): Make static. Change return type to bool.
36870 Change argument type to const_rtx. Use CONST_INT_P predicate.
36871
36872 2011-01-20 Alexandre Oliva <aoliva@redhat.com>
36873
36874 PR debug/46583
36875 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
36876
36877 2011-01-20 Jakub Jelinek <jakub@redhat.com>
36878
36879 PR debug/47283
36880 * cfgexpand.c (expand_debug_expr): Instead of generating
36881 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
36882 etc. handling.
36883
36884 2011-01-20 Richard Guenther <rguenther@suse.de>
36885
36886 PR middle-end/47370
36887 * tree-inline.c (remap_gimple_op_r): Recurse manually for
36888 the pointer operand of MEM_REFs.
36889
36890 2011-01-20 Jakub Jelinek <jakub@redhat.com>
36891
36892 PR tree-optimization/46130
36893 * ipa-split.c (consider_split): If return_bb contains non-virtual
36894 PHIs other than for retval or if split_function would not adjust it,
36895 refuse to split.
36896
36897 2011-01-20 Richard Guenther <rguenther@suse.de>
36898
36899 PR tree-optimization/47167
36900 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
36901 Revert previous change, only avoid enumeral type changes.
36902
36903 2011-01-19 Mike Stump <mikestump@comcast.net>
36904
36905 * doc/tm.texi.in (BRANCH_COST): Englishify.
36906 * doc/tm.texi (BRANCH_COST): Likewise.
36907
36908 2011-01-19 Dodji Seketeli <dodji@redhat.com>
36909
36910 PR c++/47291
36911 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
36912 (gen_scheduled_generic_parms_dies): New functions.
36913 (gen_struct_or_union_type_die): Schedule template parameters DIEs
36914 generation for the end of CU compilation.
36915 (dwarf2out_finish): Generate template parameters DIEs here.
36916
36917 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
36918
36919 PR debug/46240
36920 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
36921 debug bind stmt on merge edges.
36922
36923 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
36924
36925 PR debug/47079
36926 PR debug/46724
36927 * function.c (instantiate_expr): Instantiate incoming rtl of
36928 implicit arguments, and recurse on VALUE_EXPRs.
36929 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
36930 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
36931
36932 2011-01-19 Alexandre Oliva <aoliva@redhat.com>
36933
36934 * c-parser.c (c_parser_for_statement): Initialize
36935 collection_expression.
36936
36937 2011-01-19 Joseph Myers <joseph@codesourcery.com>
36938
36939 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
36940
36941 2011-01-19 Joseph Myers <joseph@codesourcery.com>
36942
36943 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
36944 (LINK_SHLIB_SPEC): Don't use %(link_path).
36945 (SUBTARGET_EXTRA_SPECS): Remove link_path.
36946
36947 2011-01-19 Joseph Myers <joseph@codesourcery.com>
36948
36949 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
36950 (NO_SHARED_LIB_SUPPORT): Remove.
36951 (LINK_SHLIB_SPEC): Remove one conditional definition.
36952
36953 2011-01-19 Joseph Myers <joseph@codesourcery.com>
36954
36955 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
36956 %{call_shared}.
36957 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
36958 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
36959 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
36960 %{call_shared} and conditionals on these options not being passed.
36961 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
36962 %{call_shared}.
36963
36964 2011-01-19 Jakub Jelinek <jakub@redhat.com>
36965
36966 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
36967 simplify.
36968
36969 * ipa-split.c: Spelling fixes.
36970
36971 2011-01-19 Richard Henderson <rth@redhat.com>
36972
36973 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
36974 (*mulsi3): Likewise.
36975
36976 * longlong.h [__mn10300__] (count_leading_zeros): New.
36977 [__mn10300__] (umul_ppmm, smul_ppmm): New.
36978 [__mn10300__] (add_ssaaaa, subddmmss): New.
36979 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
36980 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
36981
36982 2011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
36983
36984 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
36985
36986 2011-01-19 Richard Henderson <rth@redhat.com>
36987
36988 * config/mn10300/mn10300.md (addsi3_flags): New.
36989 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
36990 (subsi3_flags, subc_internal, subdi3): New.
36991 (subdi3_internal, *subdi3_degenerate): New.
36992 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
36993
36994 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
36995 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
36996 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
36997 * config/mn10300/mn10300-protos.h: Update.
36998 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
36999 (return_ret): Likewise. Rename from return_internal_regs.
37000 (return_internal): Remove.
37001
37002 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
37003 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
37004 (mn10300_legitimate_constant_p): Likewise.
37005 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
37006 (mn10300_frame_size): New.
37007 (mn10300_expand_prologue): Use it.
37008 (mn10300_expand_epilogue): Likewise.
37009 (mn10300_initial_offset): Likewise.
37010 * config/mn10300/mn10300-protos.h: Update.
37011 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
37012 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
37013 (prologue, epilogue, return_internal): Tidy output code.
37014 (mn10300_store_multiple_operation, return): Likewise.
37015 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
37016 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
37017 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
37018 (load_pic, am33_load_pic): New.
37019 (mn10300_load_pic0, mn10300_load_pic1): New.
37020
37021 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
37022 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
37023 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
37024 (cc_flags_for_mode, cc_flags_for_code): New.
37025 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
37026 overflow flag is not valid. Validate that the flags we need
37027 for the comparison are valid.
37028 (mn10300_output_cmp): Remove.
37029 (mn10300_output_add): New.
37030 (mn10300_select_cc_mode): Use cc_flags_for_code.
37031 (mn10300_split_cbranch): New.
37032 (mn10300_match_ccmode): New.
37033 (mn10300_split_and_operand_count): New.
37034 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
37035 to the function.
37036 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
37037 (addsi3): ... here. Use mn10300_output_add.
37038 (*addsi3_flags): New.
37039 (*am33_subsi3, *mn10300_subsi3): Merge...
37040 (subsi3): ... here. Use attribute isa.
37041 (*subsi3_flags): New.
37042 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
37043 when possible.
37044 (*am33_andsi3, *mn10300_andsi3): Merge...
37045 (andsi3): ... here.
37046 (*andsi3_flags): New.
37047 (andsi3 splitters): New.
37048 (*am33_iorsi3, *mn10300_iorsi3): Merge...
37049 (iorsi3): ... here.
37050 (*iorsi3_flags): New.
37051 (*am33_xorsi3, *mn10300_xorsi3): Merge...
37052 (xorsi3): ... here.
37053 (*xorsi3_flags): New.
37054 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
37055 (one_cmplsi2): ... here.
37056 (*one_cmplsi2_flags): New.
37057 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
37058 instead of "dax" in constraints. Use mn10300_split_cbranch.
37059 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
37060 use matching constraints to eliminate a self-comparison.
37061 (*integer_conditional_branch): Rename from integer_conditional_branch.
37062 Use int_mode_flags to match CC_REG.
37063 (*cbranchsi4_btst, *btstsi): New.
37064 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
37065 mn10300_split_cbranch.
37066 (*am33_cmpsf): Rename from am33_cmpsf.
37067 (*float_conditional_branch): Rename from float_conditional_branch.
37068 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
37069 (zero_extendqisi2): ... here.
37070 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
37071 (zero_extendhisi2): ... here.
37072 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
37073 (extendqisi2): ... here.
37074 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
37075 (extendhisi2): ... here.
37076 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
37077 (ashlsi3): ... here.
37078 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
37079 (lshrsi3): ... here.
37080 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
37081 (ashrsi3): ... here.
37082 (consecutive add peephole): Remove.
37083 * config/mn10300/predicates.md (label_ref_operand): New.
37084 (int_mode_flags): New.
37085 (CCZN_comparison_operator): New.
37086
37087 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
37088 (throughput_42_latency_43): New reservation.
37089 (mulsidi3, umulsidi3): New expanders.
37090 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
37091 the MDR register to allocation; separately allocate the low and
37092 high parts of the DImode result.
37093 (umulsidi3_internal): Similarly.
37094 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
37095 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
37096 (udivsi3, umodsi3): Remove.
37097 (udivmodsi4, divmodsi4): New expanders.
37098 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
37099 (*divmodsi4): Simiarly.
37100 (ext_internal): New.
37101
37102 * config/mn10300/constraints.md ("z"): New constraint.
37103 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
37104 (FIXED_REGISTERS): Don't fix MDR.
37105 (CALL_USED_REGSITERS): Reformat nicely.
37106 (REG_ALLOC_ORDER): Add MDR.
37107 (enum regclass): Add MDR_REGS.
37108 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
37109 (IRA_COVER_CLASSES): Add MDR_REGS.
37110 (REGNO_REG_CLASS): Handle MDR_REG.
37111 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
37112 (mn10300_register_move_cost): Likewise.
37113 * config/mn10300/mn10300.md (MDR_REG): New.
37114 (*movsi_internal): Handle moves to/from MDR_REGS.
37115
37116 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
37117 POST_MODIFY.
37118 (mn10300_secondary_reload): Tidy combination reload classes.
37119 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
37120 addresses for AM33. Allow symbolic offsets for reg+imm.
37121 (mn10300_regno_in_class_p): New.
37122 (mn10300_legitimize_reload_address): New.
37123 * config/mn10300/mn10300.h (enum reg_class): Remove
37124 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
37125 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
37126 SP_OR_GENERAL_REGS.
37127 (REG_CLASS_NAMES): Update to match.
37128 (REG_CLASS_CONTENTS): Likewise.
37129 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
37130 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
37131 (REGNO_IN_RANGE_P): Remove.
37132 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
37133 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
37134 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
37135 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
37136 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
37137 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
37138 (REGNO_GENERAL_P): New.
37139 (HAVE_POST_MODIFY_DISP): New.
37140 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
37141 (LEGITIMIZE_RELOAD_ADDRESS): New.
37142 * config/mn10300/mn10300-protos.h: Update.
37143
37144 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
37145 DATA_REGS for AM33 stack-pointer destination.
37146 (mn10300_preferred_output_reload_class): Likewise.
37147 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
37148 into a form appropriate for ...
37149 (TARGET_SECONDARY_RELOAD): New.
37150 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
37151 * config/mn10300/mn10300-protos.h: Update.
37152 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
37153 reload_insi; use the "A" constraint for the scratch; handle AM33
37154 moves of sp to non-address registers.
37155
37156 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
37157 (*movqi_internal): ... here.
37158 (*am33_movhi, *mn10300_movhi): Merge into...
37159 (*movhi_internal): ... here.
37160 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
37161 as the source/destination of moves from/to SP.
37162 (movsf): Only allow for AM33-2.
37163 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
37164 any integer constant constraint. Only allow for AM33-2. Tidy
37165 all of the alternative outputs.
37166 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
37167 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
37168 for MN103.
37169 (udivsi3, umodsi3): New patterns for MN103 only.
37170
37171 2011-01-19 Joern Rennecke <amylaar@spamcop.net>
37172
37173 * doc/tm.texi.in: Spell out that a lack of register class unions
37174 can lead to ICEs.
37175 * doc/tm.texi: Regenerate.
37176
37177 2011-01-19 Jakub Jelinek <jakub@redhat.com>
37178
37179 PR rtl-optimization/47337
37180 * dce.c (check_argument_store): New function.
37181 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
37182
37183 PR tree-optimization/47290
37184 * tree-eh.c (infinite_empty_loop_p): New function.
37185 (cleanup_empty_eh): Use it.
37186
37187 2011-01-18 Steve Ellcey <sje@cup.hp.com>
37188
37189 PR target/46997
37190 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
37191 (a64_expand_widen_sum): Ditto.
37192 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
37193 (vec_extract_evenodd_help): Ditto.
37194 (vec_extract_evenv4hi): Ditto.
37195 (vec_extract_oddv4hi): Ditto.
37196 (vec_extract_evenv2si): Ditto.
37197 (vec_extract_oddv2si): Ditto.
37198 (vec_extract_evenv2sf): Ditto.
37199 (vec_extract_oddv2sf): Ditto.
37200 (vec_pack_trunc_v4hi: Ditto.
37201 (vec_pack_trunc_v2si): Ditto.
37202 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
37203 (vec_interleave_highv8qi): Ditto.
37204 (mix1_r): Ditto.
37205 (vec_extract_oddv8qi): Ditto.
37206 (vec_interleave_lowv4hi): Ditto.
37207 (vec_interleave_highv4hi): Ditto.
37208 (vec_interleave_lowv2si): Ditto.
37209 (vec_interleave_highv2si): Ditto.
37210
37211 2011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
37212
37213 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
37214 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
37215 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
37216 (pa_c_mode_for_suffix): New.
37217 (TARGET_EXPAND_BUILTIN): Define.
37218 (TARGET_C_MODE_FOR_SUFFIX): Define.
37219 (pa_builtins): Define.
37220 (pa_init_builtins): Register __float128 type and init new support
37221 builtins.
37222 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
37223 * config/pa/quadlib.c (_U_Qfcopysign): New.
37224
37225 2011-01-18 Eric Botcazou <ebotcazou@adacore.com>
37226
37227 PR middle-end/46894
37228 * explow.c (allocate_dynamic_stack_space): Do not assume more than
37229 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
37230 are defined.
37231
37232 2011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
37233
37234 PR tree-optimization/47179
37235 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
37236 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
37237
37238 2011-01-18 Richard Guenther <rguenther@suse.de>
37239
37240 PR rtl-optimization/47216
37241 * emit-rtl.c: Include tree-flow.h.
37242 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
37243 of replicating it with different semantics.
37244 * Makefile.in (emit-rtl.o): Adjust.
37245
37246 2011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
37247
37248 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
37249 (cortex_a9_dp): Handle neon types correctly.
37250
37251 2011-01-18 Jakub Jelinek <jakub@redhat.com>
37252
37253 PR rtl-optimization/47299
37254 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
37255 subtarget. Use normal multiplication if both operands are constants.
37256 * expmed.c (expand_widening_mult): Don't try to optimize constant
37257 multiplication if op0 has VOIDmode. Convert op1 constant to mode
37258 before using it.
37259
37260 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
37261
37262 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
37263 spacing after 'e.g.', typos, comma, hyphenation.
37264
37265 2011-01-17 Richard Henderson <rth@redhat.com>
37266
37267 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
37268 (rx_restricted_mem_operand): New.
37269 (rx_shift_operand): Use register_operand.
37270 (rx_source_operand, rx_compare_operand): Likewise.
37271 * config/rx/rx.md (addsi3_flags): New expander.
37272 (adddi3): Rewrite as expander.
37273 (adc_internal, *adc_flags, adddi3_internal): New patterns.
37274 (subsi3_flags): New expander.
37275 (subdi3): Rewrite as expander.
37276 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
37277
37278 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
37279 (rx_init_builtins): Remove sat builtin.
37280 (rx_expand_builtin): Likewise.
37281 * config/rx/rx.md (ssaddsi3): New.
37282 (*sat): Rename from sat. Represent the CC_REG input.
37283
37284 * config/rx/predicates.md (rshift_operator): New.
37285 * config/rx/rx.c (rx_expand_insv): Remove.
37286 * config/rx/rx-protos.h: Update.
37287 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
37288 operand to the canonical position.
37289 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
37290 (*bitclr, *bitclr_in_memory): Similarly.
37291 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
37292 (insv): Retain the zero_extract in the expansion.
37293
37294 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
37295 (bswaphi2, bitinvert, revw): Likewise.
37296
37297 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
37298 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
37299 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
37300 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
37301 (bitset, bitset_in_memory): Likewise.
37302 (bitinvert, bitinvert_in_memory): Likewise.
37303 (bitclr, bitclr_in_memory): Likewise.
37304 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
37305 (rx_strend, rx_cmpstrn): Likewise.
37306 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
37307 (bitop peep2 patterns): Remove.
37308
37309 * config/rx/rx.c (rx_match_ccmode): New.
37310 * config/rx/rx-protos.h: Update.
37311 * config/rx/rx.md (abssi2): Clobber, don't set flags.
37312 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
37313 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
37314 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
37315 (fix_truncsfsi2, floatsisf2): Likewise.
37316 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
37317 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
37318 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
37319 (*subsi3_flags, *xorsi3_flags): New.
37320
37321 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
37322
37323 * config/rx/rx.c (rx_print_operand): Remove workaround for
37324 unsplit comparison operations.
37325
37326 * config/rx/rx.md (movsicc): Split after reload.
37327 (*movsicc): Merge *movsieq and *movsine via match_operator.
37328 (*stcc): New pattern.
37329
37330 * config/rx/rx.c (rx_float_compare_mode): Remove.
37331 * config/rx/rx.h (rx_float_compare_mode): Remove.
37332 * config/rx/rx.md (cstoresi4): Split after reload.
37333 (*sccc): New pattern.
37334
37335 * config/rx/predicates.md (label_ref_operand): New.
37336 (rx_z_comparison_operator): New.
37337 (rx_zs_comparison_operator): New.
37338 (rx_fp_comparison_operator): New.
37339 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
37340 Validate that the flags are set properly for the comparison.
37341 (rx_gen_cond_branch_template): Remove.
37342 (rx_cc_modes_compatible): Remove.
37343 (mode_from_flags): New.
37344 (flags_from_code): Rename from flags_needed_for_conditional.
37345 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
37346 (rx_select_cc_mode): Likewise.
37347 (rx_split_fp_compare): New.
37348 (rx_split_cbranch): New.
37349 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
37350 (*cbranchsi4): Use match_operator and rx_split_cbranch.
37351 (*cbranchsf4): Similarly.
37352 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
37353 match_operator and rx_split_cbranch.
37354 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
37355 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
37356 (*cmpsi): Rename from cmpsi.
37357 (*tstsi): Rename from tstsi.
37358 (*cmpsf): Rename from cmpsf; use CC_Fmode.
37359 (*conditional_branch): Rename from conditional_branch.
37360 (*reveresed_conditional_branch): Remove.
37361 (b<code>): Remove expander.
37362 * config/rx/rx-protos.h: Update.
37363
37364 * config/rx/rx.c (rx_compare_redundant): Remove.
37365 * config/rx/rx.md (cmpsi): Don't use it.
37366 * config/rx/rx-protos.h: Update.
37367
37368 * config/rx/rx-modes.def (CC_F): New mode.
37369 * config/rx/rx.c (rx_select_cc_mode): New.
37370 * config/rx/rx.h (SELECT_CC_MODE): Use it.
37371 * config/rx/rx-protos.h: Update.
37372
37373 2011-01-17 Richard Henderson <rth@redhat.com>
37374
37375 * except.c (dump_eh_tree): Fix stray ; after for statement.
37376
37377 2011-01-17 Richard Guenther <rguenther@suse.de>
37378
37379 PR tree-optimization/47313
37380 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
37381 handling before copying the body. Properly deal with
37382 by-reference result in SSA form.
37383
37384 2011-01-17 Ian Lance Taylor <iant@google.com>
37385
37386 PR target/47219
37387 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
37388 (struct_value_alias_set): Don't define.
37389 (sparc_option_override): Don't set sparc_sr_alias_set and
37390 struct_value_alias_set.
37391 (save_or_restore_regs): Use gen_frame_mem rather than calling
37392 set_mem_alias_set.
37393 (sparc_struct_value_rtx): Likewise.
37394
37395 2011-01-17 H.J. Lu <hongjiu.lu@intel.com>
37396
37397 PR target/47318
37398 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
37399 (_mm_maskstore_pd): Likewise.
37400 (_mm_maskload_ps): Likewise.
37401 (_mm_maskstore_ps): Likewise.
37402 (_mm256_maskload_pd): Change mask to __m256i.
37403 (_mm256_maskstore_pd): Likewise.
37404 (_mm256_maskload_ps): Likewise.
37405 (_mm256_maskstore_ps): Likewise.
37406
37407 * config/i386/i386-builtin-types.def: Updated.
37408 (ix86_expand_special_args_builtin): Likewise.
37409
37410 * config/i386/i386.c (bdesc_special_args): Update
37411 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
37412 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
37413 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
37414 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
37415
37416 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
37417 Use <avxpermvecmode> on mask register.
37418 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
37419
37420 2011-01-17 Olivier Hainque <hainque@adacore.com>
37421 Michael Haubenwallner <michael.haubenwallner@salomon.at>
37422 Eric Botcazou <ebotcazou@adacore.com>
37423
37424 PR target/46655
37425 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
37426 if <= USHRT_MAX in 32-bit mode.
37427
37428 2011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
37429
37430 * doc/install.texi (Configuration, Specific): Wrap long
37431 lines in examples. Allow line wrapping in long options
37432 and URLs where beneficial for PDF output.
37433
37434 2011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
37435
37436 * config/mips/mips.c (mips_classify_symbol): Don't return
37437 SYMBOL_PC_RELATIVE for nonlocal labels.
37438
37439 2011-01-15 Eric Botcazou <ebotcazou@adacore.com>
37440
37441 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
37442
37443 2011-01-15 Jan Hubicka <jh@suse.cz>
37444
37445 PR tree-optimization/47276
37446 * ipa.c (function_and_variable_visibility): Do not try to mark alias
37447 declarations as needed.
37448
37449 2011-01-15 Martin Jambor <mjambor@suse.cz>
37450
37451 * common.opt (fdevirtualize): New flag.
37452 * doc/invoke.texi (Option Summary): Document it.
37453 * opts.c (default_options_table): Add devirtualize flag.
37454 * ipa-prop.c (detect_type_change): Return immediately if
37455 devirtualize flag is not set.
37456 (detect_type_change_ssa): Likewise.
37457 (compute_known_type_jump_func): Likewise.
37458 (ipa_analyze_virtual_call_uses): Likewise.
37459
37460 2011-01-14 Martin Jambor <mjambor@suse.cz>
37461
37462 PR tree-optimization/45934
37463 PR tree-optimization/46302
37464 * ipa-prop.c (type_change_info): New type.
37465 (stmt_may_be_vtbl_ptr_store): New function.
37466 (check_stmt_for_type_change): Likewise.
37467 (detect_type_change): Likewise.
37468 (detect_type_change_ssa): Likewise.
37469 (compute_complex_assign_jump_func): Check for dynamic type change.
37470 (compute_complex_ancestor_jump_func): Likewise.
37471 (compute_known_type_jump_func): Likewise.
37472 (compute_scalar_jump_functions): Likewise.
37473 (ipa_analyze_virtual_call_uses): Likewise.
37474 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
37475
37476 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37477
37478 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
37479 * config/i386/i386.opt (msse5): New Alias.
37480
37481 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37482
37483 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
37484 * config/sparc/linux64.h (CC1_SPEC): Likewise.
37485 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
37486 * config/sparc/sparc.h (CC1_SPEC): Likewise.
37487
37488 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37489
37490 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
37491 -mcpu options.
37492 * config/sparc/linux64.h (CC1_SPEC): Likewise.
37493 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
37494 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
37495 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
37496 Likewise.
37497 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
37498
37499 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37500
37501 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
37502
37503 2011-01-14 Mike Stump <mikestump@comcast.net>
37504
37505 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
37506 * config/fr30/fr30.md: Likweise
37507 (movsi_push): Likewise.
37508 (movsi_pop): Likewise.
37509 (enter_func): Likewise.
37510 * config/moxie/moxie.md (movsi_push): Likewise.
37511 (movsi_pop): Likewise.
37512
37513 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37514
37515 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
37516 %{no_archive} %{exact_version}.
37517 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
37518 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
37519 %{no_archive} %{exact_version}.
37520 * config/mips/openbsd.h (LINK_SPEC): Likewise.
37521 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
37522 * config/mips/vxworks.h: Likewise.
37523
37524 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37525
37526 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
37527
37528 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37529
37530 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
37531 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
37532
37533 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37534
37535 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
37536 -nodefaultlib.
37537
37538 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37539
37540 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
37541 for mcpu not cpu.
37542 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
37543 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
37544 not cpu.
37545 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
37546 Don't handle -shlib.
37547
37548 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37549
37550 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
37551 (CC1_SPEC): Don't handle -profile.
37552
37553 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37554
37555 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
37556 * config/mips/mips.h (CC1_SPEC): Likewise.
37557
37558 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37559
37560 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
37561 * config/mips/mips.h (CC1_SPEC): Likewise.
37562
37563 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37564
37565 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
37566 * config/m32r/linux.h (LINK_SPEC): Likewise.
37567 * config/mips/linux.h (LINK_SPEC): Likewise.
37568 * config/mips/linux64.h (LINK_SPEC): Likewise.
37569 * config/sparc/linux.h (LINK_SPEC): Likewise.
37570 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
37571 LINK_SPEC): Likewise.
37572 * config/xtensa/linux.h (LINK_SPEC): Likewise.
37573
37574 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37575
37576 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
37577 %{version:-v}.
37578 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
37579
37580 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37581
37582 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
37583 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
37584
37585 2011-01-14 Joseph Myers <joseph@codesourcery.com>
37586
37587 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
37588
37589 2011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37590
37591 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
37592 supports -Bstatic/-Bdynamic.
37593 * configure: Regenerate.
37594
37595 2011-01-14 Jan Hubicka <jh@suse.cz>
37596 Jack Howarth <howarth@bromo.med.uc.edu>
37597
37598 PR target/46037
37599 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
37600 when checking debug_info_level. Test write_symbols instead of
37601 debug_hooks->var_location when setting flag_var_tracking_uninit.
37602
37603 2011-01-14 Richard Guenther <rguenther@suse.de>
37604
37605 PR tree-optimization/47179
37606 * target.def (ref_may_alias_errno): New target hook.
37607 * targhooks.h (default_ref_may_alias_errno): Declare.
37608 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
37609 (default_ref_may_alias_errno): New function.
37610 * target.h (struct ao_ref_s): Declare.
37611 * tree-ssa-alias.c: Include target.h.
37612 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
37613 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
37614 (targhooks.o): Likewise.
37615 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
37616 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
37617
37618 2011-01-14 Richard Guenther <rguenther@suse.de>
37619
37620 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
37621
37622 2011-01-14 Richard Guenther <rguenther@suse.de>
37623
37624 PR tree-optimization/47280
37625 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
37626 return CFG changes.
37627 (tree_ssa_forward_propagate_single_use_vars): Deal with
37628 CFG changes from associate_plusminus.
37629
37630 2011-01-14 Richard Guenther <rguenther@suse.de>
37631
37632 PR middle-end/47281
37633 Revert
37634 2011-01-11 Richard Guenther <rguenther@suse.de>
37635
37636 PR tree-optimization/46076
37637 * tree-ssa.c (useless_type_conversion_p): Conversions from
37638 unprototyped to empty argument list function types are useless.
37639
37640 2011-01-14 Richard Guenther <rguenther@suse.de>
37641
37642 PR tree-optimization/47286
37643 * tree-ssa-structalias.c (new_var_info): Register variables are global.
37644
37645 2011-01-14 Martin Jambor <mjambor@suse.cz>
37646
37647 PR middle-end/46823
37648 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
37649
37650 2011-01-13 Anatoly Sokolov <aesok@post.ru>
37651
37652 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
37653 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
37654 * config/xtensa/xtensa.c (xtensa_libcall_value,
37655 xtensa_function_value_regno_p): New functions.
37656 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
37657
37658 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
37659
37660 PR c++/47213
37661 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
37662 PE specific hook.
37663 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
37664 New function prototype.
37665 * config/i386/winnt.c (i386_pe_assemble_visibility):
37666 Warn only if attribute was specified by user.
37667
37668 2011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
37669
37670 PR target/47251
37671 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
37672 floating point.
37673 (floatunsdidf2_fcfidu): Ditto.
37674
37675 2011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
37676
37677 * config/s390/s390.c (print_operand_address): Replace 'error' with
37678 'output_operand_lossage'.
37679 (print_operand): Likewise.
37680
37681 2011-01-13 Jeff Law <law@redhat.com>
37682
37683 PR rtl-optimization/39077
37684 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
37685 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
37686 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
37687 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
37688 * gcse.c (prune_insertions_deletions): New function.
37689 (compute_pre_data): Use it.
37690
37691 2011-01-13 Dodji Seketeli <dodji@redhat.com>
37692
37693 PR debug/PR46973
37694 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
37695 static function.
37696 (prune_unused_types_mark): Use it.
37697
37698 2011-01-13 Andrey Belevantsev <abel@ispras.ru>
37699
37700 PR rtl-optimization/45352
37701 * sel-sched.c: Update copyright years.
37702 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
37703 in the advancing loop when we have issued issue_rate insns.
37704
37705 2011-01-12 Richard Henderson <rth@redhat.com>
37706
37707 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
37708 (TARGET_MD_ASM_CLOBBERS): New.
37709
37710 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
37711 (TARGET_DELEGITIMIZE_ADDRESS): New.
37712
37713 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
37714 (clzsi2, *bsch): New patterns.
37715
37716 * config/mn10300/mn10300.md (INT): New mode iterator.
37717 (*mov<INT>_clr): New pattern, and peep2 to generate it.
37718
37719 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
37720 flag_split_wide_types.
37721
37722 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
37723 (mn10300_trampoline_init): Rewrite without a template, an immediate
37724 load and a direct branch.
37725 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
37726
37727 2011-01-12 Anatoly Sokolov <aesok@post.ru>
37728
37729 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
37730 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
37731 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
37732 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
37733
37734 2011-01-12 Kai Tietz <kai.tietz@onevision.com>
37735
37736 PR debug/47209
37737 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
37738 of type.
37739
37740 2011-01-12 Jan Hubicka <jh@suse.cz>
37741
37742 PR driver/47244
37743 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
37744 (PLUGIN_COND_CLOSE): New macro.
37745 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
37746
37747 2011-01-12 Richard Guenther <rguenther@suse.de>
37748
37749 PR lto/47259
37750 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
37751 register variables in a MEM_REF.
37752
37753 2011-01-12 Joseph Myers <joseph@codesourcery.com>
37754
37755 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
37756 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
37757 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
37758 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
37759 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
37760 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
37761 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
37762 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
37763 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
37764 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
37765 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
37766 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
37767 * config/gnu-user.h: New. Copied from linux.h.
37768 (LINUX_TARGET_STARTFILE_SPEC): Rename to
37769 GNU_USER_TARGET_STARTFILE_SPEC.
37770 (LINUX_TARGET_ENDFILE_SPEC): Rename to
37771 GNU_USER_TARGET_ENDFILE_SPEC.
37772 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
37773 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
37774 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
37775 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
37776 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
37777 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
37778 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
37779 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
37780 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
37781 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
37782 * config/arm/linux-eabi.h (CC1_SPEC): Use
37783 GNU_USER_TARGET_CC1_SPEC.
37784 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
37785 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
37786 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
37787 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
37788 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
37789 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
37790 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
37791 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
37792
37793 2011-01-12 Richard Guenther <rguenther@suse.de>
37794
37795 PR other/46946
37796 * doc/invoke.texi (ffast-math): Document it is turned on
37797 with -Ofast.
37798
37799 2011-01-12 Jan Hubicka <jh@suse.cz>
37800
37801 PR tree-optimization/47233
37802 * opts.c (common_handle_option): Disable ipa-reference with profile
37803 feedback.
37804
37805 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
37806
37807 * c-parser.c (c_parser_objc_at_property_declaration): Improved
37808 error message.
37809
37810 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
37811
37812 * c-parser.c (c_lex_one_token): Updated and reindented some
37813 comments. No changes in code.
37814
37815 2011-01-11 Ian Lance Taylor <iant@google.com>
37816
37817 * godump.c (go_output_var): Don't output the variable if there is
37818 already a type with the same name.
37819
37820 2011-01-11 Ian Lance Taylor <iant@google.com>
37821
37822 * godump.c (go_format_type): Don't generate float80.
37823
37824 2011-01-11 Richard Henderson <rth@redhat.com>
37825
37826 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
37827 declaration. Rewrite for both speed and size.
37828 (mn10300_address_cost_1): Remove.
37829 (mn10300_register_move_cost): New.
37830 (mn10300_memory_move_cost): New.
37831 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
37832 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
37833 extensions, shifts, BSWAP, CLZ.
37834 (mn10300_wide_const_load_uses_clr): Remove.
37835 (TARGET_REGISTER_MOVE_COST): New.
37836 (TARGET_MEMORY_MOVE_COST): New.
37837 * config/mn10300/mn10300-protos.h: Update.
37838 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
37839
37840 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
37841 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
37842 * config/mn10300/mn10300-protos.h: Update.
37843 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
37844 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
37845 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
37846 (*test_int_bitfield, *test_byte_bitfield): Remove.
37847 (*bit_test, *subreg_bit_test): Remove.
37848 * config/mn10300/predicates.md (const_8bit_operand): Remove.
37849
37850 * config/mn10300/constraints.md ("c"): Rename from "A".
37851 ("A", "D"): New constraint letters.
37852 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
37853 (fmssf4, fnmasf4, fnmssf4): Likewise.
37854
37855 * config/mn10300/mn10300.md (isa): New attribute.
37856 (enabled): New attribute.
37857
37858 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
37859 (abssf2, negsf2): Define only for hardware fp.
37860 (sqrtsf2): Reformat.
37861 (addsf3, subsf3, mulsf3): Merge expander and insn.
37862
37863 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
37864 (DEBUGGER_AUTO_OFFSET): Remove.
37865 (DEBUGGER_ARG_OFFSET): Remove.
37866
37867 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
37868 Emit register stores with the same offsets as the hardware.
37869 (mn10300_store_multiple_operation): Don't check that the register
37870 save offsets are monotonic.
37871 * config/mn10300/mn10300-protos.h: Update.
37872
37873 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
37874
37875 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
37876 in terms of the value on the stack, not the MDR register.
37877
37878 2011-01-11 Jan Hubicka <jh@suse.cz>
37879
37880 PR lto/45721
37881 PR lto/45375
37882 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
37883 (symbol_alias_set_destroy, symbol_alias_set_contains,
37884 propagate_aliases_backward): Declare.
37885 * lto-streamer-out.c (struct sets): New sturcture.
37886 (trivally_defined_alias): New function.
37887 (output_alias_pair_p): Rewrite.
37888 (output_unreferenced_globals): Fix output of alias pairs.
37889 (produce_symtab): Likewise.
37890 * ipa.c (function_and_variable_visibility): Set weak alias destination
37891 as needed in lto.
37892 * varasm.c (symbol_alias_set_t): Remove.
37893 (symbol_alias_set_destroy): Export.
37894 (propagate_aliases_forward, propagate_aliases_backward): New functions
37895 based on ...
37896 (compute_visible_aliases): ... this one; remove.
37897 (trivially_visible_alias): New
37898 (trivially_defined_alias): New.
37899 (remove_unreachable_alias_pairs): Rewrite.
37900 (finish_aliases_1): Reorganize code checking if alias is defined.
37901 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
37902 in LTO mode.
37903
37904 2011-01-11 Richard Guenther <rguenther@suse.de>
37905
37906 PR tree-optimization/46076
37907 * tree-ssa.c (useless_type_conversion_p): Conversions from
37908 unprototyped to empty argument list function types are useless.
37909
37910 2011-01-11 Richard Guenther <rguenther@suse.de>
37911
37912 PR middle-end/45235
37913 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
37914 volatile MEMs as MEM_READONLY_P.
37915
37916 2011-01-11 Richard Guenther <rguenther@suse.de>
37917
37918 PR tree-optimization/47239
37919 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
37920
37921 2011-01-11 Jeff Law <law@redhat.com>
37922
37923 PR tree-optimization/47086
37924 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
37925 IVs from statements that might throw.
37926
37927 2011-01-10 Jan Hubicka <jh@suse.cz>
37928
37929 PR lto/45375
37930 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
37931
37932 2011-01-10 Jan Hubicka <jh@suse.cz>
37933
37934 PR lto/45375
37935 * profile.c (read_profile_edge_counts): Ignore profile inconistency
37936 when correcting profile.
37937
37938 2011-01-10 Jan Hubicka <jh@suse.cz>
37939
37940 PR lto/46083
37941 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
37942 DECL_FINI_PRIORITY.
37943 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
37944 Restore DECL_FINI_PRIORITY.
37945
37946 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
37947
37948 * doc/gimple.texi: Fix quoting of multi-word return values in
37949 @deftypefn statements. Ensure presence of return value. Wrap
37950 overlong @deftypefn lines.
37951 (is_gimple_operand, is_gimple_min_invariant_address): Remove
37952 descriptions of removed functions.
37953 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
37954 of multi-word return value in @deftypefn statement.
37955
37956 2011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
37957
37958 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
37959 (Conditional Expressions, Logical Operators)
37960 (Statement and operand traversals): Do not indent smallexample
37961 code. Fix duplicate function argument in example.
37962
37963 2011-01-10 Jeff Law <law@redhat.com>
37964
37965 PR tree-optimization/47141
37966 * ipa-split.c (split_function): Handle case where we are
37967 returning a value and the return block has a virtual operand phi.
37968
37969 2011-01-10 Jan Hubicka <jh@suse.cz>
37970
37971 PR tree-optimization/47234
37972 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
37973 (pass_feedback_split_functions): Declare.
37974 * passes.c (init_optimization_passes): Add ipa-split as subpass of
37975 tree-profile.
37976 * ipa-split.c (gate_split_functions): Update comments; disable
37977 split-functions for profile_arc_flag and branch_probabilities.
37978 (gate_feedback_split_functions): New function.
37979 (execute_feedback_split_functions): New function.
37980 (pass_feedback_split_functions): New global var.
37981
37982 2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
37983
37984 PR lto/46760
37985 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
37986 calling gimple_call_set_cannot_inline.
37987
37988 2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
37989
37990 * config/darwin-sections.def: Remove unused section.
37991
37992 2011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
37993
37994 PR c++/47218
37995 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
37996
37997 2011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
37998
37999 PR objc/47232
38000 * c-parser.c (c_parser_declaration_or_fndef): Improved
38001 error message.
38002
38003 2011-01-09 Kai Tietz <kai.tietz@onevision.com>
38004
38005 * config/i386/winnt.c (i386_pe_start_function): Make sure
38006 to switch back to function's section.
38007
38008 2011-01-09 Iain Sandoe <iains@gcc.gnu.org>
38009
38010 PR gcc/46902
38011 PR testsuite/46912
38012 * plugin.c: Move include of dlfcn.h from here...
38013 * system.h: ... to here.
38014
38015 2011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
38016
38017 * doc/cpp.texi (C++ Named Operators): Fix markup for header
38018 file name.
38019 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
38020 two extra empty pages in PDF output.
38021
38022 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
38023
38024 PR objc/47078
38025 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
38026 for error recovery purposes behave as if it was not specified so
38027 that the default type is usd.
38028
38029 2011-01-07 Jan Hubicka <jh@suse.cz>
38030
38031 PR tree-optmization/46469
38032 * ipa.c (function_and_variable_visibility): Clear needed flags on
38033 nodes with external decls; handle weakrefs merging correctly.
38034
38035 2011-01-07 Joseph Myers <joseph@codesourcery.com>
38036
38037 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
38038 not false.
38039
38040 2011-01-07 Jan Hubicka <jh@suse.cz>
38041
38042 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
38043 and no longer claim that gold is required for linker plugin.
38044 * configure: Regenerate.
38045 * gcc.c (PLUGIN_COND): New macro.
38046 (LINK_COMMAND_SPEC): Use it.
38047 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
38048 * config.in (HAVE_LTO_PLUGIN): New.
38049 * configure.ac (--with-lto-plugin): New parameter; autodetect
38050 HAVE_LTO_PLUGIN.
38051
38052 2011-01-07 Jan Hubicka <jh@suse.cz>
38053
38054 PR tree-optimization/46367
38055 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
38056 when we can update original.
38057 (cgraph_mark_inline_edge): Sanity check.
38058 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
38059
38060 2011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38061
38062 * config/spu/spu.h (ASM_COMMENT_START): Define.
38063
38064 2011-01-07 H.J. Lu <hongjiu.lu@intel.com>
38065
38066 PR driver/42445
38067 * gcc.c (%>S): New.
38068 (SWITCH_KEEP_FOR_GCC): Likewise.
38069 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
38070 (do_spec_1): Handle "%>".
38071
38072 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
38073
38074 2011-01-07 Jakub Jelinek <jakub@redhat.com>
38075
38076 PR target/47201
38077 * config/i386/i386.c (ix86_delegitimize_address): If
38078 simplify_gen_subreg fails, return orig_x.
38079
38080 PR bootstrap/47187
38081 * value-prof.c (gimple_stringop_fixed_value): Handle
38082 lhs of the call properly.
38083
38084 2011-01-07 Jan Hubicka <jh@suse.cz>
38085
38086 PR lto/45375
38087 * lto-opt.c (lto_reissue_options): Set flag_shlib.
38088
38089 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
38090
38091 * target.def (function_switched_text_sections): New hook.
38092 * doc/tm.texi: Regenerated.
38093 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
38094 * final.c (default_function_switched_text_sections): New.
38095 (final_scan_insn): Call function_switched_text_sections when a
38096 mid-function section change occurs.
38097 * output.h (default_function_switched_text_sections): Declare.
38098 * config/darwin-protos.h (darwin_function_switched_text_sections):
38099 Likewise.
38100 * config/darwin.c (darwin_function_switched_text_sections): New.
38101 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
38102
38103 2011-01-07 Iain Sandoe <iains@gcc.gnu.org>
38104
38105 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
38106 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
38107 the secondary code fragment when outputting for DWARF == 2.
38108
38109 2011-01-07 Anatoly Sokolov <aesok@post.ru>
38110
38111 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
38112 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
38113 Remove.
38114 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
38115 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
38116
38117 2011-01-06 Eric Botcazou <ebotcazou@adacore.com>
38118
38119 PR debug/46704
38120 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
38121 when it is not empty.
38122
38123 2011-01-06 Changpeng Fang <changpeng.fang@amd.com>
38124
38125 Bobcat Enablement
38126 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
38127 (case ${target}): Add btver1.
38128 * config/i386/driver-i386.c (host_detect_local_cpu): Let
38129 -march=native recognize btver1 processors.
38130 * config/i386/i386-c.c (ix86_target_macros_internal): Add
38131 btver1 def_and_undef
38132 * config/i386/i386.c (struct processor_costs btver1_cost): New
38133 btver1 cost table.
38134 (m_BTVER1): New definition.
38135 (m_AMD_MULTIPLE): Includes m_BTVER1.
38136 (initial_ix86_tune_features): Add btver1 tune.
38137 (processor_target_table): Add btver1 entry.
38138 (static const char *const cpu_names): Add btver1 entry.
38139 (software_prefetching_beneficial_p): Add btver1.
38140 (ix86_option_override_internal): Add btver1 instruction sets.
38141 (ix86_issue_rate): Add btver1.
38142 (ix86_adjust_cost): Add btver1.
38143 * config/i386/i386.h (TARGET_BTVER1): New definition.
38144 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
38145 (enum processor_type): Add PROCESSOR_BTVER1.
38146 * config/i386/i386.md (define_attr "cpu"): Add btver1.
38147
38148 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38149
38150 PR target/43309
38151 * config/i386/i386.c (legitimize_tls_address)
38152 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
38153 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
38154 (tls_initial_exec_64_sun): New pattern.
38155
38156 2011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
38157
38158 * doc/invoke.texi (Overall Options): Improve wording and markup
38159 of the description of -wrapper.
38160
38161 2011-01-06 Joseph Myers <joseph@codesourcery.com>
38162
38163 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
38164 rdynamic, threads): New Driver options.
38165
38166 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38167
38168 PR target/38118
38169 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
38170 if coming from .tdata.
38171 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
38172
38173 2011-01-06 Jan Hubicka <jh@suse.cz>
38174
38175 PR lto/47188
38176 * collect2.c (main): Do not enable LTOmode when plugin is active.
38177
38178 2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
38179
38180 PR other/45915
38181 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
38182 --version output if supported.
38183 * configure: Regenerate.
38184
38185 2011-01-06 Joseph Myers <joseph@codesourcery.com>
38186
38187 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
38188 Driver options.
38189
38190 2011-01-06 Jakub Jelinek <jakub@redhat.com>
38191
38192 PR c/47150
38193 * c-convert.c (convert): When converting a complex expression
38194 other than COMPLEX_EXPR to a different complex type, ensure
38195 c_save_expr is called instead of save_expr, unless in_late_binary_op.
38196 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
38197 when converting COMPLEX_TYPE.
38198
38199 2011-01-06 Ira Rosen <irar@il.ibm.com>
38200
38201 PR tree-optimization/47139
38202 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
38203 only the last reduction value is used outside the loop. Update
38204 documentation.
38205
38206 2011-01-05 Joseph Myers <joseph@codesourcery.com>
38207
38208 * config/rtems.opt: New.
38209 * config.gcc (*-*-rtems*): Use rtems.opt.
38210
38211 2011-01-05 Changpeng Fang <changpeng.fang@amd.com>
38212
38213 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
38214 processors do not support 3DNow instructions.
38215
38216 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38217
38218 * config/spu/spu.c (spu_option_override): Set parameter
38219 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
38220
38221 2011-01-05 Jan Hubicka <jh@suse.cz>
38222
38223 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
38224 at the command line.
38225
38226 2011-01-05 Martin Jambor <mjambor@suse.cz>
38227
38228 PR lto/47162
38229 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
38230 deltas on streamed outgoing edges.
38231 (output_node_opt_summary): Output info for outgoing edges only when
38232 the node is in new parameter set.
38233 (output_cgraph_opt_summary): New parameter set, passed to the two
38234 aforementioned functions. Update its forward declaration and its
38235 callee too.
38236
38237 2011-01-05 Tom Tromey <tromey@redhat.com>
38238
38239 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
38240 operator to c_finish_omp_atomic.
38241 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
38242 (build_unary_op): Update.
38243 (build_modify_expr): Update.
38244 (build_asm_expr): Update.
38245
38246 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38247
38248 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
38249 newly inserted insns.
38250 (pad_bb): Likewise.
38251 (spu_emit_branch_hint): Likewise.
38252 (insert_hbrp_for_ilb_runout): Likewise.
38253 (spu_machine_dependent_reorg): Call df_finish_pass after
38254 schedule_insns returns.
38255
38256 2011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38257
38258 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
38259
38260 2011-01-05 Eric Botcazou <ebotcazou@adacore.com>
38261
38262 PR tree-optimization/47005
38263 * tree-sra.c (struct access): Add 'non_addressable' bit.
38264 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
38265 (decide_one_param_reduction): Return 0 if the parameter is passed by
38266 reference and one of the accesses in the group is non_addressable.
38267
38268 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
38269
38270 PR tree-optimization/47056
38271 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
38272 (mark_load): Likewise. Handle FUNCTION_DECL specially.
38273 (mark_store): Likewise. Pass STMT to ipa_record_reference.
38274
38275 2011-01-04 Eric Botcazou <ebotcazou@adacore.com>
38276
38277 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
38278 initializer. Skip view conversions from aggregate types.
38279
38280 2011-01-04 Kai Tietz <kai.tietz@onevision.com>
38281
38282 PR bootstrap/47055
38283 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
38284
38285 2011-01-04 Philipp Thomas <pth@suse.de>
38286
38287 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
38288 obvious typo.
38289
38290 2011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38291
38292 * function.c (thread_prologue_and_epilogue_insns): Do not crash
38293 on empty epilogue sequences.
38294
38295 2011-01-04 Joseph Myers <joseph@codesourcery.com>
38296
38297 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
38298 non-static): New Driver options.
38299
38300 2011-01-04 Jie Zhang <jie@codesourcery.com>
38301
38302 PR driver/47137
38303 * gcc.c (default_compilers[]): Set combinable field to 0
38304 for all assembly languages.
38305
38306 2011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
38307
38308 * config/mips/loongson3a.md: New file.
38309 * config/mips/mips.md: Include loongson3a.md.
38310 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
38311 TUNE_LOONGSON_3A.
38312
38313 2011-01-03 Eric Botcazou <ebotcazou@adacore.com>
38314
38315 PR middle-end/47017
38316 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
38317 instead of convert_memory_address_addr_space on the base expression.
38318
38319 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38320
38321 * config/spu/spu.c (spu_option_override): Update error text
38322 for bad -march= / -mtune= values.
38323
38324 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38325
38326 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
38327 if branch-hint optimization will be performed.
38328
38329 2011-01-03 Jakub Jelinek <jakub@redhat.com>
38330
38331 PR tree-optimization/47148
38332 * ipa-split.c (split_function): Convert arguments to
38333 DECL_ARG_TYPE if possible.
38334
38335 PR tree-optimization/47155
38336 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
38337 when computing uns.
38338
38339 PR rtl-optimization/47157
38340 * combine.c (try_combine): If undobuf.other_insn becomes
38341 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
38342 and set *new_direct_jump_p too.
38343
38344 2011-01-03 Sebastian Pop <sebastian.pop@amd.com>
38345
38346 PR tree-optimization/47021
38347 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
38348
38349 2011-01-03 Jakub Jelinek <jakub@redhat.com>
38350
38351 * gcc.c (process_command): Update copyright notice dates.
38352 * gcov.c (print_version): Likewise.
38353 * gcov-dump.c (print_version): Likewise.
38354 * mips-tfile.c (main): Likewise.
38355 * mips-tdump.c (main): Likewise.
38356
38357 2011-01-03 Martin Jambor <mjambor@suse.cz>
38358
38359 PR tree-optimization/46801
38360 * tree-sra.c (type_internals_preclude_sra_p): Check whether
38361 aggregate fields start at byte boundary instead of the bit-field flag.
38362
38363 2011-01-03 H.J. Lu <hongjiu.lu@intel.com>
38364
38365 PR driver/47137
38366 * gcc.c (main): Revert revision 168407.
38367
38368 2011-01-03 Martin Jambor <mjambor@suse.cz>
38369
38370 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
38371
38372 2011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
38373
38374 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
38375 vector optab to expand vector/scalar shift, update gimple to vector.
38376
38377 2011-01-03 Martin Jambor <mjambor@suse.cz>
38378
38379 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
38380 a thunk.
38381
38382 2011-01-03 Martin Jambor <mjambor@suse.cz>
38383
38384 PR tree-optimization/46984
38385 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
38386 HOST_WIDE_INT.
38387 (cgraph_create_indirect_edge): Fixed line length.
38388 (cgraph_indirect_call_info): Declare.
38389 (cgraph_make_edge_direct) Update declaration.
38390 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
38391 (cgraph_create_indirect_edge): Use it.
38392 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
38393 callees.
38394 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
38395 the new thunk_delta representation.
38396 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
38397 HOST_WIDE_INT.
38398 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
38399 (ipa_read_indirect_edge_info): Likewise.
38400 * lto-cgraph.c (output_edge_opt_summary): New function.
38401 (output_node_opt_summary): Call it on all outgoing edges.
38402 (input_edge_opt_summary): New function.
38403 (input_node_opt_summary): Call it on all outgoing edges.
38404
38405 2011-01-02 H.J. Lu <hongjiu.lu@intel.com>
38406
38407 PR driver/47137
38408 * gcc.c (main): Don't check have_o when settting combine_inputs.
38409
38410 2011-01-02 Eric Botcazou <ebotcazou@adacore.com>
38411
38412 * regrename.c: Add general comment describing the pass.
38413 (struct du_head): Remove 'length' field.
38414 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
38415 (regrename_optimize): Do not sort chains. Rework comments, add others.
38416 Force renaming to the preferred class (if any) in the first pass and do
38417 not consider registers that belong to it in the second pass.
38418 (create_new_chain): Do not set 'length' field.
38419 (scan_rtx_reg): Likewise.
38420
38421 2011-01-02 Jakub Jelinek <jakub@redhat.com>
38422
38423 PR tree-optimization/47140
38424 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
38425 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
38426 to bit_value_binop.
38427
38428 PR rtl-optimization/47028
38429 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
38430 parm_birth_insn instead of at the beginning of first bb.
38431
38432 2011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
38433
38434 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
38435 Remove the word "see" before "@pxref".
38436 * doc/rtl.texi: Remove the word "see" before "@pxref".
38437
38438 2011-01-01 Jan Hubicka <jh@suse.cz>
38439
38440 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
38441 memory.
38442
38443 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
38444
38445 PR target/38662
38446 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
38447
38448 \f
38449 Copyright (C) 2011 Free Software Foundation, Inc.
38450
38451 Copying and distribution of this file, with or without modification,
38452 are permitted in any medium without royalty provided the copyright
38453 notice and this notice are preserved.