]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR c++/48834 (-fno-exceptions causes wrong code generation on C++ code)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
2609a0ce
SM
12011-05-02 Simon Martin <simartin@users.sourceforge.net>
2
3 PR c/35445
4 * c-decl.c (finish_decl): Only create a composite if the types are
5 compatible.
6
6b0e4cbb
JM
72011-05-02 Joseph Myers <joseph@codesourcery.com>
8
9 * config/fr30/fr30-protos.h (Mmode): Don't define.
10 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
11 definition where used.
12 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
13 define. Expand definitions where used.
14 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
15 Expand definitions where used.
16 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
17 rx_function_arg, rx_function_arg_advance,
18 rx_function_arg_boundary): Expand definitions of those macros.
19 * config/v850/v850-protos.h (Mmode): Don't define. Expand
20 definition where used.
21
4e938ce6
UB
222011-05-02 Uros Bizjak <ubizjak@gmail.com>
23
24 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
25 reg<->xmm moves.
26 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
27 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
28 with *movv2sf_internal_rex64_avx.
29 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
30 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
31 Use %v prefix in insn mnemonic to handle TARGET_AVX.
32 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
33 "vex" in "prefix" attribute calculation.
34 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
35
36019c19
SH
362011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
37
38 PR target/47951
39 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
40 inputs match the output.
41
f69ea688
AS
422011-05-02 Andreas Schwab <schwab@linux-m68k.org>
43
44 PR target/47955
45 * config/m68k/m68k.c (m68k_expand_prologue): Set
46 current_function_static_stack_size.
47
c33406f5
JH
482011-05-02 Jan Hubicka <jh@suse.cz>
49
50 * lto-streamer.c (lto_streamer_cache_insert_1,
51 lto_streamer_cache_lookup, lto_streamer_cache_create,
52 lto_streamer_cache_delete): Use pointer map instead of hashtable.
53 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
54
47c94d21
JM
552011-05-02 Joseph Myers <joseph@codesourcery.com>
56
57 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
58 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
59 config/m68k/t-opts: New files.
60 * config/m68k/m68k-tables.opt: New file (generated).
61 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
62 extra_options and m68k/t-opts to tmake_file.
63 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
64 (all_isas): Initialize using m68k-isas.def.
65 (all_microarchs): Initialize using m68k-microarchs.def.
66 (m68k_find_selection): Remove.
67 (m68k_handle_option): Don't assert that global structures are in
68 use. Use error_at. Access variables via opts pointer. Don't
69 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
70 directly for -m68020-40 and -m68020-60.
71 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
72 m68k_tune_entry here.
73 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
74 to m68k-opts.h.
75 (m68k_library_id_string): Remove declaration.
4e938ce6 76 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
77 (m68k_library_id_string): New Variable.
78 (march=, mcpu=, mtune=): Use Enum and Var.
79
e562bf36
RG
802011-05-02 Richard Guenther <rguenther@suse.de>
81
82 * varasm.c (output_constructor_regular_field): Compute zero-based
83 index with double-ints. Make sure to ICE instead of producing
84 wrong code.
85 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
86 in asserts. Properly use a signed type.
87
6bec6c98
UB
882011-05-02 Uros Bizjak <ubizjak@gmail.com>
89
90 * config/i386/sse.md (V): New mode iterator.
91 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
92 TARGET_SSE2.
93 (V_256): Rename from AVX256MODE.
94 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
95 condition to all users.
96 (VF1): Ditto.
97 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
98 condition to all users.
99 (VF_128): Make V4SF mode unconditional.
100 (VF_256): Rename from AVX256MODEF2P.
101 (VI4F_128): Rename from SSEMODE4S.
102 (VI8F_128): Rename from SSEMODE2D.
103 (VI4F_256): Rename from AVX256MODE8P.
104 (VI8F_256): Rename from AVX256MODE4P.
105 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
106 (ssescalarmodesuffix): Remove SF and DF modes.
107 (SSEMODE124): Remove.
108 (SSEMODE1248): Ditto.
109 (SSEMODEF2P): Ditto.
110 (AVXMODEF2P): Ditto.
111 (AVXMODEFDP): Ditto.
112 (AVXMODEFSP): Ditto.
113 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
114 unconditional.
115 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
116 unconditional.
117 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
118 xop_pcmov_<mode>256. Use V mode iterator.
119
120 Adjust RTX patterns globally for renamed mode attributes.
121
2dfdcb4b
UW
1222011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
123
124 * haifa-sched.c (sched_emit_insn): Emit insn before first
125 non-scheduled insn. Inform back-end about new insn. Add
126 new insn to scheduled_insns list.
127
90bc4623
RG
1282011-05-02 Richard Guenther <rguenther@suse.de>
129
130 PR tree-optimization/48822
131 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
132 (process_scc): Indicate which iteration we start.
133
bc0fe8cb
JH
1342011-05-02 Jan Hubicka <jh@suse.cz>
135
136 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
137 (lto_section_overrun): New.
138 * lto-section-out.c (append_block): Rename to ...
139 (lto_append_block): ... this one; export.
140 (lto_output_1_stream): Move lto lto-streamer.h
141 (lto_output_data_stream): Update.
142 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
143 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
144 functions.
145
f070a9d1
RG
1462011-05-02 Richard Guenther <rguenther@suse.de>
147
148 * tree.c (tree_code_counts): New global array.
149 (record_node_allocation_statistics): Count individual tree codes.
150 (dump_tree_statistics): Dump individual code stats.
151
09dfe187
JH
1522011-05-01 Jan Hubicka <jh@suse.cz>
153
154 * ipa-inline.c (caller_growth_limits): Fix thinko when
155 looking for largest stack frame.
156 * ipa-inline.h (dump_inline_summary): Declare.
157 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
158 on stack usage.
159 (dump_inline_summary): Export.
160 (debug_inline_summary): Declare as DEBUG_FUNCTION.
161
6f76a878
AS
1622011-05-01 Anatoly Sokolov <aesok@post.ru>
163
164 * reginfo.c (memory_move_cost): Change rclass argument type form
165 'enum reg_class' to reg_class_t.
166 * reload.h (memory_move_cost): Update prototype.
167 * postreload.c reload_cse_simplify_set): Change type dclass var to
168 reg_class_t.
169 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
170 Update prototype.
171 (ira_allocate_and_set_costs): Change aclass argument type form
172 'enum reg_class' to reg_class_t.
6bec6c98 173 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
174 Change aclass argument type to reg_class_t.
175 (update_conflict_hard_reg_costs): Change type aclass and pref vars
176 to reg_class_t.
177 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
178 memory_move_cost call.
179
180 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
181 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
182 Change type tmp var to reg_class_t.
183
9a4ac625
JH
1842011-04-30 Jan Hubicka <jh@suse.cz>
185
186 * ipa-inline.c (can_inline_edge_p): Disregard limits when
187 inlining into function with flatten attribute.
188 (want_inline_small_function_p): Be more realistic about inlining
189 cold calls where callee size grows.
190
dd8352ee
JH
1912011-04-30 Jan Hubicka <jh@suse.cz>
192
193 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
194 flags.
195
46e43d2b
AS
1962011-04-30 Anatoly Sokolov <aesok@post.ru>
197
198 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
199 PRINT_OPERAND_PUNCT_VALID_P): Remove.
200 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
201 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
202 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
203 (print_operand): Rename to...
204 (sparc_print_operand): ...this. Make static. Adjust
205 sparc_print_operand function call.
206 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
207 functions.
208
ecb62563
JH
2092011-04-30 Jan Hubicka <jh@suse.cz>
210
6bec6c98 211 PR middle-end/48752
ecb62563
JH
212 * ipa-inline.c (early_inliner): Disable when doing late
213 addition of function.
214
edb9b69e
JJ
2152011-04-30 Jakub Jelinek <jakub@redhat.com>
216
be80a87e
JJ
217 * dwarf2out.c (get_address_mode): New inline.
218 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
219 if not dwarf_strict emit
220 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
221 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
222 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
223 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
224 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
225 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
226 mem_loc_descriptor callers.
227 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
228 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
229 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
230 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
231 (base_types): New variable.
232 (get_base_type_offset, calc_base_type_die_sizes,
233 base_type_for_mode, mark_base_types, base_type_cmp,
234 move_marked_base_types): New functions.
235 (calc_die_sizes): Assert that die_offset is 0 or equal to
236 next_die_offset.
237 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
238 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
239 callers. If not dwarf_strict, call mem_loc_descriptor even for
240 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
241 (gen_subprogram_die): Don't give up on call site parameters
242 with non-integral or large integral modes. Adjust
243 mem_loc_descriptor callers.
244 (prune_unused_types): Call prune_unused_types_mark on base_types
245 vector entries.
246 (resolve_addr): Call mark_base_types.
247 (dwarf2out_finish): Call move_marked_base_types.
248
edb9b69e
JJ
249 PR tree-optimization/48809
250 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
251 type.
252 (gen_inbound_check): Don't compute index_expr - range_min in utype
253 again, instead reuse SSA_NAME initialized in build_arrays.
254 Remove two useless gsi_for_stmt calls.
255
a6545a3d
JL
2562011-04-29 Jeff Law <law@redhat.com>
257
258 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
259
af8bca3c
MJ
2602011-04-29 Martin Jambor <mjambor@suse.cz>
261
262 * cgraph.h (cgraph_postorder): Remove declaration.
263 * ipa-utils.h (ipa_free_postorder_info): Declare.
264 (ipa_reverse_postorder): Likewise.
265 * cgraphunit.c: Include ipa-utils.h.
266 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
267 * ipa-inline.c: Include ipa-utils.h.
268 (ipa_inline): Update call to ipa_reverse_postorder.
269 * ipa-pure-const.c (propagate_pure_const): Update call to
270 ipa_reduced_postorder and ipa_print_order. Call
271 ipa_free_postorder_info to clean up.
272 (propagate_nothrow): Likewise.
273 * ipa-reference.c (propagate): Removed a useless call to
274 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
275 and ipa_print_order. Call ipa_free_postorder_info to clean up.
276 * ipa.c: Include ipa-utils.h.
277 (ipa_profile): Update call to ipa_reverse_postorder.
278 (cgraph_postorder): Moved to...
279 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
280 (ipa_utils_print_order): Renamed to ipa_print_order.
281 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
282 comments.
283 (ipa_free_postorder_info): New function.
284 * passes.c: Include ipa-utils.h.
285 (do_per_function_toporder): Update call to ipa_reverse_postorder.
286 (ipa_write_summaries): Likewise.
287 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
288 (cgraphunit.o): Likewise.
289 (ipa.o): Likewise.
290 (ipa-inline.o): Likewise.
291
b15c64ee
JH
2922011-04-29 Jan Hubicka <jh@suse.cz>
293
294 * gcc.dg/tree-ssa/inline-10.c: New testcase.
295 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
296 * ipa-inline.h (clause_t): Turn into unsigned int.
297 * ipa-inline-analysis.c (add_clause): Do more simplification.
298 (and_predicates): Shortcut more cases.
299 (predicates_equal_p): Move forward; check that clauses are properly
300 ordered.
301 (or_predicates): Shortcut more cases.
302 (edge_execution_predicate): Rewrite as...
303 (set_cond_stmt_execution_predicate): ... this function; handle
304 __builtin_constant_p.
305 (set_switch_stmt_execution_predicate): New .
306 (compute_bb_predicates): New.
307 (will_be_nonconstant_predicate): Update TODO.
308 (estimate_function_body_sizes): Use compute_bb_predicates
309 and free them later, always try to estimate if stmt is constant.
310 (estimate_time_after_inlining, estimate_size_after_inlining):
311 Gracefully handle optimized out edges.
312 (read_predicate): Fix off by one error.
313
a88fdc2a
NP
3142011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
315
316 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
317
d984c8ef
XDL
3182011-04-27 Xinliang David Li <davidxl@google.com>
319
320 * tree-profile.c (init_ic_make_global_vars): Set
321 tls attribute on ic vars.
322 * coverage.c (coverage_end_function): Initialize
323 function_list with zero.
324
45a2c477
RG
3252011-04-29 Richard Guenther <rguenther@suse.de>
326
327 * builtins.c (fold_builtin_classify_type): Use integer_type_node
328 for the type of the result.
329 (fold_builtin_isascii): Likewise.
330 (fold_builtin_toascii): Use integer_type_node where appropriate.
331 (fold_builtin_logb): Likewise.
332 (fold_builtin_frexp): Likewise.
333 (fold_builtin_strstr): Likewise.
334 (fold_builtin_strpbrk): Likewise.
335 (fold_builtin_fputs): Likewise.
336 (fold_builtin_sprintf): Likewise.
337 (fold_builtin_snprintf): Likewise.
338 (fold_builtin_printf): Likewise.
339 (do_mpfr_remquo): Use a proper type for the assigned constant.
340 (do_mpfr_lgamma_r): Likewise.
341 * dwarf2out.c (resolve_one_addr): Use size_int.
342 * except.c (init_eh): Likewise.
343 (assign_filter_values): Use integer_type_node for filter values.
344 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
345 indices.
346 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
347 for EH region numbers.
348 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
349 for the shift amount.
350
eb6c3df1
RG
3512011-04-29 Richard Guenther <rguenther@suse.de>
352
353 * expr.h (expand_shift): Rename to ...
354 (expand_variable_shift): ... this.
355 (expand_shift): Take a constant shift amount.
356 * expmed.c (expand_shift): Rename to ...
357 (expand_variable_shift): ... this.
358 (expand_shift): New wrapper around expand_variable_shift.
359 * expr.c (convert_move, emit_group_load_1, emit_group_store,
360 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
361 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
362 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
363 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
364 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
365 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
366 emit_store_flag_1, emit_store_flag): Likewise.
367 * builtins.c (expand_builtin_signbit): Likewise.
368 * calls.c (load_register_parameters): Likewise.
369 * function.c (assign_parm_setup_block): Likewise.
370 * lower-subreg.c (resolve_shift_zext): Likewise.
371 * optabs.c (widen_bswap, expand_abs_nojump,
372 expand_one_cmpl_abs_nojump, expand_float): Likewise.
373 * spu/spu.c (spu_expand_extv): Likewise.
374 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
375
9f616812
RG
3762011-04-29 Richard Guenther <rguenther@suse.de>
377
378 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
379 for the remapped region number.
380 * predict.c (build_predict_expr): Use integer_type_node for the
381 predict kind.
382 * fold-const.c (fold_binary_loc): Use integer_type_node for
383 the shift amount. Use a proper type for the PLUS_EXPR operand.
384
b823cdfe
MM
3852011-04-29 Michael Matz <matz@suse.de>
386
387 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
388 other trees that just builtins.
389 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
390
413581ba
RG
3912011-04-29 Richard Guenther <rguenther@suse.de>
392
393 * tree-nested.c (get_trampoline_type): Use size_int.
394 (get_nl_goto_field): Likewise.
395 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
396 for all indexes.
397 (lower_eh_constructs_2): Likewise.
398 (lower_resx): Likewise.
399 (lower_eh_dispatch): Likewise.
400 * tree-mudflap.c (mf_build_string): Use size_int.
401 (mudflap_register_call): Use integer_type_node for the flag.
402 (mudflap_enqueue_constant): Use size_int.
403 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
404 instead of rebuilding it.
405
5c04e9f4
RG
4062011-04-29 Richard Guenther <rguenther@suse.de>
407
408 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
409 Handle OBJ_TYPE_REF.
410 (find_func_aliases_for_call): Use it more consistently.
411
5c24671b
AO
4122011-04-29 Alexandre Oliva <aoliva@redhat.com>
413
414 * haifa-sched.c (last_nondebug_scheduled_insn): New.
415 (rank_for_schedule): Use it.
416 (schedule_block): Set it.
417
10adac51
XDL
4182011-04-28 David Li <davidxl@google.com>
419
420 * tree.c (crc32_string): Use crc32_byte.
421 (crc32_byte): New function.
422 * tree.h (crc32_byte): New function.
423 * gcov.c (read_graph_file): Handle new cfg_cksum.
424 (read_count_file): Ditto.
425 * profile.c (instrument_values): Ditto.
426 (get_exec_counts): Ditto.
427 (read_profile_edge_counts): Ditto.
428 (compute_branch_probabilities): Ditto.
429 (compute_value_histograms): Ditto.
430 (branch_prob): Ditto.
431 (end_branch_prob): Ditto.
432 * coverage.c (read_counts_file): Ditto.
433 (get_coverage_counts): Ditto.
434 (tree_coverage_counter_addr): Ditto.
435 (coverage_checksum_string): Ditto.
436 (coverage_begin_output): Ditto.
437 (coverage_end_function): Ditto.
438 (build_fn_info_type): Ditto.
439 (build_fn_info_value): Ditto.
440 * libgcov.c (gcov_exit): Ditto.
441 * gcov-dump.c (tag_function): Ditto.
442 (compute_checksum): Remove.
443
5d6358a5
AM
4442011-04-29 Alan Modra <amodra@gmail.com>
445
446 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
447 unspec plus offset. Tidy macho code.
448
85ad2ef5
MJ
4492011-04-29 Martin Jambor <mjambor@suse.cz>
450
451 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
452 node instead of a decl. Update all callers.
453 * cgraph.h: Update declaration.
454
437f4a00
IR
4552011-04-28 Ira Rosen <ira.rosen@linaro.org>
456
457 PR tree-optimization/48765
458 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
459 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
460 to indicate if loop aware SLP is being used. Scan the statements
461 and update the vectorization factor according to the type of
462 vectorization before statement analysis.
463 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
464 pass it to vect_analyze_loop_operations.
465 (vectorizable_reduction): Set number of copies to 1 in case of pure
466 SLP statement.
467 * tree-vect-stmts.c (vectorizable_conversion,
468 vectorizable_assignment, vectorizable_shift,
469 vectorizable_operation, vectorizable_type_demotion,
470 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
471 Likewise.
472 (vectorizable_condition): Move the check that it is not SLP
473 vectorization before the number of copies check.
474 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
475 to vectorize the loop using SLP.
476
c6fc44f3
JJ
4772011-04-28 Jakub Jelinek <jakub@redhat.com>
478
479 PR middle-end/48597
480 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
481 inline asm.
482
6c0170ea
JM
4832011-04-28 Joseph Myers <joseph@codesourcery.com>
484
485 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
486 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
487 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
488 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
489 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
490 linux*.h headers.
6bec6c98 491 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
492 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
493 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
494 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 495 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
496 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
497 REG_NAME.
498 * config/i386/linux.h (REG_NAME): Don't define.
499 * config/i386/linux64.h (REG_NAME): Don't define.
500 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
501 Undefine before defining.
502
970dabbd
JH
5032011-04-28 Jan Hubicka <jh@suse.cz>
504
6bec6c98
UB
505 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
506 nonconstant_names array.
970dabbd
JH
507 (estimate_function_body_sizes): Build nonconstant_names array; handle
508 BUILT_IN_CONSTANT_P.
509
8d3e3924
RG
5102011-04-28 Richard Guenther <rguenther@suse.de>
511
512 PR bootstrap/48804
513 Revert
514 2011-04-28 Richard Guenther <rguenther@suse.de>
515
516 * tree-ssa-structalias.c (solve_constraints): Build succ graph
517 as late as possible.
6bec6c98 518
8576f20a
RG
5192011-04-28 Richard Guenther <rguenther@suse.de>
520
521 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
522 (debug_constraint): Do it here.
523 (dump_constraints): And here.
524 (rewrite_constraints): And here.
525 (dump_constraint_edge): Remove.
526 (dump_constraint_graph): Rewrite to produce DOT output.
527 (solve_constraints): Build succ graph as late as possible.
528 Dump constraint graphs before and after solving.
529
e38811ce
RG
5302011-04-28 Richard Guenther <rguenther@suse.de>
531
532 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
533 New function split out from ...
534 (find_func_aliases): ... here. Call it.
535 (find_func_aliases_for_call): Likewise.
536
fbaf0d0c
GDR
5372011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
538
539 * internal-fn.h (internal_fn_name_array): Declare.
540 (internal_fn_flags_array): Likewise.
541
cbb734aa
UB
5422011-04-27 Uros Bizjak <ubizjak@gmail.com>
543
544 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
545 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
546 Move from sse.md.
547 (ssemodefsuffix): Remove.
548 (ssevecmodesuffix): New mode attribute.
549 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
550 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
551 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
552 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
553 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
554 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
555 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
556 ssemodesuffix mode attribute.
557 (float splitters): Use ssevecmodesuffix mode attribute.
558 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
559 (sseinsmode): Rename from avxvecmode.
560 (avxsizesuffix): Rename from avxmodesuffix.
561 (sseintvecmode): Rename from avxpermvecmode.
562 (ssedoublevecmode): Rename from ssedoublesizemode.
563 (ssehalfvecmode): Rename from avxhalfvecmode.
564 (ssescalarmode): Rename from avxscalarmode.
565 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
566 templates for ssemodesuffix mode attribute.
567 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
568 mode attribute.
569
570 Adjust RTX patterns globally for renamed mode attributes.
571
991278ab
JH
5722011-04-27 Jan Hubcika <jh@suse.cz>
573
574 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
575 * ipa-inline-analysis.c: Include alloc-pool.h.
576 (edge_predicate_pool): New.
577 (trye_predicate_p): New function
578 (false_predicate_p): New function.
579 (add_clause): Sanity check that false clauses are "optimized";
580 never add clauses to predicate that is already known to be false.
581 (and_predicate): Use flase_predicate_p.
582 (evaulate_predicate): Rename to ...
583 (evaluate_predicate): ... this one; update all callers; assert
584 that false is not listed among possible truths.
585 (dump_predicate): Use true_predicate_p.
586 (account_size_time): Use false_predicate_p.
587 (evaulate_conditions_for_edge): Rename to ...
588 (evaluate_conditions_for_edge) ... this one.
589 (edge_set_predicate): New function.
590 (inline_edge_duplication_hook): Duplicate edge predicates.
591 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 592 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
593 (dump_inline_summary): Update.
594 (estimate_function_body_sizes): Set edge predicates.
595 (estimate_calls_size_and_time): Handle predicates.
596 (estimate_callee_size_and_time): Update.
597 (remap_predicate): Add toplev_predicate; update comment.
598 (remap_edge_predicates): New function.
599 (inline_merge_summary): Compute toplev predicate; update.
600 (read_predicate): New function.
601 (read_inline_edge_summary): Use it.
602 (inline_read_section): Likewise.
603 (write_predicate): New function.
604 (write_inline_edge_summary): Use it.
605 (inline_write_summary): Likewise.
606 (inline_free_summary): Free alloc pool and edge summary vec.
607
648b5f85
RG
6082011-04-27 Richard Guenther <rguenther@suse.de>
609
610 * tree-ssa-structalias.c (changed_count): Remove.
611 (changed): Use a bitmap.
612 (unify_nodes): Adjust.
613 (do_sd_constraint): Likewise.
614 (do_ds_constraint): Likewise.
615 (do_complex_constraint): Likewise.
616 (solve_graph): Likewise.
617
4d5dcfb2
JH
6182011-04-27 Jan Hubicka <jh@suse.cz>
619
620 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
621
200eb7d2
UB
6222011-04-27 Uros Bizjak <ubizjak@gmail.com>
623
624 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
625 (avx_vperm2f128_*_operand): Ditto.
626 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
627 Use avx_vpermilp_parallel in insn condition.
628 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
629 Use avx_vperm2f128_parallel in insn condition.
630
7d6e2521
RG
6312011-04-27 Richard Guenther <rguenther@suse.de>
632
633 * Makefile.in (tree-ssa-structalias.o): Remove
634 gt-tree-ssa-structalias.h dependency.
635 (GTFILES): Remove tree-ssa-structalias.c.
636 * tree.c (allocate_decl_uid): New function.
637 (make_node_stat): Use it.
638 (copy_node_stat): Likewise.
639 * tree.h (allocate_decl_uid): Declare.
640 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
641 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
642 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 643 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
644 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
645 (struct heapvar_map): Likewise.
646 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
647 heapvar_insert): Likewise.
648 (make_heapvar_for): Rename to ...
649 (make_heapvar): ... this. Simplify.
650 (fake_var_decl_obstack): New global var.
651 (build_fake_var_decl): New function.
652 (make_constraint_from_heapvar): Adjust.
653 (handle_lhs_call): Likewise.
654 (create_function_info_for): Likewise.
655 (intra_create_variable_infos): Likewise.
656 (init_alias_vars): Allocate fake_var_decl_obstack.
657 (init_alias_heapvars, delete_alias_heapvars): Remove.
658 (compute_points_to_sets): Do not call init_alias_heapvars.
659 (ipa_pta_execute): Likewise.
660 (delete_points_to_sets): Free fake_var_decl_obstack.
661
526ed6c2
UW
6622011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
663
664 * config/spu/divmovti4.c (union qword_UTItype): New data type.
665 (si_from_UTItype, si_to_UTItype): New functions.
666 (__udivmodti4): Use them to implement type-punning.
667 * config/spu/multi3.c (union qword_TItype): New data type.
668 (si_from_TItype, si_to_TItype): New functions.
669 (__multi3): Use them to implement type-punning.
670
c187d33c
UW
6712011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
672
673 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
674
40982661
JH
6752011-04-27 Jan Hubicka <jh@suse.cz>
676
677 * ipa-prop.c (function_insertion_hook_holder): New holder.
678 (ipa_add_new_function): New function.
200eb7d2
UB
679 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
680 Register/deregister holder.
40982661 681
9aef53ee
RG
6822011-04-27 Richard Guenther <rguenther@suse.de>
683
684 PR tree-optimization/48772
200eb7d2 685 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 686
f63d806d
RG
6872011-04-27 Richard Guenther <rguenther@suse.de>
688
689 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
690 TARGET_MEM_REF handling.
691
e1ea7451
NC
6922011-04-27 Nick Clifton <nickc@redhat.com>
693
9b5db25d
NC
694 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
695 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
696 (REG_CLASS_NAMES): Likewise.
697 (REG_CLASS_CONTENTS): Likewise.
698 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
699 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
700 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
701 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
702 (EVEN_REGS): New macro. Alias for QUAD_REGS.
703 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
704 duplicate register classes.
97d20907 705 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
706 (frv_register_move_cost): Likewise.
707
e1ea7451
NC
708 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
709 end of the regno_reg_class array.
710
5c2f94b4
JJ
7112011-04-27 Jakub Jelinek <jakub@redhat.com>
712
713 PR c/48742
714 * c-typeck.c (build_binary_op): Don't wrap arguments if
715 int_operands is true.
716
57a944d7
KK
7172011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
718
719 PR target/48767
720 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
721 targetm.calls.must_pass_in_stack for void type.
722
898b8927
JH
7232011-04-26 Jan Hubicka <jh@suse.cz>
724
725 * cgraphbuild.c (build_cgraph_edges): Update call
726 of cgraph_create_edge and cgraph_create_indirect_edge.
727 * cgraph.c (cgraph_create_edge_including_clones,
728 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
729 cgraph_update_edges_for_call_stmt_node): Do not take nest
730 argument; do not initialize call_stmt_size/time.
731 (dump_cgraph_node): Do not dump nest.
732 (cgraph_clone_edge): Do not take loop_nest argument;
733 do not propagate it; do not clone call_stmt_size/time.
734 (cgraph_clone_node): Likewise.
735 (cgraph_create_virtual_clone): Update.
736 * cgraph.h (struct cgraph_edge): Remove
737 call_stmt_size/call_stmt_time/loop_nest.
738 (cgraph_create_edge, cgraph_create_indirect_edge,
739 cgraph_create_edge_including_clones, cgraph_clone_node): Update
740 prototype.
741 * tree-emutls.c (gen_emutls_addr): Update.
742 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
743 loop_nest; handle indirect calls, too.
744 (clone_inlined_nodes): Do not care about updating inline summaries.
745 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
746 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
747 stream call_stmt_size/call_stmt_time/loop_nest.
748 * ipa-inline.c (edge_badness): Update.
749 (ipa_inline): dump summaries after inlining.
750 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 751 New.
898b8927
JH
752 (inline_edge_summary): New function.
753 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
754 (inline_edge_removal_hook): Handle edge summaries.
755 (inline_edge_duplication_hook): New hook.
756 (inline_summary_alloc): Alloc hooks.
757 (initialize_growth_caches): Do not register removal hooks.
758 (free_growth_caches); Do not free removal hook.
759 (dump_inline_edge_summary): New function.
760 (dump_inline_summary): Use it.
761 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
762 (inline_update_callee_summaries): New function.
763 (inline_merge_summary): Use it.
764 (do_estimate_edge_time, do_estimate_edge_growth): Update.
765 (read_inline_edge_summary): New function.
766 (inline_read_section): Use it.
767 (write_inline_edge_summary): New function.
768 (inline_write_summary): Use it.
769 (inline_free_summary): Free edge new holders.
770 * tree-inline.c (copy_bb): Update.
771
ffa03772
JM
7722011-04-26 Jason Merrill <jason@redhat.com>
773
774 * tree-eh.c (lower_try_finally_switch): Create the label along with
775 the CASE_LABEL_EXPR.
776
6d7b45ad
DM
7772011-04-26 David S. Miller <davem@davemloft.net>
778 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
779
780 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
781 * configure: Regenerate.
782
df10b6d4
MM
7832011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
784
785 PR target/48258
786 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
787 reduction.
788 (VEC_reduc): New code iterator and splitters for vector reduction.
789 (VEC_reduc_name): Ditto.
790 (VEC_reduc_rtx): Ditto.
791 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
792 (reduc_<VEC_reduc_name>_v4sf): Ditto.
793
794 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
795 support for extracting SF on VSX.
796
797 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
798 generating xscvspdp.
799 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
800 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
801 double add, minimum, maximum vector reduction.
802 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
803 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
804 optimize double vector reduction.
805 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
806
35a5db04
JM
8072011-04-26 Joseph Myers <joseph@codesourcery.com>
808
809 * config/fr30/fr30.h (inhibit_libc): Don't define.
810 * config/m32r/m32r-protos.h: Correct comment.
811 * config/v850/v850.h (GHS_default_section_names,
812 GHS_current_section_names): Use tree, not union tree_node *.
813
2f964ad6
XDL
8142011-04-26 Xinliang David Li <davidxl@google.com>
815
200eb7d2 816 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
817 * c-family/c-opts.c (c_common_handle_option): Set
818 warn_maybe_uninitialized.
819 * opts.c (common_handle_option): Ditto.
820 * common.opt: New option.
821 * tree-ssa.c (warn_uninit): Add one more parameter.
822 (warn_uninitialized_var): Pass warning code.
823 * tree-flow.h: Interface change.
824
825
9c7bd91a
RO
8262011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
827
200eb7d2 828 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
829 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
830 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
831
c2f36e21
RO
8322011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
833
834 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
835 * config/mips/mips.opt (mmips-tfile): Remove.
836
837 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
838 mips-tdump reference to ...
200eb7d2 839 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
840 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
841 reference by Tru64 UNIX.
842
2c9da85b
JJ
8432011-04-26 Jakub Jelinek <jakub@redhat.com>
844
0c5f6539
JJ
845 PR debug/48768
846 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
847 is error_mark_node, set value to NULL.
848
2c9da85b
JJ
849 PR tree-optimization/48734
850 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
851 if return value from maybe_fold_*_comparsions isn't something
852 the code is prepared to handle.
853
77fa1d54
UB
8542011-04-26 Uros Bizjak <ubizjak@gmail.com>
855
856 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
857 mode check.
858 (ext_QIreg_nomode_operands): Remove.
859 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
860 (*andsi_1): Ditto.
861 (*andhi_1): Ditto.
862
0e2a6c2b
AS
8632011-04-26 Andrew Stubbs <ams@codesourcery.com>
864
865 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
866
961562d8
RB
8672011-04-26 Richard Guenther <rguenther@suse.de>
868
869 * c-typeck.c (build_unary_op): Do not expand array-refs via
870 pointer arithmetic. Only adjust qualifiers for function types.
871
8722011-04-26 Richard Guenther <rguenther@suse.de>
873
874 PR middle-end/48694
875 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
876 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
877 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
878 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 879
a0d260fc
PC
8802011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
881
77fa1d54 882 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
a0d260fc 883 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
6bec6c98 884 * doc/extend.texi: Document __underlying_type.
a0d260fc 885
4d583bb9
SB
8862011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
887
888 * config/rs6000/titan.md (automata_option "progress"): Remove.
889
1f3fcdc3
JL
8902011-04-25 Jeff Law <law@redhat.com>
891
892 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
893
e5b0dad8
JK
8942011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
895
896 * system.h (ENUM_BITFIELD): Remove.
897
5157a881
MK
8982011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
899 Eric Botcazou <ebotcazou@adacore.com>
900
901 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
902 for STORE_FLAG_VALUE==-1 case.
903
ed4c109e
RS
9042011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
905
906 PR target/43804
907 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
908 LEGITIMATE_PIC_OPERAND_P.
909
f3181aa2
JH
9102011-04-24 Jan Hubicka <jh@suse.cz>
911
912 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
913 WPA hack.
77fa1d54
UB
914 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
915 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
916 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
917 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
918 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
919 Sanity check predicate length.
920 (remap_predicate): Likewise; sanity check jump functions.
921 (inline_read_section, inline_write_summary): Sanity check
922 predicate length.
923
5307cbaa
PC
9242011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
925
926 PR other/48748
927 * doc/extend.texi (Type Traits): Document __is_standard_layout,
928 __is_literal_type, and __is_trivial; update throughout about
929 possibly cv-qualified void types.
930
bebd5f99
GP
9312011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
932
933 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
934 testsuite and make it version agnostic.
935
7ee28a74
JH
9362011-04-22 Jan Hubicka <jh@suse.cz>
937
938 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
939
16997bc0
JJ
9402011-04-23 Jakub Jelinek <jakub@redhat.com>
941
942 PR c/48685
943 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
944 to VOID_TYPE even around MODIFY_EXPR.
945
f94d4ab1
MS
9462011-04-22 Mike Stump <mikestump@comcast.net>
947
1a84c183 948 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
949 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
950 comment.
951
632b4f8e
JH
9522011-04-22 Jan Hubicka <jh@suse.cz>
953
954 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
955 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
956 ipa-prop.c; update all uses.
632b4f8e 957 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
958 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
959 merge summary of inlined function into former caller.
632b4f8e
JH
960 * ipa-inline.c (max_benefit): Remove.
961 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
962 (update_caller_keys): Use
963 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
964 (update_callee_keys): Likewise.
965 (update_all_callee_keys): Likewise.
77fa1d54
UB
966 (inline_small_functions): Do not collect max_benefit; do not reset
967 estimated_growth; call free_growth_caches and initialize_growth_caches.
968 * ipa-inline.h (struct condition, type clause_t, struct predicate,
969 struct size_time_entry): New structures.
632b4f8e 970 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
971 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
972 and estimated_growth.
632b4f8e
JH
973 (edge_growth_cache_entry): New structure.
974 (node_growth_cache, edge_growth_cache): New global vars.
975 (estimate_growth): Turn into inline.
976 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
977 initialize_growth_caches, free_growth_caches): Declare.
978 (estimate_edge_growth): Rewrite.
979 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
980 (reset_node_growth_cache, reset_edge_growth_cache): New inline
981 functions.
632b4f8e
JH
982 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
983 (NUM_CONDITIONS): New constant.
984 (predicate_conditions): New enum.
985 (IS_NOT_CONSTANT): New constant.
986 (edge_removal_hook_holder): New var.
987 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
988 (true_predicate, single_cond_predicate, false_predicate,
989 not_inlined_predicate, add_condition, add_clause, and_predicates,
990 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
991 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
992 evaulate_conditions_for_edge): New functions.
993 (inline_summary_alloc): Move to heap.
994 (inline_node_removal_hook): Clear condition and entry vectors.
995 (inline_edge_removal_hook): New function.
996 (initialize_growth_caches, free_growth_caches): New function.
997 (dump_inline_summary): Update.
998 (edge_execution_predicate): New function.
999 (will_be_nonconstant_predicate): New function.
1000 (estimate_function_body_sizes): Compute BB and constantness predicates.
1001 (compute_inline_parameters): Do not clear estimated_growth.
1002 (estimate_edge_size_and_time): New function.
1003 (estimate_calls_size_and_time): New function.
1004 (estimate_callee_size_and_time): New function.
1005 (remap_predicate): New function.
1006 (inline_merge_summary): New function.
1007 (do_estimate_edge_time): New function based on...
1008 (estimate_edge_time): ... this one.
1009 (do_estimate_edge_growth): New function.
1010 (do_estimate_growth): New function based on....
1011 (estimate_growth): ... this one.
1012 (inline_analyze_function): Analyze after deciding on jump functions.
1013 (inline_read_section): New function.
1014 (inline_read_summary): Use it.
1015 (inline_write_summary): Write all the new data.
1016 * ipa-prop.c (ipa_get_param_decl_index): Export.
1017 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
1018 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1019 Declare.
1020 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
1021 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1022 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1023 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1024 cgraph_edge_inlinable_p): Remove.
1025 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
1026 (cgraph_process_new_functions): Update call of
1027 compute_inline_parameters.
632b4f8e 1028
1df5b0db
RG
10292011-04-22 Richard Guenther <rguenther@suse.de>
1030
1031 * tree.c (build_int_cst): Properly create canonicalized integer
1032 constants.
1033 (build_int_cst_type): Remove scary comments.
1034
ae01169c
XDL
10352011-04-22 Xinliang David Li <davidxl@google.com>
1036
1037 * toplev.c (process_options): Enable -Werror=coverage-mismatch
1038 by default when -Wno-error is not specified.
1039 * opts-global.c (decode_options): Remove call to
1040 control_warning_options.
1041
93dfac24
JJ
10422011-04-22 Jakub Jelinek <jakub@redhat.com>
1043
1044 PR tree-optimization/48717
1045 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1046 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1047
1b5f5069
JM
10482011-04-22 Joseph Myers <joseph@codesourcery.com>
1049
1050 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1051 definition where used.
1052
144f4153
JJ
10532011-04-22 Jakub Jelinek <jakub@redhat.com>
1054
1055 PR c/48716
1056 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1057 TREE_STATIC variables declared inside of some OpenMP construct.
1058
f9fd305b
MJ
10592011-04-22 Martin Jambor <mjambor@suse.cz>
1060
1061 PR middle-end/48585
1d284ec5 1062 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 1063
49819fef
AM
10642011-04-22 Alexander Monakov <amonakov@ispras.ru>
1065
1066 PR c/36750
1067 * c-typeck.c (pop_init_level): Do not warn about initializing
1068 with ` = {0}'.
1069
401f6699
AM
10702011-04-22 Alan Modra <amodra@gmail.com>
1071
1072 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
1073 when returning call_cookie.
1074 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
1075 pointers, to functions with no more vector args than the current
1076 function, and some non-local calls for ABI_V4.
1077 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
1078 sibcall_nonlocal_aix64): Combine to ..
1079 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
1080 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
1081 (sibcall_value_nonlocal_aix<mode>): ..likewise.
1082 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
1083 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
1084 operand.
1085 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
1086 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
1087 sibcall_value_symbolic_64): Delete.
1088
903d1e67
XDL
10892011-04-21 Xinliang David Li <davidxl@google.com>
1090
1091 * cgraph.h: Remove pid.
1092 * cgraph.c: Remove pid.
1093 * value-prof.c (init_node_map): New function.
1094 (del_node_map): New function.
1095 (find_func_by_funcdef_no): New function.
1096 (gimple_ic_transform): Call new function.
1097 * cgraphunit.c (cgraph_finalize_function): Remove pid.
1098 * function.c (get_last_funcdef_no): New function.
1099 * function.h (get_last_funcdef_no): New function.
1100 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1101 to libgcov function.
1102 (tree-profiling): Call node map init and delete function.
1103
7378e95f
ILT
11042011-04-21 Ian Lance Taylor <iant@google.com>
1105
1106 * godump.c (go_format_type): Use exported Go name for anonymous
1107 field name.
1108
e84a6fcf
NF
11092011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1110
1111 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
1112 Call builtin_function_type_list instead of builtin_function_type.
1113 (UNARY, BINARY, TRINARY, QUAD): Likewise.
1114
4fe058e2
NF
11152011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1116
1117 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
1118 build_function_type_list instead of build_function_type.
1119 Delete variable `endlink'.
1120
1ba0a2d2
NF
11212011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1122
1123 * config/s390/s390.c (s390_init_builtins): Call
1124 build_function_type_list instead of build_function_type.
1125
c0676219
NF
11262011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1127
1128 * config/ia64/ia64.c (ia64_init_builtins): Call
1129 build_function_type_list instead of builtin_function_type.
1130
6ddfda8a
ER
11312011-04-21 Easwaran Raman <eraman@google.com>
1132
3a6448ea 1133 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
1134 (add_stack_var): ...and its reference here...
1135 (expand_stack_vars): ...and here.
1136 (stack_var_cmp): Sort by descending order of size.
1137 (partition_stack_vars): Change heuristic.
1d284ec5 1138 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
1139 (dump_stack_var_partition): Add newline after each partition.
1140
23756963
DA
11412011-04-21 Dimitrios Apostolou <jimis@gmx.net>
1142 Jeff Law <law@redhat.com>
1143
77fa1d54 1144 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
1145 * gengtype.c (matching_file_name_substitute): Likewise.
1146
aa2a43d2
RG
11472011-04-21 Richard Guenther <rguenther@suse.de>
1148
1149 PR lto/48703
1d284ec5 1150 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 1151
4d931f41
EB
11522011-04-21 Eric Botcazou <ebotcazou@adacore.com>
1153
1154 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
1155
f103fa7a
RG
11562011-04-21 Richard Guenther <rguenther@suse.de>
1157
1158 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
1159 file name.
1160
e19f6650
RG
11612011-04-21 Richard Guenther <rguenther@suse.de>
1162
1163 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1164 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
1165 Use DECL_P, not SSA_VAR_P.
1166 (ptr_derefs_may_alias_p): Likewise.
1167 (ptr_deref_may_alias_ref_p_1): Likewise.
1168 (decl_refs_may_alias_p): Likewise.
1169 (refs_may_alias_p_1): Likewise.
1170 (ref_maybe_used_by_call_p_1): Likewise.
1171 (call_may_clobber_ref_p_1): Likewise.
1172 (indirect_ref_may_alias_decl_p): Assume indirect refrences
1173 are either MEM_REF or TARGET_MEM_REF.
1174 (indirect_refs_may_alias_p): Likewise.
1175 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
1176 for MEM_EXPR of indirect calls.
1177
9d1831bb
TG
11782011-04-21 Tristan Gingold <gingold@adacore.com>
1179
1180 * vmsdbgout.c (write_srccorr): Compute file length from the string.
1181 (dst_file_info_struct): Remove flen field.
1182 (lookup_filename): Remove code that set flen field.
1183
f199c029
TG
11842011-04-21 Tristan Gingold <gingold@adacore.com>
1185
1186 * config/ia64/ia64.c (ia64_start_function): Add a guard.
1187
2894086e
UB
11882011-04-21 Uros Bizjak <ubizjak@gmail.com>
1189
1190 PR target/48708
1191 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
1192 vec_extract and vec_concat for non-SSE4_1 targets.
1193
53f94a5c
RG
11942011-04-21 Richard Guenther <rguenther@suse.de>
1195
1196 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
1197 return statements.
1198
f0dca5ba
JM
11992011-04-21 Joseph Myers <joseph@codesourcery.com>
1200
1201 * config/i386/cygming.h (union tree_node, TREE): Don't define or
1202 undefine.
1203 (FILE): Don't undefine.
1204
984514ac
JM
12052011-04-21 Joseph Myers <joseph@codesourcery.com>
1206
1207 * config/alpha/alpha.c (struct machine_function): Use rtx, not
1208 struct rtx_def *.
1209 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
1210 struct rtx_def *.
1211 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 1212 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
1213 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
1214 rtx_def *.
1215 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
1216 definitions where used.
1217 * config/microblaze/microblaze.h (struct microblaze_args): Use
1218 rtx, not struct rtx_def *.
1219 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
1220 rtx_def *.
2894086e
UB
1221 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
1222 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
1223 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
1224 not struct rtx_def *.
1225 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
1226 struct rtx_def *.
1227 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
1228 rtx_def *.
2894086e 1229 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 1230
0b5a2724
RS
12312011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1232
1233 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
1234 operand_equal_p to compare DR_BASE_ADDRESSes.
1235 (vect_check_interleaving): Likewise.
1236
4b18d683
RS
12372011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1238
1239 PR target/46329
1240 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
1241 for all Neon struct constants.
1242
1a627b35
RS
12432011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1244
1245 * target.def (legitimate_constant_p): New hook.
1246 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
1247 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
1248 * doc/tm.texi: Regenerate.
1249 * hooks.h (hook_bool_mode_rtx_true): Declare.
1250 * hooks.c (hook_bool_mode_rtx_true): Define.
1251 * system.h (LEGITIMATE_CONSTANT_P): Poison.
1252 * calls.c (precompute_register_parameters): Replace uses of
1253 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
1254 (emit_library_call_value_1): Likewise.
1255 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
1256 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
1257 * ira-costs.c (scan_one_insn): Likewise.
1258 * recog.c (general_operand, immediate_operand): Likewise.
1259 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
1260 * reload1.c (init_eliminable_invariants): Likewise.
1261
1262 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
1263 mode argument.
1264 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
1265 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
1266 argument.
1267 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1268 * config/alpha/predicates.md (input_operand): Update call to
1269 alpha_legitimate_constant_p.
1270
1271 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
1272 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
1273 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
1274 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1275 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
1276 (arm_legitimate_constant_p): New functions.
1277 (arm_cannot_force_const_mem): Make static.
1278
1279 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
1280
1281 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
1282 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
1283 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
1284 instead of bfin_legitimate_constant_p.
1285 (bfin_legitimate_constant_p): Make static. Add a mode argument.
1286 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1287
1288 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
1289
1290 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
1291
1292 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
1293 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
1294 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1295 (frv_legitimate_constant_p): Make static. Add a mode argument.
1296
1297 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
1298 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
1299 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
1300
1301 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
1302 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
1303 * config/i386/i386.c (legitimate_constant_p): Rename to...
1304 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
1305 argument.
1306 (ix86_cannot_force_const_mem): Update accordingly.
1307 (ix86_legitimate_address_p): Likewise.
1308 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1309 * config/i386/i386.md: Update commentary.
1310
1311 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
1312 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
1313 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1314 (ia64_legitimate_constant_p): Make static. Add a mode argument.
1315
1316 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
1317
1318 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
1319 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
1320 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1321 (lm32_legitimate_constant_p): Make static. Add a mode argument.
1322
1323 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
1324 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
1325 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
1326
1327 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
1328 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1329 (m32r_legitimate_constant_p): New function.
1330
1331 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
1332 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
1333 LEGITIMATE_CONSTANT_P.
1334 (LEGITIMATE_CONSTANT_P): Delete.
1335 * config/m68k/m68k.c (m68k_expand_prologue): Call
1336 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
1337 (m68k_legitimate_constant_p): New function.
1338 * config/m68k/m68k.md: Update comments.
1339
1340 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
1341 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1342 (mcore_legitimate_constant_p): New function.
1343
1344 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
1345 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
1346 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
1347 Add a mode argument.
1348 (mep_legitimate_address): Update accordingly.
1349 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1350
1351 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
1352 Delete.
1353 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
1354 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
1355 static. Check OP's mode for VOIDmode.
1356 (microblaze_legitimate_constant_p): New function.
1357 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1358
1359 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
1360 * config/mips/mips.c (mips_legitimate_constant_p): New function.
1361 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
1362 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1363 * config/mips/predicates.md: Update comments.
1364
1365 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
1366 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
1367 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1368 (mmix_legitimate_constant_p): Make static, return a bool, and take
1369 a mode argument.
1370 (mmix_print_operand_address): Update accordingly.
1371
1372 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
1373 Delete.
1374 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
1375 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
1376 static. Add a mode argument.
1a627b35
RS
1377 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1378
1379 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
1380
1381 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
1382 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1383 (pa_legitimate_constant_p): New function.
1384
1385 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
1386
1387 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
1388 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1389 (pdp11_legitimate_constant_p): New function.
1390
1391 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
1392 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1393 (rs6000_legitimate_constant_p): New function.
1394
1395 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
1396 (rx_legitimate_constant_p): ...this.
1397 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
1398 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
1399 (rx_legitimate_constant_p): ...this.
1400 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1401 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
1402
1403 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
1404 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
1405 * config/s390/s390.c (legitimate_constant_p): Rename to...
1406 (s390_legitimate_constant_p): ...this. Make static, return a bool,
1407 and add a mode argument.
1408 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1409
1410 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
1411
1412 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
1413 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1414 (sh_legitimate_constant_p): New function.
1415
1416 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
1417 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
1418 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1419 (legitimate_constant_p): Rename to...
1420 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
1421 argument.
1422 (constant_address_p): Update accordingly.
1423
1424 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
1425 argument and return a bool.
1426 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
1427 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1428 (spu_legitimate_constant_p): Add a mode argument and return a bool.
1429 (spu_rtx_costs): Update accordingly.
1430 * config/spu/predicates.md (vec_imm_operand): Likewise.
1431
1432 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
1433
1434 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
1435 * config/v850/v850.c (v850_legitimate_constant_p): New function.
1436 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1437
1438 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
1439 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
1440 * config/vax/vax.c (legitimate_constant_p): Likewise.
1441
1442 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
1443 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1444 (xtensa_legitimate_constant_p): New function.
1445
fbbf66e7
RS
14462011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1447
1448 * target.def (cannot_force_const_mem): Add a mode argument.
1449 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
1450 * doc/tm.texi: Regenerate.
1451 * hooks.h (hook_bool_mode_rtx_false): Declare.
1452 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
1453 (hook_bool_mode_const_rtx_true): Likewise.
1454 (hook_bool_mode_rtx_false): New function.
1455 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
1456 to be non-VOID. Update call to cannot_force_const_mem.
1457 (find_reloads): Update accordingly.
1458 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
1459 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
1460 argument.
1461 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
1462 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
1463 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
1464 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
1465 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
1466 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
1467 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
1468 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1469 (m68k_cannot_force_const_mem): ...this new function.
1470 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
1471 argument.
1472 (mips_const_insns, mips_legitimize_const_move): Update calls.
1473 (mips_secondary_reload_class): Likewise.
1474 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1475 (pa_cannot_force_const_mem): ...this new function.
2894086e 1476 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
1477 (rs6000_cannot_force_const_mem): ...this new function.
1478 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
1479 argument.
1480 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
1481 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
1482 to...
1483 (xtensa_cannot_force_const_mem): ...this new function.
1484
b861891b
NF
14852011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1486
1487 * config/mips/mips.c (mips16_build_function_stub): Call
1488 build_function_type_list instead of build_function_type.
1489 (mips16_build_call_stub): Likewise.
1490
34149ed5
NF
14912011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1492
1493 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
1494 instead of build_function_type.
1495
12526412
NF
14962011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1497
1498 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
1499 instead of build_function_type.
1500
3b84d61f
UB
15012011-04-20 Uros Bizjak <ubizjak@gmail.com>
1502
1503 PR target/48678
1504 * config/i386/i386.md (insv): Change operand 0 constraint to
1505 "register_operand". Change operand 1 and 2 constraint to
1506 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
1507 * config/i386/sse.md (sse4_1_pinsrb): Export.
1508 (sse2_pinsrw): Ditto.
1509 (sse4_1_pinsrd): Ditto.
1510 (sse4_1_pinsrq): Ditto.
1511 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
1512 * config/i386/i386.c (ix86_expand_pinsr): New.
1513
4a25752b
ER
15142011-04-20 Easwaran Raman <eraman@google.com>
1515
1516 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
1517 containing union type only with -fstrict-aliasing.
1518
04695783
JM
15192011-04-20 Jim Meyering <meyering@redhat.com>
1520
1521 Remove useless if-before-free tests.
1522 * calls.c (expand_call, save_area): Likewise.
1523 * cfgcleanup.c (try_forward_edges): Likewise.
1524 * collect2.c (collect_execute): Likewise.
1525 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
1526 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
1527 * coverage.c (coverage_checksum_string): Likewise.
1528 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
1529 * cselib.c (cselib_init): Likewise.
1530 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
1531 (df_set_clean_cfg): Likewise.
1532 * function.c (free_after_compilation): Likewise.
1533 * gcc.c (do_spec_1, main): Likewise.
1534 * gcov.c (create_file_names): Likewise.
1535 * gensupport.c (identify_predicable_attribute): Likewise.
1536 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
1537 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
1538 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
1539 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
1540 * ipa-pure-const.c (local_pure_const): Likewise.
1541 * ipa-reference.c (propagate): Likewise.
1542 * ira-costs.c (free_ira_costs): Likewise.
1543 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
1544 * matrix-reorg.c (mat_free): Likewise.
1545 * prefix.c (get_key_value): Likewise.
1546 * profile.c (compute_value_histograms): Likewise.
1547 * reload1.c (free_reg_equiv): Likewise.
1548 * sched-deps.c (free_deps): Likewise.
1549 * sel-sched-ir.c (fence_clear): Likewise.
1550 * sese.c (set_rename, if_region_set_false_region): Likewise.
1551 * tree-data-ref.c (free_rdg): Likewise.
1552 * tree-eh.c (lower_try_finally): Likewise.
1553 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
1554 * tree-ssa-live.c (delete_var_map): Likewise.
1555 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
1556 * tree-ssa-pre.c (phi_trans_add): Likewise.
1557
6788475a
JJ
15582011-04-20 Jakub Jelinek <jakub@redhat.com>
1559
1560 PR tree-optimization/48611
1561 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
1562 beyond ERT_MUST_NOT_THROW region.
1563
0eda4033
CM
15642011-04-20 Catherine Moore <clm@codesourcery.com>
1565
1566 * config/mips/mips.opt (mfix-24k): New.
1567 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
1568 * config/mips/mips.md (length): Increase by 4 for stores if
1569 fixing 24K errata.
1570 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
1571 all noreorder if fixing 24K errata.
1572 * doc/invoke.texi: Document mfix-24k.
1573
01475747
CLT
15742011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
1575
1576 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 1577 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 1578
bc2c1a60
AS
15792011-04-20 Andrew Stubbs <ams@codesourcery.com>
1580
1581 * config/arm/arm.c (arm_gen_constant): Move movw support ....
1582 (const_ok_for_op): ... to here.
1583
583722ee
KT
15842011-04-20 Kai Tietz <ktietz@redhat.com>
1585
2894086e
UB
1586 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
1587 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 1588
422c0989
AS
15892011-04-20 Andrew Stubbs <ams@codesourcery.com>
1590
1591 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
1592
d7978bff
RG
15932011-04-20 Richard Guenther <rguenther@suse.de>
1594
1595 PR tree-optimization/47892
1596 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
1597 are if-convertible.
1598
818412ba
EB
15992011-04-20 Eric Botcazou <ebotcazou@adacore.com>
1600
1601 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
1602
b501ce4e
TG
16032011-04-20 Tristan Gingold <gingold@adacore.com>
1604
1605 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
1606
516edfdd
GJL
16072011-04-20 Georg-Johann Lay <avr@gjlay.de>
1608
1609 PR target/18145
1610
1611 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
1612 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1613 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1614 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1615 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
1616
1617 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
1618 New prototype.
1619
1620 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
1621 (avr_asm_named_section, avr_asm_output_aligned_common,
1622 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
1623 New functions to update...
1624 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
1625 (avr_asm_init_sections): Overwrite section callbacks for
1626 data_section, bss_section.
1627 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
1628 from here to...
1629 (avr_file_end): ...here.
1630
dafc9511
RG
16312011-04-20 Richard Guenther <rguenther@suse.de>
1632
1633 PR middle-end/48695
1634 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 1635 objects and types here. Adjust for their offset before comparing.
dafc9511 1636
1da0876c
RS
16372011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
1638
1639 * tree-vect-stmts.c (vectorizable_store): Only chain one related
1640 statement per copy.
1641
25583c4f
RS
16422011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
1643
1644 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
1645 (GIMPLE_H): Include $(INTERNAL_FN_H).
1646 (OBJS-common): Add internal-fn.o.
1647 (internal-fn.o): New rule.
1648 * internal-fn.def: New file.
1649 * internal-fn.h: Likewise.
1650 * internal-fn.c: Likewise.
1651 * gimple.h: Include internal-fn.h.
1652 (GF_CALL_INTERNAL): New gf_mask.
1653 (gimple_statement_call): Put fntype into a union with a new
1654 internal_fn field.
1655 (gimple_build_call_internal): Declare.
1656 (gimple_build_call_internal_vec): Likewise.
1657 (gimple_call_same_target_p): Likewise.
1658 (gimple_call_internal_p): New function.
1659 (gimple_call_internal_fn): Likewise.
1660 (gimple_call_fntype): Return null for internal calls.
1661 (gimple_call_set_fntype): Assert that the function is not internal.
1662 (gimple_call_set_fn): Likewise.
1663 (gimple_call_set_fndecl): Likewise.
1664 (gimple_call_set_internal_fn): New function.
1665 (gimple_call_addr_fndecl): Handle null functions.
1666 (gimple_call_return_type): Likewise null types.
1667 * gimple.c (gimple_build_call_internal_1): New function.
1668 (gimple_build_call_internal): Likewise.
1669 (gimple_build_call_internal_vec): Likewise.
1670 (gimple_call_same_target_p): Likewise.
1671 (gimple_call_flags): Handle calls to internal functions.
1672 (gimple_call_fnspec): New function.
1673 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
1674 (gimple_has_side_effects): Handle null functions.
1675 (gimple_rhs_has_side_effects): Likewise.
1676 (gimple_call_copy_skip_args): Handle calls to internal functions.
1677 * cfgexpand.c (expand_call_stmt): Likewise.
1678 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
1679 * gimple-fold.c (gimple_fold_call): Handle null functions.
1680 (gimple_fold_stmt_to_constant_1): Don't fold
1681 calls to internal functions.
1682 * gimple-low.c (gimple_check_call_args): Handle calls to internal
1683 functions.
1684 * gimple-pretty-print.c (dump_gimple_call): Likewise.
1685 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
1686 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
1687 (do_warn_unused_result): Likewise.
1688 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
1689 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
1690 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
1691 the target of a call.
1692 (initialize_hash_element): Update accordingly.
1693 (hashable_expr_equal_p): Use gimple_call_same_target_p.
1694 (iterative_hash_hashable_expr): Handle calls to internal functions.
1695 (print_expr_hash_elt): Likewise.
1696 * tree-ssa-pre.c (can_value_number_call): Likewise.
1697 (eliminate): Handle null functions.
1698 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
1699 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
1700 (find_func_aliases): Likewise.
1701 * value-prof.c (gimple_ic_transform): Likewise.
1702 (gimple_indirect_call_to_profile): Likewise.
1703 * lto-streamer-in.c (input_gimple_stmt): Likewise.
1704 * lto-streamer-out.c (output_gimple_stmt): Likewise.
1705
1a3118e9
JH
17062011-04-19 Jan Hubicka <jh@suse.cz>
1707
1708 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
1709 * ipa-inline.c (inline_small_functions): Compute summaries first,
1710 populate heap later.
1a3118e9 1711
fee8b6da
JH
17122011-04-19 Jan Hubicka <jh@suse.cz>
1713
1714 * cgraph.h (save_inline_function_body): Remove.
1715 * ipa-inline-transform.c: New file, broke out of...
1716 * ipa-inline.c: ... this one; Update toplevel comment.
1717 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
1718 make global.
1719 (update_noncloned_frequencies): Move to ipa-inline-transform.c
1720 (cgraph_mark_inline_edge): Rename to inline_call; move to
1721 ipa-inline-transform.c.
1722 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
1723 move to ipa-inline-transform.c
1724 (recursive_inlining, inline_small_functions, flatten_function,
1725 ipa_inline, inline_always_inline_functions,
1726 early_inline_small_functions): Update.
1727 (inline_transform): Move to ipa-inline-transform.c.
1728 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
1729 Declare.
1730 * Makefile.in (ipa-inline-transform.o): New file.
1731 * cgraphunit.c (save_inline_function_body): Move to
1732 ipa-inline-transform.c
1733
f0679612
DD
17342011-04-19 DJ Delorie <dj@redhat.com>
1735
1736 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
1737 registers if we already know there aren't any.
1738 (m32c_emit_epilogue): Don't emit a barrier here.
1739 (m32c_emit_eh_epilogue): Likewise.
1740 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
1741 operands at expand time.
1742 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
1743 int" wchar type.
1744 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
1745 duplicates. Provide aliases instead.
1746 * config/m32c/prologue.md (eh_return): Emit a barrier here.
1747 (eh_epilogue): Add a "(return)" here as a hint to other parts of
1748 the compiler.
1749
32257ddc
AS
17502011-04-19 Anatoly Sokolov <aesok@post.ru>
1751
1752 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
1753 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
1754 (general_or_i64_p, sparc_register_move_cost): New function.
1755
60bea929
RO
17562011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1757
1758 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 1759 Add lynx, mipssde. Sort table.
60bea929 1760
444b3995 17612011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 1762
9d12f71a
EB
1763 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
1764 not negative.
444b3995 1765
d708ce50
JJ
17662011-04-19 Jakub Jelinek <jakub@redhat.com>
1767
1768 PR target/48678
1769 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
1770 is a SUBREG with non-MODE_INT mode inside of it.
1771
49c471e3
MJ
17722011-04-19 Martin Jambor <mjambor@suse.cz>
1773
1774 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
1775 also according to actual contants.
1776 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
1777 (gimple_fold_call): Use it.
1778 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
1779
0004f992
MJ
17802011-04-19 Martin Jambor <mjambor@suse.cz>
1781
1782 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
1783 non-pointer assignments.
1784
40591473
MJ
17852011-04-19 Martin Jambor <mjambor@suse.cz>
1786
1787 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
1788 account anc_offset and otr_type from the indirect edge info.
1789 * ipa-prop.c (get_ancestor_addr_info): New function.
1790 (compute_complex_ancestor_jump_func): Assignment analysis moved to
1791 get_ancestor_addr_info, call it.
1792 (ipa_note_param_call): Do not initialize information about polymorphic
1793 calls, return the indirect call graph edge. Remove the last
1794 parameter, adjust all callers.
1795 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
1796 parameters. Initialize polymorphic information in the indirect edge.
1797
abe36b81
EB
17982011-04-19 Eric Botcazou <ebotcazou@adacore.com>
1799
1800 PR lto/48148
1801 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
1802 the types if they have different enumeration identifiers.
1803
e6416b30
JH
18042011-04-19 Jan Hubicka <jh@suse.cz>
1805
1806 * cgraph.h (cgraph_optimize_for_size_p): Declare.
1807 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
1808 * predict.c (cgraph_optimize_for_size_p): Break out from ...
1809 (optimize_function_for_size_p) ... here.
1810
d39132ea
RG
18112011-04-19 Richard Guenther <rguenther@suse.de>
1812
1813 PR lto/48207
1814 * tree.c (free_lang_data): Do not reset the decl-assembler-name
1815 langhook.
1816
ff7037dc
EB
18172011-04-19 Eric Botcazou <ebotcazou@adacore.com>
1818
1819 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
1820 if DECL_NO_INLINE_WARNING_P is set on the function.
1821
c1ee2892
BS
18222011-04-19 Bernd Schmidt <bernds@codesourcery.com>
1823
1824 PR fortran/47976
1825 * reload1.c (inc_for_reload): Return void. All callers changed.
1826 (emit_input_reload_insns): Don't try to delete previous output
1827 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
1828
18292011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
1830
1831 * gengtype.h: Updated copyright year.
1832 (struct input_file_st): Add inpisplugin field.
1833 (type_fileloc): New function.
1834 * gengtype.c
1835 (write_typed_struct_alloc_def): Add gcc_assert.
1836 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
1837 (write_typed_alloc_defns): Don't output for plugin files.
1838 (input_file_by_name): Clear inpisplugin field.
1839 (main): Set inpisplugin field for plugin files.
1840
897e0a89
NP
18412011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
1842
1843 * gengtype-state.c (string_eq): New.
1844 (read_state): Use string_eq instead of strcmp when creating the
1845 state_ident_tab.
1846
363ee90e
WG
18472011-04-19 Wei Guozhi <carrot@google.com>
1848
1849 PR target/47855
1850 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
1851 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
1852 linkage.
1853 * config/arm/constraints.md (Uu): New constraint.
1854 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
1855
18a24fed
TG
18562011-04-19 Tristan Gingold <gingold@adacore.com>
1857
1858 * config.gcc (-*-*-*vms): Added.
1859 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
1860 definitions moved.
1861 * config/vms/vms-ld.c: New file.
1862 * config/vms/vms-ar.c: New file.
1863 * config/vms/t-vmsnative: New file.
1864
1c13f168
XDL
18652011-04-18 Xinliang David Li <davidxl@google.com>
1866
1867 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
1868
84825707
JJ
18692011-04-18 Jakub Jelinek <jakub@redhat.com>
1870
1871 PR middle-end/48661
1872 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
1873 if TREE_TYPE (v) is non-NULL.
1874
1875 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
1876 gimple_get_virt_mehtod_for_binfo.
1877 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
1878 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
1879 callers.
1880 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1881
7d4f8d02 18822011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
1883 Steve Ellcey <sje@cup.hp.com>
1884
7d4f8d02
EB
1885 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
1886 use its mode as source mode if it isn't VOIDmode.
7254cb57 1887
474e8e70
DCR
18882011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
1889
1890 * doc/passes.texi: Fill crossref nodes.
1891
cff41484
JM
18922011-04-18 Jim Meyering <meyering@redhat.com>
1893
7d4f8d02 1894 Fix doubled-word typos in comments and strings
cff41484
JM
1895 * config/alpha/vms-unwind.h: s/for for/for/
1896 * config/arm/unwind-arm.h: Likewise.
1897 * config/microblaze/microblaze.c: Likewise.
1898 * config/sh/constraints.md: s/in in/in/
1899 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
1900
f60c2554
UB
19012011-04-18 Uros Bizjak <ubizjak@gmail.com>
1902
1903 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
1904 (AVX_FLOAT_MODE_P): Ditto.
1905 (AVX128_VEC_FLOAT_MODE_P): Ditto.
1906 (AVX256_VEC_FLOAT_MODE_P): Ditto.
1907 (AVX_VEC_FLOAT_MODE_P): Ditto.
1908 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
1909 (UNSPEC_MASKSTORE): Ditto.
1910 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
1911 Merge from <sse>_movmsk<ssemodesuffix> and
1912 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
1913 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
1914 iterator.
1915 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
1916 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
1917 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
1918
09a2806f
JH
19192011-04-18 Jan Hubicka <jh@suse.cz>
1920
8a8dccb2
JH
1921 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
1922
09a2806f
JH
1923 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
1924 (want_inline_function_called_once_p): Break out the logic from
1925 ipa_inline.
1926 (edge_badness): Ensure that profile is not misupdated.
1927 (lookup_recursive_calls): Prioritize by call frequencies.
1928 (inline_small_functions): Move program size estimates here;
1929 actually process whole queue even when unit growth has been
1930 met. (to properly compute inline_failed reasons and for the
f60c2554 1931 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
1932 (ipa_inline): Remove unit summary code; first inline hot calls
1933 of functions called once, cold calls next.
1934 (order, nnodes): Remove unused variables.
1935 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
1936 (GTFILES): Remove ipa-inline.c
1937 * sel-sched.c (fill_insns): Silence uninitialized var warning.
1938
3eea52ef
EB
19392011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1940
1941 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
1942
229a1c59 19432011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 1944 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
1945
1946 * arm.c (neon_builtin_type_bits): Remove.
1947 (typedef enum neon_builtin_mode): New.
1948 (T_MAX): Don't define.
1949 (typedef enum neon_builtin_datum): Remove bits, codes[],
1950 num_vars and base_fcode. Add mode, code and fcode.
1951 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
1952 VAR10): Change accordingly.
1953 (neon_builtin_data[]): Change accordingly
1954 (arm_init_neon_builtins): Change accordingly.
1955 (neon_builtin_compare): Remove.
1956 (locate_neon_builtin_icode): Remove.
1957 (arm_expand_neon_builtin): Change accordingly.
1958
1959 * arm.h (enum arm_builtins): Move to ...
1960 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
1961
1962 * arm.c (arm_builtin_decl): Declare.
1963 (TARGET_BUILTIN_DECL): Define.
1964 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
1965 (arm_builtin_decls[]): New.
1966 (arm_init_neon_builtins): Store builtin declarations in
1967 arm_builtin_decls[].
1968 (arm_init_tls_builtins): Likewise.
1969 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
1970 (arm_builtin_decl): New.
1971
75e802cc
RG
19722011-04-18 Richard Guenther <rguenther@suse.de>
1973
1974 * tree.c (upper_bound_in_type): Build properly canonicalized
1975 INTEGER_CSTs.
1976 (lower_bound_in_type): Likewise.
1977
3b45a007
RG
19782011-04-18 Richard Guenther <rguenther@suse.de>
1979
1980 * gimple.h (gimple_call_addr_fndecl): New function.
1981 (gimple_call_fndecl): Use it.
1982 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
1983 for direct calls.
1984 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
1985 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
1986
d25a79ea
RG
19872011-04-18 Richard Guenther <rguenther@suse.de>
1988
1989 PR middle-end/48650
1990 * tree.c (build_string): STRING_CST is now derived from tree_typed.
1991
7d5fc814
EB
19922011-04-18 Eric Botcazou <ebotcazou@adacore.com>
1993
1994 PR lto/48492
1995 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
1996 DECL_IN_CONSTANT_POOL without RTL.
1997
7e7cfcf6
UW
19982011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
1999 Ira Rosen <ira.rosen@linaro.org>
2000
2001 PR target/48252
2002 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2003 to match neon_vzip/vuzp/vtrn_internal.
2004 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2005 outputs explicitly dependent on both inputs.
2006 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2007
49eab32e
JJ
20082011-04-18 Jakub Jelinek <jakub@redhat.com>
2009
2010 PR tree-optimization/48616
2011 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2012 whether the shift is by scalar or vector based on whether all SLP
2013 scalar stmts have the same rhs.
2014
e54170f4
CLT
20152011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2016
2017 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2018 memory operands.
2019
b14ee6c9
RS
20202011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2021
2022 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2023 registers.
2024
10158cd3
JH
20252011-04-17 Jan Hubicka <jh@suse.cz>
2026
2027 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
2028 * cgrpahunit.c (cgraph_finalize_function): Do not set
2029 finalized_by_frontend.
10158cd3
JH
2030 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2031 finalized_by_frontend.
2032
2e9bb6ba
JH
20332011-04-17 Jan Hubicka <jh@suse.cz>
2034
2035 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2036 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2037 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
2038 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2039 method.
2e9bb6ba
JH
2040 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2041 gimple-fold.c
2042 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2043
beb628e1
EB
20442011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2045
2046 PR lto/48538
2047 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2048 is non-null before accessing it.
2049 (input_cgraph): Remove trailing spaces.
2050
3e2fdd24
RE
20512011-04-17 Revital Eres <revital.eres@linaro.org>
2052
2053 * params.def (sms-min-sc): New param flag.
2054 * modulo-sched.c (sms_schedule): Use it.
2055 * doc/invoke.texi (sms-min-sc): Document it.
2056
4c0f7679
JH
20572011-04-17 Jan Hubicka <jh@suse.cz>
2058
2059 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2060 present, also set gimple_call_set_cannot_inline.
2061 * ipa-inline.c: Update toplevel comment.
2062 (MAX_TIME): Remove.
2063 (cgraph_clone_inlined_nodes): Fix linebreaks.
2064 (cgraph_check_inline_limits): Restructure to ...
2065 (caller_growth_limits): ... this one; be more tolerant
2066 on growth in nested inline chains; add explanatory comment;
2067 fix stack accounting thinko introduced by previous patch.
2068 (cgraph_default_inline_p): Remove.
2069 (report_inline_failed_reason): New function.
2070 (can_inline_edge_p): New function.
2071 (can_early_inline_edge_p): New function.
2072 (leaf_node_p): Move upwards in file.
2073 (want_early_inline_function_p): New function.
2074 (want_inline_small_function_p): New function.
2075 (want_inline_self_recursive_call_p): New function.
2076 (cgraph_edge_badness): Rename to ...
2077 (edge_badness) ... this one; fix linebreaks.
2078 (update_edge_key): Update call of edge_baddness; add
2079 detailed dump about queue updates.
2080 (update_caller_keys): Use can_inline_edge_p and
2081 want_inline_small_function_p.
2082 (cgraph_decide_recursive_inlining): Rename to...
2083 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
2084 want_inline_self_recursive_call_p; simplify and remove no longer
2085 valid FIXME.
4c0f7679
JH
2086 (cgraph_set_inline_failed): Remove.
2087 (add_new_edges_to_heap): Use can_inline_edge_p and
2088 want_inline_small_function_p.
2089 (cgraph_decide_inlining_of_small_functions): Rename to ...
2090 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
2091 can/want predicates; cleanup debug ouput; work edges till fibheap
2092 is exhausted and do not stop once unit growth is reached; remove
2093 later loop processing remaining edges.
4c0f7679
JH
2094 (cgraph_flatten): Rename to ...
2095 (flatten_function): ... this one; use can_inline_edge_p
2096 and can_early_inline_edge_p predicates.
2097 (cgraph_decide_inlining): Rename to ...
2098 (ipa_inline): ... this one; remove unreachable nodes before
2099 inlining functions called once; simplify the pass.
2100 (cgraph_perform_always_inlining): Rename to ...
2101 (inline_always_inline_functions): ... this one; use
f60c2554 2102 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
2103 (cgraph_decide_inlining_incrementally): Rename to ...
2104 (early_inline_small_functions): ... this one; simplify
2105 using new predicates; cleanup; make dumps prettier.
2106 (cgraph_early_inlining): Rename to ...
2107 (early_inliner): newer inline regular functions into always-inlines;
2108 fix updating of call stmt summaries.
2109 (pass_early_inline): Update for new names.
2110 (inline_transform): Fix formating.
2111 (gate_cgraph_decide_inlining): Rename to ...
2112 (pass_ipa_inline): ... this one.
2113 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
2114 * ipa-inline-analysis.c (dump_inline_summary): Update.
2115 (compute_inline_parameters): Do not compute disregard_inline_limits;
2116 look for mismatching arguments.
2117 (estimate_growth): Fix handlig of non-trivial self recursion.
2118 (inline_read_summary): Do not read info->disregard_inline_limits.
2119 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
2120 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
2121 and move all checks into can_inline_edge_p predicate; re-enable code
2122 comparing optimization levels.
4c0f7679
JH
2123 (expand_call_inline): Do not test inline_forbidden_into_p.
2124 * Makefile.in (ipa-inline.o): Update arguments.
2125
54333b7c
RE
21262011-04-17 Revital Eres <revital.eres@linaro.org>
2127
2128 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
2129
42c2bf92
RE
21302011-04-17 Revital Eres <revital.eres@linaro.org>
2131
2132 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
2133
b183e9e0
MM
21342011-04-17 Michael Matz <matz@suse.de>
2135
2136 PR tree-optimization/48622
2137 PR lto/48645
2138 * ipa-inline-analysis.c (inline_read_summary): Read size/time
2139 in same order as they're written.
2140
b8a17fa2
JDA
21412011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2142
2143 * config/pa/predicates.md: Reorganize and simplify predicates.
2144 Eliminate duplicate code checks.
2145 (arith_operand): Rename to arith14_operand
2146 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
2147 * config/pa/pa.md: Use renamed operands.
2148 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
2149 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
2150 arith11_operand, adddi3_operand, indexed_memory_operand,
2151 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
2152 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
2153 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
2154 move_dest_operand, move_src_operand, prefetch_cc_operand,
2155 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
2156 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
2157 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
2158 div_operand, int5_operand, movb_comparison_operator,
2159 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
2160 arith_double_operand, ireg_operand, lhs_lshift_operand,
2161 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
2162 integer_store_memory_operand): Likewise.
2163 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
2164 (integer_store_memory_operand, read_only_operand,
2165 function_label_operand, borx_reg_operand,
2166 non_hard_reg_operand): Likewise.
2167 (eq_neq_comparison_operator): Delete unused operator.
2168 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
2169 function_label_operand.
2170 (emit_move_sequence): Likewise.
2171
8dfb9f16
UB
21722011-04-16 Uros Bizjak <ubizjak@gmail.com>
2173
2174 * config/i386/sse.md (sseunpackmode): New mode attribute.
2175 (ssepackmode): Ditto.
2176 (vec_pack_trunc_<mode>): Macroize expander from
2177 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
2178 (vec_unpacks_lo_<mode>): Macroize expander from
2179 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2180 (vec_unpacks_hi_<mode>): Macroize expander from
2181 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2182 (vec_unpacku_lo_<mode>): Macroize expander from
2183 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2184 (vec_unpacku_hi_<mode>): Macroize expander from
2185 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2186 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
2187 ix86_expand_sse4_unpack.
2188 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
2189
e7f23018
JH
21902011-04-16 Jan Hubicka <jh@suse.cz>
2191
2192 * cgraphbuild.c: Include ipa-inline.h.
2193 (reset_inline_failed): Use initialize_inline_failed.
2194 * cgraph.c: Include ipa-inline.h.
2195 (cgraph_create_node_1): Do not initialize estimated_growth.
2196 (initialize_inline_failed): More to ipa-inline-analysis.c
2197 (dump_cgraph_node): Do not dump inline flags.
2198 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
2199 and disregard_inline_limits flags.
2200 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
2201 time, size, estimated_growth.
8dfb9f16
UB
2202 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
2203 Update.
e7f23018
JH
2204 * cgraphunit.c (cgraph_decide_is_function_needed): Use
2205 DECL_DISREGARD_INLINE_LIMITS.
2206 (cgraph_analyze_function): Do not initialize
2207 node->local.disregard_inline_limits.
2208 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2209 inlinable, versionable and disregard_inline_limits.
2210 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
2211 cgraph_check_inline_limits, cgraph_default_inline_p,
2212 cgraph_edge_badness, update_caller_keys, update_callee_keys,
2213 add_new_edges_to_heap): Update.
2214 (cgraph_decide_inlining_of_small_function): Update; set
2215 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
2216 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
2217 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
2218 * ipa-inline.h (inline_summary): Add inlinable, versionable,
2219 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
2220 time, size and estimated_growth parameters.
e7f23018
JH
2221 (estimate_edge_growth): Update.
2222 (initialize_inline_failed): Declare.
2223 * ipa-split.c: Include ipa-inline.h
2224 (execute_split_functions): Update.
2225 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
2226 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
2227 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
2228 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
2229 estimated_growth to INT_MIN.
2230 (inline_node_duplication_hook): Likewise.
2231 (dump_inline_summary): Dump new fields.
2232 (compute_inline_parameters): Update.
2233 (estimate_edge_time, estimate_time_after_inlining,
2234 estimate_size_after_inlining, estimate_growth, inline_read_summary,
2235 inline_write_summary):
2236 (initialize_inline_failed): Move here from cgraph.c.
2237 * tree-sra.c: Include ipa-inline.h.
2238 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
2239 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
2240 ipa-inline.h.
e7f23018 2241
e81b8564
UB
22422011-04-16 Uros Bizjak <ubizjak@gmail.com>
2243
2244 * config/i386/sse.md (V16): New mode iterator.
2245 (VI1, VI8): Ditto.
2246 (AVXMODEQI, AVXMODEDI): Remove.
2247 (sse2, sse3): New mode attribute.
2248 (mov<mode>): Use V16 mode iterator.
2249 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
2250 (push<mode>1): Use V16 mode iterator.
2251 (movmisalign<mode>): Ditto.
2252 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2253 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
2254 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2255 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
2256 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
2257 avx_movdqu<avxmodesuffix>.
2258 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
2259 *avx_movdqu<avxmodesuffix>.
2260 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
2261 avx_lddqu<avxmodesuffix>.
2262 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
2263 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
2264 avx_movnt<AVXMODEDI:mode>.
2265 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
2266 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
2267
4743d438
BS
22682011-04-16 Bernd Schmidt <bernds@codesourcery.com>
2269
2270 PR target/48629
2271 * haifa-sched.c (prune_ready_list, schedule_block): Use
2272 sched_pressure_p rather than flag_sched_pressure.
2273
eb229cf4
PH
22742011-04-15 Pat Haugen <pthaugen@us.ibm.com>
2275
2276 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2277 cgraph_get_node instead of cgraph_get_create_node.
2278
2ba172e0
JJ
22792011-04-15 Jakub Jelinek <jakub@redhat.com>
2280
2281 * cfgexpand.c (expand_debug_expr): Use
2282 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
2283
63d2a353
MM
22842011-04-15 Michael Matz <matz@suse.de>
2285
2286 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
2287 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
2288 * function.c (gimplify_parameters): Ditto.
2289 * gimplify.c (gimplify_vla_decl): Ditto.
2290
2291 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
2292 (gimple_call_set_alloca_for_var): New inline function.
2293 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
2294 * gimple.c (gimple_build_call_from_tree): Remember
2295 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
2296 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
2297
2298 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
2299 calls if they were for VLA objects.
2300
dee74c34
MJ
23012011-04-15 Martin Jambor <mjambor@suse.cz>
2302
2303 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
2304 of ADR_EXPRs.
2305
8e5837bc
MJ
23062011-04-15 Martin Jambor <mjambor@suse.cz>
2307
2308 PR middle-end/48601
2309 * tree-emutls.c (lower_emutls_function_body): Call
2310 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
2311 result is non-NULL.
2312
0dc33c3c
NP
23132011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
2314
2315 * c-decl.c (detect_field_duplicates): Call
2316 objc_detect_field_duplicates instead of objc_get_interface_ivars.
2317
edcdea5b
NF
23182011-04-15 Nathan Froyd <froydnj@codesourcery.com>
2319
2320 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
2321 * gimple.c (gimple_asm_clobbers_memory_p): Define.
2322 * ipa-pure-const.c (check_stmt): Call it.
2323 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
2324
8456558d
RG
23252011-04-15 Richard Guenther <rguenther@suse.de>
2326
2327 PR tree-optimization/48290
2328 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
2329 Properly decide inhibiting propagation based on the valueized
2330 operand. Do loop-closed SSA form preserving here ...
2331 (init_copy_prop): ... not here.
2332
266446be
L
23332011-04-15 H.J. Lu <hongjiu.lu@intel.com>
2334
2335 PR target/48612
2336 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
2337 (*ieee_smax<mode>3): Likewise.
2338
17465c6e
AK
23392011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2340
2341 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
2342 Replace match_operand with match_dup for the third operand in
2343 these expanders.
2344
bce204e5
MK
23452011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2346
2347 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
2348 to track processing of conditionals. Update all callers.
2349 (try_combine, simplify_if_then_else): Update.
2350
3162fdf4
MK
23512011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2352
2353 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
2354 -fsched-pressure.
2355
79002a57 23562011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 2357
79002a57
GJL
2358 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
2359 instead of match_operand for operand 3.
2360
4fd3a105
RS
23612011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
2362
2363 * recog.h (insn_operand_data): Add an "allows_mem" field.
2364 * genoutput.c (output_operand_data): Initialize it.
2365 * optabs.c (maybe_legitimize_operand_same_code): New function.
2366 (maybe_legitimize_operand): Use it when matching the original
2367 op->value.
2368
ad19c4be
EB
23692011-04-15 Eric Botcazou <ebotcazou@adacore.com>
2370
2371 * gimplify.c: Fix issues in comments throughout.
2372 (voidify_wrapper_expr): Fix long line.
2373 (build_stack_save_restore): Likewise.
2374 (gimplify_loop_expr): Likewise.
2375 (gimplify_compound_lval): Likewise.
2376 (gimplify_init_ctor_eval): Likewise.
2377 (gimplify_modify_expr_rhs): Likewise.
2378 (omp_notice_threadprivate_variable): Likewise.
2379
b25aa0e8 23802011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 2381
b25aa0e8
EB
2382 * cfgexpand.c (expand_call_stmt): Convert the function type to the
2383 original one if this is not a builtin function.
e7925582 2384
09db7afe
JJ
23852011-04-14 Jakub Jelinek <jakub@redhat.com>
2386
2387 PR target/48605
2388 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
2389 offset it as needed based on top 2 bits in operands[3], change
2390 MEM mode to SFmode and mask those 2 bits away from operands[3].
2391
c59633d9
NP
23922011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2393
2394 * c-parser.c (c_parser_objc_protocol_definition): Updated for
2395 change from objc_declare_protocols() to objc_declare_protocol().
2396
5e60198b
UB
23972011-04-14 Uros Bizjak <ubizjak@gmail.com>
2398
2399 * config/i386/sse.md (sse4_1): New mode attribute.
2400 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
2401 avx_blend<ssemodesuffix><avxmodesuffix> and
2402 sse4_1_blend<ssemodesuffix> using VF mode iterator.
2403 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
2404 avx_blendv<ssemodesuffix><avxmodesuffix> and
2405 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
2406 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
2407 avx_dp<ssemodesuffix><avxmodesuffix> and
2408 sse4_1_dp<ssemodesuffix> using VF mode iterator.
2409 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
2410 (sse4_1_packusdw): Merge with *avx_packusdw.
2411 (sse4_1_pblendvb): Merge with *avx_pblendvb.
2412 (sse4_1_pblendw): Merge with *avx_pblendw.
2413 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
2414 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
2415 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
2416 VF mode iterator.
2417 (sse4_1_round<ssescalarmodesuffix>): Merge with
2418 *avx_round<ssescalarmodesuffix>.
2419 (aesenc): Merge with *avx_aesenc.
2420 (aesenclast): Merge with *avx_aesenclast.
2421 (aesdec): Merge with *avx_aesdec.
2422 (aesdeclast): Merge with *avx_aesdeclast.
2423 (pclmulqdq): Merge with *pclmulqdq.
2424 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
2425 New predicate.
2426 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2427
6f197850
L
24282011-04-14 H.J. Lu <hongjiu.lu@intel.com>
2429
2430 PR middle-end/48608
2431 * cfgexpand.c (get_decl_align_unit): Renamed to ...
2432 (align_local_variable): This. Update DECL_ALIGN.
2433 (add_stack_var): Updated.
2434 (expand_one_stack_var): Likewise.
2435
4a5ba3ed
RG
24362011-04-14 Richard Guenther <rguenther@suse.de>
2437
2438 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
2439 Remove.
2440 (dse_initialize_block_local_data, dse_leave_block,
2441 record_voperand_set, get_stmt_uid): Likewise.
2442 (dse_possible_dead_store_p): Allow any kind of killing stmt.
2443 (dse_optimize_stmt): Remove voperand set handling code.
2444 Simplify and improve to handle any kind of killing stmt.
2445 (dse_record_phi): Remove.
2446 (dse_enter_block): Simplify.
2447 (tree_ssa_dse): Likewise.
2448 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
2449
10a5dd5d
JH
24502011-04-14 Jan Hubicka <jh@suse.cz>
2451
2452 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
2453 * cgraph.h (struct inline_summary): Move to ipa-inline.h
2454 (cgraph_local_info): Remove inline_summary.
2455 * ipa-cp.c: Include ipa-inline.h.
2456 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
2457 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
2458 accesor.
2459 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
2460 (input_overwrite_node): Do not set inline summary.
2461 (input_node): Do not stream inline summary.
2462 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
2463 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
2464 growth; we do not have inline parameters computed for that anyway.
2465 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
2466 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
2467 (inline_summary_t): New type and VECtor.
2468 (debug_inline_summary, dump_inline_summaries): Declare.
2469 (inline_summary): Use VOCtor.
2470 (estimate_edge_growth): Kill hack computing call stmt size directly.
2471 * lto-section-in.c (lto_section_name): Add inline section.
2472 * ipa-inline-analysis.c: Include lto-streamer.h
2473 (node_removal_hook_holder, node_duplication_hook_holder): New holders
2474 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
2475 (inline_summary_vec): Define.
2476 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
2477 dump_inline_summaries): New functions.
5e60198b
UB
2478 (estimate_function_body_sizes): Properly compute size/time of outgoing
2479 calls.
2480 (compute_inline_parameters): Alloc inline_summary; do not compute
2481 size/time of incomming calls.
10a5dd5d
JH
2482 (estimate_edge_time): Avoid missing time summary hack.
2483 (inline_read_summary): Read inline summary info.
2484 (inline_write_summary): Write inline summary info.
2485 (inline_free_summary): Free all hooks and inline summary vector.
2486 * lto-streamer.h: Add LTO_section_inline_summary section.
2487 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
2488 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
2489
b602d918
RS
24902011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2491
2492 * tree-vectorizer.h (vect_strided_store_supported): Add a
2493 HOST_WIDE_INT argument.
2494 (vect_strided_load_supported): Likewise.
2495 (vect_permute_store_chain): Return void.
2496 (vect_transform_strided_load): Likewise.
2497 (vect_permute_load_chain): Delete.
2498 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
2499 count argument. Check that the count is a power of two.
2500 (vect_strided_load_supported): Likewise.
2501 (vect_permute_store_chain): Return void. Update after above changes.
2502 Assert that the access is supported.
2503 (vect_permute_load_chain): Likewise.
2504 (vect_transform_strided_load): Return void.
2505 * tree-vect-stmts.c (vectorizable_store): Update calls after
2506 above interface changes.
2507 (vectorizable_load): Likewise.
2508 (vect_analyze_stmt): Don't check for strided powers of two here.
2509
ab4472fa
RG
25102011-04-14 Richard Guenther <rguenther@suse.de>
2511
2512 PR tree-optimization/48590
2513 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2514 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2515 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
2516 BUILT_IN_STACK_SAVE.
2517 * tree-ssa-dce.c (propagate_necessity): Handle
2518 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2519
32dabdaf
NP
25202011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2521
2522 * c-parser.c (c_parser_objc_class_declaration): Updated call to
2523 objc_declare_class.
2524
daade206
RG
25252011-04-14 Richard Guenther <rguenther@suse.de>
2526
2527 * tree.h (get_object_alignment_1): Declare.
2528 * builtins.c (get_object_alignment_1): Split out worker from ...
2529 (get_object_alignment): ... here.
2530 * fold-const.c (get_pointer_modulus_and_residue): Use
2531 get_object_alignment_1.
2532
920e8172
RS
25332011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2534
2535 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
2536 type parameter.
2537 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
2538 parameter. Generalise code to handle arrays as well as vectors.
2539 (vect_setup_realignment): Update accordingly.
2540 * tree-vect-stmts.c (vectorizable_store): Likewise.
2541 (vectorizable_load): Likewise.
2542
5ce1ee7f
RS
25432011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2544
2545 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
2546 within the per-copy loop.
2547
6438fe33 25482011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
2549
2550 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
2551 in the dump file.
2552
6438fe33 25532011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
2554
2555 * doc/options.texi (Negative): Explicitly mention that the
2556 Negative chain must be circular.
2557
61e46a7d
NF
25582011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2559
2560 * function.h (block_chainon): Declare.
2561 * function.c (block_chainon): Define.
2562
43ea6502 25632011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b
UB
2564 Eric Weddington <eric.weddington@atmel.com>
2565 Georg-Johann Lay <avr@gjlay.de>
2566
f60c2554 2567 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
2568 New Includes
2569 (avr_init_builtins, avr_expand_builtin,
2570 avr_expand_delay_cycles, avr_expand_unop_builtin,
2571 avr_expand_binop_builtin ): New functions.
2572 (avr_builtin_id): New enum
2573 (struct avr_builtin_description): New struct
2574 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
2575 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 2576
43ea6502 2577 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 2578 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
2579 UNSPECV_DELAY_CYCLES): new enumeration values
2580 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
2581 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
2582 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
2583 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
2584 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
2585 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
2586 "fmulsu"): New insns
5e60198b 2587
43ea6502
AS
2588 * config/avr/avr-c.c: fix line endings
2589 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
2590 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
2591 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
2592 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
2593 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 2594
43ea6502
AS
2595 * doc/extend.texi (AVR Built-in Functions): New node
2596 (Target Builtins): Add documentation of AVR
2597 built-in functions.
2598
8a9b55f3
GJL
25992011-04-14 Georg-Johann Lay <avr@gjlay.de>
2600
2601 PR target/44643
2602 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
2603 alone. Error if non-const data has attribute progmem.
2604
94bd1825
NF
26052011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2606
2607 * tree.h (struct tree_constructor): Include tree_typed instead of
2608 tree_common.
2609 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
2610 TS_TYPED instead of TS_COMMON.
2611
5e60198b 26122011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
2613
2614 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
2615 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
2616 (sse2_psadbw): Merge with *avx_psadbw.
2617 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
2618 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
2619 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
2620 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
2621 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
2622 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
2623 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
2624 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
2625 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
2626 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
2627 (ssse3_palignrti): Merge with *avx_palignrti.
2628
4b1a4694
NF
26292011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2630
2631 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
2632 * tree-ssanames.c (fini_ssanames): VEC_free it.
2633 (make_ssa_name_fn): Update for VECness of free_ssanames.
2634 (release_ssa_name, release_dead_ssa_names): Likewise.
2635 * tree.h (struct tree_ssa_name): Include tree_typed instead of
2636 tree_common.
2637 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
2638 TS_TYPED instead of TS_COMMON.
2639
4da3b811
NF
26402011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2641
2642 * postreload-gcse.c (gcse_after_reload_main): Add calls to
2643 statistics_counter_event.
2644 * tree-ssa-copyrename.c (stats): Define.
2645 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
2646 statistics_counter_event.
2647 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
2648 (bswap_stats, widen_mul_stats): Define.
2649 (insert_reciprocals): Increment rdivs_inserted.
2650 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
2651 rfuncs_inserted. Add calls to statistics_counter_event.
2652 (execute_cse_sincos_1): Increment inserted.
2653 (execute_cse_sincos): Zeroize sincos_stats. Add call to
2654 statistics_counter_event.
2655 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
2656 of bswap_stats. Add calls to statistics_counter_event.
2657 (convert_mult_to_widen): Increment widen_mults_inserted.
2658 (convert_plusminus_to_widen): Increment maccs_inserted.
2659 (convert_mult_to_fma): Increment fmas_inserted.
2660 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
2661 calls to statistics_counter_event.
2662
89fa552a
VM
26632011-04-13 Vladimir Makarov <vmakarov@redhat.com>
2664
2665 PR rtl-optimization/48455
2666 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
2667 `temp_costs->mem_cost'.
2668
03dfc36d
JH
26692011-04-13 Jan Hubicka <jh@suse.cz>
2670
2671 * ipa-inline.h: New file.
2672 * ipa-inline-analysis.c: New file. Broken out of ...
2673 * ipa-inline.c: ... this file; update toplevel comment;
2674 include ipa-inline.h
2675 (inline_summary): Move to ipa-inline.h
2676 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
2677 ipa-inline-analysis.c.
7d4f8d02
EB
2678 (cgraph_estimate_time_after_inlining): Rename to
2679 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
2680 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
2681 to estimate_edge_growth.
2682 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
2683 rename to estimate_size_after_inlining.
2684 (cgraph_mark_inline_edge): Update for new naming convention.
2685 (cgraph_check_inline_limits): Likewise.
2686 (cgraph_edge_badness): Likewise.
2687 (cgraph_decide_recursive_inlining): Likewise.
2688 (cgraph_decide_inlining_of_small_functions): Likewise.
2689 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
2690 (cgraph_estimate_growth): Rename to estimate_growth; move to
2691 ipa-inline-analysis.c.
03dfc36d
JH
2692 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
2693 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
2694 (compute_inline_parameters): Likewise.
2695 (compute_inline_parameters_for_current): Likewise.
2696 (pass_inline_parameters): Likewise.
2697 (inline_indirect_intraprocedural_analysis): Likewise.
2698 (analyze_function): Rename to inline_analyze_function; likewise.
2699 (add_new_function): Move to ipa-inline-analysis.c.
2700 (inline_generate_summary): Likewise.
2701 (inline_read_summary): Likewise.
2702 (inline_write_summary): Likewise.
2703 * Makefile.in (ipa-inline-analysis.c): New file.
2704
7673c962
RO
27052011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2706
2707 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
2708 * configure: Regenerate.
2709
9698252f
NF
27102011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2711
2712 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
2713 instead of tree_common.
2714 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
2715 Likewise.
2716 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
2717 TS_TYPED rather than TS_COMMON.
2718 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
2719
3a7bfdd5
GJL
27202011-04-01 Georg-Johann Lay <avr@gjlay.de>
2721
2722 PR target/45263
86d83530
GJL
2723 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
2724 r20 around calls of __tablejump_elpm__
3a7bfdd5 2725
20790697
JJ
27262011-04-13 Jakub Jelinek <jakub@redhat.com>
2727
2728 PR middle-end/48591
2729 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
2730 NULL.
2731 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
2732
094d7661
BS
27332011-04-13 Bernd Schmidt <bernds@codesourcery.com>
2734
2735 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
2736 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
2737 (cfi_vec): New typedef.
2738 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
2739 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
2740 (cie_cfi_vec): New static variable.
2741 (cie_cfi_head): Delete.
2742 (add_cfi): Accept a cfi_vec * as first argument. All callers and
2743 declaration changed. Use vector rather than list operations.
2744 (new_cfi): Don't initialize the dw_cfi_next field.
2745 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
2746 rather than list operations.
2747 (lookup_cfa): Use vector rather than list operations.
2748 (output_cfis): New argument upto. Accept a cfi_vec rather than
2749 a dw_cfi_ref list head as argument. All callers changed.
2750 Iterate over the vector using upto as a maximum index.
2751 (output_all_cfis): New static function.
2752 (output_fde): Use vector rather than list operations. Use the
2753 new upto argument for output_cfis rather than manipulating a
2754 list.
2755 (dwarf2out_begin_prologue): Change initializations to match
2756 new struct members.
2757 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
2758 from the vector length rather than searching for the end of a list.
2759 Use output_all_cfis.
2760 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
2761
673a5740
NC
27622011-04-13 Nick Clifton <nickc@redhat.com>
2763
2764 * config/rx/rx.md (movmemsi): Do not use this pattern when
2765 volatile pointers are involved.
2766
1ee8b298
UB
27672011-04-13 Uros Bizjak <ubizjak@gmail.com>
2768
2769 * config/i386/sse.md (pinsrbits): Remove.
2770 (sse2_packsswb): Merge with *avx_packsswb.
2771 (sse2_packssdw): Merge with *avx_packssdw.
2772 (sse2_packuswb): Merge with *avx_packuswb.
2773 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
2774 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
2775 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
2776 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
2777 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
2778 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
2779 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
2780 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
2781 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
2782 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
2783 (sse2_loadld): Merge with *avx_loadld.
2784 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
2785 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
2786 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
2787 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
2788 (vec_concatv2di): Merge with *vec_concatv2di_avx.
2789
81f653d6
NF
27902011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2791
2792 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
2793 calling TREE_CHAIN.
2794 * print-tree.c (print_node): Likewise.
2795 * tree-inline.c (copy_tree_r): Likewise.
2796 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
2797 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
2798 instead of TS_COMMON.
2799 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
2800 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
2801 (copy_node_stat): Zero TREE_CHAIN only if necessary.
2802 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
2803 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
2804 ...and these...
2805 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
2806 * tree.h: ...here.
2807 (TREE_CHAIN): Check for a TS_COMMON structure.
2808 (TREE_TYPE): Check for a TS_TYPED structure.
2809
ed940a4a
PH
28102011-04-12 Pat Haugen <pthaugen@us.ibm.com>
2811
2812 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2813 cgraph_get_create_node instead of cgraph_node.
2814
eb345401
NP
28152011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
2816
2817 * c-parser.c (c_parser_initelt): Updated call to
2818 objc_build_message_expr.
2819 (c_parser_postfix_expression): Likewise.
2820
a6c46762
KT
28212011-04-12 Kai Tietz <ktietz@redhat.com>
2822
2823 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
2824 MASK_MS_BITFIELD_LAYOUT bit.
2825
b4ccfed9
JJ
28262011-04-12 Jakub Jelinek <jakub@redhat.com>
2827
2828 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
2829 assert it is always true.
2830 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
2831 moves.
2832
0d8a2528
NP
28332011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
2834
2835 * c-parser.c (c_lex_one_token): Rewritten conditional used when
2836 compiling Objective-C to be more efficient.
2837
06bd234a
AF
28382011-04-12 Axel Freyn <axel-freyn@gmx.de>
2839
2840 * opts-common.c (decode_cmdline_options_to_array): Remove variable
2841 argv_copied.
2842
28569ac3
RS
28432011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2844
2845 * recog.h, genoutput.c, optabs.c: Revert last patch.
2846
ae59e00d
RR
28472011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2848
81b1e7eb
UB
2849 PR target/48090
2850 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 2851
cff1b7e0
RS
28522011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2853
2854 * recog.h (insn_operand_data): Add an "allows_mem" field.
2855 * genoutput.c (output_operand_data): Initialize it.
2856 * optabs.c (maybe_legitimize_operand_same_code): New function.
2857 (maybe_legitimize_operand): Use it when matching the original
2858 op->value.
2859
77059241
RS
28602011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2861
2862 * genpreds.c (process_define_predicate): Move most processing
2863 to gensupport.c. Continue to validate the expression.
2864 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
2865 (process_define_predicate): Move processing to gensupport.c.
2866 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
2867 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
2868 (compute_predicate_codes): Moved from genrecog.c. Add lineno
2869 argument.
2870 (valid_predicate_name_p): New function, split out from old
2871 genpreds.c:process_define_predicate.
2872 (process_define_predicate): New function, combining code from
2873 old genpreds.c and genrecog.c functions.
2874 (process_rtx): Call it for DEFINE_PREDICATE and
2875 DEFINE_SPECIAL_PREDICATE.
2876
6308e208
RS
28772011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
2878
2879 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
2880 size of a '%A' memory reference.
2881 (T_DREG, T_QREG): New neon_builtin_type_bits.
2882 (arm_init_neon_builtins): Assert that the load and store operands
2883 are neon_struct_operands.
2884 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
2885 (NEON_ARG_MEMORY): New builtin_arg.
2886 (neon_dereference_pointer): New function.
2887 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
2888 Handle NEON_ARG_MEMORY.
2889 (arm_expand_neon_builtin): Update after above interface changes.
2890 Use NEON_ARG_MEMORY for loads and stores.
2891 * config/arm/predicates.md (neon_struct_operand): New predicate.
2892 * config/arm/iterators.md (V_two_elem): Tweak formatting.
2893 (V_three_elem): Use BLKmode for accesses that have no associated mode.
2894 (V_four_elem): Tweak formatting.
2895 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
2896 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
2897 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
2898 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
2899 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
2900 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
2901 (neon_vst4<mode>): Replace pointer operand with a memory operand.
2902 Use %A in the output template.
2903 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
2904 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
2905 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
2906 the width of the memory access. Remove post-increment.
2907 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
2908
e5db8f2f
NC
29092011-04-12 Nick Clifton <nickc@redhat.com>
2910
2911 * config/v850/v850.c (expand_prologue): Do not use the CALLT
2912 instruction for interrupt handlers if the target is the basic V850
2913 architecture.
2914 (expand_epilogue): Likewise.
2915
74f091d6
JJ
29162011-04-12 Jakub Jelinek <jakub@redhat.com>
2917
2918 PR rtl-optimization/48549
2919 * combine.c (propagate_for_debug): Also stop after BB_END of
2920 this_basic_block. Process LAST and just stop processing after it.
2921 (combine_instructions): If last_combined_insn has been deleted,
2922 set last_combined_insn to its PREV_INSN.
2923
f20ca725
RG
29242011-04-12 Richard Guenther <rguenther@suse.de>
2925
2926 PR tree-optimization/46076
2927 * gimple.h (struct gimple_statement_call): Add fntype field.
2928 (gimple_call_fntype): Adjust.
2929 (gimple_call_set_fntype): New function.
2930 * gimple.c (gimple_build_call_1): Set the call function type.
2931 * gimplify.c (gimplify_call_expr): Preserve the function
2932 type the frontend used for the call.
2933 (gimplify_modify_expr): Likewise.
2934 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
2935 function type.
2936 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
2937 function type.
2938 * tree-ssa.c (useless_type_conversion_p): Function pointer
2939 conversions are useless.
2940
a358e188
MJ
29412011-04-12 Martin Jambor <mjambor@suse.cz>
2942
2943 * cgraph.h (cgraph_node): Remove function declaration.
2944 (cgraph_create_node): Declare.
2945 (cgraph_get_create_node): Likewise.
2946 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
2947 Updated all callers.
2948 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
2949 the decl does not already exist. Call cgraph_get_create_node instead
2950 of cgraph_node.
2951 (cgraph_get_create_node): New function.
2952 (cgraph_same_body_alias): Update comment.
2953 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
2954 assert it does not return NULL.
2955 (cgraph_update_edges_for_call_stmt): Likewise.
2956 (cgraph_clone_edge): Likewise.
2957 (cgraph_create_virtual_clone): Likewise.
2958 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
2959 instead of cgraph_node.
2960 (cgraph_add_new_function): Call cgraph_create_node or
2961 cgraph_get_create_node instead of cgraph_node.
2962 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
2963 instead of cgraph_node.
2964 (record_eh_tables): Likewise.
2965 (mark_address): Likewise.
2966 (mark_load): Likewise.
2967 (build_cgraph_edges): Call cgraph_get_create_node instead
2968 of cgraph_node.
2969 (rebuild_cgraph_edges): Likewise.
2970 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
2971 instead of cgraph_node.
2972 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
2973 cgraph_node.
2974 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
2975 cgraph_create_node instead of cgraph_node.
2976 * c-decl.c (finish_function): Call cgraph_get_create_node instead
2977 of cgraph_node.
2978 * lto-cgraph.c (input_node): Likewise.
2979 * lto-streamer-in.c (input_function): Likewise.
2980 * varasm.c (mark_decl_referenced): Likewise.
2981 (assemble_alias): Likewise.
2982
fe660d7b
MJ
29832011-04-12 Martin Jambor <mjambor@suse.cz>
2984
2985 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
2986 instead of cgraph_node and assert it does not return NULL.
2987 * lto-streamer-in.c (lto_read_body): Likewise.
2988 * omp-low.c (new_omp_context): Likewise.
2989 (create_task_copyfn): Likewise.
2990 * tree-emutls.c (lower_emutls_function_body): Likewise.
2991 * matrix-reorg.c (transform_allocation_sites): Likewise.
2992
bae5cddf
JJ
29932011-04-12 Jakub Jelinek <jakub@redhat.com>
2994
2995 PR c/48552
2996 * c-typeck.c (build_asm_expr): Error out on attempts to use
2997 void type outputs or inputs for constraints that allow reg or
2998 don't allow memory.
2999
06eb52ca
CLT
30002011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
3001 Richard Earnshaw <rearnsha@arm.com>
3002
3003 PR target/48250
3004 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3005 to use sign-magnitude offsets. Reject unsupported unaligned
3006 cases. Add detailed description in comments.
3007 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3008 condition from TARGET_32BIT to TARGET_ARM.
3009
648a616b
NF
30102011-04-11 Nathan Froyd <froydnj@codesourcery.com>
3011
3012 * tree.h (struct typed_tree): New.
3013 (struct tree_common): Include it instead of tree_base.
3014 (TREE_TYPE): Update for new location of type field.
3015 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3016 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3017 (union tree_node): Add typed field.
3018 * treestruct.def (TS_TYPED): New.
3019 * lto-streamer.c (check_handled_ts_structures): Handle it.
3020 * tree.c (MARK_TS_TYPED): New macro.
3021 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3022
1e6d1da0
EB
30232011-04-11 Eric Botcazou <ebotcazou@adacore.com>
3024
3025 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3026 (force_nonfallthru): Do not alter the loop nest if no basic block
3027 was created.
3028
30292011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
3030
3031 * config/i386/sse.md (VI): New mode iterator.
3032 (SSEMODEI): Remove.
3033 (AVX256MODEI): Ditto.
3034 (AVXMODEF4P): Ditto.
3035 (avxvecpsmode): Ditto.
3036 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
3037 (sse2_andnot<mode>3): New expander.
3038 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3039 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
3040 (<any_logic:code><mode>3): Use VI mode iterator.
3041 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3042 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
3043 (*andnottf3): Handle AVX three-operand constraints.
3044 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3045
b1372d5d 30462011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 3047 Robert Millan <rmh@gnu.org>
b1372d5d
JM
3048
3049 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3050 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3051 GNU_USER_DYNAMIC_LINKER64): Define.
3052 (REG_NAME): Don't undefine.
3053 (MD_UNWIND_SUPPORT): Undefine.
3054 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3055 (REG_NAME): Don't undefine.
3056 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 3057 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 3058
761c0c6e
JM
30592011-04-11 Joseph Myers <joseph@codesourcery.com>
3060
3061 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3062 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3063
26e0228f
XDL
30642011-04-11 Xinliang David Li <davidxl@google.com>
3065
3066 * value-profile.c (check_ic_target): New function.
3067 (gimple_ic_transform): Sanity check indirect call target.
3068 * gimple-low.c (gimple_check_call_args): Interface change.
3069 (gimple_check_call_matching_types): New function.
3070 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
3071
30722011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
3073
3074 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
3075 tree-pretty-print.h & realmpfr.h.
3076
a58dfa49
VM
30772011-04-11 Vladimir Makarov <vmakarov@redhat.com>
3078
3079 PR middle-end/48464
3080 * ira.c (setup_pressure_classes): Fix typo in loop condition.
3081 (setup_allocno_and_important_classes): Ditto.
3082
107fd1c1
JM
30832011-04-11 Joseph Myers <joseph@codesourcery.com>
3084
3085 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
3086 GNU_USER_DYNAMIC_LINKER.
3087 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
3088 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3089 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
3090 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3091 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3092 GNU_USER_TARGET_OS_CPP_BUILTINS.
3093 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
3094 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3095 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3096 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3097 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
3098 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3099 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3100 GNU_USER_TARGET_OS_CPP_BUILTINS.
3101 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3102 GNU_USER_DYNAMIC_LINKER.
3103 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3104 GNU_USER_TARGET_OS_CPP_BUILTINS.
3105 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
3106 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3107 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
3108 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3109 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
3110 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
3111 GNU_USER_DYNAMIC_LINKER64): Remove.
3112 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
3113 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3114 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3115 GNU_USER_DYNAMIC_LINKER.
3116 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3117 GNU_USER_TARGET_OS_CPP_BUILTINS.
3118 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3119 GNU_USER_TARGET_OS_CPP_BUILTINS.
3120 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
3121 to GNU_USER_TARGET_OS_CPP_BUILTINS.
3122 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3123 GNU_USER_TARGET_OS_CPP_BUILTINS.
3124 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
3125 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
3126 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3127 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
3128 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3129 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3130 GNU_USER_DYNAMIC_LINKER.
3131 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3132 GNU_USER_TARGET_OS_CPP_BUILTINS.
3133 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
3134 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3135 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3136 GNU_USER_DYNAMIC_LINKER.
3137 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3138 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3139 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
3140 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3141 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3142 GNU_USER_DYNAMIC_LINKER.
3143 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
3144 GNU_USER_DYNAMIC_LINKERN32.
3145 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
3146 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
3147 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
3148 GNU_USER_DYNAMIC_LINKER32.
3149 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
3150 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3151 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3152 GNU_USER_DYNAMIC_LINKER.
3153 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3154 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3155 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
3156 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3157 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
3158 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
3159 GNU_USER_DYNAMIC_LINKER32.
3160 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3161 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
3162 GNU_USER_DYNAMIC_LINKER.
3163 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
3164 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3165 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3166 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
3167 GNU_USER_DYNAMIC_LINKER64.
3168 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
3169 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3170 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3171 GNU_USER_DYNAMIC_LINKER.
3172 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
3173 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3174 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3175 GNU_USER_DYNAMIC_LINKER.
3176 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
3177 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3178 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3179 GNU_USER_DYNAMIC_LINKER32.
3180 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3181 GNU_USER_DYNAMIC_LINKER64.
3182 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3183 GNU_USER_DYNAMIC_LINKER64.
3184 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
3185 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3186 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
3187 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3188 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 3189
e24609cf
JM
31902011-04-11 Joseph Myers <joseph@codesourcery.com>
3191
3192 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
3193 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
3194 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
3195 GNU_USER_DYNAMIC_LINKER.
3196 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3197 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
3198 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
3199 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
3200 GNU_USER_DYNAMIC_LINKER64.
3201 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3202 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
3203 GNU_USER_LINK_EMULATION.
3204 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
3205 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
3206 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
3207 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
3208 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
3209 CPP_SPEC, CC1_SPEC): Remove.
3210 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
3211 (GNU_USER_DYNAMIC_LINKER): Define.
3212 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
3213 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
3214 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
3215 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
3216 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
3217 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
3218 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3219 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
3220 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
3221 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
3222 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
3223 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
3224 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
3225 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
3226 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
3227 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3228 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3229 GNU_USER_DYNAMIC_LINKER.
3230 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3231 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3232 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3233 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3234 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3235 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3236 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
3237 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
3238 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 3239 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 3240
b8ce4e94
KT
32412011-04-11 Kai Tietz <ktietz@redhat.com>
3242
3243 PR target/9601
3244 PR target/11772
3245 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
3246 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
3247 comment.
3248 (ix86_is_msabi_thiscall): Removed.
3249 (ix86_is_type_thiscall): Likewise.
3250 (ix86_get_callcvt): New function.
3251 (ix86_comp_type_attributes): Simplify check.
3252 (ix86_function_regparm): Use ix86_get_callcvt for calling
3253 convention attribute checks.
3254 (ix86_return_pops_args): Likewise.
3255 (ix86_static_chain): Likewise.
3256 (x86_this_parameter): Likewise.
3257 (x86_output_mi_thunk): Likewise.
3258 (ix86_function_type_abi): Optimize check for types without attributes.
3259 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
3260 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
3261 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
3262 by flag-values.
3263 (IX86_BASE_CALLCVT): Helper macro.
3264 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3265 Use ix86_get_callcvt for calling convention attribute checks and avoid
3266 symbol-decoration for stdcall in TARGET_RTD case.
3267 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3268 Likewise.
3269 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
3270 for declaration.
3271
798dd0ba
UB
32722011-04-11 Uros Bizjak <ubizjak@gmail.com>
3273
3274 * config/i386/sse.md (VI_128): New mode iterator.
3275 (VI12_128): Rename from SSEMODE12.
3276 (VI14_128): Rename from SSEMODE14.
3277 (VI124_128): New mode iterator.
3278 (VI24_128): Rename from SSEMODE248.
3279 (VI248_128): Rename from SSEMODE248.
3280 (SSEMODE124C8): Remove.
3281 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3282 (*sse2_<plusminus_insn><mode>3): Merge with
3283 *avx_<plusminus_insn><mode>3.
3284 (*mulv8hi3): Merge with *avx_mulv8hi3.
3285 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
3286 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
3287 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
3288 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
3289 (ashr<mode>3): Merge with *avx_ashr<mode>3.
3290 (lshr<mode>3): Merge with *avx_lshr<mode>3.
3291 (ashl<mode>3): Merge with *avx_ashl<mode>3.
3292 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
3293 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
3294 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3295 (*<smaxmin:code>v8hi3): Ditto.
3296 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
3297 (*<smaxmin:code>v16qi3): Ditto.
3298 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
3299 (*sse2_eq<mode>3): Ditto.
3300 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
3301 (*sse2_gt<mode>3): Ditto.
3302 (vcondv2di): Split out of vcond<mode>.
3303 (vconduv2di): Split out of vcondu<mode>.
3304
956011be
RG
33052011-04-11 Richard Guenther <rguenther@suse.de>
3306
3307 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
3308 before calling tree_low_cst.
3309
e6313a78
RG
33102011-04-11 Richard Guenther <rguenther@suse.de>
3311
3312 * stor-layout.c (layout_type): Compute all array index size operations
3313 in the original type.
3314 (initialize_sizetypes): Add comment.
3315 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
3316
e69d7376
JM
33172011-04-11 Joseph Myers <joseph@codesourcery.com>
3318
3319 * common.opt (Tbss=, Tdata=, Ttext=): New options.
3320
9f9ebcdf
MJ
33212011-04-11 Martin Jambor <mjambor@suse.cz>
3322
3323 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
3324 of cgraph_node, handle NULL return value.
3325 (cgraph_global_info): Likewise.
3326 (cgraph_rtl_info): Likewise.
3327 * tree-inline.c (estimate_num_insns): Likewise.
3328 * gimplify.c (unshare_body): Likewise.
3329 (unvisit_body): Likewise.
3330 (gimplify_body): Likewise.
3331 * predict.c (optimize_function_for_size_p): Likewise.
3332 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
3333 (call_may_clobber_ref_p_1): Likewise.
3334 * varasm.c (function_section_1): Likewise.
3335 (assemble_start_function): Likewise.
3336
581985d7
MJ
33372011-04-11 Martin Jambor <mjambor@suse.cz>
3338
3339 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
3340 of cgraph_node.
3341 * final.c (rest_of_clean_state): Likewise.
3342 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
3343 * passes.c (pass_init_dump_file): Likewise.
3344 (execute_all_ipa_transforms): Likewise.
3345 (function_called_by_processed_nodes_p): Likewise.
3346 * predict.c (maybe_hot_frequency_p): Likewise.
3347 (probably_never_executed_bb_p): Likewise.
3348 (compute_function_frequency): Likewise.
3349 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
3350 (unnest_nesting_tree_1): Likewise.
3351 (lower_nested_functions): Likewise.
3352 * tree-optimize.c (execute_fixup_cfg): Likewise.
3353 (tree_rest_of_compilation): Likewise.
3354 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
3355 * tree-sra.c (ipa_early_sra): Likewise.
3356 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3357 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
3358 * ipa.c (record_cdtor_fn): Likewise.
3359 * ipa-inline.c (cgraph_early_inlining): Likewise.
3360 (compute_inline_parameters_for_current): Likewise.
3361 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3362 * ipa-pure-const.c (local_pure_const): Likewise.
3363 * ipa-split.c (split_function): Likewise.
3364 (execute_split_functions): Likewise.
3365 * cgraphbuild.c (build_cgraph_edges): Likewise.
3366 (rebuild_cgraph_edges): Likewise.
3367 (cgraph_rebuild_references): Likewise.
3368 (remove_cgraph_callee_edges): Likewise.
3369 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
3370 (verify_cgraph_node): Likewise.
3371 (cgraph_analyze_functions): Likewise.
3372 (cgraph_preserve_function_body_p): Likewise.
3373 (save_inline_function_body): Likewise.
3374 (save_inline_function_body): Likewise.
3375 * tree-inline.c (copy_bb): Likewise.
3376 (optimize_inline_calls): Likewise.
3377
57dbdc5a
MJ
33782011-04-11 Martin Jambor <mjambor@suse.cz>
3379
3380 PR tree-optimization/48195
3381 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
3382 ipa_check_create_edge_args.
3383 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
3384 ipa_check_create_edge_args.
3385 * ipa-inline.c (inline_generate_summary): Do not call
3386 ipa_check_create_node_params and ipa_check_create_edge_args.
3387 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
3388 ipa_check_create_edge_args.
3389
d108e679
AS
33902011-04-09 Anatoly Sokolov <aesok@post.ru>
3391
3392 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
3393 instead of loop.
3394 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
3395 * function.c (record_hard_reg_sets): Likewise.
3396 * ira.c (compute_regs_asm_clobbered): Likewise.
3397 * sched-deps.c (sched_analyze_1): Likewise.
3398 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
3399
3411bc59
XDL
34002011-04-09 Xinliang David Li <davidxl@google.com>
3401
3402 PR tree-optimization/PR48484
3403 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
3404 has_valid_pred lazily
3405
b365495a
DS
34062011-04-09 Duncan Sands <baldrick@free.fr>
3407
3408 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
3409
68bc509a
EB
34102011-04-08 Eric Botcazou <ebotcazou@adacore.com>
3411
3412 * combine.c (combine_validate_cost): Adjust comments. Set registered
3413 cost of I0 to zero at the end, if any.
3414
041e059f
XDL
34152011-04-08 Xinliang David Li <davidxl@google.com>
3416
68bc509a
EB
3417 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
3418 to insane profile data.
041e059f 3419
444b3995
XDL
34202011-04-08 Xinliang David Li <davidxl@google.com>
3421
3422 * ipa-cp.c (ipcp_update_profiling): Correct
3423 negative scale factor due to insane profile data.
3424
6a801cf2
XDL
34252011-04-08 Xinliang David Li <davidxl@google.com>
3426
3427 * final.c (dump_basic_block_info): New function.
3428 (final): Dump basic block.
3429 (final_scan_insn): Remove old dump.
3430
d5f3624e
SK
34312011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
3432
68bc509a
EB
3433 PR target/47829
3434 * config.gcc (i386-*-freebsd): Disable unwind table generation for
3435 crtbegin/crtend.
d5f3624e 3436
42821aff
MM
34372011-04-08 Michael Matz <matz@suse.de>
3438
3439 PR middle-end/48389
3440 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
3441 functions.
3442 (rebuild_jump_labels): Call rebuild_jump_labels_1.
3443 * rtl.h (rebuild_jump_labels_chain): Declare.
3444 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
3445 insns inserted on edges.
3446
ad7be009
JM
34472011-04-08 Joseph Myers <joseph@codesourcery.com>
3448
3449 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
3450 * config/arm/arm-arches.def: New.
3451 * config/arm/arm-opts.h: New.
3452 * config/arm/genopt.sh: New.
3453 * config/arm/arm-tables.opt: New (generated).
3454 * config/arm/arm.c (arm_handle_option, arm_target_help,
3455 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
3456 (all_architectures): Get most table contents from arm-arches.def.
3457 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
3458 arm_selected_tune here.
3459 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
3460 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
3461 (march=, mcpu=, mtune=): Use Enum and Var.
3462 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
3463 (arm.o): Update dependencies.
ecbb6fb7 3464
42821aff 34652011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
3466
3467 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
3468 of header_file.
3469 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
3470 (write_typed_alloc_defns): Likewise.
3471 (main): Calls write_typed_alloc_defns with output_header.
3472
8d189b3f
VM
34732011-04-08 Vladimir Makarov <vmakarov@redhat.com>
3474
68bc509a 3475 PR inline-asm/48435
8d189b3f
VM
3476 * ira-color.c (setup_profitable_hard_regs): Add comments.
3477 Don't take prohibited hard regs into account.
3478 (setup_conflict_profitable_regs): Rename to
3479 get_conflict_profitable_regs.
3480 (check_hard_reg_p): Check prohibited hard regs.
3481
44f370bf
NF
34822011-04-08 Nathan Froyd <froydnj@codesourcery.com>
3483
3484 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
3485 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
3486 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
3487
483d7ad3
JDA
34882011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3489
3490 PR target/48366
3491 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 3492 move from floating point to shift amount register.
483d7ad3
JDA
3493 (emit_move_sequence): Remove secondary reload support for floating
3494 point to shift amount amount register copies.
3495 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
3496 amount register copies.
3497 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
3498 register, return false if mode isn't a scalar integer mode.
3499 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
3500
97e03fa1
RG
35012011-04-08 Richard Guenther <rguenther@suse.de>
3502
3503 * gimple.c (gimple_call_flags): Remove kludge.
3504
9d40778b
AM
35052011-04-08 Alexander Monakov <amonakov@ispras.ru>
3506
3507 * sel-sched.c (sel_region_init): Move call to
3508 sel_setup_region_sched_flags after setup_current_loop_nest.
3509
19ac7892
AB
35102011-04-08 Andrey Belevantsev <abel@ispras.ru>
3511
3512 PR rtl-optimization/48272
19ac7892
AB
3513 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
3514 init_insn_reg_pressure_info. Adjust a caller.
3515 * sched-int.h (init_insn_reg_pressure_info): Declare.
3516 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
3517 when sched-pressure is enabled.
3518
0f8c63cc
RG
35192011-04-08 Richard Guenther <rguenther@suse.de>
3520
3521 * gimple.c (gimple_set_modified): Do not queue calls to
3522 MODIFIED_NORETURN_CALLS here ...
3523 * tree-ssa-operands.c (update_stmt_operands): ... but here.
3524
5e5a425e
RG
35252011-04-08 Richard Guenther <rguenther@suse.de>
3526
3527 PR lto/48467
3528 * toplev.c (lang_dependent_init): Do not open asm_out_file
3529 in WPA mode, nor perform debug machinery initialization.
3530 (finalize): Do not unlink asm_out_file in WPA mode.
3531
9bfc434b
RG
35322011-04-08 Richard Guenther <rguenther@suse.de>
3533
3534 * gimple.h (gimple_call_fntype): New function.
3535 (gimple_call_return_type): Use it.
3536 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
3537 * gimple-low.c (gimple_check_call_args): Likewise.
3538 * gimple.c (gimple_call_flags): Likewise.
3539 (gimple_call_arg_flags): Likewise.
3540 (gimple_call_return_flags): Likewise.
3541 * tree-cfg.c (verify_gimple_call): Likewise.
3542 (do_warn_unused_result): Likewise.
3543 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
3544 * value-prof.c (gimple_ic_transform): Fix fndecl check.
3545
7c1f0b40
DM
35462011-04-08 Dmitry Melnik <dm@ispras.ru>
3547
3548 PR rtl-optimization/48235
3549 * sel-sched.c (code_motion_process_successors): Recompute the last
3550 insn in basic block if control flow changed.
3551 (code_motion_path_driver): Ditto. Recompute the first insn as well.
3552 Update condition for ilist_remove.
3553
ea4d630f
AM
35542011-04-08 Alexander Monakov <amonakov@ispras.ru>
3555
3556 PR rtl-optimization/48302
3557 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
3558 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
3559 it to record added preheader blocks.
3560 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
3561 on to sel_add_loop_preheaders.
3562 (sel_region_init): Move call to setup_current_loop_nest after
3563 sel_init_bbs.
3564
07643d76
AM
35652011-04-08 Alexander Monakov <amonakov@ispras.ru>
3566
3567 PR target/48273
3568 * cfgloop.h (loop_has_exit_edges): New helper.
3569 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
3570 non-clonable.
3571 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
3572 that have no exit edges.
3573
1f3b2b4e
AM
35742011-04-08 Alexander Monakov <amonakov@ispras.ru>
3575
3576 PR rtl-optimization/48442
3577 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
3578 all callers. Adjust assert.
3579
554f1948
JJ
35802011-04-08 Jakub Jelinek <jakub@redhat.com>
3581
3582 PR tree-optimization/48377
3583 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
3584 is_packed to true even for types with smaller TYPE_ALIGN than
3585 TYPE_SIZE.
3586
ddf72388
RG
35872011-04-08 Richard Guenther <rguenther@suse.de>
3588
3589 PR bootstrap/48513
3590 * doc/tm.texi: Re-generate.
3591
0c27e2d8
WG
35922011-04-08 Wei Guozhi <carrot@google.com>
3593
3594 PR target/47855
3595 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
3596 * config/arm/arm.c (arm_attr_length_push_multi): New function.
3597 * config/arm/arm.md (*push_multi): Change the length computation to
3598 call a C function.
3599
07c5f94e
AS
36002011-04-08 Anatoly Sokolov <aesok@post.ru>
3601
3602 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
3603 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
3604 * doc/tm.texi: Regenerate.
3605 * system.h (ASM_OUTPUT_BSS): Poison.
3606 * varasm.c (asm_output_bss): Remove function.
3607 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 3608
07c5f94e
AS
3609 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
3610 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
3611 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
3612 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3613 Likewise.
3614 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3615 Likewise.
3616 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3617 Likewise.
3618 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3619
5f2c36e1
JM
36202011-04-07 Joseph Myers <joseph@codesourcery.com>
3621
3622 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
3623 EnumValue lines.
3624
39e7722b
JM
36252011-04-07 Joseph Myers <joseph@codesourcery.com>
3626
3627 * config/m68k/m68k.c (m68k_handle_option): Don't handle
3628 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
3629 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
3630 OPT_mcpu32.
3631 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3632 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
3633 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
3634 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
3635 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
3636 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
3637 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3638 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
3639 options. Don't map other m68k options manually. Don't handle
3640 old-style options as canonical.
3641 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 3642 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 3643
cf103ca4
EB
36442011-04-07 Eric Botcazou <ebotcazou@adacore.com>
3645
3646 * basic-block.h (force_nonfallthru): Move to...
3647 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
3648 (force_nonfallthru): ...here.
3649 * cfghooks.c (force_nonfallthru): New function.
3650 * cfgrtl.c (force_nonfallthru): Rename into...
3651 (rtl_force_nonfallthru): ...this.
3652 (commit_one_edge_insertion): Do not set AUX field.
3653 (commit_edge_insertions): Do not discover new basic blocks.
3654 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
3655 (cfg_layout_rtl_cfg_hooks): Likewise.
3656 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
3657 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
3658 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
3659
14431f58
AS
36602011-04-07 Anatoly Sokolov <aesok@post.ru>
3661
3662 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3663 Remove macros.
3664
3729983c
UB
36652011-04-07 Uros Bizjak <ubizjak@gmail.com>
3666
3667 * config/i386/sse.md: Update copyright year.
3668 (avxcvtvecmode): Remove.
3669 (sse_movhlps): Merge with *avx_movhlps.
3670 (sse_movlhps): Merge with *avx_movlhps.
3671 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
3672 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
3673 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
3674 (sse_loadhps): Merge with *avx_loadhps.
3675 (sse_storelps): Merge with *avx_storelps.
3676 (sse_loadlps): Merge with *avx_loadlps.
3677 (sse_movss): Merge with *avx_movss.
3678 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
3679 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
3680 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
3681 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
3682 (vec_set<mode>_0): Ditto.
3683 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
3684 (sse4_1_insertps): Merge with *avx_insertps.
3685 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
3686 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
3687 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
3688 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
3689 (sse2_storehpd): Merge with *avx_storehpd.
3690 (sse2_loadhpd): Merge with *avx_loadhpd.
3691 (sse2_loadlpd): Merge with *avx_loadlpd.
3692 (sse2_movsd): Merge with *avx_movsd.
3693 (*vec_concatv2df): Merge with *vec_concatv2df.
3694
4e626909
JJ
36952011-04-07 Jakub Jelinek <jakub@redhat.com>
3696
3697 PR debug/48343
3698 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 3699 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
3700 (try_combine): Add last_combined_insn parameter, pass it instead of
3701 i3 to propagate_for_debug.
3702
3729983c 37032011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
3704
3705 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
3706 to handle MDR <-> data register transfers.
3707 (movhi_internal): Likewise.
3708
20c03367
AM
37092011-04-07 Alan Modra <amodra@gmail.com>
3710
3711 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
3712 previous stack info.
3713
bf22920b
TV
37142011-04-07 Tom de Vries <tom@codesourcery.com>
3715
3716 PR target/43920
3717 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
3718 flow_find_cross_jump. Swap variables to implement backward replacement.
3719 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
3720
823918ae
TV
37212011-04-07 Tom de Vries <tom@codesourcery.com>
3722
3723 PR target/43920
3724 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
3725 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
3726 and bb2.
3727 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
3728 src1 or src2. Redirect edges to the last basic block. Update
3729 frequency and count on multiple basic blocks in case of fallthru.
823918ae 3730
472c95f5
TV
37312011-04-07 Tom de Vries <tom@codesourcery.com>
3732
3733 PR target/43920
3734 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
3735 function.
3729983c
UB
3736 (old_insns_match_p): Change return type. Replace return false/true
3737 with return dir_none/dir_both. Use can_replace_by.
3738 (flow_find_cross_jump): Add dir_p parameter. Init replacement
3739 direction from dir_p. Register replacement direction in dir, last_dir
3740 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
3741 merge_dir. Return replacement direction in dir_p.
3742 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
3743 return type of old_insns_match_p.
3744 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
3745 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
3746 flow_find_cross_jump.
3747 * basic-block.h (enum replace_direction): New type.
3748 (flow_find_cross_jump): Add parameter to declaration.
3749
a95d4000
UB
37502011-04-06 Uros Bizjak <ubizjak@gmail.com>
3751
3752 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
3753 (AVXMODEDCVTPS2DQ): Ditto.
3754 (VEC_FLOAT_MODE): Ditto.
3755 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
3756 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3757 (<any_logic:code><mode>3): Use VF mode iterator.
3758 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
3759 Use VF mode iterator.
3760 (copysign<mode>3): Use VF mode iterator.
3761 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
3762 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
3763 (*<any_logic:code><MODEF:mode>3): Merge with
3764 *avx_<any_logic:code><MODEF:mode>3.
3765 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
3766 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
3767 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
3768 (avx_cvtdq2ps<avxmodesuffix>): Remove.
3769 (sse2_cvtdq2ps): Use %v modifier.
3770 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
3771 (avx_cvtps2dq<avxmodesuffix>): Remove.
3772 (sse2_cvtps2dq): Use %v modifier.
3773 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
3774 (avx_cvttps2dq<avxmodesuffix>): Remove.
3775 (sse2_cvttps2dq): Use %v modifier.
3776 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
3777 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
3778 (sse2_cvtsd2siq): Fix insn template.
3779 (sse2_cvtsd2siq_2): Ditto.
3780 (sse2_cvttsd2siq): Ditto.
3781 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
3782 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
3783
ad01c437
JM
37842011-04-06 Joseph Myers <joseph@codesourcery.com>
3785
3786 * gcov-io.c: Use GCC Runtime Library Exception.
3787
fe846284
JJ
37882011-04-06 Jakub Jelinek <jakub@redhat.com>
3789
3790 PR debug/48466
3791 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
3792 as base_reg whatever register reg has been eliminated to, instead
3793 of hardcoding STACK_POINTER_REGNUM.
3794
acce4e77
JM
37952011-04-06 Joseph Myers <joseph@codesourcery.com>
3796
3797 * doc/tm.texi.in: Document C target hooks as separate from general
3798 target hooks.
3799 * doc/tm.texi: Regenerate.
3800 * genhooks.c (struct hook_desc): Add docname field.
3801 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
3802 docname field.
3803 (hook_array): Include c-target.def.
3804 (emit_documentation): Use docname field in output.
3805 (emit_init_macros): Take docname argument. Only emit definitions
3806 for hooks matching docname.
3807 (main): Expect additional arguments in all cases. Pass argument
3808 to emit_init_macros.
3809 * target.def: Move initial macro definitions and comments to
3810 target-hooks-macros.h.
3811 (gcc_targetcm): Move to c-family/c-target.def.
3812 * target.h (targetcm): Move declaration to c-family/c-target.h.
3813 * targhooks.c (default_handle_c_option): Move to
3814 c-family/c-opts.c.
3815 * targhooks.h (default_handle_c_option): Move declaration to
3816 c-family/c-common.h.
3817 * target-hooks-macros.h: New file.
3818 * config.gcc (target_has_targetcm): Define and use to add to
3819 c_target_objs and cxx_target_objs.
3820 * config/default-c.c: New file.
3821 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
3822 of target.h and target-def.h.
3823 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
3824 (darwin_objc_construct_string, darwin_cfstring_ref_p,
3825 darwin_check_cfstring_format_arg): Make static.
3826 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3827 TARGET_STRING_OBJECT_REF_TYPE_P,
3828 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
3829 * config/darwin-protos.h (darwin_objc_construct_string,
3830 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
3831 declare.
3832 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
3833 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 3834 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
3835 * config/t-darwin (darwin-c.o): Update dependencies.
3836 * system.h (TARGET_HAS_TARGETCM): Poison.
3837 * Makefile.in (TARGET_H): Update.
3838 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
3839 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
3840 (default-c.o): New target.
3841 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 3842 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
3843 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
3844 c-target.def.
3845 (build/genhooks.o): Update dependencies.
3846
275b4baa 38472011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 3848
275b4baa
RG
3849 * ipa-inline.c (enum inlining_mode): Remove.
3850 (cgraph_flatten): Use some other token.
3851 (cgraph_edge_early_inlinable_p): New function, split out from ...
3852 (cgraph_perform_always_inlining): New function, split out from ...
3853 (cgraph_decide_inlining_incrementally): ... here.
3854 (cgraph_mark_inline_edge): Adjust.
3855 (cgraph_early_inlining): Re-structure.
3856 (pass_early_inline): Require SSA form.
3857
f15b8bdf 38582011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
3859 Julian Brown <julian@codesourcery.com>
3860 Mark Shinwell <shinwell@codesourcery.com>
3861
3862 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
3863 LO_REGS only for Thumb-1.
3864 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
3865 be used in short instructions when optimising for size on Thumb-2.
3866
516426da
EB
38672011-04-06 Eric Botcazou <ebotcazou@adacore.com>
3868
3869 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
3870 associated with user returns to be preserved.
3871
96621ebf
TG
38722011-04-06 Tristan Gingold <gingold@adacore.com>
3873
f15b8bdf
EB
3874 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
3875 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
3876 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
3877 if XCOFF_DEBUGGING_INFO.
3878
07c0852e
UB
38792011-04-06 Uros Bizjak <ubizjak@gmail.com>
3880
3881 * config/i386/i386.md (attribute isa): New.
3882 (attribute enabled): New.
3883 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
3884 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
3885 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
3886 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
3887 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
3888 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3889 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
3890 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
3891
3892 * config/i386/sse.md (VF): New mode iterator.
3893 (VF1): Ditto.
3894 (VF2): Ditto.
3895 (VF_128): Ditto.
3896 (SSEMODEF4): Remove.
3897 (attribute sse): Handle V8SF and V4DF modes.
3898 (<absneg:code><mode>2): Use VF mode iterator.
3899 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
3900 mode iterator.
3901 (<plusminus_insn><mode>3): Use VF mode iterator.
3902 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3903 Use VF mode iterator.
3904 (<sse>_vm<plusminus_insn><mode>3): Merge with
3905 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
3906 (mul<mode>3): Use VF mode iterator.
3907 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
3908 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
3909 mode iterator.
3910 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
3911 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
3912 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
3913 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
3914 mode iterator.
3915 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
3916 Use VF1 mode iterator.
3917 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
3918 (sqrt<VF2:mode>2): New expander.
3919 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
3920 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
3921 and sqrtv2df2. Use VF mode iterator.
3922 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
3923 mode iterator.
3924 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
3925 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
3926 Use VF1 mode iterator.
3927 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
3928 (<smaxmin:code><mode>3): Use VF mode iterator.
3929 (*<smaxmin:code><mode>3_finite): Merge with
3930 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
3931 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3932 (<sse>_vm<smaxmin:code><mode>2): Merge with
3933 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
3934 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
3935 mode iterator.
3936 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
3937 mode iterator.
3938 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
3939 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
3940 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
3941 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
3942 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
3943 VF mode iterator.
3944 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
3945 Use VF_128 mode iterator.
3946 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
3947 mode iterator.
3948 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
3949 VF_128 mode iterator.
3950 (vcond<mode>): Use VF mode iterator.
3951 * config/i386/predicates.md (sse_comparison_operator): Merge with
3952 avx_comparison_float_operator. Do not declare as special_predicate.
3953 * config/i386/i386.c (struct builtin_description): Update for renamed
3954 compare patterns.
3955 (ix86_expand_args_builtin): Ditto.
3956 (ix86_expand_sse_compare_mask): Ditto.
3957
ff5d142c
RG
39582011-04-06 Richard Guenther <rguenther@suse.de>
3959
3960 * tree-inline.c (estimate_num_insns): For calls simply account
3961 for all passed arguments and a used return value.
3962
d7d1d041 39632011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 3964
d7d1d041
RG
3965 PR tree-optimization/47663
3966 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
3967 call_stmt_time fields.
3968 (cgraph_edge_inlinable_p): Declare.
3969 (cgraph_edge_recursive_p): New inline function.
3970 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
3971 (cgraph_clone_edge): Copy it.
3972 * ipa-inline.c (cgraph_estimate_edge_time): New function.
3973 Account for call stmt time.
3974 (cgraph_estimate_time_after_inlining): Take edge argument.
3975 (cgraph_estimate_edge_growth): Account call stmt size.
3976 (cgraph_estimate_size_after_inlining): Take edge argument.
3977 (cgraph_mark_inline_edge): Adjust.
3978 (cgraph_check_inline_limits): Likewise.
3979 (cgraph_recursive_inlining_p): Remove.
3980 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
3981 (cgraph_decide_recursive_inlining): Take edge argument and
3982 adjust.
3983 (cgraph_decide_inlining_of_small_functions): Do not avoid
3984 diags for recursive inlining here.
3985 (cgraph_flatten): Adjust.
3986 (cgraph_decide_inlining_incrementally): Likewise.
3987 (estimate_function_body_sizes): Remove call cost handling.
3988 (compute_inline_parameters): Initialize caller edge call costs.
3989 (cgraph_estimate_edge_growth): New function.
3990 (cgraph_estimate_growth): Use it.
3991 (cgraph_edge_badness): Likewise.
3992 (cgraph_check_inline_limits): Take an edge argument.
3993 (cgraph_decide_inlining_of_small_functions): Adjust.
3994 (cgraph_decide_inlining): Likewise.
3995 * tree-inline.c (estimate_num_insns): Only account for call
3996 return value if it is used.
3997 (expand_call_inline): Avoid diagnostics on recursive inline
3998 functions here.
3999 * lto-cgraph.c (lto_output_edge): Output edge call costs.
4000 (input_edge): Input edge call costs.
4001
2feb95f7
RO
40022011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4003
4004 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4005
26fbd9c2
JW
40062011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4007
4008 * doc/invoke.texi (Spec Files): Fix typo.
4009
694dc0ca
EB
40102011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4011
4012 * profile.c (branch_prob): Move declaration of local variable. Remove
4013 obsolete ??? comment. Expand the location explicitly instead of using
4014 the LOCATION_FILE and LOCATION_LINE macros.
4015
4925d0d5
WG
40162011-04-06 Wei Guozhi <carrot@google.com>
4017
4018 PR target/47855
4019 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4020 (arm_cond_branch): Likewise.
4021 (arm_cond_branch_reversed): Likewise.
4022 (arm_jump): Likewise.
4023 (push_multi): Likewise.
4024 * config/arm/constraints.md (Py): New constraint.
4025
f55dfa2f
NF
40262011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4027
4028 PR bootstrap/48471
4029 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4030 Move these...
4031 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4032 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4033 #ifdef DBX_DEBUGGING_INFO.
4034
fca96842
BS
40352011-04-05 Bernd Schmidt <bernds@codesourcery.com>
4036
4037 PR bootstrap/48403
4038 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4039 if old and new states differ.
4040
30b83e38
JM
40412011-04-05 Joseph Myers <joseph@codesourcery.com>
4042
4043 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4044 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4045 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4046 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4047 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4048 mcfv4e): Use Alias.
4049 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4050 ColdFire options to -mcpu= options.
4051
277a9aa5
JL
40522011-04-05 Jeff Law <law@redhat.com>
4053
4054 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4055 check if BB is a successor of LOOP->header and return
4056 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4057
c1e2610e
SB
40582011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4059
4060 * cprop.c (struct reg_use): Remove.
4061 (reg_use_table): Make an array of RTX.
4062 (find_used_regs, constprop_register, local_cprop_pass,
4063 bypass_block): Simplify users of reg_use_table.
4064 (cprop_insn): Likewise. Iterate if copy propagation succeeded
4065 on one of the uses found by find_used_regs.
4066
e532f586
NF
40672011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4068
4069 PR bootstrap/48469
4070 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
4071 declaration.
4072
3fb7c055
NF
40732011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4074
4075 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
4076 as an rtx.
4077 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
4078
b71b43d9
SB
40792011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4080
4081 PR middle-end/48441
4082 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
4083
b405b274
NF
40842011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4085
4086 * combine.c: Include obstack.h.
4087 (struct insn_link): Define.
4088 (uid_log_links): Adjust type.
4089 (FOR_EACH_LOG_LINK): New macro.
4090 (insn_link_obstack): Declare.
4091 (alloc_insn_link): Define.
4092 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
4093 type of link variables.
4094 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
4095 (try_combine, record_promoted_values, distribute_notes): Likewise.
4096 (distribute_links): Likewise. Tweak prototype.
4097 (clear_log_links): Delete.
4098 (adjust_for_new_dest): Call alloc_insn_link.
4099 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
4100
6409abe3
NF
41012011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4102
4103 * gcse.c (modify_mem_list): Convert to an array of VECs.
4104 (canon_modify_mem_list, compute_transp): Tweak formatting.
4105 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
4106 (load_killed_in_block_p): Likewise.
4107 (record_last_mem_set_info): Likewise.
4108 (clear_modify_mem_tables): Likewise.
4109
170d8157
TV
41102011-04-05 Tom de Vries <tom@codesourcery.com>
4111
4112 PR middle-end/48461
4113 * function.c (emit_use_return_register_into_block): Only define if
4114 HAVE_return.
4115
c5911a55
EB
41162011-04-05 Eric Botcazou <ebotcazou@adacore.com>
4117
4118 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
4119
abd016e6
JM
41202011-04-05 Joseph Myers <joseph@codesourcery.com>
4121
4122 * config/rx/rx-opts.h: New.
4123 * config/rx/rx.c (rx_cpu_type): Remove.
4124 (rx_handle_option): Don't assert that global structures are in
4125 use. Access variables via opts pointer. Defer most handling of
4126 OPT_mint_register_. Use error_at.
4127 (rx_option_override): Handle deferred OPT_mint_register_ here.
4128 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
4129 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
4130 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
4131 (rx_cpu_types): New Enum and EnumValue entries.
4132 (mint-register=): Use Defer and use Var accordingly.
4133
1ed13f83
NF
41342011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4135
4136 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
4137 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
4138 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
4139 Move these...
4140 (debug_free_queue, debug_nesting, symbol_queue_index):
4141 ...and these...
4142 * dbxout.c: ...to here. Make static.
4143
6ce1edcf
NF
41442011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4145
4146 * gcse.c (modify_pair): Define. Define a VEC of it.
4147 (canon_modify_mem_list): Convert to an array of VECs.
4148 (free_insn_expr_list_list): Delete.
4149 (clear_modify_mem_tables): Call VEC_free instead.
4150 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
4151 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
4152 (canon_list_insert, compute_transp): Likewise.
4153
c201ac94
TV
41542011-04-05 Tom de Vries <tom@codesourcery.com>
4155
4156 PR target/43920
4157 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
4158 for size.
4159
4c029f40
TV
41602011-04-05 Tom de Vries <tom@codesourcery.com>
4161
4162 PR target/43920
4163 * function.c (emit_use_return_register_into_block): New function.
4164 (thread_prologue_and_epilogue_insns): Use
4165 emit_use_return_register_into_block.
4166
2a562b0a
TV
41672011-04-05 Tom de Vries <tom@codesourcery.com>
4168
4169 PR target/43920
4170 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
4171 insn.
4172
0248bceb
TV
41732011-04-05 Tom de Vries <tom@codesourcery.com>
4174
4175 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
4176
ffa94123
YZ
41772011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
4178
798dd0ba
UB
4179 * config/arm/arm.md (define_constants for unspec): Replace with
4180 define_c_enum.
4181 (define_constants for unspecv): Replace with define_c_enum.
4182 * config/arm/neon.md (define_constants for unspec): Replace with
4183 define_c_enum.
ffa94123 4184
3b8f9b46
RH
41852011-04-04 Richard Henderson <rth@redhat.com>
4186
720cf80f 4187 PR bootstrap/48400
3b8f9b46
RH
4188 * dwarf2out.c (output_line_info): Always emit line info from
4189 at least one section.
4190 (dwarf2out_init): Create text_section_line_info here ...
4191 (set_cur_line_info_table): ... not here.
4192
720cf80f 41932011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
4194
4195 PR target/48380
4196 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 4197 not called.
e5b0e1ca 4198
720cf80f 4199 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 4200
196565d4
SB
42012011-04-04 Steven Bosscher <steven@gcc.gnu.org>
4202
b77f9eab
SB
4203 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
4204 (expr_equiv_p): Remove.
4205 (insert_set_in_table): Look at <dest, src> pair instead of expr.
4206 (hash_scan_set): Update call to insert_set_in_table.
4207 (dump_hash_table): Dump <dest, src> pair.
4208 (lookup_set): Simplify. Lookup <dest, src> pair.
4209 (compute_transp): Remove, fold heavily simplified code into...
4210 (compute_local_properties): ...here. Expect COMP and TRANSP
4211 unconditionally.
4212 (find_avail_set): Take set directly from struct expr.
4213 (find_bypass-set): Likewise.
4214 (bypass_block): Likewise.
4215 (cprop_insn): Likewise. Remove redundant INSN_P test.
4216
384d7a55
SB
4217 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
4218 checks on form of COND from find_implicit_sets to here.
4219 (find_implicit_sets): Cleanup control flow. Split critical edges
4220 if it exposes implicit sets. Allocate/resize implicit_sets as
4221 necessary.
4222 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
4223 changed something. Run df_analyze after find_implicit_sets if any
4224 edges were split. Do not allocate implicit_sets here.
4225
3084ce69
SB
4226 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
4227 (gcse_obstack): Renamed to cprop_obstack.
4228 (GNEW, GNEWVEC, GNEWVAR): Remove.
4229 (gmalloc): Remove.
4230 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
4231 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
4232 (gcse_alloc): Likewise, and rename to cprop_alloc.
4233 (alloc_gcse_men, free_gcse_mem): Remove.
4234 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
4235 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
4236 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
4237
196565d4
SB
4238 * cprop.c (oprs_not_set_p): Remove.
4239 (mark_set, mark_clobber): Remove.
4240 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
4241 (reg_not_set_p): New function.
4242 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
4243 (cprop_insn): Likewise.
4244 (cprop_jump): Use FOR_EACH_EDGE.
4245
9b69cf83
BS
42462011-04-04 Bernd Schmidt <bernds@codesourcery.com>
4247
4248 PR bootstrap/48403
4249 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
4250 (rank_for_schedule): Use scheduled_insns vector instead of
4251 last_scheduled_insn.
4252 (ok_for_early_queue_removal): Likewise.
4253 (queue_to_ready): Search forward in nonscheduled_insns_begin if
4254 we have a dbg_cnt.
4255 (choose_ready): Likewise.
4256 (commit_schedule): Use VEC_iterate.
4257 (schedule_block): Initialize nonscheduled_insns_begin. If we have
4258 a dbg_cnt, use it and ensure the first insn is in the ready list.
4259 (haifa_sched_init): Allocate scheduled_insns.
4260 (sched_extend_ready_list): Don't allocate it; reserve space.
4261 (haifa_sched_finish): Free it.
4262
24f48c2f
JM
42632011-04-04 Joseph Myers <joseph@codesourcery.com>
4264
4265 * optc-gen.awk: Always remove type from Variable entry before
4266 recording in var_seen.
4267
8effe856
EB
42682011-04-04 Eric Botcazou <ebotcazou@adacore.com>
4269
4270 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
4271 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
4272 call to tidy_fallthru_edges.
4273
413519ae
JM
42742011-04-04 Joseph Myers <joseph@codesourcery.com>
4275
4276 * doc/options.texi (ToLower): Document.
3729983c 4277 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
4278 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
4279 * opts.h (cl_option): Add cl_tolower field.
4280 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
4281 arguments with lowercase strings.
4282 * config/rx/rx.opt (mcpu=): Add ToLower.
4283 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
4284 argument.
4285
7d34a1b0
RS
42862011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4287
4288 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
4289
c30e7434
RS
42902011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4291
4292 * config/vax/vax.c: Include reload.h.
4293
112a861d
AS
42942011-04-04 Anatoly Sokolov <aesok@post.ru>
4295
4296 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
4297 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4298 (sparc_preferred_reload_class): New function.
4299
e8c6bb74
JJ
43002011-04-04 Jakub Jelinek <jakub@redhat.com>
4301
2aeaa366 4302 PR debug/48401
e8c6bb74
JJ
4303 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4304 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
4305
2c081caf
NF
43062011-04-03 Nathan Froyd <froydnj@codesourcery.com>
4307
4308 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
4309 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
4310
53802f27
AS
43112011-04-03 Anatoly Sokolov <aesok@post.ru>
4312
4313 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
4314 (ASM_OUTPUT_ALIGNED_BSS): Define.
4315
e89964e3
MM
43162011-04-03 Michael Matz <matz@suse.de>
4317
4318 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
4319 and next_slot members.
4320 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
4321 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
4322 (lto_streamer_cache_append): Declare.
4323 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
4324 unsigned index, remove offset parameter, ensure that we append
4325 or update existing entries.
4326 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
4327 parameter, update next_slot for append.
4328 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
4329 parameter.
4330 (lto_streamer_cache_insert_at): Likewise.
4331 (lto_streamer_cache_append): New function.
4332 (lto_streamer_cache_lookup): Use unsigned index.
4333 (lto_streamer_cache_get): Likewise.
4334 (lto_record_common_node): Don't test tree_node_can_be_shared.
4335 (preload_common_node): Adjust call to lto_streamer_cache_insert.
4336 (lto_streamer_cache_delete): Don't free offsets member.
4337 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
4338 (lto_output_string_with_length): Use lto_output_data_stream.
4339 (lto_output_tree_header): Remove ix parameter, don't write it.
4340 (lto_output_builtin_tree): Likewise.
4341 (lto_write_tree): Adjust callers to above, don't track and write
4342 offset, write unsigned index.
4343 (output_unreferenced_globals): Don't emit all global vars.
4344 (write_global_references): Use unsigned indices.
4345 (lto_output_decl_state_refs): Likewise.
4346 (write_symbol): Likewise.
4347 * lto-streamer-in.c (lto_input_chain): Move earlier.
4348 (input_function): Use unsigned index.
4349 (input_alias_pairs): Don't read and then ignore all global vars.
4350 (lto_materialize_tree): Remove ix_p parameter, don't read index,
4351 don't pass it back, use lto_streamer_cache_append.
4352 (lto_register_var_decl_in_symtab): Use unsigned index.
4353 (lto_register_function_decl_in_symtab): Likewise.
4354 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
4355 index.
4356 (lto_get_builtin_tree): Don't read index, use
4357 lto_streamer_cache_append.
4358 (lto_read_tree): Adjust call to lto_materialize_tree.
4359
4360 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
4361 don't use function calls in arguments to MIN.
4362
4363 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
4364 twice.
4365
4366 * gimple.c (gimple_type_leader_entry): Mark deletable.
4367
b9a5b5b2
AM
43682011-04-03 Alan Modra <amodra@gmail.com>
4369
4370 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
4371
ac6a641b
MM
43722011-04-03 Michael Matz <matz@suse.de>
4373
4374 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
4375 an integer.
4376 * tree.h (tree_decl_non_common.vindex): Adjust comment.
4377
0038d4e0
MM
43782011-04-03 Michael Matz <matz@suse.de>
4379
e9c18386 4380 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
4381 * gimple-fold.c (canonicalize_constructor_val): Accept being called
4382 without function context.
4383 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
4384 current_function_decl and cfun.
4385
91f2fae8
MM
43862011-04-03 Michael Matz <matz@suse.de>
4387
4388 * tree.c (decl_init_priority_insert): Don't create entry for
4389 default priority.
4390 (decl_fini_priority_insert): Ditto.
4391 (fields_compatible_p, find_compatible_field): Remove.
4392 * tree.h (fields_compatible_p, find_compatible_field): Remove.
4393 * gimple.c (gimple_compare_field_offset): Adjust block comment.
4394
da29e070
EB
43952011-04-03 Eric Botcazou <ebotcazou@adacore.com>
4396
4397 * combine.c (try_combine): Remove useless local variable.
4398
4979c28b 43992011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 4400 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
4401
4402 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
4403 non-variable offsets and compare the remaining bases of the two
4404 accesses instead of looking for exact same data-ref.
4405
b4ddcaee
KT
44062011-04-02 Kai Tietz <ktietz@redhat.com>
4407
f90298e1
KT
4408 PR target/48416
4409 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
4410
b4ddcaee
KT
4411 * i386.c (ix86_is_msabi_thiscall): New helper function.
4412 (ix86_is_type_thiscall): New helper function.
4413 (ix86_comp_type_attributes): Handle thiscall for method-functions
4414 special.
4415 (init_cumulative_args): Likewise.
4416 (find_drap_reg): Likewise.
4417 (ix86_static_chain): Likewise.
4418 (x86_this_parameter): Likewise.
4419 (x86_output_mi_thunk): Likewise.
4420
2a9d769a 44212011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
4422 Nicolas Setton <setton@adacore.com>
4423 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
4424
4425 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
4426 (add_gnat_descriptive_type_attribute): New function.
4427 (gen_array_type_die): Call it.
4428 (gen_enumeration_type_die): Likewise.
4429 (gen_struct_or_union_type_die): Likewise.
4430 (modified_type_die): Likewise.
4431 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
4432 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
4433 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
4434
15a03a11
JJ
44352011-04-01 Jakub Jelinek <jakub@redhat.com>
4436
4437 PR bootstrap/48148
4438 * dwarf2out.c (resolve_addr): Don't call force_decl_die
4439 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
4440
4441 Revert:
4442 2011-03-17 Richard Guenther <rguenther@suse.de>
4443
4444 PR bootstrap/48148
4445 * lto-cgraph.c (input_overwrite_node): Clear the abstract
4446 origin for decls in other ltrans units.
4447 (input_varpool_node): Likewise.
4448
19228b93
JJ
44492011-04-01 Jakub Jelinek <jakub@redhat.com>
4450
4451 PR middle-end/48335
4452 * expr.c (expand_assignment): Handle all possibilities
4453 if TO_RTX is CONCAT.
e9c18386 4454 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
4455 (store_split_bit_field): If SUBREG_REG (op0) or
4456 op0 itself has smaller mode than word, return it
4457 for offset 0 and const0_rtx for out-of-bounds stores.
4458 If word is const0_rtx, skip it.
4459
88cb339e
N
44602011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
4461
4462 * config/h8300/h8300.c (print_operand_address): Rename to...
4463 (h8300_print_operand_address): ...this. Make static. Adjust comments.
4464 Call h8300_print_operand and h8300_print_operand_address instead of
4465 print_operand and print_operand_address. Declare.
4466 (print_operand): Renake to...
4467 (h8300_print_operand): ...this. Make static. Adjust comments.
4468 Call h8300_print_operand instead of print_operand. Declare.
4469 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
4470 (h8300_register_move_cost): Likewise.
4471 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
4472 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
4473 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
4474 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
4475 * config/h8300/h8300-protos.h (print_operand): Delete.
4476 (print_operand_address): Delete.
4477
756d6ee9
RH
44782011-04-01 Richard Henderson <rth@redhat.com>
4479
4480 PR 48400
4481 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
4482 in strict mode before dwarf4. Re-order tests to early out
4483 before switching sections.
4484
ceaaaeab
NF
44852011-04-01 Nathan Froyd <froydnj@codesourcery.com>
4486
4487 * config/h8300/constraints.md: New file.
4488 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
4489 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
4490 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
4491 * config/h8300/predicates.md (bit_operand): Likewise.
4492 (incdec_operand): Use satisfies_constraint_M and
4493 satisfies_constraint_O. Don't use C code block.
4494 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
4495 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
4496 (compute_mov_length): Use satisfies_constraint_G.
4497 (fix_bit_operand): Use satisfies_constraint_U.
4498 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
4499 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
4500 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
4501 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
4502 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
4503 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
4504 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4505 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
4506 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
4507 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
4508 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
4509 (EXTRA_MEMORY_CONSTRAINT): Delete.
4510
08ae38e0
AP
45112011-04-01 Andrew Pinski <pinskia@gmail.com>
4512 Michael Meissner <meissner@linux.vnet.ibm.com>
4513
4514 PR target/48262
4515 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
4516 operands, as per the specifications.
4517
4518 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
4519 (vec_extract_evenv4sf): Ditto.
4520 (vec_extract_evenv8hi): Ditto.
4521 (vec_extract_evenv16qi): Ditto.
4522 (vec_extract_oddv4si): Ditto.
4523
bdb0b0f6
MW
45242011-03-31 Mark Wielaard <mjw@redhat.com>
4525
4526 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
4527 high_pc attribute if the CU has no associated code. Only output
4528 DW_AT_entry_pc for CU if not generating strict dwarf and
4529 dwarf_version < 4.
4530
722279e4
BS
45312011-04-01 Bernd Schmidt <bernds@codesourcery.com>
4532
4533 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
4534 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
4535 out of ...
4536 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
4537 * final.c (final_start_function): Call the new function rather
4538 than using a NULL argument for dwarf2out_frame_debug.
4539
c5dd277d
BS
4540 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
4541 that contains the prologue.
4542
ec4efea9
BS
4543 * haifa-sched.c (queue_insn): New arg REASON. All callers
4544 changed. Print it in debugging output.
4545
2a6a0d80
BS
4546 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
4547
86014d07
BS
4548 * sched-ebb.c (begin_schedule_ready): Remove second argument.
4549 Split most of the code into...
4550 (begin_move_insn): ... here. New function.
4551 (ebb_sched_info): Add a pointer to it.
4552 * haifa-sched.c (scheduled_insns): New static variable.
4553 (sched_extend_ready_list): Allocate it.
4554 (schedule_block): Use it to record the order of scheduled insns.
4555 Perform RTL changes to move insns only after all scheduling
4556 decisions have been made.
4557 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
4558 begin_move_insn field.
4559 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4560 * sched-int.h (struct haifa_sched_info): Remove second argument
4561 from begin_schedule_ready hook. Add new member begin_move_insn.
4562 * sched-rgn.c (begin_schedule_ready): Remove second argument.
4563 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
4564
9d701248
BS
4565 * haifa-sched.c (prune_ready_list): New function, broken out of
4566 schedule_block.
4567 (schedule_block): Use it.
4568
1ca1dad5
UW
45692011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4570
4571 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
4572
49568e45
KT
45732011-04-01 Kai Tietz <ktietz@redhat.com>
4574
4575 * config.gcc (*-*-mingw*): Allow as option the
4576 posix threading model.
07c0852e 4577 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
4578 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
4579 definition.
4580 (CPP_SPEC): Add pthread/no-pthread handling.
4581 (LIB_SPEC): Likewise.
4582 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
4583 (LIB_SPEC): Likewise.
4584 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
4585 flag to pass -pthread option for shared libgcc build.
4586 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
4587 for shared libgcc build.
4588 * config/i386/t-mingw-pthread: New file.
4589 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
4590 New define to enable use of library pthread by default.
4591 * config/i386/mingw.opt (pthread): New driver option.
4592 (no-pthread): New driver option.
e9c18386 4593 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
4594 * config/i386/mingw-w64.opt: Likewise.
4595
636b4106
GF
45962011-04-01 Gary Funck <gary@intrepid.com>
4597
4598 * c-decl.c (grokdeclarator): Fix formatting.
4599
f04713ee
RS
46002011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4601
4602 * expr.c (emit_block_move_via_movmem): Use n_generator_args
4603 instead of n_operands.
4604 (set_storage_via_setmem): Likewise.
4605 * optabs.c (maybe_gen_insn): Likewise.
4606 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
4607 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
4608 (mips_expand_builtin_direct): Likewise.
4609 * config/spu/spu.c (expand_builtin_args): Likewise.
4610
b29387ee
RS
46112011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4612
4613 * recog.h (insn_data_d): Add n_generator_args.
4614 * genoutput.c (data): Likewise.
4615 (output_insn_data): Print it.
4616 (max_opno, num_dups): Delete.
4617 (scan_operands): Just fill in "d->operand[...]".
4618 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
4619
e792559a
RS
46202011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4621
4622 * gensupport.h (pattern_stats): New structure.
4623 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
4624 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
4625 (max_operand_1, max_operand_vec): Delete.
4626 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
4627
e8110d6f
NF
46282011-03-31 Nathan Froyd <froydnj@codesourcery.com>
4629
4630 * emit-rtl.c (emit_pattern_after_setloc): New function.
4631 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
4632 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
4633 (emit_pattern_after): New function.
4634 (emit_insn_after, emit_jump_insn_after): Call it.
4635 (emit_call_insn_after, emit_debug_insn_after): Likewise.
4636 (emit_pattern_before_setloc): New function.
4637 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
4638 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
4639 Likewise.
4640 (emit_pattern_before): New function.
4641 (emit_insn_before, emit_jump_insn_before): Call it.
4642 (emit_call_insn_before, emit_debug_insn_before): Likewise.
4643
576f85f1
RH
46442011-03-31 Richard Henderson <rth@redhat.com>
4645
4646 * dwarf2out.c (dw_separate_line_info_ref): Remove.
4647 (dw_separate_line_info_entry): Remove.
4648 (enum dw_line_info_opcode): New.
4649 (dw_line_info_entry): Use it.
4650 (dw_line_info_table, dw_line_info_table_p): New.
4651 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
4652 (line_info_table, line_info_label_num): Remove.
4653 (line_info_table_in_use): Remove.
4654 (separate_line_info_table): Remove.
4655 (separate_line_info_table_allocated): Remove.
4656 (separate_line_info_table_in_use): Remove.
4657 (LINE_INFO_TABLE_INCREMENT): Remove.
4658 (line_info_label_num): New.
4659 (cur_line_info_table): New.
4660 (text_section_line_info, cold_text_section_line_info): New.
4661 (separate_line_info): New.
4662 (SEPARATE_LINE_CODE_LABEL): Remove.
4663 (print_dwarf_line_table): Remove.
4664 (debug_dwarf): Don't dump it.
4665 (output_one_line_info_table): New.
4666 (output_line_info): Use it.
4667 (new_line_info_table): New.
4668 (set_cur_line_info_table): New.
4669 (dwarf2out_switch_text_section): Use it.
4670 (dwarf2out_begin_function): Likewise.
4671 (push_dw_line_info_entry): New.
4672 (dwarf2out_source_line): Rewrite for new line info tables.
4673 (dwarf2out_init): Remove dead initailizations.
4674
300d83d9
JM
46752011-03-31 Joseph Myers <joseph@codesourcery.com>
4676
4677 * opts.h (cl_option): Add comments to fields. Add bit-fields for
4678 various flags.
4679 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
4680 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
4681 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
4682 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
4683 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
4684 * opt-functions.awk (flag_init, switch_bit_fields): New.
4685 (switch_flags): Don't handle flags moved to bit-fields. Don't
4686 generate CL_MISSING_OK or CL_SAVE.
4687 * optc-gen.awk: Update to generate bit-field output as well as
4688 flags field.
4689 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
4690 bit-field instead of CL_REJECT_DRIVER flag.
4691 * opts-common.c (generate_canonical_option,
4692 decode_cmdline_option): Use bit-fields instead of CL_* flags.
4693 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
4694 instead of CL_REJECT_NEGATIVE flag.
4695 * toplev.c (print_switch_values): Use cl_report bit-field instead
4696 of CL_REPORT flag.
4697
d4d73ce2
EB
46982011-03-31 Eric Botcazou <ebotcazou@adacore.com>
4699
4700 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
4701 a zero minimum index only if it is redundant.
4702
b8faca75
VM
47032011-03-31 Vladimir Makarov <vmakarov@redhat.com>
4704
4705 PR rtl-optimization/48381
4706 * ira-color.c (assign_hard_reg): Use hard reg set intersection
4707 instead of ira_class_hard_reg_index for calculating conflicting
4708 hard registers.
4709
7d11cebe
SB
47102011-03-31 Steven Bosscher <steven@gcc.gnu.org>
4711
4712 * cprop.c: Clean up hash table building.
4713 (reg_avail_info): Remove.
4714 (oprs_available_p): Remove.
4715 (record_last_reg_set_info): Remove.
4716 (record_last_set_info): Remove.
4717 (reg_available_p): New function.
4718 (gcse_constant_p): Do not treat unfolded conditions as constants.
4719 (make_set_regs_unavailable): New function.
4720 (hash_scan_set): Simplify with new reg_available_p.
4721 (compute_hash_table_work): Traverse insns stream only once.
4722 Do not compute reg_avail_info. Traverse insns in reverse order.
4723 Record implicit sets after recording explicit sets from the block.
4724
98faf84f
MM
47252011-03-31 Michael Matz <matz@suse.de>
4726
e9c18386 4727 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 4728
f52d97da
AS
47292011-03-31 Anatoly Sokolov <aesok@post.ru>
4730
4731 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
4732 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
4733 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4734 (h8300_mode_dependent_address_p): New function.
4735 (h8300_get_index): Make static.
4736
e16b6fd0
JL
47372011-03-31 Jeff Law <law@redhat.com>
4738
10c51983
JL
4739 * reload1.c (elimination_effects): Fix typo in recent change.
4740
e9c18386 4741 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
4742 typo potentially leading to null pointer dereference.
4743
4744 * caller-save.c (new_saved_hard_reg): Eliminate return value.
4745 (setup_save_areas): Corresponding changes to avoid useless
4746 assignments.
4747
4748 * jump.c (reversed_comparison_code_parts): Avoid successive return
4749 statements when REVERSE_CONDITION is defined.
4750
4751 * expr.c (expand_assignment): Avoid useless assignments.
4752 (expand_expr_real_1): Likewise.
4753 (expand_expr_real_2): Avoid useless statements.
4754
4755 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
4756
4757 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4758
4759 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
4760 statements.
4761
4762 * stmt.c (expand_expr_stmt): Avoid useless assignment.
4763
eb1eb914
JM
47642011-03-31 Joseph Myers <joseph@codesourcery.com>
4765
4766 PR target/47109
4767 * doc/tm.texi.in (TARGET_VERSION): Remove.
4768 * doc/tm.texi: Regenerate.
4769 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
4770 * collect2.c (main): Don't use TARGET_VERSION.
4771 * mips-tdump.c (main): Don't use TARGET_VERSION.
4772 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 4773 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
4774 * config/rs6000/vxworksae.h: Remove.
4775 * config/alpha/alpha.h (TARGET_VERSION): Remove.
4776 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
4777 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
4778 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
4779 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4780 * config/arm/arm.h (TARGET_VERSION): Remove.
4781 * config/arm/coff.h (TARGET_VERSION): Remove.
4782 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
4783 * config/arm/elf.h (TARGET_VERSION): Remove.
4784 * config/arm/freebsd.h (TARGET_VERSION): Remove.
4785 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
4786 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
4787 * config/arm/pe.h (TARGET_VERSION): Remove.
4788 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
4789 * config/arm/semi.h (TARGET_VERSION): Remove.
4790 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
4791 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
4792 * config/arm/vxworks.h (TARGET_VERSION): Remove.
4793 * config/avr/avr.h (TARGET_VERSION): Remove.
4794 * config/bfin/bfin.h (TARGET_VERSION): Remove.
4795 * config/fr30/fr30.h (TARGET_VERSION): Remove.
4796 * config/frv/frv.h (TARGET_VERSION): Remove.
4797 * config/h8300/h8300.h (TARGET_VERSION): Remove.
4798 * config/i386/cygwin.h (TARGET_VERSION): Remove.
4799 * config/i386/darwin.h (TARGET_VERSION): Remove.
4800 * config/i386/darwin64.h (TARGET_VERSION): Remove.
4801 * config/i386/djgpp.h (TARGET_VERSION): Remove.
4802 * config/i386/freebsd.h (TARGET_VERSION): Remove.
4803 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
4804 * config/i386/gnu.h (TARGET_VERSION): Remove.
4805 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
4806 * config/i386/i386elf.h (TARGET_VERSION): Remove.
4807 * config/i386/linux.h (TARGET_VERSION): Remove.
4808 * config/i386/linux64.h (TARGET_VERSION): Remove.
4809 * config/i386/lynx.h (TARGET_VERSION): Remove.
4810 * config/i386/mingw32.h (TARGET_VERSION): Remove.
4811 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
4812 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
4813 * config/i386/netware.h (TARGET_VERSION): Remove.
4814 * config/i386/nto.h (TARGET_VERSION): Remove.
4815 * config/i386/openbsd.h (TARGET_VERSION): Remove.
4816 * config/i386/vxworks.h (TARGET_VERSION): Remove.
4817 * config/ia64/elf.h (TARGET_VERSION): Remove.
4818 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
4819 * config/ia64/hpux.h (TARGET_VERSION): Remove.
4820 * config/ia64/linux.h (TARGET_VERSION): Remove.
4821 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
4822 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
4823 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4824 * config/lm32/lm32.h (TARGET_VERSION): Remove.
4825 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
4826 * config/m32c/m32c.h (TARGET_VERSION): Remove.
4827 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
4828 * config/m32r/m32r.h (TARGET_VERSION): Remove.
4829 * config/m68k/linux.h (TARGET_VERSION): Remove.
4830 * config/m68k/m68k.h (TARGET_VERSION): Remove.
4831 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
4832 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
4833 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
4834 * config/mep/mep.h (TARGET_VERSION): Remove.
4835 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
4836 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
4837 * config/mips/iris6.h (MACHINE_TYPE): Remove.
4838 * config/mips/linux.h (TARGET_VERSION): Remove.
4839 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
4840 * config/mips/vxworks.h (TARGET_VERSION): Remove.
4841 * config/mmix/mmix.h (TARGET_VERSION): Remove.
4842 * config/mn10300/linux.h (TARGET_VERSION): Remove.
4843 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
4844 * config/pa/pa.h (TARGET_VERSION): Remove.
4845 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
4846 * config/picochip/picochip.h (TARGET_VERSION): Remove.
4847 * config/rs6000/aix.h (TARGET_VERSION): Remove.
4848 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
4849 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
4850 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
4851 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
4852 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
4853 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
4854 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
4855 * config/rs6000/linux.h (TARGET_VERSION): Remove.
4856 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
4857 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
4858 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
4859 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
4860 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
4861 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
4862 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
4863 * config/s390/linux.h (TARGET_VERSION): Remove.
4864 * config/s390/s390.h (TARGET_VERSION): Remove.
4865 * config/s390/tpf.h (TARGET_VERSION): Remove.
4866 * config/score/score.h (TARGET_VERSION): Remove.
4867 * config/sh/linux.h (TARGET_VERSION): Remove.
4868 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
4869 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
4870 * config/sh/sh.h (TARGET_VERSION): Remove.
4871 * config/sh/sh64.h (TARGET_VERSION): Remove.
4872 * config/sh/superh.h (TARGET_VERSION): Remove.
4873 * config/sh/vxworks.h (TARGET_VERSION): Remove.
4874 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
4875 * config/sparc/linux.h (TARGET_VERSION): Remove.
4876 * config/sparc/linux64.h (TARGET_VERSION): Remove.
4877 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
4878 TARGET_NAME32, TARGET_NAME): Remove.
4879 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
4880 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
4881 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
4882 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
4883 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
4884 * config/spu/spu.h (TARGET_VERSION): Remove.
4885 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
4886 * config/v850/v850.h (TARGET_VERSION): Remove.
4887 * config/vax/linux.h (TARGET_VERSION): Remove.
4888 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
4889 * config/xtensa/elf.h (TARGET_VERSION): Remove.
4890 * config/xtensa/linux.h (TARGET_VERSION): Remove.
4891
ace31bca
EB
48922011-03-31 Eric Botcazou <ebotcazou@adacore.com>
4893
4894 PR target/48142
4895 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
4896 frame-related from frame-unrelated adjustments to the stack pointer.
4897
76f9db36
JJ
48982011-03-31 Jakub Jelinek <jakub@redhat.com>
4899
4900 * common.opt (fdebug-types-section): Move earlier.
4901 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
4902
b7826465
AT
49032011-03-31 Andreas Tobler <andreast@fgznet.ch>
4904
4905 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
4906 var.
4907
1290e54c
NF
49082011-03-30 Nathan Froyd <froydnj@codesourcery.com>
4909
4910 * tree.h (CASE_CHAIN): Define.
4911 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
4912 (gimple_redirect_edge_and_branch): Likewise.
4913
bddc98e1
VM
49142011-03-30 Vladimir Makarov <vmakarov@redhat.com>
4915
4916 PR middle-end/48367
4917 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
4918 calculation.
4919
c865e437
JL
49202011-03-30 Jeff Law <law@redhat.com>
4921
b3750213 4922 * PR bootstrap/48371
c865e437
JL
4923 * reload1.c (reload): Fix botch in last change.
4924
4925 * reload.h (struct reload): Fix typo introduced in last change.
4926
2cdf9574
JM
49272011-03-30 Joseph Myers <joseph@codesourcery.com>
4928
4929 * config/arm/arm.opt (mhard-float, msoft-float): Mark
4930 Undocumented. Remove help text.
4931 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
4932 -mhard-float.
4933
666a21a2
JM
49342011-03-30 Joseph Myers <joseph@codesourcery.com>
4935
4936 * doc/options.texi (NegativeAlias): Document.
4937 (Alias): Mention NegativeAlias.
4938 * opt-functions.awk: Handle NegativeAlias.
e9c18386 4939 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
4940 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
4941 * opts.h (CL_NEGATIVE_ALIAS): Define.
4942 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
4943 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
4944 OPT_mspe_.
4945 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
4946 Alias entries.
4947 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
4948 mno-spe and mno-isel instead of mspe=no and -misel=no.
4949
0fa4e351
MW
49502011-03-29 Mark Wielaard <mjw@redhat.com>
4951
4952 * common.opt (fdebug-types-section): New flag.
4953 * doc/invoke.texi: Document new -fno-debug-types-section flag.
4954 * dwarf2out.c (use_debug_types): New define.
4955 (struct die_struct): Mark die_id with GTY desc use_debug_types.
4956 (print_die): Guard output of type unit signatures using
4957 use_debug_types.
4958 (build_abbrev_table): Replace assert of dwarf_version >= 4
4959 with assert on use_debug_types.
4960 (size_of_die): Likewise.
4961 (unmark_dies): Likewise.
4962 (value_format): Decide AT_ref_external form on use_debug_types.
4963 (output_die): Replace dwarf_version version check guard with
4964 use_debug_types where appropriate.
4965 (modified_type_die): Likewise.
4966 (gen_reference_type_die): Likewise.
4967 (dwarf2out_start_source_file): Likewise.
4968 (dwarf2out_end_source_file): Likewise.
4969 (prune_unused_types_walk_attribs): Likewise.
4970 (dwarf2out_finish): Likewise.
4971
4648deb4
VM
49722011-03-30 Vladimir Makarov <vmakarov@redhat.com>
4973
4974 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
4975
4f431835
RS
49762011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
4977
4978 PR rtl-optimization/48332
4979 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
4980 mode of input operand N and modeN to its actual mode.
4981
f2034d06
JL
49822011-03-30 Jeff Law <law@redhat.com>
4983
4984 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
4985 define accessor macro.
4986 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
4987 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
4988 (reg_equiv_init): Likewise.
4989 (reg_equivs_size): New variable.
4990 (reg_equiv_init_size): Remove.
4991 (allocate_initial_values): Move prototype to here from....
4992 * integrate.h (allocate_initial_values): Remove prototype.
4993 * integrate.c: Include reload.h.
4994 (allocate_initial_values): Corresponding changes.
4995 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
4996 (fix_reg_equiv_init, no_equiv): Corresponding changes.
4997 (update_equiv_regs): Corresponding changes.
4998 (ira): Corresponding changes.
4999 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5000 (push_secondary_reload): Corresponding changes.
5001 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5002 (make_memloc, find_reloads_address): Corresponding changes.
5003 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5004 (find_reloads_address_1): Corresponding changes.
5005 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5006 (refers_to_regno_for_reload_p): Corresponding changes.
5007 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5008 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5009 * reload1.c: Include ggc.h.
5010 (grow_reg_equivs): New function.
5011 (replace_pseudos_in, reload): Corresponding changes.
5012 (calculate_needs_all_insns, alter_regs): Corresponding changes.
5013 (eliminate_regs_1, elimination_effects): Corresponding changes.
5014 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5015 (delete_output_reload): Likewise.
5016 * caller-save.c (mark_referenced_regs): Corresponding changes.
5017 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5018 * frv/predicates.md (frv_load_operand): Corresponding changes.
5019 * microblaze/microblaze.c (double_memory_operand): Corresponding
5020 changes.
5021 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5022 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 5023 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
5024 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5025 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5026 changes.
5027 * pa/pa.c (emit_move_sequence): Corresponding changes.
5028 * vax/vax.c (nonindexed_address_p): Corresponding changes.
5029
159b81b0
RS
50302011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5031
5032 PR target/47551
5033 * config/arm/arm.c (coproc_secondary_reload_class): Handle
5034 structure modes. Don't check neon_vector_mem_operand for
5035 vector or structure modes.
5036
a6217191
RS
50372011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5038 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5039
5040 PR target/43590
5041 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5042 operand 1 and reshuffle the operands to match.
5043 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5044
bd837408
CS
50452011-03-30 Christian Schüler <cschueler@gmx.de>
5046
6955d771 5047 PR driver/48208
bd837408 5048 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 5049
6955d771 5050 PR driver/48260
bd837408
CS
5051 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5052 handler function.
5053 * config/darwin.opt: Added '-arch' option.
5054
e9c0470a
NC
50552011-03-30 Nick Clifton <nickc@redhat.com>
5056
5057 * config/rx/rx.md: Add peepholes and patterns to combine
5058 extending loads and simple arithmetic instructions.
5059 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
5060 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5061 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 5062 modes to use pre-decrement and post-increment addressing.
e9c18386 5063 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 5064 addresses.
e9c18386
UB
5065 (rx_print_operand): Add support for %Q. Fix handling of %Q.
5066 (rx_memory_move_cost): Adjust cost of stores.
5067 (rx_adjust_insn_length): New function.
e9c0470a 5068
8a87e7ab
JJ
50692011-03-30 Jakub Jelinek <jakub@redhat.com>
5070
5071 PR c/48305
5072 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5073 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
5074 matching arg00/arg01 types.
5075
12486e03
EB
50762011-03-30 Eric Botcazou <ebotcazou@adacore.com>
5077
5078 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
5079 last_location to UNKNOWN_LOCATION.
5080
0b99eef6
L
50812011-03-30 H.J. Lu <hongjiu.lu@intel.com>
5082
5083 PR target/48349
5084 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
5085 FLOAT_SSE_REGS.
5086
023592aa
JM
50872011-03-30 Joseph Myers <joseph@codesourcery.com>
5088 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5089
5090 PR bootstrap/48337
5091 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
5092 Init(PROCESSOR_V7).
5093 (sparc_cpu): Likewise.
5094 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
5095 PROCESSOR_V7.
5096
ad3b266b
VM
50972011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5098
5099 PR target/48336
5100 PR middle-end/48342
5101 PR rtl-optimization/48345
5102 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
5103 hard regs for given mode from profitable regs when doing secondary
5104 allocation.
5105
633c9126
JL
51062011-03-29 Jeff Law <law@redhat.com>
5107
5108 PR bootstrap/48327
5109 * tree-ssa-threadupdate.c (struct redirection_data): Remove
5110 do_not_duplicate field.
5111 (lookup_redirection_data): Corresponding changes.
5112 (create_duplicates): Always create a template block.
5113 (redirect_edges): Remove code which reused the original block
5114 when it was going to become unreachable code.
5115 (thread_block): Don't set do_not_duplicate field.
5116
eb50f63a
JM
51172011-03-29 Joseph Myers <joseph@codesourcery.com>
5118
5119 * lto-opts.c (register_user_option_p, lto_register_user_option):
5120 Make type argument unsigned.
5121 * lto-streamer.h (lto_register_user_option): Make type argument
5122 unsigned.
5123 * opth-gen.awk: Make CL_* macros unsigned.
5124 * opts-common.c (find_opt): Make lang_mask argument unsigned.
5125 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
5126 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
5127 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
5128 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
5129 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
5130 (find_opt): Make lang_mask argument unsigned.
5131
76763a6d
VM
51322011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5133
5134 PR rtl-optimization/48331
5135 PR rtl-optimization/48334
5136 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
5137 for any used algorithm.
5138
5c82436e
VM
51392011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5140
5141 * ira-conflicts.c (build_object_conflicts): Add unused attribute
5142 to parent_max.
5143
7a81008b
UB
51442011-03-29 Uros Bizjak <ubizjak@gmail.com>
5145
5146 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
5147 (alpha_option_override): Don't set alpha_sr_alias_set.
5148 (emit_frame_store_1): Use gen_frame_mem rather than calling
5149 set_mem_alias_set.
5150 (alpha_expand_epilogue): Ditto.
5151
86c8d1f6
IR
51522011-03-29 Ira Rosen <ira.rosen@linaro.org>
5153
5154 PR tree-optimization/48290
5155 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
5156 vectorization, check that relevant phis in the basic block after
5157 the inner loop are really inner loop's exit phis.
5158
0d12220f
RS
51592011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
5160
e8cf17e7 5161 PR debug/48190
0d12220f
RS
5162 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
5163 (cached_dw_loc_list_def): New structure.
5164 (cached_dw_loc_list): New typedef.
5165 (cached_dw_loc_list_table): New variable.
5166 (cached_dw_loc_list_table_hash): New function.
5167 (cached_dw_loc_list_table_eq): Likewise.
5168 (add_location_or_const_value_attribute): Take a bool cache_p.
5169 Cache the list when the parameter is true.
5170 (gen_formal_parameter_die): Update caller.
5171 (gen_variable_die): Likewise.
5172 (dwarf2out_finish): Likewise.
5173 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
5174 while generating debug info for the decl.
5175 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
5176 (dwarf2out_init): Initialize cached_dw_loc_list_table.
5177 (resolve_addr): Cache the result of resolving a chain of
5178 location lists.
5179
1756cb66
VM
51802011-03-28 Vladimir Makarov <vmakarov@redhat.com>
5181
5182 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
5183 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 5184
1756cb66
VM
5185 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
5186 after regstat_init_n_sets_and_refs.
5187
5188 * ira.c: Add more comments at the top.
5189 (setup_stack_reg_pressure_class, setup_pressure_classes):
5190 Add comments how we compute the register pressure classes.
5191 (setup_allocno_and_important_classes): Add more comments.
5192 (setup_class_translate_array, reorder_important_classes)
5193 (setup_reg_class_relations): Add comments.
5194
5195 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
5196 start of the file.
5197
5198 * ira-color.c: Add 2011 to the Copyright line.
5199 (assign_hard_reg): Add more comments.
5200 (improve_allocation): Ditto.
5201
5202 * ira-costs.c: Add 2011 to the Copyright line.
5203 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
5204 comments.
5205 (setup_regno_cost_classes_by_mode): Ditto.
5206
5207 Initial patches from ira-improv branch:
5208
5209 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5210
f60c2554 5211 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
5212 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
5213 (ira_create_allocno): Remove initialization of
5214 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
5215 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
5216 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5217 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
5218 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
5219 Initialize ALLOCNO_ADD_DATA.
5220 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
5221 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
5222 ALLOCNO_REG.
5223 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
5224 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
5225
5226 * ira.c (ira_reallocate): Remove.
5227 (setup_pressure_classes): Call
5228 ira_init_register_move_cost_if_necessary. Use
5229 ira_register_move_cost instead of ira_get_register_move_cost.
5230 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
5231 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
5232
5233 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
5234 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5235 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
5236 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
5237 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
5238 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
5239 Fix formatting.
7a81008b 5240 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
5241 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
5242 (struct allocno_color_data): New.
5243 (allocno_color_data_t): New typedef.
5244 (allocno_color_data): New definition.
5245 (ALLOCNO_COLOR_DATA): New macro.
5246 (struct object_color_data): New.
5247 (object_color_data_t): New typedef.
5248 (object_color_data): New definition.
5249 (OBJECT_COLOR_DATA): New macro.
5250 (update_copy_costs, calculate_allocno_spill_cost): Call
5251 ira_init_register_move_cost_if_necessary. Use
5252 ira_register_move_cost instead of ira_get_register_move_cost.
5253 (move_spill_restore, update_curr_costs): Ditto.
5254 (allocno_spill_priority): Make it inline.
7a81008b 5255 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
5256 (struct coalesce_data, coalesce_data_t): New.
5257 (allocno_coalesce_data): New definition.
5258 (ALLOCNO_COALESCE_DATA): New macro.
5259 (merge_allocnos, coalesced_allocno_conflict_p): Use
5260 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
5261 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
5262 (coalesce_allocnos): Ditto.
5263 (setup_coalesced_allocno_costs_and_nums): Ditto.
5264 (collect_spilled_coalesced_allocnos): Ditto.
5265 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
5266 (setup_slot_coalesced_allocno_live_ranges): Ditto.
5267 (coalesce_spill_slots): Ditto.
5268 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
5269 free allocno_coalesce_data.
5270
5271 * ira-conflicts.c: Fix formatting.
5272 (process_regs_for_copy): Call
5273 ira_init_register_move_cost_if_necessary. Use
5274 ira_register_move_cost instead of ira_get_register_move_cost.
5275 (build_object_conflicts): Optimize.
5276
5277 * ira-costs.c (record_reg_classes): Optimize. Call
5278 ira_init_register_move_cost_if_necessary. Use
5279 ira_register_move_cost, ira_may_move_in_cost, and
5280 ira_may_move_out_cost instead of ira_get_register_move_cost and
5281 ira_get_may_move_cost.
5282 (record_address_regs): Ditto.
5283 (scan_one_insn): Optimize.
5284 (find_costs_and_classes): Optimize.
5285 (process_bb_node_for_hard_reg_moves): Call
5286 ira_init_register_move_cost_if_necessary. Use
5287 ira_register_move_cost instead of ira_get_register_move_cost.
5288
5289 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
5290 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
5291 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
5292 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
5293 definitions.
5294 (ira_initiate_emit_data, ira_finish_emit_data)
5295 (create_new_allocno): New functions.
7a81008b 5296 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
5297 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
5298 Use ira_register_move_cost instead of ira_get_register_move_cost.
5299
5300 * ira-int.h: Fix some comments.
7a81008b
UB
5301 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
5302 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
5303 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
5304 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
5305 add_data.
5306 (struct ira_allocno): Make mode and aclass a bitfield. Move other
5307 bitfield after mode. Make hard_regno a short int. Make
5308 hard_regno short. Remove first_coalesced_allocno and
5309 next_coalesced_allocno. Move mem_optimized_dest_p,
5310 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
5311 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
5312 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
5313 temp, colorable_p. Add new member add_data.
5314 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
5315 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
5316 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
5317 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
5318 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
5319 (ALLOCNO_ADD_DATA): New macro.
5320 (ira_emit_data_t): New typedef.
5321 (struct ira_emit_data): New. Move mem_optimized_dest_p,
5322 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
5323 from struct ira_allocno.
5324 (ALLOCNO_EMIT_DATA): New macro.
5325 (ira_allocno_emit_data, allocno_emit_reg): New.
5326 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 5327 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
5328 (OBJECT_ADD_DATA): New macro.
5329 (ira_reallocate): Remove.
5330 (ira_initiate_emit_data, ira_finish_emit_data): New.
5331 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
5332 (ira_init_register_move_cost_if_necessary): New.
5333 (ira_object_conflict_iter_next): Merge into
5334 ira_object_conflict_iter_cond.
7a81008b 5335 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 5336
f60c2554 5337 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
5338 ira_init_register_move_cost_if_necessary. Use
5339 ira_register_move_cost instead of ira_get_register_move_cost.
5340
5341 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5342
5343 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
5344
5345 * ira-costs.c: Fix formatting.
5346 (cost_classes, cost_classes_num): Remove.
5347 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
5348 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
5349 (cost_classes_del, cost_classes_htab): New.
5350 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
5351 (initiate_regno_cost_classes, setup_cost_classes): New.
5352 (setup_regno_cost_classes_by_aclass): New.
7a81008b 5353 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
5354 (record_reg_classes): Use regno_cost_classes instead of
5355 cost_classes. Move checking opposite operand up.
5356 (record_address_regs): Use regno_cost_classes
5357 instead of cost_classes.
5358 (scan_one_insn): Ditto. Use always general register.
5359 (print_allocno_costs): Use regno_cost_classes instead of
5360 cost_classes.
5361 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
5362 (find_costs_and_classes): Set up cost classes for each registers.
5363 Use also their mode for this. Use regno_cost_classes instead of
5364 cost_classes.
5365 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
5366 cost_classes.
5367 (free_ira_costs, ira_init_costs): Don't use cost_classes.
5368 (ira_costs, ira_set_pseudo_classes): Call
5369 initiate_regno_cost_classes and finish_regno_cost_classes.
5370
5371 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
5372
5373 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
5374
5375 * target.def (ira_cover_classes): Remove.
5376
7a81008b 5377 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
5378
5379 * doc/tm.texi.in: Ditto.
5380
5381 * ira-conflicts.c: Remove mentioning cover classes from the file.
5382 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 5383 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
5384
5385 * targhooks.c (default_ira_cover_classes): Remove.
5386
5387 * targhooks.h (default_ira_cover_classes): Ditto.
5388
5389 * haifa-sched.c: Remove mentioning cover classes from the file.
5390 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
5391 ira_pressure_classes and ira_pressure_classes_num instead of
5392 ira_reg_class_cover_size and ira_reg_class_cover. Use
5393 sched_regno_pressure_class instead of sched_regno_cover_class.
5394 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
5395 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5396
5397 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
5398 classes from the file.
5399 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
5400 (struct object_hard_regs, struct object_hard_regs_node): New.
5401 (struct ira_object): New members profitable_hard_regs,
5402 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
5403 (struct ira_allocno): Rename cover_class to aclass. Rename
5404 cover_class_cost and updated_cover_class_cost to class_cost and
5405 updated_class_cost. Remove splay_removed_p and
5406 left_conflict_size. Add new members colorable_p.
5407 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
5408 (ALLOCNO_COLORABLE_P): New macro.
5409 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
5410 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
5411 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
5412 (OBJECT_...): Rename parameter C to O.
5413 (OBJECT_PROFITABLE_HARD_REGS): New macro.
5414 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
5415 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
5416 (struct target_ira_int): New members x_ira_max_memory_move_cost,
5417 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
5418 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
5419 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
5420 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
5421 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
5422 x_ira_reg_class_subunion.
5423 (ira_max_memory_move_cost, ira_max_register_move_cost)
5424 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
5425 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
5426 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 5427 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
5428 (ira_reg_class_union): Rename to ira_reg_class_subunion.
5429 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5430 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5431 (ira_tune_allocno_costs_and_cover_classes): Rename to
5432 ira_tune_allocno_costs.
5433 (ira_debug_hard_regs_forest): New.
5434 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
5435 (ira_object_conflict_iter_next): Fix comments.
7a81008b 5436 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
5437 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
5438 cover_class to aclass.
5439 (ira_allocate_and_accumulate_costs): Ditto.
5440 (ira_allocate_and_set_or_copy_costs): Ditto.
5441
5442 * opts.c (decode_options): Remove ira_cover_class check.
5443
5444 * ira-color.c: Remove mentioning cover classes from the file. Use
5445 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
5446 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
5447 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
5448 (splay-tree.h): Remove include.
5449 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
5450 before copy_freq_compare_func.
5451 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
5452 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
5453 New definitions.
5454 (hard_regs_roots, hard_regs_node_vec): Ditto.
5455 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
5456 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
5457 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
5458 (create_new_object_hard_regs_node): Ditto.
5459 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 5460 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
5461 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
5462 Ditto.
5463 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
5464 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
5465 (remove_unused_object_hard_regs_nodes): Ditto.
5466 (enumerate_object_hard_regs_nodes): Ditto.
5467 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
5468 (object_hard_regs_subnode_t): Ditto.
5469 (struct object_hard_regs_subnode): Ditto.
5470 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
5471 (setup_object_hard_regs_subnode_index): Ditto.
5472 (get_object_hard_regs_subnodes_num): Ditto.
5473 (form_object_hard_regs_nodes_forest): Ditto.
5474 (finish_object_hard_regs_nodes_tree): Ditto.
5475 (finish_object_hard_regs_nodes_forest): Ditto.
5476 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 5477 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
5478 (pseudos_have_intersected_live_ranges_p): Rename to
5479 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
5480 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
5481 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
5482 (update_copy_costs): Remove assert. Skip cost update if the hard
5483 reg does not belong the class.
5484 (assign_hard_reg): Process only profitable hard regs.
5485 (uncolorable_allocnos_num): Make it scalar.
5486 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
5487 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
5488 and ira_reg_class_max_nregs.
5489 (bucket_allocno_compare_func): Check frequency first.
5490 (sort_bucket): Add compare function as a parameter.
5491 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
5492 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
5493 (push_allocno_to_stack): Rewrite for checking new allocno
5494 colorability.
7a81008b 5495 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
5496 (push_only_colorable): Pass new parameter to sort_bucket.
5497 (push_allocno_to_spill): Remove.
5498 (allocno_spill_priority_compare): Make it inline and rewrite.
5499 (splay_tree_allocate, splay_tree_free): Remove.
5500 (allocno_spill_sort_compare): New function.
5501 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
5502 build and use splay tree. Choose first allocno in uncolorable
5503 allocno bucket to spill. Remove setting spill cost.
5504 (all_conflicting_hard_regs): Remove.
5505 (setup_allocno_available_regs_num): Check only profitable hard
5506 regs. Print info about hard regs nodes.
5507 (setup_allocno_left_conflicts_size): Remove.
5508 (put_allocno_into_bucket): Don't call
7a81008b 5509 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
5510 (improve_allocation): New.
5511 (color_allocnos): Call setup_profitable_hard_regs,
5512 form_object_hard_regs_nodes_forest, improve_allocation,
5513 finish_object_hard_regs_nodes_forest. Setup spill cost.
5514 (print_loop_title): Use pressure classes.
5515 (color_allocnso): Ditto.
5516 (do_coloring): Remove allocation and freeing splay_tree_node_pool
5517 and allocnos_for_spilling.
5518 (ira_sort_regnos_for_alter_reg): Don't setup members
5519 {first,next}_coalesced_allocno.
5520 (color): Remove allocating and freeing removed_splay_allocno_vec.
5521 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
5522 prohibited_class_mode_regs.
5523
5524 * ira-lives.c: Remove mentioning cover classes from the file. Fix
5525 formatting.
5526 (update_allocno_pressure_excess_length): Use pressure classes.
5527 (inc_register_pressure, dec_register_pressure): Check for pressure
5528 class.
5529 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
5530 pressure class. Use ira_reg_class_nregs instead of
5531 ira_reg_class_max_nregs.
5532 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
5533 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
5534 (single_reg_class): Use ira_reg_class_nregs instead of
5535 ira_reg_class_max_nregs.
5536 (process_bb_node_lives): Use pressure classes.
5537
5538 * ira-emit.c: Remove mentioning cover classes from the file. Use
5539 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
5540 (change_loop): Use pressure classes.
5541 (modify_move_list): Call ira_set_allocno_class instead of
5542 ira_set_allocno_cover_class.
5543
5544 * ira-build.c: Remove mentioning cover classes from the file. Use
5545 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
5546 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
5547 ALLOCNO_UPDATED_CLASS_COST instead of
5548 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
5549 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
5550 (ira_create_allocno): Remove initialization of
5551 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
5552 ALLOCNO_COLORABLE_P.
5553 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5554 Update conflict regs for the objects.
5555 (create_cap_allocno): Remove assert. Don't propagate
5556 ALLOCNO_AVAILABLE_REGS_NUM.
5557 (ira_free_allocno_costs): New function.
5558 (finish_allocno): Change a part of code into call of
5559 ira_free_allocno_costs.
5560 (low_pressure_loop_node_p): Use pressure classes.
5561 (object_range_compare_func): Don't compare classes.
5562 (setup_min_max_conflict_allocno_ids): Ditto.
5563
5564 * loop-invariant.c: Remove mentioning cover classes from the file.
5565 Use ira_pressure_classes and ira_pressure_classes_num instead of
5566 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
5567 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
5568 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5569 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
5570 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
5571 STACK_REG_COVER_CLASS.
5572 (get_regno_cover_class): Rename to get_regno_pressure_class.
5573 (move_loop_invariants): Initialize and finalize regstat.
5574
5575 * ira.c: Remove mentioning cover classes from the file. Add
5576 comments about coloring without cover classes. Use ALLOCNO_CLASS
5577 instead of ALLOCNO_COVER_CLASS. Fix formatting.
5578 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
5579 setup_class_subset_and_memory_move_costs.
5580 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
5581 (setup_cover_and_important_classes): Rename to
5582 setup_allocno_and_important_classes.
5583 (setup_class_translate_array): New.
5584 (setup_class_translate): Call it for allocno and pressure classes.
5585 (cover_class_order): Rename to allocno_class_order.
5586 (comp_reg_classes_func): Use ira_allocno_class_translate instead
5587 of ira_class_translate.
5588 (reorder_important_classes): Set up ira_important_class_nums.
5589 (setup_reg_class_relations): Set up ira_reg_class_superunion.
5590 (print_class_cover): Rename to print_classes. Add parameter.
5591 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5592 Print pressure classes too.
5593 (find_reg_class_closure): Rename to find_reg_classes. Don't call
5594 setup_reg_subclasses.
7a81008b 5595 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
5596 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5597 (setup_prohibited_class_mode_regs): Use
7a81008b 5598 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
5599 (clarify_prohibited_class_mode_regs): New function.
5600 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
5601 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
5602 (ira_init_once): Initialize them.
5603 (free_register_move_costs): Process them.
5604 (ira_init): Move calls of find_reg_classes and
5605 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
5606 Call clarify_prohibited_class_mode_regs.
5607 (ira_no_alloc_reg): Remove.
5608 (too_high_register_pressure_p): Use pressure classes.
5609
5610 * sched-deps.c: Remove mentioning cover classes from the file.
5611 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
5612 ira_pressure_classes and ira_pressure_classes_num instead of
5613 ira_reg_class_cover_size and ira_reg_class_cover.
5614 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
5615 sched_regno_pressure_class instead of sched_regno_cover_class.
5616 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
5617 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5618
5619 * ira.h: Add 2010 to Copyright.
5620 (ira_no_alloc_reg): Remove external.
5621 (struct target_ira): Rename x_ira_hard_regno_cover_class,
5622 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
5623 x_ira_class_translate to x_ira_hard_regno_allocno_class,
5624 x_ira_allocno_classes_num, x_ira_allocno_classes, and
5625 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
5626 x_ira_pressure_classes, x_ira_pressure_class_translate, and
5627 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
5628 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
5629 x_ira_no_alloc_regs.
7a81008b 5630 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
5631 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
5632 ira_allocno_classes_num and ira_allocno_classes.
5633 (ira_class_translate): Rename to ira_allocno_class_translate.
5634 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
5635 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
5636 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5637 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
5638 (ira_no_alloc_regs): New.
5639
5640 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
5641 classes from the file. Use ALLOCNO_CLASS instead of
5642 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
5643 ALLOCNO_COVER_CLASS_COST.
5644 (regno_cover_class): Rename to regno_aclass.
5645 (record_reg_classes): Use ira_reg_class_subunion instead of
5646 ira_reg_class_union.
5647 (record_address_regs): Check overflow.
5648 (scan_one_insn): Ditto.
7a81008b 5649 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
5650 (print_pseudo_costs): Use REG_N_REFS.
5651 (find_costs_and_classes): Use classes intersected with them on the
5652 1st pass. Check overflow. Use ira_reg_class_subunion instead of
5653 ira_reg_class_union. Use ira_allocno_class_translate and
5654 regno_aclass instead of ira_class_translate and regno_cover_class.
5655 Modify code for finding regno_aclass. Setup preferred classes for
5656 the next pass.
5657 (setup_allocno_cover_class_and_costs): Rename to
5658 setup_allocno_class_and_costs. Use regno_aclass instead of
5659 regno_cover_class. Use ira_set_allocno_class instead of
5660 ira_set_allocno_cover_class.
5661 (init_costs, finish_costs): Use regno_aclass instead of
5662 regno_cover_class.
5663 (ira_costs): Use setup_allocno_class_and_costs instead of
5664 setup_allocno_cover_class_and_costs.
5665 (ira_tune_allocno_costs_and_cover_classes): Rename to
5666 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
5667 by processing objects. Use ira_reg_class_max_nregs instead of
5668 ira_reg_class_nregs.
5669
5670 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
5671
5672 * sched-int.h: Remove mentioning cover classes from the file.
5673 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
5674
5675 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
5676 classes from the file.
5677 (struct reg_pref): Rename coverclass into allocnoclass.
5678 (reg_cover_class): Rename to reg_allocno_class.
5679
7a81008b 5680 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
5681
5682 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
5683
5684 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
5685
5686 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
5687
5688 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
5689
5690 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
5691
5692 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
5693
5694 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
5695
5696 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
5697
5698 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
5699
5700 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
5701 (i386_ira_cover_classes): Ditto.
5702
5703 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
5704
5705 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
5706
5707 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
5708
5709 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
5710
5711 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
5712
5713 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
5714
5715 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
5716 (mips_ira_cover_classes): Ditto.
5717
5718 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
5719
5720 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
5721
5722 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
5723
5724 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
5725
5726 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
5727
5728 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
5729 (IRA_COVER_CLASSES_VSX): Ditto.
5730
5731 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
5732 (rs6000_ira_cover_classes): Ditto.
5733
5734 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
5735
5736 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
5737
5738 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
5739
5740 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
5741
5742 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
5743
5744 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
5745
5746 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
5747
5748 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
5749
5750 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
5751
5752 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
5753
2b80199f
JJ
57542011-03-29 Jakub Jelinek <jakub@redhat.com>
5755
71dae1fe
JJ
5756 PR debug/48253
5757 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
5758 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
5759 dw_fde_unlikely_section_end_label, cold_in_std_section,
5760 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
5761 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
5762 fields.
5763 (output_fde): Use dw_fde_second_{begin,end} if second is
5764 true, otherwise dw_fde_{begin,end}.
5765 (output_call_frame_info): Test dw_fde_second_begin != NULL
5766 instead of dw_fde_switched_sections.
5767 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
5768 fields, initialize new fields. Initialize in_std_section
5769 unconditionally from the first partition.
5770 (dwarf2out_end_epilogue): Don't override dw_fde_end when
5771 dw_fde_second_begin is non-NULL.
5772 (dwarf2out_switch_text_section): Stop initializing removed
5773 dw_fde_struct fields, initialize new fields, initialize
5774 also dw_fde_end here. Set dw_fde_switch_cfi even when
5775 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
5776 (struct var_loc_list_def): Add last_before_switch field.
5777 (arange_table, arange_table_allocated, arange_table_in_use,
5778 ARANGE_TABLE_INCREMENT, add_arange): Removed.
5779 (size_of_aranges): Count !in_std_section and !second_in_std_section
5780 hunks in fdes, instead of looking at arange_table_in_use.
5781 (output_aranges): Add aranges_length argument, don't call
5782 size_of_aranges here. Instead of using aranges_table*
5783 emit ranges for fdes when !in_std_section resp.
5784 !second_in_std_section.
5785 (dw_loc_list): Break ranges crossing section switch.
5786 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 5787 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
5788 (gen_subprogram_die): Don't call add_arange. Use
5789 dw_fde_{begin,end} for first partition and if switched
5790 section dw_fde_second_{begin,end} for the second.
5791 (var_location_switch_text_section_1,
5792 var_location_switch_text_section): New functions.
5793 (dwarf2out_begin_function): Initialize cold_text_section even
5794 when function_section () isn't text_section.
5795 (prune_unused_types): Don't walk arange_table.
5796 (dwarf2out_finish): Don't needlessly test
5797 flag_reorder_blocks_and_partition when testing cold_text_section_used.
5798 If info_section_emitted, call size_of_aranges and if it indicates
5799 non-empty .debug_aranges, call output_aranges with the computed
5800 size. Stop using removed dw_fde_struct fields, use
5801 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
5802 for second.
5803
2b80199f
JJ
5804 PR debug/48203
5805 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
5806 create ENTRY_VALUE if incoming or address of incoming's MEM
5807 is a hard REG.
5808 * dwarf2out.c (mem_loc_descriptor): Don't emit
5809 DW_OP_GNU_entry_value of DW_OP_fbreg.
5810 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
5811 on ENTRY_VALUE is able to find the canonical parameter VALUE.
5812 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
5813 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
5814 ENTRY_VALUE_EXPs.
5815 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
5816 is a REG_P or MEM_P with REG_P address, compute hash directly
5817 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
5818 (preserve_only_constants): Don't clear VALUES forwaring
5819 ENTRY_VALUE to some other VALUE.
5820
8a445129
RS
58212011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
5822
5823 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
5824 instead of GEN_INT.
5825
c82fee88
EB
58262011-03-28 Eric Botcazou <ebotcazou@adacore.com>
5827
5828 * cfgexpand.c (expand_gimple_cond): Always set the source location and
5829 block before expanding the statement.
5830 (expand_gimple_stmt_1): Likewise. Set them here...
5831 (expand_gimple_stmt): ...and not here. Tidy.
5832 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
5833 unknown.
5834
e45425ec
SB
58352011-03-28 Steven Bosscher <steven@gcc.gnu.org>
5836
5837 * Makefile.in: New rule for cprop.o.
5838 * gcse.c: Move constant/copy propagation to cprop.c.
5839 (compute_local_properties): Only handle expression tables.
5840 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
5841 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
5842 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
5843 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 5844 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
5845 compute_cprop_data, find_used_regs, try_replace_reg,
5846 find_avail_set, cprop_jump, constprop_register, cprop_insn,
5847 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
5848 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
5849 find_bypass_set, reg_killed_on_edge, bypass_block,
5850 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
5851 execute_rtl_cprop, pass_rtl_cprop): Move to...
5852 * cprop.c: ...here. New file, constant/copy propagation for RTL
5853 moved from gcse.c to here with minor cleanups in duplicated code.
5854
c09d5426
L
58552011-03-28 H.J. Lu <hongjiu.lu@intel.com>
5856
5857 * config/i386/i386.c (flag_opts): Fix a typo in
5858 -mavx256-split-unaligned-store.
5859
9eaa7740
AS
58602011-03-28 Anatoly Sokolov <aesok@post.ru>
5861
5862 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
5863 LIBCALL_VALUE): Remove macros.
5864 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5865 TARGET_FUNCTION_VALUE_REGNO_P): Define.
5866 (h8300_function_value, h8300_libcall_value,
5867 h8300_function_value_regno_p): New functions.
5868
dcec2be2
AS
58692011-03-28 Anatoly Sokolov <aesok@post.ru>
5870
5871 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
5872
520af9ec
JL
58732011-03-28 Jeff Law <law@redhat.com>
5874
5875 * tree-ssa-threadupdate.c (redirect_edges): Call
5876 create_edge_and_update_destination_phis as needed.
5877 (create_edge_and_update_destination_phis): Accept new BB argument.
5878 All callers updated.
5879 (thread_block): Do not update the profile when threading around
5880 intermediate blocks.
5881 (thread_single_edge): Likewise.
5882 (determine_bb_domination_status): If BB is not a successor of the
5883 loop header, return NONDOMINATING.
5884 (register_jump_thread): Note when we register a jump thread around
5885 an intermediate block.
5886 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
5887 (thread_across_edge): Use it.
5888
7450b54f
TG
58892011-03-28 Tristan Gingold <gingold@adacore.com>
5890
5891 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
5892 when for_return is 2.
5893
649beb33
JL
58942011-03-28 Jeff Law <law@redhat.com>
5895
5896 * var-tracking.c (canonicalize_values_mark): Delete unused
5897 lhs assignment.
5898 (canonicalize_values_star, set_variable_part): Likewise.
5899 (clobber_variable_part, delete_variable_part): Likewise.
5900
d5b8da97
SB
59012011-03-28 Steven Bosscher <steven@gcc.gnu.org>
5902
5903 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
5904
322dd859
MJ
59052011-03-28 Martin Jambor <mjambor@suse.cz>
5906
5907 * tree-inline.c (expand_call_inline): Do not check that destination
5908 node is analyzed.
5909 (optimize_inline_calls): Assert that destination node is analyzed.
5910 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
5911 not call tree_lowering_passes.
5912 * cgraph.h (cgraph_analyze_function): Declare.
5913 * cgraphunit.c (cgraph_analyze_function): Make public.
5914
aa53e58b
JM
59152011-03-28 Joseph Myers <joseph@codesourcery.com>
5916
5917 * config/sparc/sparc-opts.h: New.
5918 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
5919 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
5920 (sparc_option_override): Store processor_type enumeration rather
5921 than string in cpu_default. Remove name and enumeration from
5922 cpu_table. Directly default -mcpu then default -mtune from -mcpu
5923 without using sparc_select. Use target_flags_explicit instead of
5924 fpu_option_set.
5925 * config/sparc/sparc.h (enum processor_type): Move to
5926 sparc-opts.h.
5927 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
5928 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
5929 HeaderInclude entry.
5930 (mcpu=, mtune=): Use Var and Enum.
5931 (sparc_processor_type): New Enum and EnumValue entries.
5932
dd350eba
RO
59332011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5934 Iain Sandoe <iains@gcc.gnu.org>
5935
5936 PR target/48245
5937 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
5938
1b29f05e
EB
59392011-03-28 Eric Botcazou <ebotcazou@adacore.com>
5940
5941 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
5942 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
5943 Insert new statements at it in lieu of STMT.
5944 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
5945 * tree-vect-stmts.c (vectorizable_store): Likewise.
5946 (vectorizable_load): Likewise.
5947
506e6808
UB
59482011-03-28 Uros Bizjak <ubizjak@gmail.com>
5949
5950 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
5951 (divtf3): Ditto.
5952 (multf3): Ditto.
5953 (subtf3): Ditto.
5954
2e939ee9
L
59552011-03-27 H.J. Lu <hongjiu.lu@intel.com>
5956
5957 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
5958 unaligned 256bit load/store.
5959 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
5960 (*avx_movdqu<avxmodesuffix>): Likewise.
5961
5e85ab88
JDA
59622011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5963
5964 PR target/48288
5965 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
5966 * config/pa/pa.md (iordi3): Use new predicate in expander.
5967 (iorsi3): Likewise.
5968
47be3d6d
AS
59692011-03-27 Anatoly Sokolov <aesok@post.ru>
5970
506e6808 5971 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 5972 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
5973 * config/mips/mips-protos.h (mips_function_value): Remove.
5974 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
5975 (mips_function_value_1): ... this. Make static. Handle receiving
5976 the function type in 'fn_decl_or_type' argument.
5977 (mips_function_value, mips_libcall_value,
5978 mips_function_value_regno_p): New function.
5979 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5980 TARGET_FUNCTION_VALUE_REGNO_P): Define.
5981
d253656a
L
59822011-03-27 H.J. Lu <hongjiu.lu@intel.com>
5983
5984 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
5985 and -mavx256-split-unaligned-store.
5986 (ix86_option_override_internal): Split 32-byte AVX unaligned
5987 load/store by default.
5988 (ix86_avx256_split_vector_move_misalign): New.
5989 (ix86_expand_vector_move_misalign): Use it.
5990
5991 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
5992 -mavx256-split-unaligned-store.
5993
5994 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
5995 256bit load/store. Generate unaligned store on misaligned memory
5996 operand.
5997 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
5998 256bit load/store.
5999 (*avx_movdqu<avxmodesuffix>): Likewise.
6000
6001 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6002 -mavx256-split-unaligned-store.
6003
1ea9206a
RS
60042011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6005
6006 PR target/38598
6007 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6008 Update commentary.
6009
b99ce2a8
RS
60102011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6011
6012 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6013 opno arguments with an expand_operand. Use create_input_operand.
6014 (mips_prepare_builtin_target): Delete.
6015 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6016 functions.
6017 (mips_expand_builtin_direct): Use create_output_operand and
6018 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
6019 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
6020 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6021
69d52339
IR
60222011-03-27 Ira Rosen <ira.rosen@linaro.org>
6023
6024 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6025 function.
6026 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6027
ba5e9aca
EB
60282011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6029
6030 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6031 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
6032 basic blocks and call commit_edge_insertions directly.
6033 (fixup_abnormal_edges): Move from here to...
6034 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
6035 on the edges and return whether some have actually been inserted.
6036 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6037 compensation code.
6038
5d369d58
AB
60392011-03-26 Andrey Belevantsev <abel@ispras.ru>
6040
6041 PR rtl-optimization/48144
6042 * sel-sched-ir.c (merge_history_vect): Factor out from ...
6043 (merge_expr_data): ... here.
6044 (av_set_intersect): Rename to av_set_code_motion_filter.
6045 Update all callers. Call merge_history_vect when an expression
6046 is found in both sets.
6047 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6048
f082c000
AM
60492011-03-26 Alan Modra <amodra@gmail.com>
6050
6051 * config/rs6000/predicates.md (word_offset_memref_op): Handle
6052 cmodel medium addresses.
6053 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6054 64-bit gpr loads and stores.
6055 (rs6000_secondary_reload_ppc64): New function.
6056 * config/rs6000/rs6000-protos.h: Declare it.
6057 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6058
8ac5e12e
AM
60592011-03-26 Alan Modra <amodra@gmail.com>
6060
6061 PR target/47487
6062 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6063 GNU Go in traceback table.
6064
c2654ded
RH
60652011-03-25 Richard Henderson <rth@redhat.com>
6066
6067 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6068 if there are exactly 6 operands.
6069 (set_storage_via_setmem): Similarly.
6070
ba78087b
KT
60712011-03-25 Kai Tietz <ktietz@redhat.com>
6072
6073 * collect2.c (write_c_file_stat): Handle backslash
6074 as right-hand directory separator.
6075 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
6076 checking just for slash.
6077 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
6078 instead of checking for trailing slash.
6079 * gcc.c (record_temp_file): Use filename_cmp instead
6080 of strcmp.
6081 (do_spec_1): Likewise.
6082 (replace_outfile_spec_function): Likewise.
6083 (is_directory): Use filename_ncmp instead of strncmp.
6084 (print_multilib_info): Likewise.
6085 * gcov.c (find_source): Use filename_cmp instead
6086 instead of strcmp.
6087 (make_gcov_file_name): Fix order of slash/backslash
6088 checks.
6089 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
6090 (add_standard_paths): Likewise.
6091 * mips-tfile.c (saber_stop): Handle backslash.
6092 * prefix.c (update_path): Use filename_ncmp instead of
6093 strncmp.
6094 * profile.c (output_location): Use filename_cmp instead
6095 of strcmp.
6096 * read-md.c (handle_toplevel_file): Handle backslash.
6097 * tlink.c (frob_extension): Likewise.
6098 * tree-cfg.c (same_line_p): Use filename_cmp instead of
6099 strcmp.
6100 * tree-dump.c (dequeue_and_dump): Handle backslash.
6101 * tree.c (get_file_function_name): Likewise.
6102 * gengtype.c (read_input_list): Likewise.
6103 (get_file_realbasename): Likewise.
6104 (get_output_file_with_visibility): Use filename_cmp
6105 instead of strcmp.
6106
75f6ec9a
RS
61072011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
6108
6109 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
6110 case to VFPv1.
6111
6c4e2997
NF
61122011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6113
6114 * fold-const.c (expr_location_or): New function.
6115 (fold_truth_not_expr): Call it.
6116
0edf1bb2
JL
61172011-03-25 Jeff Law <law@redhat.com>
6118
6119 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
6120 va_end.
6121 * c-family/c-common.c (def_fn_type): Likewise.
6122 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
6123 * emit-rtl.c (gen_rtvec): Likewise.
6124 * lto/lto-lang.c (def_fn_type): Likewise.
6125
fdc2de95
RG
61262011-03-25 Richard Guenther <rguenther@suse.de>
6127
6128 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
6129 also generate copies.
6130 (fini_copy_prop): Handle constant values properly.
6131
21385db0
JJ
61322011-03-25 Jakub Jelinek <jakub@redhat.com>
6133
6134 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
6135 mode size instead of bitsize with DWARF2_ADDR_SIZE.
6136 (hash_loc_operands, compare_loc_operands): Handle
6137 DW_OP_GNU_entry_value.
6138
6510e8bb
KT
61392011-03-25 Kai Tietz <ktietz@redhat.com>
6140
6141 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
6142 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
6143 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
6144 comment and use macro TARGET_64BIT_MS_ABI instead.
6145 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
6146 and change default behavior for 32-bit MS_ABI.
6147 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
6148 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
6149 32-bit, too.
6150 (ix86_cfun_abi): Likewise.
6151 (ix86_maybe_switch_abi): Adjust comment.
6152 (init_cumulative_args): Check for bit-ness in MS_ABI case.
6153 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
6154 instead of checking for SYSV_ABI.
6155 (ix86_nsaved_sseregs): Likewise.
6156 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
6157 to 16 bytes.
6158 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
6159 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
6160 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
6161 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
6162 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
6163
34019e28
RG
61642011-03-25 Richard Guenther <rguenther@suse.de>
6165
6166 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
6167 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6168 (verify_gimple): Remove.
6169 * tree-cfg.c (verify_gimple_call): Merge verification
6170 from verify_stmts.
6171 (verify_gimple_phi): Merge verification from verify_stmts.
6172 (verify_gimple_label): New function.
6173 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
6174 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6175 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
6176 (verify_stmts): Rename to verify_gimple_in_cfg.
6177 (verify_gimple_in_cfg): New function.
6178 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
6179 * tree-ssa.c (verify_ssa): Likewise.
6180 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
6181
605896f5
RG
61822011-03-25 Richard Guenther <rguenther@suse.de>
6183
6184 * passes.c (init_optimization_passes): Add FRE pass after
6185 early SRA.
6186
7baa7c13
BS
61872011-03-25 Bernd Schmidt <bernds@codesourcery.com>
6188 Andrew Stubbs <ams@codesourcery.com>
6189
6190 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
6191 for Cortex-A8.
6192 (arm_movdi_vfp_cortexa8): New pattern.
6193 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
6194 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
6195 instructions when tuning for Cortex-A8. Set attribute "arch".
6196 * config/arm/arm.md: Move include arm-tune.md up a bit.
6197 (define_attr "arch"): Add "onlya8" and "nota8" values.
6198 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
6199
45dbce1b
NF
62002011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6201
4ff08abf 6202 PR bootstrap/48282
45dbce1b
NF
6203 Revert:
6204 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6205
6206 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6207 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6208 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6209 * passes.c (init_optimization_passes): Move
6210 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6211
ac9a30ae
KT
62122011-03-25 Kai Tietz <ktietz@redhat.com>
6213
6214 * c-typeck.c (comptypes_internal): Replace target
6215 hook call of comp_type_attributes by version in tree.c file.
6216 * gimple.c (gimple_types_compatible_p_1): Likewise.
6217 * tree-ssa.c (useless_type_conversion_p): Likewise.
6218 * tree.c (build_type_attribute_qual_variant): Likewise.
6219 (attribute_value_equal): New static helper function.
6220 (comp_type_attributes): New function.
6221 (merge_attributes): Use attribute_value_equal for comparison.
6222 (attribute_list_contained): Likewise.
6223 * tree.h (comp_type_attributes): New prototype.
6224
afdac116
RG
62252011-03-25 Richard Guenther <rguenther@suse.de>
6226
6227 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
6228 of complex types at -O0.
6229 (verify_gimple_assign_binary): Likewise.
6230 (verify_gimple_assign_ternary): Likewise.
6231
ec6165f8
MW
62322011-03-24 Mark Wielaard <mjw@redhat.com>
6233
6234 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
6235 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
6236
2a5ac39a
MW
62372011-03-24 Mark Wielaard <mjw@redhat.com>
6238
6239 PR debug/48041
6240 * dwarf2out.c (output_abbrev_section): Only write table when
6241 abbrev_die_table_in_use > 1.
6242
e533b2a4
RH
62432011-02-24 Richard Henderson <rth@redhat.com>
6244
6245 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
6246 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
6247 (alpha_expand_unaligned_load_words): Use extql.
6248 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
6249 (emit_insxl): Handle all modes for consistency.
6250
0b2a7367
RH
62512011-02-24 Richard Henderson <rth@redhat.com>
6252
6253 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
6254 (alpha_expand_unaligned_load): Likewise.
6255 (alpha_expand_unaligned_store): Likewise.
6256 (alpha_expand_unaligned_load_words): Likewise.
6257 (alpha_expand_unaligned_store_words): Likewise.
6258 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
6259 (alpha_split_lock_test_and_set_12): Likewise.
6260 (print_operand, alpha_fold_builtin_extxx): Likewise.
6261 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
6262 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
6263 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
6264 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
6265 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
6266 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
6267 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
6268 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
6269 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
6270 (extwl, extll, extql): Similarly.
6271 (inswh, inslh, insqh): Similarly.
6272 (mskbl, mskwl, mskll, mskql): Similarly.
6273 (mskwh, msklh, mskqh): Similarly.
6274
315b2bef
RH
62752011-02-24 Richard Henderson <rth@redhat.com>
6276
6277 * config/alpha/alpha.md (attribute isa): Add er, ner.
6278 (attribute enabled): Handle them.
6279 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
6280
67102517
RH
62812011-02-24 Richard Henderson <rth@redhat.com>
6282
6283 * config/alpha/alpha.md (attribute isa): Add vms.
6284 (attribute enabled): Handle it.
6285 (*movsf): Merge *movsf_{nofix,fix,nofp}.
6286 (*movdf): Merge *movdf_{nofix,fix,nofp}.
6287 (*movtf): Rename from *movtf_internal for consistency.
6288 (*movsi): Merge with *movsi_nt_vms.
6289 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
6290 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
6291 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
6292 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
6293
6aba5cb4
RH
62942011-02-24 Richard Henderson <rth@redhat.com>
6295
6296 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
6297 (extendqisi2, extendhisi2): Likewise.
6298 (extendqidi2): Simplify BWX/non-BWX expansions.
6299 (extendhidi2): Similarly.
6300
bdfb351b
RH
63012011-02-24 Richard Henderson <rth@redhat.com>
6302
6303 * config/alpha/alpha.md (attribute isa): New.
6304 (attribute enabled): New.
6305 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
6306 (zero_extendqisi2, zero_extendqidi2): Similarly.
6307 (zero_extendhisi2, zero_extendhidi2): Similarly.
6308 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
6309
6abe71eb
RH
63102011-02-24 Richard Henderson <rth@redhat.com>
6311
6312 * config/alpha/predicates.md (input_operand): Revert last change;
6313 update comment to mention 32-bit VMS rather than Windows.
6314
7114321e
NF
63152011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6316
6317 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6318 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6319 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6320 * passes.c (init_optimization_passes): Move
6321 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6322
c8679567
EB
63232011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6324
6325 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
6326
27173058
UB
63272011-03-24 Uros Bizjak <ubizjak@gmail.com>
6328
6329 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
6330 correctly.
6331
6f0c9f06
JJ
63322011-03-24 Jakub Jelinek <jakub@redhat.com>
6333
6334 PR debug/48204
6335 * simplify-rtx.c (simplify_const_unary_operation): Call
6336 real_convert when changing mode class with FLOAT_EXTEND.
6337
662666e5
NC
63382011-03-24 Nick Clifton <nickc@redhat.com>
6339
6340 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
6341 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6342 * config/rx/rx.c (rx_option_override): Set align_jumps,
6343 align_loops and align_labels if not set by the user.
6344 (rx_align_for_label): New function.
6345 (rx_max_skip_for_label): New function.
6346 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
6347 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
6348 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
6349 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
6350 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
6351
2b99b2b8
RS
63522011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6353
6354 PR rtl-optimization/48263
6355 * optabs.c (expand_binop_directly): Reinstate convert_modes code
6356 and original commutative_p handling. Use maybe_gen_insn.
6357
ccecd6ea
AK
63582011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6359
6360 * reload.c (find_reloads_subreg_address): Add address_reloaded
6361 parameter and return true there if the full address has been
6362 reloaded.
6363 (find_reloads_toplev): Pass address_reloaded flag.
6364 (find_reloads_address_1): Don't use address_reloaded parameter.
6365
67295642
JL
63662011-03-24 Jeff Law <law@redhat.com>
6367
6368 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
6369 unused variable "ann".
6370 (remove_unused_locals): Likewise.
6371
6372 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
6373 statement.
6374
6375 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
6376 after it is freed.
6377
212aa74f
AK
63782011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6379
6380 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
6381 for invalid symbolic addresses.
6382 (s390_secondary_reload): Don't use s390_check_symref_alignment for
6383 larl operands.
6384
fe784e0d
EB
63852011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6386
6387 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
6388 the argument in calls to fold_truth_not_expr.
6389
63ee8641
NF
63902011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6391
6392 * tree.c (record_node_allocation_statistics): New function.
6393 (make_node_stat, copy_node_stat, build_string): Call it.
6394 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
6395 (build1_stat, build_omp_clause): Likewise.
6396
61be2a1c
RS
63972011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6398
6399 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
6400 last commit.
6401
a881aaa7
RG
64022011-03-24 Richard Guenther <rguenther@suse.de>
6403
6404 PR tree-optimization/48271
6405 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
6406 blocks that still exist.
6407
dbaa912c
RG
64082011-03-24 Richard Guenther <rguenther@suse.de>
6409
6410 PR tree-optimization/48270
6411 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
6412 not free datarefs before ddrs.
6413
1d60cc55
EB
64142011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6415
6416 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
6417 from the address built for a reference with variable offset.
6418
c78dd519
UB
64192011-03-24 Uros Bizjak <ubizjak@gmail.com>
6420
6421 PR target/48237
6422 * config/i386/i386.md (*movdf_internal_rex64): Do not split
6423 alternatives that can be handled with movq or movabsq insn.
6424 (*movdf_internal): Disable for !TARGET_64BIT.
6425 (*movdf_internal_nointeger): Ditto.
6426 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
6427
b25b9e8f
NF
64282011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6429
6430 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6431 (FUNCTION_ARG_ADVANCE): Likewise.
6432 * tm.texi.in: Change references to them to hook references.
6433 * tm.texi: Regenerate.
c78dd519 6434 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
6435 (default_function_incoming_arg): Likewise.
6436 (default_function_arg_advance): Likewise.
c78dd519 6437 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
6438 (function_arg_advance): Likewise.
6439 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6440
190b2187
RG
64412011-03-24 Richard Guenther <rguenther@suse.de>
6442
6443 PR middle-end/48269
6444 * tree-object-size.c (addr_object_size): Do not double-account
6445 for MEM_REF offsets.
6446
a183b5c7
DN
64472011-03-24 Diego Novillo <dnovillo@google.com>
6448
6449 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 6450 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
6451 (lto_input_data_block): Move from lto-opts.c. Make extern.
6452 Update all users.
6453 (lto_input_string): Rename from input_string. Make extern.
6454 Update all users.
6455 * lto-streamer-out.c (lto_output_string_with_length): Rename from
6456 output_string_with_length.
6457 Output 0 to indicate a non-NULL string. Update all callers to
6458 not emit 0.
6459 (lto_output_string): Rename from output_string. Make extern.
6460 Update all users.
6461 (lto_output_decl_state_streams): Make extern.
6462 (lto_output_decl_state_refs): Make extern.
6463 * lto-streamer.h (lto_input_string): Declare.
6464 (lto_input_data_block): Declare.
6465 (lto_output_string): Declare.
6466 (lto_output_string_with_length): Declare.
6467 (lto_output_decl_state_streams): Declare.
6468 (lto_output_decl_state_refs): Declare.
6469
cfef45c8
RG
64702011-03-24 Richard Guenther <rguenther@suse.de>
6471
6472 PR tree-optimization/46562
6473 * tree.c (build_invariant_address): New function.
6474 * tree.h (build_invariant_address): Declare.
6475 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
6476 a renamed function moved ...
6477 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
6478 Take valueization callback parameter.
6479 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
6480 * gimple-fold.h: New file.
6481 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
6482 (ccp_fold, fold_const_aggregate_ref,
6483 fold_ctor_reference, fold_nonarray_ctor_reference,
6484 fold_array_ctor_reference, fold_string_cst_ctor_reference,
6485 get_base_constructor): Move ...
6486 * gimple-fold.c: ... here.
6487 (gimple_fold_stmt_to_constant_1): New function
6488 split out from ccp_fold. Take a valueization callback parameter.
6489 Valueize all operands.
6490 (gimple_fold_stmt_to_constant): New wrapper function.
6491 (fold_const_aggregate_ref_1): New function split out from
6492 fold_const_aggregate_ref. Take a valueization callback parameter.
6493 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
6494 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
6495 invariant POINTER_PLUS_EXPRs to invariant form.
6496 (vn_valueize): New function.
6497 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
6498 * tree-vrp.c (vrp_valueize): New function.
6499 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
6500 to fold statements to constants.
6501 * tree-ssa-pre.c (eliminate): Properly guard propagation of
6502 function declarations.
6503 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
6504 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
6505
5e0a7e40
RS
65062011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6507
6508 * config/h8300/predicates.md (jump_address_operand): Fix register
6509 mode check.
6510
bfe068c3
IR
65112011-03-24 Ira Rosen <ira.rosen@linaro.org>
6512
6513 * doc/invoke.texi (max-stores-to-sink): Document.
6514 * params.h (MAX_STORES_TO_SINK): Define.
6515 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
6516 if either vectorization or if-conversion is disabled.
6517 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
6518 tree-vect-data-refs.c vect_equal_offsets.
6519 (dr_equal_offsets_p): New function.
6520 (find_data_references_in_bb): Remove static.
6521 * tree-data-ref.h (find_data_references_in_bb): Declare.
6522 (dr_equal_offsets_p): Likewise.
6523 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
6524 (vect_drs_dependent_in_basic_block): Update calls to
6525 vect_equal_offsets.
6526 (vect_check_interleaving): Likewise.
6527 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
6528 (cond_if_else_store_replacement): Rename to...
6529 (cond_if_else_store_replacement_1): ... this. Change arguments and
6530 documentation.
6531 (cond_if_else_store_replacement): New function.
6532 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
6533 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
6534
4908b0bf
CLT
65352011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
6536
6537 PR target/46934
6538 * config/arm/arm.md (casesi): Use the gen_int_mode() function
6539 to subtract lower bound instead of GEN_INT().
6540
2be478a2
JW
65412011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
6542
6543 PR other/48179
6544 PR other/48221
6545 PR other/48234
6546 * doc/extend.texi (Alignment): Move section to match order in TOC.
6547 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
6548 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
6549
0c617be4
JL
65502011-03-23 Jeff Law <law@redhat.com>
6551
6552 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
6553 before removing the edge.
6554
6555 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
6556 it may have been freed by redirect_branch_edge or
6557 redirect_edge_succ_nodup.
6558
58da96fe
RG
65592011-03-23 Richard Guenther <rguenther@suse.de>
6560
c78dd519 6561 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
6562 (check_va_list_escapes): Likewise.
6563 (check_all_va_list_escapes): Likewise.
6564
b8beb4d1
RG
65652011-03-23 Richard Guenther <rguenther@suse.de>
6566
6567 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
6568 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
6569 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
6570 (alias.o): Likewise.
6571 (ipa-type-escape.o): Remove.
6572 (ipa-struct-reorg.o): Likewise.
6573 (GTFILES): Remove ipa-struct-reorg.c.
6574 * alias.c: Do not include ipa-type-escape.h.
6575 * tree-ssa-alias.c: Likewise.
6576 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
6577 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
6578 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
6579 and ipa-type-escape passes.
6580 * tree-pass.h (pass_ipa_type_escape): Remove.
6581 (pass_ipa_struct_reorg): Likewise.
6582 * ipa-struct-reorg.h: Remove.
6583 * ipa-struct-reorg.c: Likewise.
6584 * ipa-type-escape.h: Likewise.
6585 * ipa-type-escape.c: Likewise.
6586 * doc/invoke.texi (-fipa-struct-reorg): Remove.
6587 (--param struct-reorg-cold-struct-ratio): Likewise.
6588 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6589 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6590 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
6591
f137aa63
AK
65922011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6593
6594 * config/s390/2084.md: Enable all insn reservations also for z9_ec
6595 cpu attribute value.
6596 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
6597 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
6598 * config/s390/s390.c (processor_flags_table): New constant array.
6599 (s390_handle_arch_option): Remove.
6600 (s390_handle_option): Remove s390_handle_arch_option invocations
6601 and OPT_mwarn_framesize_ handling.
6602 (s390_option_override): Remove s390_handle_arch_option invocation.
6603 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
6604 warnings.
6605 * config/s390/s390.md (cpu attribute): Add z9_ec value.
6606 * config/s390/s390.opt (s390_tune, s390_arch)
6607 (march=): Replace s390_arch_option enum and values with
6608 processor_type. Set variable name to s390_arch. Set
6609 initialization value.
6610 (mtune=): Replace s390_arch_option with processor_type. Set
6611 variable name to s390_tune. Set initialization value.
6612
bf90208f
JB
66132011-03-23 Julian Brown <julian@codesourcery.com>
6614
6615 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
6616 accesses which are not naturally aligned.
6617
3460fdf3
RS
66182011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
6619
6620 PR target/47553
6621 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
6622
a5c7d693
RS
66232011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
6624
6625 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
6626 parameter from "int" to "enum insn_code".
6627 (expand_operand_type): New enum.
6628 (expand_operand): New structure.
6629 (create_expand_operand): New function.
6630 (create_fixed_operand, create_output_operand): Likewise
6631 (create_input_operand, create_convert_operand_to): Likewise.
6632 (create_convert_operand_from, create_address_operand): Likewise.
6633 (create_integer_operand): Likewise.
6634 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
6635 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6636 (expand_insn, expand_jump_insn): Likewise.
6637 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
6638 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
6639 (expand_movstr, expand_builtin___clear_cache): Likewise.
6640 (expand_builtin_lock_release): Likewise.
6641 * explow.c (allocate_dynamic_stack_space): Likewise.
6642 (probe_stack_range): Likewise. Allow check_stack to FAIL,
6643 and use the default handling in that case.
6644 * expmed.c (check_predicate_volatile_ok): Delete.
6645 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
6646 (emit_cstore): Likewise.
6647 * expr.c (emit_block_move_via_movmem): Likewise.
6648 (set_storage_via_setmem, expand_assignment): Likewise.
6649 (emit_storent_insn, try_casesi): Likewise.
6650 (emit_single_push_insn): Likewise. Allow the expansion to fail.
6651 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
6652 (expand_vec_shift_expr, expand_binop_directly): Likewise.
6653 (expand_twoval_unop, expand_twoval_binop): Likewise.
6654 (expand_unop_direct, emit_indirect_jump): Likewise.
6655 (emit_conditional_move, vector_compare_rtx): Likewise.
6656 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
6657 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
6658 (expand_sync_lock_test_and_set): Likewise.
6659 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
6660 (emit_unop_insn): Likewise.
6661 (expand_copysign_absneg): Change icode to an insn_code.
6662 (create_convert_operand_from_type): New function.
6663 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
6664 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6665 (expand_insn, expand_jump_insn): Likewise.
6666 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
6667 than const_int_operand for operand 2.
6668
78fadbab
AK
66692011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6670
6671 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
6672 if possible.
6673
5f02387d
NF
66742011-03-22 Nathan Froyd <froydnj@codesourcery.com>
6675
6676 * emit-rtl.c (emit_pattern_before_noloc): New function.
6677 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
6678 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
6679 (emit_pattern_after_noloc): New function.
6680 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
6681 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
6682
fdf3e18a
NF
66832011-03-22 Nathan Froyd <froydnj@codesourcery.com>
6684
6685 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
6686 (__ffsDI2): Likewise.
6687
42d085c1
RH
66882011-03-22 Richard Henderson <rth@redhat.com>
6689
6690 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
6691 of !TARGET_ABI_OPEN_VMS.
6692 (alpha_trampoline_init, alpha_start_function): Likewise.
6693 (alpha_expand_epilogue, alpha_file_start): Likewise.
6694 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
6695 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
6696 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
6697 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
6698 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
6699
cabbe12a
JM
67002011-03-22 Joseph Myers <joseph@codesourcery.com>
6701
6702 * config/s390/s390-opts.h: New.
6703 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
6704 s390_arch_flags, s390_warn_framesize, s390_stack_size,
6705 s390_stack_guard): Remove.
6706 (s390_handle_arch_option): Return void. Take enum
6707 s390_arch_option value instead of string and searching array.
6708 (s390_handle_option): Don't assert that global structures are in
6709 use. Access variables via opts pointer. Use error_at. Don't use
6710 sscanf for -mstack-guard= or -mstack-size=. Update call to
6711 s390_handle_arch_option.
6712 (s390_option_override): Update call to s390_handle_arch_option.
6713 (s390_emit_prologue): Use %d format for s390_stack_size in
6714 diagnostic. Use %wd for HOST_WIDE_INT.
6715 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
6716 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
6717 * config/s390/s390.opt (config/s390/s390-opts.h): New
6718 HeaderInclude entry.
6719 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
6720 s390_arch_flags, s390_warn_framesize): New Variable entries.
6721 (s390_arch_option): New Enum and EnumValue entries.
6722 (march=): Use Enum instead of Var.
6723 (mstack-guard=, mstack-size=): Use UInteger and Var.
6724 (mtune=): Use Enum.
6725
05b12036
JM
67262011-03-22 Joseph Myers <joseph@codesourcery.com>
6727
6728 * config/score/score.c (score_handle_option): Don't assert that
6729 global structures are in use. Access target_flags via opts
6730 pointer. Use value of -march= option to determine target_flags
6731 settings.
6732 * config/score/score.opt (march=): Use Enum.
6733 (score_arch): New Enum and EnumValue entries.
6734
dd51e35a
JM
67352011-03-22 Joseph Myers <joseph@codesourcery.com>
6736
6737 * config/mep/mep.c (option_mtiny_specified): Remove.
6738 (mep_option_override): Move register handling for -mivc2 from
6739 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
6740 instead of option_mtiny_specified.
6741 (mep_handle_option): Access target_flags via opts pointer. Don't
6742 assert that global structures are in use. Defer part of -mivc2
6743 handling and move it to mep_option_override.
6744 * config/mep/mep.opt (IVC2): New Mask entry.
6745 (mivc2): Use Var and Defer instead of Mask.
6746
4a8d3d91
JM
67472011-03-22 Joseph Myers <joseph@codesourcery.com>
6748
6749 * config/v850/v850-opts.h: New.
6750 * config/v850/v850.c (small_memory): Replace with
6751 small_memory_physical_max array. Make that array static const.
6752 (v850_handle_memory_option): Take integer value of argument. Take
6753 gcc_options pointer, option text and location. Return void.
6754 Update for changes to small memory structures.
6755 (v850_handle_option): Access target_flags via opts pointer. Don't
6756 assert that global structures are in use. Update calls to
6757 v850_handle_memory_option.
c78dd519
UB
6758 (v850_encode_data_area): Update references to small memory settings.
6759 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
6760 (enum small_memory_type): Move to v850-opts.h.
6761 * config/v850/v850.opt (config/v850/v850-opts.h): New
6762 HeaderInclude entry.
6763 (small_memory_max): New Variable entry.
6764 (msda): Replace by pair of options msda= and msda-. Use UInteger.
6765 (mtda, mzda): Likewise.
6766
117fdbfa
JM
67672011-03-22 Joseph Myers <joseph@codesourcery.com>
6768
6769 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
6770 pointer. Don't assert that global structures are in use.
6771
d715091c
JM
67722011-03-22 Joseph Myers <joseph@codesourcery.com>
6773
6774 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
6775 via opts pointer. Don't assert that global structures are in use.
6776
1bb721dc
JM
67772011-03-22 Joseph Myers <joseph@codesourcery.com>
6778
6779 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
6780 (munix=93): Use Var.
6781 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
6782 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
6783 * config/pa/pa-opts.h: New.
6784 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
6785 (pa_handle_option): Don't assert that global structures are in
6786 use. Access target_flags via opts pointer. Don't handle
6787 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
6788 OPT_munix_98 here.
6789 (pa_option_override): Handle deferred OPT_mfixed_range_.
6790
cd8d8754
JM
67912011-03-22 Joseph Myers <joseph@codesourcery.com>
6792
6793 * config/mn10300/mn10300-opts.h: New.
6794 * config/mn10300/mn10300.c (mn10300_processor,
6795 mn10300_tune_string): Remove.
6796 (mn10300_handle_option): Don't assert that global structures are
6797 in use. Access mn10300_processor via opts pointer. Don't handle
6798 OPT_mtune_ here.
6799 * config/mn10300/mn10300.h (enum processor_type): Move to
6800 mn10300-opts.h.
6801 (mn10300_processor): Remove.
6802 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
6803 HeaderInclude entry.
6804 (mn10300_processor): New Variable entry.
6805 (mtune=): Use Var.
6806
24e6e6b1
JM
68072011-03-22 Joseph Myers <joseph@codesourcery.com>
6808
6809 * config/microblaze/microblaze.c: Don't include opts.h.
6810 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
6811 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
6812 (mno-clearbss): Use Var and Warn.
6813
8a784afb
JM
68142011-03-22 Joseph Myers <joseph@codesourcery.com>
6815
6816 * config/m32r/m32r-opts.h: New.
6817 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
6818 (m32r_handle_option): Don't assert that global structures are in
6819 use. Access target_flags and m32r_cache_flush_func via opts
6820 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
6821 OPT_mno_flush_trap here.
6822 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
6823 include of m32r-opts.h.
6824 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
6825 HeaderInclude entry.
6826 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
6827 (mmodel=): Use Enum and Var.
6828 (m32r_model): New Enum and EnumValue entries.
6829 (mno-flush-trap): Use Var.
6830 (msdata=): Use Enum and Var.
6831 (m32r_sdata): New Enum and EnumValue entries.
6832
bbfc9a8c
JM
68332011-03-22 Joseph Myers <joseph@codesourcery.com>
6834
6835 * config/m32c/m32c.c: Don't include opts.h.
6836 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
6837 m32c_handle_option): Remove.
6838 (m32c_option_override): Check global_options_set.x_target_memregs
6839 instead of target_memregs_set.
6840 * config/m32c/m32c.h (target_memregs): Remove.
6841 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
6842 variable.
6843
e24b8335
JM
68442011-03-22 Joseph Myers <joseph@codesourcery.com>
6845
6846 * config/iq2000/iq2000-opts.h: New.
6847 * config/iq2000/iq2000.c: Don't include opts.h.
6848 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 6849 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
6850 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
6851 HeaderInclude entry.
6852 (iq2000_tune): New Variable entry.
6853 (march=): Add comment. Use Enum.
6854 (iq2000_arch): New Enum and EnumValue entries.
6855 (mcpu=): Use Enum and Var.
6856 (iq2000_tune): New Enum and EnumValue entries.
6857
e6cc0c98
JM
68582011-03-22 Joseph Myers <joseph@codesourcery.com>
6859
6860 * config/ia64/ia64-opts.h: New.
6861 * config/ia64/ia64.c (ia64_tune): Remove.
6862 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
6863 here. Use error_at.
6864 (ia64_option_override): Handle deferred OPT_mfixed_range_.
6865 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
6866 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
6867 HeaderInclude entry.
6868 (ia64_tune): New Variable entry.
6869 (mfixed-range=): Use Defer and Var.
6870 (mtune=): Use Enum and Var.
6871 (ia64_tune): New Enum and EnumValue entries.
6872
db25893c
JM
68732011-03-22 Joseph Myers <joseph@codesourcery.com>
6874
6875 * config/frv/frv-opts.h: New.
6876 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
6877 frv-opts.h.
6878 (frv_cpu_type): Remove.
6879 * config/frv/frv.c: Don't include opts.h.
6880 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 6881 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
6882 (frv_cpu_type): New Variable entry.
6883 (frv_cpu): New Enum and EnumValue entries.
6884
6c223f5d
JM
68852011-03-22 Joseph Myers <joseph@codesourcery.com>
6886
6887 * config/cris/cris.c (cris_handle_option): Access target_flags via
6888 opts pointer. Don't assert that global structures are in use.
6889 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
6890 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
6891
bbd399cf
JM
68922011-03-22 Joseph Myers <joseph@codesourcery.com>
6893
6894 * config/bfin/bfin-opts.h: New.
6895 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
6896 bfin_si_revision, bfin_workarounds): Remove.
6897 (bfin_cpus): Make static const.
6898 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
6899 not bfin_lib_id_given.
6900 (bfin_handle_option): Don't set bfin_lib_id_given. Access
6901 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 6902 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
6903 * config/bfin/bfin.h: Include bfin-opts.h.
6904 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
6905 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
6906 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
6907 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
6908 entries.
6909
5e1b4d5a
JM
69102011-03-22 Joseph Myers <joseph@codesourcery.com>
6911
6912 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
6913 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
6914 or -msoft-float here.
6915 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
6916 -msoft-float and -mhard-float.
c78dd519 6917 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
6918 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6919 msoft-float.
6920 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
6921 -msoft-float.
6922 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
6923 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
6924 not mhard-float.
6925 (LIBGCC_SPEC): Don't handle -msoft-float.
6926 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
6927 -mhard-float.
6928 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
6929 msoft-float.
6930 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
6931 -mfloat-abi=*, not -msoft-float and -mhard-float.
6932 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
6933 -msoft-float.
6934 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
6935 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
6936 mhard-float and msoft-float.
6937 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
6938 mfloat-abi=soft in comments, not mhard-float and msoft-float.
6939 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
6940 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
6941 mhard-float.
6942 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
6943 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
6944 msoft-float.
6945 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
6946 not mhard-float.
6947 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
6948 not msoft-float.
6949
800d1de1
RH
69502011-03-22 Richard Henderson <rth@redhat.com>
6951
6952 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
6953 TARGET_ABI_WINDOWS_NT.
6954 (alpha_output_function_end_prologue): Likewise.
6955 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
6956 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6957 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
6958 (trap, *movsi_nt_vms): Likewise.
6959 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
6960 (*tablejump_osf_nt_internal): Remove.
6961 * config/alpha/predicates.md (input_operand): Only test Pmode.
6962
c59ddd2b
JM
69632011-03-22 Joseph Myers <joseph@codesourcery.com>
6964
6965 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
6966 via opts pointer. Use error_at. Don't assert that global
6967 structures are in use.
6968
1333f97f
JM
69692011-03-22 Joseph Myers <joseph@codesourcery.com>
6970
6971 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
6972 (ix86_handle_option): Access ix86_isa_flags and
6973 ix86_isa_flags_explicit via opts pointer. Don't assert that
6974 global structures are in use.
6975 (ix86_function_specific_save, ix86_function_specific_restore):
6976 Update ix86_isa_flags_explicit field name.
c78dd519 6977 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
6978 (ix86_isa_flags_explicit): Rename TargetSave entry to
6979 x_ix86_isa_flags_explicit.
6980
75db85d8
RH
69812011-03-22 Richard Henderson <rth@redhat.com>
6982
6983 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
6984 (alpha_option_override, direct_return): Likewise.
6985 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
6986 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
6987 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
6988 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
6989 (alpha_expand_epilogue, alpha_end_function): Likewise.
6990 (alpha_init_libfuncs): Likewise.
6991 (struct machine_function): Remove unicosmk members.
6992 (print_operand) ['t']: Remove.
6993 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
6994 unicosmk_output_module_name, unicosmk_output_common,
6995 current_section_align, unicosmk_output_text_section_asm_op,
6996 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
6997 unicosmk_section_type_flags, unicosmk_unique_section,
6998 unicosmk_asm_named_section, unicosmk_insert_attributes,
6999 unicosmk_output_align, unicosmk_defer_case_vector,
7000 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7001 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7002 unicosmk_output_ssib, unicosmk_add_call_info_word,
7003 unicosmk_extern_head, unicosmk_output_default_externs,
7004 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7005 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7006 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7007 * config/alpha/alpha-protos.h: Update.
7008 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7009 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7010 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7011 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7012 (*mulsi_se, mulvsi3): Likewise.
7013 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7014 (*divmodsi_internal, call, call_value, realign): Likewise.
7015 (moddi3, umoddi3): Likewise; remove duplicate expander.
7016 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7017 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7018 (*movdi_nofix): Remove r/U alternative.
7019 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7020 * config/alpha/constraints.md ("U"): Remove.
7021 * config/alpha/predicates.md (call_operand"): Don't test
7022 TARGET_ABI_UNICOSMK.
7023
96e45421
JM
70242011-03-22 Joseph Myers <joseph@codesourcery.com>
7025
7026 * target.def (handle_option): Take gcc_options and
7027 cl_decoded_option pointers and location_t.
7028 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7029 * doc/tm.texi: Regenerate.
7030 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7031 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7032 * lto-opts.c (lto_reissue_options): Generate option structure for
7033 targetm.handle_option call.
7034 * opts.c (target_handle_option): Update call to
7035 targetm.handle_option. Remove assertions about values now passed
7036 down to hook.
7037 * targhooks.c (default_target_handle_option): New.
7038 * targhooks.h (default_target_handle_option): Declare.
7039 * config/alpha/alpha.c: Include opts.h.
7040 (alpha_handle_option): Update to new hook interface.
7041 * config/arm/arm.c: Include opts.h.
7042 (arm_handle_option): Update to new hook interface.
7043 * config/arm/t-arm (arm.o): Update dependencies.
7044 * config/bfin/bfin.c: Include opts.h.
7045 (bfin_handle_option): Update to new hook interface.
7046 * config/cris/cris.c: Include opts.h.
7047 (cris_handle_option): Update to new hook interface.
7048 * config/frv/frv.c: Include opts.h.
7049 (frv_handle_option): Update to new hook interface.
7050 * config/i386/i386.c: Include opts.h.
7051 (ix86_handle_option): Update to new hook interface.
7052 (ix86_valid_target_attribute_inner_p): Generate option structure
7053 for call to ix86_handle_option.
7054 * config/i386/t-i386 (i386.o): Update dependencies.
7055 * config/ia64/ia64.c: Include opts.h.
7056 (ia64_handle_option): Update to new hook interface.
7057 * config/ia64/t-ia64 (ia64.o): Update dependencies.
7058 * config/iq2000/iq2000.c: Include opts.h.
7059 (iq2000_handle_option): Update to new hook interface.
7060 * config/m32c/m32c.c: Include opts.h.
7061 (m32c_handle_option): Update to new hook interface.
7062 * config/m32r/m32r.c: Include opts.h.
7063 (m32r_handle_option): Update to new hook interface.
7064 * config/m68k/m68k.c: Include opts.h.
7065 (m68k_handle_option): Update to new hook interface.
7066 * config/mep/mep.c: Include opts.h.
7067 (mep_handle_option): Update to new hook interface.
7068 * config/microblaze/microblaze.c: Include opts.h.
7069 (microblaze_handle_option): Update to new hook interface.
7070 * config/mips/mips.c: Include opts.h.
7071 (mips_handle_option): Update to new hook interface.
7072 * config/mn10300/mn10300.c: Include opts.h.
7073 (mn10300_handle_option): Update to new hook interface.
7074 * config/pa/pa.c: Include opts.h.
7075 (pa_handle_option): Update to new hook interface.
7076 * config/pdp11/pdp11.c: Include opts.h.
7077 (pdp11_handle_option): Update to new hook interface.
7078 * config/rs6000/rs6000.c: Include opts.h.
7079 (rs6000_handle_option): Update to new hook interface.
7080 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7081 * config/rx/rx.c: Include opts.h.
7082 (rx_handle_option): Update to new hook interface.
7083 * config/s390/s390.c: Include opts.h.
7084 (s390_handle_option): Update to new hook interface.
7085 * config/score/score.c: Include opts.h.
7086 (score_handle_option): Update to new hook interface.
7087 * config/sh/sh.c: Include opts.h.
7088 (sh_handle_option): Update to new hook interface.
7089 * config/sparc/sparc.c: Include opts.h.
7090 (sparc_handle_option): Update to new hook interface.
7091 * config/v850/v850.c: Include opts.h.
7092 (v850_handle_option): Update to new hook interface.
7093
66017846
JM
70942011-03-22 Joseph Myers <joseph@codesourcery.com>
7095
7096 * gcc.c (driver_unknown_option_callback): Only permit and save
7097 unknown -Wno- options.
7098 (driver_wrong_lang_callback): Save options directly instead of via
7099 driver_unknown_option_callback.
7100
e8b97ccd
EB
71012011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7102
7103 * combine.c (simplify_set): Try harder to find the best CC mode when
7104 simplifying a nested COMPARE on the RHS.
7105
ebb9f8b0
JM
71062011-03-22 Joseph Myers <joseph@codesourcery.com>
7107
7108 * config/alpha/gnu.h: Remove.
7109 * config/arc: Remove directory.
7110 * config/arm/netbsd.h: Remove.
7111 * config/arm/t-pe: Remove.
7112 * config/crx: Remove directory.
7113 * config/i386/netbsd.h: Remove.
7114 * config/m68hc11: Remove directory.
7115 * config/m68k/uclinux-oldabi.h: Remove.
7116 * config/mcore/mcore-pe.h: Remove.
7117 * config/mcore/t-mcore-pe: Remove.
7118 * config/netbsd-aout.h: Remove.
7119 * config/rs6000/gnu.h: Remove.
7120 * config/sh/sh-symbian.h: Remove.
7121 * config/sh/symbian-base.c: Remove.
7122 * config/sh/symbian-c.c: Remove.
7123 * config/sh/symbian-cxx.c: Remove.
7124 * config/sh/symbian-post.h: Remove.
7125 * config/sh/symbian-pre.h: Remove.
7126 * config/sh/t-symbian: Remove.
7127 * config/svr3.h: Remove.
7128 * config/vax/netbsd.h: Remove.
7129 * config.build: Don't handle i[34567]86-*-pe.
7130 * config.gcc: Remove handling of deprecations for most deprecated
7131 targets.
7132 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
7133 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
7134 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
7135 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
7136 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
7137 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
7138 Remove cases.
7139 * config.host: Don't handle i[34567]86-*-pe.
7140 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
7141 (ASM_SPEC32): Don't handle -mcall-gnu.
7142 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
7143 -mcall-gnu.
7144 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
7145 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
7146 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7147 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
7148 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
7149 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
7150 conditional on SYMBIAN.
7151 * configure.ac: Don't handle powerpc*-*-gnu*.
7152 * configure: Regenerate.
7153 * doc/extend.texi (interrupt attribute): Don't mention CRX.
7154 * doc/install-old.texi (m6811, m6812): Don't mention.
7155 * doc/install.texi (arc-*-elf*): Don't document multilib option.
7156 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
7157 (m68k-uclinuxoldabi): Don't mention.
7158 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
7159 Remove.
7160 (-mcall-gnu): Remove.
7161 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
7162 families): Remove constraint documentation.
7163
999a7d80
MS
71642011-03-22 Marius Strobl <marius@FreeBSD.org>
7165
7166 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
7167 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
7168 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
7169
45540bcf
MM
71702011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7171
7172 PR target/48226
7173 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
7174 vector when peeking at the next token for vector, don't expand the
7175 keywords.
7176
980a0ff4
GJL
71772011-03-21 Georg-Johann Lay <avr@gjlay.de>
7178
7179 * config/avr/avr-protos.h (expand_epilogue): Change prototype
7180 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
7181 * config/avr/avr.c (init_cumulative_args)
7182 (avr_function_arg_advance): Use it.
7183 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
7184 sibcall epilogues.
7185 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
7186 (avr_function_ok_for_sibcall): ...this new function.
7187 (avr_lookup_function_attribute1): New static Function.
7188 (avr_naked_function_p, interrupt_function_p)
7189 (signal_function_p, avr_OS_task_function_p)
7190 (avr_OS_main_function_p): Use it.
7191 * config/avr/avr.md ("sibcall", "sibcall_value")
7192 ("sibcall_epilogue"): New expander.
7193 ("*call_insn", "*call_value_insn"): New insn.
7194 ("call_insn", "call_value_insn"): Remove
7195 ("call", "call_value", "epilogue"): Change expander to handle
7196 sibling calls.
7197
49168734
NC
71982011-03-21 Nick Clifton <nickc@redhat.com>
7199
7200 * doc/invoke.texi (Overall Options): Move closing brace to end of
7201 options list.
7202 (Optimization Options): Add missing @gol.
7203 (Directory Options): Likewise.
7204 (i386 and x86-64 Options): Likewise.
7205 (RS6000 and PowerPC Options): Likewise.
7206 (i386 and x86-64 Windows Options): Likewise.
7207 (V850 Options): Add text missing from descriptions.
7208
bdfe906f
RH
72092011-03-22 Richard Henderson <rth@redhat.com>
7210
7211 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
7212 (avr_incoming_return_addr_rtx): New.
7213 (emit_push_byte): New.
7214 (expand_prologue): Use it. Remove incorrect dwarf annotation for
7215 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
7216 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
7217 (emit_pop_byte): New.
7218 (expand_epilogue): Use it. Pop frame pointer by bytes.
7219 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
7220 (INCOMING_RETURN_ADDR_RTX): New.
7221 (INCOMING_FRAME_SP_OFFSET): New.
7222 (ARG_POINTER_CFA_OFFSET): New.
7223 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
7224 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
7225 (pophi): Remove.
7226
d090a5aa
RH
7227 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
7228
fdf3e18a
NF
72292011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7230
7231 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7232 (FUNCTION_ARG_ADVANCE): Likewise.
7233 * tm.texi.in: Change references to them to hook references.
7234 * tm.texi: Regenerate.
7235 * targhooks.c (default_function_arg): Eliminate check for target
7236 macro.
7237 (default_function_incoming_arg): Likewise.
7238 (default_function_arg_advance): Likewise.
c78dd519 7239 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
7240 (function_arg_advance): Likewise.
7241 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7242
009d3fcf
NF
72432011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7244
7245 * tree.c (build_call_1): New function.
7246 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
7247
7bec30e1
RG
72482011-03-22 Richard Guenther <rguenther@suse.de>
7249
7250 PR tree-optimization/48228
7251 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
7252 for single-arg PHIs.
7253
0b7e851b
AB
72542011-03-22 Andrey Belevantsev <abel@ispras.ru>
7255
7256 PR rtl-optimization/48143
7257 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
7258 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
7259 sse2_cvtps2pd): Likewise.
7260
d89afca5
AK
72612011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7262
7263 * recog.c (canonicalize_change_group): Use validate_unshare_change.
7264
f471fe72
RG
72652011-03-22 Richard Guenther <rguenther@suse.de>
7266
7267 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
7268 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
7269 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
7270 and REALIGN_LOAD_EXPR.
7271 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
7272 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
7273 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
7274 DOT_PROD_EXPR case ...
7275 (expand_expr_real_2): ... here.
7276 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
7277 and REALIGN_LOAD_EXPR.
7278 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
7279 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
7280 (vect_create_epilog_for_reduction): Likewise.
7281 (vectorizable_reduction): Likewise.
7282 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
7283 * tree-vect-stmts.c (vectorizable_load): Likewise.
7284
f2f81d57
EB
72852011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7286
7287 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
7288
ab081dd6
AK
72892011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7290
7291 * config/s390/s390.c (s390_delegitimize_address): Fix offset
7292 handling for PLTOFF/GOTOFF.
7293
6fd5332b
NC
72942011-03-22 Nick Clifton <nickc@redhat.com>
7295
7296 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7297 trailing backslash from the end of the macro definition.
7298
01841ac0
AK
72992011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7300
7301 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
7302 and PLT unspecs.
7303
2ef6ce06
RS
73042011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
7305
7306 * expr.h (prepare_operand): Move to...
7307 * optabs.h (prepare_operand): ...here and change the insn code
7308 parameter from "int" to "enum insn_code".
7309 (insn_operand_matches): Declare.
7310 * expr.c (init_expr_target): Use insn_operand_matches.
7311 (compress_float_constant): Likewise.
7312 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
7313 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
7314 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
7315 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
7316 Likewise.
2ef6ce06
RS
7317 (gen_cond_trap): Likewise.
7318 (prepare_operand): Likewise. Change icode to an insn_code.
7319 (insn_operand_matches): New function.
7320 * reload.c (find_reloads_address_1): Use insn_operand_matches.
7321 * reload1.c (gen_reload): Likewise.
7322 * targhooks.c (default_secondary_reload): Likewise.
7323
9e43ad68
UB
73242011-03-21 Uros Bizjak <ubizjak@gmail.com>
7325
9a96da32
UB
7326 * config/alpha/alpha.md (unspec): New define_c_enum.
7327 (unspecv): Ditto.
7328
73292011-03-21 Uros Bizjak <ubizjak@gmail.com>
7330
7331 PR debug/48214
9e43ad68
UB
7332 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
7333 between a call and its CALL_ARG_LOCATION note.
7334
31408f60
EB
73352011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7336
7337 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
7338
73392011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
7340
7341 PR c/42544
7342 PR c/48197
7343 * c-common.c (shorten_compare): If primopN is first sign-extended
7344 to opN and then zero-extended to result type, set primopN to opN.
7345
9dfd55f5
DJ
73462011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
7347
7348 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
7349 for barrier handlers.
7350
f3c33d9d
MM
73512011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7352
7353 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
7354 UNSPEC constants to be in the unspec enumeration, and redefine
7355 all UNSPECV constants to be in the unspecv enumeration, so that
7356 dumps print which unspec/unspec_volatile this is.
7357 * config/rs6000/vector.md (UNSPEC_*): Ditto.
7358 * config/rs6000/paired.md (UNSPEC_*): Ditto.
7359 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
7360 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
7361 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
7362
7363 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
7364 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
7365 UNSPECV_LWSYNC, since these are used as unspec_volatile.
7366 * config/rs6000/sync.md (isync, lwsync): Ditto.
7367
ac43f774
RG
73682011-03-21 Richard Guenther <rguenther@suse.de>
7369
7370 * params.def (lto-min-partition): Fix typo.
7371
411cdbd8
RG
73722011-03-21 Richard Guenther <rguenther@suse.de>
7373
7374 PR c/47939
7375 * c-decl.c (grokdeclarator): Drop to the main variant only
7376 for array types. Drop flag_gen_aux_info check.
7377
1cd9e416
RG
73782011-03-21 Richard Guenther <rguenther@suse.de>
7379
7380 PR translation/47911
7381 * params.def (lto-partitions): Fix typo.
7382 (lto-min-partition): Fix wording.
7383
ada5ad67
AT
73842011-03-21 Andreas Tobler <andreast@fgznet.ch>
7385
7386 * config/rs6000/t-freebsd: Remove duplication from file.
7387
f9613c9a
RG
73882011-03-21 Richard Guenther <rguenther@suse.de>
7389
7390 PR middle-end/47661
7391 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
7392
9bfbc1eb
RG
73932011-03-21 Richard Guenther <rguenther@suse.de>
7394
7395 PR lto/48210
7396 * params.def (lto-partitions): Require at least 1 partition.
7397
a2268084
RO
73982011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7399
7400 * gthr-solaris.h: Remove.
7401 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
7402 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
7403 (LIB_SPEC): Likewise.
7404 * config/sol2.opt (threads): Remove.
9e43ad68 7405 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
7406 (sparc*-*-solaris2*): Likewise.
7407 * configure.ac (enable_threads): Enable solaris support.
7408 * configure: Regenerate.
9e43ad68 7409 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
7410 * doc/install.texi (Configuration, --enable-threads=lib): Remove
7411 solaris.
7412
c43d9a1b
RO
74132011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7414
7415 * config.gcc: Obsolete *-*-solaris2.8*.
7416 * doc/install.texi (Specific, *-*-solaris2*): Document it.
7417
084239f4
RO
74182011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7419
7420 PR bootstrap/48135
7421 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
7422 reference. Solaris 8 perl works.
7423
64cadbe7
RO
74242011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7425
7426 PR bootstrap/48135
7427 * doc/install.texi (Prerequisites): Move jar etc. up.
7428 Explain support library version requirements.
7429
eb975109
RO
74302011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7431
7432 PR bootstrap/48135
7433 * doc/install.texi (Prerequisites): Move Perl to build
7434 requirements. Always necessary on Solaris 2 with Sun ld.
7435
8a509ffd
RO
74362011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7437
7438 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
7439 binutils 2.21.
7440 (Specific, i?86-*-solaris2.[89]): Likewise.
7441 (Specific, i?86-*-solaris2.10): Likewise.
7442 (Specific, mips-sgi-irix6): Likewise.
7443 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
7444 Update for binutils 2.21.
7445
8fbc58a1
RO
74462011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7447
7448 * configure.ac (gcc_cv_lto_plugin): Fix typo.
7449 Allow -fuse-linker-plugin for non-default plugin linker.
7450 * configure: Regenerate.
7451
7e84ad0b
NP
74522011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
7453
7454 PR bootstrap/48167
7455 * gengtype.c (files_rules): Added rule for cp/parser.h.
7456
2f36e14b
JJ
74572011-03-21 Jakub Jelinek <jakub@redhat.com>
7458
7459 PR target/48213
7460 * config/s390/s390.c (s390_delegitimize_address): Don't call
7461 lowpart_subreg if orig_x has BLKmode.
7462
62d784f7
KT
74632011-03-21 Kai Tietz <ktietz@redhat.com>
7464
7465 PR target/12171
9e43ad68
UB
7466 * doc/plugins.texi: Adjust documentation for plugin register_callback.
7467 * tree.h (attribute_spec): Add new member affects_type_identity.
7468 * attribs.c (empty_attribute_table): Adjust attribute_spec
7469 initializers.
62d784f7
KT
7470 * config/alpha/alpha.c: Likewise.
7471 * config/arc/arc.c: Likewise.
7472 * config/arm/arm.c: Likewise.
7473 * config/avr/avr.c: Likewise.
7474 * config/bfin/bfin.c: Likewise.
7475 * config/crx/crx.c: Likewise.
7476 * config/darwin.h: Likewise.
7477 * config/h8300/h8300.c: Likewise.
7478 * config/i386/cygming.h: Likewise.
7479 * config/i386/i386.c: Likewise.
7480 * config/ia64/ia64.c: Likewise.
7481 * config/m32c/m32c.c: Likewise.
7482 * config/m32r/m32r.c: Likewise.
7483 * config/m68hc11/m68hc11.c: Likewise.
7484 * config/m68k/m68k.c: Likewise.
7485 * config/mcore/mcore.c: Likewise.
7486 * config/mep/mep.c: Likewise.
7487 * config/microblaze/microblaze.c: Likewise.
7488 * config/mips/mips.c: Likewise.
7489 * config/rs6000/rs6000.c: Likewise.
7490 * config/rx/rx.c: Likewise.
7491 * config/sh/sh.c: Likewise.
7492 * config/sol2.h: Likewise.
7493 * config/sparc/sparc.c: Likewise.
7494 * config/spu/spu.c: Likewise.
7495 * config/stormy16/stormy16.c: Likewise.
7496 * config/v850/v850.c: Likewise.
7497
54833ec0
CLT
74982011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
7499
7500 * simplify-rtx.c (simplify_binary_operation_1): Handle
7501 (xor (and A B) C) case when B and C are both constants.
7502
14a41392
MX
75032011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
7504
7505 * tree-dfa.c (add_referenced_var): Fix typo in comment.
7506
806c3492
EB
75072011-03-20 Eric Botcazou <ebotcazou@adacore.com>
7508
7509 PR bootstrap/48168
7510 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
7511
65e0a0f3
JJ
75122011-03-20 Jakub Jelinek <jakub@redhat.com>
7513
7514 PR rtl-optimization/48156
7515 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
7516 assume df and df_lr are not NULL.
7517
b6a75dda
RR
75182011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7519
7520 PR debug/48023
7521 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
7522 between a call and its CALL_ARG_LOCATION note.
7523
5969b52d
KK
75242011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
7525
7526 PR debug/48178
7527 * config/sh/sh.c (find_barrier): Don't emit a constant pool
7528 between a call and its corresponding CALL_ARG_LOCATION note.
7529
f773c2bd
AS
75302011-03-19 Anatoly Sokolov <aesok@post.ru>
7531
7532 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
7533 instead of loop. Use HARD_REGISTER_NUM_P predicate.
7534 * haifa-sched.c (setup_ref_regs): Ditto.
7535 * caller-save.c (add_used_regs_1): Ditto.
7536 * dse.c (look_for_hardregs): Ditto.
7537 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
7538 * sched-rgn.c (check_live_1): Ditto.
7539
8bf872f9
JM
75402011-03-18 Joseph Myers <joseph@codesourcery.com>
7541
7542 * c-decl.c (diagnose_mismatched_decls): Give an error for
7543 redefining a typedef with variably modified type.
7544
ff8e2159
JM
75452011-03-18 Joseph Myers <joseph@codesourcery.com>
7546
7547 * c-decl.c (grokfield): Don't allow typedefs for structures or
7548 unions with no tag by default.
7549 * doc/extend.texi (Unnamed Fields): Update.
7550
16cc4440
UB
75512011-03-18 Uros Bizjak <ubizjak@gmail.com>
7552
7553 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7554 Rewrite using indirect functions.
7555 (lwp_slwpcb): Ditto.
7556 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
7557 (avx_vinsertf128<mode>): Ditto.
7558
e101e12e
AK
75592011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7560
7561 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
7562 unspecs.
7563
4627c7fb
AK
75642011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7565
7566 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 7567 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 7568
2d36b47f
MK
75692011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
7570
7571 PR rtl-optimization/48170
7572 * gcse.c (hoist_code): Remove bogus asserts.
7573
2a3d7659
JL
75742011-03-18 Georg-Johann Lay <avr@gjlay.de>
7575
7576 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
7577 computation for prologue/epilogue.
7578
34c3ef05
RO
75792011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7580
7581 * Makefile.in (check-consistency): Remove.
7582
81f2b976
JJ
75832011-03-18 Jakub Jelinek <jakub@redhat.com>
7584
7585 PR debug/48176
7586 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
7587 arange_table_in_use is 0, but either text_section_used or
7588 cold_text_section_used is true. Don't call it if
7589 !info_section_emitted.
7590
68fd7765
AS
75912011-03-18 Anatoly Sokolov <aesok@post.ru>
7592
7593 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
7594 FUNCTION_VALUE_REGNO_P): Remove.
7595 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
7596 Remove.
7597 * config/avr/avr.c (avr_ret_register): Make static inline.
7598 (avr_function_value_regno_p): New function.
7599 (avr_libcall_value): Make static. Add 'func' argument.
7600 (avr_function_value): Make static. Rename 'func' argument to
7601 'fn_decl_or_type', forward it to avr_libcall_value. Call
7602 avr_ret_register function instead of RET_REGISTER macro.
7603 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7604
b4ef8aac
JM
76052011-03-18 Jason Merrill <jason@redhat.com>
7606
7607 PR c++/23372
7608 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
7609
09a52fc3
RG
76102011-03-18 Richard Guenther <rguenther@suse.de>
7611
7612 * doc/install.texi (--enable-gold): Remove.
7613 (--with-plugin-ld): Document.
7614 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
7615
2a3d7659 76162011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
7617
7618 PR middle-end/47790
7619 * expr.c (optimize_bitfield_assignment_op): Revamp to work
7620 again after expansion changes.
7621
2abbb0fe
CLT
76222011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
7623
7624 * combine.c (try_combine): Do simplification only call of
7625 subst() on i2 even when i1 is present. Update comments.
7626
2efd0aa6
KK
76272011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
7628
7629 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
7630 and UNSPEC_PCREL_SYMOFF.
7631
30a49b23
AK
76322011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7633
7634 * config/s390/s390.md: Use define_c_enum for the unspec constant
7635 definitions.
7636
419e1853
JJ
76372011-03-18 Richard Henderson <rth@redhat.com>
7638 Jakub Jelinek <jakub@redhat.com>
7639
7640 PR bootstrap/48161
7641 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
7642 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
7643
37875856
L
76442011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7645
7646 PR middle-end/47725
7647 * combine.c (cant_combine_insn_p): Don't check zero/sign
7648 extended hard registers.
7649
76069764
L
76502011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7651
7652 PR middle-end/47725
7653 * combine.c (cant_combine_insn_p): Check zero/sign extended
7654 hard registers.
7655
24da2019
AS
76562011-03-17 Anatoly Sokolov <aesok@post.ru>
7657
7658 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7659 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
7660 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
7661 Change return type to bool.
7662 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7663
a82ff31f
JJ
76642011-03-17 Jakub Jelinek <jakub@redhat.com>
7665
8b29c87a
JJ
7666 PR debug/48163
7667 * var-tracking.c (prepare_call_arguments): If CALL target
7668 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
7669 pc instead of looking it up using cselib_lookup and use
7670 Pmode for it if x has VOIDmode.
7671 * dwarf2out.c (gen_subprogram_die): If also both first and
7672 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
7673
a82ff31f
JJ
7674 PR debug/48163
7675 * function.c (assign_parms): For data.passed_pointer parms
7676 use MEM of data.entry_parm instead of data.entry_parm itself
7677 as DECL_INCOMING_RTL.
7678 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
7679 also when passed and declared mode is the same, DECL_RTL
7680 is a MEM with pseudo as address and DECL_INCOMING_RTL is
7681 a MEM too.
7682
82ce305c
JL
76832011-03-16 Jeff Law <law@redhat.com>
7684
7685 PR rtl-optimization/37273
7686 * ira-costs.c (scan_one_insn): Detect constants living in memory and
7687 handle them like argument loads from stack slots. Do not double
7688 count memory for memory constants and argument loads from stack slots.
7689
fe58e02b
L
76902011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7691
7692 PR debug/48160
7693 * var-tracking.c (prepare_call_arguments): Check SUBREG.
7694
6fc4dbc7
L
76952011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7696
7697 PR target/48171
7698 * config/i386/i386.opt: Add Save to -mavx and -mfma.
7699
db3ed0b3
JJ
77002011-03-17 Jakub Jelinek <jakub@redhat.com>
7701
8054a389
JJ
7702 PR bootstrap/48153
7703 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
7704 if dwarf_strict.
7705 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
7706 Clear call_arg_locations and call_arg_loc_last always.
7707
db3ed0b3
JJ
7708 PR middle-end/48152
7709 * var-tracking.c (prepare_call_arguments): If argument needs to be
7710 passed by reference, adjust argtype and mode.
7711
1bce4ff3
RG
77122011-03-17 Richard Guenther <rguenther@suse.de>
7713
7714 PR middle-end/48134
7715 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
7716 a value make sure to fold the statement.
7717
7c71147d
CLT
77182011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
7719
7720 PR target/43872
7721 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
7722 return condition with !cfun->calls_alloca.
7723
0e1ee172
RG
77242011-03-17 Richard Guenther <rguenther@suse.de>
7725
7726 PR bootstrap/48148
7727 * lto-cgraph.c (input_overwrite_node): Clear the abstract
7728 origin for decls in other ltrans units.
7729 (input_varpool_node): Likewise.
7730
f8bce518
RG
77312011-03-17 Richard Guenther <rguenther@suse.de>
7732
7733 PR middle-end/48165
7734 * tree-object-size.c (compute_object_offset): Properly return
7735 the offset operand of MEM_REFs as sizetype.
7736
1b6fa860
JJ
77372011-03-17 Jakub Jelinek <jakub@redhat.com>
7738
dabd47e7
JJ
7739 PR rtl-optimization/48141
7740 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
7741 * dse.c: Include params.h.
7742 (active_local_stores_len): New variable.
7743 (add_wild_read, dse_step1): Clear it when setting active_local_stores
7744 to NULL.
7745 (record_store, check_mem_read_rtx): Decrease it when removing
7746 from the chain.
7747 (scan_insn): Likewise. Increase it when adding to chain, if it
7748 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
7749 set active_local_stores to NULL before the addition.
7750 * Makefile.in (dse.o): Depend on $(PARAMS_H).
7751
1b6fa860
JJ
7752 PR rtl-optimization/48141
7753 * dse.c (record_store): If no positions are needed in an insn
7754 that cannot be deleted, at least unchain it from active_local_stores.
7755
7b5cb7d6
DS
77562011-03-16 Dodji Seketeli <dodji@redhat.com>
7757
7758 PR debug/47510
7759 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
7760 (lookup_type_die_strip_naming_typedef): ... here.
7761 (get_context_die): Use it.
7762 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
7763 the anonymous struct named by the naming typedef.
7764
585e9d9d
L
77652011-03-16 H.J. Lu <hongjiu.lu@intel.com>
7766
7767 PR target/48154
7768 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
7769 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
7770
6261ab0e
JL
77712011-03-16 Jeff Law <law@redhat.com>
7772
7773 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 7774 check for operands of conditional. Allow type to be a pointer.
6261ab0e 7775
0b0081ec
RG
77762011-03-16 Richard Guenther <rguenther@suse.de>
7777
7778 PR tree-optimization/48149
7779 * fold-const.c (fold_binary_loc): Fold
7780 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
7781
64a3d647
RG
77822011-03-16 Richard Guenther <rguenther@suse.de>
7783
7784 PR tree-optimization/26134
7785 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
7786 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
7787 (non_rewritable_mem_ref_base): Handle complex type component
7788 accesses, constrain offsets for vector and complex extracts
7789 more properly.
7790
ef13324e
RG
77912011-03-16 Richard Guenther <rguenther@suse.de>
7792
7793 PR tree-optimization/48146
7794 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
7795 operands avoiding the need for renaming.
7796
f0eddb90
RG
77972011-03-16 Richard Guenther <rguenther@suse.de>
7798
7799 * gimple-fold.c (maybe_fold_reference): Open-code relevant
7800 constant folding. Move MEM_REF canonicalization first.
7801 Rely on fold_const_aggregate_ref for initializer folding.
7802 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
7803
e42348b8
JJ
78042011-03-16 Jakub Jelinek <jakub@redhat.com>
7805
29f10e71
JJ
7806 PR middle-end/48136
7807 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
7808 arg0/arg1 or their arguments are always fold converted to matching
7809 types.
7810
e42348b8
JJ
7811 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
7812 to nargs.
7813
55b46574
RO
78142011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7815
7816 PR lto/46944
7817 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
7818 Handle in-tree gold.
7819 (ld_vers): Extract binutils version for gold.
7820 (gcc_cv_ld_hidden): Handle gold here.
7821 (gcc_cv_lto_plugin): Determine level of linker plugin support.
7822 * configure: Regenerate.
7823 * config.in: Regenerate.
7824 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
7825 -fuse-linker-plugin otherwise.
7826 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
7827 (LINK_COMMAND_SPEC): Use it.
7828 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
7829
2b1c5433
JJ
78302011-03-16 Jakub Jelinek <jakub@redhat.com>
7831
c2969d8e
JJ
7832 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
7833 * calls.c: Remove debug.h include.
7834 (emit_call_1): Don't call virtual_call_token debug hook.
7835 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
7836 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
7837 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
7838 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
7839 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
7840 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
7841 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
7842 dwarf2out_virtual_call): Remove.
7843 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
7844 copy_call_info and virtual_call hooks.
7845 (dwarf2out_init): Don't initialize vcall_insn_table,
7846 debug_dcall_section and debug_vcall_section.
7847 (prune_unused_types): Don't mark nodes from dcall_table.
7848 (dwarf2out_finish): Don't output dcall or vcall tables.
7849 * final.c (final_scan_insn): Don't call direct_call or
7850 virtual_call debug hooks.
7851 * debug.h (struct gcc_debug_hooks): Remove direct_call,
7852 virtual_call_token, copy_call_info and virtual_call hooks.
7853 (debug_nothing_uid): Remove prototype.
7854 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
7855 copy_call_info and virtual_call hooks.
7856 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7857 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
7858 * debug.c (do_nothing_debug_hooks): Likewise.
7859 (debug_nothing_uid): Remove.
7860 * doc/invoke.texi (-fenable-icf-debug): Remove.
7861 * common.opt (-fenable-icf-debug): Likewise.
7862
325f5379
JJ
7863 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
7864 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
7865 call's MEM. Handle functions returning aggregate through a hidden
7866 first pointer. For virtual calls add clobbered pc to call arguments
7867 chain.
7868 * dwarf2out.c (gen_subprogram_die): Emit
7869 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
7870 can't be emitted.
7871
a58a8e4b
JJ
7872 PR debug/45882
7873 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
7874 * rtl.h (ENTRY_VALUE_EXP): Define.
7875 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
7876 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
7877 * print-rtl.c (print_rtx): Likewise.
7878 * gengtype.c (adjust_field_rtx_def): Likewise.
7879 * var-tracking.c (vt_add_function_parameter): Adjust
7880 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
7881 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
7882 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
7883 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
7884 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
7885
2b1c5433
JJ
7886 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
7887 Call var_location debug hook even on CALL_INSNs.
7888 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
7889 * rtl.def (ENTRY_VALUE): New.
7890 * dwarf2out.c: Include cfglayout.h.
7891 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
7892 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
7893 (struct call_arg_loc_node): New type.
7894 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
7895 tail_call_site_count): New variables.
7896 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
7897 DW_TAG_GNU_call_site_parameter.
7898 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
7899 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
7900 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
7901 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
7902 and DW_AT_GNU_all_source_call_sites.
7903 (mem_loc_descriptor): Handle ENTRY_VALUE.
7904 (add_src_coords_attributes): Don't add enything if
7905 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
7906 (dwarf2out_abstract_function): Save and clear call_arg_location,
7907 call_site_count and tail_call_site_count around dwarf2out_decl call.
7908 (gen_call_site_die): New function.
7909 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
7910 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
7911 (dwarf2out_function_decl): Clear call_arg_locations,
7912 call_arg_loc_last, set call_site_count and tail_call_site_count
7913 to -1 and free block_map.
7914 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
7915 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
7916 followed by any real instructions.
7917 (dwarf2out_begin_function): Set call_site_count and
7918 tail_call_site_count to 0.
7919 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
7920 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
7921 attempt to force a DIE for it and worst case remove the attribute.
7922 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
7923 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
7924 the decl itself.
7925 * var-tracking.c: Include tm_p.h.
7926 (vt_stack_adjustments): For calls call note_register_arguments.
7927 (argument_reg_set): New variable.
7928 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
7929 ensure the VALUE is resolved.
7930 (call_arguments): New variable.
7931 (prepare_call_arguments): New function.
7932 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
7933 (struct expand_loc_callback_data): Add ignore_cur_loc field.
7934 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
7935 always use the best expression.
7936 (vt_expand_loc): Add ignore_cur_loc argument.
7937 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
7938 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
7939 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
7940 note for all calls.
7941 (vt_add_function_parameter): Use cselib_lookup_from_insn.
7942 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
7943 argument. Don't call cselib_preserve_only_values and
7944 cselib_reset_table.
7945 (note_register_arguments): New function.
7946 (vt_initialize): Compute argument_reg_set. Call
7947 vt_add_function_parameters before processing basic blocks instead of
7948 afterwards. For calls call prepare_call_arguments before calling
7949 cselib_process_insn.
7950 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
7951 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
7952 (var-tracking.o): Depend on $(TM_P_H).
7953 * cfglayout.h (insn_scope): New prototype.
7954 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
7955 * cfglayout.c (insn_scope): No longer static.
7956 * insn-notes.def (CALL_ARG_LOCATION): New.
7957 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
7958 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
7959 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
7960 nothing for DECL_EXTERNAL BLOCK_VARS.
7961
9ef13bd0
AM
79622011-03-16 Alan Modra <amodra@gmail.com>
7963
7964 PR target/45844
7965 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
7966 create invalid offset address for vsx splat insn.
7967 * config/rs6000/predicates.md (splat_input_operand): New.
7968 * config/rs6000/vsx.md (vsx_splat_*): Use it.
7969
56b67510
XDL
79702011-03-15 Xinliang David Li <davidxl@google.com>
7971
7972 PR c/47837
7973 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
7974 (normalize_preds): New function.
7975 (is_use_properly_guarded): Normalize def predicates.
7976
80fffdef
RR
79772011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7978
732f37c6 7979 PR target/46788
80fffdef
RR
7980 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
7981 in the output template.
7982
930672ad
RG
79832011-03-15 Richard Guenther <rguenther@suse.de>
7984
7985 PR middle-end/47650
7986 * tree-pretty-print.c (dump_function_declaration): Properly
7987 dump unprototyped and varargs function types.
7988
c7ee7b45
RG
79892011-03-15 Richard Guenther <rguenther@suse.de>
7990
7991 PR tree-optimization/13954
7992 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
7993 and friends.
7994
b2ad5e37
RG
79952011-03-15 Richard Guenther <rguenther@suse.de>
7996
7997 PR tree-optimization/48037
7998 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
7999 selects into BIT_FIELD_REFs.
8000 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8001 vector select.
8002
7ee93d4e
JJ
80032011-03-15 Jakub Jelinek <jakub@redhat.com>
8004
8005 PR tree-optimization/48129
8006 * builtins.c (fold_builtin_snprintf): Convert to type of
8007 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8008 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8009
e106efc7
RG
80102011-03-15 Richard Guenther <rguenther@suse.de>
8011
8012 PR tree-optimization/41490
8013 * tree-ssa-dce.c (propagate_necessity): Handle returns without
8014 value but with VUSE.
8015 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8016 return statements.
8017 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8018 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8019 * tree-tailcall.c (find_tail_calls): Ignore returns.
8020
17dea42f
RG
80212011-03-15 Richard Guenther <rguenther@suse.de>
8022
8023 PR middle-end/48031
8024 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8025 or variable-indexed array accesses when in gimple form.
8026
01c77a60
RG
80272011-03-15 Richard Guenther <rguenther@suse.de>
8028
16cc4440 8029 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 8030
77b0791e
AM
80312011-03-15 Alan Modra <amodra@gmail.com>
8032
8033 PR target/48032
8034 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8035 presume symbol_refs without a symbol_ref_decl are suitably
8036 aligned, nor other trees we may see here. Handle anchor symbols.
8037 (legitimate_constant_pool_address_p): Comment. Add mode param.
8038 Check cmodel=medium addresses. Adjust all calls.
8039 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8040 creating cmodel=medium optimized access to locals.
8041 * config/rs6000/constraints.md (R): Pass QImode to
8042 legitimate_constant_pool_address_p.
8043 * config/rs6000/predicates.md (input_operand): Pass mode to
8044 legitimate_constant_pool_address_p.
8045 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8046 Update prototype.
8047
35f61ba4
MM
80482011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8049
8050 PR target/48053
8051 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8052 64-bit constants being loaded into registers other than GPRs such
8053 as loading 0 into a VSX register.
8054
07332e6d
RO
80552011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8056
16cc4440 8057 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 8058
de888d90
JJ
80592011-03-14 Jakub Jelinek <jakub@redhat.com>
8060
ba3ceb2d
JJ
8061 PR middle-end/47917
8062 * builtins.c (fold_builtin_snprintf): New function.
8063 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8064 (fold_builtin_4): Likewise.
8065
2e64f8b8
JJ
8066 PR middle-end/38878
8067 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8068 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
8069 and C - X == X also strip nops from +/-/p+ operand.
8070 When optimizing -X == C, fold C to arg0's type.
8071
de888d90
JJ
8072 PR debug/47946
8073 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
8074 emit it as add_AT_int instead of add_AT_unsigned.
8075
80762011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
8077
8078 * unwind-dw2.c: Include sys/sdt.h if it exists.
8079 (_Unwind_DebugHook): Use STAP_PROBE2.
8080 * config.in, configure: Rebuild.
8081 * configure.ac: Check for sys/sdt.h.
8082
d34abfd2
UB
80832011-03-14 Uros Bizjak <ubizjak@gmail.com>
8084
8085 * config/i386/i386.md (ROUND_FLOOR): New constant.
8086 (ROUND_CEIL): Ditto.
8087 (ROUND_TRUNC): Ditto.
8088 (ROUND_MXCSR): Ditto.
8089 (ROUND_NO_EXC): Ditto.
8090 (rint<mode>2): Use new defines instead of numerical constants.
8091 (floor<mode>2): Ditto.
8092 (ceil<mode>2): Ditto.
8093 (btrunc<mode>2): Ditto.
8094 * config/i386/i386-builtin-types.def: Define ROUND function type
8095 aliases.
8096 * config/i386/i386.c (enum ix86_builtins): Add
8097 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
8098 (struct builtin_description): Add
8099 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
8100 (ix86_expand_sse_round): New static function.
8101 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
8102 function types.
8103 (ix86_builtin_vectorized_function): Handle
8104 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8105
87f9e23d
TT
81062011-03-14 Tom Tromey <tromey@redhat.com>
8107
8108 * c-parser.c (c_parser_asm_string_literal): Clear
8109 warn_overlength_strings.
8110
b3ab9ea2
TT
81112011-03-14 Tom Tromey <tromey@redhat.com>
8112
8113 * c-parser.c (disable_extension_diagnostics): Save
8114 warn_overlength_strings.
8115 (restore_extension_diagnostics): Restore warn_overlength_strings.
8116
6bd73dd8
JJ
81172011-03-14 Jakub Jelinek <jakub@redhat.com>
8118
8119 * BASE-VER: Change to 4.7.0.
8120
7f4d6e1b
RG
81212011-03-14 Richard Guenther <rguenther@suse.de>
8122
8123 PR middle-end/48098
8124 * tree.c (build_vector_from_val): Adjust assert to requirements
8125 and reality.
8126
c6104ef1
JJ
81272011-03-14 Jakub Jelinek <jakub@redhat.com>
8128
8129 PR bootstrap/48102
d34abfd2 8130 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 8131
dfa95e19
AT
81322011-03-14 Andreas Tobler <andreast@fgznet.ch>
8133
f60c2554 8134 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
8135 terms of target_flags_explicit. Adjust copyright year.
8136
8137 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
8138 * config/rs6000/t-freebsd: New file. Add override for
8139 LIB2FUNCS_EXTRA.
8140
bb322018
CD
81412011-03-13 Chris Demetriou <cgd@google.com>
8142
8143 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
8144 (-fno-diagnostics-show-option): this, to reflect current default.
8145 (-Werror=): Update text about -fno-diagnostics-show-option.
8146
12b1c80b
PB
81472011-03-12 Peter Bergner <bergner@vnet.ibm.com>
8148
8149 PR target/48053
8150 * config/rs6000/predicates.md (easy_vector_constant_add_self,
8151 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
8152 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
8153 mode is not V2DImode or V2DFmode.
8154 (vspltis_constant): Do not handle V2DImode and V2DFmode.
8155 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
8156 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
8157 registers to 0.
8158 (movdi_internal64): Likewise.
8159
57d598f7
SP
81602011-03-12 Sebastian Pop <sebastian.pop@amd.com>
8161
8162 PR tree-optimization/47127
8163 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
8164 parameter.
8165 (set_cloog_options): Same.
8166 (scop_to_clast): Same.
8167 (print_clast_stmt): Do not call cloog_state_malloc and
8168 cloog_state_free.
8169 (print_generated_program): Same.
8170 (gloog): Same.
8171 * graphite-clast-to-gimple.h (cloog_state): Declared.
8172 (scop_to_clast): Adjust declaration.
8173 * graphite.c (cloog_state): Defined here.
8174 (graphite_initialize): Call cloog_state_malloc.
8175 (graphite_finalize): Call cloog_state_free.
8176
f231b5ff
JM
81772011-03-11 Jason Merrill <jason@redhat.com>
8178
8179 * attribs.c (lookup_attribute_spec): Take const_tree.
8180 * tree.h: Adjust.
8181
6a4e2bd5
JM
81822011-03-11 Joseph Myers <joseph@codesourcery.com>
8183
8184 * config/sparc/sparc.c (sparc_option_override): Use
8185 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
8186
a758fd67
RG
81872011-03-11 Richard Guenther <rguenther@suse.de>
8188
8189 PR tree-optimization/48067
8190 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
8191 multiplication result will be only used once on the target
8192 stmt.
8193
03dfda54
RG
81942011-03-11 Richard Guenther <rguenther@suse.de>
8195
8196 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
8197
5f11a50a
RG
81982011-03-11 Richard Guenther <rguenther@suse.de>
8199
8200 PR lto/48073
8201 * tree.c (find_decls_types_r): Do not walk types only reachable
8202 from IDENTIFIER_NODEs.
8203
4074f163
JJ
82042011-03-11 Jakub Jelinek <jakub@redhat.com>
8205
8206 PR middle-end/48044
8207 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
8208 all vnode->force_output nodes as needed.
8209
30f7cdcd
JM
82102011-03-11 Jason Merrill <jason@redhat.com>
8211
8212 PR c++/48069
8213 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
8214 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
8215
62ecfeb8
MJ
82162011-03-11 Martin Jambor <mjambor@suse.cz>
8217
8218 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
8219 cgraph_node.
8220
e89e03ab
JJ
82212011-03-11 Jakub Jelinek <jakub@redhat.com>
8222
8223 PR tree-optimization/48063
8224 * ipa-inline.c (cgraph_decide_inlining): Don't try to
8225 inline functions called once if !tree_can_inline_p (node->callers).
8226
efbe978b 82272011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 8228
efbe978b
EB
8229 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
8230 extra_objs.
9d6193a7
CL
8231 * config/score/score3.c: Delete.
8232 * config/score/score3.h: Delete.
8233 * config/score/mul-div.S: Delete.
8234 * config/score/sfp-machine.h: Add new file.
8235 * config/score/constraints.md: Add new file.
8236 * config/score/t-score-softfp: Add new file.
efbe978b 8237 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
8238 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
8239 (score7_extra_constraint): Delete.
efbe978b 8240 (score7_option_override): Remove unused code.
9d6193a7
CL
8241 * config/score/score.c: Remove score3 and score5 define and code.
8242 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 8243 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
8244 * config/score/score.opt: Remove score3 and score5 options.
8245
5de27cca
JDA
82462011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8247
8248 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
8249 when _HPUX_SOURCE is defined.
8250 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
8251
18d92053
JM
82522011-03-10 Jason Merrill <jason@redhat.com>
8253
8254 PR c++/48029
8255 * stor-layout.c (layout_type): Don't set structural equality
8256 on arrays of incomplete type.
8257 * tree.c (type_hash_eq): Handle comparing them properly.
8258
67a2f76d
JJ
82592011-03-10 Jakub Jelinek <jakub@redhat.com>
8260
8261 PR debug/48043
18d92053 8262 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
8263 result mode matches original rtl mode.
8264
d845b2f9
NC
82652011-03-10 Nick Clifton <nickc@redhat.com>
8266
8267 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 8268 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 8269
db7ec035
JJ
82702011-03-09 Jakub Jelinek <jakub@redhat.com>
8271
8272 PR rtl-optimization/47866
8273 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
8274 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
8275 if target wasn't scalar.
8276 * function.c (assign_stack_temp_for_type): Assert that neither
8277 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
8278 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
8279 macro.
8280 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
8281
5d304e47
AK
82822011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8283
8284 * config/s390/s390-protos.h (s390_label_align): New prototype.
8285 * config/s390/s390.c (s390_label_align): New function.
8286 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
8287
93b826f0
MM
82882011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8289
8290 PR target/47755
8291 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
8292 V2DI/V2DF constants. Only all 0's or all 1's are easy.
8293 (output_vec_const_move): Ditto.
8294
ef78aed6
AS
82952011-03-08 Anatoly Sokolov <aesok@post.ru>
8296
8297 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
8298 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
8299 * config/mips/mips.c (mips_preferred_reload_class): Make static.
8300 Change 'rclass' argument and result type to reg_class_t.
8301 (TARGET_PREFERRED_RELOAD_CLASS): Define.
8302
5f892aa0
GJL
83032011-03-08 Georg-Johann Lay <avr@gjlay.de>
8304
9e43ad68
UB
8305 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8306 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
8307 (TARGET_MEMORY_MOVE_COST): Define.
8308 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 8309
32bd2409
JJ
83102011-03-08 Jakub Jelinek <jakub@redhat.com>
8311
530a4800
JJ
8312 PR debug/47881
8313 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
8314 removed anything.
8315
32bd2409
JJ
8316 PR tree-optimization/48022
8317 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
8318 for EQ/NE_EXPR.
8319
c7148991
JJ
83202011-03-07 Jakub Jelinek <jakub@redhat.com>
8321
8322 PR debug/47991
8323 * var-tracking.c (find_use_val): Return NULL for
8324 cui->sets && cui->store_p BLKmode MEMs.
8325
43070a6e
AS
83262011-03-07 Anatoly Sokolov <aesok@post.ru>
8327
8328 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
8329 Remove.
8330 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
8331 xstormy16_print_operand_address): Remove.
8332 * config/stormy16/stormy16.c (xstormy16_print_operand,
8333 xstormy16_print_operand_address): Make static.
8334 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8335
efbe978b 83362011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
8337
8338 PR target/47862
8339 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8340 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
8341 before definition.
8342
cec8ac0b
ZD
83432011-03-07 Zdenek Dvorak <ook@ucw.cz>
8344
8345 PR bootstrap/48000
8346 * cfgloopmanip.c (fix_bb_placements): Return immediately
8347 if FROM is BASE_LOOP's header.
8348
59527282
PW
83492011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
8350
8351 * gimplify.c (gimplify_function_tree): Fix building calls
8352 to __builtin_return_address.
8353
617718f7
AM
83542011-03-07 Alan Modra <amodra@gmail.com>
8355
8356 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
8357 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
8358 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
8359 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
8360 return_mode args.
8361 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
8362 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
8363 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
8364 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
8365 * config/rs6000/rs6000.c
8366 (rs6000_elf_end_indicate_exec_stack): Rename to..
8367 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
8368 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
8369 (rs6000_file_start): ..here.
8370 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
8371 file scope variables.
8372 (call_ABI_of_interest): New function.
8373 (init_cumulative_args): Set above vars when function return value
8374 is a float, vector, or small struct.
8375 (rs6000_function_arg_advance_1): Likewise for function args.
8376 (rs6000_va_start): Set rs6000_passes_float if variable arg function
8377 references float args.
8378
38528d50
MX
83792011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
8380
8381 * doc/cfg.texi: Remove "See" before @ref.
8382 * doc/invoke.texi: Likewise.
8383
f42cf4f4
JM
83842011-03-05 Jason Merrill <jason@redhat.com>
8385
8386 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
8387
804a304d
AG
83882011-03-05 Anthony Green <green@moxielogic.com>
8389
8390 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
8391
634ee309
ZD
83922011-03-05 Zdenek Dvorak <ook@ucw.cz>
8393
8394 PR rtl-optimization/47899
8395 * cfgloopmanip.c (fix_bb_placements): Fix first argument
8396 to flow_loop_nested_p when moving the loop upward.
8397
6fe471c8
RE
83982011-03-05 Richard Earnshaw <rearnsha@arm.com>
8399
8400 PR target/47719
8401 * arm.md (movhi_insn_arch4): Accept any immediate constant.
8402
cc58ceee
JJ
84032011-03-05 Jakub Jelinek <jakub@redhat.com>
8404
8405 PR tree-optimization/47967
8406 * ipa-cp.c (build_const_val): Return NULL instead of creating
8407 VIEW_CONVERT_EXPR for mismatching sizes.
8408 (ipcp_create_replace_map): Return NULL if build_const_val failed.
8409 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
8410 give up on versioning.
8411
ea868305
AM
84122011-03-05 Alan Modra <amodra@gmail.com>
8413
8414 PR target/47986
8415 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8416 full cmodel medium/large lo_sum + high addresses.
8417
bc6ce334
AK
84182011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8419
8420 * config/s390/s390.c (s390_decompose_address): Reject non-literal
8421 pool references in UNSPEC_LTREL_OFFSET.
8422
87e7b310
JH
84232011-03-04 Jan Hubicka <jh@suse.cz>
8424
8425 PR lto/47497
8426 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
8427 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
8428 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
8429 Add node pointers.
87e7b310
JH
8430 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
8431 cgraph_add_thunk): Add node pointers.
8432 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
8433 associated to right node.
8434 (input_node): Update use of cgraph_same_body_alias
8435 and cgraph_add_thunk.
8436
d9c64246
CF
84372011-03-04 Changpeng Fang <changpeng.fang@amd.com>
8438
8439 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
8440 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
8441 modes when the flag -mprefer-avx128 is on.
d9c64246 8442
08707076
RS
84432011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
8444
8445 * dwarf2out.c (compare_loc_operands): Fix address handling.
8446
52517c81
AM
84472011-03-04 Alan Modra <amodra@gmail.com>
8448
8449 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
8450
b147c5b9
RG
84512011-03-04 Richard Guenther <rguenther@suse.de>
8452
8453 PR middle-end/47968
8454 * expmed.c (extract_bit_field_1): Prefer vector modes that
8455 vec_extract patterns can handle.
8456
8750672f
RG
84572011-03-04 Richard Guenther <rguenther@suse.de>
8458
8459 PR middle-end/47975
8460 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
8461
9eac0f2a
RH
84622011-03-04 Richard Henderson <rth@redhat.com>
8463
8464 * explow.c (emit_stack_save): Remove 'after' parameter.
8465 (emit_stack_restore): Likewise.
8466 * expr.h: Update to match.
8467 * builtins.c, calls.c, stmt.c: Likewise.
8468 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
8469 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
8470 * function.c (expand_function_end): Insert the emit_stack_save
8471 sequence before parm_birth_insn instead of after.
8472
dfee1406
UB
84732011-03-03 Uros Bizjak <ubizjak@gmail.com>
8474
8475 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
8476 (ssse3_pmaddubsw128): Ditto.
8477 (ssse3_pmaddubsw): Ditto.
8478
f1d4c3de
SE
84792011-03-03 Steve Ellcey <sje@cup.hp.com>
8480
8481 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
8482
71f3a3f5
JJ
84832011-03-03 Jakub Jelinek <jakub@redhat.com>
8484
423ed416
JJ
8485 PR c/47963
8486 * gimplify.c (omp_add_variable): Only call omp_notice_variable
8487 on TYPE_SIZE_UNIT if it is a DECL.
8488
71f3a3f5
JJ
8489 PR debug/47283
8490 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
8491 first operand is not is_gimple_mem_ref_addr, try to fold it.
8492 If the operand still isn't is_gimple_mem_ref_addr, clear
8493 MEM_EXPR on op0.
8494
4b1a5c0d
RG
84952011-03-03 Richard Guenther <rguenther@suse.de>
8496
8497 PR middle-end/47283
8498 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
8499 match comment.
8500 (refs_may_alias_p_1): For release branches return true if
8501 we are confused by our input.
8502
b46616fd
AK
85032011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8504
8505 * config/s390/s390.c (s390_function_value): Rename to ...
8506 (s390_function_and_libcall_value): ... this.
8507 (s390_function_value): New function.
8508 (s390_libcall_value): New function.
dfee1406 8509 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
8510 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
8511 target macro definitions.
8512 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
8513
46d8fabb
JM
85142011-03-02 Joseph Myers <joseph@codesourcery.com>
8515
8516 * config/i386/freebsd64.h (CC1_SPEC): Define.
8517 * config/i386/linux64.h (CC1_SPEC): Define.
8518 * config/i386/x86-64.h (CC1_SPEC): Don't define.
8519
6b1ce545
AS
85202011-03-02 Anatoly Sokolov <aesok@post.ru>
8521
8522 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8523 Remove.
8524 * config/stormy16/stormy16.c: Include reload.h.
8525 (xstormy16_memory_move_cost): New function.
8526 (TARGET_MEMORY_MOVE_COST): Define.
8527
34161e98
RS
85282011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
8529
8530 PR rtl-optimization/47925
8531 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
8532 with side effects. Remove the more-specific check for volatile asms.
8533
f60a97cf
AM
85342011-03-02 Alan Modra <amodra@gmail.com>
8535
8536 PR target/47935
8537 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
8538 toc relative addresses for valid offsets.
8539
f2ca11ca
RG
85402011-03-01 Richard Guenther <rguenther@suse.de>
8541
8542 PR tree-optimization/47890
8543 * tree-vect-loop.c (get_initial_def_for_induction): Set
8544 related stmt properly.
8545
7a00d9ea
RG
85462011-03-01 Richard Guenther <rguenther@suse.de>
8547
8548 PR lto/47924
8549 * lto-streamer.c (lto_record_common_node): Also register
8550 the canonical type.
8551
06c7edcc
RG
85522011-03-01 Richard Guenther <rguenther@suse.de>
8553
8554 PR lto/46911
8555 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8556 Do not stream DECL_ABSTRACT_ORIGIN.
8557 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8558 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8559 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8560 Do not stream DECL_ABSTRACT_ORIGIN.
8561 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8562 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8563
998871e9
AS
85642011-02-28 Anatoly Sokolov <aesok@post.ru>
8565
8566 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
8567 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 8568 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
8569 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
8570 Add 'outgoing' argument.
8571 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
8572 function.
8573 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8574 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8575
94369251
KT
85762011-02-28 Kai Tietz <kai.tietz@onevision.com>
8577
8578 PR debug/28047
8579 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
8580 (lookup_filename): Likewise.
b2e2ea67 8581 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 8582
80a832cd
JJ
85832011-02-28 Bernd Schmidt <bernds@codesourcery.com>
8584 Jakub Jelinek <jakub@redhat.com>
8585
8586 PR middle-end/47893
8587 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
8588 (assign_stack_local_1): Change last argument type to int.
8589 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
8590 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 8591 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
8592 (assign_stack_local): Adjust caller.
8593 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
8594 of assign_stack_local, pass 0 as last argument.
8595 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
8596 callers.
8597
1b500976
JJ
85982011-02-28 Jakub Jelinek <jakub@redhat.com>
8599
f61c6f34
JJ
8600 PR debug/47283
8601 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
8602 Use target address_mode and pointer_mode hooks instead of hardcoded
8603 Pmode and ptr_mode. Handle some simple cases of extending if
8604 POINTERS_EXTEND_UNSIGNED < 0.
8605 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
8606 Call convert_debug_memory_address.
8607 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
8608 convert_debug_memory_address.
8609
1b500976
JJ
8610 PR middle-end/46790
8611 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
8612 * configure: Regenerated.
8613 * config.in: Regenerated.
8614 * varasm.c (default_function_section): Return NULL
b2e2ea67 8615 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 8616
2f2935b6
MJ
86172011-02-28 Martin Jambor <mjambor@suse.cz>
8618
8619 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
8620 the description to match the printed values.
8621
474086eb
RG
86222011-02-28 Richard Guenther <rguenther@suse.de>
8623
8624 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
8625 of the copied scope tree.
8626
15bf6f3a
RW
86272011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8628
8629 * doc/extend.texi (Function Attributes): Avoid deeply (and
8630 wrongly) nested tables.
8631
f6b439c9
JJ
86322011-02-27 Jakub Jelinek <jakub@redhat.com>
8633
8634 PR middle-end/47903
8635 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
8636 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
8637 r isn't op0 nor op1.
8638
1d8ca2c7
GJL
86392011-02-23 Georg-Johann Lay <avr@gjlay.de>
8640
8641 * config/avr/avr.md: Remove magic comment for emacs.
8642
593fca4b
GJL
86432011-02-23 Georg-Johann Lay <avr@gjlay.de>
8644
8645 PR target/45261
8646 * config/avr/avr.c (avr_option_override): Use error on bad options.
8647 (avr_help): New function.
8648 (TARGET_HELP): Define.
8649
6609216e
GJL
86502011-02-22 Georg-Johann Lay <avr@gjlay.de>
8651
8652 PR target/42240
8653 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
8654 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
8655
03d458af
GP
86562011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
8657
8658 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
8659 (ARM Options): Ditto.
8660 (i386 and x86-64 Options): Ditto.
8661 (RX Options): Ditto.
8662 (SPARC Options): Ditto.
8663
1c379b78
TC
86642011-02-26 Tijl Coosemans <tijl@coosemans.org>
8665
8666 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
8667 FreeBSD 6 and later. Generally use cpu generic.
8668
d5ed058c 86692011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 8670
d5ed058c
GP
8671 * doc/cpp.texi: Update copyright years.
8672
509d65dd 86732011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 8674
509d65dd 8675 PR target/46898
308d39cd
SB
8676 * config/lm32/lm32.md (ashrsi3): Added needed variable.
8677
509d65dd 86782011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 8679
509d65dd 8680 PR target/46898
308d39cd
SB
8681 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
8682 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
8683 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
8684 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 8685 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
8686 (gen_int_relational): Move declarations to start of function.
8687
822ba6d7
EB
86882011-02-25 Eric Botcazou <ebotcazou@adacore.com>
8689
8690 PR tree-optimization/45470
8691 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
8692 can throw internally only.
8693 * tree-vect-stmts.c (vectorizable_call): Likewise.
8694
ef795fc2
AS
86952011-02-24 Anatoly Sokolov <aesok@post.ru>
8696
8697 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
8698 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
8699 * config/stormy16/stormy16-protos.h
8700 (xstormy16_preferred_reload_class): Remove.
8701 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
8702 static. Change 'rclass' argument and return type to reg_class_t.
8703 (TARGET_PREFERRED_RELOAD_CLASS,
8704 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
8705
1c3277ee
RG
87062011-02-24 Richard Guenther <rguenther@suse.de>
8707
8708 * lto-streamer-in.c (input_bb): Do not find referenced vars
8709 in debug statements.
8710
67e18edb
JM
87112011-02-23 Jason Merrill <jason@redhat.com>
8712
8713 * common.opt (fabi-version): Document v5 and v6.
8714
b14fad9d
RG
87152011-02-23 Richard Guenther <rguenther@suse.de>
8716
8717 PR tree-optimization/47849
8718 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
8719
7fcf46f5
JZ
87202011-02-23 Jie Zhang <jie@codesourcery.com>
8721
8722 * opts-common.c (decode_cmdline_option): Print empty string
8723 argument as "" in decoded->orig_option_with_args_text.
8724 * gcc.c (execute): Print empty string argument as ""
8725 in the verbose output.
8726 (do_spec_1): Keep empty string argument.
8727
f85b70fd
NF
87282011-02-23 Nathan Froyd <froydnj@codesourcery.com>
8729
8730 * config.gcc: Declare score-* and crx-* obsolete.
8731
b152a615
JZ
87322011-02-23 Jie Zhang <jie@codesourcery.com>
8733
8734 PR rtl-optimization/47763
8735 * web.c (web_main): Ignore naked clobber when replacing register.
8736
bb6e77bc
AS
87372011-02-22 Anatoly Sokolov <aesok@post.ru>
8738
8739 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
8740 Remove.
8741
68bf6491
SP
87422011-02-22 Sebastian Pop <sebastian.pop@amd.com>
8743
8744 PR doc/47848
8745 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
8746
88ee1fc7
MS
87472011-02-22 Mike Stump <mikestump@comcast.net>
8748
8749 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
8750 assembler.
8751 * configure: Regenerate.
8752
6042d1dd
CLT
87532011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
8754
8755 PR rtl-optimization/46002
8756 * ira-color.c (update_copy_costs): Change class intersection
8757 test to reg_class_contents[] test of 'hard_regno'.
8758
7de97f9e
JM
87592011-02-21 Joseph Myers <joseph@codesourcery.com>
8760
8761 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
8762 than Driver option.
8763 * config/hpux11.opt (mt): Likewise.
8764 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
8765 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
8766 * config/vax/elf.opt (mno-asm-pic): Likewise.
8767 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
8768
d1d46f9f
MS
87692011-02-21 Mike Stump <mikestump@comcast.net>
8770
8771 PR target/47822
8772 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
8773 tree so we can get save the type.
8774 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
8775 for CFString instead of trying to use past the end of the builtins.
8776 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
8777 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
8778 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
8779 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
8780 Rename to darwin_builtin_cfstring.
8781 (darwin_init_cfstring_builtins): Return the built type.
8782
23e0d930
UB
87832011-02-21 Uros Bizjak <ubizjak@gmail.com>
8784
8785 PR target/47840
8786 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
8787 (_mm256_insert_epi64): Use _mm_insert_epi64.
8788
192997cf
AS
87892011-02-21 Anatoly Sokolov <aesok@post.ru>
8790
8791 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
8792 * config/stormy16/stormy16-protos.h
8793 (xstormy16_mode_dependent_address_p): Remove.
8794 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
8795 Make static. Change return type to bool. Change argument type to
8796 const_rtx. Remove dead code.
8797 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
8798
e292d003
RG
87992011-02-21 Richard Guenther <rguenther@suse.de>
8800
8801 PR lto/47820
8802 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8803 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8804 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
8805 TUs context.
23e0d930 8806 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
8807 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
8808
77f846e9
RG
88092011-02-20 Richard Guenther <rguenther@suse.de>
8810
8811 PR lto/47822
8812 * tree.c (free_lang_data_in_decl): Clean builtins from
8813 the TU decl BLOCK_VARS.
23e0d930 8814
b2cddfc8
AO
88152011-02-19 Alexandre Oliva <aoliva@redhat.com>
8816
8817 PR debug/47620
8818 PR debug/47630
8819 * haifa-sched.c (fix_tick_ready): Skip tick computation
8820 for debug insns.
8821
becf4c11
RG
88222011-02-19 Richard Guenther <rguenther@suse.de>
8823
8824 PR lto/47647
8825 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
8826 Remove lazy BLOCK_VARS streaming.
8827 (lto_input_ts_block_tree_pointers): Likewise.
8828 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
8829
27f98305
JM
88302011-02-19 Joseph Myers <joseph@codesourcery.com>
8831
8832 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
8833
064bf3f4
JM
88342011-02-19 Joseph Myers <joseph@codesourcery.com>
8835
8836 * config/i386/biarch32.h, config/i386/mach.h,
8837 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
8838
9215ddc3
JJ
88392011-02-19 Jakub Jelinek <jakub@redhat.com>
8840
8841 PR target/47800
8842 * config/i386/i386.md (peephole2 for shift and plus): Use
8843 operands[1] original mode in the first insn.
8844
8b021004
MS
88452011-02-18 Mike Stump <mikestump@comcast.net>
8846
65ded153 8847 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 8848
f84ae14c
JH
88492011-02-18 Jan Hubicka <jh@suse.cz>
8850
8851 PR middle-end/47788
65ded153
EB
8852 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
8853 to zero when the function is not inlinable at all.
f84ae14c 8854
eddabc80
JDA
88552011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8856
8857 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
8858 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
8859 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
8860 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
8861 * config/pa/t-pa64: Likewise.
8862 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
8863
ca3da783
JJ
88642011-02-18 Jakub Jelinek <jakub@redhat.com>
8865
8866 PR driver/47787
8867 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
8868
430aa868
JDA
88692011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8870
8871 PR target/47792
8872 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
8873
4bf7ff7e
AS
88742011-02-18 Anatoly Sokolov <aesok@post.ru>
8875
8876 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
8877 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
8878 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
8879 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
8880 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
8881 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
8882 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
8883 m32r_load_postinc_p, m32r_store_preinc_predec_p,
8884 m32r_legitimate_address_p): New functions.
8885 * config/m32r/constraints.md (constraint "S"): Don't use
8886 STORE_PREINC_PREDEC_P.
8887 (constraint "U"): Don't use LOAD_POSTINC_P.
8888
7efcf910
CLT
88892011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
8890
8891 PR rtl-optimization/46178
8892 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
8893 compute ira_hard_regno_cover_class[].
8894
237d6259
RG
88952011-02-18 Richard Guenther <rguenther@suse.de>
8896
8897 PR lto/47798
8898 * lto-streamer.h (lto_global_var_decls): Declare.
8899 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
8900 statics for global var processing.
8901
12d80acc
RG
89022011-02-18 Richard Guenther <rguenther@suse.de>
8903
8904 PR tree-optimization/47737
8905 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
8906 edge dominance check.
8907
abfea58d
JJ
89082011-02-18 Jakub Jelinek <jakub@redhat.com>
8909
8910 PR debug/47780
8911 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
8912 avoid invalid rtx sharing.
8913
f73c8882
GP
89142011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
8915
8916 * doc/cpp.texi (Obsolete Features): Add background on the
8917 origin of assertions.
8918
d764a8e6
IS
89192011-02-17 Iain Sandoe <iains@gcc.gnu.org>
8920
8921 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 8922 objc_abi == 2.
d764a8e6
IS
8923 * config/darwin.c (output_objc_section_asm_op): Added support for
8924 ABI v1 and v2.
8925 (is_objc_metadata): New.
8926 (darwin_objc2_section): New.
8927 (darwin_objc1_section): New.
8928 (machopic_select_section): Added support for ABI v1 and v2.
8929 (darwin_emit_objc_zeroed): New.
8930 (darwin_output_aligned_bss): Detect objc metadata and treat it
8931 appropriately.
8932 (darwin_asm_output_aligned_decl_common): Same.
8933 (darwin_asm_output_aligned_decl_local): Same.
8934 * config/darwin-sections.def: Updated for ABI v1 and v2.
8935 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
8936 compiling Objective-C code for the NeXT runtime, default to using
8937 ABI version 0 for 32-bit, and version 2 for 64-bit.
8938
0a8134ca
JM
89392011-02-17 Joseph Myers <joseph@codesourcery.com>
8940
8941 * common.opt (optimize_fast): New Variable.
8942 * opts.c (default_options_optimization): Use opts->x_optimize_fast
8943 instead of local variable ofast.
8944
0a256240
NP
89452011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
8946
8947 * doc/invoke.texi (fobjc-abi-version): Documented.
8948 (fobjc-nilcheck): Documented.
8949 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
8950 version.
8951
fa381cb2
JM
89522011-02-17 Joseph Myers <joseph@codesourcery.com>
8953
8954 PR driver/47390
8955 * common.opt (export-dynamic): New Driver option.
8956 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
8957
5437eaa6
JM
89582011-02-17 Joseph Myers <joseph@codesourcery.com>
8959
8960 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
8961
bb7e6d55
AO
89622011-02-17 Alexandre Oliva <aoliva@redhat.com>
8963 Jan Hubicka <jh@suse.cz>
8964
8965 PR debug/47106
8966 PR debug/47402
8967 * cfgexpand.c (account_used_vars_for_block): Remove.
8968 (estimated_stack_frame_size): Use referenced vars.
8969 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
8970 that were referenced in the original function. Test src_fn
8971 rather than cfun. Drop redundant get_var_ann.
8972 (setup_one_parameter): Drop redundant get_var_ann.
8973 (declare_return_variable): Likewise.
8974 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
8975 (copy_arguments_for_versioning): Drop redundant get_var_ann.
8976 * ipa-inline.c (compute_inline_parameters): Do not compute
8977 disregard_inline_limits here.
bb7e6d55
AO
8978 (compute_inlinable_for_current, pass_inlinable): New.
8979 (pass_inline_parameters): Require PROP_referenced_vars.
8980 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 8981 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
8982 (cgraph_analyze_function): Set .disregard_inline_limits.
8983 * tree-sra.c (convert_callers): Compute inliner parameters
8984 only for functions already in SSA form.
8985
f181a8a7
JM
89862011-02-17 Joseph Myers <joseph@codesourcery.com>
8987
8988 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
8989 -mlittle-endian-data.
8990
c6869789
JM
89912011-02-17 Joseph Myers <joseph@codesourcery.com>
8992
8993 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
8994 -mno-fpu, not -fpu and -no-fpu.
8995 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
8996 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
8997
fbf4bfd3
UB
89982011-02-17 Uros Bizjak <ubizjak@gmail.com>
8999
9000 PR target/43653
9001 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9002 input reload with PLUS RTX.
9003
70be5dc7
JM
90042011-02-16 Joseph Myers <joseph@codesourcery.com>
9005
9006 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9007 of InverseVar(MDMX).
9008
30b1646e
JM
90092011-02-16 Joseph Myers <joseph@codesourcery.com>
9010
9011 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9012 --m4-340.
9013
ab7b71e9
JM
90142011-02-16 Joseph Myers <joseph@codesourcery.com>
9015
9016 * config/mn10300/mn10300.opt (mno-crt0): New.
9017
466f3f08
JM
90182011-02-16 Joseph Myers <joseph@codesourcery.com>
9019
9020 * config/m68k/uclinux.opt (static-libc): New Driver option.
9021
8226cd7b
JM
90222011-02-16 Joseph Myers <joseph@codesourcery.com>
9023
9024 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9025
45cab1d7
JM
90262011-02-16 Joseph Myers <joseph@codesourcery.com>
9027
9028 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9029 %{muser-extend-enabled}.
9030
65aab64f
RG
90312011-02-16 Richard Guenther <rguenther@suse.de>
9032
9033 PR tree-optimization/47738
9034 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9035 the TODO from tree_predictive_commoning.
9036
fc2fa4fb
JL
90372011-02-15 Jeff Law <law@redhat.com>
9038
9039 Revert
9040 2011-01-25 Jeff Law <law@redhat.com>
9041
9042 PR rtl-optimization/37273
9043 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9044 handle them like argument loads from stack slots. Do not double
9045 count memory for memory constants and argument loads from stack slots.
9046
4e380b8e
L
90472011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9048
9049 PR middle-end/47725
9050 * combine.c (cant_combine_insn_p): Revert the last change.
9051
e3a69bb4
MM
90522011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9053
9054 PR target/47755
9055 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9056 mode for vector constants. Remove code that checks for TImode.
9057
de650422
AO
90582011-02-15 Alexandre Oliva <aoliva@redhat.com>
9059
9060 PR debug/47106
9061 PR debug/47402
9062 * cgraph.h (compute_inline_parameters): Return void.
9063 * ipa-inline.c (compute_inline_parameters): Adjust.
9064
30925d94
AO
90652011-02-15 Alexandre Oliva <aoliva@redhat.com>
9066
9067 PR debug/47106
9068 PR debug/47402
9069 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
9070 rather than decl.
9071 * cfgexpand.c (estimated_stack_frame_size): Likewise.
9072 * ipa-inline.c (compute_inline_parameters): Adjust.
9073
1b9a784a
AO
90742011-02-15 Alexandre Oliva <aoliva@redhat.com>
9075
9076 PR debug/47106
9077 PR debug/47402
9078 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
9079 Adjust all users. Pass FN to...
9080 * tree-flow-inline.h (first_referenced_var): ... this. Add
9081 fn argument.
9082 * ipa-struct-reorg.c: Adjust.
9083 * tree-dfa.c: Adjust.
9084 * tree-into-ssa.c: Adjust.
9085 * tree-sra.c: Adjust.
9086 * tree-ssa-alias.c: Adjust.
9087 * tree-ssa-live.c: Adjust.
9088 * tree-ssa.c: Adjust.
9089 * tree-ssanames.c: Adjust.
9090 * tree-tailcall.c: Adjust.
9091
27c6b086
AO
90922011-02-15 Alexandre Oliva <aoliva@redhat.com>
9093
9094 PR debug/47106
9095 PR debug/47402
9096 * tree-flow.h (referenced_var_lookup): Add fn parameter.
9097 Adjust all callers.
9098 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
9099 * tree-flow-inline.h: Adjust.
9100 * gimple-pretty-print.c: Adjust.
9101 * tree-into-ssa.c: Adjust.
9102 * tree-ssa.c: Adjust.
9103 * cfgexpand.c: Adjust.
9104
679e8183
NF
91052011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9106
fbf4bfd3
UB
9107 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
9108 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9109 (EXTRA_CONSTRAINT): Delete.
9110 * config/iq2000/constraints.md: New file.
9111 * config/iq2000/iq2000.md: Include it.
679e8183
NF
9112 (define_insn ""): Delete.
9113 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
9114 unsupported constraint letters from patterns.
9115 (call_value, call_value_internal1): Likewise.
9116 (call_value_multiple_internal1): Likewise.
9117
a45d420a
NC
91182011-02-15 Nick Clifton <nickc@redhat.com>
9119
9120 * config/mn10300/mn10300.c: Include tm-constrs.h.
9121 (struct liw_data): New data structure describing an LIW candidate
9122 instruction.
9123 (extract_bundle): Use struct liw_data. Allow small integer
9124 operands for some instructions.
9125 (check_liw_constraints): Use struct liw_data. Remove swapped
9126 parameter. Add comments describing the checks. Fix bug when
9127 assigning the source of liw1 to the source of liw2.
9128 (liw_candidate): Delete. Code moved into extract_bundle.
9129 (mn10300_bundle_liw): Use struct liw_data. Check constraints
9130 before swapping.
9131 * config/mn10300/predicates.md (liw_operand): New predicate.
9132 Allows registers and small integer constants.
9133 * config/mn10300/constraints.md (O): New constraint. Accetps
9134 integers in the range -8 to +7 inclusive.
9135 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
9136 for moving a small integer into a register. Give this alternative
9137 LIW attributes.
9138 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
9139 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
9140 using the J,K,L and M constraints,
9141 (liw): Remove SI mode on second operands to allow for HI and QI
9142 mode values.
9143 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
9144 instruction.
9145
8a73faf1
L
91462011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9147
9148 PR middle-end/47725
9149 * combine.c (cant_combine_insn_p): Check zero/sign extended
9150 hard registers.
9151
48feba28
RG
91522011-02-15 Richard Guenther <rguenther@suse.de>
9153
9154 PR tree-optimization/47743
9155 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
9156 for a non-type-compatible VN lookup bail out.
9157
ad1c1eeb
NF
91582011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9159
9160 * config/fr30/constraints.md: New file.
9161 * config/fr30/fr30.md: Include it.
9162 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
9163 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9164 (EXTRA_CONSTRAINT): Delete.
9165
49ac143d
NF
91662011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9167
9168 * config/frv/constraints.md: New file.
9169 * config/frv/predicates.md: Include it.
9170 * config/frv/frv.c (reg_class_from_letter): Delete.
9171 (frv_option_override): Don't initialize it.
9172 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
9173 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
9174 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
9175 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9176 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
9177 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9178 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
9179 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
9180 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
9181 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
9182 (REG_CLASS_FROM_CONSTRAINT): Delete.
9183
c95f9494
JJ
91842011-02-15 Jakub Jelinek <jakub@redhat.com>
9185
9186 PR middle-end/47581
9187 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
9188 if frame size is 0 in a leaf function.
9189
13aed611
RO
91902011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9191
9192 PR pch/14940
9193 * config/alpha/host-osf.c: New file.
9194 * config/alpha/x-osf: New file.
9195 * config.host (alpha*-dec-osf*): Use it.
9196
b09c3081
AS
91972011-02-14 Anatoly Sokolov <aesok@post.ru>
9198
9199 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9200 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
9201 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
9202 (rx_mode_dependent_address_p): ...this. Make static. Change argument
9203 type to const_rtx.
9204 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9205
d634083b
NF
92062011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9207
9208 * config/stormy16/constraints.md: New file.
9209 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
9210 Use satisfies_constraint_Q and satisfies_constraint_R.
9211 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
9212 Delete.
9213 (xstormy16_legitiamte_address_p): Declare.
9214 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
9215 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9216 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 9217 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
9218 Un-staticize.
9219 (xstormy16_extra_constraint_p): Delete.
9220
c7dd803e
EB
92212011-02-14 Eric Botcazou <ebotcazou@adacore.com>
9222
9223 PR tree-optimization/46494
9224 * loop-unroll.c (split_edge_and_insert): Adjust comment.
9225 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
9226 (pass_rtl_loop_done): Add TODO_verify_flow.
9227 * fwprop.c (pass_rtl_fwprop): Likewise.
9228 * modulo-sched.c (pass_sms): Likewise.
9229 * tree-ssa-dom.c (pass_dominator): Likewise.
9230 * tree-ssa-loop-ch.c (pass_ch): Likewise.
9231 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
9232 (pass_tree_loop_done): Likewise.
9233 * tree-ssa-pre.c (execute_pre): Likewise.
9234 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9235 * tree-ssa-sink.c (pass_sink_code): Likewise.
9236 * tree-vrp.c (pass_vrp): Likewise.
9237
c6150df6
NF
92382011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9239
c7dd803e
EB
9240 * config/v850/constraints.md: New file.
9241 * config/v850/v850.md: Include it.
9242 * config/v850/predicates.md (reg_or_0_operand): Use
9243 satisfies_constraint_G.
9244 (special_symbolref_operand): Use satisfies_constraint_K.
9245 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
9246 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9247 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
9248 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9249 (EXTRA_CONSTRAINT): Delete.
9250 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
9251 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
9252 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 9253
30dd1ea3
AS
92542011-02-14 Anatoly Sokolov <aesok@post.ru>
9255
9256 PR target/47696
9257 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
9258 description.
9259
944f4bb3
NF
92602011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9261
9262 * config/mcore/constraints.md: New file.
9263 * config/mcore/mcore.md: Include it.
9264 * config/mcore/mcore.c (reg_class_from_letter): Delete.
9265 * config/mcore/mcore.h (reg_class_from_letter): Delete.
9266 (REG_CLASS_FROM_LETTER): Delete.
9267 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
9268 insn_const_int_ok_for_constraint.
9269 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
9270 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
9271 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9272 (EXTRA_CONSTRAINT): Delete.
9273
ad56a54c
RO
92742011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9275
9276 PR ada/41929
9277 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
9278 (IS_SIGHANDLER): Define.
9279 (sparc64_is_sighandler): New function, split off from
9280 sparc64_fallback_frame_state.
9281 (sparc_is_sighandler): New function, split off from
9282 sparc_fallback_frame_state.
9283 (sparc64_fallback_frame_state): Merge with ...
9284 (sparc_fallback_frame_state): ... this into ...
9285 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
9286 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
9287 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
9288 stack instead of hardcoded offsets.
ad56a54c 9289
fbf4bfd3 92902011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
9291
9292 PR target/45808
9293 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
9294
029c8f3e
RW
92952011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9296
9297 * configure: Regenerate.
9298
a016dc83
JM
92992011-02-12 Joseph Myers <joseph@codesourcery.com>
9300
9301 PR driver/45731
9302 * gcc.c (asm_options): Correct spec matching --target-help.
9303
8957a0ec
MJ
93042011-02-12 Martin Jambor <mjambor@suse.cz>
9305
9306 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
9307 to gimple call error.
9308
6ef828bc
MS
93092011-02-12 Mike Stump <mikestump@comcast.net>
9310
9311 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
9312 comments in backslash regions.
9313
a4015be5
MS
93142011-02-12 Mike Stump <mikestump@comcast.net>
9315 Jakub Jelinek <jakub@redhat.com>
9316 Iain Sandoe <iains@gcc.gnu.org>
9317
9318 PR target/47324
9319 * dwarf2out.c (output_cfa_loc): When required, apply the
9320 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
9321 (output_loc_sequence): Likewise.
9322 (output_loc_operands_raw): Likewise.
9323 (output_loc_sequence_raw): Likewise.
9324 (output_cfa_loc): Likewise.
9325 (output_loc_list): Suppress register number adjustment when
9326 calling output_loc_sequence()
9327 (output_die): Likewise.
9328
5378dda2
AS
93292011-02-12 Anatoly Sokolov <aesok@post.ru>
9330
9331 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9332 Remove macros.
9333 * config/xtensa/xtensa.c (xtensa_register_move_cost,
9334 xtensa_memory_move_cost): New functions.
9335 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
9336
f3d533d3
AO
93372011-02-12 Alexandre Oliva <aoliva@redhat.com>
9338
9339 PR lto/47225
9340 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
9341 in the current directory.
9342 * configure: Rebuilt.
9343
9d53403c
IS
93442011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9345
9346 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 9347 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
9348 correct indents of the preceding block.
9349
a350a6c8
IS
93502011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9351
9352 * gcc.c (driver_handle_option): Concatenate the argument to -F with
9353 the switch.
9354
bab79a40
JM
93552011-02-11 Joseph Myers <joseph@codesourcery.com>
9356
9357 * common.opt (nostartfiles): New Driver option.
9358
1bbc6693
XDL
93592011-02-11 Xinliang David Li <davidxl@google.com>
9360
9361 PR tree-optimization/47707
9362 * tree-chrec.c (convert_affine_scev): Keep type precision.
9363
1da7d8c0
EB
93642011-02-11 Eric Botcazou <ebotcazou@adacore.com>
9365
9366 PR tree-optimization/47420
9367 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
9368
93692011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
9370
9371 PR rtl-optimization/47614
9372 * rtl.h (check_for_inc_dec): Declare.
9373 * dse.c (check_for_inc_dec): Externalize...
9374 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
9375 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
9376
4df47bca
JM
93772011-02-11 Joseph Myers <joseph@codesourcery.com>
9378
9379 PR driver/47678
9380 * gcc.c (main): Do not compile inputs if there were errors in
9381 option handling.
9382 * opts-common.c (read_cmdline_option): Check for wrong language
9383 after other error checks.
9384
61502ca8
NF
93852011-02-11 Nathan Froyd <froydnj@codesourcery.com>
9386
9387 * cgraph.c: Fix comment typos.
9388 * cgraph.h: Likewise.
9389 * cgraphunit.c: Likewise.
9390 * ipa-cp.c: Likewise.
9391 * ipa-inline.c: Likewise.
9392 * ipa-prop.c: Likewise.
9393 * ipa-pure-const.c: Likewise.
9394 * ipa-ref.c: Likewise.
9395 * ipa-reference.c: Likewise.
9396
b63f974e
JJ
93972011-02-11 Jakub Jelinek <jakub@redhat.com>
9398
d50c5e0c
JJ
9399 PR debug/47684
9400 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 9401
6dd2a13c
RO
94022011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9403
9404 PR testsuite/47400
9405 * doc/sourcebuild.texi (Require Support): Document
9406 dg-require-ascii-locale.
9407
4a087ccf
MX
94082011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
9409
9410 * doc/lto.texi (Write summary): Fix missing parentheses.
9411
a4403164
DD
94122011-02-10 DJ Delorie <dj@redhat.com>
9413
9414 * config/m32c/m32c.c (m32c_option_override): Disable
9415 -fcombine-stack-adjustments until flag value tracking and compare
9416 optimization can be rewritten.
9417
4fac45bd
PB
94182011-02-10 Peter Bergner <bergner@vnet.ibm.com>
9419
9420 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
9421 PROCESSOR_POWER7.
9422 (PROCESSOR_DEFAULT64): Likewise.
9423
72602cd1
RH
94242011-02-10 Richard Henderson <rth@redhat.com>
9425
9426 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
9427 change from 2011-02-03.
9428 * config/rx/rx.c (flags_from_code): Likewise.
9429 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
9430 is valid, n/pz otherwise.
9431 (rx_select_cc_mode): Return CCmode if Y is not zero.
9432
ea57f573
RG
94332011-02-10 Richard Guenther <rguenther@suse.de>
9434
ea4c3e65 9435 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 9436
92b1d23b
RG
94372011-02-10 Richard Guenther <rguenther@suse.de>
9438
9439 PR tree-optimization/47677
9440 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
9441
525a2d06
JJ
94422011-02-10 Jakub Jelinek <jakub@redhat.com>
9443
9444 PR target/47665
9445 * combine.c (make_compound_operation): Only change shifts into
9446 multiplication for SCALAR_INT_MODE_P.
9447
06c969bd
JZ
94482011-02-10 Jie Zhang <jie@codesourcery.com>
9449
9450 PR testsuite/47622
9451 Revert
9452 2011-02-05 Jie Zhang <jie@codesourcery.com>
9453 PR debug/42631
9454 * web.c (entry_register): Don't clobber the number of the
9455 first uninitialized reference in used[].
9456
282ec48e
RG
94572011-02-09 Richard Guenther <rguenther@suse.de>
9458
9459 PR tree-optimization/47664
9460 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
9461 all edges again.
9462
df98c3e8
DE
94632011-02-09 David Edelsohn <dje.gcc@gmail.com>
9464
d0f21cd6
DE
9465 PR target/46481
9466 PR target/47032
df98c3e8
DE
9467 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
9468 PROCESSOR_POWER7.
9469 (PROCESSOR_DEFAULT64): Same.
9470 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
9471
67b6839f
RO
94722011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9473
9474 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
9475
4fd73214
MJ
94762011-02-09 Martin Jambor <mjambor@suse.cz>
9477
9478 PR middle-end/45505
9479 * tree-sra.c (struct access): New flags grp_scalar_read and
9480 grp_scalar_write. Changed description of assignment read and write
9481 flags.
9482 (dump_access): Dump new flags, reorder all of them.
9483 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
9484 to detect multiple scalar reads.
9485 (analyze_access_subtree): Use the new scalar read write flags instead
9486 of the old flags. Adjusted comments.
9487
91140cd3
DD
94882011-02-08 DJ Delorie <dj@redhat.com>
9489
9490 PR target/47548
9491 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
9492 patterns.
9493
4254bbfe
JM
94942011-02-08 Joseph Myers <joseph@codesourcery.com>
9495
9496 * config/m68k/uclinux.opt: New.
9497 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
9498
f1fda84e
JM
94992011-02-08 Joseph Myers <joseph@codesourcery.com>
9500
9501 * config/cris/elf.opt (sim): New Driver option.
9502
4933ae74
JM
95032011-02-08 Joseph Myers <joseph@codesourcery.com>
9504
9505 * config/xtensa/elf.opt: New.
9506 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
9507
4ad70280
JM
95082011-02-08 Joseph Myers <joseph@codesourcery.com>
9509
9510 * config/vax/elf.opt: New.
9511 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
9512
20893707
JM
95132011-02-08 Joseph Myers <joseph@codesourcery.com>
9514
9515 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
9516
b8e7038e
JM
95172011-02-08 Joseph Myers <joseph@codesourcery.com>
9518
9519 * config/gnu-user.opt: New.
9520 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
9521 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
9522 *-*-uclinux*): Use gnu-user.opt.
9523
e1c5225a
TS
95242011-02-08 Thomas Schwinge <thomas@schwinge.name>
9525
9526 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
9527 * config/i386/gnu.h (CPP_SPEC): Likewise.
9528
5e46b0c6
ILT
95292011-02-08 Ian Lance Taylor <iant@google.com>
9530
9531 * common.opt (fcx-limited-range): Add SetByCombined flag.
9532 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
9533 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
9534 (fassociative-math, freciprocal-math): Likewise.
9535 (funsafe-math-optimizations): Likewise.
9536 * opth-gen.awk: Handle SetByCombined.
9537 * optc-gen.awk: Likewise.
ea4c3e65 9538 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
9539 (set_unsafe_math_optimizations_flags): Likewise.
9540 * doc/options.texi (Option properties): Document SetByCombined.
9541
32243d46
JM
95422011-02-08 Joseph Myers <joseph@codesourcery.com>
9543
9544 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
9545 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
9546 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
9547 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
9548 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
9549
479c1fb3
SP
95502011-02-08 Sebastian Pop <sebastian.pop@amd.com>
9551
9552 PR tree-optimization/46834
9553 PR tree-optimization/46994
9554 PR tree-optimization/46995
9555 * graphite-sese-to-poly.c (used_outside_reduction): New.
9556 (detect_commutative_reduction): Call used_outside_reduction.
9557 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
9558 translate_scalar_reduction_to_array only when at least one
9559 loop-phi/close-phi tuple has been detected.
9560
3865a06f
RG
95612011-02-08 Richard Guenther <rguenther@suse.de>
9562
9563 PR middle-end/47639
9564 * tree-vect-generic.c (expand_vector_operations_1): Update
9565 stmts here ...
9566 (expand_vector_operations): ... not here. Cleanup EH info
9567 and the CFG if required.
9568
62902f3f
RG
95692011-02-08 Richard Guenther <rguenther@suse.de>
9570
9571 PR tree-optimization/47641
9572 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
9573 require type compatibility.
9574
0efb9d64
AK
95752011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9576
9577 * gimple-low.c (lower_function_body): Don't remove the location of
9578 the return statement here.
9579 (lower_gimple_return): Do it here instead but only if the return
9580 statement is actually used twice.
9581
034b8ae4
RG
95822011-02-08 Richard Guenther <rguenther@suse.de>
9583
9584 PR tree-optimization/47632
9585 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
9586 unused up_to_stmt parameter, return whether cfg-cleanup is
9587 necessary, remove EH info properly.
9588 (forward_propagate_into_gimple_cond): Adjust caller.
9589 (forward_propagate_into_cond): Likewise.
9590 (forward_propagate_comparison): Likewise.
9591 (tree_ssa_forward_propagate_single_use_vars): Make
9592 forward_propagate_comparison case similar to the two others.
9593
298362c8
NC
95942011-02-08 Nick Clifton <nickc@redhat.com>
9595
9596 * config/mn10300/mn10300.opt (mliw): New command line option.
9597 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
9598 (liw_bundling): New automaton.
9599 (liw): New attribute.
9600 (liw_op): New attribute.
9601 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
9602 (movsi_internal): Add LIW attributes.
9603 (andsi3): Likewise.
9604 (iorsi3): Likewise.
9605 (xorsi3): Likewise.
9606 (addsi3): Separate register and immediate alternatives.
9607 Add LIW attributes.
9608 (subsi3): Likewise.
9609 (cmpsi): Likewise.
9610 (aslsi3): Likewise.
9611 (lshrsi3): Likewise.
9612 (ashrsi3): Likewise.
9613 (liw): New pattern.
9614 * config/mn10300/mn10300.c (liw_op_names): New
9615 (mn10300_print_operand): Handle 'W' operand descriptor.
9616 (extract_bundle): New function.
9617 (check_liw_constraints): New function.
9618 (liw_candidate): New function.
9619 (mn10300_bundle_liw): New function.
9620 (mn10300_reorg): New function.
9621 (TARGET_MACHINE_DEPENDENT_REORG): Define.
9622 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
9623 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
9624 __LIW__ or __NO_LIW__.
9625 * doc/invoke.texi: Describe the -mliw command line option.
9626
90488014
JDA
96272011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9628
9629 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
9630 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9631 pthread_mutex_unlock): Remove.
9632 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
9633 * config/pa/t-pa64: Likewise.
9634 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
9635 shared libc if not linking against libpthread.
9636 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9637
689ff841
IS
96382011-02-07 Iain Sandoe <iains@gcc.gnu.org>
9639
9640 PR target/47558
9641 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
9642 on 10.6 and later to ensure that we always use the unwinder from
9643 the system. Only add -no_compact_unwind when tarteting darwin
9644 10.6 or later.
9645
821014aa
SE
96462011-02-07 Steve Ellcey <sje@cup.hp.com>
9647
9648 PR target/46997
9649 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
9650 (vec_interleave_lowv2sf): Ditto.
9651 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
9652 (vec_extract_oddv2sf): Ditto.
9653
41cf94fb
MS
96542011-02-07 Mike Stump <mikestump@comcast.net>
9655
62dea57d 9656 PR target/42333
41cf94fb
MS
9657 Add __ieee_divdc3 entry point.
9658 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
9659 entry point.
9660 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
9661 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
9662 * config/darwin.c (darwin_rename_builtins): Add.
9663 * config/darwin-protos.h (darwin_rename_builtins): Add.
9664
ee09a3dd
MM
96652011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
9666
9667 PR target/47636
9668 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
9669 for the condition.
9670
83296cd0
MS
96712011-02-07 Mike Stump <mikestump@comcast.net>
9672
ea4c3e65 9673 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 9674
0f4e946f
DC
96752011-02-07 Denis Chertykov <chertykov@gmail.com>
9676
9677 PR target/47534
9678 * config/avr/libgcc.S (exit): Move .endfunc
9679
1ec87690
RG
96802011-02-07 Richard Guenther <rguenther@suse.de>
9681
9682 PR tree-optimization/47615
9683 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
9684 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
9685 (run_scc_vn): Initialize it.
9686 (visit_reference_op_load): Use it.
9687 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
9688
b46ae6da
UW
96892011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9690
9691 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
9692 DImode trapping arithmetic libfuncs.
9693
c0aae19c
RG
96942011-02-07 Richard Guenther <rguenther@suse.de>
9695
9696 PR tree-optimization/47621
9697 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
9698 two duplicates ...
9699 (execute_update_addresses_taken): ... here. Make it more
9700 conservative in what we accept.
9701
295d926b
JM
97022011-02-06 Joseph Myers <joseph@codesourcery.com>
9703
9704 * config/sparc/freebsd.h (ASM_SPEC): Define.
9705 * config/sparc/vxworks.h (ASM_SPEC): Define.
9706
bdeb2471
JM
97072011-02-06 Joseph Myers <joseph@codesourcery.com>
9708
9709 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
9710
d5d3781a
SB
97112011-02-06 Steven Bosscher <steven@gcc.gnu.org>
9712
9713 * doc/invoke.texi: Remove reference to compiler internals from
9714 user documentation.
9715
9716 * reg-notes.def: Remove REG_VALUE_PROFILE.
9717 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
9718
c42c09fc
JJ
97192011-02-05 Jakub Jelinek <jakub@redhat.com>
9720
9721 PR middle-end/47610
9722 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 9723 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 9724
beea2755
JZ
97252011-02-05 Jie Zhang <jie@codesourcery.com>
9726
9727 PR debug/42631
9728 * web.c (entry_register): Don't clobber the number of the
9729 first uninitialized reference in used[].
9730
a130584a
SP
97312011-02-04 Sebastian Pop <sebastian.pop@amd.com>
9732
9733 PR tree-optimization/46194
9734 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
9735 (build_classic_dist_vector_1): Do not represent classic distance
9736 vectors when the access functions are variating in different loops.
9737
962101ac
JM
97382011-02-04 Joseph Myers <joseph@codesourcery.com>
9739
9740 * config/mips/iris6.opt: New.
9741 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
9742
55eaaa5b
RH
97432011-02-04 Richard Henderson <rth@redhat.com>
9744 Steve Ellcey <sje@cup.hp.com>
9745
9746 PR target/46997
9747 * config/ia64/predicates.md (mux1_brcst_element): New.
9748 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
9749 * config/ia64/ia64.c (ia64_unpack_assemble): New.
9750 (ia64_unpack_sign): New.
9751 (ia64_expand_unpack): Rewrite using new routines.
9752 (ia64_expand_widen_sum): Ditto.
9753 (ia64_expand_dot_prod_v8qi): Ditto.
9754 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
9755 routines, add endian check.
9756 (pmpy2_even): Rename from pmpy2_r, add endian check.
9757 (pmpy2_odd): Rename from pmpy2_l, add endian check.
9758 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
9759 (vec_widen_smult_hi_v4hi): Ditto.
9760 (vec_widen_umult_lo_v4hi): Ditto.
9761 (vec_widen_umult_hi_v4hi): Ditto.
9762 (mulv2si3): Change endian checks.
9763 (sdot_prodv4hi): Rewrite with new calls.
9764 (udot_prodv4hi): New.
9765 (vec_pack_ssat_v4hi): Add endian check.
9766 (vec_pack_usat_v4hi): Ditto.
9767 (vec_pack_ssat_v2si): Ditto.
9768 (max1_even): Rename from max1_r, add endian check.
9769 (max1_odd): Rename from max1_l, add endian check.
9770 (*mux1_rev): Format change.
9771 (*mux1_mix): Ditto.
9772 (*mux1_shuf): Ditto.
9773 (*mux1_alt): Ditto.
9774 (*mux1_brcst_v8qi): Use new predicate.
9775 (vec_extract_evenv8qi): Remove endian check.
9776 (vec_extract_oddv8qi): Ditto.
9777 (vec_interleave_lowv4hi): Format change.
9778 (vec_interleave_highv4hi): Ditto.
9779 (mix2_even): Rename from mix2_r, add endian check.
9780 (mix2_odd): Rename from mux2_l, add endian check.
9781 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
9782 (vec_extract_evenodd_helper): Format change.
9783 (vec_extract_evenv4hi): Remove endian check.
9784 (vec_extract_oddv4hi): Remove endian check.
9785 (vec_interleave_lowv2si): Format change.
9786 (vec_interleave_highv2si): Format change.
9787 (vec_initv2si): Remove endian check.
9788 (vecinit_v2si): Add endian check.
9789 (reduc_splus_v2sf): Add endian check.
9790 (reduc_smax_v2sf): Ditto.
9791 (reduc_smin_v2sf): Ditto.
9792 (vec_initv2sf): Remove endian check.
9793 (fpack): Add endian check.
9794 (fswap): Add endian check.
9795 (vec_interleave_highv2sf): Add endian check.
9796 (vec_interleave_lowv2sf): Add endian check.
9797 (fmix_lr): Add endian check.
9798 (vec_setv2sf): Format change.
9799 (*vec_extractv2sf_0_be): Use shift to extract operand.
9800 (*vec_extractv2sf_1_be): New.
9801 (vec_pack_trunc_v4hi): Add endian check.
9802 (vec_pack_trunc_v2si): Format change.
9803
dcde5957
JJ
98042011-02-04 Jakub Jelinek <jakub@redhat.com>
9805
9806 PR inline-asm/23200
9807 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 9808 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
9809 (stmt_is_replaceable_p): New function.
9810 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
9811 callers.
9812 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
9813 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
9814 SSA_NAME_DEF_STMT.
9815 * tree-flow.h (stmt_is_replaceable_p): New prototype.
9816
a64a8e5a
JM
98172011-02-04 Joseph Myers <joseph@codesourcery.com>
9818
9819 * config/rs6000/xilinx.opt: New.
9820 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
9821
4da2ed2f
JM
98222011-02-04 Joseph Myers <joseph@codesourcery.com>
9823
9824 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
9825
a6e508f9
AS
98262011-02-03 Anatoly Sokolov <aesok@post.ru>
9827
9828 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
9829 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9830 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
9831 secondary_reload_info, xtensa_secondary_reload): Remove.
9832 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
9833 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9834 (xtensa_preferred_reload_class): Make static. Change return and
9835 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
9836 Use CONST_DOUBLE_P predicate.
9837 (xtensa_preferred_output_reload_class): New function.
9838 (xtensa_secondary_reload): Make static.
9839
82dc0de3
JM
98402011-02-03 Joseph Myers <joseph@codesourcery.com>
9841
9842 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
9843 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
9844 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
9845
7fece979
JJ
98462011-02-03 Jakub Jelinek <jakub@redhat.com>
9847
9848 PR middle-end/31490
9849 * output.h (SECTION_RELRO): Define.
9850 (SECTION_MACH_DEP): Adjust.
9851 (get_variable_section): New prototype.
9852 * varpool.c (varpool_finalize_named_section_flags): New function.
9853 (varpool_assemble_pending_decls): Call it.
9854 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
9855 * cgraphunit.c (cgraph_output_in_order): Call
9856 varpool_finalize_named_section_flags.
9857 * varasm.c (get_section): Allow section flags conflicts between
9858 relro and read-only sections if the section hasn't been declared yet.
9859 Set SECTION_OVERRIDE after diagnosing section type conflict.
9860 (get_variable_section): No longer static.
9861 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
9862 readonly sections that need relocations.
9863 (decl_readonly_section_1): New function.
9864 (decl_readonly_section): Use it.
9865
9866 Revert:
509d65dd 9867 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
9868 Steve Ellcey <sje@cup.hp.com>
9869
9870 PR middle-end/31490
9871 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
9872 if section attribute used.
9873
d18d5478
JJ
98742011-02-03 Jakub Jelinek <jakub@redhat.com>
9875
9876 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
9877 * config/darwin.c (SECTION_NO_ANCHOR): Define.
9878 (darwin_init_sections): Remove assertion.
9879
6479ed4b
NC
98802011-02-03 Nick Clifton <nickc@redhat.com>
9881
9882 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
9883 lt and ge.
38be4072 9884 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
9885 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
9886 instead of "n" and "pz".
9887 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
9888 CC_FLAG_S.
9889
89843f5d
JJ
98902011-02-03 Jakub Jelinek <jakub@redhat.com>
9891
65450d64
JJ
9892 PR target/47312
9893 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
9894 fma, expand FMA_EXPR as fma{,f,l} call.
9895
7d58701c
JJ
9896 PR lto/47274
9897 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
9898 copy them into a unsigned char variable and pass address of it to
9899 lto_output_data_stream.
9900
89843f5d
JJ
9901 PR target/47564
9902 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
9903 around backend_init_target and lang_dependent_init_target calls.
9904 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
9905 (verify_cgraph_node): Don't call set_cfun here. Use
9906 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
9907 Set error_found for incorrectly represented calls to thunks.
9908
4deef538
AO
99092011-02-03 Alexandre Oliva <aoliva@redhat.com>
9910
9911 PR debug/43092
9912 PR rtl-optimization/43494
9913 * rtl.h (for_each_inc_dec_fn): New type.
9914 (for_each_inc_dec): Declare.
9915 * rtlanal.c (struct for_each_inc_dec_ops): New type.
9916 (for_each_inc_dec_find_inc_dec): New fn.
9917 (for_each_inc_dec_find_mem): New fn.
9918 (for_each_inc_dec): New fn.
9919 * dse.c (struct insn_size): Remove.
9920 (replace_inc_dec, replace_inc_dec_mem): Remove.
9921 (emit_inc_dec_insn_before): New fn.
9922 (check_for_inc_dec): Use it, along with for_each_inc_dec.
9923 (canon_address): Pass mem modes to cselib_lookup.
9924 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
9925 (cselib_lookup_from_insn): Likewise.
9926 (cselib_subst_to_values): Likewise.
9927 * cselib.c (find_slot_memmode): New var.
9928 (cselib_find_slot): New fn. Use it instead of
9929 htab_find_slot_with_hash everywhere.
9930 (entry_and_rtx_equal_p): Use find_slot_memmode.
9931 (autoinc_split): New fn.
9932 (rtx_equal_for_cselib_p): Rename and implement in terms of...
9933 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
9934 Deal with autoinc. Special-case recursion into MEMs.
9935 (cselib_hash_rtx): Likewise.
9936 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
9937 address and MEM modes.
9938 (cselib_subst_to_values): Add memmode, pass it on.
9939 Deal with autoinc.
9940 (cselib_lookup): Add memmode argument, pass it on.
9941 (cselib_lookup_from_insn): Add memmode.
9942 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
9943 (struct cselib_record_autoinc_data): New.
9944 (cselib_record_autoinc_cb): New fn.
9945 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
9946 mode to cselib_lookup. Reset autoinced REGs here instead of...
9947 (cselib_process_insn): ... here.
9948 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
9949 to cselib_lookup.
9950 (add_uses): Likewise, also to cselib_subst_to_values.
9951 (add_stores): Likewise.
9952 * sched-deps.c (add_insn_mem_dependence): Pass mode to
9953 cselib_subst_to_values.
9954 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
9955 * gcse.c (do_local_cprop): Adjusted.
9956 * postreload.c (reload_cse_simplify_set): Adjusted.
9957 (reload_cse_simplify_operands): Adjusted.
9958 * sel-sched-dump (debug_mem_addr_value): Pass mode.
9959
1551d44a
AO
99602011-02-03 Alexandre Oliva <aoliva@redhat.com>
9961
9962 PR tree-optimization/45122
9963 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
9964 unsafe assumptions when there's more than one loop exit.
9965
c9485473
MM
99662011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
9967
9968 PR target/47272
9969 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
9970 Document using vector double with the load/store builtins, and
9971 that the load/store builtins always use Altivec instructions.
9972
9973 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
9974 to use altivec memory instructions, even on VSX.
9975 (vector_altivec_store_<mode>): Ditto.
9976
9977 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
9978 function.
9979
9980 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9981 V2DF, V2DI support to load/store overloaded builtins.
9982
9983 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
9984 altivec load/store builtins for V2DF/V2DI types.
9985
9986 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9987 set avoid indexed addresses on power6 if -maltivec.
9988 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
9989 vector_altivec_load/vector_altivec_store builtins.
9990 (altivec_expand_st_builtin): Ditto.
9991 (altivec_expand_builtin): Add VSX memory builtins.
9992 (rs6000_init_builtins): Add V2DI types to internal types.
9993 (altivec_init_builtins): Add support for V2DF/V2DI altivec
9994 load/store builtins.
9995 (rs6000_address_for_altivec): Insure memory address is appropriate
9996 for Altivec.
9997
9998 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
9999 vec_vsx_ld and vec_vsx_st.
10000 (vsx_store_<mode>): Ditto.
10001
10002 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10003 variables to hold long long types for VSX vector memory builtins.
10004 (RS6000_BTI_unsigned_long_long): Ditto.
10005 (long_long_integer_type_internal_node): Ditti.
10006 (long_long_unsigned_type_internal_node): Ditti.
10007
10008 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10009 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10010 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10011
10012 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10013 short cuts.
10014 (vec_vsx_st): Ditto.
10015
b24d1acf
JM
100162011-02-02 Joseph Myers <joseph@codesourcery.com>
10017
10018 * config/pa/pa-hpux10.opt: New.
10019 * config/hpux11.opt (pthread): New Driver option.
10020 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10021 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10022
aa18dd0f
JM
100232011-02-02 Joseph Myers <joseph@codesourcery.com>
10024
10025 * config/ia64/vms.opt: New.
10026 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10027
28fc3eee
MM
100282011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10029
10030 PR target/47580
10031 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10032 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10033 generator functions.
10034 (vsx_floatuns<VSi><mode>2): Ditto.
10035 (vsx_fix_trunc<mode><VSi>2): Ditto.
10036 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10037
b5838b1f
JM
100382011-02-02 Joseph Myers <joseph@codesourcery.com>
10039
10040 * config/i386/djgpp.opt (posix): New Driver option.
10041
0db8fa89
GP
100422011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10043
10044 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10045 Move to the unsupported targets list.
10046
9cd4f22a
PB
100472011-02-02 Peter Bergner <bergner@vnet.ibm.com>
10048
10049 PR rtl-optimization/47525
10050 * df-scan.c: Update copyright years.
10051 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10052 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10053
9ed8059c
RO
100542011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10055
10056 * config/i386/sysv4.h (TARGET_VERSION): Remove.
10057 (SUBTARGET_RETURN_IN_MEMORY): Remove.
10058 (ASM_OUTPUT_ASCII): Remove.
10059 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10060
2a737389
JL
100612011-02-02 Jeff Law <law@redhat.com>
10062
10063 PR middle-end/47543
10064 * reload.c (find_reloads_address): Handle reg+d address where both
10065 components are invalid by reloading the entire address.
10066
9dac82c4
SP
100672011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10068 Richard Guenther <rguenther@suse.de>
10069
10070 PR tree-optimization/40979
10071 PR bootstrap/47044
10072 * passes.c (init_optimization_passes): After LIM call copy_prop
10073 and DCE to clean up.
10074 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
10075
14dd9aab
SP
100762011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10077
10078 PR tree-optimization/47576
10079 PR tree-optimization/47555
10080 * doc/invoke.texi (scev-max-expr-complexity): Documented.
10081 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10082 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
10083 * tree-scalar-evolution.c (follow_ssa_edge): Use
10084 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
10085
5cbf5c20
RG
100862011-02-02 Richard Guenther <rguenther@suse.de>
10087
10088 PR tree-optimization/47566
10089 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
10090
83d70792
AO
100912011-02-02 Alexandre Oliva <aoliva@redhat.com>
10092
e829c321
AO
10093 PR debug/47106
10094 PR debug/47402
10095 * tree-inline.c (declare_return_variable): Remove unused caller
10096 variable.
10097
83d70792
AO
10098 PR debug/47106
10099 PR debug/47402
10100 * tree-flow-inline.h (clear_is_used, is_used_p): New.
10101 * cfgexpand.c (account_used_vars_for_block): Use them.
10102 * tree-nrv.c (tree_nrv): Likewise.
10103 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
10104 (dump_scope_block): Likewise.
10105 (remove_unused_locals): Likewise.
10106
aaa2ac93
AO
10107 PR debug/47106
10108 PR debug/47402
10109 * tree-inline.c (declare_return_variable): Add result decl to
10110 local decls only once.
10111 * gimple-low.c (record_vars_into): Mark newly-created variables
10112 as referenced.
10113
a59d15cf
AO
101142011-02-02 Alexandre Oliva <aoliva@redhat.com>
10115
10116 PR debug/47498
10117 PR debug/47501
10118 PR debug/45136
10119 PR debug/45130
10120 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10121 debug insns.
10122 (no_real_insns_p, schedule_block, set_priorities): Drop special
10123 treatment of boundary debug insns.
38be4072 10124 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
10125 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
10126 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10127 (BOUNDARY_DEBUG_INSN_P): Likewise.
10128 (SCHEDULE_DEBUG_INSN_P): Likewise.
10129 * sched-rgn.c (init_ready_list): Drop special treatment of
10130 boundary debug insns.
10131 * final.c (rest_of_clean_state): Clear notes' BB.
10132
6fc2f091
JM
101332011-02-01 Joseph Myers <joseph@codesourcery.com>
10134
10135 * config/openbsd.opt (assert=): New Driver option.
10136
fc523387
JM
101372011-02-01 Joseph Myers <joseph@codesourcery.com>
10138
10139 * config/i386/nto.opt: New.
10140 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
10141
6d9821e5
JM
101422011-02-01 Joseph Myers <joseph@codesourcery.com>
10143
10144 * config/i386/netware.opt: New.
10145 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
10146
cef932d4
JM
101472011-02-01 Joseph Myers <joseph@codesourcery.com>
10148
10149 * config/interix.opt (posix): New Driver option.
10150
22843acd
DD
101512011-02-01 DJ Delorie <dj@redhat.com>
10152
56490b74
DD
10153 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
10154
22843acd
DD
10155 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
10156 class for A0/A1.
10157
199c8f2f
SP
101582011-02-01 Sebastian Pop <sebastian.pop@amd.com>
10159
10160 PR tree-optimization/47561
10161 * toplev.c (process_options): Print the Graphite flags. Add
10162 flag_loop_flatten to the list of options requiring Graphite.
10163
926bcf22
JM
101642011-02-01 Joseph Myers <joseph@codesourcery.com>
10165
10166 * config/i386/cygming.opt (posix): New Driver option.
10167
59793c51
JM
101682011-02-01 Joseph Myers <joseph@codesourcery.com>
10169
10170 * config/arm/vxworks.opt: New.
10171 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
10172
183c38a4
JM
101732011-02-01 Joseph Myers <joseph@codesourcery.com>
10174
10175 * config/alpha/elf.opt: New.
10176 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
10177 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
10178
9939e416
RG
101792011-02-01 Richard Guenther <rguenther@suse.de>
10180
10181 PR tree-optimization/47559
10182 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
10183 store-motion on references that can throw.
10184
4a3c9687
BS
101852011-02-01 Bernd Schmidt <bernds@codesourcery.com>
10186
10187 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
10188 * tree-pass.h (TDF_CSELIB): New macro.
10189 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
10190 cselib_lookup): Check for it rather than for TDF_DETAILS.
10191
dd3b31fb
L
101922011-02-01 H.J. Lu <hongjiu.lu@intel.com>
10193
10194 PR driver/47547
10195 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
10196 is HOST_BIT_BUCKET.
10197
10198 * opts.c (finish_options): Don't add x_aux_base_name if it is
10199 HOST_BIT_BUCKET.
10200
34c1de79
RG
102012011-02-01 Richard Guenther <rguenther@suse.de>
10202
10203 PR tree-optimization/47555
10204 Revert
10205 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
10206
10207 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10208
dd2804d2
SB
102092011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
10210
10211 PR gcc/46692
10212 * config/lm32/t-lm32: Add multilib for all CPU options.
10213
3fd3b156
RG
102142011-02-01 Richard Guenther <rguenther@suse.de>
10215
10216 PR tree-optimization/47541
10217 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10218 sure to have a field at offset zero.
10219
f16072b6
JM
102202011-01-31 Joseph Myers <joseph@codesourcery.com>
10221
10222 * config/arc/arc.opt (EB, EL): New Driver options.
10223
6456cf2e
JM
102242011-01-31 Joseph Myers <joseph@codesourcery.com>
10225
10226 * config/alpha/osf5.opt: New.
10227 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
10228
cdde6ab4
JM
102292011-01-31 Joseph Myers <joseph@codesourcery.com>
10230
10231 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
10232
7633415c
SP
102332011-01-31 Sebastian Pop <sebastian.pop@amd.com>
10234
10235 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
10236 -floop-interchange.
10237 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
10238 is an alias of -floop-interchange and that it requires the
10239 Graphite infrastructure.
10240 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
10241 flag_loop_interchange based on the value of flag_tree_loop_linear.
10242
0425d6f5
JJ
102432011-01-31 Jakub Jelinek <jakub@redhat.com>
10244 Richard Guenther <rguenther@suse.de>
10245
10246 PR tree-optimization/47538
10247 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
10248 type instead of r1type, except for comparisons. For right
10249 shifts and comparisons punt if there are mismatches in
10250 sizetype vs. non-sizetype types.
10251
500b16c3
RO
102522011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10253
10254 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10255 avx_runtime.
10256
e279edb0
RO
102572011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10258
10259 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
10260 version number.
10261 * configure: Regenerate.
10262
c6092243
RO
102632011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10264
10265 * configure.ac (gcc_cv_ld_static_option): Define.
10266 (gcc_cv_ld_dynamic_option): Define.
10267 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
10268 instead.
10269 (HAVE_LD_STATIC_DYNAMIC): Update message.
10270 (LD_STATIC_OPTION): Define.
10271 (LD_DYNAMIC_OPTION): Define.
10272 * configure: Regenerate.
10273 * config.in: Regenerate.
10274 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
10275 HAVE_LD_STATIC_DYNAMIC]: Use them.
10276
d7862be3
NC
102772011-01-31 Nick Clifton <nickc@redhat.com>
10278
10279 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
10280 registers inside interrupt handlers if the handler is not a leaf
10281 function.
10282
ba4ec0e0
NC
102832011-01-31 Nick Clifton <nickc@redhat.com>
10284
10285 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
10286 reg_renumber returning an INVALID_REGNUM.
10287
29a63921
AO
102882011-01-31 Alexandre Oliva <aoliva@redhat.com>
10289
10290 PR libgcj/44341
10291 * doc/install.texi: Document host options discarded when cross
10292 configuring target libraries.
10293
ef591d3f
AO
102942011-01-31 Alexandre Oliva <aoliva@redhat.com>
10295
10296 Reverted:
10297 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
10298 PR debug/45136
10299 PR debug/45130
10300 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10301 debug insns.
10302 (no_real_insns_p, schedule_block, set_priorities): Drop special
10303 treatment of boundary debug insns.
38be4072 10304 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
10305 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10306 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10307 (BOUNDARY_DEBUG_INSN_P): Likewise.
10308 (SCHEDULE_DEBUG_INSN_P): Likewise.
10309 * sched-rgn.c (init_ready_list): Drop special treatment of
10310 boundary debug insns.
10311 * final.c (rest_of_clean-state): Clear notes' BB.
10312
61052244
AM
103132011-01-31 Alan Modra <amodra@gmail.com>
10314
10315 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
10316 toc relative expressions as we do in print_operand_address.
10317
c4c8962b
KH
103182011-01-30 Kazu Hirata <kazu@codesourcery.com>
10319
10320 * doc/extend.texi: Follow spelling conventions.
10321 * doc/invoke.texi: Fix a typo.
10322
e543b94c
JM
103232011-01-30 Joseph Myers <joseph@codesourcery.com>
10324
10325 * config/hpux11.opt: New.
10326 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
10327 ia64*-*-hpux*): Use hpux11.opt.
10328
509d65dd 103292011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
10330
10331 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
10332 to tmake_file.
10333
7be03a0e
GP
103342011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10335
10336 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
10337 support sites.
10338
419d1d37
GP
103392011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10340
b596ed64
GP
10341 * doc/install.texi (Binaries): Remove outdated reference for
10342 Motorola 68HC11/68HC12 downloads.
10343
103442011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 10345
419d1d37
GP
10346 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
10347 Drepper's paper.
10348
4406d0e9
JW
103492011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
10350
10351 PR bootstrap/47147
10352 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
10353 used by NetBSD.
10354
38be4072 103552011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
10356
10357 * value-prof.c (check_counter): Corrected error message.
10358
0cd98787
JZ
103592011-01-29 Jie Zhang <jie@codesourcery.com>
10360
10361 * config/arm/arm.c (arm_legitimize_reload_address): New.
10362 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
10363 arm_legitimize_reload_address.
38be4072 10364 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 10365
9b798ac5
ILT
103662011-01-28 Ian Lance Taylor <iant@google.com>
10367
10368 * godump.c (go_define): Ignore macros whose definitions include
10369 two adjacent operands.
10370
591e29d9
JJ
103712011-01-28 Jakub Jelinek <jakub@redhat.com>
10372
10373 PR target/42894
10374 * varasm.c (force_const_mem): Store copy of x in desc->constant
10375 instead of x itself.
10376 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
10377 itself into REG_EQUAL note.
10378
62dcc44a
JM
103792011-01-28 Joseph Myers <joseph@codesourcery.com>
10380
10381 * config/freebsd.opt (posix, rdynamic): New Driver options.
10382
c9f58b9a
RO
103832011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10384
10385 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
10386 -Bstatic/-Bdynamic.
10387 * configure: Regenerate.
10388
5f02b9db
JM
103892011-01-27 Joseph Myers <joseph@codesourcery.com>
10390
10391 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
10392 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
10393
5df97412
AS
103942011-01-27 Anatoly Sokolov <aesok@post.ru>
10395
10396 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
10397 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
10398 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
10399 (s390_preferred_reload_class): Make static. Change return and
10400 'rclass' argument type to reg_class_t.
10401
779d4b91
JH
104022011-01-27 Jan Hubicka <jh@suse.cz>
10403
10404 PR middle-end/46949
10405 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
10406 (process_function_and_variable_attributes): Check defined weakrefs.
10407
e80b21ed
MJ
104082011-01-27 Martin Jambor <mjambor@suse.cz>
10409
10410 PR tree-optimization/47228
10411 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
10412 build_ref_for_offset.
10413
6dcc4f31
UW
104142011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10415
10416 * config/spu/spu-elf.h (ASM_SPEC): Remove.
10417
509d65dd 104182011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
10419
10420 PR rtl-optimization/46856
10421 * postreload.c (reload_combine_recognize_const_pattern): Do not
10422 separate cc0 setter and user on cc0 targets.
10423
04af8788
NP
104242011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
10425
10426 PR c/43082
10427 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
10428 passed a VOID_TYPE expression, immediately emit an error and
10429 return error_mark_node.
10430
f7a60085
JL
104312011-01-26 Jeff Law <law@redhat.com>
10432
10433 PR rtl-optimization/47464
10434 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
10435 rather than may_trap_p as needed.
10436
5c2917ec
DD
104372011-01-26 DJ Delorie <dj@redhat.com>
10438
10439 PR rtl-optimization/46878
10440 * combine.c (insn_a_feeds_b): Check for the implicit cc0
10441 setter/user dependency as well.
10442
bef16e87
EB
104432011-01-26 Eric Botcazou <ebotcazou@adacore.com>
10444
10445 PR rtl-optimization/44469
10446 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
10447 after removing trivially dead basic blocks.
10448
c75d884b
JM
104492011-01-26 Joseph Myers <joseph@codesourcery.com>
10450
10451 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
10452 * config/frv/frv.h (LINK_SPEC): Likewise.
10453 * config/i386/netware.h (LINK_SPEC): Likewise.
10454 * config/m68k/linux.h (ASM_SPEC): Likewise.
10455 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
10456 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10457 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10458 * config/sparc/linux.h (ASM_SPEC): Likewise.
10459 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10460 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10461
d3153553
JM
104622011-01-26 Joseph Myers <joseph@codesourcery.com>
10463
10464 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
10465 * config/frv/frv.h (ASM_SPEC): Likewise.
10466 * config/m68k/linux.h (ASM_SPEC): Likewise.
10467 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10468 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
10469 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10470 * config/sparc/linux.h (ASM_SPEC): Likewise.
10471 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10472 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10473
b89b1e9d
JM
104742011-01-26 Joseph Myers <joseph@codesourcery.com>
10475
10476 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
10477 * config/frv/frv.h (LINK_SPEC): Likewise.
10478 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10479
12eb1a9c
JM
104802011-01-26 Joseph Myers <joseph@codesourcery.com>
10481
10482 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
10483 * config/frv/frv.h (ASM_SPEC): Likewise.
10484 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
10485 * config/m68k/linux.h (ASM_SPEC): Likewise.
10486 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10487 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
10488 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10489 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
10490 * config/sparc/linux.h (ASM_SPEC): Likewise.
10491 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10492 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10493 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
10494
e435f098
SE
104952011-01-26 Steve Ellcey <sje@cup.hp.com>
10496
10497 PR target/46997
10498 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
10499 (*mux2): Ditto.
10500 (vec_extract_evenodd_help): Ditto.
10501 (vec_extract_evenv4hi): Ditto.
10502 (vec_extract_oddv4hi): Ditto.
10503 (vec_interleave_lowv2si): Ditto.
10504 (vec_interleave_highv2si): Ditto.
10505 (vec_extract_evenv2si): Ditto.
10506 (vec_extract_oddv2si: Ditto.
10507 (vec_pack_trunc_v2si): Ditto.
10508
34f0eee0
JH
105092011-01-22 Jan Hubicka <jh@suse.cz>
10510
10511 PR target/47237
10512 * cgraph.h (cgraph_local_info): New field can_change_signature.
10513 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
10514 signature can change.
10515 (ipcp_estimate_growth): Call sequence simplify only if calle signature
10516 can change.
10517 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
10518 (cgraph_function_versioning): We can not change signature of functions
10519 that don't allow that.
10520 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
10521 (lto_input_node): Likewise.
38be4072
UB
10522 * ipa-inline.c (compute_inline_parameters): Compute
10523 local.can_change_signature.
34f0eee0 10524 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
10525 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
10526 functions that can not change signature.
34f0eee0 10527 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
10528 init_cumulative_args): Do not use local calling conventions
10529 for functions that can not change signature.
34f0eee0 10530
980ca891
JH
105312011-01-22 Jan Hubicka <jh@suse.cz>
10532
10533 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
10534
768e3c60
RG
105352011-01-26 Richard Guenther <rguenther@suse.de>
10536
10537 PR tree-optimization/47190
61052244
AM
10538 * cgraphunit.c (process_common_attributes): New function.
10539 (process_function_and_variable_attributes): Use it.
768e3c60 10540
21d6a1c7
RG
105412011-01-26 Richard Guenther <rguenther@suse.de>
10542
10543 PR lto/47423
10544 * cgraphbuild.c (record_eh_tables): Record reference to personality
10545 function.
10546
48bb58b1
AO
105472011-01-26 Alexandre Oliva <aoliva@redhat.com>
10548
10549 PR debug/45454
10550 * sel-sched.c (moveup_expr): Don't let debug insns prevent
10551 non-debug insns from moving up.
10552
58c741a6
DK
105532011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
10554
10555 PR target/40125
10556 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
10557 t-dlldir{,-x} fragment for build and add it to tmake_file.
10558 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10559 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
10560 * config/i386/t-dlldir: New file.
10561 (SHLIB_DLLDIR): Define.
10562 * config/i386/t-dlldir-x: New file.
10563 (SHLIB_DLLDIR): Define.
10564 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
10565 (SHLIB_INSTALL): Use it.
10566
bff99262
CLT
105672011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
10568
10569 PR target/47246
10570 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
10571 lower bound of the allowed Thumb-2 coprocessor load/store
10572 index range to -256. Add explaining comment.
10573
82c03907
ILT
105742011-01-25 Ian Lance Taylor <iant@google.com>
10575
10576 * godump.c (go_define): Improve lexing of macro expansion to only
10577 accept expressions which match Go spec.
10578
47ea1edf
DK
105792011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
10580
d4dba752 10581 PR c++/43601
47ea1edf
DK
10582 * tree.c (handle_dll_attribute): Handle it.
10583 * doc/extend.texi (@item dllexport): Mention it.
10584 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
10585
744f0946
ILT
105862011-01-25 Ian Lance Taylor <iant@google.com>
10587
10588 PR tree-optimization/26854
10589 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
10590 (decl_jump_unsafe): Move higher in file, with no other change.
10591 (bind): Set has_jump_unsafe_decl if appropriate.
10592 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
10593 (check_earlier_gotos): Likewise.
10594 (c_check_switch_jump_warnings): Likewise.
10595
5734f2b3
JW
105962011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
10597
10598 * doc/invoke.texi (Warning Options): Add missing hyphen.
10599 (-fprofile-dir): Minor grammatical fixes.
10600 (-fbranch-probabilities): Likewise.
10601
9bdbdcef
AO
106022011-01-25 Alexandre Oliva <aoliva@redhat.com>
10603
10604 PR debug/45136
10605 PR debug/45130
10606 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10607 debug insns.
10608 (no_real_insns_p, schedule_block, set_priorities): Drop special
10609 treatment of boundary debug insns.
38be4072 10610 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
10611 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10612 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10613 (BOUNDARY_DEBUG_INSN_P): Likewise.
10614 (SCHEDULE_DEBUG_INSN_P): Likewise.
10615 * sched-rgn.c (init_ready_list): Drop special treatment of
10616 boundary debug insns.
10617 * final.c (rest_of_clean-state): Clear notes' BB.
10618
b305e3da
SP
106192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10620
10621 * Makefile.in (LAMBDA_H): Removed.
10622 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
10623 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
10624 lambda-trans.o, and tree-loop-linear.o.
10625 (lto-symtab.o): Remove dependence on LAMBDA_H.
10626 (tree-loop-linear.o): Remove rule.
10627 (lambda-mat.o): Same.
10628 (lambda-trans.o): Same.
10629 (lambda-code.o): Same.
10630 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
10631 (tree-vect-slp.o): Same.
10632 * hwint.h (gcd): Moved here.
10633 (least_common_multiple): Same.
10634 * lambda-code.c: Removed.
10635 * lambda-mat.c: Removed.
10636 * lambda-trans.c: Removed.
10637 * lambda.h: Removed.
10638 * tree-loop-linear.c: Removed.
10639 * lto-symtab.c: Do not include lambda.h.
10640 * omega.c (gcd): Removed.
10641 * passes.c (init_optimization_passes): Remove pass_linear_transform.
10642 * tree-data-ref.c (print_lambda_vector): Moved here.
10643 (lambda_vector_copy): Same.
10644 (lambda_matrix_copy): Same.
10645 (lambda_matrix_id): Same.
10646 (lambda_vector_first_nz): Same.
10647 (lambda_matrix_row_add): Same.
10648 (lambda_matrix_row_exchange): Same.
10649 (lambda_vector_mult_const): Same.
10650 (lambda_vector_negate): Same.
10651 (lambda_matrix_row_negate): Same.
10652 (lambda_vector_equal): Same.
10653 (lambda_matrix_right_hermite): Same.
10654 * tree-data-ref.h: Do not include lambda.h.
10655 (lambda_vector): Moved here.
10656 (lambda_matrix): Same.
10657 (dependence_level): Same.
10658 (lambda_transform_legal_p): Removed declaration.
10659 (lambda_collect_parameters): Same.
10660 (lambda_compute_access_matrices): Same.
10661 (lambda_vector_gcd): Same.
10662 (lambda_vector_new): Same.
10663 (lambda_vector_clear): Same.
10664 (lambda_vector_lexico_pos): Same.
10665 (lambda_vector_zerop): Same.
10666 (lambda_matrix_new): Same.
10667 * tree-flow.h (least_common_multiple): Removed declaration.
10668 * tree-parloops.c (lambda_trans_matrix): Moved here.
10669 (LTM_MATRIX): Same.
10670 (LTM_ROWSIZE): Same.
10671 (LTM_COLSIZE): Same.
10672 (LTM_DENOMINATOR): Same.
10673 (lambda_trans_matrix_new): Same.
10674 (lambda_matrix_vector_mult): Same.
10675 (lambda_transform_legal_p): Same.
10676 * tree-pass.h (pass_linear_transform): Removed declaration.
10677 * tree-ssa-loop.c (tree_linear_transform): Removed.
10678 (gate_tree_linear_transform): Removed.
10679 (pass_linear_transform): Removed.
10680 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
10681 flag_loop_interchange.
10682
6bdfdb96
JJ
106832011-01-25 Jakub Jelinek <jakub@redhat.com>
10684
10685 PR tree-optimization/47265
10686 PR tree-optimization/47443
10687 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
10688 if name still has some uses.
10689
e4cba915
MJ
106902011-01-25 Martin Jambor <mjambor@suse.cz>
10691
10692 PR tree-optimization/47382
10693 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
10694 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
10695
509d65dd 106962011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
10697
10698 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
10699 sjlj_except_unwind_info.
10700
194313e2
RG
107012011-01-25 Richard Guenther <rguenther@suse.de>
10702
10703 PR tree-optimization/47426
10704 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
10705 visible functions results escape.
10706
147a0bcf
JJ
107072011-01-25 Jakub Jelinek <jakub@redhat.com>
10708
10709 PR target/45701
10710 * config/arm/arm.c (any_sibcall_uses_r3): New function.
10711 (arm_get_frame_offsets): Use it.
10712
db963b52
SP
107132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10714 Jakub Jelinek <jakub@redhat.com>
10715
10716 PR tree-optimization/47271
10717 * tree-if-conv.c (bb_postdominates_preds): New.
10718 (if_convertible_bb_p): Call bb_postdominates_preds.
10719 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
10720 (predicate_scalar_phi): Call bb_postdominates_preds.
10721
bcddd3b9
NC
107222011-01-25 Nick Clifton <nickc@redhat.com>
10723
10724 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
10725 * config/rx/rx.c (rx_function_value): Likewise.
10726 (rx_promote_function_mode): Likewise.
10727 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
10728 in order to make it legitimate.
38be4072
UB
10729 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
10730 make sure that the first operand is the same as the result register.
bcddd3b9
NC
10731 (addsi3_unspec): Delete.
10732 (subdi3): Do not accept immediate operands.
10733 (subdi3_internal): Likewise.
10734
7e6cb022
JL
107352011-01-25 Jeff Law <law@redhat.com>
10736
10737 PR rtl-optimization/37273
10738 * ira-costs.c (scan_one_insn): Detect constants living in memory and
10739 handle them like argument loads from stack slots. Do not double
10740 count memory for memory constants and argument loads from stack slots.
10741
9ffa621e
JJ
107422011-01-25 Jakub Jelinek <jakub@redhat.com>
10743
10744 PR tree-optimization/47427
10745 PR tree-optimization/47428
10746 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
10747 coalesce if the new root var would be TREE_READONLY.
10748
5bd6e652
RG
107492011-01-25 Richard Guenther <rguenther@suse.de>
10750
10751 PR middle-end/47414
10752 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
10753 correct type for TBAA.
10754
7c48ea69
SP
107552011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10756
10757 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
10758 (close_phi_written_to_memory): Call for_each_index with
10759 dr_indices_valid_in_loop.
10760
38013f25
SP
107612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10762
10763 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
10764 when it is initialized.
10765
5c640e29
SP
107662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10767
10768 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
10769 call to graphite_find_data_references_in_stmt.
10770 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
10771 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
10772 call to graphite_find_data_references_in_stmt.
10773 (analyze_drs_in_stmts): Same.
10774 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
10775 in which the scalar analysis of indices is performed.
10776 (create_data_ref): Same. Update call to dr_analyze_indices.
10777 (find_data_references_in_stmt): Update call to create_data_ref.
10778 (graphite_find_data_references_in_stmt): Same.
10779 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
10780 declaration.
10781 (create_data_ref): Same.
10782 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
10783 call to create_data_ref.
10784
ac53c069
SP
107852011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10786
10787 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 10788 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 10789
3d17df15
SP
107902011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10791
10792 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
10793 VAR_DECL, PARM_DECL, and RESULT_DECL.
10794
c513da01
SP
107952011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10796
10797 * graphite-dependences.c (reduction_dr_1): Allow several reductions
10798 in a reduction PBB.
10799 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
10800 that have already been marked as PBB_IS_REDUCTION.
10801
3a292d59
SP
108022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10803
10804 * graphite-scop-detection.c (same_close_phi_node): New.
10805 (remove_duplicate_close_phi): New.
10806 (make_close_phi_nodes_unique): New.
10807 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
10808
ba858447
SP
108092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10810
10811 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
10812 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
10813 of both data references to be the same.
10814
8d865c56
SP
108152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10816
38be4072
UB
10817 * graphite-dependences.c (build_lexicographical_constraint): Remove
10818 the gdim parameter.
10819 (build_lexicographical_constraint): Adjust call to
10820 ppl_powerset_is_empty.
8d865c56
SP
10821 (dependence_polyhedron): Same.
10822 (graphite_legal_transform_dr): Same.
10823 (graphite_carried_dependence_level_k): Same.
38be4072
UB
10824 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
10825 parameter.
8d865c56
SP
10826 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
10827
50034a36
SP
108282011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10829
10830 * graphite-sese-to-poly.c
10831 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
10832 (close_phi_written_to_memory): New.
10833 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
10834 and unshare_expr.
10835
0deada9e
SP
108362011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10837
10838 * doc/install.texi: Update the expected version number of PPL to 0.11.
10839 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
10840 #if PPL_VERSION_MINOR < 11.
10841
d7d3d6af
SP
108422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10843
10844 * graphite-dependences.c: Include graphite-cloog-util.h.
10845 (new_poly_ddr): Inlined into dependence_polyhedron.
10846 (free_poly_ddr): Moved close by new_poly_ddr.
10847 (dependence_polyhedron_1): Renamed dependence_polyhedron.
10848 Early return NULL when ppl_powerset_is_empty returns true.
10849 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
10850 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
10851 (graphite_legal_transform_dr): Call new_poly_ddr.
10852 (graphite_carried_dependence_level_k): Same.
10853 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
10854 (dot_transformed_deps_stmt_1): Removed.
10855 (dot_deps_stmt_1): Call dot_deps_stmt_2.
10856 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
10857 (dot_deps_1): Call dot_deps_2.
10858 * Makefile.in (graphite-dependences.o): Add missing dependence on
10859 graphite-cloog-util.h.
10860
28c5db57
SP
108612011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10862
10863 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
10864 (build_lexicographical_constraint): Same.
10865 (dependence_polyhedron_1): Same.
10866 (graphite_legal_transform_dr): Same.
10867 (graphite_carried_dependence_level_k): Same.
10868 * graphite-ppl.c (ppl_powerset_is_empty): New.
10869 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
10870 * tree-data-ref.c (dump_data_reference): Print the basic block index.
10871
5168d98f
SP
108722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10873
10874 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
10875 the "a followed by b" relation and document it.
10876
4a40293a
SP
108772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10878
10879 * graphite-dependences.c (build_lexicographical_constraint): Stop the
10880 iteration when the bag of constraints is empty.
10881
271fb6fa
SP
108822011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10883
10884 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
10885
92d23680
SP
108862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10887
10888 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
10889 nest and two loop depths as parameters.
10890 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
10891 lst_perfect_nestify.
10892
2f51deff
SP
108932011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10894
10895 * graphite-dependences.c (print_pddr): Call
10896 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
10897
07f3593c
SP
108982011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10899
10900 * graphite-ppl.c (debug_gmp_value): New.
10901 * graphite-ppl.h (debug_gmp_value): Declared.
10902
3fae6099
TG
109032011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
10904
10905 * doc/install.texi: Document availability of cloog-0.16.
10906
1c3ba85b
SP
109072011-01-25 Vladimir Kargov <kargov@gmail.com>
10908
10909 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
10910 invalid postdominance info.
10911
e8ba94fc
JH
109122011-01-24 Jan Hubicka <jh@suse.cz>
10913
10914 PR c/21659
10915 * doc/extend.texi (weak pragma): Drop claim that it must
10916 appear before definition.
10917 * varasm.c (merge_weak, declare_weak): Only sanity check
10918 that DECL is not output at a time it is declared weak.
10919
2b6e2d13
KZ
109202011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
10921
10922 * machmode.def: Fixed comments.
1c3ba85b 10923
9841210f
KT
109242011-01-24 Kai Tietz <kai.tietz@onevision.com>
10925
10926 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
10927
109282011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
10929
10930 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 10931 WORDS_BIG_ENDIAN.
e046112d 10932
a6c5070a
L
109332011-01-24 H.J. Lu <hongjiu.lu@intel.com>
10934
10935 PR target/46519
10936 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
10937 (block_info): Add scanned and prev.
10938 (move_or_delete_vzeroupper_2): Return if the basic block
10939 has been scanned and the upper 128bit state is unchanged
10940 from the last scan.
10941 (move_or_delete_vzeroupper_1): Return true if the exit
10942 state is changed.
10943 (move_or_delete_vzeroupper): Visit basic blocks using the
10944 work-list based algorithm based on vt_find_locations in
10945 var-tracking.c.
10946
10947 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
10948
a40d79d7
NC
109492011-01-24 Nick Clifton <nickc@redhat.com>
10950
10951 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
10952 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
10953 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
10954 then define __v850e1__.
10955 * doc/invoke.texi: Document -mv850es.
10956
440eb8de
RH
109572011-01-24 Richard Henderson <rth@redhat.com>
10958
10959 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
10960 compound unordered comparisons.
10961 * config/rx/rx.c (rx_split_fp_compare): Remove.
10962 * config/rx/rx-protos.h: Update.
10963 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
10964 (cbranchsf4): Don't call rx_split_fp_compare.
10965 (*cbranchsf4): Use rx_split_cbranch.
10966 (*cmpsf): Don't accept "i" constraint.
10967 (*conditional_branch): Only valid after reload.
10968 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
10969
3ff79f99
MM
109702011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
10971
10972 PR target/47385
10973 * config/rs6000/altivec.md (vector constant splitters): Add
10974 support for creating vector single precision constants if -mvsx is
10975 used and we would create the constant using Altivec primitives.
10976
ff3d9d08
BS
109772011-01-23 Bernd Schmidt <bernds@codesourcery.com>
10978 Richard Sandiford <rdsandiford@googlemail.com>
10979
10980 PR rtl-optimization/47166
10981 * reload1.c (emit_reload_insns): Disable the spill_reg_store
10982 mechanism for PRE_MODIFY and POST_MODIFY.
10983 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
10984 reloadreg.
10985
7fcaf152
AS
109862011-01-23 Andreas Schwab <schwab@linux-m68k.org>
10987
8788adb6 10988 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 10989
d09b58c4
JH
109902011-01-22 Jan Hubicka <jh@suse.cz>
10991
10992 PR lto/47333
10993 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
10994
e8ff8c5a
JH
109952011-01-22 Jan Hubicka <jh@suse.cz>
10996
10997 PR tree-optimization/43884
10998 PR lto/44334
8788adb6 10999 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
11000 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11001
ccaed3ba
AS
110022011-01-22 Anatoly Sokolov <aesok@post.ru>
11003
11004 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11005 * config/s390/s390.c (s390_register_move_cost,
11006 s390_memory_move_cost): New.
11007 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11008
0cecee06
UW
110092011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11010
11011 PR middle-end/47401
11012 * except.c (sjlj_assign_call_site_values): Move setting the
11013 crtl->uses_eh_lsda flag to ...
11014 (sjlj_mark_call_sites): ... here.
11015 (sjlj_emit_function_enter): Support NULL dispatch label.
11016 (sjlj_build_landing_pads): In a function with no landing pads
11017 that still has must-not-throw regions, generate code to register
11018 a personality function with empty LSDA.
11019
e692f276
RH
110202011-01-21 Richard Henderson <rth@redhat.com>
11021
1b7ae0b7
RH
11022 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11023
3843787f
RH
11024 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11025
e692f276
RH
11026 * compare-elim.c: New file.
11027 * Makefile.in (OBJS-common): Add it.
11028 (compare-elim.o): New.
11029 * common.opt (fcompare-elim): New.
11030 * opts.c (default_options_table): Add OPT_fcompare_elim.
11031 * tree-pass.h (pass_compare_elim_after_reload): New.
11032 * passes.c (init_optimization_passes): Add it.
11033 * recog.h: Protect against re-inclusion.
11034 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11035 * doc/invoke.texi (-fcompare-elim): Document it.
11036 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11037 * doc/tm.texi: Rebuild.
11038
9a7c2050
NC
110392011-01-22 Nick Clifton <nickc@redhat.com>
11040
11041 * config/rx/rx.md (cstoresf4): Pass comparison operator to
11042 rx_split_fp_compare.
11043
15ba5696
NC
110442011-01-22 Nick Clifton <nickc@redhat.com>
11045
11046 * config/rx/rx.md (UNSPEC_CONST): New.
11047 (deallocate_and_return): Wrap the amount popped off the stack in
11048 an UNSPEC_CONST in order to stop it being rejected by
11049 -mmax-constant-size.
11050 (pop_and_return): Add a "(return)" rtx.
11051 (call): Drop the immediate operand.
11052 (call_internal): Likewise.
11053 (call_value): Likewise.
11054 (call_value_internal): Likewise.
11055 (sibcall_internal): Likewise.
11056 (sibcall_value_internal): Likewise.
11057 (sibcall): Likewise. Generate an explicit call using
11058 sibcall_internal.
11059 (sibcall_value): Likewise.
11060 (mov<>): FAIL if a constant operand is not legitimate.
11061 (addsi3_unpsec): New pattern.
9a7c2050 11062
38be4072 11063 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
11064 (ok_for_max_constant): New function.
11065 (gen_safe_add): New function.
11066 (rx_expand_prologue): Use gen_safe_add.
11067 (rx_expand_epilogue): Likewise.
11068 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
11069 UNSPEC CONSTs.
11070
caaf13d3
JL
110712011-01-21 Jeff Law <law@redhat.com>
11072
11073 PR tree-optimization/47053
11074 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
11075 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
11076 statements are deleted.
11077 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
11078 is nonempty, then purge dead edges and cleanup the CFG.
11079
12c30f2f
AO
110802011-01-21 Alexandre Oliva <aoliva@redhat.com>
11081
11082 PR debug/47402
11083 Temporarily revert:
11084 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
11085 PR debug/47106
11086 * tree-dfa.c (create_var_ann): Mark variable as used.
11087
7360d2ac
JJ
110882011-01-21 Jakub Jelinek <jakub@redhat.com>
11089
aaa52a96
JJ
11090 PR middle-end/45566
11091 * except.c (convert_to_eh_region_ranges): Emit queued no-region
11092 notes from other section in hot/cold partitioning even if
11093 last_action is -3. Increment call_site_base.
11094
7360d2ac
JJ
11095 PR rtl-optimization/47366
11096 * fwprop.c (forward_propagate_into): Return bool. If
11097 any changes are made, -fnon-call-exceptions is used and
11098 REG_EH_REGION note is present, call purge_dead_edges
11099 and return true if it purged anything.
11100 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
11101 any EH edges were purged.
11102
e90b336f
JL
111032011-01-21 Jeff Law <law@redhat.com>
11104
11105 PR rtl-optimization/41619
11106 * caller-save.c (setup_save_areas): Break out code to determine
11107 which hard regs are live across calls by examining the reload chains
11108 so that it is always used.
11109 Eliminate code which checked REG_N_CALLS_CROSSED.
11110
3ffe07e1
JJ
111112011-01-21 Jakub Jelinek <jakub@redhat.com>
11112
11113 PR tree-optimization/47355
11114 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
11115 NOP has non-debug uses beyond PHIs in new_bb.
11116
1c7d0b34
AO
111172011-01-21 Alexandre Oliva <aoliva@redhat.com>
11118
11119 PR debug/47106
11120 * cfgexpand.c (account_used_vars_for_block): Only account vars
11121 that are annotated as used.
11122 (estimated_stack_frame_size): Don't set TREE_USED.
11123 * tree-dfa.c (create_var_ann): Mark variable as used.
11124
f99cc488
RG
111252011-01-21 Richard Guenther <rguenther@suse.de>
11126
11127 PR middle-end/47395
11128 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
11129
3bc27de7
RG
111302011-01-21 Richard Guenther <rguenther@suse.de>
11131
11132 PR tree-optimization/47365
11133 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
11134 (vn_reference_lookup_pieces): Adjust.
11135 (vn_reference_lookup): Likewise.
11136 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
11137 (vn_reference_lookup_3): Only look through kills if in
11138 VN_WALKREWRITE mode.
11139 (vn_reference_lookup_pieces): Adjust.
11140 (vn_reference_lookup): Likewise.
11141 (visit_reference_op_load): Likewise.
11142 (visit_reference_op_store): Likewise.
11143 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
11144 (compute_avail): Likewise.
11145 (eliminate): Likewise.
11146
d8debb1d
JJ
111472011-01-21 Jakub Jelinek <jakub@redhat.com>
11148
11149 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
11150 DECL_IGNORED_P non-reg vars if they are used.
11151
3a2df831
JJ
11152 PR tree-optimization/47391
11153 * varpool.c (const_value_known_p): Return false if
11154 decl is volatile.
11155
1dd584a2
KT
111562011-01-21 Kai Tietz <kai.tietz@onevision.com>
11157
11158 PR bootstrap/47215
11159 * config/i386/i386.c (ix86_local_alignment): Handle
11160 case for va_list_type_node is nil.
11161 (ix86_canonical_va_list_type): Likewise.
11162
7f9f095e
AM
111632011-01-21 Alan Modra <amodra@gmail.com>
11164
11165 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
11166 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
11167
837b01f6
RR
111682011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11169
11170 * config/arm/arm.md (define_attr type): Rename f_load
11171 and f_store to f_fpa_load and f_fpa_store. Update.
11172 (write_conflict): Deal with rename fallout.
11173 (*push_fp_multi): Likewise.
11174 * config/arm/fpa.md (f_load): Use f_fpa_load.
11175 (f_store): Use f_fpa_store.
11176 (*movsf_fpa): Likewise.
11177 (*movdf_fpa): Likewise.
11178 (*movxf_fpa): Likewise.
11179 (*thumb2_movsf_fpa): Likewise.
11180 (*thumb2_movdf_fpa): Likewise.
11181 (*thumb2_movxf_fpa): Likewise.
11182 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
11183 f_loadd and f_stored.
11184 (*thumb2_movdi_vfp): Likewise.
11185 (*thumb2_movsf_vfp): Fix attribute to f_loads.
11186 (*thumb2_movsi_vfp): Likewise.
11187 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
11188 Use f_loads instead of f_load.
11189 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
11190
a1a79768
AS
111912011-01-20 Anatoly Sokolov <aesok@post.ru>
11192
11193 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11194 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
11195 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11196 (xtensa_mode_dependent_address_p): New function.
11197 (constantpool_address_p): Make static. Change return type to bool.
11198 Change argument type to const_rtx. Use CONST_INT_P predicate.
11199
427f6cec
AO
112002011-01-20 Alexandre Oliva <aoliva@redhat.com>
11201
11202 PR debug/46583
11203 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
11204
583ac69c
JJ
112052011-01-20 Jakub Jelinek <jakub@redhat.com>
11206
11207 PR debug/47283
11208 * cfgexpand.c (expand_debug_expr): Instead of generating
11209 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
11210 etc. handling.
11211
93e452ed
RG
112122011-01-20 Richard Guenther <rguenther@suse.de>
11213
11214 PR middle-end/47370
11215 * tree-inline.c (remap_gimple_op_r): Recurse manually for
11216 the pointer operand of MEM_REFs.
11217
28fc44f3
JJ
112182011-01-20 Jakub Jelinek <jakub@redhat.com>
11219
11220 PR tree-optimization/46130
11221 * ipa-split.c (consider_split): If return_bb contains non-virtual
11222 PHIs other than for retval or if split_function would not adjust it,
11223 refuse to split.
11224
ddd268f2
RG
112252011-01-20 Richard Guenther <rguenther@suse.de>
11226
11227 PR tree-optimization/47167
11228 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11229 Revert previous change, only avoid enumeral type changes.
11230
882020aa
MS
112312011-01-19 Mike Stump <mikestump@comcast.net>
11232
11233 * doc/tm.texi.in (BRANCH_COST): Englishify.
11234 * doc/tm.texi (BRANCH_COST): Likewise.
11235
7edb6247
DS
112362011-01-19 Dodji Seketeli <dodji@redhat.com>
11237
11238 PR c++/47291
11239 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
11240 (gen_scheduled_generic_parms_dies): New functions.
11241 (gen_struct_or_union_type_die): Schedule template parameters DIEs
11242 generation for the end of CU compilation.
11243 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 11244
23d5ed5d
AO
112452011-01-19 Alexandre Oliva <aoliva@redhat.com>
11246
11247 PR debug/46240
11248 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
11249 debug bind stmt on merge edges.
11250
37d6a488
AO
112512011-01-19 Alexandre Oliva <aoliva@redhat.com>
11252
11253 PR debug/47079
11254 PR debug/46724
11255 * function.c (instantiate_expr): Instantiate incoming rtl of
11256 implicit arguments, and recurse on VALUE_EXPRs.
11257 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
11258 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
11259
689f2c82
AO
112602011-01-19 Alexandre Oliva <aoliva@redhat.com>
11261
11262 * c-parser.c (c_parser_for_statement): Initialize
11263 collection_expression.
11264
03029de4
JM
112652011-01-19 Joseph Myers <joseph@codesourcery.com>
11266
11267 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
11268
3e03217e
JM
112692011-01-19 Joseph Myers <joseph@codesourcery.com>
11270
11271 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
11272 (LINK_SHLIB_SPEC): Don't use %(link_path).
11273 (SUBTARGET_EXTRA_SPECS): Remove link_path.
11274
5bbe9b3f
JM
112752011-01-19 Joseph Myers <joseph@codesourcery.com>
11276
11277 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
11278 (NO_SHARED_LIB_SUPPORT): Remove.
11279 (LINK_SHLIB_SPEC): Remove one conditional definition.
11280
368e0b39
JM
112812011-01-19 Joseph Myers <joseph@codesourcery.com>
11282
11283 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
11284 %{call_shared}.
11285 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
11286 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
11287 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
11288 %{call_shared} and conditionals on these options not being passed.
11289 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
11290 %{call_shared}.
11291
ed7656f6
JJ
112922011-01-19 Jakub Jelinek <jakub@redhat.com>
11293
68457901
JJ
11294 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
11295 simplify.
11296
ed7656f6
JJ
11297 * ipa-split.c: Spelling fixes.
11298
e0d1958f
RH
112992011-01-19 Richard Henderson <rth@redhat.com>
11300
11301 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
11302 (*mulsi3): Likewise.
11303
27098b6b
RH
11304 * longlong.h [__mn10300__] (count_leading_zeros): New.
11305 [__mn10300__] (umul_ppmm, smul_ppmm): New.
11306 [__mn10300__] (add_ssaaaa, subddmmss): New.
11307 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
11308 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
11309
d6be7c36
UW
113102011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11311
11312 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
11313
b1efde2a
RH
113142011-01-19 Richard Henderson <rth@redhat.com>
11315
44217823
RH
11316 * config/mn10300/mn10300.md (addsi3_flags): New.
11317 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
11318 (subsi3_flags, subc_internal, subdi3): New.
11319 (subdi3_internal, *subdi3_degenerate): New.
11320 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
11321
37a185d7
RH
11322 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
11323 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
11324 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
11325 * config/mn10300/mn10300-protos.h: Update.
11326 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
11327 (return_ret): Likewise. Rename from return_internal_regs.
11328 (return_internal): Remove.
11329
040c5757
RH
11330 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
11331 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
11332 (mn10300_legitimate_constant_p): Likewise.
11333 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
11334 (mn10300_frame_size): New.
11335 (mn10300_expand_prologue): Use it.
11336 (mn10300_expand_epilogue): Likewise.
11337 (mn10300_initial_offset): Likewise.
11338 * config/mn10300/mn10300-protos.h: Update.
11339 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
11340 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
11341 (prologue, epilogue, return_internal): Tidy output code.
11342 (mn10300_store_multiple_operation, return): Likewise.
11343 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
11344 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
11345 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
11346 (load_pic, am33_load_pic): New.
11347 (mn10300_load_pic0, mn10300_load_pic1): New.
11348
bad41521
RH
11349 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
11350 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
11351 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
11352 (cc_flags_for_mode, cc_flags_for_code): New.
11353 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
11354 overflow flag is not valid. Validate that the flags we need
11355 for the comparison are valid.
11356 (mn10300_output_cmp): Remove.
11357 (mn10300_output_add): New.
11358 (mn10300_select_cc_mode): Use cc_flags_for_code.
11359 (mn10300_split_cbranch): New.
11360 (mn10300_match_ccmode): New.
11361 (mn10300_split_and_operand_count): New.
11362 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
11363 to the function.
11364 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
11365 (addsi3): ... here. Use mn10300_output_add.
11366 (*addsi3_flags): New.
11367 (*am33_subsi3, *mn10300_subsi3): Merge...
11368 (subsi3): ... here. Use attribute isa.
11369 (*subsi3_flags): New.
11370 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
11371 when possible.
11372 (*am33_andsi3, *mn10300_andsi3): Merge...
11373 (andsi3): ... here.
11374 (*andsi3_flags): New.
11375 (andsi3 splitters): New.
11376 (*am33_iorsi3, *mn10300_iorsi3): Merge...
11377 (iorsi3): ... here.
11378 (*iorsi3_flags): New.
11379 (*am33_xorsi3, *mn10300_xorsi3): Merge...
11380 (xorsi3): ... here.
11381 (*xorsi3_flags): New.
11382 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
11383 (one_cmplsi2): ... here.
11384 (*one_cmplsi2_flags): New.
11385 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
11386 instead of "dax" in constraints. Use mn10300_split_cbranch.
11387 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
11388 use matching constraints to eliminate a self-comparison.
11389 (*integer_conditional_branch): Rename from integer_conditional_branch.
11390 Use int_mode_flags to match CC_REG.
11391 (*cbranchsi4_btst, *btstsi): New.
11392 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
11393 mn10300_split_cbranch.
11394 (*am33_cmpsf): Rename from am33_cmpsf.
11395 (*float_conditional_branch): Rename from float_conditional_branch.
11396 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
11397 (zero_extendqisi2): ... here.
11398 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
11399 (zero_extendhisi2): ... here.
11400 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
11401 (extendqisi2): ... here.
11402 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
11403 (extendhisi2): ... here.
11404 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
11405 (ashlsi3): ... here.
11406 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
11407 (lshrsi3): ... here.
11408 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
11409 (ashrsi3): ... here.
11410 (consecutive add peephole): Remove.
11411 * config/mn10300/predicates.md (label_ref_operand): New.
11412 (int_mode_flags): New.
11413 (CCZN_comparison_operator): New.
11414
9efb4993
RH
11415 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
11416 (throughput_42_latency_43): New reservation.
11417 (mulsidi3, umulsidi3): New expanders.
11418 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
11419 the MDR register to allocation; separately allocate the low and
11420 high parts of the DImode result.
11421 (umulsidi3_internal): Similarly.
11422 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
11423 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
11424 (udivsi3, umodsi3): Remove.
11425 (udivmodsi4, divmodsi4): New expanders.
11426 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
11427 (*divmodsi4): Simiarly.
11428 (ext_internal): New.
11429
c25a21f5
RH
11430 * config/mn10300/constraints.md ("z"): New constraint.
11431 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
11432 (FIXED_REGISTERS): Don't fix MDR.
11433 (CALL_USED_REGSITERS): Reformat nicely.
11434 (REG_ALLOC_ORDER): Add MDR.
11435 (enum regclass): Add MDR_REGS.
11436 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
11437 (IRA_COVER_CLASSES): Add MDR_REGS.
11438 (REGNO_REG_CLASS): Handle MDR_REG.
11439 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
11440 (mn10300_register_move_cost): Likewise.
11441 * config/mn10300/mn10300.md (MDR_REG): New.
11442 (*movsi_internal): Handle moves to/from MDR_REGS.
11443
36846b26
RH
11444 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
11445 POST_MODIFY.
11446 (mn10300_secondary_reload): Tidy combination reload classes.
11447 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
11448 addresses for AM33. Allow symbolic offsets for reg+imm.
11449 (mn10300_regno_in_class_p): New.
11450 (mn10300_legitimize_reload_address): New.
11451 * config/mn10300/mn10300.h (enum reg_class): Remove
11452 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
11453 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
11454 SP_OR_GENERAL_REGS.
11455 (REG_CLASS_NAMES): Update to match.
11456 (REG_CLASS_CONTENTS): Likewise.
11457 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
11458 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
11459 (REGNO_IN_RANGE_P): Remove.
11460 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
11461 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
11462 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
11463 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
11464 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
11465 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
11466 (REGNO_GENERAL_P): New.
11467 (HAVE_POST_MODIFY_DISP): New.
11468 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
11469 (LEGITIMIZE_RELOAD_ADDRESS): New.
11470 * config/mn10300/mn10300-protos.h: Update.
11471
8b119bb6
RH
11472 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
11473 DATA_REGS for AM33 stack-pointer destination.
11474 (mn10300_preferred_output_reload_class): Likewise.
11475 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
11476 into a form appropriate for ...
11477 (TARGET_SECONDARY_RELOAD): New.
11478 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
11479 * config/mn10300/mn10300-protos.h: Update.
11480 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
11481 reload_insi; use the "A" constraint for the scratch; handle AM33
11482 moves of sp to non-address registers.
11483
b1efde2a
RH
11484 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
11485 (*movqi_internal): ... here.
11486 (*am33_movhi, *mn10300_movhi): Merge into...
11487 (*movhi_internal): ... here.
11488 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
11489 as the source/destination of moves from/to SP.
11490 (movsf): Only allow for AM33-2.
1c3ba85b 11491 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
11492 any integer constant constraint. Only allow for AM33-2. Tidy
11493 all of the alternative outputs.
11494 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
11495 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
11496 for MN103.
11497 (udivsi3, umodsi3): New patterns for MN103 only.
11498
b899fd78
JR
114992011-01-19 Joern Rennecke <amylaar@spamcop.net>
11500
11501 * doc/tm.texi.in: Spell out that a lack of register class unions
11502 can lead to ICEs.
11503 * doc/tm.texi: Regenerate.
11504
afaaa67d
JJ
115052011-01-19 Jakub Jelinek <jakub@redhat.com>
11506
2e0642cd
JJ
11507 PR rtl-optimization/47337
11508 * dce.c (check_argument_store): New function.
11509 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
11510
afaaa67d
JJ
11511 PR tree-optimization/47290
11512 * tree-eh.c (infinite_empty_loop_p): New function.
11513 (cleanup_empty_eh): Use it.
11514
d2cd871f
SE
115152011-01-18 Steve Ellcey <sje@cup.hp.com>
11516
11517 PR target/46997
11518 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
11519 (a64_expand_widen_sum): Ditto.
11520 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
11521 (vec_extract_evenodd_help): Ditto.
11522 (vec_extract_evenv4hi): Ditto.
11523 (vec_extract_oddv4hi): Ditto.
11524 (vec_extract_evenv2si): Ditto.
11525 (vec_extract_oddv2si): Ditto.
11526 (vec_extract_evenv2sf): Ditto.
11527 (vec_extract_oddv2sf): Ditto.
11528 (vec_pack_trunc_v4hi: Ditto.
11529 (vec_pack_trunc_v2si): Ditto.
11530 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
11531 (vec_interleave_highv8qi): Ditto.
11532 (mix1_r): Ditto.
11533 (vec_extract_oddv8qi): Ditto.
11534 (vec_interleave_lowv4hi): Ditto.
11535 (vec_interleave_highv4hi): Ditto.
11536 (vec_interleave_lowv2si): Ditto.
11537 (vec_interleave_highv2si): Ditto.
11538
41a1208a
JDA
115392011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11540
11541 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
11542 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
11543 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
11544 (pa_c_mode_for_suffix): New.
11545 (TARGET_EXPAND_BUILTIN): Define.
11546 (TARGET_C_MODE_FOR_SUFFIX): Define.
11547 (pa_builtins): Define.
11548 (pa_init_builtins): Register __float128 type and init new support
11549 builtins.
11550 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
11551 * config/pa/quadlib.c (_U_Qfcopysign): New.
11552
1ecad98e
EB
115532011-01-18 Eric Botcazou <ebotcazou@adacore.com>
11554
11555 PR middle-end/46894
11556 * explow.c (allocate_dynamic_stack_space): Do not assume more than
11557 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
11558 are defined.
11559
d4f2460a
UW
115602011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11561
11562 PR tree-optimization/47179
11563 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
11564 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
11565
4994da65
RG
115662011-01-18 Richard Guenther <rguenther@suse.de>
11567
11568 PR rtl-optimization/47216
11569 * emit-rtl.c: Include tree-flow.h.
11570 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
11571 of replicating it with different semantics.
11572 * Makefile.in (emit-rtl.o): Adjust.
11573
1eb458d1
RR
115742011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11575
38be4072 11576 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 11577 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 11578
e7ef91dc
JJ
115792011-01-18 Jakub Jelinek <jakub@redhat.com>
11580
11581 PR rtl-optimization/47299
11582 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 11583 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
11584 * expmed.c (expand_widening_mult): Don't try to optimize constant
11585 multiplication if op0 has VOIDmode. Convert op1 constant to mode
11586 before using it.
11587
535b7874
RW
115882011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11589
11590 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
11591 spacing after 'e.g.', typos, comma, hyphenation.
11592
27bf36f3
RH
115932011-01-17 Richard Henderson <rth@redhat.com>
11594
8a5b5449
RH
11595 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
11596 (rx_restricted_mem_operand): New.
11597 (rx_shift_operand): Use register_operand.
11598 (rx_source_operand, rx_compare_operand): Likewise.
11599 * config/rx/rx.md (addsi3_flags): New expander.
11600 (adddi3): Rewrite as expander.
11601 (adc_internal, *adc_flags, adddi3_internal): New patterns.
11602 (subsi3_flags): New expander.
11603 (subdi3): Rewrite as expander.
11604 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
11605
784f69be
RH
11606 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
11607 (rx_init_builtins): Remove sat builtin.
11608 (rx_expand_builtin): Likewise.
11609 * config/rx/rx.md (ssaddsi3): New.
11610 (*sat): Rename from sat. Represent the CC_REG input.
11611
f033541c
RH
11612 * config/rx/predicates.md (rshift_operator): New.
11613 * config/rx/rx.c (rx_expand_insv): Remove.
11614 * config/rx/rx-protos.h: Update.
11615 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
11616 operand to the canonical position.
11617 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
11618 (*bitclr, *bitclr_in_memory): Similarly.
11619 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
11620 (insv): Retain the zero_extract in the expansion.
11621
34fee389
RH
11622 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
11623 (bswaphi2, bitinvert, revw): Likewise.
11624
265c835f
RH
11625 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
11626 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
11627 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
11628 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
11629 (bitset, bitset_in_memory): Likewise.
11630 (bitinvert, bitinvert_in_memory): Likewise.
11631 (bitclr, bitclr_in_memory): Likewise.
11632 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
11633 (rx_strend, rx_cmpstrn): Likewise.
11634 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
11635 (bitop peep2 patterns): Remove.
11636
b4d83be3
RH
11637 * config/rx/rx.c (rx_match_ccmode): New.
11638 * config/rx/rx-protos.h: Update.
11639 * config/rx/rx.md (abssi2): Clobber, don't set flags.
11640 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
11641 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
11642 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
11643 (fix_truncsfsi2, floatsisf2): Likewise.
11644 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
11645 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
11646 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
11647 (*subsi3_flags, *xorsi3_flags): New.
11648
d0acb939
RH
11649 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
11650
c06fc3d9
RH
11651 * config/rx/rx.c (rx_print_operand): Remove workaround for
11652 unsplit comparison operations.
11653
2882702b
RH
11654 * config/rx/rx.md (movsicc): Split after reload.
11655 (*movsicc): Merge *movsieq and *movsine via match_operator.
11656 (*stcc): New pattern.
11657
6f7310f2
RH
11658 * config/rx/rx.c (rx_float_compare_mode): Remove.
11659 * config/rx/rx.h (rx_float_compare_mode): Remove.
11660 * config/rx/rx.md (cstoresi4): Split after reload.
11661 (*sccc): New pattern.
11662
e963cb1a
RH
11663 * config/rx/predicates.md (label_ref_operand): New.
11664 (rx_z_comparison_operator): New.
11665 (rx_zs_comparison_operator): New.
11666 (rx_fp_comparison_operator): New.
11667 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
11668 Validate that the flags are set properly for the comparison.
11669 (rx_gen_cond_branch_template): Remove.
11670 (rx_cc_modes_compatible): Remove.
11671 (mode_from_flags): New.
11672 (flags_from_code): Rename from flags_needed_for_conditional.
11673 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
11674 (rx_select_cc_mode): Likewise.
11675 (rx_split_fp_compare): New.
11676 (rx_split_cbranch): New.
11677 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
11678 (*cbranchsi4): Use match_operator and rx_split_cbranch.
11679 (*cbranchsf4): Similarly.
11680 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
11681 match_operator and rx_split_cbranch.
11682 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
11683 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
11684 (*cmpsi): Rename from cmpsi.
11685 (*tstsi): Rename from tstsi.
11686 (*cmpsf): Rename from cmpsf; use CC_Fmode.
11687 (*conditional_branch): Rename from conditional_branch.
11688 (*reveresed_conditional_branch): Remove.
11689 (b<code>): Remove expander.
11690 * config/rx/rx-protos.h: Update.
11691
af530bb4
RH
11692 * config/rx/rx.c (rx_compare_redundant): Remove.
11693 * config/rx/rx.md (cmpsi): Don't use it.
11694 * config/rx/rx-protos.h: Update.
11695
27bf36f3
RH
11696 * config/rx/rx-modes.def (CC_F): New mode.
11697 * config/rx/rx.c (rx_select_cc_mode): New.
11698 * config/rx/rx.h (SELECT_CC_MODE): Use it.
11699 * config/rx/rx-protos.h: Update.
11700
d7fde127
RH
117012011-01-17 Richard Henderson <rth@redhat.com>
11702
11703 * except.c (dump_eh_tree): Fix stray ; after for statement.
11704
6ff38230
RG
117052011-01-17 Richard Guenther <rguenther@suse.de>
11706
11707 PR tree-optimization/47313
11708 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
11709 handling before copying the body. Properly deal with
11710 by-reference result in SSA form.
11711
114ce554
ILT
117122011-01-17 Ian Lance Taylor <iant@google.com>
11713
bf5cd92b 11714 PR target/47219
114ce554
ILT
11715 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
11716 (struct_value_alias_set): Don't define.
11717 (sparc_option_override): Don't set sparc_sr_alias_set and
11718 struct_value_alias_set.
11719 (save_or_restore_regs): Use gen_frame_mem rather than calling
11720 set_mem_alias_set.
11721 (sparc_struct_value_rtx): Likewise.
11722
98c6d93c
L
117232011-01-17 H.J. Lu <hongjiu.lu@intel.com>
11724
11725 PR target/47318
7a81008b 11726 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
11727 (_mm_maskstore_pd): Likewise.
11728 (_mm_maskload_ps): Likewise.
11729 (_mm_maskstore_ps): Likewise.
11730 (_mm256_maskload_pd): Change mask to __m256i.
11731 (_mm256_maskstore_pd): Likewise.
11732 (_mm256_maskload_ps): Likewise.
11733 (_mm256_maskstore_ps): Likewise.
11734
11735 * config/i386/i386-builtin-types.def: Updated.
11736 (ix86_expand_special_args_builtin): Likewise.
11737
11738 * config/i386/i386.c (bdesc_special_args): Update
11739 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
11740 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
11741 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
11742 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
11743
11744 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
11745 Use <avxpermvecmode> on mask register.
11746 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
11747
b9361af2 117482011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
11749 Michael Haubenwallner <michael.haubenwallner@salomon.at>
11750 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
11751
11752 PR target/46655
11753 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
11754 if <= USHRT_MAX in 32-bit mode.
11755
b7ae9eb5
RW
117562011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11757
11758 * doc/install.texi (Configuration, Specific): Wrap long
11759 lines in examples. Allow line wrapping in long options
11760 and URLs where beneficial for PDF output.
11761
4377fad9
RS
117622011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
11763
11764 * config/mips/mips.c (mips_classify_symbol): Don't return
11765 SYMBOL_PC_RELATIVE for nonlocal labels.
11766
55959ffa 117672011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 11768
55959ffa
EB
11769 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
11770
117712011-01-15 Jan Hubicka <jh@suse.cz>
11772
11773 PR tree-optimization/47276
be46831f
JH
11774 * ipa.c (function_and_variable_visibility): Do not try to mark alias
11775 declarations as needed.
11776
05842ff5
MJ
117772011-01-15 Martin Jambor <mjambor@suse.cz>
11778
11779 * common.opt (fdevirtualize): New flag.
11780 * doc/invoke.texi (Option Summary): Document it.
11781 * opts.c (default_options_table): Add devirtualize flag.
11782 * ipa-prop.c (detect_type_change): Return immediately if
11783 devirtualize flag is not set.
11784 (detect_type_change_ssa): Likewise.
11785 (compute_known_type_jump_func): Likewise.
11786 (ipa_analyze_virtual_call_uses): Likewise.
11787
f65cf2b7
MJ
117882011-01-14 Martin Jambor <mjambor@suse.cz>
11789
11790 PR tree-optimization/45934
11791 PR tree-optimization/46302
11792 * ipa-prop.c (type_change_info): New type.
11793 (stmt_may_be_vtbl_ptr_store): New function.
11794 (check_stmt_for_type_change): Likewise.
11795 (detect_type_change): Likewise.
11796 (detect_type_change_ssa): Likewise.
11797 (compute_complex_assign_jump_func): Check for dynamic type change.
11798 (compute_complex_ancestor_jump_func): Likewise.
11799 (compute_known_type_jump_func): Likewise.
11800 (compute_scalar_jump_functions): Likewise.
11801 (ipa_analyze_virtual_call_uses): Likewise.
11802 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
11803
eb5bb0fd
JM
118042011-01-14 Joseph Myers <joseph@codesourcery.com>
11805
11806 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
11807 * config/i386/i386.opt (msse5): New Alias.
11808
f2060fbe
JM
118092011-01-14 Joseph Myers <joseph@codesourcery.com>
11810
11811 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
11812 * config/sparc/linux64.h (CC1_SPEC): Likewise.
11813 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11814 * config/sparc/sparc.h (CC1_SPEC): Likewise.
11815
3a7b4385
JM
118162011-01-14 Joseph Myers <joseph@codesourcery.com>
11817
11818 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
11819 -mcpu options.
11820 * config/sparc/linux64.h (CC1_SPEC): Likewise.
11821 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
11822 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
11823 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
11824 Likewise.
11825 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
11826
a7b778f8
JM
118272011-01-14 Joseph Myers <joseph@codesourcery.com>
11828
38be4072 11829 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 11830
a7edae0a
MS
118312011-01-14 Mike Stump <mikestump@comcast.net>
11832
11833 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
11834 * config/fr30/fr30.md: Likweise
11835 (movsi_push): Likewise.
11836 (movsi_pop): Likewise.
11837 (enter_func): Likewise.
11838 * config/moxie/moxie.md (movsi_push): Likewise.
11839 (movsi_pop): Likewise.
11840
cbabf03f
JM
118412011-01-14 Joseph Myers <joseph@codesourcery.com>
11842
11843 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
11844 %{no_archive} %{exact_version}.
11845 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
11846 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
11847 %{no_archive} %{exact_version}.
11848 * config/mips/openbsd.h (LINK_SPEC): Likewise.
11849 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
11850 * config/mips/vxworks.h: Likewise.
11851
438da41a
JM
118522011-01-14 Joseph Myers <joseph@codesourcery.com>
11853
38be4072 11854 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 11855
da290a42
JM
118562011-01-14 Joseph Myers <joseph@codesourcery.com>
11857
11858 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
11859 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
11860
8989d00e
JM
118612011-01-14 Joseph Myers <joseph@codesourcery.com>
11862
11863 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
11864 -nodefaultlib.
11865
a3010a69
JM
118662011-01-14 Joseph Myers <joseph@codesourcery.com>
11867
11868 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
11869 for mcpu not cpu.
11870 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
11871 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
11872 not cpu.
11873 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
11874 Don't handle -shlib.
11875
e7f2f537
JM
118762011-01-14 Joseph Myers <joseph@codesourcery.com>
11877
11878 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
11879 (CC1_SPEC): Don't handle -profile.
11880
34830bfd
JM
118812011-01-14 Joseph Myers <joseph@codesourcery.com>
11882
11883 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
11884 * config/mips/mips.h (CC1_SPEC): Likewise.
11885
b2d36e74
JM
118862011-01-14 Joseph Myers <joseph@codesourcery.com>
11887
11888 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
11889 * config/mips/mips.h (CC1_SPEC): Likewise.
11890
dabadc52
JM
118912011-01-14 Joseph Myers <joseph@codesourcery.com>
11892
11893 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
11894 * config/m32r/linux.h (LINK_SPEC): Likewise.
11895 * config/mips/linux.h (LINK_SPEC): Likewise.
11896 * config/mips/linux64.h (LINK_SPEC): Likewise.
11897 * config/sparc/linux.h (LINK_SPEC): Likewise.
11898 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
11899 LINK_SPEC): Likewise.
11900 * config/xtensa/linux.h (LINK_SPEC): Likewise.
11901
43ee6785
JM
119022011-01-14 Joseph Myers <joseph@codesourcery.com>
11903
11904 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
11905 %{version:-v}.
11906 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
11907
45e79dfd
JM
119082011-01-14 Joseph Myers <joseph@codesourcery.com>
11909
11910 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
11911 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
11912
37e9e71d
JM
119132011-01-14 Joseph Myers <joseph@codesourcery.com>
11914
11915 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
11916
bb127cd8
RO
119172011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11918
11919 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
11920 supports -Bstatic/-Bdynamic.
11921 * configure: Regenerate.
11922
89a012ea 119232011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 11924 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
11925
11926 PR target/46037
11927 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
11928 when checking debug_info_level. Test write_symbols instead of
11929 debug_hooks->var_location when setting flag_var_tracking_uninit.
11930
7352c013
RG
119312011-01-14 Richard Guenther <rguenther@suse.de>
11932
11933 PR tree-optimization/47179
11934 * target.def (ref_may_alias_errno): New target hook.
11935 * targhooks.h (default_ref_may_alias_errno): Declare.
11936 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
11937 (default_ref_may_alias_errno): New function.
11938 * target.h (struct ao_ref_s): Declare.
11939 * tree-ssa-alias.c: Include target.h.
11940 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
11941 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
11942 (targhooks.o): Likewise.
11943 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
11944 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
11945
9a6c9288
RG
119462011-01-14 Richard Guenther <rguenther@suse.de>
11947
11948 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
11949
0fdb0d27
RG
119502011-01-14 Richard Guenther <rguenther@suse.de>
11951
11952 PR tree-optimization/47280
11953 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
11954 return CFG changes.
11955 (tree_ssa_forward_propagate_single_use_vars): Deal with
11956 CFG changes from associate_plusminus.
11957
8f66db3b
RG
119582011-01-14 Richard Guenther <rguenther@suse.de>
11959
11960 PR middle-end/47281
11961 Revert
11962 2011-01-11 Richard Guenther <rguenther@suse.de>
11963
280d9630
EB
11964 PR tree-optimization/46076
11965 * tree-ssa.c (useless_type_conversion_p): Conversions from
11966 unprototyped to empty argument list function types are useless.
8f66db3b 11967
6c0c92e6
RG
119682011-01-14 Richard Guenther <rguenther@suse.de>
11969
11970 PR tree-optimization/47286
280d9630 11971 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 11972
db09f943
MJ
119732011-01-14 Martin Jambor <mjambor@suse.cz>
11974
11975 PR middle-end/46823
11976 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
11977
dde8a3a4
AS
119782011-01-13 Anatoly Sokolov <aesok@post.ru>
11979
11980 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
11981 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11982 * config/xtensa/xtensa.c (xtensa_libcall_value,
11983 xtensa_function_value_regno_p): New functions.
11984 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
11985
a2b63a20
KT
119862011-01-13 Kai Tietz <kai.tietz@onevision.com>
11987
11988 PR c++/47213
11989 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
11990 PE specific hook.
11991 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
11992 New function prototype.
11993 * config/i386/winnt.c (i386_pe_assemble_visibility):
11994 Warn only if attribute was specified by user.
11995
b41f0b34
MM
119962011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
11997
11998 PR target/47251
11999 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12000 floating point.
12001 (floatunsdidf2_fcfidu): Ditto.
12002
3f3c098d
AK
120032011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12004
12005 * config/s390/s390.c (print_operand_address): Replace 'error' with
12006 'output_operand_lossage'.
12007 (print_operand): Likewise.
12008
29fa95ed
JL
120092011-01-13 Jeff Law <law@redhat.com>
12010
280d9630 12011 PR rtl-optimization/39077
29fa95ed
JL
12012 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12013 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12014 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12015 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12016 * gcse.c (prune_insertions_deletions): New function.
12017 (compute_pre_data): Use it.
12018
71d12276
DS
120192011-01-13 Dodji Seketeli <dodji@redhat.com>
12020
12021 PR debug/PR46973
12022 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12023 static function.
61052244 12024 (prune_unused_types_mark): Use it.
71d12276 12025
9b0f04e7
AB
120262011-01-13 Andrey Belevantsev <abel@ispras.ru>
12027
12028 PR rtl-optimization/45352
1c3ba85b 12029 * sel-sched.c: Update copyright years.
9b0f04e7 12030 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 12031 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 12032
d6a3e264
RH
120332011-01-12 Richard Henderson <rth@redhat.com>
12034
a49b692a
RH
12035 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12036 (TARGET_MD_ASM_CLOBBERS): New.
12037
126b1483
RH
12038 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12039 (TARGET_DELEGITIMIZE_ADDRESS): New.
12040
f3d9d2e0
RH
12041 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12042 (clzsi2, *bsch): New patterns.
12043
d84760c9
RH
12044 * config/mn10300/mn10300.md (INT): New mode iterator.
12045 (*mov<INT>_clr): New pattern, and peep2 to generate it.
12046
ec815d65
RH
12047 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12048 flag_split_wide_types.
12049
d6a3e264
RH
12050 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12051 (mn10300_trampoline_init): Rewrite without a template, an immediate
12052 load and a direct branch.
12053 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12054
0f8ab434
AS
120552011-01-12 Anatoly Sokolov <aesok@post.ru>
12056
12057 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12058 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12059 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12060 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12061
d8a24b65
KT
120622011-01-12 Kai Tietz <kai.tietz@onevision.com>
12063
12064 PR debug/47209
12065 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12066 of type.
12067
56e22cab
JH
120682011-01-12 Jan Hubicka <jh@suse.cz>
12069
12070 PR driver/47244
12071 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
12072 (PLUGIN_COND_CLOSE): New macro.
12073 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
12074
4b18b3c2
RG
120752011-01-12 Richard Guenther <rguenther@suse.de>
12076
12077 PR lto/47259
12078 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
12079 register variables in a MEM_REF.
12080
8e38461c
JM
120812011-01-12 Joseph Myers <joseph@codesourcery.com>
12082
12083 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
12084 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
12085 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
12086 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12087 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12088 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
12089 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
12090 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
12091 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
12092 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
12093 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
12094 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
12095 * config/gnu-user.h: New. Copied from linux.h.
12096 (LINUX_TARGET_STARTFILE_SPEC): Rename to
12097 GNU_USER_TARGET_STARTFILE_SPEC.
12098 (LINUX_TARGET_ENDFILE_SPEC): Rename to
12099 GNU_USER_TARGET_ENDFILE_SPEC.
12100 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
12101 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
12102 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
12103 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
12104 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
12105 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
12106 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
12107 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
12108 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
12109 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
12110 * config/arm/linux-eabi.h (CC1_SPEC): Use
12111 GNU_USER_TARGET_CC1_SPEC.
12112 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
12113 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
12114 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
12115 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
12116 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
12117 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
12118 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
12119 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
12120
a570fc16
RG
121212011-01-12 Richard Guenther <rguenther@suse.de>
12122
12123 PR other/46946
12124 * doc/invoke.texi (ffast-math): Document it is turned on
12125 with -Ofast.
12126
b0223c3e
JH
121272011-01-12 Jan Hubicka <jh@suse.cz>
12128
12129 PR tree-optimization/47233
ca1e00b3
EB
12130 * opts.c (common_handle_option): Disable ipa-reference with profile
12131 feedback.
b0223c3e 12132
1c3ba85b 121332011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
12134
12135 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
12136 error message.
12137
d853ee42
NP
121382011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
12139
12140 * c-parser.c (c_lex_one_token): Updated and reindented some
12141 comments. No changes in code.
12142
4053a5a0
ILT
121432011-01-11 Ian Lance Taylor <iant@google.com>
12144
12145 * godump.c (go_output_var): Don't output the variable if there is
12146 already a type with the same name.
12147
fa3e04d2
ILT
121482011-01-11 Ian Lance Taylor <iant@google.com>
12149
12150 * godump.c (go_format_type): Don't generate float80.
12151
885fe07c
RH
121522011-01-11 Richard Henderson <rth@redhat.com>
12153
72d6e3c5
RH
12154 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
12155 declaration. Rewrite for both speed and size.
12156 (mn10300_address_cost_1): Remove.
12157 (mn10300_register_move_cost): New.
12158 (mn10300_memory_move_cost): New.
12159 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
12160 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
12161 extensions, shifts, BSWAP, CLZ.
12162 (mn10300_wide_const_load_uses_clr): Remove.
12163 (TARGET_REGISTER_MOVE_COST): New.
12164 (TARGET_MEMORY_MOVE_COST): New.
12165 * config/mn10300/mn10300-protos.h: Update.
12166 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
12167
df37c023
RH
12168 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
12169 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
12170 * config/mn10300/mn10300-protos.h: Update.
12171 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
12172 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
12173 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
12174 (*test_int_bitfield, *test_byte_bitfield): Remove.
12175 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 12176 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 12177
85a337b5
RH
12178 * config/mn10300/constraints.md ("c"): Rename from "A".
12179 ("A", "D"): New constraint letters.
12180 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
12181 (fmssf4, fnmasf4, fnmssf4): Likewise.
12182
a5c727e3
RH
12183 * config/mn10300/mn10300.md (isa): New attribute.
12184 (enabled): New attribute.
12185
0d9e23f4
RH
12186 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
12187 (abssf2, negsf2): Define only for hardware fp.
12188 (sqrtsf2): Reformat.
12189 (addsf3, subsf3, mulsf3): Merge expander and insn.
12190
c157b3f0
RH
12191 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
12192 (DEBUGGER_AUTO_OFFSET): Remove.
12193 (DEBUGGER_ARG_OFFSET): Remove.
12194
cc909bba
RH
12195 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
12196 Emit register stores with the same offsets as the hardware.
12197 (mn10300_store_multiple_operation): Don't check that the register
12198 save offsets are monotonic.
12199 * config/mn10300/mn10300-protos.h: Update.
12200
e3b5c2f3
RH
12201 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
12202
885fe07c
RH
12203 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
12204 in terms of the value on the stack, not the MDR register.
12205
6e701822
JH
122062011-01-11 Jan Hubicka <jh@suse.cz>
12207
12208 PR lto/45721
12209 PR lto/45375
12210 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
12211 (symbol_alias_set_destroy, symbol_alias_set_contains,
12212 propagate_aliases_backward): Declare.
12213 * lto-streamer-out.c (struct sets): New sturcture.
12214 (trivally_defined_alias): New function.
12215 (output_alias_pair_p): Rewrite.
12216 (output_unreferenced_globals): Fix output of alias pairs.
12217 (produce_symtab): Likewise.
12218 * ipa.c (function_and_variable_visibility): Set weak alias destination
12219 as needed in lto.
12220 * varasm.c (symbol_alias_set_t): Remove.
12221 (symbol_alias_set_destroy): Export.
12222 (propagate_aliases_forward, propagate_aliases_backward): New functions
12223 based on ...
12224 (compute_visible_aliases): ... this one; remove.
12225 (trivially_visible_alias): New
12226 (trivially_defined_alias): New.
12227 (remove_unreachable_alias_pairs): Rewrite.
12228 (finish_aliases_1): Reorganize code checking if alias is defined.
12229 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
12230 in LTO mode.
12231
1b248907
RG
122322011-01-11 Richard Guenther <rguenther@suse.de>
12233
12234 PR tree-optimization/46076
12235 * tree-ssa.c (useless_type_conversion_p): Conversions from
12236 unprototyped to empty argument list function types are useless.
12237
b1923f0a
RG
122382011-01-11 Richard Guenther <rguenther@suse.de>
12239
12240 PR middle-end/45235
12241 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
12242 volatile MEMs as MEM_READONLY_P.
12243
e98965af
RG
122442011-01-11 Richard Guenther <rguenther@suse.de>
12245
12246 PR tree-optimization/47239
12247 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
12248
9f9ca914
JL
122492011-01-11 Jeff Law <law@redhat.com>
12250
1ee3ea05 12251 PR tree-optimization/47086
9f9ca914
JL
12252 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
12253 IVs from statements that might throw.
12254
345fdcb7
JH
122552011-01-10 Jan Hubicka <jh@suse.cz>
12256
12257 PR lto/45375
12258 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
12259
c459c97b
JH
122602011-01-10 Jan Hubicka <jh@suse.cz>
12261
12262 PR lto/45375
12263 * profile.c (read_profile_edge_counts): Ignore profile inconistency
12264 when correcting profile.
12265
06c9eb51
JH
122662011-01-10 Jan Hubicka <jh@suse.cz>
12267
12268 PR lto/46083
12269 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
12270 DECL_FINI_PRIORITY.
12271 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
12272 Restore DECL_FINI_PRIORITY.
12273
ae9fd815
RW
122742011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12275
12276 * doc/gimple.texi: Fix quoting of multi-word return values in
12277 @deftypefn statements. Ensure presence of return value. Wrap
12278 overlong @deftypefn lines.
12279 (is_gimple_operand, is_gimple_min_invariant_address): Remove
12280 descriptions of removed functions.
12281 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
12282 of multi-word return value in @deftypefn statement.
12283
0ecb4a7c
RW
122842011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12285
12286 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
12287 (Conditional Expressions, Logical Operators)
12288 (Statement and operand traversals): Do not indent smallexample
12289 code. Fix duplicate function argument in example.
12290
2e5e346d
JL
122912011-01-10 Jeff Law <law@redhat.com>
12292
1ee3ea05 12293 PR tree-optimization/47141
2e5e346d
JL
12294 * ipa-split.c (split_function): Handle case where we are
12295 returning a value and the return block has a virtual operand phi.
12296
cf9712cc
JH
122972011-01-10 Jan Hubicka <jh@suse.cz>
12298
1c3ba85b 12299 PR tree-optimization/47234
cf9712cc
JH
12300 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
12301 (pass_feedback_split_functions): Declare.
12302 * passes.c (init_optimization_passes): Add ipa-split as subpass of
12303 tree-profile.
12304 * ipa-split.c (gate_split_functions): Update comments; disable
12305 split-functions for profile_arc_flag and branch_probabilities.
12306 (gate_feedback_split_functions): New function.
12307 (execute_feedback_split_functions): New function.
12308 (pass_feedback_split_functions): New global var.
12309
94cd932c
L
123102011-01-10 H.J. Lu <hongjiu.lu@intel.com>
12311
12312 PR lto/46760
12313 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
12314 calling gimple_call_set_cannot_inline.
12315
fbbfcaf1
IS
123162011-01-10 Iain Sandoe <iains@gcc.gnu.org>
12317
12318 * config/darwin-sections.def: Remove unused section.
12319
d06865bf
DK
123202011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
12321
12322 PR c++/47218
12323 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
12324
96bbfbac
NP
123252011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
12326
12327 PR objc/47232
12328 * c-parser.c (c_parser_declaration_or_fndef): Improved
12329 error message.
12330
1ba6516f
KT
123312011-01-09 Kai Tietz <kai.tietz@onevision.com>
12332
12333 * config/i386/winnt.c (i386_pe_start_function): Make sure
12334 to switch back to function's section.
12335
0c5d770e
IS
123362011-01-09 Iain Sandoe <iains@gcc.gnu.org>
12337
12338 PR gcc/46902
12339 PR testsuite/46912
12340 * plugin.c: Move include of dlfcn.h from here...
12341 * system.h: ... to here.
12342
123432011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
12344
12345 * doc/cpp.texi (C++ Named Operators): Fix markup for header
12346 file name.
12347 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
12348 two extra empty pages in PDF output.
12349
046608a3
NP
123502011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
12351
12352 PR objc/47078
12353 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
12354 for error recovery purposes behave as if it was not specified so
12355 that the default type is usd.
12356
8cb114b9
JH
123572011-01-07 Jan Hubicka <jh@suse.cz>
12358
12359 PR tree-optmization/46469
12360 * ipa.c (function_and_variable_visibility): Clear needed flags on
12361 nodes with external decls; handle weakrefs merging correctly.
12362
b294a75e
JM
123632011-01-07 Joseph Myers <joseph@codesourcery.com>
12364
12365 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
12366 not false.
12367
96bdf9b4
JH
123682011-01-07 Jan Hubicka <jh@suse.cz>
12369
f60c2554 12370 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
12371 and no longer claim that gold is required for linker plugin.
12372 * configure: Regenerate.
12373 * gcc.c (PLUGIN_COND): New macro.
12374 (LINK_COMMAND_SPEC): Use it.
12375 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
12376 * config.in (HAVE_LTO_PLUGIN): New.
12377 * configure.ac (--with-lto-plugin): New parameter; autodetect
12378 HAVE_LTO_PLUGIN.
12379
17afc0fe
JH
123802011-01-07 Jan Hubicka <jh@suse.cz>
12381
12382 PR tree-optimization/46367
12383 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
12384 when we can update original.
12385 (cgraph_mark_inline_edge): Sanity check.
12386 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
12387
d4c48c0f
UW
123882011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12389
12390 * config/spu/spu.h (ASM_COMMENT_START): Define.
12391
96f5b137
L
123922011-01-07 H.J. Lu <hongjiu.lu@intel.com>
12393
12394 PR driver/42445
12395 * gcc.c (%>S): New.
12396 (SWITCH_KEEP_FOR_GCC): Likewise.
12397 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
12398 (do_spec_1): Handle "%>".
12399
12400 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
12401
c6a8f6de
JJ
124022011-01-07 Jakub Jelinek <jakub@redhat.com>
12403
c21bbd7a
JJ
12404 PR target/47201
12405 * config/i386/i386.c (ix86_delegitimize_address): If
12406 simplify_gen_subreg fails, return orig_x.
12407
c6a8f6de
JJ
12408 PR bootstrap/47187
12409 * value-prof.c (gimple_stringop_fixed_value): Handle
12410 lhs of the call properly.
12411
fe95fbf9
JH
124122011-01-07 Jan Hubicka <jh@suse.cz>
12413
12414 PR lto/45375
12415 * lto-opt.c (lto_reissue_options): Set flag_shlib.
12416
14d11d40
IS
124172011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12418
72e961c8
EB
12419 * target.def (function_switched_text_sections): New hook.
12420 * doc/tm.texi: Regenerated.
12421 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12422 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
12423 (final_scan_insn): Call function_switched_text_sections when a
12424 mid-function section change occurs.
14d11d40 12425 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
12426 * config/darwin-protos.h (darwin_function_switched_text_sections):
12427 Likewise.
14d11d40 12428 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 12429 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12430
0b764288
IS
124312011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12432
12433 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
12434 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
12435 the secondary code fragment when outputting for DWARF == 2.
12436
2ac6bb04
AS
124372011-01-07 Anatoly Sokolov <aesok@post.ru>
12438
12439 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12440 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
12441 Remove.
12442 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
12443 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12444
9f82de11
EB
124452011-01-06 Eric Botcazou <ebotcazou@adacore.com>
12446
12447 PR debug/46704
280d9630
EB
12448 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
12449 when it is not empty.
9f82de11
EB
12450
124512011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 12452
1ed72abf 12453 Bobcat Enablement
14b52538 12454 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 12455 (case ${target}): Add btver1.
14b52538 12456 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 12457 -march=native recognize btver1 processors.
14b52538 12458 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 12459 btver1 def_and_undef
14b52538 12460 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
12461 btver1 cost table.
12462 (m_BTVER1): New definition.
12463 (m_AMD_MULTIPLE): Includes m_BTVER1.
12464 (initial_ix86_tune_features): Add btver1 tune.
12465 (processor_target_table): Add btver1 entry.
12466 (static const char *const cpu_names): Add btver1 entry.
12467 (software_prefetching_beneficial_p): Add btver1.
12468 (ix86_option_override_internal): Add btver1 instruction sets.
12469 (ix86_issue_rate): Add btver1.
12470 (ix86_adjust_cost): Add btver1.
14b52538 12471 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
12472 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
12473 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
12474 * config/i386/i386.md (define_attr "cpu"): Add btver1.
12475
e1a973d8
RO
124762011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12477
12478 PR target/43309
12479 * config/i386/i386.c (legitimize_tls_address)
12480 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
12481 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
12482 (tls_initial_exec_64_sun): New pattern.
12483
c73f67c5
GP
124842011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
12485
12486 * doc/invoke.texi (Overall Options): Improve wording and markup
12487 of the description of -wrapper.
12488
bc4c6f9c
JM
124892011-01-06 Joseph Myers <joseph@codesourcery.com>
12490
12491 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
12492 rdynamic, threads): New Driver options.
12493
adb75db0
RO
124942011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12495
12496 PR target/38118
12497 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
12498 if coming from .tdata.
12499 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
12500
402c1cb4
JH
125012011-01-06 Jan Hubicka <jh@suse.cz>
12502
12503 PR lto/47188
12504 * collect2.c (main): Do not enable LTOmode when plugin is active.
12505
a4da6485
RO
125062011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12507
12508 PR other/45915
12509 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
12510 --version output if supported.
12511 * configure: Regenerate.
12512
028dbdf4
JM
125132011-01-06 Joseph Myers <joseph@codesourcery.com>
12514
12515 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
12516 Driver options.
12517
dfe776dd
JJ
125182011-01-06 Jakub Jelinek <jakub@redhat.com>
12519
12520 PR c/47150
12521 * c-convert.c (convert): When converting a complex expression
12522 other than COMPLEX_EXPR to a different complex type, ensure
12523 c_save_expr is called instead of save_expr, unless in_late_binary_op.
12524 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
12525 when converting COMPLEX_TYPE.
12526
210dedfe
IR
125272011-01-06 Ira Rosen <irar@il.ibm.com>
12528
12529 PR tree-optimization/47139
12530 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
12531 only the last reduction value is used outside the loop. Update
12532 documentation.
12533
cd33a412
JM
125342011-01-05 Joseph Myers <joseph@codesourcery.com>
12535
12536 * config/rtems.opt: New.
12537 * config.gcc (*-*-rtems*): Use rtems.opt.
12538
819edd94
CF
125392011-01-05 Changpeng Fang <changpeng.fang@amd.com>
12540
12541 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
12542 processors do not support 3DNow instructions.
12543
dc242c4a
UW
125442011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12545
12546 * config/spu/spu.c (spu_option_override): Set parameter
12547 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
12548
be286227
JH
125492011-01-05 Jan Hubicka <jh@suse.cz>
12550
12551 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
12552 at the command line.
12553
644e637f
MJ
125542011-01-05 Martin Jambor <mjambor@suse.cz>
12555
12556 PR lto/47162
12557 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
12558 deltas on streamed outgoing edges.
12559 (output_node_opt_summary): Output info for outgoing edges only when
12560 the node is in new parameter set.
12561 (output_cgraph_opt_summary): New parameter set, passed to the two
12562 aforementioned functions. Update its forward declaration and its
12563 callee too.
12564
7bd11157
TT
125652011-01-05 Tom Tromey <tromey@redhat.com>
12566
12567 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
12568 operator to c_finish_omp_atomic.
12569 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
12570 (build_unary_op): Update.
12571 (build_modify_expr): Update.
12572 (build_asm_expr): Update.
12573
f626b979
UW
125742011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12575
12576 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
12577 newly inserted insns.
12578 (pad_bb): Likewise.
12579 (spu_emit_branch_hint): Likewise.
12580 (insert_hbrp_for_ilb_runout): Likewise.
12581 (spu_machine_dependent_reorg): Call df_finish_pass after
12582 schedule_insns returns.
12583
4c825c02
UW
125842011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12585
12586 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
12587
5e9fba51
EB
125882011-01-05 Eric Botcazou <ebotcazou@adacore.com>
12589
12590 PR tree-optimization/47005
12591 * tree-sra.c (struct access): Add 'non_addressable' bit.
12592 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
12593 (decide_one_param_reduction): Return 0 if the parameter is passed by
12594 reference and one of the accesses in the group is non_addressable.
12595
3ebb5ca6
EB
125962011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12597
12598 PR tree-optimization/47056
12599 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
12600 (mark_load): Likewise. Handle FUNCTION_DECL specially.
12601 (mark_store): Likewise. Pass STMT to ipa_record_reference.
12602
d5d4d14e
EB
126032011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12604
12605 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
12606 initializer. Skip view conversions from aggregate types.
12607
d996ef70
KT
126082011-01-04 Kai Tietz <kai.tietz@onevision.com>
12609
12610 PR bootstrap/47055
12611 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
12612
509d65dd 126132011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
12614
12615 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
12616 obvious typo.
12617
55c623b5
UW
126182011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12619
12620 * function.c (thread_prologue_and_epilogue_insns): Do not crash
12621 on empty epilogue sequences.
12622
b98d6b35
JM
126232011-01-04 Joseph Myers <joseph@codesourcery.com>
12624
12625 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
12626 non-static): New Driver options.
12627
a0d43bac
JZ
126282011-01-04 Jie Zhang <jie@codesourcery.com>
12629
12630 PR driver/47137
12631 * gcc.c (default_compilers[]): Set combinable field to 0
12632 for all assembly languages.
12633
2b18eb32
MX
126342011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
12635
12636 * config/mips/loongson3a.md: New file.
12637 * config/mips/mips.md: Include loongson3a.md.
12638 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
12639 TUNE_LOONGSON_3A.
12640
42a48c4f
EB
126412011-01-03 Eric Botcazou <ebotcazou@adacore.com>
12642
12643 PR middle-end/47017
12644 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
12645 instead of convert_memory_address_addr_space on the base expression.
12646
9c1732c4
UW
126472011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12648
12649 * config/spu/spu.c (spu_option_override): Update error text
12650 for bad -march= / -mtune= values.
12651
aa474365
UW
126522011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12653
12654 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
12655 if branch-hint optimization will be performed.
12656
9766135b
JJ
126572011-01-03 Jakub Jelinek <jakub@redhat.com>
12658
371556ee
JJ
12659 PR tree-optimization/47148
12660 * ipa-split.c (split_function): Convert arguments to
12661 DECL_ARG_TYPE if possible.
12662
1ac12fa2
JJ
12663 PR tree-optimization/47155
12664 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
12665 when computing uns.
12666
9766135b
JJ
12667 PR rtl-optimization/47157
12668 * combine.c (try_combine): If undobuf.other_insn becomes
12669 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
12670 and set *new_direct_jump_p too.
12671
f4a2e571
SP
126722011-01-03 Sebastian Pop <sebastian.pop@amd.com>
12673
12674 PR tree-optimization/47021
12675 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
12676
9f8e43c0
JJ
126772011-01-03 Jakub Jelinek <jakub@redhat.com>
12678
12679 * gcc.c (process_command): Update copyright notice dates.
12680 * gcov.c (print_version): Likewise.
12681 * gcov-dump.c (print_version): Likewise.
12682 * mips-tfile.c (main): Likewise.
12683 * mips-tdump.c (main): Likewise.
12684
1a2e38f3
MJ
126852011-01-03 Martin Jambor <mjambor@suse.cz>
12686
12687 PR tree-optimization/46801
12688 * tree-sra.c (type_internals_preclude_sra_p): Check whether
12689 aggregate fields start at byte boundary instead of the bit-field flag.
12690
56b721c5
L
126912011-01-03 H.J. Lu <hongjiu.lu@intel.com>
12692
12693 PR driver/47137
12694 * gcc.c (main): Revert revision 168407.
12695
839d549b
MJ
126962011-01-03 Martin Jambor <mjambor@suse.cz>
12697
12698 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
12699
4ce99a20 127002011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
12701
12702 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
12703 vector optab to expand vector/scalar shift, update gimple to vector.
12704
76df0ae6
MJ
127052011-01-03 Martin Jambor <mjambor@suse.cz>
12706
12707 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
12708 a thunk.
12709
ce47fda3
MJ
127102011-01-03 Martin Jambor <mjambor@suse.cz>
12711
12712 PR tree-optimization/46984
12713 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
12714 HOST_WIDE_INT.
12715 (cgraph_create_indirect_edge): Fixed line length.
12716 (cgraph_indirect_call_info): Declare.
12717 (cgraph_make_edge_direct) Update declaration.
12718 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
12719 (cgraph_create_indirect_edge): Use it.
12720 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
12721 callees.
12722 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
12723 the new thunk_delta representation.
12724 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
12725 HOST_WIDE_INT.
12726 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
12727 (ipa_read_indirect_edge_info): Likewise.
12728 * lto-cgraph.c (output_edge_opt_summary): New function.
12729 (output_node_opt_summary): Call it on all outgoing edges.
12730 (input_edge_opt_summary): New function.
12731 (input_node_opt_summary): Call it on all outgoing edges.
12732
1e67fa1f
L
127332011-01-02 H.J. Lu <hongjiu.lu@intel.com>
12734
12735 PR driver/47137
12736 * gcc.c (main): Don't check have_o when settting combine_inputs.
12737
6656b2ac
EB
127382011-01-02 Eric Botcazou <ebotcazou@adacore.com>
12739
12740 * regrename.c: Add general comment describing the pass.
12741 (struct du_head): Remove 'length' field.
12742 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
12743 (regrename_optimize): Do not sort chains. Rework comments, add others.
12744 Force renaming to the preferred class (if any) in the first pass and do
12745 not consider registers that belong to it in the second pass.
12746 (create_new_chain): Do not set 'length' field.
12747 (scan_rtx_reg): Likewise.
12748
bc470c24
JJ
127492011-01-02 Jakub Jelinek <jakub@redhat.com>
12750
4e996296
JJ
12751 PR tree-optimization/47140
12752 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
12753 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
12754 to bit_value_binop.
12755
bc470c24 12756 PR rtl-optimization/47028
6656b2ac
EB
12757 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
12758 parm_birth_insn instead of at the beginning of first bb.
bc470c24 12759
5af62fcd 127602011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
12761
12762 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
12763 Remove the word "see" before "@pxref".
12764 * doc/rtl.texi: Remove the word "see" before "@pxref".
12765
0e20c89f
JH
127662011-01-01 Jan Hubicka <jh@suse.cz>
12767
6656b2ac
EB
12768 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
12769 memory.
0e20c89f 12770
220e83ca
KT
127712011-01-01 Kai Tietz <kai.tietz@onevision.com>
12772
12773 PR target/38662
6656b2ac 12774 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 12775
ad41bd84 12776\f
797103eb 12777Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
12778
12779Copying and distribution of this file, with or without modification,
12780are permitted in any medium without royalty provided the copyright
12781notice and this notice are preserved.