]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
don't use TYPE_ARG_TYPES in c-family/
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
7a2f7208
UB
12011-05-04 Uros Bizjak <ubizjak@gmail.com>
2
3 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
4
a2d42931
EB
52011-05-04 Eric Botcazou <ebotcazou@adacore.com>
6
7 * stor-layout.c (variable_size): Do not issue errors.
8
f81b1a3d
RG
92011-05-04 Richard Guenther <rguenther@suse.de>
10
11 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12 for array-ref indices.
13 (tree_coverage_counter_addr): Likewise.
14 (build_fn_info_type): Use size_int for index types.
15 (build_gcov_info): Likewise.
16
c62c040f
RG
172011-05-04 Richard Guenther <rguenther@suse.de>
18
19 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
20 to build_int_cst.
21 * c-typeck.c (really_start_incremental_init): Use bitsize_int
22 for constructor indices.
23 (push_init_level): Likewise.
24
1e3287d0
RG
252011-05-04 Richard Guenther <rguenther@suse.de>
26
27 * explow.c (promote_mode): Move variable declarations before code.
28
6c32445b
NF
292011-05-04 Nathan Froyd <froydnj@codesourcery.com>
30
31 * tree.h (build_function_type_array): Declare.
32 (build_varargs_function_type_array): Declare.
33 (build_function_type_vec, build_varargs_function_type_vec): Define.
34 * tree.c (build_function_type_array_1): New function.
35 (build_function_type_array): New function.
36 (build_varargs_function_type_array): New function.
37
fdabf269
RS
382011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
39
40 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
41 before setting STMT_VINFO_TYPE.
42
a207915a
UW
432011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
44
45 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
46 instead of spu_pass_by_reference.
47
5e617be8
AK
482011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
49
50 * calls.c (emit_library_call_value_1): Invoke
51 promote_function_mode hook on libcall arguments.
52 * explow.c (promote_function_mode, promote_mode): Handle TYPE
53 argument being NULL.
54 * targhooks.c (default_promote_function_mode): Lisewise.
55 * config/s390/s390.c (s390_promote_function_mode): Likewise.
56 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
57
58 * doc/tm.texi: Document that TYPE argument might be NULL.
59
486d04be
SH
602011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
61
62 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
63
9b19b026
SH
642011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
65
66 From Bernd Schmidt
67 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
68
502bc3df
RO
692011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
70
71 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
72 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
73 Move ...
74 * mips-tfile.c: ... here.
75 Don't include coretypes.h, tm.h, filenames.h.
76 (saber_stop): Remove definition and all calls.
77 [__SABER__]: Remove.
78 (__LINE__): Remove default.
79 (Size_t, Ptrdiff_t): Remove definitions.
80 Replace by size_t, ptrdiff_t.
81 [!MIPS_DEBUGGING_INFO]: Remove.
82 (SHASH_SIZE, THASH_SIZE): Remove defaults.
83 (progname): Add const.
84 (STATIC): Remove.
85 Replace all uses by static.
86 (ALIGN_SYMTABLE_OFFSET): Remove default.
87 * mips-tdump.c: Don't include coretypes.h, tm.h.
88 Remove !MIPS_IS_STAB guard.
89 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
90 $(TM_H), filenames.h dependencies.
91 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
92
991eb6ef
SH
932011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
94
95 From Jie Zhang
96 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
97 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
98
420ccc84
SH
992011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
100
101 From Bernd Schmidt
102 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
103 account and save/restore RETS.
104 (PROFILE_BEFORE_PROLOGUE): Define.
105 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
106 the push insn to use predecrement.
107
9f8d69ee
SH
1082011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
109
110 From Jie Zhang
111 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
112
662c03f4
NC
1132011-05-04 Nick Clifton <nickc@redhat.com>
114
115 * config/mn10300/mn10300.c: Include cfgloop.h.
116 (DUMP): New macro.
117 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
118 Lcc or a FLcc insn into the instruction stream.
119 (mn10300_block_contains_call): New function. Returns true if the
120 given basic block contains a CALL insn.
121 (mn10300_loop_contains_call_insn): New function. Returns true if
122 the given loop contains a CALL insn.
123 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
124 to use the SETLB and Lcc or FLcc insns.
125 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
126 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
127 * config/mn10300/mn10300.opt (msetlb): New option. Used to
128 disable the SETLB optimization.
129 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
130 __SETLB__ or __NO_SETLB__.
131 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
132 (movsf_internal): Handle MDR register.
133 (cmpsi): Make visible.
134 (setlb): New pattern.
135 (Lcc): New pattern.
136 (FLcc): New pattern.
137
843b6915
UB
1382011-05-04 Uros Bizjak <ubizjak@gmail.com>
139
140 PR target/48860
141 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
142 for reg<->xmm moves.
143 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
144 (vec_concatv2di_rex64_sse): Ditto.
145 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
146 (*vec_extractv2di_1_rex64): Ditto.
147
148 Revert:
149 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
150
151 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
152 reg<->xmm moves.
153 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
154
d35936ab
RG
1552011-05-04 Richard Guenther <rguenther@suse.de>
156
157 * tree.h (int_const_binop): Remove notrunc argument.
158 * fold-const.c (int_const_binop): Remove notrunc argument. Always
159 create integer constants that are properly truncated.
160 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
161 (const_binop): Remove zero notrunc argument to int_const_binop.
162 (size_binop_loc): Likewise.
163 (fold_div_compare): Likewise.
164 (maybe_canonicalize_comparison_1): Likewise.
165 (fold_comparison): Likewise.
166 (fold_binary_loc): Likewise.
167 (multiple_of_p): Likewise.
168 * expr.c (store_constructor): Likewise.
169 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
170 (maybe_fold_stmt_addition): Likewise.
171 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
172 * stor-layout.c (layout_type): Likewise.
173 * tree-data-ref.c (tree_fold_divides_p): Likewise.
174 * tree-sra.c (build_ref_for_offset): Likewise.
175 (build_user_friendly_ref_for_offset): Likewise.
176 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
177 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
178 * tree-ssa-loop-niter.c (inverse): Likewise.
179 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
180 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
181 * tree-switch-conversion.c (check_range): Likewise.
182 (build_constructors): Likewise.
183 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
184 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
185 (extract_range_from_assert): Likewise.
186 (vrp_int_const_binop): Likewise.
187 (extract_range_from_binary_expr): Likewise.
188 (extract_range_from_unary_expr): Likewise.
189 (check_array_ref): Likewise.
190 (find_case_label_range): Likewise.
191 (simplify_div_or_mod_using_ranges): Likewise.
192 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
193 comparing case labels for merging.
194
8992c063
MW
1952011-05-03 Mark Wielaard <mjw@redhat.com>
196
197 * dwarf2out.c (debug_str_hash_forced): Removed.
198 (gen_label_for_indirect_string): Removed.
199 (get_debug_string_label): Removed.
200 (AT_string_form): Generate label directly.
201 (output_indirect_string): Test indirect_string_node for
202 DW_FORM_strp instead of checking label and refcount.
203 (prune_indirect_string): Removed.
204 (prune_unused_types): Don't check debug_str_hash_forced or
205 call prune_indirect_string.
206
4868e6ea
AO
2072011-05-04 Alexandre Oliva <aoliva@redhat.com>
208
209 PR other/48093
210 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
211
01a5c0ab
AO
2122011-05-04 Alexandre Oliva <aoliva@redhat.com>
213
214 PR debug/47994
215 PR debug/47919
216 * combine.c (try_combine): Skip debug insns at m_split tests.
217
6ac00218
MW
2182011-04-26 Mark Wielaard <mjw@redhat.com>
219
220 PR42288
221 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
222 when info_section_emitted.
223
3af42a7b
JM
2242011-05-03 Joseph Myers <joseph@codesourcery.com>
225
226 * config/mips/mips-opts.h: New.
227 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
228 to mips-opts.h.
229 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
230 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
231 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
232 via opts pointer.
233 * config/mips/mips.h (enum mips_code_readable_setting): Move to
234 mips-opts.h.
235 (mips_abi, mips_code_readable): Don't declare.
843b6915 236 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
237 (mabi=): Use Enum and Var.
238 (mips_abi): New Enum and EnumValue entries.
239 (mcode-readable=): Use Enum and Var.
240 (mips_code_readable_setting): New Enum and EnumValue entries.
241 (mr10k-cache-barrier=): Use Enum and Var.
242 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
243
1cb1a99f
JH
2442011-05-03 Jan Hubicka <jh@suse.cz>
245
246 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
247 replace hash by pointer map.
248 (cgraph_node_set_element_def, cgraph_node_set_element,
249 const_cgraph_node_set_element, varpool_node_set_element_def,
250 varpool_node_set_element, const_varpool_node_set_element): Remove.
251 (free_cgraph_node_set, free_varpool_node_set): New function.
252 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
253 * tree-emutls.c: Free varpool node set.
254 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
255 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
256 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
257 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
258 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
259 Move here from ipa.c; implement using pointer_map
260 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
261 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
262 debug_cgraph_node_set, varpool_node_set_new,
263 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
264 dump_varpool_node_set, debug_varpool_node_set):
265 Move to ipa-uitls.c.
266 * passes.c (ipa_write_summaries): Update.
267
7f31f4db
SH
2682011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
269
7a2f7208
UB
270 From Mike Frysinger:
271 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
272 bf542/bf544/bf547/bf548/bf549.
7f31f4db 273
b70fce6d
UB
2742011-05-03 Uros Bizjak <ubizjak@gmail.com>
275
276 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
277
265b1d82
SH
2782011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
279
280 From Bernd Schmidt:
281 * config/bfin/bfin.md (MOVCC): New mode_macro.
282 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
283 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
284 comments from generated assembly.
285
f0b568f3
SH
2862011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
287
288 From Bernd Schmidt
289 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
290 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
291 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
292 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
293 * config/bfin/lib1funcs.asm (___muldi3): New function.
294
2c67cf6e
NF
2952011-05-03 Nathan Froyd <froydnj@codesourcery.com>
296
297 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
298 build_function_type_list instead of build_function_type.
299 Rearrange initialization of `args' to do so.
300
f9ac28ad
NF
3012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
302
303 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
304 instead of build_function_type.
305
22b8798c
NF
3062011-05-03 Nathan Froyd <froydnj@codesourcery.com>
307
308 * config/rs6000/rs6000.c (spe_init_builtins): Call
309 build_function_type_list instead of build_function_type.
310 (paired_init_builtins, altivec_init_builtins): Likewise.
311 (builtin_function_type): Likewise.
312
4cb44528
NF
3132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
314
315 * config/sh/sh.c (sh_media_init_builtins): Call
316 build_function_type_list instead of build_function_type.
317
4c203a6a
NF
3182011-05-03 Nathan Froyd <froydnj@codesourcery.com>
319
320 * config/sparc/sparc.c (sparc_file_end): Call
321 build_function_type_list instead of build_function_type.
322
d6a3d62b
NF
3232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
324
325 * config/alpha/alpha.c (alpha_init_builtins): Call
326 build_function_type_list instead of build_function_type.
327
de530b86
NF
3282011-05-03 Nathan Froyd <froydnj@codesourcery.com>
329
330 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
331 build_function_type_list instead of build_function_type.
332
baeec5f2
NF
3332011-05-03 Nathan Froyd <froydnj@codesourcery.com>
334
335 * config/iq2000/i2000.c (iq2000_init_builtins): Call
336 build_function_type_list instead of build_function_type.
337 Delete `endlink' variable.
338
c19afe52
NF
3392011-05-03 Nathan Froyd <froydnj@codesourcery.com>
340
341 * config/avr/avr.c (avr_init_builtins): Call
342 build_function_type_list instead of build_function_type.
343
a341df0a
NF
3442011-05-03 Nathan Froyd <froydnj@codesourcery.com>
345
346 * config/picochip/picochip.c (picochip_init_builtins): Call
347 build_function_type_list instead of build_function_type.
348 Delete `endlink' variable.
349
2102b1e1
NF
3502011-05-03 Nathan Froyd <froydnj@codesourcery.com>
351
352 * config/bfin/bfin.c (bfin_init_builtins): Call
353 build_function_type_list instead of build_function_type.
354
9f111209
SH
3552011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
356
357 From Bernd Schmidt
358 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
359 that's not CONST_INT. Seemingly redundant check is due to PR39768.
360
7071d064
SH
3612011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
362
363 From Jie Zhang:
364 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
365 libbffastfp overrides libgcc when -mfast-fp.
366
44fb48ef
SH
3672011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
368
369 Originally from Bernd Schmidt
370 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
371 * config/bfin/bfin.c (override_options): Test it and error if
372 TARGET_FDPIC.
373
1a3a9152
SH
3742011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
375
376 Originally From Bernd Schmidt
377 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
378 FD-PIC.
379
7134c090
JL
3802011-05-03 Jeff Law <law@redhat.com>
381
382 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
383 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
384 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
385 than accessing AUX field directly. Free the AUX field before
386 clearing it.
7134c090
JL
387 (thread_block, thread_through_loop_header): Likewise.
388 (thread_single_edge, mark_threaded_blocks): Likewise.
389 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
390 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 391
2c7eebae
BS
3922011-05-03 Bernd Schmidt <bernds@codesourcery.com>
393
394 * function.c (init_function_start): Call decide_function_section.
395 * varasm.c (decide_function_section): New function.
396 (assemble_start_function): When not using
397 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
398 or first_function_block_is_cold.
399 * rtl.h (decide_function_section): Declare.
400
17038fcf
JJ
4012011-05-03 Uros Bizjak <ubizjak@gmail.com>
402 Jakub Jelinek <jakub@redhat.com>
403
404 PR target/48774
405 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
406 only succeed if req_mode is the same as set_mode.
407
3810076b
BS
4082011-05-03 Bernd Schmidt <bernds@codesourcery.com>
409
410 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
411 * genemit.c (gen_exp): Handle RETURN.
412 * emit-rtl.c (verify_rtx_sharing): Likewise.
413 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
414 * rtl.c (copy_rtx): RETURN is shared.
415 * rtl.h (enum global_rtl_index): Add GR_RETURN.
416 (ret_rtx): New.
417 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
418 * config/s390/s390.c (s390_emit_epilogue): Likewise.
419 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
420 * config/cris/cris.c (cris_expand_return): Likewise.
421 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
422 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
423 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
424 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
425 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
426 Likewise.
427 * config/v850/v850.c (expand_epilogue): Likewise.
428 * config/bfin/bfin.c (bfin_expand_call): Likewise.
429 * config/arm/arm.md (epilogue): Likewise.
430 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
431 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
432 variable to ret_reg.
433
9efdb4ad
RG
4342011-05-03 Richard Guenther <rguenther@suse.de>
435
436 PR lto/48846
437 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
438 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
439 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
440
60a45536
RG
4412011-05-03 Richard Guenther <rguenther@suse.de>
442
443 * c-decl.c (grokdeclarator): Instead of looking at
444 TREE_OVERFLOW check if the constant fits in the index type.
445
3188ed59
RS
4462011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
447
448 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
449 (vec_store_lanes<mode><mode>): Likewise.
450
272c6793
RS
4512011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
452
453 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
454 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
455 convert_optab_index values.
456 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
457 * genopinit.c (optabs): Initialize the new optabs.
458 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
459 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
460 (expand_STORE_LANES): New functions.
461 * tree.h (build_array_type_nelts): Declare.
462 * tree.c (build_array_type_nelts): New function.
463 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
464 (vect_model_load_cost): Likewise.
465 (vect_store_lanes_supported, vect_load_lanes_supported)
466 (vect_record_strided_load_vectors): Declare.
467 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
468 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
469 (vect_transform_strided_load): Split out statement recording into...
470 (vect_record_strided_load_vectors): ...this new function.
471 * tree-vect-stmts.c (create_vector_array, read_vector_array)
472 (write_vector_array, create_array_ref): New functions.
473 (vect_model_store_cost): Add store_lanes_p argument.
474 (vect_model_load_cost): Add load_lanes_p argument.
475 (vectorizable_store): Try to use store-lanes functions for
476 interleaved stores.
477 (vectorizable_load): Likewise load-lanes and loads.
478 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
479 to vect_model_store_cost.
480 (vect_build_slp_tree): Likewise vect_model_load_cost.
481
0f6d54f7
RS
4822011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
483
484 * hooks.h (hook_bool_mode_uhwi_false): Declare.
485 * hooks.c (hook_bool_mode_uhwi_false): New function.
486 * target.def (array_mode_supported_p): New hook.
487 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
488 * doc/tm.texi: Regenerate.
489 * stor-layout.c (mode_for_array): New function.
490 (layout_type): Use it.
491 * config/arm/arm.c (arm_array_mode_supported_p): New function.
492 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
493
b15eacc7
EB
4942011-05-03 Eric Botcazou <ebotcazou@adacore.com>
495
496 PR target/48723
497 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
498 for -fstack-check if the size to allocate is negative.
499
575bfb00
LC
5002011-05-02 Lawrence Crowl <crowl@google.com>
501
502 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
503 (timevar_cond_start): New for starting a timer only when it is not
504 already running.
505 (timevar_cond_stop): New for stopping a timer when it was not already
506 running.
507
508 * timevar.c (timevar_stop): Enable start/stop timers to start again.
509 (timevar_cond_start): New as above.
510 (timevar_cond_stop): New as above.
511
512 * timevar.def: Add start/stop timers for compiler phases,
513 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
514 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
515 and TV_PHASE_FINALIZE.
516 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
517 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
518 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
519 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
520 Make unused TV_OVERLOAD into a start/stop timer.
521
522 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
523 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
524 to indicate that they are start/stop timers.
525
526 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
527 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
528 Move initialization to do_compile.
529 (do_compile): Add initialization from above.
530 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
531
532 * c-decl.c (c_write_global_declarations): Add start/stop of
533 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
534
535 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
536 or TV_PARSE_INLINE, as appropriate.
537 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
538 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
539
3533b943
JM
5402011-05-02 Jason Merrill <jason@redhat.com>
541
542 PR c++/40975
543 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
544
2609a0ce
SM
5452011-05-02 Simon Martin <simartin@users.sourceforge.net>
546
547 PR c/35445
548 * c-decl.c (finish_decl): Only create a composite if the types are
549 compatible.
550
6b0e4cbb
JM
5512011-05-02 Joseph Myers <joseph@codesourcery.com>
552
553 * config/fr30/fr30-protos.h (Mmode): Don't define.
554 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
555 definition where used.
556 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
557 define. Expand definitions where used.
558 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
559 Expand definitions where used.
560 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
561 rx_function_arg, rx_function_arg_advance,
562 rx_function_arg_boundary): Expand definitions of those macros.
563 * config/v850/v850-protos.h (Mmode): Don't define. Expand
564 definition where used.
565
4e938ce6
UB
5662011-05-02 Uros Bizjak <ubizjak@gmail.com>
567
568 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
569 reg<->xmm moves.
570 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
571 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
572 with *movv2sf_internal_rex64_avx.
573 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
574 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
575 Use %v prefix in insn mnemonic to handle TARGET_AVX.
576 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
577 "vex" in "prefix" attribute calculation.
578 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
579
36019c19
SH
5802011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
581
7a2f7208
UB
582 PR target/47951
583 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
584 inputs match the output.
36019c19 585
f69ea688
AS
5862011-05-02 Andreas Schwab <schwab@linux-m68k.org>
587
588 PR target/47955
589 * config/m68k/m68k.c (m68k_expand_prologue): Set
590 current_function_static_stack_size.
591
c33406f5
JH
5922011-05-02 Jan Hubicka <jh@suse.cz>
593
594 * lto-streamer.c (lto_streamer_cache_insert_1,
595 lto_streamer_cache_lookup, lto_streamer_cache_create,
596 lto_streamer_cache_delete): Use pointer map instead of hashtable.
597 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
598
47c94d21
JM
5992011-05-02 Joseph Myers <joseph@codesourcery.com>
600
601 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
602 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
603 config/m68k/t-opts: New files.
604 * config/m68k/m68k-tables.opt: New file (generated).
605 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
606 extra_options and m68k/t-opts to tmake_file.
607 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
608 (all_isas): Initialize using m68k-isas.def.
609 (all_microarchs): Initialize using m68k-microarchs.def.
610 (m68k_find_selection): Remove.
611 (m68k_handle_option): Don't assert that global structures are in
612 use. Use error_at. Access variables via opts pointer. Don't
613 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
614 directly for -m68020-40 and -m68020-60.
615 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
616 m68k_tune_entry here.
617 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
618 to m68k-opts.h.
619 (m68k_library_id_string): Remove declaration.
4e938ce6 620 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
621 (m68k_library_id_string): New Variable.
622 (march=, mcpu=, mtune=): Use Enum and Var.
623
e562bf36
RG
6242011-05-02 Richard Guenther <rguenther@suse.de>
625
626 * varasm.c (output_constructor_regular_field): Compute zero-based
627 index with double-ints. Make sure to ICE instead of producing
628 wrong code.
629 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
630 in asserts. Properly use a signed type.
631
6bec6c98
UB
6322011-05-02 Uros Bizjak <ubizjak@gmail.com>
633
634 * config/i386/sse.md (V): New mode iterator.
635 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
636 TARGET_SSE2.
637 (V_256): Rename from AVX256MODE.
638 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
639 condition to all users.
640 (VF1): Ditto.
641 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
642 condition to all users.
643 (VF_128): Make V4SF mode unconditional.
644 (VF_256): Rename from AVX256MODEF2P.
645 (VI4F_128): Rename from SSEMODE4S.
646 (VI8F_128): Rename from SSEMODE2D.
647 (VI4F_256): Rename from AVX256MODE8P.
648 (VI8F_256): Rename from AVX256MODE4P.
649 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
650 (ssescalarmodesuffix): Remove SF and DF modes.
651 (SSEMODE124): Remove.
652 (SSEMODE1248): Ditto.
653 (SSEMODEF2P): Ditto.
654 (AVXMODEF2P): Ditto.
655 (AVXMODEFDP): Ditto.
656 (AVXMODEFSP): Ditto.
657 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
658 unconditional.
659 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
660 unconditional.
661 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
662 xop_pcmov_<mode>256. Use V mode iterator.
663
664 Adjust RTX patterns globally for renamed mode attributes.
665
2dfdcb4b
UW
6662011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
667
668 * haifa-sched.c (sched_emit_insn): Emit insn before first
669 non-scheduled insn. Inform back-end about new insn. Add
670 new insn to scheduled_insns list.
671
90bc4623
RG
6722011-05-02 Richard Guenther <rguenther@suse.de>
673
674 PR tree-optimization/48822
675 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
676 (process_scc): Indicate which iteration we start.
677
bc0fe8cb
JH
6782011-05-02 Jan Hubicka <jh@suse.cz>
679
680 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
681 (lto_section_overrun): New.
682 * lto-section-out.c (append_block): Rename to ...
683 (lto_append_block): ... this one; export.
684 (lto_output_1_stream): Move lto lto-streamer.h
685 (lto_output_data_stream): Update.
686 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
687 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
688 functions.
689
f070a9d1
RG
6902011-05-02 Richard Guenther <rguenther@suse.de>
691
692 * tree.c (tree_code_counts): New global array.
693 (record_node_allocation_statistics): Count individual tree codes.
694 (dump_tree_statistics): Dump individual code stats.
695
09dfe187
JH
6962011-05-01 Jan Hubicka <jh@suse.cz>
697
698 * ipa-inline.c (caller_growth_limits): Fix thinko when
699 looking for largest stack frame.
700 * ipa-inline.h (dump_inline_summary): Declare.
701 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
702 on stack usage.
703 (dump_inline_summary): Export.
704 (debug_inline_summary): Declare as DEBUG_FUNCTION.
705
6f76a878
AS
7062011-05-01 Anatoly Sokolov <aesok@post.ru>
707
708 * reginfo.c (memory_move_cost): Change rclass argument type form
709 'enum reg_class' to reg_class_t.
710 * reload.h (memory_move_cost): Update prototype.
711 * postreload.c reload_cse_simplify_set): Change type dclass var to
712 reg_class_t.
713 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
714 Update prototype.
715 (ira_allocate_and_set_costs): Change aclass argument type form
716 'enum reg_class' to reg_class_t.
6bec6c98 717 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
718 Change aclass argument type to reg_class_t.
719 (update_conflict_hard_reg_costs): Change type aclass and pref vars
720 to reg_class_t.
721 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
722 memory_move_cost call.
723
724 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
725 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
726 Change type tmp var to reg_class_t.
727
9a4ac625
JH
7282011-04-30 Jan Hubicka <jh@suse.cz>
729
730 * ipa-inline.c (can_inline_edge_p): Disregard limits when
731 inlining into function with flatten attribute.
732 (want_inline_small_function_p): Be more realistic about inlining
733 cold calls where callee size grows.
734
dd8352ee
JH
7352011-04-30 Jan Hubicka <jh@suse.cz>
736
737 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
738 flags.
739
46e43d2b
AS
7402011-04-30 Anatoly Sokolov <aesok@post.ru>
741
742 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
743 PRINT_OPERAND_PUNCT_VALID_P): Remove.
744 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
745 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
746 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
747 (print_operand): Rename to...
748 (sparc_print_operand): ...this. Make static. Adjust
749 sparc_print_operand function call.
750 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
751 functions.
752
ecb62563
JH
7532011-04-30 Jan Hubicka <jh@suse.cz>
754
6bec6c98 755 PR middle-end/48752
ecb62563
JH
756 * ipa-inline.c (early_inliner): Disable when doing late
757 addition of function.
758
edb9b69e
JJ
7592011-04-30 Jakub Jelinek <jakub@redhat.com>
760
be80a87e
JJ
761 * dwarf2out.c (get_address_mode): New inline.
762 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
763 if not dwarf_strict emit
764 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
765 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
766 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
767 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
768 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
769 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
770 mem_loc_descriptor callers.
771 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
772 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
773 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
774 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
775 (base_types): New variable.
776 (get_base_type_offset, calc_base_type_die_sizes,
777 base_type_for_mode, mark_base_types, base_type_cmp,
778 move_marked_base_types): New functions.
779 (calc_die_sizes): Assert that die_offset is 0 or equal to
780 next_die_offset.
781 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
782 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
783 callers. If not dwarf_strict, call mem_loc_descriptor even for
784 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
785 (gen_subprogram_die): Don't give up on call site parameters
786 with non-integral or large integral modes. Adjust
787 mem_loc_descriptor callers.
788 (prune_unused_types): Call prune_unused_types_mark on base_types
789 vector entries.
790 (resolve_addr): Call mark_base_types.
791 (dwarf2out_finish): Call move_marked_base_types.
792
edb9b69e
JJ
793 PR tree-optimization/48809
794 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
795 type.
796 (gen_inbound_check): Don't compute index_expr - range_min in utype
797 again, instead reuse SSA_NAME initialized in build_arrays.
798 Remove two useless gsi_for_stmt calls.
799
a6545a3d
JL
8002011-04-29 Jeff Law <law@redhat.com>
801
802 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
803
af8bca3c
MJ
8042011-04-29 Martin Jambor <mjambor@suse.cz>
805
806 * cgraph.h (cgraph_postorder): Remove declaration.
807 * ipa-utils.h (ipa_free_postorder_info): Declare.
808 (ipa_reverse_postorder): Likewise.
809 * cgraphunit.c: Include ipa-utils.h.
810 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
811 * ipa-inline.c: Include ipa-utils.h.
812 (ipa_inline): Update call to ipa_reverse_postorder.
813 * ipa-pure-const.c (propagate_pure_const): Update call to
814 ipa_reduced_postorder and ipa_print_order. Call
815 ipa_free_postorder_info to clean up.
816 (propagate_nothrow): Likewise.
817 * ipa-reference.c (propagate): Removed a useless call to
818 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
819 and ipa_print_order. Call ipa_free_postorder_info to clean up.
820 * ipa.c: Include ipa-utils.h.
821 (ipa_profile): Update call to ipa_reverse_postorder.
822 (cgraph_postorder): Moved to...
823 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
824 (ipa_utils_print_order): Renamed to ipa_print_order.
825 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
826 comments.
827 (ipa_free_postorder_info): New function.
828 * passes.c: Include ipa-utils.h.
829 (do_per_function_toporder): Update call to ipa_reverse_postorder.
830 (ipa_write_summaries): Likewise.
831 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
832 (cgraphunit.o): Likewise.
833 (ipa.o): Likewise.
834 (ipa-inline.o): Likewise.
835
b15c64ee
JH
8362011-04-29 Jan Hubicka <jh@suse.cz>
837
838 * gcc.dg/tree-ssa/inline-10.c: New testcase.
839 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
840 * ipa-inline.h (clause_t): Turn into unsigned int.
841 * ipa-inline-analysis.c (add_clause): Do more simplification.
842 (and_predicates): Shortcut more cases.
843 (predicates_equal_p): Move forward; check that clauses are properly
844 ordered.
845 (or_predicates): Shortcut more cases.
846 (edge_execution_predicate): Rewrite as...
847 (set_cond_stmt_execution_predicate): ... this function; handle
848 __builtin_constant_p.
849 (set_switch_stmt_execution_predicate): New .
850 (compute_bb_predicates): New.
851 (will_be_nonconstant_predicate): Update TODO.
852 (estimate_function_body_sizes): Use compute_bb_predicates
853 and free them later, always try to estimate if stmt is constant.
854 (estimate_time_after_inlining, estimate_size_after_inlining):
855 Gracefully handle optimized out edges.
856 (read_predicate): Fix off by one error.
857
a88fdc2a
NP
8582011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
859
860 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
861
d984c8ef
XDL
8622011-04-27 Xinliang David Li <davidxl@google.com>
863
864 * tree-profile.c (init_ic_make_global_vars): Set
865 tls attribute on ic vars.
866 * coverage.c (coverage_end_function): Initialize
867 function_list with zero.
868
45a2c477
RG
8692011-04-29 Richard Guenther <rguenther@suse.de>
870
871 * builtins.c (fold_builtin_classify_type): Use integer_type_node
872 for the type of the result.
873 (fold_builtin_isascii): Likewise.
874 (fold_builtin_toascii): Use integer_type_node where appropriate.
875 (fold_builtin_logb): Likewise.
876 (fold_builtin_frexp): Likewise.
877 (fold_builtin_strstr): Likewise.
878 (fold_builtin_strpbrk): Likewise.
879 (fold_builtin_fputs): Likewise.
880 (fold_builtin_sprintf): Likewise.
881 (fold_builtin_snprintf): Likewise.
882 (fold_builtin_printf): Likewise.
883 (do_mpfr_remquo): Use a proper type for the assigned constant.
884 (do_mpfr_lgamma_r): Likewise.
885 * dwarf2out.c (resolve_one_addr): Use size_int.
886 * except.c (init_eh): Likewise.
887 (assign_filter_values): Use integer_type_node for filter values.
888 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
889 indices.
890 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
891 for EH region numbers.
892 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
893 for the shift amount.
894
eb6c3df1
RG
8952011-04-29 Richard Guenther <rguenther@suse.de>
896
897 * expr.h (expand_shift): Rename to ...
898 (expand_variable_shift): ... this.
899 (expand_shift): Take a constant shift amount.
900 * expmed.c (expand_shift): Rename to ...
901 (expand_variable_shift): ... this.
902 (expand_shift): New wrapper around expand_variable_shift.
903 * expr.c (convert_move, emit_group_load_1, emit_group_store,
904 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
905 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
906 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
907 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
908 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
909 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
910 emit_store_flag_1, emit_store_flag): Likewise.
911 * builtins.c (expand_builtin_signbit): Likewise.
912 * calls.c (load_register_parameters): Likewise.
913 * function.c (assign_parm_setup_block): Likewise.
914 * lower-subreg.c (resolve_shift_zext): Likewise.
915 * optabs.c (widen_bswap, expand_abs_nojump,
916 expand_one_cmpl_abs_nojump, expand_float): Likewise.
917 * spu/spu.c (spu_expand_extv): Likewise.
918 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
919
9f616812
RG
9202011-04-29 Richard Guenther <rguenther@suse.de>
921
922 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
923 for the remapped region number.
924 * predict.c (build_predict_expr): Use integer_type_node for the
925 predict kind.
926 * fold-const.c (fold_binary_loc): Use integer_type_node for
927 the shift amount. Use a proper type for the PLUS_EXPR operand.
928
b823cdfe
MM
9292011-04-29 Michael Matz <matz@suse.de>
930
931 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
932 other trees that just builtins.
933 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
934
413581ba
RG
9352011-04-29 Richard Guenther <rguenther@suse.de>
936
937 * tree-nested.c (get_trampoline_type): Use size_int.
938 (get_nl_goto_field): Likewise.
939 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
940 for all indexes.
941 (lower_eh_constructs_2): Likewise.
942 (lower_resx): Likewise.
943 (lower_eh_dispatch): Likewise.
944 * tree-mudflap.c (mf_build_string): Use size_int.
945 (mudflap_register_call): Use integer_type_node for the flag.
946 (mudflap_enqueue_constant): Use size_int.
947 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
948 instead of rebuilding it.
949
5c04e9f4
RG
9502011-04-29 Richard Guenther <rguenther@suse.de>
951
952 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
953 Handle OBJ_TYPE_REF.
954 (find_func_aliases_for_call): Use it more consistently.
955
5c24671b
AO
9562011-04-29 Alexandre Oliva <aoliva@redhat.com>
957
958 * haifa-sched.c (last_nondebug_scheduled_insn): New.
959 (rank_for_schedule): Use it.
960 (schedule_block): Set it.
961
10adac51
XDL
9622011-04-28 David Li <davidxl@google.com>
963
964 * tree.c (crc32_string): Use crc32_byte.
965 (crc32_byte): New function.
966 * tree.h (crc32_byte): New function.
967 * gcov.c (read_graph_file): Handle new cfg_cksum.
968 (read_count_file): Ditto.
969 * profile.c (instrument_values): Ditto.
970 (get_exec_counts): Ditto.
971 (read_profile_edge_counts): Ditto.
972 (compute_branch_probabilities): Ditto.
973 (compute_value_histograms): Ditto.
974 (branch_prob): Ditto.
975 (end_branch_prob): Ditto.
976 * coverage.c (read_counts_file): Ditto.
977 (get_coverage_counts): Ditto.
978 (tree_coverage_counter_addr): Ditto.
979 (coverage_checksum_string): Ditto.
980 (coverage_begin_output): Ditto.
981 (coverage_end_function): Ditto.
982 (build_fn_info_type): Ditto.
983 (build_fn_info_value): Ditto.
984 * libgcov.c (gcov_exit): Ditto.
985 * gcov-dump.c (tag_function): Ditto.
986 (compute_checksum): Remove.
987
5d6358a5
AM
9882011-04-29 Alan Modra <amodra@gmail.com>
989
990 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
991 unspec plus offset. Tidy macho code.
992
85ad2ef5
MJ
9932011-04-29 Martin Jambor <mjambor@suse.cz>
994
995 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
996 node instead of a decl. Update all callers.
997 * cgraph.h: Update declaration.
998
437f4a00
IR
9992011-04-28 Ira Rosen <ira.rosen@linaro.org>
1000
1001 PR tree-optimization/48765
1002 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
1003 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
1004 to indicate if loop aware SLP is being used. Scan the statements
1005 and update the vectorization factor according to the type of
1006 vectorization before statement analysis.
1007 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
1008 pass it to vect_analyze_loop_operations.
1009 (vectorizable_reduction): Set number of copies to 1 in case of pure
1010 SLP statement.
1011 * tree-vect-stmts.c (vectorizable_conversion,
1012 vectorizable_assignment, vectorizable_shift,
1013 vectorizable_operation, vectorizable_type_demotion,
1014 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
1015 Likewise.
1016 (vectorizable_condition): Move the check that it is not SLP
1017 vectorization before the number of copies check.
1018 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
1019 to vectorize the loop using SLP.
1020
c6fc44f3
JJ
10212011-04-28 Jakub Jelinek <jakub@redhat.com>
1022
1023 PR middle-end/48597
1024 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
1025 inline asm.
1026
6c0170ea
JM
10272011-04-28 Joseph Myers <joseph@codesourcery.com>
1028
1029 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
1030 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
1031 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1032 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1033 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
1034 linux*.h headers.
6bec6c98 1035 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
1036 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1037 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
1038 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 1039 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
1040 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
1041 REG_NAME.
1042 * config/i386/linux.h (REG_NAME): Don't define.
1043 * config/i386/linux64.h (REG_NAME): Don't define.
1044 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
1045 Undefine before defining.
1046
970dabbd
JH
10472011-04-28 Jan Hubicka <jh@suse.cz>
1048
6bec6c98
UB
1049 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
1050 nonconstant_names array.
970dabbd
JH
1051 (estimate_function_body_sizes): Build nonconstant_names array; handle
1052 BUILT_IN_CONSTANT_P.
1053
8d3e3924
RG
10542011-04-28 Richard Guenther <rguenther@suse.de>
1055
1056 PR bootstrap/48804
1057 Revert
1058 2011-04-28 Richard Guenther <rguenther@suse.de>
1059
1060 * tree-ssa-structalias.c (solve_constraints): Build succ graph
1061 as late as possible.
6bec6c98 1062
8576f20a
RG
10632011-04-28 Richard Guenther <rguenther@suse.de>
1064
1065 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
1066 (debug_constraint): Do it here.
1067 (dump_constraints): And here.
1068 (rewrite_constraints): And here.
1069 (dump_constraint_edge): Remove.
1070 (dump_constraint_graph): Rewrite to produce DOT output.
1071 (solve_constraints): Build succ graph as late as possible.
1072 Dump constraint graphs before and after solving.
1073
e38811ce
RG
10742011-04-28 Richard Guenther <rguenther@suse.de>
1075
1076 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1077 New function split out from ...
1078 (find_func_aliases): ... here. Call it.
1079 (find_func_aliases_for_call): Likewise.
1080
fbaf0d0c
GDR
10812011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
1082
1083 * internal-fn.h (internal_fn_name_array): Declare.
1084 (internal_fn_flags_array): Likewise.
1085
cbb734aa
UB
10862011-04-27 Uros Bizjak <ubizjak@gmail.com>
1087
1088 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
1089 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
1090 Move from sse.md.
1091 (ssemodefsuffix): Remove.
1092 (ssevecmodesuffix): New mode attribute.
1093 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
1094 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
1095 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
1096 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
1097 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
1098 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
1099 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
1100 ssemodesuffix mode attribute.
1101 (float splitters): Use ssevecmodesuffix mode attribute.
1102 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
1103 (sseinsmode): Rename from avxvecmode.
1104 (avxsizesuffix): Rename from avxmodesuffix.
1105 (sseintvecmode): Rename from avxpermvecmode.
1106 (ssedoublevecmode): Rename from ssedoublesizemode.
1107 (ssehalfvecmode): Rename from avxhalfvecmode.
1108 (ssescalarmode): Rename from avxscalarmode.
1109 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
1110 templates for ssemodesuffix mode attribute.
1111 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
1112 mode attribute.
1113
1114 Adjust RTX patterns globally for renamed mode attributes.
1115
991278ab
JH
11162011-04-27 Jan Hubcika <jh@suse.cz>
1117
1118 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
1119 * ipa-inline-analysis.c: Include alloc-pool.h.
1120 (edge_predicate_pool): New.
1121 (trye_predicate_p): New function
1122 (false_predicate_p): New function.
1123 (add_clause): Sanity check that false clauses are "optimized";
1124 never add clauses to predicate that is already known to be false.
1125 (and_predicate): Use flase_predicate_p.
1126 (evaulate_predicate): Rename to ...
1127 (evaluate_predicate): ... this one; update all callers; assert
1128 that false is not listed among possible truths.
1129 (dump_predicate): Use true_predicate_p.
1130 (account_size_time): Use false_predicate_p.
1131 (evaulate_conditions_for_edge): Rename to ...
1132 (evaluate_conditions_for_edge) ... this one.
1133 (edge_set_predicate): New function.
1134 (inline_edge_duplication_hook): Duplicate edge predicates.
1135 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 1136 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
1137 (dump_inline_summary): Update.
1138 (estimate_function_body_sizes): Set edge predicates.
1139 (estimate_calls_size_and_time): Handle predicates.
1140 (estimate_callee_size_and_time): Update.
1141 (remap_predicate): Add toplev_predicate; update comment.
1142 (remap_edge_predicates): New function.
1143 (inline_merge_summary): Compute toplev predicate; update.
1144 (read_predicate): New function.
1145 (read_inline_edge_summary): Use it.
1146 (inline_read_section): Likewise.
1147 (write_predicate): New function.
1148 (write_inline_edge_summary): Use it.
1149 (inline_write_summary): Likewise.
1150 (inline_free_summary): Free alloc pool and edge summary vec.
1151
648b5f85
RG
11522011-04-27 Richard Guenther <rguenther@suse.de>
1153
1154 * tree-ssa-structalias.c (changed_count): Remove.
1155 (changed): Use a bitmap.
1156 (unify_nodes): Adjust.
1157 (do_sd_constraint): Likewise.
1158 (do_ds_constraint): Likewise.
1159 (do_complex_constraint): Likewise.
1160 (solve_graph): Likewise.
1161
4d5dcfb2
JH
11622011-04-27 Jan Hubicka <jh@suse.cz>
1163
1164 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
1165
200eb7d2
UB
11662011-04-27 Uros Bizjak <ubizjak@gmail.com>
1167
1168 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
1169 (avx_vperm2f128_*_operand): Ditto.
1170 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
1171 Use avx_vpermilp_parallel in insn condition.
1172 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
1173 Use avx_vperm2f128_parallel in insn condition.
1174
7d6e2521
RG
11752011-04-27 Richard Guenther <rguenther@suse.de>
1176
1177 * Makefile.in (tree-ssa-structalias.o): Remove
1178 gt-tree-ssa-structalias.h dependency.
1179 (GTFILES): Remove tree-ssa-structalias.c.
1180 * tree.c (allocate_decl_uid): New function.
1181 (make_node_stat): Use it.
1182 (copy_node_stat): Likewise.
1183 * tree.h (allocate_decl_uid): Declare.
1184 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
1185 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
1186 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 1187 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
1188 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
1189 (struct heapvar_map): Likewise.
1190 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
1191 heapvar_insert): Likewise.
1192 (make_heapvar_for): Rename to ...
1193 (make_heapvar): ... this. Simplify.
1194 (fake_var_decl_obstack): New global var.
1195 (build_fake_var_decl): New function.
1196 (make_constraint_from_heapvar): Adjust.
1197 (handle_lhs_call): Likewise.
1198 (create_function_info_for): Likewise.
1199 (intra_create_variable_infos): Likewise.
1200 (init_alias_vars): Allocate fake_var_decl_obstack.
1201 (init_alias_heapvars, delete_alias_heapvars): Remove.
1202 (compute_points_to_sets): Do not call init_alias_heapvars.
1203 (ipa_pta_execute): Likewise.
1204 (delete_points_to_sets): Free fake_var_decl_obstack.
1205
526ed6c2
UW
12062011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1207
1208 * config/spu/divmovti4.c (union qword_UTItype): New data type.
1209 (si_from_UTItype, si_to_UTItype): New functions.
1210 (__udivmodti4): Use them to implement type-punning.
1211 * config/spu/multi3.c (union qword_TItype): New data type.
1212 (si_from_TItype, si_to_TItype): New functions.
1213 (__multi3): Use them to implement type-punning.
1214
c187d33c
UW
12152011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1216
1217 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
1218
40982661
JH
12192011-04-27 Jan Hubicka <jh@suse.cz>
1220
1221 * ipa-prop.c (function_insertion_hook_holder): New holder.
1222 (ipa_add_new_function): New function.
200eb7d2
UB
1223 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1224 Register/deregister holder.
40982661 1225
9aef53ee
RG
12262011-04-27 Richard Guenther <rguenther@suse.de>
1227
1228 PR tree-optimization/48772
200eb7d2 1229 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 1230
f63d806d
RG
12312011-04-27 Richard Guenther <rguenther@suse.de>
1232
1233 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1234 TARGET_MEM_REF handling.
1235
e1ea7451
NC
12362011-04-27 Nick Clifton <nickc@redhat.com>
1237
9b5db25d
NC
1238 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1239 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1240 (REG_CLASS_NAMES): Likewise.
1241 (REG_CLASS_CONTENTS): Likewise.
1242 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1243 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1244 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
1245 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
1246 (EVEN_REGS): New macro. Alias for QUAD_REGS.
1247 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
1248 duplicate register classes.
97d20907 1249 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
1250 (frv_register_move_cost): Likewise.
1251
e1ea7451
NC
1252 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1253 end of the regno_reg_class array.
1254
5c2f94b4
JJ
12552011-04-27 Jakub Jelinek <jakub@redhat.com>
1256
1257 PR c/48742
1258 * c-typeck.c (build_binary_op): Don't wrap arguments if
1259 int_operands is true.
1260
57a944d7
KK
12612011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
1262
1263 PR target/48767
1264 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1265 targetm.calls.must_pass_in_stack for void type.
1266
898b8927
JH
12672011-04-26 Jan Hubicka <jh@suse.cz>
1268
1269 * cgraphbuild.c (build_cgraph_edges): Update call
1270 of cgraph_create_edge and cgraph_create_indirect_edge.
1271 * cgraph.c (cgraph_create_edge_including_clones,
1272 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
1273 cgraph_update_edges_for_call_stmt_node): Do not take nest
1274 argument; do not initialize call_stmt_size/time.
1275 (dump_cgraph_node): Do not dump nest.
1276 (cgraph_clone_edge): Do not take loop_nest argument;
1277 do not propagate it; do not clone call_stmt_size/time.
1278 (cgraph_clone_node): Likewise.
1279 (cgraph_create_virtual_clone): Update.
1280 * cgraph.h (struct cgraph_edge): Remove
1281 call_stmt_size/call_stmt_time/loop_nest.
1282 (cgraph_create_edge, cgraph_create_indirect_edge,
1283 cgraph_create_edge_including_clones, cgraph_clone_node): Update
1284 prototype.
1285 * tree-emutls.c (gen_emutls_addr): Update.
1286 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1287 loop_nest; handle indirect calls, too.
1288 (clone_inlined_nodes): Do not care about updating inline summaries.
1289 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1290 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1291 stream call_stmt_size/call_stmt_time/loop_nest.
1292 * ipa-inline.c (edge_badness): Update.
1293 (ipa_inline): dump summaries after inlining.
1294 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 1295 New.
898b8927
JH
1296 (inline_edge_summary): New function.
1297 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1298 (inline_edge_removal_hook): Handle edge summaries.
1299 (inline_edge_duplication_hook): New hook.
1300 (inline_summary_alloc): Alloc hooks.
1301 (initialize_growth_caches): Do not register removal hooks.
1302 (free_growth_caches); Do not free removal hook.
1303 (dump_inline_edge_summary): New function.
1304 (dump_inline_summary): Use it.
1305 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1306 (inline_update_callee_summaries): New function.
1307 (inline_merge_summary): Use it.
1308 (do_estimate_edge_time, do_estimate_edge_growth): Update.
1309 (read_inline_edge_summary): New function.
1310 (inline_read_section): Use it.
1311 (write_inline_edge_summary): New function.
1312 (inline_write_summary): Use it.
1313 (inline_free_summary): Free edge new holders.
1314 * tree-inline.c (copy_bb): Update.
1315
ffa03772
JM
13162011-04-26 Jason Merrill <jason@redhat.com>
1317
1318 * tree-eh.c (lower_try_finally_switch): Create the label along with
1319 the CASE_LABEL_EXPR.
1320
6d7b45ad
DM
13212011-04-26 David S. Miller <davem@davemloft.net>
1322 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1323
1324 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1325 * configure: Regenerate.
1326
df10b6d4
MM
13272011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1328
1329 PR target/48258
1330 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1331 reduction.
1332 (VEC_reduc): New code iterator and splitters for vector reduction.
1333 (VEC_reduc_name): Ditto.
1334 (VEC_reduc_rtx): Ditto.
1335 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1336 (reduc_<VEC_reduc_name>_v4sf): Ditto.
1337
1338 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1339 support for extracting SF on VSX.
1340
1341 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1342 generating xscvspdp.
1343 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1344 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1345 double add, minimum, maximum vector reduction.
1346 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1347 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1348 optimize double vector reduction.
1349 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1350
35a5db04
JM
13512011-04-26 Joseph Myers <joseph@codesourcery.com>
1352
1353 * config/fr30/fr30.h (inhibit_libc): Don't define.
1354 * config/m32r/m32r-protos.h: Correct comment.
1355 * config/v850/v850.h (GHS_default_section_names,
1356 GHS_current_section_names): Use tree, not union tree_node *.
1357
2f964ad6
XDL
13582011-04-26 Xinliang David Li <davidxl@google.com>
1359
200eb7d2 1360 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
1361 * c-family/c-opts.c (c_common_handle_option): Set
1362 warn_maybe_uninitialized.
1363 * opts.c (common_handle_option): Ditto.
1364 * common.opt: New option.
1365 * tree-ssa.c (warn_uninit): Add one more parameter.
1366 (warn_uninitialized_var): Pass warning code.
1367 * tree-flow.h: Interface change.
1368
1369
9c7bd91a
RO
13702011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1371
200eb7d2 1372 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
1373 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1374 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1375
c2f36e21
RO
13762011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1377
1378 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1379 * config/mips/mips.opt (mmips-tfile): Remove.
1380
1381 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1382 mips-tdump reference to ...
200eb7d2 1383 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
1384 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1385 reference by Tru64 UNIX.
1386
2c9da85b
JJ
13872011-04-26 Jakub Jelinek <jakub@redhat.com>
1388
0c5f6539
JJ
1389 PR debug/48768
1390 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1391 is error_mark_node, set value to NULL.
1392
2c9da85b
JJ
1393 PR tree-optimization/48734
1394 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1395 if return value from maybe_fold_*_comparsions isn't something
1396 the code is prepared to handle.
1397
77fa1d54
UB
13982011-04-26 Uros Bizjak <ubizjak@gmail.com>
1399
1400 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1401 mode check.
1402 (ext_QIreg_nomode_operands): Remove.
1403 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1404 (*andsi_1): Ditto.
1405 (*andhi_1): Ditto.
1406
0e2a6c2b
AS
14072011-04-26 Andrew Stubbs <ams@codesourcery.com>
1408
1409 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1410
961562d8
RB
14112011-04-26 Richard Guenther <rguenther@suse.de>
1412
1413 * c-typeck.c (build_unary_op): Do not expand array-refs via
1414 pointer arithmetic. Only adjust qualifiers for function types.
1415
14162011-04-26 Richard Guenther <rguenther@suse.de>
1417
1418 PR middle-end/48694
1419 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1420 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
1421 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
1422 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 1423
a0d260fc
PC
14242011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
1425
77fa1d54 1426 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
a0d260fc 1427 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
6bec6c98 1428 * doc/extend.texi: Document __underlying_type.
a0d260fc 1429
4d583bb9
SB
14302011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
1431
1432 * config/rs6000/titan.md (automata_option "progress"): Remove.
1433
1f3fcdc3
JL
14342011-04-25 Jeff Law <law@redhat.com>
1435
1436 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1437
e5b0dad8
JK
14382011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1439
1440 * system.h (ENUM_BITFIELD): Remove.
1441
5157a881 14422011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 1443 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
1444
1445 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1446 for STORE_FLAG_VALUE==-1 case.
1447
ed4c109e
RS
14482011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
1449
1450 PR target/43804
1451 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1452 LEGITIMATE_PIC_OPERAND_P.
1453
f3181aa2
JH
14542011-04-24 Jan Hubicka <jh@suse.cz>
1455
1456 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1457 WPA hack.
77fa1d54
UB
1458 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1459 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1460 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
1461 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1462 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1463 Sanity check predicate length.
1464 (remap_predicate): Likewise; sanity check jump functions.
1465 (inline_read_section, inline_write_summary): Sanity check
1466 predicate length.
1467
5307cbaa
PC
14682011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1469
1470 PR other/48748
1471 * doc/extend.texi (Type Traits): Document __is_standard_layout,
1472 __is_literal_type, and __is_trivial; update throughout about
1473 possibly cv-qualified void types.
1474
bebd5f99
GP
14752011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
1476
1477 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1478 testsuite and make it version agnostic.
1479
7ee28a74
JH
14802011-04-22 Jan Hubicka <jh@suse.cz>
1481
1482 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1483
16997bc0
JJ
14842011-04-23 Jakub Jelinek <jakub@redhat.com>
1485
1486 PR c/48685
1487 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1488 to VOID_TYPE even around MODIFY_EXPR.
1489
f94d4ab1
MS
14902011-04-22 Mike Stump <mikestump@comcast.net>
1491
1a84c183 1492 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
1493 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1494 comment.
1495
632b4f8e
JH
14962011-04-22 Jan Hubicka <jh@suse.cz>
1497
1498 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
1499 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1500 ipa-prop.c; update all uses.
632b4f8e 1501 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
1502 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1503 merge summary of inlined function into former caller.
632b4f8e
JH
1504 * ipa-inline.c (max_benefit): Remove.
1505 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
1506 (update_caller_keys): Use
1507 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
1508 (update_callee_keys): Likewise.
1509 (update_all_callee_keys): Likewise.
77fa1d54
UB
1510 (inline_small_functions): Do not collect max_benefit; do not reset
1511 estimated_growth; call free_growth_caches and initialize_growth_caches.
1512 * ipa-inline.h (struct condition, type clause_t, struct predicate,
1513 struct size_time_entry): New structures.
632b4f8e 1514 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
1515 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1516 and estimated_growth.
632b4f8e
JH
1517 (edge_growth_cache_entry): New structure.
1518 (node_growth_cache, edge_growth_cache): New global vars.
1519 (estimate_growth): Turn into inline.
1520 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1521 initialize_growth_caches, free_growth_caches): Declare.
1522 (estimate_edge_growth): Rewrite.
1523 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
1524 (reset_node_growth_cache, reset_edge_growth_cache): New inline
1525 functions.
632b4f8e
JH
1526 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1527 (NUM_CONDITIONS): New constant.
1528 (predicate_conditions): New enum.
1529 (IS_NOT_CONSTANT): New constant.
1530 (edge_removal_hook_holder): New var.
1531 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
1532 (true_predicate, single_cond_predicate, false_predicate,
1533 not_inlined_predicate, add_condition, add_clause, and_predicates,
1534 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1535 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
1536 evaulate_conditions_for_edge): New functions.
1537 (inline_summary_alloc): Move to heap.
1538 (inline_node_removal_hook): Clear condition and entry vectors.
1539 (inline_edge_removal_hook): New function.
1540 (initialize_growth_caches, free_growth_caches): New function.
1541 (dump_inline_summary): Update.
1542 (edge_execution_predicate): New function.
1543 (will_be_nonconstant_predicate): New function.
1544 (estimate_function_body_sizes): Compute BB and constantness predicates.
1545 (compute_inline_parameters): Do not clear estimated_growth.
1546 (estimate_edge_size_and_time): New function.
1547 (estimate_calls_size_and_time): New function.
1548 (estimate_callee_size_and_time): New function.
1549 (remap_predicate): New function.
1550 (inline_merge_summary): New function.
1551 (do_estimate_edge_time): New function based on...
1552 (estimate_edge_time): ... this one.
1553 (do_estimate_edge_growth): New function.
1554 (do_estimate_growth): New function based on....
1555 (estimate_growth): ... this one.
1556 (inline_analyze_function): Analyze after deciding on jump functions.
1557 (inline_read_section): New function.
1558 (inline_read_summary): Use it.
1559 (inline_write_summary): Write all the new data.
1560 * ipa-prop.c (ipa_get_param_decl_index): Export.
1561 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
1562 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1563 Declare.
1564 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
1565 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1566 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1567 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1568 cgraph_edge_inlinable_p): Remove.
1569 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
1570 (cgraph_process_new_functions): Update call of
1571 compute_inline_parameters.
632b4f8e 1572
1df5b0db
RG
15732011-04-22 Richard Guenther <rguenther@suse.de>
1574
1575 * tree.c (build_int_cst): Properly create canonicalized integer
1576 constants.
1577 (build_int_cst_type): Remove scary comments.
1578
ae01169c
XDL
15792011-04-22 Xinliang David Li <davidxl@google.com>
1580
1581 * toplev.c (process_options): Enable -Werror=coverage-mismatch
1582 by default when -Wno-error is not specified.
1583 * opts-global.c (decode_options): Remove call to
1584 control_warning_options.
1585
93dfac24
JJ
15862011-04-22 Jakub Jelinek <jakub@redhat.com>
1587
1588 PR tree-optimization/48717
1589 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1590 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1591
1b5f5069
JM
15922011-04-22 Joseph Myers <joseph@codesourcery.com>
1593
1594 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1595 definition where used.
1596
144f4153
JJ
15972011-04-22 Jakub Jelinek <jakub@redhat.com>
1598
1599 PR c/48716
1600 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1601 TREE_STATIC variables declared inside of some OpenMP construct.
1602
f9fd305b
MJ
16032011-04-22 Martin Jambor <mjambor@suse.cz>
1604
1605 PR middle-end/48585
1d284ec5 1606 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 1607
49819fef
AM
16082011-04-22 Alexander Monakov <amonakov@ispras.ru>
1609
1610 PR c/36750
1611 * c-typeck.c (pop_init_level): Do not warn about initializing
1612 with ` = {0}'.
1613
401f6699
AM
16142011-04-22 Alan Modra <amodra@gmail.com>
1615
1616 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
1617 when returning call_cookie.
1618 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
1619 pointers, to functions with no more vector args than the current
1620 function, and some non-local calls for ABI_V4.
1621 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
1622 sibcall_nonlocal_aix64): Combine to ..
1623 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
1624 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
1625 (sibcall_value_nonlocal_aix<mode>): ..likewise.
1626 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
1627 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
1628 operand.
1629 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
1630 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
1631 sibcall_value_symbolic_64): Delete.
1632
903d1e67
XDL
16332011-04-21 Xinliang David Li <davidxl@google.com>
1634
1635 * cgraph.h: Remove pid.
1636 * cgraph.c: Remove pid.
1637 * value-prof.c (init_node_map): New function.
1638 (del_node_map): New function.
1639 (find_func_by_funcdef_no): New function.
1640 (gimple_ic_transform): Call new function.
1641 * cgraphunit.c (cgraph_finalize_function): Remove pid.
1642 * function.c (get_last_funcdef_no): New function.
1643 * function.h (get_last_funcdef_no): New function.
1644 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1645 to libgcov function.
1646 (tree-profiling): Call node map init and delete function.
1647
7378e95f
ILT
16482011-04-21 Ian Lance Taylor <iant@google.com>
1649
1650 * godump.c (go_format_type): Use exported Go name for anonymous
1651 field name.
1652
e84a6fcf
NF
16532011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1654
1655 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
1656 Call builtin_function_type_list instead of builtin_function_type.
1657 (UNARY, BINARY, TRINARY, QUAD): Likewise.
1658
4fe058e2
NF
16592011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1660
1661 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
1662 build_function_type_list instead of build_function_type.
1663 Delete variable `endlink'.
1664
1ba0a2d2
NF
16652011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1666
1667 * config/s390/s390.c (s390_init_builtins): Call
1668 build_function_type_list instead of build_function_type.
1669
c0676219
NF
16702011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1671
1672 * config/ia64/ia64.c (ia64_init_builtins): Call
1673 build_function_type_list instead of builtin_function_type.
1674
6ddfda8a
ER
16752011-04-21 Easwaran Raman <eraman@google.com>
1676
3a6448ea 1677 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
1678 (add_stack_var): ...and its reference here...
1679 (expand_stack_vars): ...and here.
1680 (stack_var_cmp): Sort by descending order of size.
1681 (partition_stack_vars): Change heuristic.
1d284ec5 1682 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
1683 (dump_stack_var_partition): Add newline after each partition.
1684
23756963
DA
16852011-04-21 Dimitrios Apostolou <jimis@gmx.net>
1686 Jeff Law <law@redhat.com>
1687
77fa1d54 1688 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
1689 * gengtype.c (matching_file_name_substitute): Likewise.
1690
aa2a43d2
RG
16912011-04-21 Richard Guenther <rguenther@suse.de>
1692
1693 PR lto/48703
1d284ec5 1694 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 1695
4d931f41
EB
16962011-04-21 Eric Botcazou <ebotcazou@adacore.com>
1697
1698 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
1699
f103fa7a
RG
17002011-04-21 Richard Guenther <rguenther@suse.de>
1701
1702 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
1703 file name.
1704
e19f6650
RG
17052011-04-21 Richard Guenther <rguenther@suse.de>
1706
1707 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1708 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
1709 Use DECL_P, not SSA_VAR_P.
1710 (ptr_derefs_may_alias_p): Likewise.
1711 (ptr_deref_may_alias_ref_p_1): Likewise.
1712 (decl_refs_may_alias_p): Likewise.
1713 (refs_may_alias_p_1): Likewise.
1714 (ref_maybe_used_by_call_p_1): Likewise.
1715 (call_may_clobber_ref_p_1): Likewise.
1716 (indirect_ref_may_alias_decl_p): Assume indirect refrences
1717 are either MEM_REF or TARGET_MEM_REF.
1718 (indirect_refs_may_alias_p): Likewise.
1719 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
1720 for MEM_EXPR of indirect calls.
1721
9d1831bb
TG
17222011-04-21 Tristan Gingold <gingold@adacore.com>
1723
1724 * vmsdbgout.c (write_srccorr): Compute file length from the string.
1725 (dst_file_info_struct): Remove flen field.
1726 (lookup_filename): Remove code that set flen field.
1727
f199c029
TG
17282011-04-21 Tristan Gingold <gingold@adacore.com>
1729
1730 * config/ia64/ia64.c (ia64_start_function): Add a guard.
1731
2894086e
UB
17322011-04-21 Uros Bizjak <ubizjak@gmail.com>
1733
1734 PR target/48708
1735 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
1736 vec_extract and vec_concat for non-SSE4_1 targets.
1737
53f94a5c
RG
17382011-04-21 Richard Guenther <rguenther@suse.de>
1739
1740 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
1741 return statements.
1742
f0dca5ba
JM
17432011-04-21 Joseph Myers <joseph@codesourcery.com>
1744
1745 * config/i386/cygming.h (union tree_node, TREE): Don't define or
1746 undefine.
1747 (FILE): Don't undefine.
1748
984514ac
JM
17492011-04-21 Joseph Myers <joseph@codesourcery.com>
1750
1751 * config/alpha/alpha.c (struct machine_function): Use rtx, not
1752 struct rtx_def *.
1753 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
1754 struct rtx_def *.
1755 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 1756 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
1757 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
1758 rtx_def *.
1759 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
1760 definitions where used.
1761 * config/microblaze/microblaze.h (struct microblaze_args): Use
1762 rtx, not struct rtx_def *.
1763 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
1764 rtx_def *.
2894086e
UB
1765 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
1766 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
1767 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
1768 not struct rtx_def *.
1769 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
1770 struct rtx_def *.
1771 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
1772 rtx_def *.
2894086e 1773 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 1774
0b5a2724
RS
17752011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1776
1777 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
1778 operand_equal_p to compare DR_BASE_ADDRESSes.
1779 (vect_check_interleaving): Likewise.
1780
4b18d683
RS
17812011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1782
1783 PR target/46329
1784 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
1785 for all Neon struct constants.
1786
1a627b35
RS
17872011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1788
1789 * target.def (legitimate_constant_p): New hook.
1790 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
1791 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
1792 * doc/tm.texi: Regenerate.
1793 * hooks.h (hook_bool_mode_rtx_true): Declare.
1794 * hooks.c (hook_bool_mode_rtx_true): Define.
1795 * system.h (LEGITIMATE_CONSTANT_P): Poison.
1796 * calls.c (precompute_register_parameters): Replace uses of
1797 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
1798 (emit_library_call_value_1): Likewise.
1799 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
1800 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
1801 * ira-costs.c (scan_one_insn): Likewise.
1802 * recog.c (general_operand, immediate_operand): Likewise.
1803 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
1804 * reload1.c (init_eliminable_invariants): Likewise.
1805
1806 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
1807 mode argument.
1808 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
1809 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
1810 argument.
1811 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1812 * config/alpha/predicates.md (input_operand): Update call to
1813 alpha_legitimate_constant_p.
1814
1815 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
1816 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
1817 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
1818 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1819 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
1820 (arm_legitimate_constant_p): New functions.
1821 (arm_cannot_force_const_mem): Make static.
1822
1823 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
1824
1825 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
1826 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
1827 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
1828 instead of bfin_legitimate_constant_p.
1829 (bfin_legitimate_constant_p): Make static. Add a mode argument.
1830 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1831
1832 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
1833
1834 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
1835
1836 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
1837 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
1838 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1839 (frv_legitimate_constant_p): Make static. Add a mode argument.
1840
1841 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
1842 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
1843 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
1844
1845 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
1846 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
1847 * config/i386/i386.c (legitimate_constant_p): Rename to...
1848 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
1849 argument.
1850 (ix86_cannot_force_const_mem): Update accordingly.
1851 (ix86_legitimate_address_p): Likewise.
1852 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1853 * config/i386/i386.md: Update commentary.
1854
1855 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
1856 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
1857 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1858 (ia64_legitimate_constant_p): Make static. Add a mode argument.
1859
1860 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
1861
1862 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
1863 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
1864 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1865 (lm32_legitimate_constant_p): Make static. Add a mode argument.
1866
1867 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
1868 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
1869 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
1870
1871 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
1872 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1873 (m32r_legitimate_constant_p): New function.
1874
1875 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
1876 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
1877 LEGITIMATE_CONSTANT_P.
1878 (LEGITIMATE_CONSTANT_P): Delete.
1879 * config/m68k/m68k.c (m68k_expand_prologue): Call
1880 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
1881 (m68k_legitimate_constant_p): New function.
1882 * config/m68k/m68k.md: Update comments.
1883
1884 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
1885 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1886 (mcore_legitimate_constant_p): New function.
1887
1888 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
1889 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
1890 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
1891 Add a mode argument.
1892 (mep_legitimate_address): Update accordingly.
1893 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1894
1895 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
1896 Delete.
1897 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
1898 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
1899 static. Check OP's mode for VOIDmode.
1900 (microblaze_legitimate_constant_p): New function.
1901 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1902
1903 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
1904 * config/mips/mips.c (mips_legitimate_constant_p): New function.
1905 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
1906 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1907 * config/mips/predicates.md: Update comments.
1908
1909 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
1910 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
1911 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1912 (mmix_legitimate_constant_p): Make static, return a bool, and take
1913 a mode argument.
1914 (mmix_print_operand_address): Update accordingly.
1915
1916 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
1917 Delete.
1918 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
1919 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
1920 static. Add a mode argument.
1a627b35
RS
1921 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1922
1923 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
1924
1925 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
1926 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1927 (pa_legitimate_constant_p): New function.
1928
1929 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
1930
1931 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
1932 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1933 (pdp11_legitimate_constant_p): New function.
1934
1935 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
1936 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1937 (rs6000_legitimate_constant_p): New function.
1938
1939 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
1940 (rx_legitimate_constant_p): ...this.
1941 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
1942 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
1943 (rx_legitimate_constant_p): ...this.
1944 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1945 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
1946
1947 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
1948 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
1949 * config/s390/s390.c (legitimate_constant_p): Rename to...
1950 (s390_legitimate_constant_p): ...this. Make static, return a bool,
1951 and add a mode argument.
1952 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1953
1954 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
1955
1956 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
1957 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1958 (sh_legitimate_constant_p): New function.
1959
1960 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
1961 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
1962 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1963 (legitimate_constant_p): Rename to...
1964 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
1965 argument.
1966 (constant_address_p): Update accordingly.
1967
1968 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
1969 argument and return a bool.
1970 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
1971 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1972 (spu_legitimate_constant_p): Add a mode argument and return a bool.
1973 (spu_rtx_costs): Update accordingly.
1974 * config/spu/predicates.md (vec_imm_operand): Likewise.
1975
1976 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
1977
1978 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
1979 * config/v850/v850.c (v850_legitimate_constant_p): New function.
1980 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1981
1982 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
1983 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
1984 * config/vax/vax.c (legitimate_constant_p): Likewise.
1985
1986 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
1987 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1988 (xtensa_legitimate_constant_p): New function.
1989
fbbf66e7
RS
19902011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1991
1992 * target.def (cannot_force_const_mem): Add a mode argument.
1993 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
1994 * doc/tm.texi: Regenerate.
1995 * hooks.h (hook_bool_mode_rtx_false): Declare.
1996 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
1997 (hook_bool_mode_const_rtx_true): Likewise.
1998 (hook_bool_mode_rtx_false): New function.
1999 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
2000 to be non-VOID. Update call to cannot_force_const_mem.
2001 (find_reloads): Update accordingly.
2002 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
2003 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
2004 argument.
2005 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
2006 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
2007 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
2008 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
2009 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
2010 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
2011 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
2012 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2013 (m68k_cannot_force_const_mem): ...this new function.
2014 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
2015 argument.
2016 (mips_const_insns, mips_legitimize_const_move): Update calls.
2017 (mips_secondary_reload_class): Likewise.
2018 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
2019 (pa_cannot_force_const_mem): ...this new function.
2894086e 2020 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
2021 (rs6000_cannot_force_const_mem): ...this new function.
2022 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
2023 argument.
2024 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
2025 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
2026 to...
2027 (xtensa_cannot_force_const_mem): ...this new function.
2028
b861891b
NF
20292011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2030
2031 * config/mips/mips.c (mips16_build_function_stub): Call
2032 build_function_type_list instead of build_function_type.
2033 (mips16_build_call_stub): Likewise.
2034
34149ed5
NF
20352011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2036
2037 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
2038 instead of build_function_type.
2039
12526412
NF
20402011-04-20 Nathan Froyd <froydnj@codesourcery.com>
2041
2042 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
2043 instead of build_function_type.
2044
3b84d61f
UB
20452011-04-20 Uros Bizjak <ubizjak@gmail.com>
2046
2047 PR target/48678
2048 * config/i386/i386.md (insv): Change operand 0 constraint to
2049 "register_operand". Change operand 1 and 2 constraint to
2050 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
2051 * config/i386/sse.md (sse4_1_pinsrb): Export.
2052 (sse2_pinsrw): Ditto.
2053 (sse4_1_pinsrd): Ditto.
2054 (sse4_1_pinsrq): Ditto.
2055 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
2056 * config/i386/i386.c (ix86_expand_pinsr): New.
2057
4a25752b
ER
20582011-04-20 Easwaran Raman <eraman@google.com>
2059
2060 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
2061 containing union type only with -fstrict-aliasing.
2062
04695783
JM
20632011-04-20 Jim Meyering <meyering@redhat.com>
2064
2065 Remove useless if-before-free tests.
2066 * calls.c (expand_call, save_area): Likewise.
2067 * cfgcleanup.c (try_forward_edges): Likewise.
2068 * collect2.c (collect_execute): Likewise.
2069 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
2070 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
2071 * coverage.c (coverage_checksum_string): Likewise.
2072 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
2073 * cselib.c (cselib_init): Likewise.
2074 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
2075 (df_set_clean_cfg): Likewise.
2076 * function.c (free_after_compilation): Likewise.
2077 * gcc.c (do_spec_1, main): Likewise.
2078 * gcov.c (create_file_names): Likewise.
2079 * gensupport.c (identify_predicable_attribute): Likewise.
2080 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
2081 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
2082 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
2083 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
2084 * ipa-pure-const.c (local_pure_const): Likewise.
2085 * ipa-reference.c (propagate): Likewise.
2086 * ira-costs.c (free_ira_costs): Likewise.
2087 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
2088 * matrix-reorg.c (mat_free): Likewise.
2089 * prefix.c (get_key_value): Likewise.
2090 * profile.c (compute_value_histograms): Likewise.
2091 * reload1.c (free_reg_equiv): Likewise.
2092 * sched-deps.c (free_deps): Likewise.
2093 * sel-sched-ir.c (fence_clear): Likewise.
2094 * sese.c (set_rename, if_region_set_false_region): Likewise.
2095 * tree-data-ref.c (free_rdg): Likewise.
2096 * tree-eh.c (lower_try_finally): Likewise.
2097 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
2098 * tree-ssa-live.c (delete_var_map): Likewise.
2099 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
2100 * tree-ssa-pre.c (phi_trans_add): Likewise.
2101
6788475a
JJ
21022011-04-20 Jakub Jelinek <jakub@redhat.com>
2103
2104 PR tree-optimization/48611
2105 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
2106 beyond ERT_MUST_NOT_THROW region.
2107
0eda4033
CM
21082011-04-20 Catherine Moore <clm@codesourcery.com>
2109
2110 * config/mips/mips.opt (mfix-24k): New.
2111 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
2112 * config/mips/mips.md (length): Increase by 4 for stores if
2113 fixing 24K errata.
2114 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
2115 all noreorder if fixing 24K errata.
2116 * doc/invoke.texi: Document mfix-24k.
2117
01475747
CLT
21182011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
2119
2120 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 2121 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 2122
bc2c1a60
AS
21232011-04-20 Andrew Stubbs <ams@codesourcery.com>
2124
2125 * config/arm/arm.c (arm_gen_constant): Move movw support ....
2126 (const_ok_for_op): ... to here.
2127
583722ee
KT
21282011-04-20 Kai Tietz <ktietz@redhat.com>
2129
2894086e
UB
2130 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
2131 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 2132
422c0989
AS
21332011-04-20 Andrew Stubbs <ams@codesourcery.com>
2134
2135 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
2136
d7978bff
RG
21372011-04-20 Richard Guenther <rguenther@suse.de>
2138
2139 PR tree-optimization/47892
2140 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
2141 are if-convertible.
2142
818412ba
EB
21432011-04-20 Eric Botcazou <ebotcazou@adacore.com>
2144
2145 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
2146
b501ce4e
TG
21472011-04-20 Tristan Gingold <gingold@adacore.com>
2148
2149 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
2150
516edfdd
GJL
21512011-04-20 Georg-Johann Lay <avr@gjlay.de>
2152
2153 PR target/18145
2154
2155 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
2156 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
2157 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2158 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
2159 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
2160
2161 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
2162 New prototype.
2163
2164 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
2165 (avr_asm_named_section, avr_asm_output_aligned_common,
2166 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
2167 New functions to update...
2168 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
2169 (avr_asm_init_sections): Overwrite section callbacks for
2170 data_section, bss_section.
2171 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
2172 from here to...
2173 (avr_file_end): ...here.
2174
dafc9511
RG
21752011-04-20 Richard Guenther <rguenther@suse.de>
2176
2177 PR middle-end/48695
2178 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 2179 objects and types here. Adjust for their offset before comparing.
dafc9511 2180
1da0876c
RS
21812011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2182
2183 * tree-vect-stmts.c (vectorizable_store): Only chain one related
2184 statement per copy.
2185
25583c4f
RS
21862011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
2187
2188 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
2189 (GIMPLE_H): Include $(INTERNAL_FN_H).
2190 (OBJS-common): Add internal-fn.o.
2191 (internal-fn.o): New rule.
2192 * internal-fn.def: New file.
2193 * internal-fn.h: Likewise.
2194 * internal-fn.c: Likewise.
2195 * gimple.h: Include internal-fn.h.
2196 (GF_CALL_INTERNAL): New gf_mask.
2197 (gimple_statement_call): Put fntype into a union with a new
2198 internal_fn field.
2199 (gimple_build_call_internal): Declare.
2200 (gimple_build_call_internal_vec): Likewise.
2201 (gimple_call_same_target_p): Likewise.
2202 (gimple_call_internal_p): New function.
2203 (gimple_call_internal_fn): Likewise.
2204 (gimple_call_fntype): Return null for internal calls.
2205 (gimple_call_set_fntype): Assert that the function is not internal.
2206 (gimple_call_set_fn): Likewise.
2207 (gimple_call_set_fndecl): Likewise.
2208 (gimple_call_set_internal_fn): New function.
2209 (gimple_call_addr_fndecl): Handle null functions.
2210 (gimple_call_return_type): Likewise null types.
2211 * gimple.c (gimple_build_call_internal_1): New function.
2212 (gimple_build_call_internal): Likewise.
2213 (gimple_build_call_internal_vec): Likewise.
2214 (gimple_call_same_target_p): Likewise.
2215 (gimple_call_flags): Handle calls to internal functions.
2216 (gimple_call_fnspec): New function.
2217 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
2218 (gimple_has_side_effects): Handle null functions.
2219 (gimple_rhs_has_side_effects): Likewise.
2220 (gimple_call_copy_skip_args): Handle calls to internal functions.
2221 * cfgexpand.c (expand_call_stmt): Likewise.
2222 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2223 * gimple-fold.c (gimple_fold_call): Handle null functions.
2224 (gimple_fold_stmt_to_constant_1): Don't fold
2225 calls to internal functions.
2226 * gimple-low.c (gimple_check_call_args): Handle calls to internal
2227 functions.
2228 * gimple-pretty-print.c (dump_gimple_call): Likewise.
2229 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2230 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2231 (do_warn_unused_result): Likewise.
2232 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2233 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2234 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2235 the target of a call.
2236 (initialize_hash_element): Update accordingly.
2237 (hashable_expr_equal_p): Use gimple_call_same_target_p.
2238 (iterative_hash_hashable_expr): Handle calls to internal functions.
2239 (print_expr_hash_elt): Likewise.
2240 * tree-ssa-pre.c (can_value_number_call): Likewise.
2241 (eliminate): Handle null functions.
2242 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2243 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2244 (find_func_aliases): Likewise.
2245 * value-prof.c (gimple_ic_transform): Likewise.
2246 (gimple_indirect_call_to_profile): Likewise.
2247 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2248 * lto-streamer-out.c (output_gimple_stmt): Likewise.
2249
1a3118e9
JH
22502011-04-19 Jan Hubicka <jh@suse.cz>
2251
2252 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
2253 * ipa-inline.c (inline_small_functions): Compute summaries first,
2254 populate heap later.
1a3118e9 2255
fee8b6da
JH
22562011-04-19 Jan Hubicka <jh@suse.cz>
2257
2258 * cgraph.h (save_inline_function_body): Remove.
2259 * ipa-inline-transform.c: New file, broke out of...
2260 * ipa-inline.c: ... this one; Update toplevel comment.
2261 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
2262 make global.
2263 (update_noncloned_frequencies): Move to ipa-inline-transform.c
2264 (cgraph_mark_inline_edge): Rename to inline_call; move to
2265 ipa-inline-transform.c.
2266 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
2267 move to ipa-inline-transform.c
2268 (recursive_inlining, inline_small_functions, flatten_function,
2269 ipa_inline, inline_always_inline_functions,
2270 early_inline_small_functions): Update.
2271 (inline_transform): Move to ipa-inline-transform.c.
2272 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
2273 Declare.
2274 * Makefile.in (ipa-inline-transform.o): New file.
2275 * cgraphunit.c (save_inline_function_body): Move to
2276 ipa-inline-transform.c
2277
f0679612
DD
22782011-04-19 DJ Delorie <dj@redhat.com>
2279
2280 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2281 registers if we already know there aren't any.
2282 (m32c_emit_epilogue): Don't emit a barrier here.
2283 (m32c_emit_eh_epilogue): Likewise.
2284 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2285 operands at expand time.
2286 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2287 int" wchar type.
2288 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2289 duplicates. Provide aliases instead.
2290 * config/m32c/prologue.md (eh_return): Emit a barrier here.
2291 (eh_epilogue): Add a "(return)" here as a hint to other parts of
2292 the compiler.
2293
32257ddc
AS
22942011-04-19 Anatoly Sokolov <aesok@post.ru>
2295
2296 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2297 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2298 (general_or_i64_p, sparc_register_move_cost): New function.
2299
60bea929
RO
23002011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2301
2302 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 2303 Add lynx, mipssde. Sort table.
60bea929 2304
444b3995 23052011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 2306
9d12f71a
EB
2307 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2308 not negative.
444b3995 2309
d708ce50
JJ
23102011-04-19 Jakub Jelinek <jakub@redhat.com>
2311
2312 PR target/48678
2313 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2314 is a SUBREG with non-MODE_INT mode inside of it.
2315
49c471e3
MJ
23162011-04-19 Martin Jambor <mjambor@suse.cz>
2317
2318 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2319 also according to actual contants.
2320 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2321 (gimple_fold_call): Use it.
2322 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2323
0004f992
MJ
23242011-04-19 Martin Jambor <mjambor@suse.cz>
2325
2326 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2327 non-pointer assignments.
2328
40591473
MJ
23292011-04-19 Martin Jambor <mjambor@suse.cz>
2330
2331 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2332 account anc_offset and otr_type from the indirect edge info.
2333 * ipa-prop.c (get_ancestor_addr_info): New function.
2334 (compute_complex_ancestor_jump_func): Assignment analysis moved to
2335 get_ancestor_addr_info, call it.
2336 (ipa_note_param_call): Do not initialize information about polymorphic
2337 calls, return the indirect call graph edge. Remove the last
2338 parameter, adjust all callers.
2339 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2340 parameters. Initialize polymorphic information in the indirect edge.
2341
abe36b81
EB
23422011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2343
2344 PR lto/48148
2345 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2346 the types if they have different enumeration identifiers.
2347
e6416b30
JH
23482011-04-19 Jan Hubicka <jh@suse.cz>
2349
2350 * cgraph.h (cgraph_optimize_for_size_p): Declare.
2351 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2352 * predict.c (cgraph_optimize_for_size_p): Break out from ...
2353 (optimize_function_for_size_p) ... here.
2354
d39132ea
RG
23552011-04-19 Richard Guenther <rguenther@suse.de>
2356
2357 PR lto/48207
2358 * tree.c (free_lang_data): Do not reset the decl-assembler-name
2359 langhook.
2360
ff7037dc
EB
23612011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2362
2363 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2364 if DECL_NO_INLINE_WARNING_P is set on the function.
2365
c1ee2892
BS
23662011-04-19 Bernd Schmidt <bernds@codesourcery.com>
2367
2368 PR fortran/47976
2369 * reload1.c (inc_for_reload): Return void. All callers changed.
2370 (emit_input_reload_insns): Don't try to delete previous output
2371 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
2372
23732011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
2374
2375 * gengtype.h: Updated copyright year.
2376 (struct input_file_st): Add inpisplugin field.
2377 (type_fileloc): New function.
2378 * gengtype.c
2379 (write_typed_struct_alloc_def): Add gcc_assert.
2380 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2381 (write_typed_alloc_defns): Don't output for plugin files.
2382 (input_file_by_name): Clear inpisplugin field.
2383 (main): Set inpisplugin field for plugin files.
2384
897e0a89
NP
23852011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
2386
2387 * gengtype-state.c (string_eq): New.
2388 (read_state): Use string_eq instead of strcmp when creating the
2389 state_ident_tab.
2390
363ee90e
WG
23912011-04-19 Wei Guozhi <carrot@google.com>
2392
2393 PR target/47855
2394 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2395 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2396 linkage.
2397 * config/arm/constraints.md (Uu): New constraint.
2398 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2399
18a24fed
TG
24002011-04-19 Tristan Gingold <gingold@adacore.com>
2401
2402 * config.gcc (-*-*-*vms): Added.
2403 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2404 definitions moved.
2405 * config/vms/vms-ld.c: New file.
2406 * config/vms/vms-ar.c: New file.
2407 * config/vms/t-vmsnative: New file.
2408
1c13f168
XDL
24092011-04-18 Xinliang David Li <davidxl@google.com>
2410
2411 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2412
84825707
JJ
24132011-04-18 Jakub Jelinek <jakub@redhat.com>
2414
2415 PR middle-end/48661
2416 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2417 if TREE_TYPE (v) is non-NULL.
2418
2419 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2420 gimple_get_virt_mehtod_for_binfo.
2421 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2422 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2423 callers.
2424 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2425
7d4f8d02 24262011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
2427 Steve Ellcey <sje@cup.hp.com>
2428
7d4f8d02
EB
2429 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2430 use its mode as source mode if it isn't VOIDmode.
7254cb57 2431
474e8e70
DCR
24322011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
2433
2434 * doc/passes.texi: Fill crossref nodes.
2435
cff41484
JM
24362011-04-18 Jim Meyering <meyering@redhat.com>
2437
7d4f8d02 2438 Fix doubled-word typos in comments and strings
cff41484
JM
2439 * config/alpha/vms-unwind.h: s/for for/for/
2440 * config/arm/unwind-arm.h: Likewise.
2441 * config/microblaze/microblaze.c: Likewise.
2442 * config/sh/constraints.md: s/in in/in/
2443 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2444
f60c2554
UB
24452011-04-18 Uros Bizjak <ubizjak@gmail.com>
2446
2447 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2448 (AVX_FLOAT_MODE_P): Ditto.
2449 (AVX128_VEC_FLOAT_MODE_P): Ditto.
2450 (AVX256_VEC_FLOAT_MODE_P): Ditto.
2451 (AVX_VEC_FLOAT_MODE_P): Ditto.
2452 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2453 (UNSPEC_MASKSTORE): Ditto.
2454 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2455 Merge from <sse>_movmsk<ssemodesuffix> and
2456 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
2457 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
2458 iterator.
2459 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2460 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2461 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2462
09a2806f
JH
24632011-04-18 Jan Hubicka <jh@suse.cz>
2464
8a8dccb2
JH
2465 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2466
09a2806f
JH
2467 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2468 (want_inline_function_called_once_p): Break out the logic from
2469 ipa_inline.
2470 (edge_badness): Ensure that profile is not misupdated.
2471 (lookup_recursive_calls): Prioritize by call frequencies.
2472 (inline_small_functions): Move program size estimates here;
2473 actually process whole queue even when unit growth has been
2474 met. (to properly compute inline_failed reasons and for the
f60c2554 2475 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
2476 (ipa_inline): Remove unit summary code; first inline hot calls
2477 of functions called once, cold calls next.
2478 (order, nnodes): Remove unused variables.
2479 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2480 (GTFILES): Remove ipa-inline.c
2481 * sel-sched.c (fill_insns): Silence uninitialized var warning.
2482
3eea52ef
EB
24832011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2484
2485 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2486
229a1c59 24872011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 2488 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
2489
2490 * arm.c (neon_builtin_type_bits): Remove.
2491 (typedef enum neon_builtin_mode): New.
2492 (T_MAX): Don't define.
2493 (typedef enum neon_builtin_datum): Remove bits, codes[],
2494 num_vars and base_fcode. Add mode, code and fcode.
2495 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2496 VAR10): Change accordingly.
2497 (neon_builtin_data[]): Change accordingly
2498 (arm_init_neon_builtins): Change accordingly.
2499 (neon_builtin_compare): Remove.
2500 (locate_neon_builtin_icode): Remove.
2501 (arm_expand_neon_builtin): Change accordingly.
2502
2503 * arm.h (enum arm_builtins): Move to ...
2504 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2505
2506 * arm.c (arm_builtin_decl): Declare.
2507 (TARGET_BUILTIN_DECL): Define.
2508 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2509 (arm_builtin_decls[]): New.
2510 (arm_init_neon_builtins): Store builtin declarations in
2511 arm_builtin_decls[].
2512 (arm_init_tls_builtins): Likewise.
2513 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
2514 (arm_builtin_decl): New.
2515
75e802cc
RG
25162011-04-18 Richard Guenther <rguenther@suse.de>
2517
2518 * tree.c (upper_bound_in_type): Build properly canonicalized
2519 INTEGER_CSTs.
2520 (lower_bound_in_type): Likewise.
2521
3b45a007
RG
25222011-04-18 Richard Guenther <rguenther@suse.de>
2523
2524 * gimple.h (gimple_call_addr_fndecl): New function.
2525 (gimple_call_fndecl): Use it.
2526 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2527 for direct calls.
2528 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2529 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2530
d25a79ea
RG
25312011-04-18 Richard Guenther <rguenther@suse.de>
2532
2533 PR middle-end/48650
2534 * tree.c (build_string): STRING_CST is now derived from tree_typed.
2535
7d5fc814
EB
25362011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2537
2538 PR lto/48492
2539 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2540 DECL_IN_CONSTANT_POOL without RTL.
2541
7e7cfcf6
UW
25422011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
2543 Ira Rosen <ira.rosen@linaro.org>
2544
2545 PR target/48252
2546 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2547 to match neon_vzip/vuzp/vtrn_internal.
2548 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2549 outputs explicitly dependent on both inputs.
2550 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2551
49eab32e
JJ
25522011-04-18 Jakub Jelinek <jakub@redhat.com>
2553
2554 PR tree-optimization/48616
2555 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2556 whether the shift is by scalar or vector based on whether all SLP
2557 scalar stmts have the same rhs.
2558
e54170f4
CLT
25592011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2560
2561 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2562 memory operands.
2563
b14ee6c9
RS
25642011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2565
2566 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2567 registers.
2568
10158cd3
JH
25692011-04-17 Jan Hubicka <jh@suse.cz>
2570
2571 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
2572 * cgrpahunit.c (cgraph_finalize_function): Do not set
2573 finalized_by_frontend.
10158cd3
JH
2574 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2575 finalized_by_frontend.
2576
2e9bb6ba
JH
25772011-04-17 Jan Hubicka <jh@suse.cz>
2578
2579 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2580 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2581 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
2582 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2583 method.
2e9bb6ba
JH
2584 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2585 gimple-fold.c
2586 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2587
beb628e1
EB
25882011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2589
2590 PR lto/48538
2591 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2592 is non-null before accessing it.
2593 (input_cgraph): Remove trailing spaces.
2594
3e2fdd24
RE
25952011-04-17 Revital Eres <revital.eres@linaro.org>
2596
2597 * params.def (sms-min-sc): New param flag.
2598 * modulo-sched.c (sms_schedule): Use it.
2599 * doc/invoke.texi (sms-min-sc): Document it.
2600
4c0f7679
JH
26012011-04-17 Jan Hubicka <jh@suse.cz>
2602
2603 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2604 present, also set gimple_call_set_cannot_inline.
2605 * ipa-inline.c: Update toplevel comment.
2606 (MAX_TIME): Remove.
2607 (cgraph_clone_inlined_nodes): Fix linebreaks.
2608 (cgraph_check_inline_limits): Restructure to ...
2609 (caller_growth_limits): ... this one; be more tolerant
2610 on growth in nested inline chains; add explanatory comment;
2611 fix stack accounting thinko introduced by previous patch.
2612 (cgraph_default_inline_p): Remove.
2613 (report_inline_failed_reason): New function.
2614 (can_inline_edge_p): New function.
2615 (can_early_inline_edge_p): New function.
2616 (leaf_node_p): Move upwards in file.
2617 (want_early_inline_function_p): New function.
2618 (want_inline_small_function_p): New function.
2619 (want_inline_self_recursive_call_p): New function.
2620 (cgraph_edge_badness): Rename to ...
2621 (edge_badness) ... this one; fix linebreaks.
2622 (update_edge_key): Update call of edge_baddness; add
2623 detailed dump about queue updates.
2624 (update_caller_keys): Use can_inline_edge_p and
2625 want_inline_small_function_p.
2626 (cgraph_decide_recursive_inlining): Rename to...
2627 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
2628 want_inline_self_recursive_call_p; simplify and remove no longer
2629 valid FIXME.
4c0f7679
JH
2630 (cgraph_set_inline_failed): Remove.
2631 (add_new_edges_to_heap): Use can_inline_edge_p and
2632 want_inline_small_function_p.
2633 (cgraph_decide_inlining_of_small_functions): Rename to ...
2634 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
2635 can/want predicates; cleanup debug ouput; work edges till fibheap
2636 is exhausted and do not stop once unit growth is reached; remove
2637 later loop processing remaining edges.
4c0f7679
JH
2638 (cgraph_flatten): Rename to ...
2639 (flatten_function): ... this one; use can_inline_edge_p
2640 and can_early_inline_edge_p predicates.
2641 (cgraph_decide_inlining): Rename to ...
2642 (ipa_inline): ... this one; remove unreachable nodes before
2643 inlining functions called once; simplify the pass.
2644 (cgraph_perform_always_inlining): Rename to ...
2645 (inline_always_inline_functions): ... this one; use
f60c2554 2646 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
2647 (cgraph_decide_inlining_incrementally): Rename to ...
2648 (early_inline_small_functions): ... this one; simplify
2649 using new predicates; cleanup; make dumps prettier.
2650 (cgraph_early_inlining): Rename to ...
2651 (early_inliner): newer inline regular functions into always-inlines;
2652 fix updating of call stmt summaries.
2653 (pass_early_inline): Update for new names.
2654 (inline_transform): Fix formating.
2655 (gate_cgraph_decide_inlining): Rename to ...
2656 (pass_ipa_inline): ... this one.
2657 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
2658 * ipa-inline-analysis.c (dump_inline_summary): Update.
2659 (compute_inline_parameters): Do not compute disregard_inline_limits;
2660 look for mismatching arguments.
2661 (estimate_growth): Fix handlig of non-trivial self recursion.
2662 (inline_read_summary): Do not read info->disregard_inline_limits.
2663 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
2664 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
2665 and move all checks into can_inline_edge_p predicate; re-enable code
2666 comparing optimization levels.
4c0f7679
JH
2667 (expand_call_inline): Do not test inline_forbidden_into_p.
2668 * Makefile.in (ipa-inline.o): Update arguments.
2669
54333b7c
RE
26702011-04-17 Revital Eres <revital.eres@linaro.org>
2671
2672 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
2673
42c2bf92
RE
26742011-04-17 Revital Eres <revital.eres@linaro.org>
2675
2676 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
2677
b183e9e0
MM
26782011-04-17 Michael Matz <matz@suse.de>
2679
2680 PR tree-optimization/48622
2681 PR lto/48645
2682 * ipa-inline-analysis.c (inline_read_summary): Read size/time
2683 in same order as they're written.
2684
b8a17fa2
JDA
26852011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2686
2687 * config/pa/predicates.md: Reorganize and simplify predicates.
2688 Eliminate duplicate code checks.
2689 (arith_operand): Rename to arith14_operand
2690 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
2691 * config/pa/pa.md: Use renamed operands.
2692 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
2693 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
2694 arith11_operand, adddi3_operand, indexed_memory_operand,
2695 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
2696 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
2697 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
2698 move_dest_operand, move_src_operand, prefetch_cc_operand,
2699 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
2700 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
2701 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
2702 div_operand, int5_operand, movb_comparison_operator,
2703 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
2704 arith_double_operand, ireg_operand, lhs_lshift_operand,
2705 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
2706 integer_store_memory_operand): Likewise.
2707 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
2708 (integer_store_memory_operand, read_only_operand,
2709 function_label_operand, borx_reg_operand,
2710 non_hard_reg_operand): Likewise.
2711 (eq_neq_comparison_operator): Delete unused operator.
2712 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
2713 function_label_operand.
2714 (emit_move_sequence): Likewise.
2715
8dfb9f16
UB
27162011-04-16 Uros Bizjak <ubizjak@gmail.com>
2717
2718 * config/i386/sse.md (sseunpackmode): New mode attribute.
2719 (ssepackmode): Ditto.
2720 (vec_pack_trunc_<mode>): Macroize expander from
2721 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
2722 (vec_unpacks_lo_<mode>): Macroize expander from
2723 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2724 (vec_unpacks_hi_<mode>): Macroize expander from
2725 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2726 (vec_unpacku_lo_<mode>): Macroize expander from
2727 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2728 (vec_unpacku_hi_<mode>): Macroize expander from
2729 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2730 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
2731 ix86_expand_sse4_unpack.
2732 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
2733
e7f23018
JH
27342011-04-16 Jan Hubicka <jh@suse.cz>
2735
2736 * cgraphbuild.c: Include ipa-inline.h.
2737 (reset_inline_failed): Use initialize_inline_failed.
2738 * cgraph.c: Include ipa-inline.h.
2739 (cgraph_create_node_1): Do not initialize estimated_growth.
2740 (initialize_inline_failed): More to ipa-inline-analysis.c
2741 (dump_cgraph_node): Do not dump inline flags.
2742 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
2743 and disregard_inline_limits flags.
2744 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
2745 time, size, estimated_growth.
8dfb9f16
UB
2746 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
2747 Update.
e7f23018
JH
2748 * cgraphunit.c (cgraph_decide_is_function_needed): Use
2749 DECL_DISREGARD_INLINE_LIMITS.
2750 (cgraph_analyze_function): Do not initialize
2751 node->local.disregard_inline_limits.
2752 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2753 inlinable, versionable and disregard_inline_limits.
2754 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
2755 cgraph_check_inline_limits, cgraph_default_inline_p,
2756 cgraph_edge_badness, update_caller_keys, update_callee_keys,
2757 add_new_edges_to_heap): Update.
2758 (cgraph_decide_inlining_of_small_function): Update; set
2759 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
2760 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
2761 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
2762 * ipa-inline.h (inline_summary): Add inlinable, versionable,
2763 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
2764 time, size and estimated_growth parameters.
e7f23018
JH
2765 (estimate_edge_growth): Update.
2766 (initialize_inline_failed): Declare.
2767 * ipa-split.c: Include ipa-inline.h
2768 (execute_split_functions): Update.
2769 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
2770 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
2771 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
2772 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
2773 estimated_growth to INT_MIN.
2774 (inline_node_duplication_hook): Likewise.
2775 (dump_inline_summary): Dump new fields.
2776 (compute_inline_parameters): Update.
2777 (estimate_edge_time, estimate_time_after_inlining,
2778 estimate_size_after_inlining, estimate_growth, inline_read_summary,
2779 inline_write_summary):
2780 (initialize_inline_failed): Move here from cgraph.c.
2781 * tree-sra.c: Include ipa-inline.h.
2782 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
2783 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
2784 ipa-inline.h.
e7f23018 2785
e81b8564
UB
27862011-04-16 Uros Bizjak <ubizjak@gmail.com>
2787
2788 * config/i386/sse.md (V16): New mode iterator.
2789 (VI1, VI8): Ditto.
2790 (AVXMODEQI, AVXMODEDI): Remove.
2791 (sse2, sse3): New mode attribute.
2792 (mov<mode>): Use V16 mode iterator.
2793 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
2794 (push<mode>1): Use V16 mode iterator.
2795 (movmisalign<mode>): Ditto.
2796 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2797 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
2798 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2799 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
2800 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
2801 avx_movdqu<avxmodesuffix>.
2802 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
2803 *avx_movdqu<avxmodesuffix>.
2804 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
2805 avx_lddqu<avxmodesuffix>.
2806 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
2807 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
2808 avx_movnt<AVXMODEDI:mode>.
2809 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
2810 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
2811
4743d438
BS
28122011-04-16 Bernd Schmidt <bernds@codesourcery.com>
2813
2814 PR target/48629
2815 * haifa-sched.c (prune_ready_list, schedule_block): Use
2816 sched_pressure_p rather than flag_sched_pressure.
2817
eb229cf4
PH
28182011-04-15 Pat Haugen <pthaugen@us.ibm.com>
2819
2820 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2821 cgraph_get_node instead of cgraph_get_create_node.
2822
2ba172e0
JJ
28232011-04-15 Jakub Jelinek <jakub@redhat.com>
2824
2825 * cfgexpand.c (expand_debug_expr): Use
2826 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
2827
63d2a353
MM
28282011-04-15 Michael Matz <matz@suse.de>
2829
2830 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
2831 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
2832 * function.c (gimplify_parameters): Ditto.
2833 * gimplify.c (gimplify_vla_decl): Ditto.
2834
2835 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
2836 (gimple_call_set_alloca_for_var): New inline function.
2837 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
2838 * gimple.c (gimple_build_call_from_tree): Remember
2839 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
2840 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
2841
2842 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
2843 calls if they were for VLA objects.
2844
dee74c34
MJ
28452011-04-15 Martin Jambor <mjambor@suse.cz>
2846
2847 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
2848 of ADR_EXPRs.
2849
8e5837bc
MJ
28502011-04-15 Martin Jambor <mjambor@suse.cz>
2851
2852 PR middle-end/48601
2853 * tree-emutls.c (lower_emutls_function_body): Call
2854 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
2855 result is non-NULL.
2856
0dc33c3c
NP
28572011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
2858
2859 * c-decl.c (detect_field_duplicates): Call
2860 objc_detect_field_duplicates instead of objc_get_interface_ivars.
2861
edcdea5b
NF
28622011-04-15 Nathan Froyd <froydnj@codesourcery.com>
2863
2864 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
2865 * gimple.c (gimple_asm_clobbers_memory_p): Define.
2866 * ipa-pure-const.c (check_stmt): Call it.
2867 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
2868
8456558d
RG
28692011-04-15 Richard Guenther <rguenther@suse.de>
2870
2871 PR tree-optimization/48290
2872 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
2873 Properly decide inhibiting propagation based on the valueized
2874 operand. Do loop-closed SSA form preserving here ...
2875 (init_copy_prop): ... not here.
2876
266446be
L
28772011-04-15 H.J. Lu <hongjiu.lu@intel.com>
2878
2879 PR target/48612
2880 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
2881 (*ieee_smax<mode>3): Likewise.
2882
17465c6e
AK
28832011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2884
2885 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
2886 Replace match_operand with match_dup for the third operand in
2887 these expanders.
2888
bce204e5
MK
28892011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2890
2891 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
2892 to track processing of conditionals. Update all callers.
2893 (try_combine, simplify_if_then_else): Update.
2894
3162fdf4
MK
28952011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2896
2897 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
2898 -fsched-pressure.
2899
79002a57 29002011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 2901
79002a57
GJL
2902 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
2903 instead of match_operand for operand 3.
2904
4fd3a105
RS
29052011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
2906
2907 * recog.h (insn_operand_data): Add an "allows_mem" field.
2908 * genoutput.c (output_operand_data): Initialize it.
2909 * optabs.c (maybe_legitimize_operand_same_code): New function.
2910 (maybe_legitimize_operand): Use it when matching the original
2911 op->value.
2912
ad19c4be
EB
29132011-04-15 Eric Botcazou <ebotcazou@adacore.com>
2914
2915 * gimplify.c: Fix issues in comments throughout.
2916 (voidify_wrapper_expr): Fix long line.
2917 (build_stack_save_restore): Likewise.
2918 (gimplify_loop_expr): Likewise.
2919 (gimplify_compound_lval): Likewise.
2920 (gimplify_init_ctor_eval): Likewise.
2921 (gimplify_modify_expr_rhs): Likewise.
2922 (omp_notice_threadprivate_variable): Likewise.
2923
b25aa0e8 29242011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 2925
b25aa0e8
EB
2926 * cfgexpand.c (expand_call_stmt): Convert the function type to the
2927 original one if this is not a builtin function.
e7925582 2928
09db7afe
JJ
29292011-04-14 Jakub Jelinek <jakub@redhat.com>
2930
2931 PR target/48605
2932 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
2933 offset it as needed based on top 2 bits in operands[3], change
2934 MEM mode to SFmode and mask those 2 bits away from operands[3].
2935
c59633d9
NP
29362011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2937
2938 * c-parser.c (c_parser_objc_protocol_definition): Updated for
2939 change from objc_declare_protocols() to objc_declare_protocol().
2940
5e60198b
UB
29412011-04-14 Uros Bizjak <ubizjak@gmail.com>
2942
2943 * config/i386/sse.md (sse4_1): New mode attribute.
2944 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
2945 avx_blend<ssemodesuffix><avxmodesuffix> and
2946 sse4_1_blend<ssemodesuffix> using VF mode iterator.
2947 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
2948 avx_blendv<ssemodesuffix><avxmodesuffix> and
2949 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
2950 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
2951 avx_dp<ssemodesuffix><avxmodesuffix> and
2952 sse4_1_dp<ssemodesuffix> using VF mode iterator.
2953 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
2954 (sse4_1_packusdw): Merge with *avx_packusdw.
2955 (sse4_1_pblendvb): Merge with *avx_pblendvb.
2956 (sse4_1_pblendw): Merge with *avx_pblendw.
2957 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
2958 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
2959 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
2960 VF mode iterator.
2961 (sse4_1_round<ssescalarmodesuffix>): Merge with
2962 *avx_round<ssescalarmodesuffix>.
2963 (aesenc): Merge with *avx_aesenc.
2964 (aesenclast): Merge with *avx_aesenclast.
2965 (aesdec): Merge with *avx_aesdec.
2966 (aesdeclast): Merge with *avx_aesdeclast.
2967 (pclmulqdq): Merge with *pclmulqdq.
2968 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
2969 New predicate.
2970 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2971
6f197850
L
29722011-04-14 H.J. Lu <hongjiu.lu@intel.com>
2973
2974 PR middle-end/48608
2975 * cfgexpand.c (get_decl_align_unit): Renamed to ...
2976 (align_local_variable): This. Update DECL_ALIGN.
2977 (add_stack_var): Updated.
2978 (expand_one_stack_var): Likewise.
2979
4a5ba3ed
RG
29802011-04-14 Richard Guenther <rguenther@suse.de>
2981
2982 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
2983 Remove.
2984 (dse_initialize_block_local_data, dse_leave_block,
2985 record_voperand_set, get_stmt_uid): Likewise.
2986 (dse_possible_dead_store_p): Allow any kind of killing stmt.
2987 (dse_optimize_stmt): Remove voperand set handling code.
2988 Simplify and improve to handle any kind of killing stmt.
2989 (dse_record_phi): Remove.
2990 (dse_enter_block): Simplify.
2991 (tree_ssa_dse): Likewise.
2992 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
2993
10a5dd5d
JH
29942011-04-14 Jan Hubicka <jh@suse.cz>
2995
2996 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
2997 * cgraph.h (struct inline_summary): Move to ipa-inline.h
2998 (cgraph_local_info): Remove inline_summary.
2999 * ipa-cp.c: Include ipa-inline.h.
3000 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
3001 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
3002 accesor.
3003 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
3004 (input_overwrite_node): Do not set inline summary.
3005 (input_node): Do not stream inline summary.
3006 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
3007 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
3008 growth; we do not have inline parameters computed for that anyway.
3009 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
3010 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
3011 (inline_summary_t): New type and VECtor.
3012 (debug_inline_summary, dump_inline_summaries): Declare.
3013 (inline_summary): Use VOCtor.
3014 (estimate_edge_growth): Kill hack computing call stmt size directly.
3015 * lto-section-in.c (lto_section_name): Add inline section.
3016 * ipa-inline-analysis.c: Include lto-streamer.h
3017 (node_removal_hook_holder, node_duplication_hook_holder): New holders
3018 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
3019 (inline_summary_vec): Define.
3020 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
3021 dump_inline_summaries): New functions.
5e60198b
UB
3022 (estimate_function_body_sizes): Properly compute size/time of outgoing
3023 calls.
3024 (compute_inline_parameters): Alloc inline_summary; do not compute
3025 size/time of incomming calls.
10a5dd5d
JH
3026 (estimate_edge_time): Avoid missing time summary hack.
3027 (inline_read_summary): Read inline summary info.
3028 (inline_write_summary): Write inline summary info.
3029 (inline_free_summary): Free all hooks and inline summary vector.
3030 * lto-streamer.h: Add LTO_section_inline_summary section.
3031 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
3032 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
3033
b602d918
RS
30342011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3035
3036 * tree-vectorizer.h (vect_strided_store_supported): Add a
3037 HOST_WIDE_INT argument.
3038 (vect_strided_load_supported): Likewise.
3039 (vect_permute_store_chain): Return void.
3040 (vect_transform_strided_load): Likewise.
3041 (vect_permute_load_chain): Delete.
3042 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
3043 count argument. Check that the count is a power of two.
3044 (vect_strided_load_supported): Likewise.
3045 (vect_permute_store_chain): Return void. Update after above changes.
3046 Assert that the access is supported.
3047 (vect_permute_load_chain): Likewise.
3048 (vect_transform_strided_load): Return void.
3049 * tree-vect-stmts.c (vectorizable_store): Update calls after
3050 above interface changes.
3051 (vectorizable_load): Likewise.
3052 (vect_analyze_stmt): Don't check for strided powers of two here.
3053
ab4472fa
RG
30542011-04-14 Richard Guenther <rguenther@suse.de>
3055
3056 PR tree-optimization/48590
3057 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
3058 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3059 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
3060 BUILT_IN_STACK_SAVE.
3061 * tree-ssa-dce.c (propagate_necessity): Handle
3062 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
3063
32dabdaf
NP
30642011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
3065
3066 * c-parser.c (c_parser_objc_class_declaration): Updated call to
3067 objc_declare_class.
3068
daade206
RG
30692011-04-14 Richard Guenther <rguenther@suse.de>
3070
3071 * tree.h (get_object_alignment_1): Declare.
3072 * builtins.c (get_object_alignment_1): Split out worker from ...
3073 (get_object_alignment): ... here.
3074 * fold-const.c (get_pointer_modulus_and_residue): Use
3075 get_object_alignment_1.
3076
920e8172
RS
30772011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3078
3079 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
3080 type parameter.
3081 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
3082 parameter. Generalise code to handle arrays as well as vectors.
3083 (vect_setup_realignment): Update accordingly.
3084 * tree-vect-stmts.c (vectorizable_store): Likewise.
3085 (vectorizable_load): Likewise.
3086
5ce1ee7f
RS
30872011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
3088
3089 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
3090 within the per-copy loop.
3091
6438fe33 30922011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
3093
3094 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
3095 in the dump file.
3096
6438fe33 30972011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
3098
3099 * doc/options.texi (Negative): Explicitly mention that the
3100 Negative chain must be circular.
3101
61e46a7d
NF
31022011-04-14 Nathan Froyd <froydnj@codesourcery.com>
3103
3104 * function.h (block_chainon): Declare.
3105 * function.c (block_chainon): Define.
3106
43ea6502 31072011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b
UB
3108 Eric Weddington <eric.weddington@atmel.com>
3109 Georg-Johann Lay <avr@gjlay.de>
3110
f60c2554 3111 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
3112 New Includes
3113 (avr_init_builtins, avr_expand_builtin,
3114 avr_expand_delay_cycles, avr_expand_unop_builtin,
3115 avr_expand_binop_builtin ): New functions.
3116 (avr_builtin_id): New enum
3117 (struct avr_builtin_description): New struct
3118 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
3119 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 3120
43ea6502 3121 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 3122 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
3123 UNSPECV_DELAY_CYCLES): new enumeration values
3124 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
3125 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
3126 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
3127 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
3128 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
3129 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
3130 "fmulsu"): New insns
5e60198b 3131
43ea6502
AS
3132 * config/avr/avr-c.c: fix line endings
3133 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
3134 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
3135 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
3136 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
3137 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 3138
43ea6502
AS
3139 * doc/extend.texi (AVR Built-in Functions): New node
3140 (Target Builtins): Add documentation of AVR
3141 built-in functions.
3142
8a9b55f3
GJL
31432011-04-14 Georg-Johann Lay <avr@gjlay.de>
3144
3145 PR target/44643
3146 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
3147 alone. Error if non-const data has attribute progmem.
3148
94bd1825
NF
31492011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3150
3151 * tree.h (struct tree_constructor): Include tree_typed instead of
3152 tree_common.
3153 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
3154 TS_TYPED instead of TS_COMMON.
3155
5e60198b 31562011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
3157
3158 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
3159 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
3160 (sse2_psadbw): Merge with *avx_psadbw.
3161 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
3162 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
3163 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
3164 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
3165 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
3166 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
3167 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
3168 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
3169 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
3170 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
3171 (ssse3_palignrti): Merge with *avx_palignrti.
3172
4b1a4694
NF
31732011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3174
3175 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
3176 * tree-ssanames.c (fini_ssanames): VEC_free it.
3177 (make_ssa_name_fn): Update for VECness of free_ssanames.
3178 (release_ssa_name, release_dead_ssa_names): Likewise.
3179 * tree.h (struct tree_ssa_name): Include tree_typed instead of
3180 tree_common.
3181 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
3182 TS_TYPED instead of TS_COMMON.
3183
4da3b811
NF
31842011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3185
3186 * postreload-gcse.c (gcse_after_reload_main): Add calls to
3187 statistics_counter_event.
3188 * tree-ssa-copyrename.c (stats): Define.
3189 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
3190 statistics_counter_event.
3191 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
3192 (bswap_stats, widen_mul_stats): Define.
3193 (insert_reciprocals): Increment rdivs_inserted.
3194 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
3195 rfuncs_inserted. Add calls to statistics_counter_event.
3196 (execute_cse_sincos_1): Increment inserted.
3197 (execute_cse_sincos): Zeroize sincos_stats. Add call to
3198 statistics_counter_event.
3199 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
3200 of bswap_stats. Add calls to statistics_counter_event.
3201 (convert_mult_to_widen): Increment widen_mults_inserted.
3202 (convert_plusminus_to_widen): Increment maccs_inserted.
3203 (convert_mult_to_fma): Increment fmas_inserted.
3204 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
3205 calls to statistics_counter_event.
3206
89fa552a
VM
32072011-04-13 Vladimir Makarov <vmakarov@redhat.com>
3208
3209 PR rtl-optimization/48455
3210 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
3211 `temp_costs->mem_cost'.
3212
03dfc36d
JH
32132011-04-13 Jan Hubicka <jh@suse.cz>
3214
3215 * ipa-inline.h: New file.
3216 * ipa-inline-analysis.c: New file. Broken out of ...
3217 * ipa-inline.c: ... this file; update toplevel comment;
3218 include ipa-inline.h
3219 (inline_summary): Move to ipa-inline.h
3220 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
3221 ipa-inline-analysis.c.
7d4f8d02
EB
3222 (cgraph_estimate_time_after_inlining): Rename to
3223 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
3224 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3225 to estimate_edge_growth.
3226 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3227 rename to estimate_size_after_inlining.
3228 (cgraph_mark_inline_edge): Update for new naming convention.
3229 (cgraph_check_inline_limits): Likewise.
3230 (cgraph_edge_badness): Likewise.
3231 (cgraph_decide_recursive_inlining): Likewise.
3232 (cgraph_decide_inlining_of_small_functions): Likewise.
3233 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
3234 (cgraph_estimate_growth): Rename to estimate_growth; move to
3235 ipa-inline-analysis.c.
03dfc36d
JH
3236 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3237 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3238 (compute_inline_parameters): Likewise.
3239 (compute_inline_parameters_for_current): Likewise.
3240 (pass_inline_parameters): Likewise.
3241 (inline_indirect_intraprocedural_analysis): Likewise.
3242 (analyze_function): Rename to inline_analyze_function; likewise.
3243 (add_new_function): Move to ipa-inline-analysis.c.
3244 (inline_generate_summary): Likewise.
3245 (inline_read_summary): Likewise.
3246 (inline_write_summary): Likewise.
3247 * Makefile.in (ipa-inline-analysis.c): New file.
3248
7673c962
RO
32492011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3250
3251 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
3252 * configure: Regenerate.
3253
9698252f
NF
32542011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3255
3256 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
3257 instead of tree_common.
3258 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
3259 Likewise.
3260 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
3261 TS_TYPED rather than TS_COMMON.
3262 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
3263
3a7bfdd5
GJL
32642011-04-01 Georg-Johann Lay <avr@gjlay.de>
3265
3266 PR target/45263
86d83530
GJL
3267 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
3268 r20 around calls of __tablejump_elpm__
3a7bfdd5 3269
20790697
JJ
32702011-04-13 Jakub Jelinek <jakub@redhat.com>
3271
3272 PR middle-end/48591
3273 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
3274 NULL.
3275 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
3276
094d7661
BS
32772011-04-13 Bernd Schmidt <bernds@codesourcery.com>
3278
3279 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3280 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3281 (cfi_vec): New typedef.
3282 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3283 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3284 (cie_cfi_vec): New static variable.
3285 (cie_cfi_head): Delete.
3286 (add_cfi): Accept a cfi_vec * as first argument. All callers and
3287 declaration changed. Use vector rather than list operations.
3288 (new_cfi): Don't initialize the dw_cfi_next field.
3289 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3290 rather than list operations.
3291 (lookup_cfa): Use vector rather than list operations.
3292 (output_cfis): New argument upto. Accept a cfi_vec rather than
3293 a dw_cfi_ref list head as argument. All callers changed.
3294 Iterate over the vector using upto as a maximum index.
3295 (output_all_cfis): New static function.
3296 (output_fde): Use vector rather than list operations. Use the
3297 new upto argument for output_cfis rather than manipulating a
3298 list.
3299 (dwarf2out_begin_prologue): Change initializations to match
3300 new struct members.
3301 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3302 from the vector length rather than searching for the end of a list.
3303 Use output_all_cfis.
3304 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3305
673a5740
NC
33062011-04-13 Nick Clifton <nickc@redhat.com>
3307
3308 * config/rx/rx.md (movmemsi): Do not use this pattern when
3309 volatile pointers are involved.
3310
1ee8b298
UB
33112011-04-13 Uros Bizjak <ubizjak@gmail.com>
3312
3313 * config/i386/sse.md (pinsrbits): Remove.
3314 (sse2_packsswb): Merge with *avx_packsswb.
3315 (sse2_packssdw): Merge with *avx_packssdw.
3316 (sse2_packuswb): Merge with *avx_packuswb.
3317 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3318 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3319 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3320 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3321 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3322 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3323 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3324 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3325 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3326 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3327 (sse2_loadld): Merge with *avx_loadld.
3328 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3329 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3330 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3331 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3332 (vec_concatv2di): Merge with *vec_concatv2di_avx.
3333
81f653d6
NF
33342011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3335
3336 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3337 calling TREE_CHAIN.
3338 * print-tree.c (print_node): Likewise.
3339 * tree-inline.c (copy_tree_r): Likewise.
3340 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3341 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3342 instead of TS_COMMON.
3343 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3344 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3345 (copy_node_stat): Zero TREE_CHAIN only if necessary.
3346 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3347 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3348 ...and these...
3349 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3350 * tree.h: ...here.
3351 (TREE_CHAIN): Check for a TS_COMMON structure.
3352 (TREE_TYPE): Check for a TS_TYPED structure.
3353
ed940a4a
PH
33542011-04-12 Pat Haugen <pthaugen@us.ibm.com>
3355
3356 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3357 cgraph_get_create_node instead of cgraph_node.
3358
eb345401
NP
33592011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3360
3361 * c-parser.c (c_parser_initelt): Updated call to
3362 objc_build_message_expr.
3363 (c_parser_postfix_expression): Likewise.
3364
a6c46762
KT
33652011-04-12 Kai Tietz <ktietz@redhat.com>
3366
3367 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3368 MASK_MS_BITFIELD_LAYOUT bit.
3369
b4ccfed9
JJ
33702011-04-12 Jakub Jelinek <jakub@redhat.com>
3371
3372 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3373 assert it is always true.
3374 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3375 moves.
3376
0d8a2528
NP
33772011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3378
3379 * c-parser.c (c_lex_one_token): Rewritten conditional used when
3380 compiling Objective-C to be more efficient.
3381
06bd234a
AF
33822011-04-12 Axel Freyn <axel-freyn@gmx.de>
3383
3384 * opts-common.c (decode_cmdline_options_to_array): Remove variable
3385 argv_copied.
3386
28569ac3
RS
33872011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3388
3389 * recog.h, genoutput.c, optabs.c: Revert last patch.
3390
ae59e00d
RR
33912011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3392
81b1e7eb
UB
3393 PR target/48090
3394 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 3395
cff1b7e0
RS
33962011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3397
3398 * recog.h (insn_operand_data): Add an "allows_mem" field.
3399 * genoutput.c (output_operand_data): Initialize it.
3400 * optabs.c (maybe_legitimize_operand_same_code): New function.
3401 (maybe_legitimize_operand): Use it when matching the original
3402 op->value.
3403
77059241
RS
34042011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3405
3406 * genpreds.c (process_define_predicate): Move most processing
3407 to gensupport.c. Continue to validate the expression.
3408 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3409 (process_define_predicate): Move processing to gensupport.c.
3410 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3411 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3412 (compute_predicate_codes): Moved from genrecog.c. Add lineno
3413 argument.
3414 (valid_predicate_name_p): New function, split out from old
3415 genpreds.c:process_define_predicate.
3416 (process_define_predicate): New function, combining code from
3417 old genpreds.c and genrecog.c functions.
3418 (process_rtx): Call it for DEFINE_PREDICATE and
3419 DEFINE_SPECIAL_PREDICATE.
3420
6308e208
RS
34212011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3422
3423 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3424 size of a '%A' memory reference.
3425 (T_DREG, T_QREG): New neon_builtin_type_bits.
3426 (arm_init_neon_builtins): Assert that the load and store operands
3427 are neon_struct_operands.
3428 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3429 (NEON_ARG_MEMORY): New builtin_arg.
3430 (neon_dereference_pointer): New function.
3431 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3432 Handle NEON_ARG_MEMORY.
3433 (arm_expand_neon_builtin): Update after above interface changes.
3434 Use NEON_ARG_MEMORY for loads and stores.
3435 * config/arm/predicates.md (neon_struct_operand): New predicate.
3436 * config/arm/iterators.md (V_two_elem): Tweak formatting.
3437 (V_three_elem): Use BLKmode for accesses that have no associated mode.
3438 (V_four_elem): Tweak formatting.
3439 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3440 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3441 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3442 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3443 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3444 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3445 (neon_vst4<mode>): Replace pointer operand with a memory operand.
3446 Use %A in the output template.
3447 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3448 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3449 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3450 the width of the memory access. Remove post-increment.
3451 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3452
e5db8f2f
NC
34532011-04-12 Nick Clifton <nickc@redhat.com>
3454
3455 * config/v850/v850.c (expand_prologue): Do not use the CALLT
3456 instruction for interrupt handlers if the target is the basic V850
3457 architecture.
3458 (expand_epilogue): Likewise.
3459
74f091d6
JJ
34602011-04-12 Jakub Jelinek <jakub@redhat.com>
3461
3462 PR rtl-optimization/48549
3463 * combine.c (propagate_for_debug): Also stop after BB_END of
3464 this_basic_block. Process LAST and just stop processing after it.
3465 (combine_instructions): If last_combined_insn has been deleted,
3466 set last_combined_insn to its PREV_INSN.
3467
f20ca725
RG
34682011-04-12 Richard Guenther <rguenther@suse.de>
3469
3470 PR tree-optimization/46076
3471 * gimple.h (struct gimple_statement_call): Add fntype field.
3472 (gimple_call_fntype): Adjust.
3473 (gimple_call_set_fntype): New function.
3474 * gimple.c (gimple_build_call_1): Set the call function type.
3475 * gimplify.c (gimplify_call_expr): Preserve the function
3476 type the frontend used for the call.
3477 (gimplify_modify_expr): Likewise.
3478 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3479 function type.
3480 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3481 function type.
3482 * tree-ssa.c (useless_type_conversion_p): Function pointer
3483 conversions are useless.
3484
a358e188
MJ
34852011-04-12 Martin Jambor <mjambor@suse.cz>
3486
3487 * cgraph.h (cgraph_node): Remove function declaration.
3488 (cgraph_create_node): Declare.
3489 (cgraph_get_create_node): Likewise.
3490 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3491 Updated all callers.
3492 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3493 the decl does not already exist. Call cgraph_get_create_node instead
3494 of cgraph_node.
3495 (cgraph_get_create_node): New function.
3496 (cgraph_same_body_alias): Update comment.
3497 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3498 assert it does not return NULL.
3499 (cgraph_update_edges_for_call_stmt): Likewise.
3500 (cgraph_clone_edge): Likewise.
3501 (cgraph_create_virtual_clone): Likewise.
3502 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3503 instead of cgraph_node.
3504 (cgraph_add_new_function): Call cgraph_create_node or
3505 cgraph_get_create_node instead of cgraph_node.
3506 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3507 instead of cgraph_node.
3508 (record_eh_tables): Likewise.
3509 (mark_address): Likewise.
3510 (mark_load): Likewise.
3511 (build_cgraph_edges): Call cgraph_get_create_node instead
3512 of cgraph_node.
3513 (rebuild_cgraph_edges): Likewise.
3514 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3515 instead of cgraph_node.
3516 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3517 cgraph_node.
3518 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3519 cgraph_create_node instead of cgraph_node.
3520 * c-decl.c (finish_function): Call cgraph_get_create_node instead
3521 of cgraph_node.
3522 * lto-cgraph.c (input_node): Likewise.
3523 * lto-streamer-in.c (input_function): Likewise.
3524 * varasm.c (mark_decl_referenced): Likewise.
3525 (assemble_alias): Likewise.
3526
fe660d7b
MJ
35272011-04-12 Martin Jambor <mjambor@suse.cz>
3528
3529 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3530 instead of cgraph_node and assert it does not return NULL.
3531 * lto-streamer-in.c (lto_read_body): Likewise.
3532 * omp-low.c (new_omp_context): Likewise.
3533 (create_task_copyfn): Likewise.
3534 * tree-emutls.c (lower_emutls_function_body): Likewise.
3535 * matrix-reorg.c (transform_allocation_sites): Likewise.
3536
bae5cddf
JJ
35372011-04-12 Jakub Jelinek <jakub@redhat.com>
3538
3539 PR c/48552
3540 * c-typeck.c (build_asm_expr): Error out on attempts to use
3541 void type outputs or inputs for constraints that allow reg or
3542 don't allow memory.
3543
06eb52ca
CLT
35442011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
3545 Richard Earnshaw <rearnsha@arm.com>
3546
3547 PR target/48250
3548 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3549 to use sign-magnitude offsets. Reject unsupported unaligned
3550 cases. Add detailed description in comments.
3551 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3552 condition from TARGET_32BIT to TARGET_ARM.
3553
648a616b
NF
35542011-04-11 Nathan Froyd <froydnj@codesourcery.com>
3555
3556 * tree.h (struct typed_tree): New.
3557 (struct tree_common): Include it instead of tree_base.
3558 (TREE_TYPE): Update for new location of type field.
3559 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3560 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3561 (union tree_node): Add typed field.
3562 * treestruct.def (TS_TYPED): New.
3563 * lto-streamer.c (check_handled_ts_structures): Handle it.
3564 * tree.c (MARK_TS_TYPED): New macro.
3565 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3566
1e6d1da0
EB
35672011-04-11 Eric Botcazou <ebotcazou@adacore.com>
3568
3569 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3570 (force_nonfallthru): Do not alter the loop nest if no basic block
3571 was created.
3572
35732011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
3574
3575 * config/i386/sse.md (VI): New mode iterator.
3576 (SSEMODEI): Remove.
3577 (AVX256MODEI): Ditto.
3578 (AVXMODEF4P): Ditto.
3579 (avxvecpsmode): Ditto.
3580 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
3581 (sse2_andnot<mode>3): New expander.
3582 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3583 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
3584 (<any_logic:code><mode>3): Use VI mode iterator.
3585 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3586 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
3587 (*andnottf3): Handle AVX three-operand constraints.
3588 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3589
b1372d5d 35902011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 3591 Robert Millan <rmh@gnu.org>
b1372d5d
JM
3592
3593 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3594 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3595 GNU_USER_DYNAMIC_LINKER64): Define.
3596 (REG_NAME): Don't undefine.
3597 (MD_UNWIND_SUPPORT): Undefine.
3598 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3599 (REG_NAME): Don't undefine.
3600 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 3601 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 3602
761c0c6e
JM
36032011-04-11 Joseph Myers <joseph@codesourcery.com>
3604
3605 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3606 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3607
26e0228f
XDL
36082011-04-11 Xinliang David Li <davidxl@google.com>
3609
3610 * value-profile.c (check_ic_target): New function.
3611 (gimple_ic_transform): Sanity check indirect call target.
3612 * gimple-low.c (gimple_check_call_args): Interface change.
3613 (gimple_check_call_matching_types): New function.
3614 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
3615
36162011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
3617
3618 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
3619 tree-pretty-print.h & realmpfr.h.
3620
a58dfa49
VM
36212011-04-11 Vladimir Makarov <vmakarov@redhat.com>
3622
3623 PR middle-end/48464
3624 * ira.c (setup_pressure_classes): Fix typo in loop condition.
3625 (setup_allocno_and_important_classes): Ditto.
3626
107fd1c1
JM
36272011-04-11 Joseph Myers <joseph@codesourcery.com>
3628
3629 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
3630 GNU_USER_DYNAMIC_LINKER.
3631 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
3632 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3633 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
3634 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3635 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3636 GNU_USER_TARGET_OS_CPP_BUILTINS.
3637 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
3638 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3639 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3640 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3641 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
3642 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3643 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3644 GNU_USER_TARGET_OS_CPP_BUILTINS.
3645 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3646 GNU_USER_DYNAMIC_LINKER.
3647 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3648 GNU_USER_TARGET_OS_CPP_BUILTINS.
3649 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
3650 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3651 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
3652 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3653 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
3654 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
3655 GNU_USER_DYNAMIC_LINKER64): Remove.
3656 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
3657 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3658 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3659 GNU_USER_DYNAMIC_LINKER.
3660 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3661 GNU_USER_TARGET_OS_CPP_BUILTINS.
3662 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3663 GNU_USER_TARGET_OS_CPP_BUILTINS.
3664 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
3665 to GNU_USER_TARGET_OS_CPP_BUILTINS.
3666 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3667 GNU_USER_TARGET_OS_CPP_BUILTINS.
3668 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
3669 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
3670 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3671 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
3672 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3673 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3674 GNU_USER_DYNAMIC_LINKER.
3675 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3676 GNU_USER_TARGET_OS_CPP_BUILTINS.
3677 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
3678 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3679 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3680 GNU_USER_DYNAMIC_LINKER.
3681 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3682 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3683 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
3684 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3685 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3686 GNU_USER_DYNAMIC_LINKER.
3687 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
3688 GNU_USER_DYNAMIC_LINKERN32.
3689 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
3690 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
3691 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
3692 GNU_USER_DYNAMIC_LINKER32.
3693 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
3694 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3695 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3696 GNU_USER_DYNAMIC_LINKER.
3697 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3698 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3699 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
3700 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3701 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
3702 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
3703 GNU_USER_DYNAMIC_LINKER32.
3704 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3705 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
3706 GNU_USER_DYNAMIC_LINKER.
3707 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
3708 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3709 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3710 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
3711 GNU_USER_DYNAMIC_LINKER64.
3712 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
3713 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3714 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3715 GNU_USER_DYNAMIC_LINKER.
3716 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
3717 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3718 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3719 GNU_USER_DYNAMIC_LINKER.
3720 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
3721 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3722 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3723 GNU_USER_DYNAMIC_LINKER32.
3724 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3725 GNU_USER_DYNAMIC_LINKER64.
3726 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3727 GNU_USER_DYNAMIC_LINKER64.
3728 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
3729 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3730 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
3731 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3732 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 3733
e24609cf
JM
37342011-04-11 Joseph Myers <joseph@codesourcery.com>
3735
3736 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
3737 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
3738 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
3739 GNU_USER_DYNAMIC_LINKER.
3740 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3741 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
3742 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
3743 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
3744 GNU_USER_DYNAMIC_LINKER64.
3745 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3746 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
3747 GNU_USER_LINK_EMULATION.
3748 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
3749 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
3750 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
3751 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
3752 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
3753 CPP_SPEC, CC1_SPEC): Remove.
3754 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
3755 (GNU_USER_DYNAMIC_LINKER): Define.
3756 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
3757 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
3758 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
3759 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
3760 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
3761 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
3762 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3763 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
3764 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
3765 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
3766 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
3767 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
3768 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
3769 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
3770 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
3771 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3772 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3773 GNU_USER_DYNAMIC_LINKER.
3774 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3775 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3776 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3777 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3778 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3779 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3780 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
3781 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
3782 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 3783 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 3784
b8ce4e94
KT
37852011-04-11 Kai Tietz <ktietz@redhat.com>
3786
3787 PR target/9601
3788 PR target/11772
3789 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
3790 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
3791 comment.
3792 (ix86_is_msabi_thiscall): Removed.
3793 (ix86_is_type_thiscall): Likewise.
3794 (ix86_get_callcvt): New function.
3795 (ix86_comp_type_attributes): Simplify check.
3796 (ix86_function_regparm): Use ix86_get_callcvt for calling
3797 convention attribute checks.
3798 (ix86_return_pops_args): Likewise.
3799 (ix86_static_chain): Likewise.
3800 (x86_this_parameter): Likewise.
3801 (x86_output_mi_thunk): Likewise.
3802 (ix86_function_type_abi): Optimize check for types without attributes.
3803 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
3804 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
3805 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
3806 by flag-values.
3807 (IX86_BASE_CALLCVT): Helper macro.
3808 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3809 Use ix86_get_callcvt for calling convention attribute checks and avoid
3810 symbol-decoration for stdcall in TARGET_RTD case.
3811 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3812 Likewise.
3813 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
3814 for declaration.
3815
798dd0ba
UB
38162011-04-11 Uros Bizjak <ubizjak@gmail.com>
3817
3818 * config/i386/sse.md (VI_128): New mode iterator.
3819 (VI12_128): Rename from SSEMODE12.
3820 (VI14_128): Rename from SSEMODE14.
3821 (VI124_128): New mode iterator.
3822 (VI24_128): Rename from SSEMODE248.
3823 (VI248_128): Rename from SSEMODE248.
3824 (SSEMODE124C8): Remove.
3825 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3826 (*sse2_<plusminus_insn><mode>3): Merge with
3827 *avx_<plusminus_insn><mode>3.
3828 (*mulv8hi3): Merge with *avx_mulv8hi3.
3829 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
3830 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
3831 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
3832 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
3833 (ashr<mode>3): Merge with *avx_ashr<mode>3.
3834 (lshr<mode>3): Merge with *avx_lshr<mode>3.
3835 (ashl<mode>3): Merge with *avx_ashl<mode>3.
3836 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
3837 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
3838 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3839 (*<smaxmin:code>v8hi3): Ditto.
3840 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
3841 (*<smaxmin:code>v16qi3): Ditto.
3842 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
3843 (*sse2_eq<mode>3): Ditto.
3844 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
3845 (*sse2_gt<mode>3): Ditto.
3846 (vcondv2di): Split out of vcond<mode>.
3847 (vconduv2di): Split out of vcondu<mode>.
3848
956011be
RG
38492011-04-11 Richard Guenther <rguenther@suse.de>
3850
3851 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
3852 before calling tree_low_cst.
3853
e6313a78
RG
38542011-04-11 Richard Guenther <rguenther@suse.de>
3855
3856 * stor-layout.c (layout_type): Compute all array index size operations
3857 in the original type.
3858 (initialize_sizetypes): Add comment.
3859 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
3860
e69d7376
JM
38612011-04-11 Joseph Myers <joseph@codesourcery.com>
3862
3863 * common.opt (Tbss=, Tdata=, Ttext=): New options.
3864
9f9ebcdf
MJ
38652011-04-11 Martin Jambor <mjambor@suse.cz>
3866
3867 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
3868 of cgraph_node, handle NULL return value.
3869 (cgraph_global_info): Likewise.
3870 (cgraph_rtl_info): Likewise.
3871 * tree-inline.c (estimate_num_insns): Likewise.
3872 * gimplify.c (unshare_body): Likewise.
3873 (unvisit_body): Likewise.
3874 (gimplify_body): Likewise.
3875 * predict.c (optimize_function_for_size_p): Likewise.
3876 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
3877 (call_may_clobber_ref_p_1): Likewise.
3878 * varasm.c (function_section_1): Likewise.
3879 (assemble_start_function): Likewise.
3880
581985d7
MJ
38812011-04-11 Martin Jambor <mjambor@suse.cz>
3882
3883 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
3884 of cgraph_node.
3885 * final.c (rest_of_clean_state): Likewise.
3886 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
3887 * passes.c (pass_init_dump_file): Likewise.
3888 (execute_all_ipa_transforms): Likewise.
3889 (function_called_by_processed_nodes_p): Likewise.
3890 * predict.c (maybe_hot_frequency_p): Likewise.
3891 (probably_never_executed_bb_p): Likewise.
3892 (compute_function_frequency): Likewise.
3893 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
3894 (unnest_nesting_tree_1): Likewise.
3895 (lower_nested_functions): Likewise.
3896 * tree-optimize.c (execute_fixup_cfg): Likewise.
3897 (tree_rest_of_compilation): Likewise.
3898 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
3899 * tree-sra.c (ipa_early_sra): Likewise.
3900 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3901 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
3902 * ipa.c (record_cdtor_fn): Likewise.
3903 * ipa-inline.c (cgraph_early_inlining): Likewise.
3904 (compute_inline_parameters_for_current): Likewise.
3905 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3906 * ipa-pure-const.c (local_pure_const): Likewise.
3907 * ipa-split.c (split_function): Likewise.
3908 (execute_split_functions): Likewise.
3909 * cgraphbuild.c (build_cgraph_edges): Likewise.
3910 (rebuild_cgraph_edges): Likewise.
3911 (cgraph_rebuild_references): Likewise.
3912 (remove_cgraph_callee_edges): Likewise.
3913 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
3914 (verify_cgraph_node): Likewise.
3915 (cgraph_analyze_functions): Likewise.
3916 (cgraph_preserve_function_body_p): Likewise.
3917 (save_inline_function_body): Likewise.
3918 (save_inline_function_body): Likewise.
3919 * tree-inline.c (copy_bb): Likewise.
3920 (optimize_inline_calls): Likewise.
3921
57dbdc5a
MJ
39222011-04-11 Martin Jambor <mjambor@suse.cz>
3923
3924 PR tree-optimization/48195
3925 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
3926 ipa_check_create_edge_args.
3927 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
3928 ipa_check_create_edge_args.
3929 * ipa-inline.c (inline_generate_summary): Do not call
3930 ipa_check_create_node_params and ipa_check_create_edge_args.
3931 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
3932 ipa_check_create_edge_args.
3933
d108e679
AS
39342011-04-09 Anatoly Sokolov <aesok@post.ru>
3935
3936 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
3937 instead of loop.
3938 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
3939 * function.c (record_hard_reg_sets): Likewise.
3940 * ira.c (compute_regs_asm_clobbered): Likewise.
3941 * sched-deps.c (sched_analyze_1): Likewise.
3942 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
3943
3411bc59
XDL
39442011-04-09 Xinliang David Li <davidxl@google.com>
3945
3946 PR tree-optimization/PR48484
3947 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
3948 has_valid_pred lazily
3949
b365495a
DS
39502011-04-09 Duncan Sands <baldrick@free.fr>
3951
3952 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
3953
68bc509a
EB
39542011-04-08 Eric Botcazou <ebotcazou@adacore.com>
3955
3956 * combine.c (combine_validate_cost): Adjust comments. Set registered
3957 cost of I0 to zero at the end, if any.
3958
041e059f
XDL
39592011-04-08 Xinliang David Li <davidxl@google.com>
3960
68bc509a
EB
3961 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
3962 to insane profile data.
041e059f 3963
444b3995
XDL
39642011-04-08 Xinliang David Li <davidxl@google.com>
3965
3966 * ipa-cp.c (ipcp_update_profiling): Correct
3967 negative scale factor due to insane profile data.
3968
6a801cf2
XDL
39692011-04-08 Xinliang David Li <davidxl@google.com>
3970
3971 * final.c (dump_basic_block_info): New function.
3972 (final): Dump basic block.
3973 (final_scan_insn): Remove old dump.
3974
d5f3624e
SK
39752011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
3976
68bc509a
EB
3977 PR target/47829
3978 * config.gcc (i386-*-freebsd): Disable unwind table generation for
3979 crtbegin/crtend.
d5f3624e 3980
42821aff
MM
39812011-04-08 Michael Matz <matz@suse.de>
3982
3983 PR middle-end/48389
3984 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
3985 functions.
3986 (rebuild_jump_labels): Call rebuild_jump_labels_1.
3987 * rtl.h (rebuild_jump_labels_chain): Declare.
3988 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
3989 insns inserted on edges.
3990
ad7be009
JM
39912011-04-08 Joseph Myers <joseph@codesourcery.com>
3992
3993 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
3994 * config/arm/arm-arches.def: New.
3995 * config/arm/arm-opts.h: New.
3996 * config/arm/genopt.sh: New.
3997 * config/arm/arm-tables.opt: New (generated).
3998 * config/arm/arm.c (arm_handle_option, arm_target_help,
3999 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
4000 (all_architectures): Get most table contents from arm-arches.def.
4001 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
4002 arm_selected_tune here.
4003 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
4004 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
4005 (march=, mcpu=, mtune=): Use Enum and Var.
4006 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
4007 (arm.o): Update dependencies.
ecbb6fb7 4008
42821aff 40092011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
4010
4011 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
4012 of header_file.
4013 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
4014 (write_typed_alloc_defns): Likewise.
4015 (main): Calls write_typed_alloc_defns with output_header.
4016
8d189b3f
VM
40172011-04-08 Vladimir Makarov <vmakarov@redhat.com>
4018
68bc509a 4019 PR inline-asm/48435
8d189b3f
VM
4020 * ira-color.c (setup_profitable_hard_regs): Add comments.
4021 Don't take prohibited hard regs into account.
4022 (setup_conflict_profitable_regs): Rename to
4023 get_conflict_profitable_regs.
4024 (check_hard_reg_p): Check prohibited hard regs.
4025
44f370bf
NF
40262011-04-08 Nathan Froyd <froydnj@codesourcery.com>
4027
4028 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
4029 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
4030 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
4031
483d7ad3
JDA
40322011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4033
4034 PR target/48366
4035 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 4036 move from floating point to shift amount register.
483d7ad3
JDA
4037 (emit_move_sequence): Remove secondary reload support for floating
4038 point to shift amount amount register copies.
4039 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
4040 amount register copies.
4041 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
4042 register, return false if mode isn't a scalar integer mode.
4043 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
4044
97e03fa1
RG
40452011-04-08 Richard Guenther <rguenther@suse.de>
4046
4047 * gimple.c (gimple_call_flags): Remove kludge.
4048
9d40778b
AM
40492011-04-08 Alexander Monakov <amonakov@ispras.ru>
4050
4051 * sel-sched.c (sel_region_init): Move call to
4052 sel_setup_region_sched_flags after setup_current_loop_nest.
4053
19ac7892
AB
40542011-04-08 Andrey Belevantsev <abel@ispras.ru>
4055
4056 PR rtl-optimization/48272
19ac7892
AB
4057 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
4058 init_insn_reg_pressure_info. Adjust a caller.
4059 * sched-int.h (init_insn_reg_pressure_info): Declare.
4060 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
4061 when sched-pressure is enabled.
4062
0f8c63cc
RG
40632011-04-08 Richard Guenther <rguenther@suse.de>
4064
4065 * gimple.c (gimple_set_modified): Do not queue calls to
4066 MODIFIED_NORETURN_CALLS here ...
4067 * tree-ssa-operands.c (update_stmt_operands): ... but here.
4068
5e5a425e
RG
40692011-04-08 Richard Guenther <rguenther@suse.de>
4070
4071 PR lto/48467
4072 * toplev.c (lang_dependent_init): Do not open asm_out_file
4073 in WPA mode, nor perform debug machinery initialization.
4074 (finalize): Do not unlink asm_out_file in WPA mode.
4075
9bfc434b
RG
40762011-04-08 Richard Guenther <rguenther@suse.de>
4077
4078 * gimple.h (gimple_call_fntype): New function.
4079 (gimple_call_return_type): Use it.
4080 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
4081 * gimple-low.c (gimple_check_call_args): Likewise.
4082 * gimple.c (gimple_call_flags): Likewise.
4083 (gimple_call_arg_flags): Likewise.
4084 (gimple_call_return_flags): Likewise.
4085 * tree-cfg.c (verify_gimple_call): Likewise.
4086 (do_warn_unused_result): Likewise.
4087 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
4088 * value-prof.c (gimple_ic_transform): Fix fndecl check.
4089
7c1f0b40
DM
40902011-04-08 Dmitry Melnik <dm@ispras.ru>
4091
4092 PR rtl-optimization/48235
4093 * sel-sched.c (code_motion_process_successors): Recompute the last
4094 insn in basic block if control flow changed.
4095 (code_motion_path_driver): Ditto. Recompute the first insn as well.
4096 Update condition for ilist_remove.
4097
ea4d630f
AM
40982011-04-08 Alexander Monakov <amonakov@ispras.ru>
4099
4100 PR rtl-optimization/48302
4101 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
4102 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
4103 it to record added preheader blocks.
4104 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
4105 on to sel_add_loop_preheaders.
4106 (sel_region_init): Move call to setup_current_loop_nest after
4107 sel_init_bbs.
4108
07643d76
AM
41092011-04-08 Alexander Monakov <amonakov@ispras.ru>
4110
4111 PR target/48273
4112 * cfgloop.h (loop_has_exit_edges): New helper.
4113 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
4114 non-clonable.
4115 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
4116 that have no exit edges.
4117
1f3b2b4e
AM
41182011-04-08 Alexander Monakov <amonakov@ispras.ru>
4119
4120 PR rtl-optimization/48442
4121 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
4122 all callers. Adjust assert.
4123
554f1948
JJ
41242011-04-08 Jakub Jelinek <jakub@redhat.com>
4125
4126 PR tree-optimization/48377
4127 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
4128 is_packed to true even for types with smaller TYPE_ALIGN than
4129 TYPE_SIZE.
4130
ddf72388
RG
41312011-04-08 Richard Guenther <rguenther@suse.de>
4132
4133 PR bootstrap/48513
4134 * doc/tm.texi: Re-generate.
4135
0c27e2d8
WG
41362011-04-08 Wei Guozhi <carrot@google.com>
4137
4138 PR target/47855
4139 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
4140 * config/arm/arm.c (arm_attr_length_push_multi): New function.
4141 * config/arm/arm.md (*push_multi): Change the length computation to
4142 call a C function.
4143
07c5f94e
AS
41442011-04-08 Anatoly Sokolov <aesok@post.ru>
4145
4146 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
4147 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
4148 * doc/tm.texi: Regenerate.
4149 * system.h (ASM_OUTPUT_BSS): Poison.
4150 * varasm.c (asm_output_bss): Remove function.
4151 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 4152
07c5f94e
AS
4153 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
4154 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
4155 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
4156 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4157 Likewise.
4158 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4159 Likewise.
4160 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
4161 Likewise.
4162 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4163
5f2c36e1
JM
41642011-04-07 Joseph Myers <joseph@codesourcery.com>
4165
4166 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
4167 EnumValue lines.
4168
39e7722b
JM
41692011-04-07 Joseph Myers <joseph@codesourcery.com>
4170
4171 * config/m68k/m68k.c (m68k_handle_option): Don't handle
4172 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
4173 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
4174 OPT_mcpu32.
4175 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4176 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
4177 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
4178 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
4179 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
4180 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
4181 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
4182 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
4183 options. Don't map other m68k options manually. Don't handle
4184 old-style options as canonical.
4185 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 4186 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 4187
cf103ca4
EB
41882011-04-07 Eric Botcazou <ebotcazou@adacore.com>
4189
4190 * basic-block.h (force_nonfallthru): Move to...
4191 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
4192 (force_nonfallthru): ...here.
4193 * cfghooks.c (force_nonfallthru): New function.
4194 * cfgrtl.c (force_nonfallthru): Rename into...
4195 (rtl_force_nonfallthru): ...this.
4196 (commit_one_edge_insertion): Do not set AUX field.
4197 (commit_edge_insertions): Do not discover new basic blocks.
4198 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
4199 (cfg_layout_rtl_cfg_hooks): Likewise.
4200 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
4201 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
4202 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
4203
14431f58
AS
42042011-04-07 Anatoly Sokolov <aesok@post.ru>
4205
4206 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4207 Remove macros.
4208
3729983c
UB
42092011-04-07 Uros Bizjak <ubizjak@gmail.com>
4210
4211 * config/i386/sse.md: Update copyright year.
4212 (avxcvtvecmode): Remove.
4213 (sse_movhlps): Merge with *avx_movhlps.
4214 (sse_movlhps): Merge with *avx_movlhps.
4215 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
4216 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
4217 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
4218 (sse_loadhps): Merge with *avx_loadhps.
4219 (sse_storelps): Merge with *avx_storelps.
4220 (sse_loadlps): Merge with *avx_loadlps.
4221 (sse_movss): Merge with *avx_movss.
4222 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
4223 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
4224 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
4225 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
4226 (vec_set<mode>_0): Ditto.
4227 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
4228 (sse4_1_insertps): Merge with *avx_insertps.
4229 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
4230 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
4231 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
4232 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
4233 (sse2_storehpd): Merge with *avx_storehpd.
4234 (sse2_loadhpd): Merge with *avx_loadhpd.
4235 (sse2_loadlpd): Merge with *avx_loadlpd.
4236 (sse2_movsd): Merge with *avx_movsd.
4237 (*vec_concatv2df): Merge with *vec_concatv2df.
4238
4e626909
JJ
42392011-04-07 Jakub Jelinek <jakub@redhat.com>
4240
4241 PR debug/48343
4242 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 4243 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
4244 (try_combine): Add last_combined_insn parameter, pass it instead of
4245 i3 to propagate_for_debug.
4246
3729983c 42472011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
4248
4249 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
4250 to handle MDR <-> data register transfers.
4251 (movhi_internal): Likewise.
4252
20c03367
AM
42532011-04-07 Alan Modra <amodra@gmail.com>
4254
4255 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
4256 previous stack info.
4257
bf22920b
TV
42582011-04-07 Tom de Vries <tom@codesourcery.com>
4259
4260 PR target/43920
4261 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
4262 flow_find_cross_jump. Swap variables to implement backward replacement.
4263 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
4264
823918ae
TV
42652011-04-07 Tom de Vries <tom@codesourcery.com>
4266
4267 PR target/43920
4268 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
4269 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
4270 and bb2.
4271 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
4272 src1 or src2. Redirect edges to the last basic block. Update
4273 frequency and count on multiple basic blocks in case of fallthru.
823918ae 4274
472c95f5
TV
42752011-04-07 Tom de Vries <tom@codesourcery.com>
4276
4277 PR target/43920
4278 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
4279 function.
3729983c
UB
4280 (old_insns_match_p): Change return type. Replace return false/true
4281 with return dir_none/dir_both. Use can_replace_by.
4282 (flow_find_cross_jump): Add dir_p parameter. Init replacement
4283 direction from dir_p. Register replacement direction in dir, last_dir
4284 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
4285 merge_dir. Return replacement direction in dir_p.
4286 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
4287 return type of old_insns_match_p.
4288 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
4289 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
4290 flow_find_cross_jump.
4291 * basic-block.h (enum replace_direction): New type.
4292 (flow_find_cross_jump): Add parameter to declaration.
4293
a95d4000
UB
42942011-04-06 Uros Bizjak <ubizjak@gmail.com>
4295
4296 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
4297 (AVXMODEDCVTPS2DQ): Ditto.
4298 (VEC_FLOAT_MODE): Ditto.
4299 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
4300 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4301 (<any_logic:code><mode>3): Use VF mode iterator.
4302 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
4303 Use VF mode iterator.
4304 (copysign<mode>3): Use VF mode iterator.
4305 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
4306 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4307 (*<any_logic:code><MODEF:mode>3): Merge with
4308 *avx_<any_logic:code><MODEF:mode>3.
4309 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
4310 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
4311 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
4312 (avx_cvtdq2ps<avxmodesuffix>): Remove.
4313 (sse2_cvtdq2ps): Use %v modifier.
4314 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
4315 (avx_cvtps2dq<avxmodesuffix>): Remove.
4316 (sse2_cvtps2dq): Use %v modifier.
4317 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
4318 (avx_cvttps2dq<avxmodesuffix>): Remove.
4319 (sse2_cvttps2dq): Use %v modifier.
4320 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
4321 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
4322 (sse2_cvtsd2siq): Fix insn template.
4323 (sse2_cvtsd2siq_2): Ditto.
4324 (sse2_cvttsd2siq): Ditto.
4325 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
4326 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
4327
ad01c437
JM
43282011-04-06 Joseph Myers <joseph@codesourcery.com>
4329
4330 * gcov-io.c: Use GCC Runtime Library Exception.
4331
fe846284
JJ
43322011-04-06 Jakub Jelinek <jakub@redhat.com>
4333
4334 PR debug/48466
4335 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
4336 as base_reg whatever register reg has been eliminated to, instead
4337 of hardcoding STACK_POINTER_REGNUM.
4338
acce4e77
JM
43392011-04-06 Joseph Myers <joseph@codesourcery.com>
4340
4341 * doc/tm.texi.in: Document C target hooks as separate from general
4342 target hooks.
4343 * doc/tm.texi: Regenerate.
4344 * genhooks.c (struct hook_desc): Add docname field.
4345 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
4346 docname field.
4347 (hook_array): Include c-target.def.
4348 (emit_documentation): Use docname field in output.
4349 (emit_init_macros): Take docname argument. Only emit definitions
4350 for hooks matching docname.
4351 (main): Expect additional arguments in all cases. Pass argument
4352 to emit_init_macros.
4353 * target.def: Move initial macro definitions and comments to
4354 target-hooks-macros.h.
4355 (gcc_targetcm): Move to c-family/c-target.def.
4356 * target.h (targetcm): Move declaration to c-family/c-target.h.
4357 * targhooks.c (default_handle_c_option): Move to
4358 c-family/c-opts.c.
4359 * targhooks.h (default_handle_c_option): Move declaration to
4360 c-family/c-common.h.
4361 * target-hooks-macros.h: New file.
4362 * config.gcc (target_has_targetcm): Define and use to add to
4363 c_target_objs and cxx_target_objs.
4364 * config/default-c.c: New file.
4365 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
4366 of target.h and target-def.h.
4367 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
4368 (darwin_objc_construct_string, darwin_cfstring_ref_p,
4369 darwin_check_cfstring_format_arg): Make static.
4370 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4371 TARGET_STRING_OBJECT_REF_TYPE_P,
4372 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
4373 * config/darwin-protos.h (darwin_objc_construct_string,
4374 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
4375 declare.
4376 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4377 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 4378 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
4379 * config/t-darwin (darwin-c.o): Update dependencies.
4380 * system.h (TARGET_HAS_TARGETCM): Poison.
4381 * Makefile.in (TARGET_H): Update.
4382 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
4383 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
4384 (default-c.o): New target.
4385 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 4386 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
4387 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
4388 c-target.def.
4389 (build/genhooks.o): Update dependencies.
4390
275b4baa 43912011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 4392
275b4baa
RG
4393 * ipa-inline.c (enum inlining_mode): Remove.
4394 (cgraph_flatten): Use some other token.
4395 (cgraph_edge_early_inlinable_p): New function, split out from ...
4396 (cgraph_perform_always_inlining): New function, split out from ...
4397 (cgraph_decide_inlining_incrementally): ... here.
4398 (cgraph_mark_inline_edge): Adjust.
4399 (cgraph_early_inlining): Re-structure.
4400 (pass_early_inline): Require SSA form.
4401
f15b8bdf 44022011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
4403 Julian Brown <julian@codesourcery.com>
4404 Mark Shinwell <shinwell@codesourcery.com>
4405
4406 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
4407 LO_REGS only for Thumb-1.
4408 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
4409 be used in short instructions when optimising for size on Thumb-2.
4410
516426da
EB
44112011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4412
4413 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
4414 associated with user returns to be preserved.
4415
96621ebf
TG
44162011-04-06 Tristan Gingold <gingold@adacore.com>
4417
f15b8bdf
EB
4418 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
4419 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
4420 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
4421 if XCOFF_DEBUGGING_INFO.
4422
07c0852e
UB
44232011-04-06 Uros Bizjak <ubizjak@gmail.com>
4424
4425 * config/i386/i386.md (attribute isa): New.
4426 (attribute enabled): New.
4427 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
4428 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
4429 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
4430 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
4431 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
4432 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4433 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
4434 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
4435
4436 * config/i386/sse.md (VF): New mode iterator.
4437 (VF1): Ditto.
4438 (VF2): Ditto.
4439 (VF_128): Ditto.
4440 (SSEMODEF4): Remove.
4441 (attribute sse): Handle V8SF and V4DF modes.
4442 (<absneg:code><mode>2): Use VF mode iterator.
4443 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
4444 mode iterator.
4445 (<plusminus_insn><mode>3): Use VF mode iterator.
4446 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4447 Use VF mode iterator.
4448 (<sse>_vm<plusminus_insn><mode>3): Merge with
4449 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
4450 (mul<mode>3): Use VF mode iterator.
4451 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
4452 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
4453 mode iterator.
4454 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
4455 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
4456 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
4457 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
4458 mode iterator.
4459 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
4460 Use VF1 mode iterator.
4461 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
4462 (sqrt<VF2:mode>2): New expander.
4463 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
4464 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
4465 and sqrtv2df2. Use VF mode iterator.
4466 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
4467 mode iterator.
4468 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
4469 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
4470 Use VF1 mode iterator.
4471 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
4472 (<smaxmin:code><mode>3): Use VF mode iterator.
4473 (*<smaxmin:code><mode>3_finite): Merge with
4474 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
4475 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4476 (<sse>_vm<smaxmin:code><mode>2): Merge with
4477 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
4478 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
4479 mode iterator.
4480 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
4481 mode iterator.
4482 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
4483 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
4484 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
4485 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
4486 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
4487 VF mode iterator.
4488 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
4489 Use VF_128 mode iterator.
4490 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
4491 mode iterator.
4492 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
4493 VF_128 mode iterator.
4494 (vcond<mode>): Use VF mode iterator.
4495 * config/i386/predicates.md (sse_comparison_operator): Merge with
4496 avx_comparison_float_operator. Do not declare as special_predicate.
4497 * config/i386/i386.c (struct builtin_description): Update for renamed
4498 compare patterns.
4499 (ix86_expand_args_builtin): Ditto.
4500 (ix86_expand_sse_compare_mask): Ditto.
4501
ff5d142c
RG
45022011-04-06 Richard Guenther <rguenther@suse.de>
4503
4504 * tree-inline.c (estimate_num_insns): For calls simply account
4505 for all passed arguments and a used return value.
4506
d7d1d041 45072011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 4508
d7d1d041
RG
4509 PR tree-optimization/47663
4510 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
4511 call_stmt_time fields.
4512 (cgraph_edge_inlinable_p): Declare.
4513 (cgraph_edge_recursive_p): New inline function.
4514 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
4515 (cgraph_clone_edge): Copy it.
4516 * ipa-inline.c (cgraph_estimate_edge_time): New function.
4517 Account for call stmt time.
4518 (cgraph_estimate_time_after_inlining): Take edge argument.
4519 (cgraph_estimate_edge_growth): Account call stmt size.
4520 (cgraph_estimate_size_after_inlining): Take edge argument.
4521 (cgraph_mark_inline_edge): Adjust.
4522 (cgraph_check_inline_limits): Likewise.
4523 (cgraph_recursive_inlining_p): Remove.
4524 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
4525 (cgraph_decide_recursive_inlining): Take edge argument and
4526 adjust.
4527 (cgraph_decide_inlining_of_small_functions): Do not avoid
4528 diags for recursive inlining here.
4529 (cgraph_flatten): Adjust.
4530 (cgraph_decide_inlining_incrementally): Likewise.
4531 (estimate_function_body_sizes): Remove call cost handling.
4532 (compute_inline_parameters): Initialize caller edge call costs.
4533 (cgraph_estimate_edge_growth): New function.
4534 (cgraph_estimate_growth): Use it.
4535 (cgraph_edge_badness): Likewise.
4536 (cgraph_check_inline_limits): Take an edge argument.
4537 (cgraph_decide_inlining_of_small_functions): Adjust.
4538 (cgraph_decide_inlining): Likewise.
4539 * tree-inline.c (estimate_num_insns): Only account for call
4540 return value if it is used.
4541 (expand_call_inline): Avoid diagnostics on recursive inline
4542 functions here.
4543 * lto-cgraph.c (lto_output_edge): Output edge call costs.
4544 (input_edge): Input edge call costs.
4545
2feb95f7
RO
45462011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4547
4548 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4549
26fbd9c2
JW
45502011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4551
4552 * doc/invoke.texi (Spec Files): Fix typo.
4553
694dc0ca
EB
45542011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4555
4556 * profile.c (branch_prob): Move declaration of local variable. Remove
4557 obsolete ??? comment. Expand the location explicitly instead of using
4558 the LOCATION_FILE and LOCATION_LINE macros.
4559
4925d0d5
WG
45602011-04-06 Wei Guozhi <carrot@google.com>
4561
4562 PR target/47855
4563 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4564 (arm_cond_branch): Likewise.
4565 (arm_cond_branch_reversed): Likewise.
4566 (arm_jump): Likewise.
4567 (push_multi): Likewise.
4568 * config/arm/constraints.md (Py): New constraint.
4569
f55dfa2f
NF
45702011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4571
4572 PR bootstrap/48471
4573 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4574 Move these...
4575 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4576 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4577 #ifdef DBX_DEBUGGING_INFO.
4578
fca96842
BS
45792011-04-05 Bernd Schmidt <bernds@codesourcery.com>
4580
4581 PR bootstrap/48403
4582 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4583 if old and new states differ.
4584
30b83e38
JM
45852011-04-05 Joseph Myers <joseph@codesourcery.com>
4586
4587 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4588 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4589 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4590 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4591 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4592 mcfv4e): Use Alias.
4593 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4594 ColdFire options to -mcpu= options.
4595
277a9aa5
JL
45962011-04-05 Jeff Law <law@redhat.com>
4597
4598 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4599 check if BB is a successor of LOOP->header and return
4600 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4601
c1e2610e
SB
46022011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4603
4604 * cprop.c (struct reg_use): Remove.
4605 (reg_use_table): Make an array of RTX.
4606 (find_used_regs, constprop_register, local_cprop_pass,
4607 bypass_block): Simplify users of reg_use_table.
4608 (cprop_insn): Likewise. Iterate if copy propagation succeeded
4609 on one of the uses found by find_used_regs.
4610
e532f586
NF
46112011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4612
4613 PR bootstrap/48469
4614 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
4615 declaration.
4616
3fb7c055
NF
46172011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4618
4619 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
4620 as an rtx.
4621 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
4622
b71b43d9
SB
46232011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4624
4625 PR middle-end/48441
4626 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
4627
b405b274
NF
46282011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4629
4630 * combine.c: Include obstack.h.
4631 (struct insn_link): Define.
4632 (uid_log_links): Adjust type.
4633 (FOR_EACH_LOG_LINK): New macro.
4634 (insn_link_obstack): Declare.
4635 (alloc_insn_link): Define.
4636 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
4637 type of link variables.
4638 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
4639 (try_combine, record_promoted_values, distribute_notes): Likewise.
4640 (distribute_links): Likewise. Tweak prototype.
4641 (clear_log_links): Delete.
4642 (adjust_for_new_dest): Call alloc_insn_link.
4643 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
4644
6409abe3
NF
46452011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4646
4647 * gcse.c (modify_mem_list): Convert to an array of VECs.
4648 (canon_modify_mem_list, compute_transp): Tweak formatting.
4649 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
4650 (load_killed_in_block_p): Likewise.
4651 (record_last_mem_set_info): Likewise.
4652 (clear_modify_mem_tables): Likewise.
4653
170d8157
TV
46542011-04-05 Tom de Vries <tom@codesourcery.com>
4655
4656 PR middle-end/48461
4657 * function.c (emit_use_return_register_into_block): Only define if
4658 HAVE_return.
4659
c5911a55
EB
46602011-04-05 Eric Botcazou <ebotcazou@adacore.com>
4661
4662 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
4663
abd016e6
JM
46642011-04-05 Joseph Myers <joseph@codesourcery.com>
4665
4666 * config/rx/rx-opts.h: New.
4667 * config/rx/rx.c (rx_cpu_type): Remove.
4668 (rx_handle_option): Don't assert that global structures are in
4669 use. Access variables via opts pointer. Defer most handling of
4670 OPT_mint_register_. Use error_at.
4671 (rx_option_override): Handle deferred OPT_mint_register_ here.
4672 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
4673 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
4674 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
4675 (rx_cpu_types): New Enum and EnumValue entries.
4676 (mint-register=): Use Defer and use Var accordingly.
4677
1ed13f83
NF
46782011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4679
4680 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
4681 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
4682 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
4683 Move these...
4684 (debug_free_queue, debug_nesting, symbol_queue_index):
4685 ...and these...
4686 * dbxout.c: ...to here. Make static.
4687
6ce1edcf
NF
46882011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4689
4690 * gcse.c (modify_pair): Define. Define a VEC of it.
4691 (canon_modify_mem_list): Convert to an array of VECs.
4692 (free_insn_expr_list_list): Delete.
4693 (clear_modify_mem_tables): Call VEC_free instead.
4694 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
4695 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
4696 (canon_list_insert, compute_transp): Likewise.
4697
c201ac94
TV
46982011-04-05 Tom de Vries <tom@codesourcery.com>
4699
4700 PR target/43920
4701 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
4702 for size.
4703
4c029f40
TV
47042011-04-05 Tom de Vries <tom@codesourcery.com>
4705
4706 PR target/43920
4707 * function.c (emit_use_return_register_into_block): New function.
4708 (thread_prologue_and_epilogue_insns): Use
4709 emit_use_return_register_into_block.
4710
2a562b0a
TV
47112011-04-05 Tom de Vries <tom@codesourcery.com>
4712
4713 PR target/43920
4714 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
4715 insn.
4716
0248bceb
TV
47172011-04-05 Tom de Vries <tom@codesourcery.com>
4718
4719 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
4720
ffa94123
YZ
47212011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
4722
798dd0ba
UB
4723 * config/arm/arm.md (define_constants for unspec): Replace with
4724 define_c_enum.
4725 (define_constants for unspecv): Replace with define_c_enum.
4726 * config/arm/neon.md (define_constants for unspec): Replace with
4727 define_c_enum.
ffa94123 4728
3b8f9b46
RH
47292011-04-04 Richard Henderson <rth@redhat.com>
4730
720cf80f 4731 PR bootstrap/48400
3b8f9b46
RH
4732 * dwarf2out.c (output_line_info): Always emit line info from
4733 at least one section.
4734 (dwarf2out_init): Create text_section_line_info here ...
4735 (set_cur_line_info_table): ... not here.
4736
720cf80f 47372011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
4738
4739 PR target/48380
4740 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 4741 not called.
e5b0e1ca 4742
720cf80f 4743 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 4744
196565d4
SB
47452011-04-04 Steven Bosscher <steven@gcc.gnu.org>
4746
b77f9eab
SB
4747 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
4748 (expr_equiv_p): Remove.
4749 (insert_set_in_table): Look at <dest, src> pair instead of expr.
4750 (hash_scan_set): Update call to insert_set_in_table.
4751 (dump_hash_table): Dump <dest, src> pair.
4752 (lookup_set): Simplify. Lookup <dest, src> pair.
4753 (compute_transp): Remove, fold heavily simplified code into...
4754 (compute_local_properties): ...here. Expect COMP and TRANSP
4755 unconditionally.
4756 (find_avail_set): Take set directly from struct expr.
4757 (find_bypass-set): Likewise.
4758 (bypass_block): Likewise.
4759 (cprop_insn): Likewise. Remove redundant INSN_P test.
4760
384d7a55
SB
4761 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
4762 checks on form of COND from find_implicit_sets to here.
4763 (find_implicit_sets): Cleanup control flow. Split critical edges
4764 if it exposes implicit sets. Allocate/resize implicit_sets as
4765 necessary.
4766 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
4767 changed something. Run df_analyze after find_implicit_sets if any
4768 edges were split. Do not allocate implicit_sets here.
4769
3084ce69
SB
4770 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
4771 (gcse_obstack): Renamed to cprop_obstack.
4772 (GNEW, GNEWVEC, GNEWVAR): Remove.
4773 (gmalloc): Remove.
4774 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
4775 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
4776 (gcse_alloc): Likewise, and rename to cprop_alloc.
4777 (alloc_gcse_men, free_gcse_mem): Remove.
4778 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
4779 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
4780 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
4781
196565d4
SB
4782 * cprop.c (oprs_not_set_p): Remove.
4783 (mark_set, mark_clobber): Remove.
4784 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
4785 (reg_not_set_p): New function.
4786 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
4787 (cprop_insn): Likewise.
4788 (cprop_jump): Use FOR_EACH_EDGE.
4789
9b69cf83
BS
47902011-04-04 Bernd Schmidt <bernds@codesourcery.com>
4791
4792 PR bootstrap/48403
4793 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
4794 (rank_for_schedule): Use scheduled_insns vector instead of
4795 last_scheduled_insn.
4796 (ok_for_early_queue_removal): Likewise.
4797 (queue_to_ready): Search forward in nonscheduled_insns_begin if
4798 we have a dbg_cnt.
4799 (choose_ready): Likewise.
4800 (commit_schedule): Use VEC_iterate.
4801 (schedule_block): Initialize nonscheduled_insns_begin. If we have
4802 a dbg_cnt, use it and ensure the first insn is in the ready list.
4803 (haifa_sched_init): Allocate scheduled_insns.
4804 (sched_extend_ready_list): Don't allocate it; reserve space.
4805 (haifa_sched_finish): Free it.
4806
24f48c2f
JM
48072011-04-04 Joseph Myers <joseph@codesourcery.com>
4808
4809 * optc-gen.awk: Always remove type from Variable entry before
4810 recording in var_seen.
4811
8effe856
EB
48122011-04-04 Eric Botcazou <ebotcazou@adacore.com>
4813
4814 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
4815 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
4816 call to tidy_fallthru_edges.
4817
413519ae
JM
48182011-04-04 Joseph Myers <joseph@codesourcery.com>
4819
4820 * doc/options.texi (ToLower): Document.
3729983c 4821 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
4822 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
4823 * opts.h (cl_option): Add cl_tolower field.
4824 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
4825 arguments with lowercase strings.
4826 * config/rx/rx.opt (mcpu=): Add ToLower.
4827 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
4828 argument.
4829
7d34a1b0
RS
48302011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4831
4832 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
4833
c30e7434
RS
48342011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4835
4836 * config/vax/vax.c: Include reload.h.
4837
112a861d
AS
48382011-04-04 Anatoly Sokolov <aesok@post.ru>
4839
4840 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
4841 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4842 (sparc_preferred_reload_class): New function.
4843
e8c6bb74
JJ
48442011-04-04 Jakub Jelinek <jakub@redhat.com>
4845
2aeaa366 4846 PR debug/48401
e8c6bb74
JJ
4847 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4848 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
4849
2c081caf
NF
48502011-04-03 Nathan Froyd <froydnj@codesourcery.com>
4851
4852 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
4853 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
4854
53802f27
AS
48552011-04-03 Anatoly Sokolov <aesok@post.ru>
4856
4857 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
4858 (ASM_OUTPUT_ALIGNED_BSS): Define.
4859
e89964e3
MM
48602011-04-03 Michael Matz <matz@suse.de>
4861
4862 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
4863 and next_slot members.
4864 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
4865 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
4866 (lto_streamer_cache_append): Declare.
4867 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
4868 unsigned index, remove offset parameter, ensure that we append
4869 or update existing entries.
4870 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
4871 parameter, update next_slot for append.
4872 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
4873 parameter.
4874 (lto_streamer_cache_insert_at): Likewise.
4875 (lto_streamer_cache_append): New function.
4876 (lto_streamer_cache_lookup): Use unsigned index.
4877 (lto_streamer_cache_get): Likewise.
4878 (lto_record_common_node): Don't test tree_node_can_be_shared.
4879 (preload_common_node): Adjust call to lto_streamer_cache_insert.
4880 (lto_streamer_cache_delete): Don't free offsets member.
4881 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
4882 (lto_output_string_with_length): Use lto_output_data_stream.
4883 (lto_output_tree_header): Remove ix parameter, don't write it.
4884 (lto_output_builtin_tree): Likewise.
4885 (lto_write_tree): Adjust callers to above, don't track and write
4886 offset, write unsigned index.
4887 (output_unreferenced_globals): Don't emit all global vars.
4888 (write_global_references): Use unsigned indices.
4889 (lto_output_decl_state_refs): Likewise.
4890 (write_symbol): Likewise.
4891 * lto-streamer-in.c (lto_input_chain): Move earlier.
4892 (input_function): Use unsigned index.
4893 (input_alias_pairs): Don't read and then ignore all global vars.
4894 (lto_materialize_tree): Remove ix_p parameter, don't read index,
4895 don't pass it back, use lto_streamer_cache_append.
4896 (lto_register_var_decl_in_symtab): Use unsigned index.
4897 (lto_register_function_decl_in_symtab): Likewise.
4898 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
4899 index.
4900 (lto_get_builtin_tree): Don't read index, use
4901 lto_streamer_cache_append.
4902 (lto_read_tree): Adjust call to lto_materialize_tree.
4903
4904 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
4905 don't use function calls in arguments to MIN.
4906
4907 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
4908 twice.
4909
4910 * gimple.c (gimple_type_leader_entry): Mark deletable.
4911
b9a5b5b2
AM
49122011-04-03 Alan Modra <amodra@gmail.com>
4913
4914 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
4915
ac6a641b
MM
49162011-04-03 Michael Matz <matz@suse.de>
4917
4918 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
4919 an integer.
4920 * tree.h (tree_decl_non_common.vindex): Adjust comment.
4921
0038d4e0
MM
49222011-04-03 Michael Matz <matz@suse.de>
4923
e9c18386 4924 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
4925 * gimple-fold.c (canonicalize_constructor_val): Accept being called
4926 without function context.
4927 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
4928 current_function_decl and cfun.
4929
91f2fae8
MM
49302011-04-03 Michael Matz <matz@suse.de>
4931
4932 * tree.c (decl_init_priority_insert): Don't create entry for
4933 default priority.
4934 (decl_fini_priority_insert): Ditto.
4935 (fields_compatible_p, find_compatible_field): Remove.
4936 * tree.h (fields_compatible_p, find_compatible_field): Remove.
4937 * gimple.c (gimple_compare_field_offset): Adjust block comment.
4938
da29e070
EB
49392011-04-03 Eric Botcazou <ebotcazou@adacore.com>
4940
4941 * combine.c (try_combine): Remove useless local variable.
4942
4979c28b 49432011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 4944 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
4945
4946 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
4947 non-variable offsets and compare the remaining bases of the two
4948 accesses instead of looking for exact same data-ref.
4949
b4ddcaee
KT
49502011-04-02 Kai Tietz <ktietz@redhat.com>
4951
f90298e1
KT
4952 PR target/48416
4953 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
4954
b4ddcaee
KT
4955 * i386.c (ix86_is_msabi_thiscall): New helper function.
4956 (ix86_is_type_thiscall): New helper function.
4957 (ix86_comp_type_attributes): Handle thiscall for method-functions
4958 special.
4959 (init_cumulative_args): Likewise.
4960 (find_drap_reg): Likewise.
4961 (ix86_static_chain): Likewise.
4962 (x86_this_parameter): Likewise.
4963 (x86_output_mi_thunk): Likewise.
4964
2a9d769a 49652011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
4966 Nicolas Setton <setton@adacore.com>
4967 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
4968
4969 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
4970 (add_gnat_descriptive_type_attribute): New function.
4971 (gen_array_type_die): Call it.
4972 (gen_enumeration_type_die): Likewise.
4973 (gen_struct_or_union_type_die): Likewise.
4974 (modified_type_die): Likewise.
4975 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
4976 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
4977 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
4978
15a03a11
JJ
49792011-04-01 Jakub Jelinek <jakub@redhat.com>
4980
4981 PR bootstrap/48148
4982 * dwarf2out.c (resolve_addr): Don't call force_decl_die
4983 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
4984
4985 Revert:
4986 2011-03-17 Richard Guenther <rguenther@suse.de>
4987
4988 PR bootstrap/48148
4989 * lto-cgraph.c (input_overwrite_node): Clear the abstract
4990 origin for decls in other ltrans units.
4991 (input_varpool_node): Likewise.
4992
19228b93
JJ
49932011-04-01 Jakub Jelinek <jakub@redhat.com>
4994
4995 PR middle-end/48335
4996 * expr.c (expand_assignment): Handle all possibilities
4997 if TO_RTX is CONCAT.
e9c18386 4998 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
4999 (store_split_bit_field): If SUBREG_REG (op0) or
5000 op0 itself has smaller mode than word, return it
5001 for offset 0 and const0_rtx for out-of-bounds stores.
5002 If word is const0_rtx, skip it.
5003
88cb339e
N
50042011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
5005
5006 * config/h8300/h8300.c (print_operand_address): Rename to...
5007 (h8300_print_operand_address): ...this. Make static. Adjust comments.
5008 Call h8300_print_operand and h8300_print_operand_address instead of
5009 print_operand and print_operand_address. Declare.
5010 (print_operand): Renake to...
5011 (h8300_print_operand): ...this. Make static. Adjust comments.
5012 Call h8300_print_operand instead of print_operand. Declare.
5013 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
5014 (h8300_register_move_cost): Likewise.
5015 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
5016 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
5017 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
5018 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
5019 * config/h8300/h8300-protos.h (print_operand): Delete.
5020 (print_operand_address): Delete.
5021
756d6ee9
RH
50222011-04-01 Richard Henderson <rth@redhat.com>
5023
5024 PR 48400
5025 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
5026 in strict mode before dwarf4. Re-order tests to early out
5027 before switching sections.
5028
ceaaaeab
NF
50292011-04-01 Nathan Froyd <froydnj@codesourcery.com>
5030
5031 * config/h8300/constraints.md: New file.
5032 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
5033 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
5034 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
5035 * config/h8300/predicates.md (bit_operand): Likewise.
5036 (incdec_operand): Use satisfies_constraint_M and
5037 satisfies_constraint_O. Don't use C code block.
5038 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
5039 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
5040 (compute_mov_length): Use satisfies_constraint_G.
5041 (fix_bit_operand): Use satisfies_constraint_U.
5042 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
5043 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
5044 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
5045 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
5046 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
5047 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
5048 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
5049 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
5050 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
5051 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
5052 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
5053 (EXTRA_MEMORY_CONSTRAINT): Delete.
5054
08ae38e0
AP
50552011-04-01 Andrew Pinski <pinskia@gmail.com>
5056 Michael Meissner <meissner@linux.vnet.ibm.com>
5057
5058 PR target/48262
5059 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
5060 operands, as per the specifications.
5061
5062 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
5063 (vec_extract_evenv4sf): Ditto.
5064 (vec_extract_evenv8hi): Ditto.
5065 (vec_extract_evenv16qi): Ditto.
5066 (vec_extract_oddv4si): Ditto.
5067
bdb0b0f6
MW
50682011-03-31 Mark Wielaard <mjw@redhat.com>
5069
5070 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
5071 high_pc attribute if the CU has no associated code. Only output
5072 DW_AT_entry_pc for CU if not generating strict dwarf and
5073 dwarf_version < 4.
5074
722279e4
BS
50752011-04-01 Bernd Schmidt <bernds@codesourcery.com>
5076
5077 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
5078 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
5079 out of ...
5080 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
5081 * final.c (final_start_function): Call the new function rather
5082 than using a NULL argument for dwarf2out_frame_debug.
5083
c5dd277d
BS
5084 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
5085 that contains the prologue.
5086
ec4efea9
BS
5087 * haifa-sched.c (queue_insn): New arg REASON. All callers
5088 changed. Print it in debugging output.
5089
2a6a0d80
BS
5090 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
5091
86014d07
BS
5092 * sched-ebb.c (begin_schedule_ready): Remove second argument.
5093 Split most of the code into...
5094 (begin_move_insn): ... here. New function.
5095 (ebb_sched_info): Add a pointer to it.
5096 * haifa-sched.c (scheduled_insns): New static variable.
5097 (sched_extend_ready_list): Allocate it.
5098 (schedule_block): Use it to record the order of scheduled insns.
5099 Perform RTL changes to move insns only after all scheduling
5100 decisions have been made.
5101 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
5102 begin_move_insn field.
5103 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
5104 * sched-int.h (struct haifa_sched_info): Remove second argument
5105 from begin_schedule_ready hook. Add new member begin_move_insn.
5106 * sched-rgn.c (begin_schedule_ready): Remove second argument.
5107 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
5108
9d701248
BS
5109 * haifa-sched.c (prune_ready_list): New function, broken out of
5110 schedule_block.
5111 (schedule_block): Use it.
5112
1ca1dad5
UW
51132011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5114
5115 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
5116
49568e45
KT
51172011-04-01 Kai Tietz <ktietz@redhat.com>
5118
5119 * config.gcc (*-*-mingw*): Allow as option the
5120 posix threading model.
07c0852e 5121 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
5122 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
5123 definition.
5124 (CPP_SPEC): Add pthread/no-pthread handling.
5125 (LIB_SPEC): Likewise.
5126 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
5127 (LIB_SPEC): Likewise.
5128 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
5129 flag to pass -pthread option for shared libgcc build.
5130 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
5131 for shared libgcc build.
5132 * config/i386/t-mingw-pthread: New file.
5133 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
5134 New define to enable use of library pthread by default.
5135 * config/i386/mingw.opt (pthread): New driver option.
5136 (no-pthread): New driver option.
e9c18386 5137 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
5138 * config/i386/mingw-w64.opt: Likewise.
5139
636b4106
GF
51402011-04-01 Gary Funck <gary@intrepid.com>
5141
5142 * c-decl.c (grokdeclarator): Fix formatting.
5143
f04713ee
RS
51442011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5145
5146 * expr.c (emit_block_move_via_movmem): Use n_generator_args
5147 instead of n_operands.
5148 (set_storage_via_setmem): Likewise.
5149 * optabs.c (maybe_gen_insn): Likewise.
5150 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
5151 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
5152 (mips_expand_builtin_direct): Likewise.
5153 * config/spu/spu.c (expand_builtin_args): Likewise.
5154
b29387ee
RS
51552011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5156
5157 * recog.h (insn_data_d): Add n_generator_args.
5158 * genoutput.c (data): Likewise.
5159 (output_insn_data): Print it.
5160 (max_opno, num_dups): Delete.
5161 (scan_operands): Just fill in "d->operand[...]".
5162 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
5163
e792559a
RS
51642011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
5165
5166 * gensupport.h (pattern_stats): New structure.
5167 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
5168 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
5169 (max_operand_1, max_operand_vec): Delete.
5170 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
5171
e8110d6f
NF
51722011-03-31 Nathan Froyd <froydnj@codesourcery.com>
5173
5174 * emit-rtl.c (emit_pattern_after_setloc): New function.
5175 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
5176 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
5177 (emit_pattern_after): New function.
5178 (emit_insn_after, emit_jump_insn_after): Call it.
5179 (emit_call_insn_after, emit_debug_insn_after): Likewise.
5180 (emit_pattern_before_setloc): New function.
5181 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
5182 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
5183 Likewise.
5184 (emit_pattern_before): New function.
5185 (emit_insn_before, emit_jump_insn_before): Call it.
5186 (emit_call_insn_before, emit_debug_insn_before): Likewise.
5187
576f85f1
RH
51882011-03-31 Richard Henderson <rth@redhat.com>
5189
5190 * dwarf2out.c (dw_separate_line_info_ref): Remove.
5191 (dw_separate_line_info_entry): Remove.
5192 (enum dw_line_info_opcode): New.
5193 (dw_line_info_entry): Use it.
5194 (dw_line_info_table, dw_line_info_table_p): New.
5195 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
5196 (line_info_table, line_info_label_num): Remove.
5197 (line_info_table_in_use): Remove.
5198 (separate_line_info_table): Remove.
5199 (separate_line_info_table_allocated): Remove.
5200 (separate_line_info_table_in_use): Remove.
5201 (LINE_INFO_TABLE_INCREMENT): Remove.
5202 (line_info_label_num): New.
5203 (cur_line_info_table): New.
5204 (text_section_line_info, cold_text_section_line_info): New.
5205 (separate_line_info): New.
5206 (SEPARATE_LINE_CODE_LABEL): Remove.
5207 (print_dwarf_line_table): Remove.
5208 (debug_dwarf): Don't dump it.
5209 (output_one_line_info_table): New.
5210 (output_line_info): Use it.
5211 (new_line_info_table): New.
5212 (set_cur_line_info_table): New.
5213 (dwarf2out_switch_text_section): Use it.
5214 (dwarf2out_begin_function): Likewise.
5215 (push_dw_line_info_entry): New.
5216 (dwarf2out_source_line): Rewrite for new line info tables.
5217 (dwarf2out_init): Remove dead initailizations.
5218
300d83d9
JM
52192011-03-31 Joseph Myers <joseph@codesourcery.com>
5220
5221 * opts.h (cl_option): Add comments to fields. Add bit-fields for
5222 various flags.
5223 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
5224 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
5225 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
5226 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
5227 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
5228 * opt-functions.awk (flag_init, switch_bit_fields): New.
5229 (switch_flags): Don't handle flags moved to bit-fields. Don't
5230 generate CL_MISSING_OK or CL_SAVE.
5231 * optc-gen.awk: Update to generate bit-field output as well as
5232 flags field.
5233 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
5234 bit-field instead of CL_REJECT_DRIVER flag.
5235 * opts-common.c (generate_canonical_option,
5236 decode_cmdline_option): Use bit-fields instead of CL_* flags.
5237 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
5238 instead of CL_REJECT_NEGATIVE flag.
5239 * toplev.c (print_switch_values): Use cl_report bit-field instead
5240 of CL_REPORT flag.
5241
d4d73ce2
EB
52422011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5243
5244 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
5245 a zero minimum index only if it is redundant.
5246
b8faca75
VM
52472011-03-31 Vladimir Makarov <vmakarov@redhat.com>
5248
5249 PR rtl-optimization/48381
5250 * ira-color.c (assign_hard_reg): Use hard reg set intersection
5251 instead of ira_class_hard_reg_index for calculating conflicting
5252 hard registers.
5253
7d11cebe
SB
52542011-03-31 Steven Bosscher <steven@gcc.gnu.org>
5255
5256 * cprop.c: Clean up hash table building.
5257 (reg_avail_info): Remove.
5258 (oprs_available_p): Remove.
5259 (record_last_reg_set_info): Remove.
5260 (record_last_set_info): Remove.
5261 (reg_available_p): New function.
5262 (gcse_constant_p): Do not treat unfolded conditions as constants.
5263 (make_set_regs_unavailable): New function.
5264 (hash_scan_set): Simplify with new reg_available_p.
5265 (compute_hash_table_work): Traverse insns stream only once.
5266 Do not compute reg_avail_info. Traverse insns in reverse order.
5267 Record implicit sets after recording explicit sets from the block.
5268
98faf84f
MM
52692011-03-31 Michael Matz <matz@suse.de>
5270
e9c18386 5271 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 5272
f52d97da
AS
52732011-03-31 Anatoly Sokolov <aesok@post.ru>
5274
5275 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
5276 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
5277 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5278 (h8300_mode_dependent_address_p): New function.
5279 (h8300_get_index): Make static.
5280
e16b6fd0
JL
52812011-03-31 Jeff Law <law@redhat.com>
5282
10c51983
JL
5283 * reload1.c (elimination_effects): Fix typo in recent change.
5284
e9c18386 5285 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
5286 typo potentially leading to null pointer dereference.
5287
5288 * caller-save.c (new_saved_hard_reg): Eliminate return value.
5289 (setup_save_areas): Corresponding changes to avoid useless
5290 assignments.
5291
5292 * jump.c (reversed_comparison_code_parts): Avoid successive return
5293 statements when REVERSE_CONDITION is defined.
5294
5295 * expr.c (expand_assignment): Avoid useless assignments.
5296 (expand_expr_real_1): Likewise.
5297 (expand_expr_real_2): Avoid useless statements.
5298
5299 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
5300
5301 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5302
5303 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
5304 statements.
5305
5306 * stmt.c (expand_expr_stmt): Avoid useless assignment.
5307
eb1eb914
JM
53082011-03-31 Joseph Myers <joseph@codesourcery.com>
5309
5310 PR target/47109
5311 * doc/tm.texi.in (TARGET_VERSION): Remove.
5312 * doc/tm.texi: Regenerate.
5313 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
5314 * collect2.c (main): Don't use TARGET_VERSION.
5315 * mips-tdump.c (main): Don't use TARGET_VERSION.
5316 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 5317 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
5318 * config/rs6000/vxworksae.h: Remove.
5319 * config/alpha/alpha.h (TARGET_VERSION): Remove.
5320 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
5321 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
5322 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
5323 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5324 * config/arm/arm.h (TARGET_VERSION): Remove.
5325 * config/arm/coff.h (TARGET_VERSION): Remove.
5326 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
5327 * config/arm/elf.h (TARGET_VERSION): Remove.
5328 * config/arm/freebsd.h (TARGET_VERSION): Remove.
5329 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
5330 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
5331 * config/arm/pe.h (TARGET_VERSION): Remove.
5332 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
5333 * config/arm/semi.h (TARGET_VERSION): Remove.
5334 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
5335 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
5336 * config/arm/vxworks.h (TARGET_VERSION): Remove.
5337 * config/avr/avr.h (TARGET_VERSION): Remove.
5338 * config/bfin/bfin.h (TARGET_VERSION): Remove.
5339 * config/fr30/fr30.h (TARGET_VERSION): Remove.
5340 * config/frv/frv.h (TARGET_VERSION): Remove.
5341 * config/h8300/h8300.h (TARGET_VERSION): Remove.
5342 * config/i386/cygwin.h (TARGET_VERSION): Remove.
5343 * config/i386/darwin.h (TARGET_VERSION): Remove.
5344 * config/i386/darwin64.h (TARGET_VERSION): Remove.
5345 * config/i386/djgpp.h (TARGET_VERSION): Remove.
5346 * config/i386/freebsd.h (TARGET_VERSION): Remove.
5347 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
5348 * config/i386/gnu.h (TARGET_VERSION): Remove.
5349 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
5350 * config/i386/i386elf.h (TARGET_VERSION): Remove.
5351 * config/i386/linux.h (TARGET_VERSION): Remove.
5352 * config/i386/linux64.h (TARGET_VERSION): Remove.
5353 * config/i386/lynx.h (TARGET_VERSION): Remove.
5354 * config/i386/mingw32.h (TARGET_VERSION): Remove.
5355 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
5356 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
5357 * config/i386/netware.h (TARGET_VERSION): Remove.
5358 * config/i386/nto.h (TARGET_VERSION): Remove.
5359 * config/i386/openbsd.h (TARGET_VERSION): Remove.
5360 * config/i386/vxworks.h (TARGET_VERSION): Remove.
5361 * config/ia64/elf.h (TARGET_VERSION): Remove.
5362 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
5363 * config/ia64/hpux.h (TARGET_VERSION): Remove.
5364 * config/ia64/linux.h (TARGET_VERSION): Remove.
5365 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5366 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
5367 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5368 * config/lm32/lm32.h (TARGET_VERSION): Remove.
5369 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
5370 * config/m32c/m32c.h (TARGET_VERSION): Remove.
5371 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
5372 * config/m32r/m32r.h (TARGET_VERSION): Remove.
5373 * config/m68k/linux.h (TARGET_VERSION): Remove.
5374 * config/m68k/m68k.h (TARGET_VERSION): Remove.
5375 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
5376 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
5377 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
5378 * config/mep/mep.h (TARGET_VERSION): Remove.
5379 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
5380 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5381 * config/mips/iris6.h (MACHINE_TYPE): Remove.
5382 * config/mips/linux.h (TARGET_VERSION): Remove.
5383 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
5384 * config/mips/vxworks.h (TARGET_VERSION): Remove.
5385 * config/mmix/mmix.h (TARGET_VERSION): Remove.
5386 * config/mn10300/linux.h (TARGET_VERSION): Remove.
5387 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
5388 * config/pa/pa.h (TARGET_VERSION): Remove.
5389 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
5390 * config/picochip/picochip.h (TARGET_VERSION): Remove.
5391 * config/rs6000/aix.h (TARGET_VERSION): Remove.
5392 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
5393 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
5394 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
5395 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
5396 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
5397 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
5398 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
5399 * config/rs6000/linux.h (TARGET_VERSION): Remove.
5400 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
5401 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
5402 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
5403 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
5404 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
5405 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
5406 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
5407 * config/s390/linux.h (TARGET_VERSION): Remove.
5408 * config/s390/s390.h (TARGET_VERSION): Remove.
5409 * config/s390/tpf.h (TARGET_VERSION): Remove.
5410 * config/score/score.h (TARGET_VERSION): Remove.
5411 * config/sh/linux.h (TARGET_VERSION): Remove.
5412 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
5413 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
5414 * config/sh/sh.h (TARGET_VERSION): Remove.
5415 * config/sh/sh64.h (TARGET_VERSION): Remove.
5416 * config/sh/superh.h (TARGET_VERSION): Remove.
5417 * config/sh/vxworks.h (TARGET_VERSION): Remove.
5418 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
5419 * config/sparc/linux.h (TARGET_VERSION): Remove.
5420 * config/sparc/linux64.h (TARGET_VERSION): Remove.
5421 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
5422 TARGET_NAME32, TARGET_NAME): Remove.
5423 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
5424 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
5425 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
5426 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
5427 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
5428 * config/spu/spu.h (TARGET_VERSION): Remove.
5429 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
5430 * config/v850/v850.h (TARGET_VERSION): Remove.
5431 * config/vax/linux.h (TARGET_VERSION): Remove.
5432 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
5433 * config/xtensa/elf.h (TARGET_VERSION): Remove.
5434 * config/xtensa/linux.h (TARGET_VERSION): Remove.
5435
ace31bca
EB
54362011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5437
5438 PR target/48142
5439 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
5440 frame-related from frame-unrelated adjustments to the stack pointer.
5441
76f9db36
JJ
54422011-03-31 Jakub Jelinek <jakub@redhat.com>
5443
5444 * common.opt (fdebug-types-section): Move earlier.
5445 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
5446
b7826465
AT
54472011-03-31 Andreas Tobler <andreast@fgznet.ch>
5448
5449 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
5450 var.
5451
1290e54c
NF
54522011-03-30 Nathan Froyd <froydnj@codesourcery.com>
5453
5454 * tree.h (CASE_CHAIN): Define.
5455 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
5456 (gimple_redirect_edge_and_branch): Likewise.
5457
bddc98e1
VM
54582011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5459
5460 PR middle-end/48367
5461 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
5462 calculation.
5463
c865e437
JL
54642011-03-30 Jeff Law <law@redhat.com>
5465
b3750213 5466 * PR bootstrap/48371
c865e437
JL
5467 * reload1.c (reload): Fix botch in last change.
5468
5469 * reload.h (struct reload): Fix typo introduced in last change.
5470
2cdf9574
JM
54712011-03-30 Joseph Myers <joseph@codesourcery.com>
5472
5473 * config/arm/arm.opt (mhard-float, msoft-float): Mark
5474 Undocumented. Remove help text.
5475 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
5476 -mhard-float.
5477
666a21a2
JM
54782011-03-30 Joseph Myers <joseph@codesourcery.com>
5479
5480 * doc/options.texi (NegativeAlias): Document.
5481 (Alias): Mention NegativeAlias.
5482 * opt-functions.awk: Handle NegativeAlias.
e9c18386 5483 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
5484 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
5485 * opts.h (CL_NEGATIVE_ALIAS): Define.
5486 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
5487 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
5488 OPT_mspe_.
5489 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
5490 Alias entries.
5491 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5492 mno-spe and mno-isel instead of mspe=no and -misel=no.
5493
0fa4e351
MW
54942011-03-29 Mark Wielaard <mjw@redhat.com>
5495
5496 * common.opt (fdebug-types-section): New flag.
5497 * doc/invoke.texi: Document new -fno-debug-types-section flag.
5498 * dwarf2out.c (use_debug_types): New define.
5499 (struct die_struct): Mark die_id with GTY desc use_debug_types.
5500 (print_die): Guard output of type unit signatures using
5501 use_debug_types.
5502 (build_abbrev_table): Replace assert of dwarf_version >= 4
5503 with assert on use_debug_types.
5504 (size_of_die): Likewise.
5505 (unmark_dies): Likewise.
5506 (value_format): Decide AT_ref_external form on use_debug_types.
5507 (output_die): Replace dwarf_version version check guard with
5508 use_debug_types where appropriate.
5509 (modified_type_die): Likewise.
5510 (gen_reference_type_die): Likewise.
5511 (dwarf2out_start_source_file): Likewise.
5512 (dwarf2out_end_source_file): Likewise.
5513 (prune_unused_types_walk_attribs): Likewise.
5514 (dwarf2out_finish): Likewise.
5515
4648deb4
VM
55162011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5517
5518 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
5519
4f431835
RS
55202011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5521
5522 PR rtl-optimization/48332
5523 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
5524 mode of input operand N and modeN to its actual mode.
5525
f2034d06
JL
55262011-03-30 Jeff Law <law@redhat.com>
5527
5528 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
5529 define accessor macro.
5530 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
5531 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
5532 (reg_equiv_init): Likewise.
5533 (reg_equivs_size): New variable.
5534 (reg_equiv_init_size): Remove.
5535 (allocate_initial_values): Move prototype to here from....
5536 * integrate.h (allocate_initial_values): Remove prototype.
5537 * integrate.c: Include reload.h.
5538 (allocate_initial_values): Corresponding changes.
5539 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
5540 (fix_reg_equiv_init, no_equiv): Corresponding changes.
5541 (update_equiv_regs): Corresponding changes.
5542 (ira): Corresponding changes.
5543 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5544 (push_secondary_reload): Corresponding changes.
5545 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5546 (make_memloc, find_reloads_address): Corresponding changes.
5547 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5548 (find_reloads_address_1): Corresponding changes.
5549 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5550 (refers_to_regno_for_reload_p): Corresponding changes.
5551 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5552 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5553 * reload1.c: Include ggc.h.
5554 (grow_reg_equivs): New function.
5555 (replace_pseudos_in, reload): Corresponding changes.
5556 (calculate_needs_all_insns, alter_regs): Corresponding changes.
5557 (eliminate_regs_1, elimination_effects): Corresponding changes.
5558 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5559 (delete_output_reload): Likewise.
5560 * caller-save.c (mark_referenced_regs): Corresponding changes.
5561 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5562 * frv/predicates.md (frv_load_operand): Corresponding changes.
5563 * microblaze/microblaze.c (double_memory_operand): Corresponding
5564 changes.
5565 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5566 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 5567 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
5568 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5569 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5570 changes.
5571 * pa/pa.c (emit_move_sequence): Corresponding changes.
5572 * vax/vax.c (nonindexed_address_p): Corresponding changes.
5573
159b81b0
RS
55742011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5575
5576 PR target/47551
5577 * config/arm/arm.c (coproc_secondary_reload_class): Handle
5578 structure modes. Don't check neon_vector_mem_operand for
5579 vector or structure modes.
5580
a6217191
RS
55812011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5582 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5583
5584 PR target/43590
5585 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5586 operand 1 and reshuffle the operands to match.
5587 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5588
bd837408
CS
55892011-03-30 Christian Schüler <cschueler@gmx.de>
5590
6955d771 5591 PR driver/48208
bd837408 5592 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 5593
6955d771 5594 PR driver/48260
bd837408
CS
5595 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5596 handler function.
5597 * config/darwin.opt: Added '-arch' option.
5598
e9c0470a
NC
55992011-03-30 Nick Clifton <nickc@redhat.com>
5600
5601 * config/rx/rx.md: Add peepholes and patterns to combine
5602 extending loads and simple arithmetic instructions.
5603 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
5604 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5605 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 5606 modes to use pre-decrement and post-increment addressing.
e9c18386 5607 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 5608 addresses.
e9c18386
UB
5609 (rx_print_operand): Add support for %Q. Fix handling of %Q.
5610 (rx_memory_move_cost): Adjust cost of stores.
5611 (rx_adjust_insn_length): New function.
e9c0470a 5612
8a87e7ab
JJ
56132011-03-30 Jakub Jelinek <jakub@redhat.com>
5614
5615 PR c/48305
5616 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5617 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
5618 matching arg00/arg01 types.
5619
12486e03
EB
56202011-03-30 Eric Botcazou <ebotcazou@adacore.com>
5621
5622 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
5623 last_location to UNKNOWN_LOCATION.
5624
0b99eef6
L
56252011-03-30 H.J. Lu <hongjiu.lu@intel.com>
5626
5627 PR target/48349
5628 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
5629 FLOAT_SSE_REGS.
5630
023592aa
JM
56312011-03-30 Joseph Myers <joseph@codesourcery.com>
5632 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5633
5634 PR bootstrap/48337
5635 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
5636 Init(PROCESSOR_V7).
5637 (sparc_cpu): Likewise.
5638 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
5639 PROCESSOR_V7.
5640
ad3b266b
VM
56412011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5642
5643 PR target/48336
5644 PR middle-end/48342
5645 PR rtl-optimization/48345
5646 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
5647 hard regs for given mode from profitable regs when doing secondary
5648 allocation.
5649
633c9126
JL
56502011-03-29 Jeff Law <law@redhat.com>
5651
5652 PR bootstrap/48327
5653 * tree-ssa-threadupdate.c (struct redirection_data): Remove
5654 do_not_duplicate field.
5655 (lookup_redirection_data): Corresponding changes.
5656 (create_duplicates): Always create a template block.
5657 (redirect_edges): Remove code which reused the original block
5658 when it was going to become unreachable code.
5659 (thread_block): Don't set do_not_duplicate field.
5660
eb50f63a
JM
56612011-03-29 Joseph Myers <joseph@codesourcery.com>
5662
5663 * lto-opts.c (register_user_option_p, lto_register_user_option):
5664 Make type argument unsigned.
5665 * lto-streamer.h (lto_register_user_option): Make type argument
5666 unsigned.
5667 * opth-gen.awk: Make CL_* macros unsigned.
5668 * opts-common.c (find_opt): Make lang_mask argument unsigned.
5669 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
5670 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
5671 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
5672 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
5673 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
5674 (find_opt): Make lang_mask argument unsigned.
5675
76763a6d
VM
56762011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5677
5678 PR rtl-optimization/48331
5679 PR rtl-optimization/48334
5680 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
5681 for any used algorithm.
5682
5c82436e
VM
56832011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5684
5685 * ira-conflicts.c (build_object_conflicts): Add unused attribute
5686 to parent_max.
5687
7a81008b
UB
56882011-03-29 Uros Bizjak <ubizjak@gmail.com>
5689
5690 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
5691 (alpha_option_override): Don't set alpha_sr_alias_set.
5692 (emit_frame_store_1): Use gen_frame_mem rather than calling
5693 set_mem_alias_set.
5694 (alpha_expand_epilogue): Ditto.
5695
86c8d1f6
IR
56962011-03-29 Ira Rosen <ira.rosen@linaro.org>
5697
5698 PR tree-optimization/48290
5699 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
5700 vectorization, check that relevant phis in the basic block after
5701 the inner loop are really inner loop's exit phis.
5702
0d12220f
RS
57032011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
5704
e8cf17e7 5705 PR debug/48190
0d12220f
RS
5706 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
5707 (cached_dw_loc_list_def): New structure.
5708 (cached_dw_loc_list): New typedef.
5709 (cached_dw_loc_list_table): New variable.
5710 (cached_dw_loc_list_table_hash): New function.
5711 (cached_dw_loc_list_table_eq): Likewise.
5712 (add_location_or_const_value_attribute): Take a bool cache_p.
5713 Cache the list when the parameter is true.
5714 (gen_formal_parameter_die): Update caller.
5715 (gen_variable_die): Likewise.
5716 (dwarf2out_finish): Likewise.
5717 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
5718 while generating debug info for the decl.
5719 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
5720 (dwarf2out_init): Initialize cached_dw_loc_list_table.
5721 (resolve_addr): Cache the result of resolving a chain of
5722 location lists.
5723
1756cb66
VM
57242011-03-28 Vladimir Makarov <vmakarov@redhat.com>
5725
5726 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
5727 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 5728
1756cb66
VM
5729 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
5730 after regstat_init_n_sets_and_refs.
5731
5732 * ira.c: Add more comments at the top.
5733 (setup_stack_reg_pressure_class, setup_pressure_classes):
5734 Add comments how we compute the register pressure classes.
5735 (setup_allocno_and_important_classes): Add more comments.
5736 (setup_class_translate_array, reorder_important_classes)
5737 (setup_reg_class_relations): Add comments.
5738
5739 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
5740 start of the file.
5741
5742 * ira-color.c: Add 2011 to the Copyright line.
5743 (assign_hard_reg): Add more comments.
5744 (improve_allocation): Ditto.
5745
5746 * ira-costs.c: Add 2011 to the Copyright line.
5747 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
5748 comments.
5749 (setup_regno_cost_classes_by_mode): Ditto.
5750
5751 Initial patches from ira-improv branch:
5752
5753 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5754
f60c2554 5755 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
5756 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
5757 (ira_create_allocno): Remove initialization of
5758 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
5759 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
5760 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5761 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
5762 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
5763 Initialize ALLOCNO_ADD_DATA.
5764 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
5765 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
5766 ALLOCNO_REG.
5767 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
5768 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
5769
5770 * ira.c (ira_reallocate): Remove.
5771 (setup_pressure_classes): Call
5772 ira_init_register_move_cost_if_necessary. Use
5773 ira_register_move_cost instead of ira_get_register_move_cost.
5774 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
5775 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
5776
5777 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
5778 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5779 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
5780 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
5781 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
5782 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
5783 Fix formatting.
7a81008b 5784 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
5785 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
5786 (struct allocno_color_data): New.
5787 (allocno_color_data_t): New typedef.
5788 (allocno_color_data): New definition.
5789 (ALLOCNO_COLOR_DATA): New macro.
5790 (struct object_color_data): New.
5791 (object_color_data_t): New typedef.
5792 (object_color_data): New definition.
5793 (OBJECT_COLOR_DATA): New macro.
5794 (update_copy_costs, calculate_allocno_spill_cost): Call
5795 ira_init_register_move_cost_if_necessary. Use
5796 ira_register_move_cost instead of ira_get_register_move_cost.
5797 (move_spill_restore, update_curr_costs): Ditto.
5798 (allocno_spill_priority): Make it inline.
7a81008b 5799 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
5800 (struct coalesce_data, coalesce_data_t): New.
5801 (allocno_coalesce_data): New definition.
5802 (ALLOCNO_COALESCE_DATA): New macro.
5803 (merge_allocnos, coalesced_allocno_conflict_p): Use
5804 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
5805 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
5806 (coalesce_allocnos): Ditto.
5807 (setup_coalesced_allocno_costs_and_nums): Ditto.
5808 (collect_spilled_coalesced_allocnos): Ditto.
5809 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
5810 (setup_slot_coalesced_allocno_live_ranges): Ditto.
5811 (coalesce_spill_slots): Ditto.
5812 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
5813 free allocno_coalesce_data.
5814
5815 * ira-conflicts.c: Fix formatting.
5816 (process_regs_for_copy): Call
5817 ira_init_register_move_cost_if_necessary. Use
5818 ira_register_move_cost instead of ira_get_register_move_cost.
5819 (build_object_conflicts): Optimize.
5820
5821 * ira-costs.c (record_reg_classes): Optimize. Call
5822 ira_init_register_move_cost_if_necessary. Use
5823 ira_register_move_cost, ira_may_move_in_cost, and
5824 ira_may_move_out_cost instead of ira_get_register_move_cost and
5825 ira_get_may_move_cost.
5826 (record_address_regs): Ditto.
5827 (scan_one_insn): Optimize.
5828 (find_costs_and_classes): Optimize.
5829 (process_bb_node_for_hard_reg_moves): Call
5830 ira_init_register_move_cost_if_necessary. Use
5831 ira_register_move_cost instead of ira_get_register_move_cost.
5832
5833 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
5834 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
5835 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
5836 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
5837 definitions.
5838 (ira_initiate_emit_data, ira_finish_emit_data)
5839 (create_new_allocno): New functions.
7a81008b 5840 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
5841 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
5842 Use ira_register_move_cost instead of ira_get_register_move_cost.
5843
5844 * ira-int.h: Fix some comments.
7a81008b
UB
5845 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
5846 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
5847 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
5848 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
5849 add_data.
5850 (struct ira_allocno): Make mode and aclass a bitfield. Move other
5851 bitfield after mode. Make hard_regno a short int. Make
5852 hard_regno short. Remove first_coalesced_allocno and
5853 next_coalesced_allocno. Move mem_optimized_dest_p,
5854 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
5855 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
5856 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
5857 temp, colorable_p. Add new member add_data.
5858 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
5859 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
5860 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
5861 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
5862 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
5863 (ALLOCNO_ADD_DATA): New macro.
5864 (ira_emit_data_t): New typedef.
5865 (struct ira_emit_data): New. Move mem_optimized_dest_p,
5866 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
5867 from struct ira_allocno.
5868 (ALLOCNO_EMIT_DATA): New macro.
5869 (ira_allocno_emit_data, allocno_emit_reg): New.
5870 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 5871 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
5872 (OBJECT_ADD_DATA): New macro.
5873 (ira_reallocate): Remove.
5874 (ira_initiate_emit_data, ira_finish_emit_data): New.
5875 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
5876 (ira_init_register_move_cost_if_necessary): New.
5877 (ira_object_conflict_iter_next): Merge into
5878 ira_object_conflict_iter_cond.
7a81008b 5879 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 5880
f60c2554 5881 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
5882 ira_init_register_move_cost_if_necessary. Use
5883 ira_register_move_cost instead of ira_get_register_move_cost.
5884
5885 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5886
5887 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
5888
5889 * ira-costs.c: Fix formatting.
5890 (cost_classes, cost_classes_num): Remove.
5891 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
5892 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
5893 (cost_classes_del, cost_classes_htab): New.
5894 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
5895 (initiate_regno_cost_classes, setup_cost_classes): New.
5896 (setup_regno_cost_classes_by_aclass): New.
7a81008b 5897 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
5898 (record_reg_classes): Use regno_cost_classes instead of
5899 cost_classes. Move checking opposite operand up.
5900 (record_address_regs): Use regno_cost_classes
5901 instead of cost_classes.
5902 (scan_one_insn): Ditto. Use always general register.
5903 (print_allocno_costs): Use regno_cost_classes instead of
5904 cost_classes.
5905 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
5906 (find_costs_and_classes): Set up cost classes for each registers.
5907 Use also their mode for this. Use regno_cost_classes instead of
5908 cost_classes.
5909 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
5910 cost_classes.
5911 (free_ira_costs, ira_init_costs): Don't use cost_classes.
5912 (ira_costs, ira_set_pseudo_classes): Call
5913 initiate_regno_cost_classes and finish_regno_cost_classes.
5914
5915 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
5916
5917 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
5918
5919 * target.def (ira_cover_classes): Remove.
5920
7a81008b 5921 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
5922
5923 * doc/tm.texi.in: Ditto.
5924
5925 * ira-conflicts.c: Remove mentioning cover classes from the file.
5926 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 5927 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
5928
5929 * targhooks.c (default_ira_cover_classes): Remove.
5930
5931 * targhooks.h (default_ira_cover_classes): Ditto.
5932
5933 * haifa-sched.c: Remove mentioning cover classes from the file.
5934 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
5935 ira_pressure_classes and ira_pressure_classes_num instead of
5936 ira_reg_class_cover_size and ira_reg_class_cover. Use
5937 sched_regno_pressure_class instead of sched_regno_cover_class.
5938 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
5939 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5940
5941 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
5942 classes from the file.
5943 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
5944 (struct object_hard_regs, struct object_hard_regs_node): New.
5945 (struct ira_object): New members profitable_hard_regs,
5946 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
5947 (struct ira_allocno): Rename cover_class to aclass. Rename
5948 cover_class_cost and updated_cover_class_cost to class_cost and
5949 updated_class_cost. Remove splay_removed_p and
5950 left_conflict_size. Add new members colorable_p.
5951 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
5952 (ALLOCNO_COLORABLE_P): New macro.
5953 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
5954 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
5955 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
5956 (OBJECT_...): Rename parameter C to O.
5957 (OBJECT_PROFITABLE_HARD_REGS): New macro.
5958 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
5959 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
5960 (struct target_ira_int): New members x_ira_max_memory_move_cost,
5961 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
5962 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
5963 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
5964 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
5965 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
5966 x_ira_reg_class_subunion.
5967 (ira_max_memory_move_cost, ira_max_register_move_cost)
5968 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
5969 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
5970 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 5971 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
5972 (ira_reg_class_union): Rename to ira_reg_class_subunion.
5973 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5974 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5975 (ira_tune_allocno_costs_and_cover_classes): Rename to
5976 ira_tune_allocno_costs.
5977 (ira_debug_hard_regs_forest): New.
5978 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
5979 (ira_object_conflict_iter_next): Fix comments.
7a81008b 5980 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
5981 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
5982 cover_class to aclass.
5983 (ira_allocate_and_accumulate_costs): Ditto.
5984 (ira_allocate_and_set_or_copy_costs): Ditto.
5985
5986 * opts.c (decode_options): Remove ira_cover_class check.
5987
5988 * ira-color.c: Remove mentioning cover classes from the file. Use
5989 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
5990 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
5991 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
5992 (splay-tree.h): Remove include.
5993 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
5994 before copy_freq_compare_func.
5995 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
5996 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
5997 New definitions.
5998 (hard_regs_roots, hard_regs_node_vec): Ditto.
5999 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
6000 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
6001 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
6002 (create_new_object_hard_regs_node): Ditto.
6003 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 6004 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
6005 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
6006 Ditto.
6007 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
6008 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
6009 (remove_unused_object_hard_regs_nodes): Ditto.
6010 (enumerate_object_hard_regs_nodes): Ditto.
6011 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
6012 (object_hard_regs_subnode_t): Ditto.
6013 (struct object_hard_regs_subnode): Ditto.
6014 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
6015 (setup_object_hard_regs_subnode_index): Ditto.
6016 (get_object_hard_regs_subnodes_num): Ditto.
6017 (form_object_hard_regs_nodes_forest): Ditto.
6018 (finish_object_hard_regs_nodes_tree): Ditto.
6019 (finish_object_hard_regs_nodes_forest): Ditto.
6020 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 6021 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
6022 (pseudos_have_intersected_live_ranges_p): Rename to
6023 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
6024 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
6025 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
6026 (update_copy_costs): Remove assert. Skip cost update if the hard
6027 reg does not belong the class.
6028 (assign_hard_reg): Process only profitable hard regs.
6029 (uncolorable_allocnos_num): Make it scalar.
6030 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6031 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
6032 and ira_reg_class_max_nregs.
6033 (bucket_allocno_compare_func): Check frequency first.
6034 (sort_bucket): Add compare function as a parameter.
6035 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
6036 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
6037 (push_allocno_to_stack): Rewrite for checking new allocno
6038 colorability.
7a81008b 6039 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
6040 (push_only_colorable): Pass new parameter to sort_bucket.
6041 (push_allocno_to_spill): Remove.
6042 (allocno_spill_priority_compare): Make it inline and rewrite.
6043 (splay_tree_allocate, splay_tree_free): Remove.
6044 (allocno_spill_sort_compare): New function.
6045 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
6046 build and use splay tree. Choose first allocno in uncolorable
6047 allocno bucket to spill. Remove setting spill cost.
6048 (all_conflicting_hard_regs): Remove.
6049 (setup_allocno_available_regs_num): Check only profitable hard
6050 regs. Print info about hard regs nodes.
6051 (setup_allocno_left_conflicts_size): Remove.
6052 (put_allocno_into_bucket): Don't call
7a81008b 6053 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
6054 (improve_allocation): New.
6055 (color_allocnos): Call setup_profitable_hard_regs,
6056 form_object_hard_regs_nodes_forest, improve_allocation,
6057 finish_object_hard_regs_nodes_forest. Setup spill cost.
6058 (print_loop_title): Use pressure classes.
6059 (color_allocnso): Ditto.
6060 (do_coloring): Remove allocation and freeing splay_tree_node_pool
6061 and allocnos_for_spilling.
6062 (ira_sort_regnos_for_alter_reg): Don't setup members
6063 {first,next}_coalesced_allocno.
6064 (color): Remove allocating and freeing removed_splay_allocno_vec.
6065 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
6066 prohibited_class_mode_regs.
6067
6068 * ira-lives.c: Remove mentioning cover classes from the file. Fix
6069 formatting.
6070 (update_allocno_pressure_excess_length): Use pressure classes.
6071 (inc_register_pressure, dec_register_pressure): Check for pressure
6072 class.
6073 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
6074 pressure class. Use ira_reg_class_nregs instead of
6075 ira_reg_class_max_nregs.
6076 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
6077 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
6078 (single_reg_class): Use ira_reg_class_nregs instead of
6079 ira_reg_class_max_nregs.
6080 (process_bb_node_lives): Use pressure classes.
6081
6082 * ira-emit.c: Remove mentioning cover classes from the file. Use
6083 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
6084 (change_loop): Use pressure classes.
6085 (modify_move_list): Call ira_set_allocno_class instead of
6086 ira_set_allocno_cover_class.
6087
6088 * ira-build.c: Remove mentioning cover classes from the file. Use
6089 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
6090 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
6091 ALLOCNO_UPDATED_CLASS_COST instead of
6092 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
6093 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
6094 (ira_create_allocno): Remove initialization of
6095 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
6096 ALLOCNO_COLORABLE_P.
6097 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
6098 Update conflict regs for the objects.
6099 (create_cap_allocno): Remove assert. Don't propagate
6100 ALLOCNO_AVAILABLE_REGS_NUM.
6101 (ira_free_allocno_costs): New function.
6102 (finish_allocno): Change a part of code into call of
6103 ira_free_allocno_costs.
6104 (low_pressure_loop_node_p): Use pressure classes.
6105 (object_range_compare_func): Don't compare classes.
6106 (setup_min_max_conflict_allocno_ids): Ditto.
6107
6108 * loop-invariant.c: Remove mentioning cover classes from the file.
6109 Use ira_pressure_classes and ira_pressure_classes_num instead of
6110 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
6111 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
6112 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6113 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
6114 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
6115 STACK_REG_COVER_CLASS.
6116 (get_regno_cover_class): Rename to get_regno_pressure_class.
6117 (move_loop_invariants): Initialize and finalize regstat.
6118
6119 * ira.c: Remove mentioning cover classes from the file. Add
6120 comments about coloring without cover classes. Use ALLOCNO_CLASS
6121 instead of ALLOCNO_COVER_CLASS. Fix formatting.
6122 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
6123 setup_class_subset_and_memory_move_costs.
6124 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
6125 (setup_cover_and_important_classes): Rename to
6126 setup_allocno_and_important_classes.
6127 (setup_class_translate_array): New.
6128 (setup_class_translate): Call it for allocno and pressure classes.
6129 (cover_class_order): Rename to allocno_class_order.
6130 (comp_reg_classes_func): Use ira_allocno_class_translate instead
6131 of ira_class_translate.
6132 (reorder_important_classes): Set up ira_important_class_nums.
6133 (setup_reg_class_relations): Set up ira_reg_class_superunion.
6134 (print_class_cover): Rename to print_classes. Add parameter.
6135 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
6136 Print pressure classes too.
6137 (find_reg_class_closure): Rename to find_reg_classes. Don't call
6138 setup_reg_subclasses.
7a81008b 6139 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
6140 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6141 (setup_prohibited_class_mode_regs): Use
7a81008b 6142 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
6143 (clarify_prohibited_class_mode_regs): New function.
6144 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
6145 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
6146 (ira_init_once): Initialize them.
6147 (free_register_move_costs): Process them.
6148 (ira_init): Move calls of find_reg_classes and
6149 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
6150 Call clarify_prohibited_class_mode_regs.
6151 (ira_no_alloc_reg): Remove.
6152 (too_high_register_pressure_p): Use pressure classes.
6153
6154 * sched-deps.c: Remove mentioning cover classes from the file.
6155 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
6156 ira_pressure_classes and ira_pressure_classes_num instead of
6157 ira_reg_class_cover_size and ira_reg_class_cover.
6158 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
6159 sched_regno_pressure_class instead of sched_regno_cover_class.
6160 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
6161 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
6162
6163 * ira.h: Add 2010 to Copyright.
6164 (ira_no_alloc_reg): Remove external.
6165 (struct target_ira): Rename x_ira_hard_regno_cover_class,
6166 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
6167 x_ira_class_translate to x_ira_hard_regno_allocno_class,
6168 x_ira_allocno_classes_num, x_ira_allocno_classes, and
6169 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
6170 x_ira_pressure_classes, x_ira_pressure_class_translate, and
6171 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
6172 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
6173 x_ira_no_alloc_regs.
7a81008b 6174 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
6175 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
6176 ira_allocno_classes_num and ira_allocno_classes.
6177 (ira_class_translate): Rename to ira_allocno_class_translate.
6178 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
6179 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
6180 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
6181 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
6182 (ira_no_alloc_regs): New.
6183
6184 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
6185 classes from the file. Use ALLOCNO_CLASS instead of
6186 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
6187 ALLOCNO_COVER_CLASS_COST.
6188 (regno_cover_class): Rename to regno_aclass.
6189 (record_reg_classes): Use ira_reg_class_subunion instead of
6190 ira_reg_class_union.
6191 (record_address_regs): Check overflow.
6192 (scan_one_insn): Ditto.
7a81008b 6193 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
6194 (print_pseudo_costs): Use REG_N_REFS.
6195 (find_costs_and_classes): Use classes intersected with them on the
6196 1st pass. Check overflow. Use ira_reg_class_subunion instead of
6197 ira_reg_class_union. Use ira_allocno_class_translate and
6198 regno_aclass instead of ira_class_translate and regno_cover_class.
6199 Modify code for finding regno_aclass. Setup preferred classes for
6200 the next pass.
6201 (setup_allocno_cover_class_and_costs): Rename to
6202 setup_allocno_class_and_costs. Use regno_aclass instead of
6203 regno_cover_class. Use ira_set_allocno_class instead of
6204 ira_set_allocno_cover_class.
6205 (init_costs, finish_costs): Use regno_aclass instead of
6206 regno_cover_class.
6207 (ira_costs): Use setup_allocno_class_and_costs instead of
6208 setup_allocno_cover_class_and_costs.
6209 (ira_tune_allocno_costs_and_cover_classes): Rename to
6210 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
6211 by processing objects. Use ira_reg_class_max_nregs instead of
6212 ira_reg_class_nregs.
6213
6214 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
6215
6216 * sched-int.h: Remove mentioning cover classes from the file.
6217 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
6218
6219 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
6220 classes from the file.
6221 (struct reg_pref): Rename coverclass into allocnoclass.
6222 (reg_cover_class): Rename to reg_allocno_class.
6223
7a81008b 6224 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
6225
6226 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
6227
6228 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6229
6230 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
6231
6232 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
6233
6234 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
6235
6236 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
6237
6238 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
6239
6240 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
6241
6242 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
6243
6244 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
6245 (i386_ira_cover_classes): Ditto.
6246
6247 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6248
6249 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
6250
6251 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
6252
6253 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
6254
6255 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
6256
6257 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
6258
6259 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
6260 (mips_ira_cover_classes): Ditto.
6261
6262 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
6263
6264 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
6265
6266 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
6267
6268 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
6269
6270 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
6271
6272 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
6273 (IRA_COVER_CLASSES_VSX): Ditto.
6274
6275 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
6276 (rs6000_ira_cover_classes): Ditto.
6277
6278 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
6279
6280 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
6281
6282 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
6283
6284 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
6285
6286 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
6287
6288 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
6289
6290 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
6291
6292 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
6293
6294 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
6295
6296 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
6297
2b80199f
JJ
62982011-03-29 Jakub Jelinek <jakub@redhat.com>
6299
71dae1fe
JJ
6300 PR debug/48253
6301 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
6302 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
6303 dw_fde_unlikely_section_end_label, cold_in_std_section,
6304 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
6305 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
6306 fields.
6307 (output_fde): Use dw_fde_second_{begin,end} if second is
6308 true, otherwise dw_fde_{begin,end}.
6309 (output_call_frame_info): Test dw_fde_second_begin != NULL
6310 instead of dw_fde_switched_sections.
6311 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
6312 fields, initialize new fields. Initialize in_std_section
6313 unconditionally from the first partition.
6314 (dwarf2out_end_epilogue): Don't override dw_fde_end when
6315 dw_fde_second_begin is non-NULL.
6316 (dwarf2out_switch_text_section): Stop initializing removed
6317 dw_fde_struct fields, initialize new fields, initialize
6318 also dw_fde_end here. Set dw_fde_switch_cfi even when
6319 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
6320 (struct var_loc_list_def): Add last_before_switch field.
6321 (arange_table, arange_table_allocated, arange_table_in_use,
6322 ARANGE_TABLE_INCREMENT, add_arange): Removed.
6323 (size_of_aranges): Count !in_std_section and !second_in_std_section
6324 hunks in fdes, instead of looking at arange_table_in_use.
6325 (output_aranges): Add aranges_length argument, don't call
6326 size_of_aranges here. Instead of using aranges_table*
6327 emit ranges for fdes when !in_std_section resp.
6328 !second_in_std_section.
6329 (dw_loc_list): Break ranges crossing section switch.
6330 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 6331 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
6332 (gen_subprogram_die): Don't call add_arange. Use
6333 dw_fde_{begin,end} for first partition and if switched
6334 section dw_fde_second_{begin,end} for the second.
6335 (var_location_switch_text_section_1,
6336 var_location_switch_text_section): New functions.
6337 (dwarf2out_begin_function): Initialize cold_text_section even
6338 when function_section () isn't text_section.
6339 (prune_unused_types): Don't walk arange_table.
6340 (dwarf2out_finish): Don't needlessly test
6341 flag_reorder_blocks_and_partition when testing cold_text_section_used.
6342 If info_section_emitted, call size_of_aranges and if it indicates
6343 non-empty .debug_aranges, call output_aranges with the computed
6344 size. Stop using removed dw_fde_struct fields, use
6345 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
6346 for second.
6347
2b80199f
JJ
6348 PR debug/48203
6349 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
6350 create ENTRY_VALUE if incoming or address of incoming's MEM
6351 is a hard REG.
6352 * dwarf2out.c (mem_loc_descriptor): Don't emit
6353 DW_OP_GNU_entry_value of DW_OP_fbreg.
6354 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
6355 on ENTRY_VALUE is able to find the canonical parameter VALUE.
6356 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
6357 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
6358 ENTRY_VALUE_EXPs.
6359 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
6360 is a REG_P or MEM_P with REG_P address, compute hash directly
6361 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
6362 (preserve_only_constants): Don't clear VALUES forwaring
6363 ENTRY_VALUE to some other VALUE.
6364
8a445129
RS
63652011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
6366
6367 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
6368 instead of GEN_INT.
6369
c82fee88
EB
63702011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6371
6372 * cfgexpand.c (expand_gimple_cond): Always set the source location and
6373 block before expanding the statement.
6374 (expand_gimple_stmt_1): Likewise. Set them here...
6375 (expand_gimple_stmt): ...and not here. Tidy.
6376 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
6377 unknown.
6378
e45425ec
SB
63792011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6380
6381 * Makefile.in: New rule for cprop.o.
6382 * gcse.c: Move constant/copy propagation to cprop.c.
6383 (compute_local_properties): Only handle expression tables.
6384 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
6385 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
6386 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
6387 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 6388 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
6389 compute_cprop_data, find_used_regs, try_replace_reg,
6390 find_avail_set, cprop_jump, constprop_register, cprop_insn,
6391 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
6392 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
6393 find_bypass_set, reg_killed_on_edge, bypass_block,
6394 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
6395 execute_rtl_cprop, pass_rtl_cprop): Move to...
6396 * cprop.c: ...here. New file, constant/copy propagation for RTL
6397 moved from gcse.c to here with minor cleanups in duplicated code.
6398
c09d5426
L
63992011-03-28 H.J. Lu <hongjiu.lu@intel.com>
6400
6401 * config/i386/i386.c (flag_opts): Fix a typo in
6402 -mavx256-split-unaligned-store.
6403
9eaa7740
AS
64042011-03-28 Anatoly Sokolov <aesok@post.ru>
6405
6406 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6407 LIBCALL_VALUE): Remove macros.
6408 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6409 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6410 (h8300_function_value, h8300_libcall_value,
6411 h8300_function_value_regno_p): New functions.
6412
dcec2be2
AS
64132011-03-28 Anatoly Sokolov <aesok@post.ru>
6414
6415 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
6416
520af9ec
JL
64172011-03-28 Jeff Law <law@redhat.com>
6418
6419 * tree-ssa-threadupdate.c (redirect_edges): Call
6420 create_edge_and_update_destination_phis as needed.
6421 (create_edge_and_update_destination_phis): Accept new BB argument.
6422 All callers updated.
6423 (thread_block): Do not update the profile when threading around
6424 intermediate blocks.
6425 (thread_single_edge): Likewise.
6426 (determine_bb_domination_status): If BB is not a successor of the
6427 loop header, return NONDOMINATING.
6428 (register_jump_thread): Note when we register a jump thread around
6429 an intermediate block.
6430 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
6431 (thread_across_edge): Use it.
6432
7450b54f
TG
64332011-03-28 Tristan Gingold <gingold@adacore.com>
6434
6435 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
6436 when for_return is 2.
6437
649beb33
JL
64382011-03-28 Jeff Law <law@redhat.com>
6439
6440 * var-tracking.c (canonicalize_values_mark): Delete unused
6441 lhs assignment.
6442 (canonicalize_values_star, set_variable_part): Likewise.
6443 (clobber_variable_part, delete_variable_part): Likewise.
6444
d5b8da97
SB
64452011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6446
6447 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
6448
322dd859
MJ
64492011-03-28 Martin Jambor <mjambor@suse.cz>
6450
6451 * tree-inline.c (expand_call_inline): Do not check that destination
6452 node is analyzed.
6453 (optimize_inline_calls): Assert that destination node is analyzed.
6454 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
6455 not call tree_lowering_passes.
6456 * cgraph.h (cgraph_analyze_function): Declare.
6457 * cgraphunit.c (cgraph_analyze_function): Make public.
6458
aa53e58b
JM
64592011-03-28 Joseph Myers <joseph@codesourcery.com>
6460
6461 * config/sparc/sparc-opts.h: New.
6462 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
6463 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
6464 (sparc_option_override): Store processor_type enumeration rather
6465 than string in cpu_default. Remove name and enumeration from
6466 cpu_table. Directly default -mcpu then default -mtune from -mcpu
6467 without using sparc_select. Use target_flags_explicit instead of
6468 fpu_option_set.
6469 * config/sparc/sparc.h (enum processor_type): Move to
6470 sparc-opts.h.
6471 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
6472 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
6473 HeaderInclude entry.
6474 (mcpu=, mtune=): Use Var and Enum.
6475 (sparc_processor_type): New Enum and EnumValue entries.
6476
dd350eba
RO
64772011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6478 Iain Sandoe <iains@gcc.gnu.org>
6479
6480 PR target/48245
6481 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
6482
1b29f05e
EB
64832011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6484
6485 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
6486 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
6487 Insert new statements at it in lieu of STMT.
6488 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
6489 * tree-vect-stmts.c (vectorizable_store): Likewise.
6490 (vectorizable_load): Likewise.
6491
506e6808
UB
64922011-03-28 Uros Bizjak <ubizjak@gmail.com>
6493
6494 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
6495 (divtf3): Ditto.
6496 (multf3): Ditto.
6497 (subtf3): Ditto.
6498
2e939ee9
L
64992011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6500
6501 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
6502 unaligned 256bit load/store.
6503 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
6504 (*avx_movdqu<avxmodesuffix>): Likewise.
6505
5e85ab88
JDA
65062011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6507
6508 PR target/48288
6509 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
6510 * config/pa/pa.md (iordi3): Use new predicate in expander.
6511 (iorsi3): Likewise.
6512
47be3d6d
AS
65132011-03-27 Anatoly Sokolov <aesok@post.ru>
6514
506e6808 6515 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 6516 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
6517 * config/mips/mips-protos.h (mips_function_value): Remove.
6518 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
6519 (mips_function_value_1): ... this. Make static. Handle receiving
6520 the function type in 'fn_decl_or_type' argument.
6521 (mips_function_value, mips_libcall_value,
6522 mips_function_value_regno_p): New function.
6523 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6524 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6525
d253656a
L
65262011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6527
6528 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
6529 and -mavx256-split-unaligned-store.
6530 (ix86_option_override_internal): Split 32-byte AVX unaligned
6531 load/store by default.
6532 (ix86_avx256_split_vector_move_misalign): New.
6533 (ix86_expand_vector_move_misalign): Use it.
6534
6535 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
6536 -mavx256-split-unaligned-store.
6537
6538 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
6539 256bit load/store. Generate unaligned store on misaligned memory
6540 operand.
6541 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
6542 256bit load/store.
6543 (*avx_movdqu<avxmodesuffix>): Likewise.
6544
6545 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6546 -mavx256-split-unaligned-store.
6547
1ea9206a
RS
65482011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6549
6550 PR target/38598
6551 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6552 Update commentary.
6553
b99ce2a8
RS
65542011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6555
6556 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6557 opno arguments with an expand_operand. Use create_input_operand.
6558 (mips_prepare_builtin_target): Delete.
6559 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6560 functions.
6561 (mips_expand_builtin_direct): Use create_output_operand and
6562 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
6563 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
6564 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6565
69d52339
IR
65662011-03-27 Ira Rosen <ira.rosen@linaro.org>
6567
6568 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6569 function.
6570 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6571
ba5e9aca
EB
65722011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6573
6574 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6575 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
6576 basic blocks and call commit_edge_insertions directly.
6577 (fixup_abnormal_edges): Move from here to...
6578 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
6579 on the edges and return whether some have actually been inserted.
6580 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6581 compensation code.
6582
5d369d58
AB
65832011-03-26 Andrey Belevantsev <abel@ispras.ru>
6584
6585 PR rtl-optimization/48144
6586 * sel-sched-ir.c (merge_history_vect): Factor out from ...
6587 (merge_expr_data): ... here.
6588 (av_set_intersect): Rename to av_set_code_motion_filter.
6589 Update all callers. Call merge_history_vect when an expression
6590 is found in both sets.
6591 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6592
f082c000
AM
65932011-03-26 Alan Modra <amodra@gmail.com>
6594
6595 * config/rs6000/predicates.md (word_offset_memref_op): Handle
6596 cmodel medium addresses.
6597 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6598 64-bit gpr loads and stores.
6599 (rs6000_secondary_reload_ppc64): New function.
6600 * config/rs6000/rs6000-protos.h: Declare it.
6601 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6602
8ac5e12e
AM
66032011-03-26 Alan Modra <amodra@gmail.com>
6604
6605 PR target/47487
6606 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6607 GNU Go in traceback table.
6608
c2654ded
RH
66092011-03-25 Richard Henderson <rth@redhat.com>
6610
6611 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6612 if there are exactly 6 operands.
6613 (set_storage_via_setmem): Similarly.
6614
ba78087b
KT
66152011-03-25 Kai Tietz <ktietz@redhat.com>
6616
6617 * collect2.c (write_c_file_stat): Handle backslash
6618 as right-hand directory separator.
6619 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
6620 checking just for slash.
6621 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
6622 instead of checking for trailing slash.
6623 * gcc.c (record_temp_file): Use filename_cmp instead
6624 of strcmp.
6625 (do_spec_1): Likewise.
6626 (replace_outfile_spec_function): Likewise.
6627 (is_directory): Use filename_ncmp instead of strncmp.
6628 (print_multilib_info): Likewise.
6629 * gcov.c (find_source): Use filename_cmp instead
6630 instead of strcmp.
6631 (make_gcov_file_name): Fix order of slash/backslash
6632 checks.
6633 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
6634 (add_standard_paths): Likewise.
6635 * mips-tfile.c (saber_stop): Handle backslash.
6636 * prefix.c (update_path): Use filename_ncmp instead of
6637 strncmp.
6638 * profile.c (output_location): Use filename_cmp instead
6639 of strcmp.
6640 * read-md.c (handle_toplevel_file): Handle backslash.
6641 * tlink.c (frob_extension): Likewise.
6642 * tree-cfg.c (same_line_p): Use filename_cmp instead of
6643 strcmp.
6644 * tree-dump.c (dequeue_and_dump): Handle backslash.
6645 * tree.c (get_file_function_name): Likewise.
6646 * gengtype.c (read_input_list): Likewise.
6647 (get_file_realbasename): Likewise.
6648 (get_output_file_with_visibility): Use filename_cmp
6649 instead of strcmp.
6650
75f6ec9a
RS
66512011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
6652
6653 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
6654 case to VFPv1.
6655
6c4e2997
NF
66562011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6657
6658 * fold-const.c (expr_location_or): New function.
6659 (fold_truth_not_expr): Call it.
6660
0edf1bb2
JL
66612011-03-25 Jeff Law <law@redhat.com>
6662
6663 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
6664 va_end.
6665 * c-family/c-common.c (def_fn_type): Likewise.
6666 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
6667 * emit-rtl.c (gen_rtvec): Likewise.
6668 * lto/lto-lang.c (def_fn_type): Likewise.
6669
fdc2de95
RG
66702011-03-25 Richard Guenther <rguenther@suse.de>
6671
6672 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
6673 also generate copies.
6674 (fini_copy_prop): Handle constant values properly.
6675
21385db0
JJ
66762011-03-25 Jakub Jelinek <jakub@redhat.com>
6677
6678 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
6679 mode size instead of bitsize with DWARF2_ADDR_SIZE.
6680 (hash_loc_operands, compare_loc_operands): Handle
6681 DW_OP_GNU_entry_value.
6682
6510e8bb
KT
66832011-03-25 Kai Tietz <ktietz@redhat.com>
6684
6685 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
6686 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
6687 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
6688 comment and use macro TARGET_64BIT_MS_ABI instead.
6689 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
6690 and change default behavior for 32-bit MS_ABI.
6691 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
6692 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
6693 32-bit, too.
6694 (ix86_cfun_abi): Likewise.
6695 (ix86_maybe_switch_abi): Adjust comment.
6696 (init_cumulative_args): Check for bit-ness in MS_ABI case.
6697 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
6698 instead of checking for SYSV_ABI.
6699 (ix86_nsaved_sseregs): Likewise.
6700 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
6701 to 16 bytes.
6702 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
6703 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
6704 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
6705 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
6706 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
6707
34019e28
RG
67082011-03-25 Richard Guenther <rguenther@suse.de>
6709
6710 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
6711 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6712 (verify_gimple): Remove.
6713 * tree-cfg.c (verify_gimple_call): Merge verification
6714 from verify_stmts.
6715 (verify_gimple_phi): Merge verification from verify_stmts.
6716 (verify_gimple_label): New function.
6717 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
6718 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6719 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
6720 (verify_stmts): Rename to verify_gimple_in_cfg.
6721 (verify_gimple_in_cfg): New function.
6722 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
6723 * tree-ssa.c (verify_ssa): Likewise.
6724 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
6725
605896f5
RG
67262011-03-25 Richard Guenther <rguenther@suse.de>
6727
6728 * passes.c (init_optimization_passes): Add FRE pass after
6729 early SRA.
6730
7baa7c13
BS
67312011-03-25 Bernd Schmidt <bernds@codesourcery.com>
6732 Andrew Stubbs <ams@codesourcery.com>
6733
6734 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
6735 for Cortex-A8.
6736 (arm_movdi_vfp_cortexa8): New pattern.
6737 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
6738 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
6739 instructions when tuning for Cortex-A8. Set attribute "arch".
6740 * config/arm/arm.md: Move include arm-tune.md up a bit.
6741 (define_attr "arch"): Add "onlya8" and "nota8" values.
6742 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
6743
45dbce1b
NF
67442011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6745
4ff08abf 6746 PR bootstrap/48282
45dbce1b
NF
6747 Revert:
6748 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6749
6750 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6751 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6752 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6753 * passes.c (init_optimization_passes): Move
6754 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6755
ac9a30ae
KT
67562011-03-25 Kai Tietz <ktietz@redhat.com>
6757
6758 * c-typeck.c (comptypes_internal): Replace target
6759 hook call of comp_type_attributes by version in tree.c file.
6760 * gimple.c (gimple_types_compatible_p_1): Likewise.
6761 * tree-ssa.c (useless_type_conversion_p): Likewise.
6762 * tree.c (build_type_attribute_qual_variant): Likewise.
6763 (attribute_value_equal): New static helper function.
6764 (comp_type_attributes): New function.
6765 (merge_attributes): Use attribute_value_equal for comparison.
6766 (attribute_list_contained): Likewise.
6767 * tree.h (comp_type_attributes): New prototype.
6768
afdac116
RG
67692011-03-25 Richard Guenther <rguenther@suse.de>
6770
6771 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
6772 of complex types at -O0.
6773 (verify_gimple_assign_binary): Likewise.
6774 (verify_gimple_assign_ternary): Likewise.
6775
ec6165f8
MW
67762011-03-24 Mark Wielaard <mjw@redhat.com>
6777
6778 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
6779 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
6780
2a5ac39a
MW
67812011-03-24 Mark Wielaard <mjw@redhat.com>
6782
6783 PR debug/48041
6784 * dwarf2out.c (output_abbrev_section): Only write table when
6785 abbrev_die_table_in_use > 1.
6786
e533b2a4
RH
67872011-02-24 Richard Henderson <rth@redhat.com>
6788
6789 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
6790 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
6791 (alpha_expand_unaligned_load_words): Use extql.
6792 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
6793 (emit_insxl): Handle all modes for consistency.
6794
0b2a7367
RH
67952011-02-24 Richard Henderson <rth@redhat.com>
6796
6797 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
6798 (alpha_expand_unaligned_load): Likewise.
6799 (alpha_expand_unaligned_store): Likewise.
6800 (alpha_expand_unaligned_load_words): Likewise.
6801 (alpha_expand_unaligned_store_words): Likewise.
6802 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
6803 (alpha_split_lock_test_and_set_12): Likewise.
6804 (print_operand, alpha_fold_builtin_extxx): Likewise.
6805 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
6806 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
6807 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
6808 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
6809 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
6810 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
6811 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
6812 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
6813 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
6814 (extwl, extll, extql): Similarly.
6815 (inswh, inslh, insqh): Similarly.
6816 (mskbl, mskwl, mskll, mskql): Similarly.
6817 (mskwh, msklh, mskqh): Similarly.
6818
315b2bef
RH
68192011-02-24 Richard Henderson <rth@redhat.com>
6820
6821 * config/alpha/alpha.md (attribute isa): Add er, ner.
6822 (attribute enabled): Handle them.
6823 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
6824
67102517
RH
68252011-02-24 Richard Henderson <rth@redhat.com>
6826
6827 * config/alpha/alpha.md (attribute isa): Add vms.
6828 (attribute enabled): Handle it.
6829 (*movsf): Merge *movsf_{nofix,fix,nofp}.
6830 (*movdf): Merge *movdf_{nofix,fix,nofp}.
6831 (*movtf): Rename from *movtf_internal for consistency.
6832 (*movsi): Merge with *movsi_nt_vms.
6833 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
6834 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
6835 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
6836 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
6837
6aba5cb4
RH
68382011-02-24 Richard Henderson <rth@redhat.com>
6839
6840 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
6841 (extendqisi2, extendhisi2): Likewise.
6842 (extendqidi2): Simplify BWX/non-BWX expansions.
6843 (extendhidi2): Similarly.
6844
bdfb351b
RH
68452011-02-24 Richard Henderson <rth@redhat.com>
6846
6847 * config/alpha/alpha.md (attribute isa): New.
6848 (attribute enabled): New.
6849 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
6850 (zero_extendqisi2, zero_extendqidi2): Similarly.
6851 (zero_extendhisi2, zero_extendhidi2): Similarly.
6852 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
6853
6abe71eb
RH
68542011-02-24 Richard Henderson <rth@redhat.com>
6855
6856 * config/alpha/predicates.md (input_operand): Revert last change;
6857 update comment to mention 32-bit VMS rather than Windows.
6858
7114321e
NF
68592011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6860
6861 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6862 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6863 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6864 * passes.c (init_optimization_passes): Move
6865 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6866
c8679567
EB
68672011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6868
6869 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
6870
27173058
UB
68712011-03-24 Uros Bizjak <ubizjak@gmail.com>
6872
6873 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
6874 correctly.
6875
6f0c9f06
JJ
68762011-03-24 Jakub Jelinek <jakub@redhat.com>
6877
6878 PR debug/48204
6879 * simplify-rtx.c (simplify_const_unary_operation): Call
6880 real_convert when changing mode class with FLOAT_EXTEND.
6881
662666e5
NC
68822011-03-24 Nick Clifton <nickc@redhat.com>
6883
6884 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
6885 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6886 * config/rx/rx.c (rx_option_override): Set align_jumps,
6887 align_loops and align_labels if not set by the user.
6888 (rx_align_for_label): New function.
6889 (rx_max_skip_for_label): New function.
6890 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
6891 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
6892 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
6893 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
6894 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
6895
2b99b2b8
RS
68962011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6897
6898 PR rtl-optimization/48263
6899 * optabs.c (expand_binop_directly): Reinstate convert_modes code
6900 and original commutative_p handling. Use maybe_gen_insn.
6901
ccecd6ea
AK
69022011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6903
6904 * reload.c (find_reloads_subreg_address): Add address_reloaded
6905 parameter and return true there if the full address has been
6906 reloaded.
6907 (find_reloads_toplev): Pass address_reloaded flag.
6908 (find_reloads_address_1): Don't use address_reloaded parameter.
6909
67295642
JL
69102011-03-24 Jeff Law <law@redhat.com>
6911
6912 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
6913 unused variable "ann".
6914 (remove_unused_locals): Likewise.
6915
6916 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
6917 statement.
6918
6919 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
6920 after it is freed.
6921
212aa74f
AK
69222011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6923
6924 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
6925 for invalid symbolic addresses.
6926 (s390_secondary_reload): Don't use s390_check_symref_alignment for
6927 larl operands.
6928
fe784e0d
EB
69292011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6930
6931 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
6932 the argument in calls to fold_truth_not_expr.
6933
63ee8641
NF
69342011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6935
6936 * tree.c (record_node_allocation_statistics): New function.
6937 (make_node_stat, copy_node_stat, build_string): Call it.
6938 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
6939 (build1_stat, build_omp_clause): Likewise.
6940
61be2a1c
RS
69412011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6942
6943 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
6944 last commit.
6945
a881aaa7
RG
69462011-03-24 Richard Guenther <rguenther@suse.de>
6947
6948 PR tree-optimization/48271
6949 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
6950 blocks that still exist.
6951
dbaa912c
RG
69522011-03-24 Richard Guenther <rguenther@suse.de>
6953
6954 PR tree-optimization/48270
6955 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
6956 not free datarefs before ddrs.
6957
1d60cc55
EB
69582011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6959
6960 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
6961 from the address built for a reference with variable offset.
6962
c78dd519
UB
69632011-03-24 Uros Bizjak <ubizjak@gmail.com>
6964
6965 PR target/48237
6966 * config/i386/i386.md (*movdf_internal_rex64): Do not split
6967 alternatives that can be handled with movq or movabsq insn.
6968 (*movdf_internal): Disable for !TARGET_64BIT.
6969 (*movdf_internal_nointeger): Ditto.
6970 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
6971
b25b9e8f
NF
69722011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6973
6974 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6975 (FUNCTION_ARG_ADVANCE): Likewise.
6976 * tm.texi.in: Change references to them to hook references.
6977 * tm.texi: Regenerate.
c78dd519 6978 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
6979 (default_function_incoming_arg): Likewise.
6980 (default_function_arg_advance): Likewise.
c78dd519 6981 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
6982 (function_arg_advance): Likewise.
6983 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6984
190b2187
RG
69852011-03-24 Richard Guenther <rguenther@suse.de>
6986
6987 PR middle-end/48269
6988 * tree-object-size.c (addr_object_size): Do not double-account
6989 for MEM_REF offsets.
6990
a183b5c7
DN
69912011-03-24 Diego Novillo <dnovillo@google.com>
6992
6993 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 6994 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
6995 (lto_input_data_block): Move from lto-opts.c. Make extern.
6996 Update all users.
6997 (lto_input_string): Rename from input_string. Make extern.
6998 Update all users.
6999 * lto-streamer-out.c (lto_output_string_with_length): Rename from
7000 output_string_with_length.
7001 Output 0 to indicate a non-NULL string. Update all callers to
7002 not emit 0.
7003 (lto_output_string): Rename from output_string. Make extern.
7004 Update all users.
7005 (lto_output_decl_state_streams): Make extern.
7006 (lto_output_decl_state_refs): Make extern.
7007 * lto-streamer.h (lto_input_string): Declare.
7008 (lto_input_data_block): Declare.
7009 (lto_output_string): Declare.
7010 (lto_output_string_with_length): Declare.
7011 (lto_output_decl_state_streams): Declare.
7012 (lto_output_decl_state_refs): Declare.
7013
cfef45c8
RG
70142011-03-24 Richard Guenther <rguenther@suse.de>
7015
7016 PR tree-optimization/46562
7017 * tree.c (build_invariant_address): New function.
7018 * tree.h (build_invariant_address): Declare.
7019 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
7020 a renamed function moved ...
7021 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
7022 Take valueization callback parameter.
7023 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
7024 * gimple-fold.h: New file.
7025 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
7026 (ccp_fold, fold_const_aggregate_ref,
7027 fold_ctor_reference, fold_nonarray_ctor_reference,
7028 fold_array_ctor_reference, fold_string_cst_ctor_reference,
7029 get_base_constructor): Move ...
7030 * gimple-fold.c: ... here.
7031 (gimple_fold_stmt_to_constant_1): New function
7032 split out from ccp_fold. Take a valueization callback parameter.
7033 Valueize all operands.
7034 (gimple_fold_stmt_to_constant): New wrapper function.
7035 (fold_const_aggregate_ref_1): New function split out from
7036 fold_const_aggregate_ref. Take a valueization callback parameter.
7037 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
7038 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
7039 invariant POINTER_PLUS_EXPRs to invariant form.
7040 (vn_valueize): New function.
7041 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
7042 * tree-vrp.c (vrp_valueize): New function.
7043 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
7044 to fold statements to constants.
7045 * tree-ssa-pre.c (eliminate): Properly guard propagation of
7046 function declarations.
7047 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
7048 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
7049
5e0a7e40
RS
70502011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
7051
7052 * config/h8300/predicates.md (jump_address_operand): Fix register
7053 mode check.
7054
bfe068c3
IR
70552011-03-24 Ira Rosen <ira.rosen@linaro.org>
7056
7057 * doc/invoke.texi (max-stores-to-sink): Document.
7058 * params.h (MAX_STORES_TO_SINK): Define.
7059 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
7060 if either vectorization or if-conversion is disabled.
7061 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
7062 tree-vect-data-refs.c vect_equal_offsets.
7063 (dr_equal_offsets_p): New function.
7064 (find_data_references_in_bb): Remove static.
7065 * tree-data-ref.h (find_data_references_in_bb): Declare.
7066 (dr_equal_offsets_p): Likewise.
7067 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
7068 (vect_drs_dependent_in_basic_block): Update calls to
7069 vect_equal_offsets.
7070 (vect_check_interleaving): Likewise.
7071 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
7072 (cond_if_else_store_replacement): Rename to...
7073 (cond_if_else_store_replacement_1): ... this. Change arguments and
7074 documentation.
7075 (cond_if_else_store_replacement): New function.
7076 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
7077 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
7078
4908b0bf
CLT
70792011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
7080
7081 PR target/46934
7082 * config/arm/arm.md (casesi): Use the gen_int_mode() function
7083 to subtract lower bound instead of GEN_INT().
7084
2be478a2
JW
70852011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
7086
7087 PR other/48179
7088 PR other/48221
7089 PR other/48234
7090 * doc/extend.texi (Alignment): Move section to match order in TOC.
7091 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
7092 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
7093
0c617be4
JL
70942011-03-23 Jeff Law <law@redhat.com>
7095
7096 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
7097 before removing the edge.
7098
7099 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
7100 it may have been freed by redirect_branch_edge or
7101 redirect_edge_succ_nodup.
7102
58da96fe
RG
71032011-03-23 Richard Guenther <rguenther@suse.de>
7104
c78dd519 7105 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
7106 (check_va_list_escapes): Likewise.
7107 (check_all_va_list_escapes): Likewise.
7108
b8beb4d1
RG
71092011-03-23 Richard Guenther <rguenther@suse.de>
7110
7111 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
7112 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
7113 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
7114 (alias.o): Likewise.
7115 (ipa-type-escape.o): Remove.
7116 (ipa-struct-reorg.o): Likewise.
7117 (GTFILES): Remove ipa-struct-reorg.c.
7118 * alias.c: Do not include ipa-type-escape.h.
7119 * tree-ssa-alias.c: Likewise.
7120 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
7121 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
7122 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
7123 and ipa-type-escape passes.
7124 * tree-pass.h (pass_ipa_type_escape): Remove.
7125 (pass_ipa_struct_reorg): Likewise.
7126 * ipa-struct-reorg.h: Remove.
7127 * ipa-struct-reorg.c: Likewise.
7128 * ipa-type-escape.h: Likewise.
7129 * ipa-type-escape.c: Likewise.
7130 * doc/invoke.texi (-fipa-struct-reorg): Remove.
7131 (--param struct-reorg-cold-struct-ratio): Likewise.
7132 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7133 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
7134 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
7135
f137aa63
AK
71362011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7137
7138 * config/s390/2084.md: Enable all insn reservations also for z9_ec
7139 cpu attribute value.
7140 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
7141 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
7142 * config/s390/s390.c (processor_flags_table): New constant array.
7143 (s390_handle_arch_option): Remove.
7144 (s390_handle_option): Remove s390_handle_arch_option invocations
7145 and OPT_mwarn_framesize_ handling.
7146 (s390_option_override): Remove s390_handle_arch_option invocation.
7147 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
7148 warnings.
7149 * config/s390/s390.md (cpu attribute): Add z9_ec value.
7150 * config/s390/s390.opt (s390_tune, s390_arch)
7151 (march=): Replace s390_arch_option enum and values with
7152 processor_type. Set variable name to s390_arch. Set
7153 initialization value.
7154 (mtune=): Replace s390_arch_option with processor_type. Set
7155 variable name to s390_tune. Set initialization value.
7156
bf90208f
JB
71572011-03-23 Julian Brown <julian@codesourcery.com>
7158
7159 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
7160 accesses which are not naturally aligned.
7161
3460fdf3
RS
71622011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7163
7164 PR target/47553
7165 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
7166
a5c7d693
RS
71672011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
7168
7169 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
7170 parameter from "int" to "enum insn_code".
7171 (expand_operand_type): New enum.
7172 (expand_operand): New structure.
7173 (create_expand_operand): New function.
7174 (create_fixed_operand, create_output_operand): Likewise
7175 (create_input_operand, create_convert_operand_to): Likewise.
7176 (create_convert_operand_from, create_address_operand): Likewise.
7177 (create_integer_operand): Likewise.
7178 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
7179 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7180 (expand_insn, expand_jump_insn): Likewise.
7181 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
7182 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
7183 (expand_movstr, expand_builtin___clear_cache): Likewise.
7184 (expand_builtin_lock_release): Likewise.
7185 * explow.c (allocate_dynamic_stack_space): Likewise.
7186 (probe_stack_range): Likewise. Allow check_stack to FAIL,
7187 and use the default handling in that case.
7188 * expmed.c (check_predicate_volatile_ok): Delete.
7189 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
7190 (emit_cstore): Likewise.
7191 * expr.c (emit_block_move_via_movmem): Likewise.
7192 (set_storage_via_setmem, expand_assignment): Likewise.
7193 (emit_storent_insn, try_casesi): Likewise.
7194 (emit_single_push_insn): Likewise. Allow the expansion to fail.
7195 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
7196 (expand_vec_shift_expr, expand_binop_directly): Likewise.
7197 (expand_twoval_unop, expand_twoval_binop): Likewise.
7198 (expand_unop_direct, emit_indirect_jump): Likewise.
7199 (emit_conditional_move, vector_compare_rtx): Likewise.
7200 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
7201 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
7202 (expand_sync_lock_test_and_set): Likewise.
7203 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
7204 (emit_unop_insn): Likewise.
7205 (expand_copysign_absneg): Change icode to an insn_code.
7206 (create_convert_operand_from_type): New function.
7207 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
7208 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
7209 (expand_insn, expand_jump_insn): Likewise.
7210 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
7211 than const_int_operand for operand 2.
7212
78fadbab
AK
72132011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7214
7215 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
7216 if possible.
7217
5f02387d
NF
72182011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7219
7220 * emit-rtl.c (emit_pattern_before_noloc): New function.
7221 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
7222 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
7223 (emit_pattern_after_noloc): New function.
7224 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
7225 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
7226
fdf3e18a
NF
72272011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7228
7229 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
7230 (__ffsDI2): Likewise.
7231
42d085c1
RH
72322011-03-22 Richard Henderson <rth@redhat.com>
7233
7234 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
7235 of !TARGET_ABI_OPEN_VMS.
7236 (alpha_trampoline_init, alpha_start_function): Likewise.
7237 (alpha_expand_epilogue, alpha_file_start): Likewise.
7238 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
7239 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
7240 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
7241 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
7242 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
7243
cabbe12a
JM
72442011-03-22 Joseph Myers <joseph@codesourcery.com>
7245
7246 * config/s390/s390-opts.h: New.
7247 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
7248 s390_arch_flags, s390_warn_framesize, s390_stack_size,
7249 s390_stack_guard): Remove.
7250 (s390_handle_arch_option): Return void. Take enum
7251 s390_arch_option value instead of string and searching array.
7252 (s390_handle_option): Don't assert that global structures are in
7253 use. Access variables via opts pointer. Use error_at. Don't use
7254 sscanf for -mstack-guard= or -mstack-size=. Update call to
7255 s390_handle_arch_option.
7256 (s390_option_override): Update call to s390_handle_arch_option.
7257 (s390_emit_prologue): Use %d format for s390_stack_size in
7258 diagnostic. Use %wd for HOST_WIDE_INT.
7259 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
7260 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
7261 * config/s390/s390.opt (config/s390/s390-opts.h): New
7262 HeaderInclude entry.
7263 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
7264 s390_arch_flags, s390_warn_framesize): New Variable entries.
7265 (s390_arch_option): New Enum and EnumValue entries.
7266 (march=): Use Enum instead of Var.
7267 (mstack-guard=, mstack-size=): Use UInteger and Var.
7268 (mtune=): Use Enum.
7269
05b12036
JM
72702011-03-22 Joseph Myers <joseph@codesourcery.com>
7271
7272 * config/score/score.c (score_handle_option): Don't assert that
7273 global structures are in use. Access target_flags via opts
7274 pointer. Use value of -march= option to determine target_flags
7275 settings.
7276 * config/score/score.opt (march=): Use Enum.
7277 (score_arch): New Enum and EnumValue entries.
7278
dd51e35a
JM
72792011-03-22 Joseph Myers <joseph@codesourcery.com>
7280
7281 * config/mep/mep.c (option_mtiny_specified): Remove.
7282 (mep_option_override): Move register handling for -mivc2 from
7283 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
7284 instead of option_mtiny_specified.
7285 (mep_handle_option): Access target_flags via opts pointer. Don't
7286 assert that global structures are in use. Defer part of -mivc2
7287 handling and move it to mep_option_override.
7288 * config/mep/mep.opt (IVC2): New Mask entry.
7289 (mivc2): Use Var and Defer instead of Mask.
7290
4a8d3d91
JM
72912011-03-22 Joseph Myers <joseph@codesourcery.com>
7292
7293 * config/v850/v850-opts.h: New.
7294 * config/v850/v850.c (small_memory): Replace with
7295 small_memory_physical_max array. Make that array static const.
7296 (v850_handle_memory_option): Take integer value of argument. Take
7297 gcc_options pointer, option text and location. Return void.
7298 Update for changes to small memory structures.
7299 (v850_handle_option): Access target_flags via opts pointer. Don't
7300 assert that global structures are in use. Update calls to
7301 v850_handle_memory_option.
c78dd519
UB
7302 (v850_encode_data_area): Update references to small memory settings.
7303 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
7304 (enum small_memory_type): Move to v850-opts.h.
7305 * config/v850/v850.opt (config/v850/v850-opts.h): New
7306 HeaderInclude entry.
7307 (small_memory_max): New Variable entry.
7308 (msda): Replace by pair of options msda= and msda-. Use UInteger.
7309 (mtda, mzda): Likewise.
7310
117fdbfa
JM
73112011-03-22 Joseph Myers <joseph@codesourcery.com>
7312
7313 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
7314 pointer. Don't assert that global structures are in use.
7315
d715091c
JM
73162011-03-22 Joseph Myers <joseph@codesourcery.com>
7317
7318 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
7319 via opts pointer. Don't assert that global structures are in use.
7320
1bb721dc
JM
73212011-03-22 Joseph Myers <joseph@codesourcery.com>
7322
7323 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
7324 (munix=93): Use Var.
7325 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
7326 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
7327 * config/pa/pa-opts.h: New.
7328 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
7329 (pa_handle_option): Don't assert that global structures are in
7330 use. Access target_flags via opts pointer. Don't handle
7331 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
7332 OPT_munix_98 here.
7333 (pa_option_override): Handle deferred OPT_mfixed_range_.
7334
cd8d8754
JM
73352011-03-22 Joseph Myers <joseph@codesourcery.com>
7336
7337 * config/mn10300/mn10300-opts.h: New.
7338 * config/mn10300/mn10300.c (mn10300_processor,
7339 mn10300_tune_string): Remove.
7340 (mn10300_handle_option): Don't assert that global structures are
7341 in use. Access mn10300_processor via opts pointer. Don't handle
7342 OPT_mtune_ here.
7343 * config/mn10300/mn10300.h (enum processor_type): Move to
7344 mn10300-opts.h.
7345 (mn10300_processor): Remove.
7346 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
7347 HeaderInclude entry.
7348 (mn10300_processor): New Variable entry.
7349 (mtune=): Use Var.
7350
24e6e6b1
JM
73512011-03-22 Joseph Myers <joseph@codesourcery.com>
7352
7353 * config/microblaze/microblaze.c: Don't include opts.h.
7354 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
7355 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
7356 (mno-clearbss): Use Var and Warn.
7357
8a784afb
JM
73582011-03-22 Joseph Myers <joseph@codesourcery.com>
7359
7360 * config/m32r/m32r-opts.h: New.
7361 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
7362 (m32r_handle_option): Don't assert that global structures are in
7363 use. Access target_flags and m32r_cache_flush_func via opts
7364 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
7365 OPT_mno_flush_trap here.
7366 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
7367 include of m32r-opts.h.
7368 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
7369 HeaderInclude entry.
7370 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
7371 (mmodel=): Use Enum and Var.
7372 (m32r_model): New Enum and EnumValue entries.
7373 (mno-flush-trap): Use Var.
7374 (msdata=): Use Enum and Var.
7375 (m32r_sdata): New Enum and EnumValue entries.
7376
bbfc9a8c
JM
73772011-03-22 Joseph Myers <joseph@codesourcery.com>
7378
7379 * config/m32c/m32c.c: Don't include opts.h.
7380 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
7381 m32c_handle_option): Remove.
7382 (m32c_option_override): Check global_options_set.x_target_memregs
7383 instead of target_memregs_set.
7384 * config/m32c/m32c.h (target_memregs): Remove.
7385 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
7386 variable.
7387
e24b8335
JM
73882011-03-22 Joseph Myers <joseph@codesourcery.com>
7389
7390 * config/iq2000/iq2000-opts.h: New.
7391 * config/iq2000/iq2000.c: Don't include opts.h.
7392 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 7393 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
7394 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
7395 HeaderInclude entry.
7396 (iq2000_tune): New Variable entry.
7397 (march=): Add comment. Use Enum.
7398 (iq2000_arch): New Enum and EnumValue entries.
7399 (mcpu=): Use Enum and Var.
7400 (iq2000_tune): New Enum and EnumValue entries.
7401
e6cc0c98
JM
74022011-03-22 Joseph Myers <joseph@codesourcery.com>
7403
7404 * config/ia64/ia64-opts.h: New.
7405 * config/ia64/ia64.c (ia64_tune): Remove.
7406 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
7407 here. Use error_at.
7408 (ia64_option_override): Handle deferred OPT_mfixed_range_.
7409 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
7410 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
7411 HeaderInclude entry.
7412 (ia64_tune): New Variable entry.
7413 (mfixed-range=): Use Defer and Var.
7414 (mtune=): Use Enum and Var.
7415 (ia64_tune): New Enum and EnumValue entries.
7416
db25893c
JM
74172011-03-22 Joseph Myers <joseph@codesourcery.com>
7418
7419 * config/frv/frv-opts.h: New.
7420 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
7421 frv-opts.h.
7422 (frv_cpu_type): Remove.
7423 * config/frv/frv.c: Don't include opts.h.
7424 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 7425 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
7426 (frv_cpu_type): New Variable entry.
7427 (frv_cpu): New Enum and EnumValue entries.
7428
6c223f5d
JM
74292011-03-22 Joseph Myers <joseph@codesourcery.com>
7430
7431 * config/cris/cris.c (cris_handle_option): Access target_flags via
7432 opts pointer. Don't assert that global structures are in use.
7433 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
7434 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
7435
bbd399cf
JM
74362011-03-22 Joseph Myers <joseph@codesourcery.com>
7437
7438 * config/bfin/bfin-opts.h: New.
7439 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
7440 bfin_si_revision, bfin_workarounds): Remove.
7441 (bfin_cpus): Make static const.
7442 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
7443 not bfin_lib_id_given.
7444 (bfin_handle_option): Don't set bfin_lib_id_given. Access
7445 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 7446 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
7447 * config/bfin/bfin.h: Include bfin-opts.h.
7448 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
7449 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
7450 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
7451 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
7452 entries.
7453
5e1b4d5a
JM
74542011-03-22 Joseph Myers <joseph@codesourcery.com>
7455
7456 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
7457 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
7458 or -msoft-float here.
7459 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
7460 -msoft-float and -mhard-float.
c78dd519 7461 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
7462 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7463 msoft-float.
7464 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
7465 -msoft-float.
7466 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
7467 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
7468 not mhard-float.
7469 (LIBGCC_SPEC): Don't handle -msoft-float.
7470 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
7471 -mhard-float.
7472 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7473 msoft-float.
7474 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
7475 -mfloat-abi=*, not -msoft-float and -mhard-float.
7476 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
7477 -msoft-float.
7478 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
7479 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
7480 mhard-float and msoft-float.
7481 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
7482 mfloat-abi=soft in comments, not mhard-float and msoft-float.
7483 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7484 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
7485 mhard-float.
7486 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
7487 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
7488 msoft-float.
7489 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
7490 not mhard-float.
7491 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
7492 not msoft-float.
7493
800d1de1
RH
74942011-03-22 Richard Henderson <rth@redhat.com>
7495
7496 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
7497 TARGET_ABI_WINDOWS_NT.
7498 (alpha_output_function_end_prologue): Likewise.
7499 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
7500 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7501 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
7502 (trap, *movsi_nt_vms): Likewise.
7503 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
7504 (*tablejump_osf_nt_internal): Remove.
7505 * config/alpha/predicates.md (input_operand): Only test Pmode.
7506
c59ddd2b
JM
75072011-03-22 Joseph Myers <joseph@codesourcery.com>
7508
7509 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
7510 via opts pointer. Use error_at. Don't assert that global
7511 structures are in use.
7512
1333f97f
JM
75132011-03-22 Joseph Myers <joseph@codesourcery.com>
7514
7515 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
7516 (ix86_handle_option): Access ix86_isa_flags and
7517 ix86_isa_flags_explicit via opts pointer. Don't assert that
7518 global structures are in use.
7519 (ix86_function_specific_save, ix86_function_specific_restore):
7520 Update ix86_isa_flags_explicit field name.
c78dd519 7521 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
7522 (ix86_isa_flags_explicit): Rename TargetSave entry to
7523 x_ix86_isa_flags_explicit.
7524
75db85d8
RH
75252011-03-22 Richard Henderson <rth@redhat.com>
7526
7527 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
7528 (alpha_option_override, direct_return): Likewise.
7529 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
7530 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
7531 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
7532 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7533 (alpha_expand_epilogue, alpha_end_function): Likewise.
7534 (alpha_init_libfuncs): Likewise.
7535 (struct machine_function): Remove unicosmk members.
7536 (print_operand) ['t']: Remove.
7537 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
7538 unicosmk_output_module_name, unicosmk_output_common,
7539 current_section_align, unicosmk_output_text_section_asm_op,
7540 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
7541 unicosmk_section_type_flags, unicosmk_unique_section,
7542 unicosmk_asm_named_section, unicosmk_insert_attributes,
7543 unicosmk_output_align, unicosmk_defer_case_vector,
7544 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7545 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7546 unicosmk_output_ssib, unicosmk_add_call_info_word,
7547 unicosmk_extern_head, unicosmk_output_default_externs,
7548 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7549 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7550 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7551 * config/alpha/alpha-protos.h: Update.
7552 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7553 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7554 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7555 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7556 (*mulsi_se, mulvsi3): Likewise.
7557 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7558 (*divmodsi_internal, call, call_value, realign): Likewise.
7559 (moddi3, umoddi3): Likewise; remove duplicate expander.
7560 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7561 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7562 (*movdi_nofix): Remove r/U alternative.
7563 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7564 * config/alpha/constraints.md ("U"): Remove.
7565 * config/alpha/predicates.md (call_operand"): Don't test
7566 TARGET_ABI_UNICOSMK.
7567
96e45421
JM
75682011-03-22 Joseph Myers <joseph@codesourcery.com>
7569
7570 * target.def (handle_option): Take gcc_options and
7571 cl_decoded_option pointers and location_t.
7572 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7573 * doc/tm.texi: Regenerate.
7574 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7575 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7576 * lto-opts.c (lto_reissue_options): Generate option structure for
7577 targetm.handle_option call.
7578 * opts.c (target_handle_option): Update call to
7579 targetm.handle_option. Remove assertions about values now passed
7580 down to hook.
7581 * targhooks.c (default_target_handle_option): New.
7582 * targhooks.h (default_target_handle_option): Declare.
7583 * config/alpha/alpha.c: Include opts.h.
7584 (alpha_handle_option): Update to new hook interface.
7585 * config/arm/arm.c: Include opts.h.
7586 (arm_handle_option): Update to new hook interface.
7587 * config/arm/t-arm (arm.o): Update dependencies.
7588 * config/bfin/bfin.c: Include opts.h.
7589 (bfin_handle_option): Update to new hook interface.
7590 * config/cris/cris.c: Include opts.h.
7591 (cris_handle_option): Update to new hook interface.
7592 * config/frv/frv.c: Include opts.h.
7593 (frv_handle_option): Update to new hook interface.
7594 * config/i386/i386.c: Include opts.h.
7595 (ix86_handle_option): Update to new hook interface.
7596 (ix86_valid_target_attribute_inner_p): Generate option structure
7597 for call to ix86_handle_option.
7598 * config/i386/t-i386 (i386.o): Update dependencies.
7599 * config/ia64/ia64.c: Include opts.h.
7600 (ia64_handle_option): Update to new hook interface.
7601 * config/ia64/t-ia64 (ia64.o): Update dependencies.
7602 * config/iq2000/iq2000.c: Include opts.h.
7603 (iq2000_handle_option): Update to new hook interface.
7604 * config/m32c/m32c.c: Include opts.h.
7605 (m32c_handle_option): Update to new hook interface.
7606 * config/m32r/m32r.c: Include opts.h.
7607 (m32r_handle_option): Update to new hook interface.
7608 * config/m68k/m68k.c: Include opts.h.
7609 (m68k_handle_option): Update to new hook interface.
7610 * config/mep/mep.c: Include opts.h.
7611 (mep_handle_option): Update to new hook interface.
7612 * config/microblaze/microblaze.c: Include opts.h.
7613 (microblaze_handle_option): Update to new hook interface.
7614 * config/mips/mips.c: Include opts.h.
7615 (mips_handle_option): Update to new hook interface.
7616 * config/mn10300/mn10300.c: Include opts.h.
7617 (mn10300_handle_option): Update to new hook interface.
7618 * config/pa/pa.c: Include opts.h.
7619 (pa_handle_option): Update to new hook interface.
7620 * config/pdp11/pdp11.c: Include opts.h.
7621 (pdp11_handle_option): Update to new hook interface.
7622 * config/rs6000/rs6000.c: Include opts.h.
7623 (rs6000_handle_option): Update to new hook interface.
7624 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7625 * config/rx/rx.c: Include opts.h.
7626 (rx_handle_option): Update to new hook interface.
7627 * config/s390/s390.c: Include opts.h.
7628 (s390_handle_option): Update to new hook interface.
7629 * config/score/score.c: Include opts.h.
7630 (score_handle_option): Update to new hook interface.
7631 * config/sh/sh.c: Include opts.h.
7632 (sh_handle_option): Update to new hook interface.
7633 * config/sparc/sparc.c: Include opts.h.
7634 (sparc_handle_option): Update to new hook interface.
7635 * config/v850/v850.c: Include opts.h.
7636 (v850_handle_option): Update to new hook interface.
7637
66017846
JM
76382011-03-22 Joseph Myers <joseph@codesourcery.com>
7639
7640 * gcc.c (driver_unknown_option_callback): Only permit and save
7641 unknown -Wno- options.
7642 (driver_wrong_lang_callback): Save options directly instead of via
7643 driver_unknown_option_callback.
7644
e8b97ccd
EB
76452011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7646
7647 * combine.c (simplify_set): Try harder to find the best CC mode when
7648 simplifying a nested COMPARE on the RHS.
7649
ebb9f8b0
JM
76502011-03-22 Joseph Myers <joseph@codesourcery.com>
7651
7652 * config/alpha/gnu.h: Remove.
7653 * config/arc: Remove directory.
7654 * config/arm/netbsd.h: Remove.
7655 * config/arm/t-pe: Remove.
7656 * config/crx: Remove directory.
7657 * config/i386/netbsd.h: Remove.
7658 * config/m68hc11: Remove directory.
7659 * config/m68k/uclinux-oldabi.h: Remove.
7660 * config/mcore/mcore-pe.h: Remove.
7661 * config/mcore/t-mcore-pe: Remove.
7662 * config/netbsd-aout.h: Remove.
7663 * config/rs6000/gnu.h: Remove.
7664 * config/sh/sh-symbian.h: Remove.
7665 * config/sh/symbian-base.c: Remove.
7666 * config/sh/symbian-c.c: Remove.
7667 * config/sh/symbian-cxx.c: Remove.
7668 * config/sh/symbian-post.h: Remove.
7669 * config/sh/symbian-pre.h: Remove.
7670 * config/sh/t-symbian: Remove.
7671 * config/svr3.h: Remove.
7672 * config/vax/netbsd.h: Remove.
7673 * config.build: Don't handle i[34567]86-*-pe.
7674 * config.gcc: Remove handling of deprecations for most deprecated
7675 targets.
7676 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
7677 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
7678 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
7679 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
7680 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
7681 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
7682 Remove cases.
7683 * config.host: Don't handle i[34567]86-*-pe.
7684 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
7685 (ASM_SPEC32): Don't handle -mcall-gnu.
7686 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
7687 -mcall-gnu.
7688 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
7689 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
7690 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7691 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
7692 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
7693 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
7694 conditional on SYMBIAN.
7695 * configure.ac: Don't handle powerpc*-*-gnu*.
7696 * configure: Regenerate.
7697 * doc/extend.texi (interrupt attribute): Don't mention CRX.
7698 * doc/install-old.texi (m6811, m6812): Don't mention.
7699 * doc/install.texi (arc-*-elf*): Don't document multilib option.
7700 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
7701 (m68k-uclinuxoldabi): Don't mention.
7702 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
7703 Remove.
7704 (-mcall-gnu): Remove.
7705 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
7706 families): Remove constraint documentation.
7707
999a7d80
MS
77082011-03-22 Marius Strobl <marius@FreeBSD.org>
7709
7710 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
7711 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
7712 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
7713
45540bcf
MM
77142011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7715
7716 PR target/48226
7717 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
7718 vector when peeking at the next token for vector, don't expand the
7719 keywords.
7720
980a0ff4
GJL
77212011-03-21 Georg-Johann Lay <avr@gjlay.de>
7722
7723 * config/avr/avr-protos.h (expand_epilogue): Change prototype
7724 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
7725 * config/avr/avr.c (init_cumulative_args)
7726 (avr_function_arg_advance): Use it.
7727 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
7728 sibcall epilogues.
7729 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
7730 (avr_function_ok_for_sibcall): ...this new function.
7731 (avr_lookup_function_attribute1): New static Function.
7732 (avr_naked_function_p, interrupt_function_p)
7733 (signal_function_p, avr_OS_task_function_p)
7734 (avr_OS_main_function_p): Use it.
7735 * config/avr/avr.md ("sibcall", "sibcall_value")
7736 ("sibcall_epilogue"): New expander.
7737 ("*call_insn", "*call_value_insn"): New insn.
7738 ("call_insn", "call_value_insn"): Remove
7739 ("call", "call_value", "epilogue"): Change expander to handle
7740 sibling calls.
7741
49168734
NC
77422011-03-21 Nick Clifton <nickc@redhat.com>
7743
7744 * doc/invoke.texi (Overall Options): Move closing brace to end of
7745 options list.
7746 (Optimization Options): Add missing @gol.
7747 (Directory Options): Likewise.
7748 (i386 and x86-64 Options): Likewise.
7749 (RS6000 and PowerPC Options): Likewise.
7750 (i386 and x86-64 Windows Options): Likewise.
7751 (V850 Options): Add text missing from descriptions.
7752
bdfe906f
RH
77532011-03-22 Richard Henderson <rth@redhat.com>
7754
7755 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
7756 (avr_incoming_return_addr_rtx): New.
7757 (emit_push_byte): New.
7758 (expand_prologue): Use it. Remove incorrect dwarf annotation for
7759 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
7760 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
7761 (emit_pop_byte): New.
7762 (expand_epilogue): Use it. Pop frame pointer by bytes.
7763 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
7764 (INCOMING_RETURN_ADDR_RTX): New.
7765 (INCOMING_FRAME_SP_OFFSET): New.
7766 (ARG_POINTER_CFA_OFFSET): New.
7767 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
7768 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
7769 (pophi): Remove.
7770
d090a5aa
RH
7771 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
7772
fdf3e18a
NF
77732011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7774
7775 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7776 (FUNCTION_ARG_ADVANCE): Likewise.
7777 * tm.texi.in: Change references to them to hook references.
7778 * tm.texi: Regenerate.
7779 * targhooks.c (default_function_arg): Eliminate check for target
7780 macro.
7781 (default_function_incoming_arg): Likewise.
7782 (default_function_arg_advance): Likewise.
c78dd519 7783 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
7784 (function_arg_advance): Likewise.
7785 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7786
009d3fcf
NF
77872011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7788
7789 * tree.c (build_call_1): New function.
7790 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
7791
7bec30e1
RG
77922011-03-22 Richard Guenther <rguenther@suse.de>
7793
7794 PR tree-optimization/48228
7795 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
7796 for single-arg PHIs.
7797
0b7e851b
AB
77982011-03-22 Andrey Belevantsev <abel@ispras.ru>
7799
7800 PR rtl-optimization/48143
7801 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
7802 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
7803 sse2_cvtps2pd): Likewise.
7804
d89afca5
AK
78052011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7806
7807 * recog.c (canonicalize_change_group): Use validate_unshare_change.
7808
f471fe72
RG
78092011-03-22 Richard Guenther <rguenther@suse.de>
7810
7811 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
7812 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
7813 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
7814 and REALIGN_LOAD_EXPR.
7815 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
7816 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
7817 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
7818 DOT_PROD_EXPR case ...
7819 (expand_expr_real_2): ... here.
7820 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
7821 and REALIGN_LOAD_EXPR.
7822 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
7823 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
7824 (vect_create_epilog_for_reduction): Likewise.
7825 (vectorizable_reduction): Likewise.
7826 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
7827 * tree-vect-stmts.c (vectorizable_load): Likewise.
7828
f2f81d57
EB
78292011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7830
7831 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
7832
ab081dd6
AK
78332011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7834
7835 * config/s390/s390.c (s390_delegitimize_address): Fix offset
7836 handling for PLTOFF/GOTOFF.
7837
6fd5332b
NC
78382011-03-22 Nick Clifton <nickc@redhat.com>
7839
7840 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7841 trailing backslash from the end of the macro definition.
7842
01841ac0
AK
78432011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7844
7845 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
7846 and PLT unspecs.
7847
2ef6ce06
RS
78482011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
7849
7850 * expr.h (prepare_operand): Move to...
7851 * optabs.h (prepare_operand): ...here and change the insn code
7852 parameter from "int" to "enum insn_code".
7853 (insn_operand_matches): Declare.
7854 * expr.c (init_expr_target): Use insn_operand_matches.
7855 (compress_float_constant): Likewise.
7856 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
7857 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
7858 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
7859 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
7860 Likewise.
2ef6ce06
RS
7861 (gen_cond_trap): Likewise.
7862 (prepare_operand): Likewise. Change icode to an insn_code.
7863 (insn_operand_matches): New function.
7864 * reload.c (find_reloads_address_1): Use insn_operand_matches.
7865 * reload1.c (gen_reload): Likewise.
7866 * targhooks.c (default_secondary_reload): Likewise.
7867
9e43ad68
UB
78682011-03-21 Uros Bizjak <ubizjak@gmail.com>
7869
9a96da32
UB
7870 * config/alpha/alpha.md (unspec): New define_c_enum.
7871 (unspecv): Ditto.
7872
78732011-03-21 Uros Bizjak <ubizjak@gmail.com>
7874
7875 PR debug/48214
9e43ad68
UB
7876 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
7877 between a call and its CALL_ARG_LOCATION note.
7878
31408f60
EB
78792011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7880
7881 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
7882
78832011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
7884
7885 PR c/42544
7886 PR c/48197
7887 * c-common.c (shorten_compare): If primopN is first sign-extended
7888 to opN and then zero-extended to result type, set primopN to opN.
7889
9dfd55f5
DJ
78902011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
7891
7892 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
7893 for barrier handlers.
7894
f3c33d9d
MM
78952011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7896
7897 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
7898 UNSPEC constants to be in the unspec enumeration, and redefine
7899 all UNSPECV constants to be in the unspecv enumeration, so that
7900 dumps print which unspec/unspec_volatile this is.
7901 * config/rs6000/vector.md (UNSPEC_*): Ditto.
7902 * config/rs6000/paired.md (UNSPEC_*): Ditto.
7903 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
7904 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
7905 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
7906
7907 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
7908 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
7909 UNSPECV_LWSYNC, since these are used as unspec_volatile.
7910 * config/rs6000/sync.md (isync, lwsync): Ditto.
7911
ac43f774
RG
79122011-03-21 Richard Guenther <rguenther@suse.de>
7913
7914 * params.def (lto-min-partition): Fix typo.
7915
411cdbd8
RG
79162011-03-21 Richard Guenther <rguenther@suse.de>
7917
7918 PR c/47939
7919 * c-decl.c (grokdeclarator): Drop to the main variant only
7920 for array types. Drop flag_gen_aux_info check.
7921
1cd9e416
RG
79222011-03-21 Richard Guenther <rguenther@suse.de>
7923
7924 PR translation/47911
7925 * params.def (lto-partitions): Fix typo.
7926 (lto-min-partition): Fix wording.
7927
ada5ad67
AT
79282011-03-21 Andreas Tobler <andreast@fgznet.ch>
7929
7930 * config/rs6000/t-freebsd: Remove duplication from file.
7931
f9613c9a
RG
79322011-03-21 Richard Guenther <rguenther@suse.de>
7933
7934 PR middle-end/47661
7935 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
7936
9bfbc1eb
RG
79372011-03-21 Richard Guenther <rguenther@suse.de>
7938
7939 PR lto/48210
7940 * params.def (lto-partitions): Require at least 1 partition.
7941
a2268084
RO
79422011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7943
7944 * gthr-solaris.h: Remove.
7945 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
7946 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
7947 (LIB_SPEC): Likewise.
7948 * config/sol2.opt (threads): Remove.
9e43ad68 7949 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
7950 (sparc*-*-solaris2*): Likewise.
7951 * configure.ac (enable_threads): Enable solaris support.
7952 * configure: Regenerate.
9e43ad68 7953 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
7954 * doc/install.texi (Configuration, --enable-threads=lib): Remove
7955 solaris.
7956
c43d9a1b
RO
79572011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7958
7959 * config.gcc: Obsolete *-*-solaris2.8*.
7960 * doc/install.texi (Specific, *-*-solaris2*): Document it.
7961
084239f4
RO
79622011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7963
7964 PR bootstrap/48135
7965 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
7966 reference. Solaris 8 perl works.
7967
64cadbe7
RO
79682011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7969
7970 PR bootstrap/48135
7971 * doc/install.texi (Prerequisites): Move jar etc. up.
7972 Explain support library version requirements.
7973
eb975109
RO
79742011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7975
7976 PR bootstrap/48135
7977 * doc/install.texi (Prerequisites): Move Perl to build
7978 requirements. Always necessary on Solaris 2 with Sun ld.
7979
8a509ffd
RO
79802011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7981
7982 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
7983 binutils 2.21.
7984 (Specific, i?86-*-solaris2.[89]): Likewise.
7985 (Specific, i?86-*-solaris2.10): Likewise.
7986 (Specific, mips-sgi-irix6): Likewise.
7987 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
7988 Update for binutils 2.21.
7989
8fbc58a1
RO
79902011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7991
7992 * configure.ac (gcc_cv_lto_plugin): Fix typo.
7993 Allow -fuse-linker-plugin for non-default plugin linker.
7994 * configure: Regenerate.
7995
7e84ad0b
NP
79962011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
7997
7998 PR bootstrap/48167
7999 * gengtype.c (files_rules): Added rule for cp/parser.h.
8000
2f36e14b
JJ
80012011-03-21 Jakub Jelinek <jakub@redhat.com>
8002
8003 PR target/48213
8004 * config/s390/s390.c (s390_delegitimize_address): Don't call
8005 lowpart_subreg if orig_x has BLKmode.
8006
62d784f7
KT
80072011-03-21 Kai Tietz <ktietz@redhat.com>
8008
8009 PR target/12171
9e43ad68
UB
8010 * doc/plugins.texi: Adjust documentation for plugin register_callback.
8011 * tree.h (attribute_spec): Add new member affects_type_identity.
8012 * attribs.c (empty_attribute_table): Adjust attribute_spec
8013 initializers.
62d784f7
KT
8014 * config/alpha/alpha.c: Likewise.
8015 * config/arc/arc.c: Likewise.
8016 * config/arm/arm.c: Likewise.
8017 * config/avr/avr.c: Likewise.
8018 * config/bfin/bfin.c: Likewise.
8019 * config/crx/crx.c: Likewise.
8020 * config/darwin.h: Likewise.
8021 * config/h8300/h8300.c: Likewise.
8022 * config/i386/cygming.h: Likewise.
8023 * config/i386/i386.c: Likewise.
8024 * config/ia64/ia64.c: Likewise.
8025 * config/m32c/m32c.c: Likewise.
8026 * config/m32r/m32r.c: Likewise.
8027 * config/m68hc11/m68hc11.c: Likewise.
8028 * config/m68k/m68k.c: Likewise.
8029 * config/mcore/mcore.c: Likewise.
8030 * config/mep/mep.c: Likewise.
8031 * config/microblaze/microblaze.c: Likewise.
8032 * config/mips/mips.c: Likewise.
8033 * config/rs6000/rs6000.c: Likewise.
8034 * config/rx/rx.c: Likewise.
8035 * config/sh/sh.c: Likewise.
8036 * config/sol2.h: Likewise.
8037 * config/sparc/sparc.c: Likewise.
8038 * config/spu/spu.c: Likewise.
8039 * config/stormy16/stormy16.c: Likewise.
8040 * config/v850/v850.c: Likewise.
8041
54833ec0
CLT
80422011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
8043
8044 * simplify-rtx.c (simplify_binary_operation_1): Handle
8045 (xor (and A B) C) case when B and C are both constants.
8046
14a41392
MX
80472011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
8048
8049 * tree-dfa.c (add_referenced_var): Fix typo in comment.
8050
806c3492
EB
80512011-03-20 Eric Botcazou <ebotcazou@adacore.com>
8052
8053 PR bootstrap/48168
8054 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
8055
65e0a0f3
JJ
80562011-03-20 Jakub Jelinek <jakub@redhat.com>
8057
8058 PR rtl-optimization/48156
8059 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
8060 assume df and df_lr are not NULL.
8061
b6a75dda
RR
80622011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8063
8064 PR debug/48023
8065 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
8066 between a call and its CALL_ARG_LOCATION note.
8067
5969b52d
KK
80682011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
8069
8070 PR debug/48178
8071 * config/sh/sh.c (find_barrier): Don't emit a constant pool
8072 between a call and its corresponding CALL_ARG_LOCATION note.
8073
f773c2bd
AS
80742011-03-19 Anatoly Sokolov <aesok@post.ru>
8075
8076 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
8077 instead of loop. Use HARD_REGISTER_NUM_P predicate.
8078 * haifa-sched.c (setup_ref_regs): Ditto.
8079 * caller-save.c (add_used_regs_1): Ditto.
8080 * dse.c (look_for_hardregs): Ditto.
8081 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
8082 * sched-rgn.c (check_live_1): Ditto.
8083
8bf872f9
JM
80842011-03-18 Joseph Myers <joseph@codesourcery.com>
8085
8086 * c-decl.c (diagnose_mismatched_decls): Give an error for
8087 redefining a typedef with variably modified type.
8088
ff8e2159
JM
80892011-03-18 Joseph Myers <joseph@codesourcery.com>
8090
8091 * c-decl.c (grokfield): Don't allow typedefs for structures or
8092 unions with no tag by default.
8093 * doc/extend.texi (Unnamed Fields): Update.
8094
16cc4440
UB
80952011-03-18 Uros Bizjak <ubizjak@gmail.com>
8096
8097 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8098 Rewrite using indirect functions.
8099 (lwp_slwpcb): Ditto.
8100 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
8101 (avx_vinsertf128<mode>): Ditto.
8102
e101e12e
AK
81032011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8104
8105 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
8106 unspecs.
8107
4627c7fb
AK
81082011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8109
8110 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 8111 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 8112
2d36b47f
MK
81132011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8114
8115 PR rtl-optimization/48170
8116 * gcse.c (hoist_code): Remove bogus asserts.
8117
2a3d7659
JL
81182011-03-18 Georg-Johann Lay <avr@gjlay.de>
8119
8120 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
8121 computation for prologue/epilogue.
8122
34c3ef05
RO
81232011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8124
8125 * Makefile.in (check-consistency): Remove.
8126
81f2b976
JJ
81272011-03-18 Jakub Jelinek <jakub@redhat.com>
8128
8129 PR debug/48176
8130 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
8131 arange_table_in_use is 0, but either text_section_used or
8132 cold_text_section_used is true. Don't call it if
8133 !info_section_emitted.
8134
68fd7765
AS
81352011-03-18 Anatoly Sokolov <aesok@post.ru>
8136
8137 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
8138 FUNCTION_VALUE_REGNO_P): Remove.
8139 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
8140 Remove.
8141 * config/avr/avr.c (avr_ret_register): Make static inline.
8142 (avr_function_value_regno_p): New function.
8143 (avr_libcall_value): Make static. Add 'func' argument.
8144 (avr_function_value): Make static. Rename 'func' argument to
8145 'fn_decl_or_type', forward it to avr_libcall_value. Call
8146 avr_ret_register function instead of RET_REGISTER macro.
8147 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
8148
b4ef8aac
JM
81492011-03-18 Jason Merrill <jason@redhat.com>
8150
8151 PR c++/23372
8152 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
8153
09a52fc3
RG
81542011-03-18 Richard Guenther <rguenther@suse.de>
8155
8156 * doc/install.texi (--enable-gold): Remove.
8157 (--with-plugin-ld): Document.
8158 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
8159
2a3d7659 81602011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
8161
8162 PR middle-end/47790
8163 * expr.c (optimize_bitfield_assignment_op): Revamp to work
8164 again after expansion changes.
8165
2abbb0fe
CLT
81662011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
8167
8168 * combine.c (try_combine): Do simplification only call of
8169 subst() on i2 even when i1 is present. Update comments.
8170
2efd0aa6
KK
81712011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
8172
8173 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
8174 and UNSPEC_PCREL_SYMOFF.
8175
30a49b23
AK
81762011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8177
8178 * config/s390/s390.md: Use define_c_enum for the unspec constant
8179 definitions.
8180
419e1853
JJ
81812011-03-18 Richard Henderson <rth@redhat.com>
8182 Jakub Jelinek <jakub@redhat.com>
8183
8184 PR bootstrap/48161
8185 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
8186 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
8187
37875856
L
81882011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8189
8190 PR middle-end/47725
8191 * combine.c (cant_combine_insn_p): Don't check zero/sign
8192 extended hard registers.
8193
76069764
L
81942011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8195
8196 PR middle-end/47725
8197 * combine.c (cant_combine_insn_p): Check zero/sign extended
8198 hard registers.
8199
24da2019
AS
82002011-03-17 Anatoly Sokolov <aesok@post.ru>
8201
8202 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8203 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
8204 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
8205 Change return type to bool.
8206 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8207
a82ff31f
JJ
82082011-03-17 Jakub Jelinek <jakub@redhat.com>
8209
8b29c87a
JJ
8210 PR debug/48163
8211 * var-tracking.c (prepare_call_arguments): If CALL target
8212 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
8213 pc instead of looking it up using cselib_lookup and use
8214 Pmode for it if x has VOIDmode.
8215 * dwarf2out.c (gen_subprogram_die): If also both first and
8216 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
8217
a82ff31f
JJ
8218 PR debug/48163
8219 * function.c (assign_parms): For data.passed_pointer parms
8220 use MEM of data.entry_parm instead of data.entry_parm itself
8221 as DECL_INCOMING_RTL.
8222 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
8223 also when passed and declared mode is the same, DECL_RTL
8224 is a MEM with pseudo as address and DECL_INCOMING_RTL is
8225 a MEM too.
8226
82ce305c
JL
82272011-03-16 Jeff Law <law@redhat.com>
8228
8229 PR rtl-optimization/37273
8230 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8231 handle them like argument loads from stack slots. Do not double
8232 count memory for memory constants and argument loads from stack slots.
8233
fe58e02b
L
82342011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8235
8236 PR debug/48160
8237 * var-tracking.c (prepare_call_arguments): Check SUBREG.
8238
6fc4dbc7
L
82392011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8240
8241 PR target/48171
8242 * config/i386/i386.opt: Add Save to -mavx and -mfma.
8243
db3ed0b3
JJ
82442011-03-17 Jakub Jelinek <jakub@redhat.com>
8245
8054a389
JJ
8246 PR bootstrap/48153
8247 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
8248 if dwarf_strict.
8249 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
8250 Clear call_arg_locations and call_arg_loc_last always.
8251
db3ed0b3
JJ
8252 PR middle-end/48152
8253 * var-tracking.c (prepare_call_arguments): If argument needs to be
8254 passed by reference, adjust argtype and mode.
8255
1bce4ff3
RG
82562011-03-17 Richard Guenther <rguenther@suse.de>
8257
8258 PR middle-end/48134
8259 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
8260 a value make sure to fold the statement.
8261
7c71147d
CLT
82622011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
8263
8264 PR target/43872
8265 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
8266 return condition with !cfun->calls_alloca.
8267
0e1ee172
RG
82682011-03-17 Richard Guenther <rguenther@suse.de>
8269
8270 PR bootstrap/48148
8271 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8272 origin for decls in other ltrans units.
8273 (input_varpool_node): Likewise.
8274
f8bce518
RG
82752011-03-17 Richard Guenther <rguenther@suse.de>
8276
8277 PR middle-end/48165
8278 * tree-object-size.c (compute_object_offset): Properly return
8279 the offset operand of MEM_REFs as sizetype.
8280
1b6fa860
JJ
82812011-03-17 Jakub Jelinek <jakub@redhat.com>
8282
dabd47e7
JJ
8283 PR rtl-optimization/48141
8284 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
8285 * dse.c: Include params.h.
8286 (active_local_stores_len): New variable.
8287 (add_wild_read, dse_step1): Clear it when setting active_local_stores
8288 to NULL.
8289 (record_store, check_mem_read_rtx): Decrease it when removing
8290 from the chain.
8291 (scan_insn): Likewise. Increase it when adding to chain, if it
8292 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
8293 set active_local_stores to NULL before the addition.
8294 * Makefile.in (dse.o): Depend on $(PARAMS_H).
8295
1b6fa860
JJ
8296 PR rtl-optimization/48141
8297 * dse.c (record_store): If no positions are needed in an insn
8298 that cannot be deleted, at least unchain it from active_local_stores.
8299
7b5cb7d6
DS
83002011-03-16 Dodji Seketeli <dodji@redhat.com>
8301
8302 PR debug/47510
8303 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
8304 (lookup_type_die_strip_naming_typedef): ... here.
8305 (get_context_die): Use it.
8306 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
8307 the anonymous struct named by the naming typedef.
8308
585e9d9d
L
83092011-03-16 H.J. Lu <hongjiu.lu@intel.com>
8310
8311 PR target/48154
8312 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
8313 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8314
6261ab0e
JL
83152011-03-16 Jeff Law <law@redhat.com>
8316
8317 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 8318 check for operands of conditional. Allow type to be a pointer.
6261ab0e 8319
0b0081ec
RG
83202011-03-16 Richard Guenther <rguenther@suse.de>
8321
8322 PR tree-optimization/48149
8323 * fold-const.c (fold_binary_loc): Fold
8324 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
8325
64a3d647
RG
83262011-03-16 Richard Guenther <rguenther@suse.de>
8327
8328 PR tree-optimization/26134
8329 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
8330 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
8331 (non_rewritable_mem_ref_base): Handle complex type component
8332 accesses, constrain offsets for vector and complex extracts
8333 more properly.
8334
ef13324e
RG
83352011-03-16 Richard Guenther <rguenther@suse.de>
8336
8337 PR tree-optimization/48146
8338 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
8339 operands avoiding the need for renaming.
8340
f0eddb90
RG
83412011-03-16 Richard Guenther <rguenther@suse.de>
8342
8343 * gimple-fold.c (maybe_fold_reference): Open-code relevant
8344 constant folding. Move MEM_REF canonicalization first.
8345 Rely on fold_const_aggregate_ref for initializer folding.
8346 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
8347
e42348b8
JJ
83482011-03-16 Jakub Jelinek <jakub@redhat.com>
8349
29f10e71
JJ
8350 PR middle-end/48136
8351 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8352 arg0/arg1 or their arguments are always fold converted to matching
8353 types.
8354
e42348b8
JJ
8355 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
8356 to nargs.
8357
55b46574
RO
83582011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8359
8360 PR lto/46944
8361 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
8362 Handle in-tree gold.
8363 (ld_vers): Extract binutils version for gold.
8364 (gcc_cv_ld_hidden): Handle gold here.
8365 (gcc_cv_lto_plugin): Determine level of linker plugin support.
8366 * configure: Regenerate.
8367 * config.in: Regenerate.
8368 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
8369 -fuse-linker-plugin otherwise.
8370 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
8371 (LINK_COMMAND_SPEC): Use it.
8372 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
8373
2b1c5433
JJ
83742011-03-16 Jakub Jelinek <jakub@redhat.com>
8375
c2969d8e
JJ
8376 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
8377 * calls.c: Remove debug.h include.
8378 (emit_call_1): Don't call virtual_call_token debug hook.
8379 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
8380 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
8381 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
8382 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
8383 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
8384 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
8385 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
8386 dwarf2out_virtual_call): Remove.
8387 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
8388 copy_call_info and virtual_call hooks.
8389 (dwarf2out_init): Don't initialize vcall_insn_table,
8390 debug_dcall_section and debug_vcall_section.
8391 (prune_unused_types): Don't mark nodes from dcall_table.
8392 (dwarf2out_finish): Don't output dcall or vcall tables.
8393 * final.c (final_scan_insn): Don't call direct_call or
8394 virtual_call debug hooks.
8395 * debug.h (struct gcc_debug_hooks): Remove direct_call,
8396 virtual_call_token, copy_call_info and virtual_call hooks.
8397 (debug_nothing_uid): Remove prototype.
8398 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
8399 copy_call_info and virtual_call hooks.
8400 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8401 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
8402 * debug.c (do_nothing_debug_hooks): Likewise.
8403 (debug_nothing_uid): Remove.
8404 * doc/invoke.texi (-fenable-icf-debug): Remove.
8405 * common.opt (-fenable-icf-debug): Likewise.
8406
325f5379
JJ
8407 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
8408 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
8409 call's MEM. Handle functions returning aggregate through a hidden
8410 first pointer. For virtual calls add clobbered pc to call arguments
8411 chain.
8412 * dwarf2out.c (gen_subprogram_die): Emit
8413 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
8414 can't be emitted.
8415
a58a8e4b
JJ
8416 PR debug/45882
8417 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
8418 * rtl.h (ENTRY_VALUE_EXP): Define.
8419 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
8420 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
8421 * print-rtl.c (print_rtx): Likewise.
8422 * gengtype.c (adjust_field_rtx_def): Likewise.
8423 * var-tracking.c (vt_add_function_parameter): Adjust
8424 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
8425 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
8426 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
8427 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
8428 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
8429
2b1c5433
JJ
8430 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
8431 Call var_location debug hook even on CALL_INSNs.
8432 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
8433 * rtl.def (ENTRY_VALUE): New.
8434 * dwarf2out.c: Include cfglayout.h.
8435 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8436 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
8437 (struct call_arg_loc_node): New type.
8438 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
8439 tail_call_site_count): New variables.
8440 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
8441 DW_TAG_GNU_call_site_parameter.
8442 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
8443 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
8444 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
8445 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
8446 and DW_AT_GNU_all_source_call_sites.
8447 (mem_loc_descriptor): Handle ENTRY_VALUE.
8448 (add_src_coords_attributes): Don't add enything if
8449 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
8450 (dwarf2out_abstract_function): Save and clear call_arg_location,
8451 call_site_count and tail_call_site_count around dwarf2out_decl call.
8452 (gen_call_site_die): New function.
8453 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
8454 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
8455 (dwarf2out_function_decl): Clear call_arg_locations,
8456 call_arg_loc_last, set call_site_count and tail_call_site_count
8457 to -1 and free block_map.
8458 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
8459 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
8460 followed by any real instructions.
8461 (dwarf2out_begin_function): Set call_site_count and
8462 tail_call_site_count to 0.
8463 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
8464 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
8465 attempt to force a DIE for it and worst case remove the attribute.
8466 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
8467 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
8468 the decl itself.
8469 * var-tracking.c: Include tm_p.h.
8470 (vt_stack_adjustments): For calls call note_register_arguments.
8471 (argument_reg_set): New variable.
8472 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
8473 ensure the VALUE is resolved.
8474 (call_arguments): New variable.
8475 (prepare_call_arguments): New function.
8476 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
8477 (struct expand_loc_callback_data): Add ignore_cur_loc field.
8478 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
8479 always use the best expression.
8480 (vt_expand_loc): Add ignore_cur_loc argument.
8481 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
8482 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
8483 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
8484 note for all calls.
8485 (vt_add_function_parameter): Use cselib_lookup_from_insn.
8486 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
8487 argument. Don't call cselib_preserve_only_values and
8488 cselib_reset_table.
8489 (note_register_arguments): New function.
8490 (vt_initialize): Compute argument_reg_set. Call
8491 vt_add_function_parameters before processing basic blocks instead of
8492 afterwards. For calls call prepare_call_arguments before calling
8493 cselib_process_insn.
8494 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
8495 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
8496 (var-tracking.o): Depend on $(TM_P_H).
8497 * cfglayout.h (insn_scope): New prototype.
8498 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
8499 * cfglayout.c (insn_scope): No longer static.
8500 * insn-notes.def (CALL_ARG_LOCATION): New.
8501 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
8502 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
8503 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
8504 nothing for DECL_EXTERNAL BLOCK_VARS.
8505
9ef13bd0
AM
85062011-03-16 Alan Modra <amodra@gmail.com>
8507
8508 PR target/45844
8509 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8510 create invalid offset address for vsx splat insn.
8511 * config/rs6000/predicates.md (splat_input_operand): New.
8512 * config/rs6000/vsx.md (vsx_splat_*): Use it.
8513
56b67510
XDL
85142011-03-15 Xinliang David Li <davidxl@google.com>
8515
8516 PR c/47837
8517 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
8518 (normalize_preds): New function.
8519 (is_use_properly_guarded): Normalize def predicates.
8520
80fffdef
RR
85212011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8522
732f37c6 8523 PR target/46788
80fffdef
RR
8524 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
8525 in the output template.
8526
930672ad
RG
85272011-03-15 Richard Guenther <rguenther@suse.de>
8528
8529 PR middle-end/47650
8530 * tree-pretty-print.c (dump_function_declaration): Properly
8531 dump unprototyped and varargs function types.
8532
c7ee7b45
RG
85332011-03-15 Richard Guenther <rguenther@suse.de>
8534
8535 PR tree-optimization/13954
8536 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
8537 and friends.
8538
b2ad5e37
RG
85392011-03-15 Richard Guenther <rguenther@suse.de>
8540
8541 PR tree-optimization/48037
8542 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
8543 selects into BIT_FIELD_REFs.
8544 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8545 vector select.
8546
7ee93d4e
JJ
85472011-03-15 Jakub Jelinek <jakub@redhat.com>
8548
8549 PR tree-optimization/48129
8550 * builtins.c (fold_builtin_snprintf): Convert to type of
8551 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8552 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8553
e106efc7
RG
85542011-03-15 Richard Guenther <rguenther@suse.de>
8555
8556 PR tree-optimization/41490
8557 * tree-ssa-dce.c (propagate_necessity): Handle returns without
8558 value but with VUSE.
8559 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8560 return statements.
8561 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8562 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8563 * tree-tailcall.c (find_tail_calls): Ignore returns.
8564
17dea42f
RG
85652011-03-15 Richard Guenther <rguenther@suse.de>
8566
8567 PR middle-end/48031
8568 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8569 or variable-indexed array accesses when in gimple form.
8570
01c77a60
RG
85712011-03-15 Richard Guenther <rguenther@suse.de>
8572
16cc4440 8573 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 8574
77b0791e
AM
85752011-03-15 Alan Modra <amodra@gmail.com>
8576
8577 PR target/48032
8578 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8579 presume symbol_refs without a symbol_ref_decl are suitably
8580 aligned, nor other trees we may see here. Handle anchor symbols.
8581 (legitimate_constant_pool_address_p): Comment. Add mode param.
8582 Check cmodel=medium addresses. Adjust all calls.
8583 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8584 creating cmodel=medium optimized access to locals.
8585 * config/rs6000/constraints.md (R): Pass QImode to
8586 legitimate_constant_pool_address_p.
8587 * config/rs6000/predicates.md (input_operand): Pass mode to
8588 legitimate_constant_pool_address_p.
8589 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8590 Update prototype.
8591
35f61ba4
MM
85922011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8593
8594 PR target/48053
8595 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8596 64-bit constants being loaded into registers other than GPRs such
8597 as loading 0 into a VSX register.
8598
07332e6d
RO
85992011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8600
16cc4440 8601 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 8602
de888d90
JJ
86032011-03-14 Jakub Jelinek <jakub@redhat.com>
8604
ba3ceb2d
JJ
8605 PR middle-end/47917
8606 * builtins.c (fold_builtin_snprintf): New function.
8607 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8608 (fold_builtin_4): Likewise.
8609
2e64f8b8
JJ
8610 PR middle-end/38878
8611 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8612 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
8613 and C - X == X also strip nops from +/-/p+ operand.
8614 When optimizing -X == C, fold C to arg0's type.
8615
de888d90
JJ
8616 PR debug/47946
8617 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
8618 emit it as add_AT_int instead of add_AT_unsigned.
8619
86202011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
8621
8622 * unwind-dw2.c: Include sys/sdt.h if it exists.
8623 (_Unwind_DebugHook): Use STAP_PROBE2.
8624 * config.in, configure: Rebuild.
8625 * configure.ac: Check for sys/sdt.h.
8626
d34abfd2
UB
86272011-03-14 Uros Bizjak <ubizjak@gmail.com>
8628
8629 * config/i386/i386.md (ROUND_FLOOR): New constant.
8630 (ROUND_CEIL): Ditto.
8631 (ROUND_TRUNC): Ditto.
8632 (ROUND_MXCSR): Ditto.
8633 (ROUND_NO_EXC): Ditto.
8634 (rint<mode>2): Use new defines instead of numerical constants.
8635 (floor<mode>2): Ditto.
8636 (ceil<mode>2): Ditto.
8637 (btrunc<mode>2): Ditto.
8638 * config/i386/i386-builtin-types.def: Define ROUND function type
8639 aliases.
8640 * config/i386/i386.c (enum ix86_builtins): Add
8641 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
8642 (struct builtin_description): Add
8643 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
8644 (ix86_expand_sse_round): New static function.
8645 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
8646 function types.
8647 (ix86_builtin_vectorized_function): Handle
8648 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8649
87f9e23d
TT
86502011-03-14 Tom Tromey <tromey@redhat.com>
8651
8652 * c-parser.c (c_parser_asm_string_literal): Clear
8653 warn_overlength_strings.
8654
b3ab9ea2
TT
86552011-03-14 Tom Tromey <tromey@redhat.com>
8656
8657 * c-parser.c (disable_extension_diagnostics): Save
8658 warn_overlength_strings.
8659 (restore_extension_diagnostics): Restore warn_overlength_strings.
8660
6bd73dd8
JJ
86612011-03-14 Jakub Jelinek <jakub@redhat.com>
8662
8663 * BASE-VER: Change to 4.7.0.
8664
7f4d6e1b
RG
86652011-03-14 Richard Guenther <rguenther@suse.de>
8666
8667 PR middle-end/48098
8668 * tree.c (build_vector_from_val): Adjust assert to requirements
8669 and reality.
8670
c6104ef1
JJ
86712011-03-14 Jakub Jelinek <jakub@redhat.com>
8672
8673 PR bootstrap/48102
d34abfd2 8674 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 8675
dfa95e19
AT
86762011-03-14 Andreas Tobler <andreast@fgznet.ch>
8677
f60c2554 8678 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
8679 terms of target_flags_explicit. Adjust copyright year.
8680
8681 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
8682 * config/rs6000/t-freebsd: New file. Add override for
8683 LIB2FUNCS_EXTRA.
8684
bb322018
CD
86852011-03-13 Chris Demetriou <cgd@google.com>
8686
8687 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
8688 (-fno-diagnostics-show-option): this, to reflect current default.
8689 (-Werror=): Update text about -fno-diagnostics-show-option.
8690
12b1c80b
PB
86912011-03-12 Peter Bergner <bergner@vnet.ibm.com>
8692
8693 PR target/48053
8694 * config/rs6000/predicates.md (easy_vector_constant_add_self,
8695 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
8696 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
8697 mode is not V2DImode or V2DFmode.
8698 (vspltis_constant): Do not handle V2DImode and V2DFmode.
8699 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
8700 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
8701 registers to 0.
8702 (movdi_internal64): Likewise.
8703
57d598f7
SP
87042011-03-12 Sebastian Pop <sebastian.pop@amd.com>
8705
8706 PR tree-optimization/47127
8707 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
8708 parameter.
8709 (set_cloog_options): Same.
8710 (scop_to_clast): Same.
8711 (print_clast_stmt): Do not call cloog_state_malloc and
8712 cloog_state_free.
8713 (print_generated_program): Same.
8714 (gloog): Same.
8715 * graphite-clast-to-gimple.h (cloog_state): Declared.
8716 (scop_to_clast): Adjust declaration.
8717 * graphite.c (cloog_state): Defined here.
8718 (graphite_initialize): Call cloog_state_malloc.
8719 (graphite_finalize): Call cloog_state_free.
8720
f231b5ff
JM
87212011-03-11 Jason Merrill <jason@redhat.com>
8722
8723 * attribs.c (lookup_attribute_spec): Take const_tree.
8724 * tree.h: Adjust.
8725
6a4e2bd5
JM
87262011-03-11 Joseph Myers <joseph@codesourcery.com>
8727
8728 * config/sparc/sparc.c (sparc_option_override): Use
8729 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
8730
a758fd67
RG
87312011-03-11 Richard Guenther <rguenther@suse.de>
8732
8733 PR tree-optimization/48067
8734 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
8735 multiplication result will be only used once on the target
8736 stmt.
8737
03dfda54
RG
87382011-03-11 Richard Guenther <rguenther@suse.de>
8739
8740 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
8741
5f11a50a
RG
87422011-03-11 Richard Guenther <rguenther@suse.de>
8743
8744 PR lto/48073
8745 * tree.c (find_decls_types_r): Do not walk types only reachable
8746 from IDENTIFIER_NODEs.
8747
4074f163
JJ
87482011-03-11 Jakub Jelinek <jakub@redhat.com>
8749
8750 PR middle-end/48044
8751 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
8752 all vnode->force_output nodes as needed.
8753
30f7cdcd
JM
87542011-03-11 Jason Merrill <jason@redhat.com>
8755
8756 PR c++/48069
8757 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
8758 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
8759
62ecfeb8
MJ
87602011-03-11 Martin Jambor <mjambor@suse.cz>
8761
8762 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
8763 cgraph_node.
8764
e89e03ab
JJ
87652011-03-11 Jakub Jelinek <jakub@redhat.com>
8766
8767 PR tree-optimization/48063
8768 * ipa-inline.c (cgraph_decide_inlining): Don't try to
8769 inline functions called once if !tree_can_inline_p (node->callers).
8770
efbe978b 87712011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 8772
efbe978b
EB
8773 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
8774 extra_objs.
9d6193a7
CL
8775 * config/score/score3.c: Delete.
8776 * config/score/score3.h: Delete.
8777 * config/score/mul-div.S: Delete.
8778 * config/score/sfp-machine.h: Add new file.
8779 * config/score/constraints.md: Add new file.
8780 * config/score/t-score-softfp: Add new file.
efbe978b 8781 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
8782 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
8783 (score7_extra_constraint): Delete.
efbe978b 8784 (score7_option_override): Remove unused code.
9d6193a7
CL
8785 * config/score/score.c: Remove score3 and score5 define and code.
8786 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 8787 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
8788 * config/score/score.opt: Remove score3 and score5 options.
8789
5de27cca
JDA
87902011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8791
8792 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
8793 when _HPUX_SOURCE is defined.
8794 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
8795
18d92053
JM
87962011-03-10 Jason Merrill <jason@redhat.com>
8797
8798 PR c++/48029
8799 * stor-layout.c (layout_type): Don't set structural equality
8800 on arrays of incomplete type.
8801 * tree.c (type_hash_eq): Handle comparing them properly.
8802
67a2f76d
JJ
88032011-03-10 Jakub Jelinek <jakub@redhat.com>
8804
8805 PR debug/48043
18d92053 8806 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
8807 result mode matches original rtl mode.
8808
d845b2f9
NC
88092011-03-10 Nick Clifton <nickc@redhat.com>
8810
8811 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 8812 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 8813
db7ec035
JJ
88142011-03-09 Jakub Jelinek <jakub@redhat.com>
8815
8816 PR rtl-optimization/47866
8817 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
8818 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
8819 if target wasn't scalar.
8820 * function.c (assign_stack_temp_for_type): Assert that neither
8821 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
8822 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
8823 macro.
8824 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
8825
5d304e47
AK
88262011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8827
8828 * config/s390/s390-protos.h (s390_label_align): New prototype.
8829 * config/s390/s390.c (s390_label_align): New function.
8830 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
8831
93b826f0
MM
88322011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8833
8834 PR target/47755
8835 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
8836 V2DI/V2DF constants. Only all 0's or all 1's are easy.
8837 (output_vec_const_move): Ditto.
8838
ef78aed6
AS
88392011-03-08 Anatoly Sokolov <aesok@post.ru>
8840
8841 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
8842 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
8843 * config/mips/mips.c (mips_preferred_reload_class): Make static.
8844 Change 'rclass' argument and result type to reg_class_t.
8845 (TARGET_PREFERRED_RELOAD_CLASS): Define.
8846
5f892aa0
GJL
88472011-03-08 Georg-Johann Lay <avr@gjlay.de>
8848
9e43ad68
UB
8849 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8850 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
8851 (TARGET_MEMORY_MOVE_COST): Define.
8852 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 8853
32bd2409
JJ
88542011-03-08 Jakub Jelinek <jakub@redhat.com>
8855
530a4800
JJ
8856 PR debug/47881
8857 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
8858 removed anything.
8859
32bd2409
JJ
8860 PR tree-optimization/48022
8861 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
8862 for EQ/NE_EXPR.
8863
c7148991
JJ
88642011-03-07 Jakub Jelinek <jakub@redhat.com>
8865
8866 PR debug/47991
8867 * var-tracking.c (find_use_val): Return NULL for
8868 cui->sets && cui->store_p BLKmode MEMs.
8869
43070a6e
AS
88702011-03-07 Anatoly Sokolov <aesok@post.ru>
8871
8872 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
8873 Remove.
8874 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
8875 xstormy16_print_operand_address): Remove.
8876 * config/stormy16/stormy16.c (xstormy16_print_operand,
8877 xstormy16_print_operand_address): Make static.
8878 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8879
efbe978b 88802011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
8881
8882 PR target/47862
8883 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8884 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
8885 before definition.
8886
cec8ac0b
ZD
88872011-03-07 Zdenek Dvorak <ook@ucw.cz>
8888
8889 PR bootstrap/48000
8890 * cfgloopmanip.c (fix_bb_placements): Return immediately
8891 if FROM is BASE_LOOP's header.
8892
59527282
PW
88932011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
8894
8895 * gimplify.c (gimplify_function_tree): Fix building calls
8896 to __builtin_return_address.
8897
617718f7
AM
88982011-03-07 Alan Modra <amodra@gmail.com>
8899
8900 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
8901 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
8902 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
8903 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
8904 return_mode args.
8905 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
8906 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
8907 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
8908 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
8909 * config/rs6000/rs6000.c
8910 (rs6000_elf_end_indicate_exec_stack): Rename to..
8911 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
8912 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
8913 (rs6000_file_start): ..here.
8914 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
8915 file scope variables.
8916 (call_ABI_of_interest): New function.
8917 (init_cumulative_args): Set above vars when function return value
8918 is a float, vector, or small struct.
8919 (rs6000_function_arg_advance_1): Likewise for function args.
8920 (rs6000_va_start): Set rs6000_passes_float if variable arg function
8921 references float args.
8922
38528d50
MX
89232011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
8924
8925 * doc/cfg.texi: Remove "See" before @ref.
8926 * doc/invoke.texi: Likewise.
8927
f42cf4f4
JM
89282011-03-05 Jason Merrill <jason@redhat.com>
8929
8930 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
8931
804a304d
AG
89322011-03-05 Anthony Green <green@moxielogic.com>
8933
8934 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
8935
634ee309
ZD
89362011-03-05 Zdenek Dvorak <ook@ucw.cz>
8937
8938 PR rtl-optimization/47899
8939 * cfgloopmanip.c (fix_bb_placements): Fix first argument
8940 to flow_loop_nested_p when moving the loop upward.
8941
6fe471c8
RE
89422011-03-05 Richard Earnshaw <rearnsha@arm.com>
8943
8944 PR target/47719
8945 * arm.md (movhi_insn_arch4): Accept any immediate constant.
8946
cc58ceee
JJ
89472011-03-05 Jakub Jelinek <jakub@redhat.com>
8948
8949 PR tree-optimization/47967
8950 * ipa-cp.c (build_const_val): Return NULL instead of creating
8951 VIEW_CONVERT_EXPR for mismatching sizes.
8952 (ipcp_create_replace_map): Return NULL if build_const_val failed.
8953 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
8954 give up on versioning.
8955
ea868305
AM
89562011-03-05 Alan Modra <amodra@gmail.com>
8957
8958 PR target/47986
8959 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8960 full cmodel medium/large lo_sum + high addresses.
8961
bc6ce334
AK
89622011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8963
8964 * config/s390/s390.c (s390_decompose_address): Reject non-literal
8965 pool references in UNSPEC_LTREL_OFFSET.
8966
87e7b310
JH
89672011-03-04 Jan Hubicka <jh@suse.cz>
8968
8969 PR lto/47497
8970 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
8971 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
8972 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
8973 Add node pointers.
87e7b310
JH
8974 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
8975 cgraph_add_thunk): Add node pointers.
8976 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
8977 associated to right node.
8978 (input_node): Update use of cgraph_same_body_alias
8979 and cgraph_add_thunk.
8980
d9c64246
CF
89812011-03-04 Changpeng Fang <changpeng.fang@amd.com>
8982
8983 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
8984 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
8985 modes when the flag -mprefer-avx128 is on.
d9c64246 8986
08707076
RS
89872011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
8988
8989 * dwarf2out.c (compare_loc_operands): Fix address handling.
8990
52517c81
AM
89912011-03-04 Alan Modra <amodra@gmail.com>
8992
8993 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
8994
b147c5b9
RG
89952011-03-04 Richard Guenther <rguenther@suse.de>
8996
8997 PR middle-end/47968
8998 * expmed.c (extract_bit_field_1): Prefer vector modes that
8999 vec_extract patterns can handle.
9000
8750672f
RG
90012011-03-04 Richard Guenther <rguenther@suse.de>
9002
9003 PR middle-end/47975
9004 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
9005
9eac0f2a
RH
90062011-03-04 Richard Henderson <rth@redhat.com>
9007
9008 * explow.c (emit_stack_save): Remove 'after' parameter.
9009 (emit_stack_restore): Likewise.
9010 * expr.h: Update to match.
9011 * builtins.c, calls.c, stmt.c: Likewise.
9012 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
9013 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
9014 * function.c (expand_function_end): Insert the emit_stack_save
9015 sequence before parm_birth_insn instead of after.
9016
dfee1406
UB
90172011-03-03 Uros Bizjak <ubizjak@gmail.com>
9018
9019 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
9020 (ssse3_pmaddubsw128): Ditto.
9021 (ssse3_pmaddubsw): Ditto.
9022
f1d4c3de
SE
90232011-03-03 Steve Ellcey <sje@cup.hp.com>
9024
9025 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
9026
71f3a3f5
JJ
90272011-03-03 Jakub Jelinek <jakub@redhat.com>
9028
423ed416
JJ
9029 PR c/47963
9030 * gimplify.c (omp_add_variable): Only call omp_notice_variable
9031 on TYPE_SIZE_UNIT if it is a DECL.
9032
71f3a3f5
JJ
9033 PR debug/47283
9034 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
9035 first operand is not is_gimple_mem_ref_addr, try to fold it.
9036 If the operand still isn't is_gimple_mem_ref_addr, clear
9037 MEM_EXPR on op0.
9038
4b1a5c0d
RG
90392011-03-03 Richard Guenther <rguenther@suse.de>
9040
9041 PR middle-end/47283
9042 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
9043 match comment.
9044 (refs_may_alias_p_1): For release branches return true if
9045 we are confused by our input.
9046
b46616fd
AK
90472011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9048
9049 * config/s390/s390.c (s390_function_value): Rename to ...
9050 (s390_function_and_libcall_value): ... this.
9051 (s390_function_value): New function.
9052 (s390_libcall_value): New function.
dfee1406 9053 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
9054 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
9055 target macro definitions.
9056 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
9057
46d8fabb
JM
90582011-03-02 Joseph Myers <joseph@codesourcery.com>
9059
9060 * config/i386/freebsd64.h (CC1_SPEC): Define.
9061 * config/i386/linux64.h (CC1_SPEC): Define.
9062 * config/i386/x86-64.h (CC1_SPEC): Don't define.
9063
6b1ce545
AS
90642011-03-02 Anatoly Sokolov <aesok@post.ru>
9065
9066 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9067 Remove.
9068 * config/stormy16/stormy16.c: Include reload.h.
9069 (xstormy16_memory_move_cost): New function.
9070 (TARGET_MEMORY_MOVE_COST): Define.
9071
34161e98
RS
90722011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
9073
9074 PR rtl-optimization/47925
9075 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
9076 with side effects. Remove the more-specific check for volatile asms.
9077
f60a97cf
AM
90782011-03-02 Alan Modra <amodra@gmail.com>
9079
9080 PR target/47935
9081 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
9082 toc relative addresses for valid offsets.
9083
f2ca11ca
RG
90842011-03-01 Richard Guenther <rguenther@suse.de>
9085
9086 PR tree-optimization/47890
9087 * tree-vect-loop.c (get_initial_def_for_induction): Set
9088 related stmt properly.
9089
7a00d9ea
RG
90902011-03-01 Richard Guenther <rguenther@suse.de>
9091
9092 PR lto/47924
9093 * lto-streamer.c (lto_record_common_node): Also register
9094 the canonical type.
9095
06c7edcc
RG
90962011-03-01 Richard Guenther <rguenther@suse.de>
9097
9098 PR lto/46911
9099 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9100 Do not stream DECL_ABSTRACT_ORIGIN.
9101 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9102 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9103 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
9104 Do not stream DECL_ABSTRACT_ORIGIN.
9105 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
9106 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
9107
998871e9
AS
91082011-02-28 Anatoly Sokolov <aesok@post.ru>
9109
9110 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
9111 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 9112 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
9113 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
9114 Add 'outgoing' argument.
9115 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
9116 function.
9117 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
9118 TARGET_FUNCTION_VALUE_REGNO_P): Define.
9119
94369251
KT
91202011-02-28 Kai Tietz <kai.tietz@onevision.com>
9121
9122 PR debug/28047
9123 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
9124 (lookup_filename): Likewise.
b2e2ea67 9125 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 9126
80a832cd
JJ
91272011-02-28 Bernd Schmidt <bernds@codesourcery.com>
9128 Jakub Jelinek <jakub@redhat.com>
9129
9130 PR middle-end/47893
9131 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
9132 (assign_stack_local_1): Change last argument type to int.
9133 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
9134 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 9135 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
9136 (assign_stack_local): Adjust caller.
9137 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
9138 of assign_stack_local, pass 0 as last argument.
9139 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
9140 callers.
9141
1b500976
JJ
91422011-02-28 Jakub Jelinek <jakub@redhat.com>
9143
f61c6f34
JJ
9144 PR debug/47283
9145 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
9146 Use target address_mode and pointer_mode hooks instead of hardcoded
9147 Pmode and ptr_mode. Handle some simple cases of extending if
9148 POINTERS_EXTEND_UNSIGNED < 0.
9149 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
9150 Call convert_debug_memory_address.
9151 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
9152 convert_debug_memory_address.
9153
1b500976
JJ
9154 PR middle-end/46790
9155 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
9156 * configure: Regenerated.
9157 * config.in: Regenerated.
9158 * varasm.c (default_function_section): Return NULL
b2e2ea67 9159 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 9160
2f2935b6
MJ
91612011-02-28 Martin Jambor <mjambor@suse.cz>
9162
9163 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
9164 the description to match the printed values.
9165
474086eb
RG
91662011-02-28 Richard Guenther <rguenther@suse.de>
9167
9168 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
9169 of the copied scope tree.
9170
15bf6f3a
RW
91712011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9172
9173 * doc/extend.texi (Function Attributes): Avoid deeply (and
9174 wrongly) nested tables.
9175
f6b439c9
JJ
91762011-02-27 Jakub Jelinek <jakub@redhat.com>
9177
9178 PR middle-end/47903
9179 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
9180 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
9181 r isn't op0 nor op1.
9182
1d8ca2c7
GJL
91832011-02-23 Georg-Johann Lay <avr@gjlay.de>
9184
9185 * config/avr/avr.md: Remove magic comment for emacs.
9186
593fca4b
GJL
91872011-02-23 Georg-Johann Lay <avr@gjlay.de>
9188
9189 PR target/45261
9190 * config/avr/avr.c (avr_option_override): Use error on bad options.
9191 (avr_help): New function.
9192 (TARGET_HELP): Define.
9193
6609216e
GJL
91942011-02-22 Georg-Johann Lay <avr@gjlay.de>
9195
9196 PR target/42240
9197 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
9198 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
9199
03d458af
GP
92002011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
9201
9202 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
9203 (ARM Options): Ditto.
9204 (i386 and x86-64 Options): Ditto.
9205 (RX Options): Ditto.
9206 (SPARC Options): Ditto.
9207
1c379b78
TC
92082011-02-26 Tijl Coosemans <tijl@coosemans.org>
9209
9210 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
9211 FreeBSD 6 and later. Generally use cpu generic.
9212
d5ed058c 92132011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 9214
d5ed058c
GP
9215 * doc/cpp.texi: Update copyright years.
9216
509d65dd 92172011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 9218
509d65dd 9219 PR target/46898
308d39cd
SB
9220 * config/lm32/lm32.md (ashrsi3): Added needed variable.
9221
509d65dd 92222011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 9223
509d65dd 9224 PR target/46898
308d39cd
SB
9225 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
9226 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
9227 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
9228 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 9229 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
9230 (gen_int_relational): Move declarations to start of function.
9231
822ba6d7
EB
92322011-02-25 Eric Botcazou <ebotcazou@adacore.com>
9233
9234 PR tree-optimization/45470
9235 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9236 can throw internally only.
9237 * tree-vect-stmts.c (vectorizable_call): Likewise.
9238
ef795fc2
AS
92392011-02-24 Anatoly Sokolov <aesok@post.ru>
9240
9241 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
9242 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9243 * config/stormy16/stormy16-protos.h
9244 (xstormy16_preferred_reload_class): Remove.
9245 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
9246 static. Change 'rclass' argument and return type to reg_class_t.
9247 (TARGET_PREFERRED_RELOAD_CLASS,
9248 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9249
1c3277ee
RG
92502011-02-24 Richard Guenther <rguenther@suse.de>
9251
9252 * lto-streamer-in.c (input_bb): Do not find referenced vars
9253 in debug statements.
9254
67e18edb
JM
92552011-02-23 Jason Merrill <jason@redhat.com>
9256
9257 * common.opt (fabi-version): Document v5 and v6.
9258
b14fad9d
RG
92592011-02-23 Richard Guenther <rguenther@suse.de>
9260
9261 PR tree-optimization/47849
9262 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
9263
7fcf46f5
JZ
92642011-02-23 Jie Zhang <jie@codesourcery.com>
9265
9266 * opts-common.c (decode_cmdline_option): Print empty string
9267 argument as "" in decoded->orig_option_with_args_text.
9268 * gcc.c (execute): Print empty string argument as ""
9269 in the verbose output.
9270 (do_spec_1): Keep empty string argument.
9271
f85b70fd
NF
92722011-02-23 Nathan Froyd <froydnj@codesourcery.com>
9273
9274 * config.gcc: Declare score-* and crx-* obsolete.
9275
b152a615
JZ
92762011-02-23 Jie Zhang <jie@codesourcery.com>
9277
9278 PR rtl-optimization/47763
9279 * web.c (web_main): Ignore naked clobber when replacing register.
9280
bb6e77bc
AS
92812011-02-22 Anatoly Sokolov <aesok@post.ru>
9282
9283 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9284 Remove.
9285
68bf6491
SP
92862011-02-22 Sebastian Pop <sebastian.pop@amd.com>
9287
9288 PR doc/47848
9289 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
9290
88ee1fc7
MS
92912011-02-22 Mike Stump <mikestump@comcast.net>
9292
9293 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
9294 assembler.
9295 * configure: Regenerate.
9296
6042d1dd
CLT
92972011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
9298
9299 PR rtl-optimization/46002
9300 * ira-color.c (update_copy_costs): Change class intersection
9301 test to reg_class_contents[] test of 'hard_regno'.
9302
7de97f9e
JM
93032011-02-21 Joseph Myers <joseph@codesourcery.com>
9304
9305 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
9306 than Driver option.
9307 * config/hpux11.opt (mt): Likewise.
9308 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
9309 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
9310 * config/vax/elf.opt (mno-asm-pic): Likewise.
9311 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
9312
d1d46f9f
MS
93132011-02-21 Mike Stump <mikestump@comcast.net>
9314
9315 PR target/47822
9316 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
9317 tree so we can get save the type.
9318 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
9319 for CFString instead of trying to use past the end of the builtins.
9320 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
9321 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
9322 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
9323 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
9324 Rename to darwin_builtin_cfstring.
9325 (darwin_init_cfstring_builtins): Return the built type.
9326
23e0d930
UB
93272011-02-21 Uros Bizjak <ubizjak@gmail.com>
9328
9329 PR target/47840
9330 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
9331 (_mm256_insert_epi64): Use _mm_insert_epi64.
9332
192997cf
AS
93332011-02-21 Anatoly Sokolov <aesok@post.ru>
9334
9335 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9336 * config/stormy16/stormy16-protos.h
9337 (xstormy16_mode_dependent_address_p): Remove.
9338 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
9339 Make static. Change return type to bool. Change argument type to
9340 const_rtx. Remove dead code.
9341 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9342
e292d003
RG
93432011-02-21 Richard Guenther <rguenther@suse.de>
9344
9345 PR lto/47820
9346 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9347 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9348 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
9349 TUs context.
23e0d930 9350 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
9351 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9352
77f846e9
RG
93532011-02-20 Richard Guenther <rguenther@suse.de>
9354
9355 PR lto/47822
9356 * tree.c (free_lang_data_in_decl): Clean builtins from
9357 the TU decl BLOCK_VARS.
23e0d930 9358
b2cddfc8
AO
93592011-02-19 Alexandre Oliva <aoliva@redhat.com>
9360
9361 PR debug/47620
9362 PR debug/47630
9363 * haifa-sched.c (fix_tick_ready): Skip tick computation
9364 for debug insns.
9365
becf4c11
RG
93662011-02-19 Richard Guenther <rguenther@suse.de>
9367
9368 PR lto/47647
9369 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9370 Remove lazy BLOCK_VARS streaming.
9371 (lto_input_ts_block_tree_pointers): Likewise.
9372 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9373
27f98305
JM
93742011-02-19 Joseph Myers <joseph@codesourcery.com>
9375
9376 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
9377
064bf3f4
JM
93782011-02-19 Joseph Myers <joseph@codesourcery.com>
9379
9380 * config/i386/biarch32.h, config/i386/mach.h,
9381 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
9382
9215ddc3
JJ
93832011-02-19 Jakub Jelinek <jakub@redhat.com>
9384
9385 PR target/47800
9386 * config/i386/i386.md (peephole2 for shift and plus): Use
9387 operands[1] original mode in the first insn.
9388
8b021004
MS
93892011-02-18 Mike Stump <mikestump@comcast.net>
9390
65ded153 9391 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 9392
f84ae14c
JH
93932011-02-18 Jan Hubicka <jh@suse.cz>
9394
9395 PR middle-end/47788
65ded153
EB
9396 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
9397 to zero when the function is not inlinable at all.
f84ae14c 9398
eddabc80
JDA
93992011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9400
9401 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
9402 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9403 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
9404 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
9405 * config/pa/t-pa64: Likewise.
9406 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9407
ca3da783
JJ
94082011-02-18 Jakub Jelinek <jakub@redhat.com>
9409
9410 PR driver/47787
9411 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
9412
430aa868
JDA
94132011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9414
9415 PR target/47792
9416 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
9417
4bf7ff7e
AS
94182011-02-18 Anatoly Sokolov <aesok@post.ru>
9419
9420 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9421 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
9422 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
9423 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9424 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
9425 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
9426 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
9427 m32r_load_postinc_p, m32r_store_preinc_predec_p,
9428 m32r_legitimate_address_p): New functions.
9429 * config/m32r/constraints.md (constraint "S"): Don't use
9430 STORE_PREINC_PREDEC_P.
9431 (constraint "U"): Don't use LOAD_POSTINC_P.
9432
7efcf910
CLT
94332011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
9434
9435 PR rtl-optimization/46178
9436 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
9437 compute ira_hard_regno_cover_class[].
9438
237d6259
RG
94392011-02-18 Richard Guenther <rguenther@suse.de>
9440
9441 PR lto/47798
9442 * lto-streamer.h (lto_global_var_decls): Declare.
9443 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
9444 statics for global var processing.
9445
12d80acc
RG
94462011-02-18 Richard Guenther <rguenther@suse.de>
9447
9448 PR tree-optimization/47737
9449 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
9450 edge dominance check.
9451
abfea58d
JJ
94522011-02-18 Jakub Jelinek <jakub@redhat.com>
9453
9454 PR debug/47780
9455 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
9456 avoid invalid rtx sharing.
9457
f73c8882
GP
94582011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
9459
9460 * doc/cpp.texi (Obsolete Features): Add background on the
9461 origin of assertions.
9462
d764a8e6
IS
94632011-02-17 Iain Sandoe <iains@gcc.gnu.org>
9464
9465 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 9466 objc_abi == 2.
d764a8e6
IS
9467 * config/darwin.c (output_objc_section_asm_op): Added support for
9468 ABI v1 and v2.
9469 (is_objc_metadata): New.
9470 (darwin_objc2_section): New.
9471 (darwin_objc1_section): New.
9472 (machopic_select_section): Added support for ABI v1 and v2.
9473 (darwin_emit_objc_zeroed): New.
9474 (darwin_output_aligned_bss): Detect objc metadata and treat it
9475 appropriately.
9476 (darwin_asm_output_aligned_decl_common): Same.
9477 (darwin_asm_output_aligned_decl_local): Same.
9478 * config/darwin-sections.def: Updated for ABI v1 and v2.
9479 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
9480 compiling Objective-C code for the NeXT runtime, default to using
9481 ABI version 0 for 32-bit, and version 2 for 64-bit.
9482
0a8134ca
JM
94832011-02-17 Joseph Myers <joseph@codesourcery.com>
9484
9485 * common.opt (optimize_fast): New Variable.
9486 * opts.c (default_options_optimization): Use opts->x_optimize_fast
9487 instead of local variable ofast.
9488
0a256240
NP
94892011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
9490
9491 * doc/invoke.texi (fobjc-abi-version): Documented.
9492 (fobjc-nilcheck): Documented.
9493 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
9494 version.
9495
fa381cb2
JM
94962011-02-17 Joseph Myers <joseph@codesourcery.com>
9497
9498 PR driver/47390
9499 * common.opt (export-dynamic): New Driver option.
9500 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
9501
5437eaa6
JM
95022011-02-17 Joseph Myers <joseph@codesourcery.com>
9503
9504 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
9505
bb7e6d55
AO
95062011-02-17 Alexandre Oliva <aoliva@redhat.com>
9507 Jan Hubicka <jh@suse.cz>
9508
9509 PR debug/47106
9510 PR debug/47402
9511 * cfgexpand.c (account_used_vars_for_block): Remove.
9512 (estimated_stack_frame_size): Use referenced vars.
9513 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
9514 that were referenced in the original function. Test src_fn
9515 rather than cfun. Drop redundant get_var_ann.
9516 (setup_one_parameter): Drop redundant get_var_ann.
9517 (declare_return_variable): Likewise.
9518 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
9519 (copy_arguments_for_versioning): Drop redundant get_var_ann.
9520 * ipa-inline.c (compute_inline_parameters): Do not compute
9521 disregard_inline_limits here.
bb7e6d55
AO
9522 (compute_inlinable_for_current, pass_inlinable): New.
9523 (pass_inline_parameters): Require PROP_referenced_vars.
9524 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 9525 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
9526 (cgraph_analyze_function): Set .disregard_inline_limits.
9527 * tree-sra.c (convert_callers): Compute inliner parameters
9528 only for functions already in SSA form.
9529
f181a8a7
JM
95302011-02-17 Joseph Myers <joseph@codesourcery.com>
9531
9532 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
9533 -mlittle-endian-data.
9534
c6869789
JM
95352011-02-17 Joseph Myers <joseph@codesourcery.com>
9536
9537 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
9538 -mno-fpu, not -fpu and -no-fpu.
9539 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
9540 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
9541
fbf4bfd3
UB
95422011-02-17 Uros Bizjak <ubizjak@gmail.com>
9543
9544 PR target/43653
9545 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9546 input reload with PLUS RTX.
9547
70be5dc7
JM
95482011-02-16 Joseph Myers <joseph@codesourcery.com>
9549
9550 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9551 of InverseVar(MDMX).
9552
30b1646e
JM
95532011-02-16 Joseph Myers <joseph@codesourcery.com>
9554
9555 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9556 --m4-340.
9557
ab7b71e9
JM
95582011-02-16 Joseph Myers <joseph@codesourcery.com>
9559
9560 * config/mn10300/mn10300.opt (mno-crt0): New.
9561
466f3f08
JM
95622011-02-16 Joseph Myers <joseph@codesourcery.com>
9563
9564 * config/m68k/uclinux.opt (static-libc): New Driver option.
9565
8226cd7b
JM
95662011-02-16 Joseph Myers <joseph@codesourcery.com>
9567
9568 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9569
45cab1d7
JM
95702011-02-16 Joseph Myers <joseph@codesourcery.com>
9571
9572 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9573 %{muser-extend-enabled}.
9574
65aab64f
RG
95752011-02-16 Richard Guenther <rguenther@suse.de>
9576
9577 PR tree-optimization/47738
9578 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9579 the TODO from tree_predictive_commoning.
9580
fc2fa4fb
JL
95812011-02-15 Jeff Law <law@redhat.com>
9582
9583 Revert
9584 2011-01-25 Jeff Law <law@redhat.com>
9585
9586 PR rtl-optimization/37273
9587 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9588 handle them like argument loads from stack slots. Do not double
9589 count memory for memory constants and argument loads from stack slots.
9590
4e380b8e
L
95912011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9592
9593 PR middle-end/47725
9594 * combine.c (cant_combine_insn_p): Revert the last change.
9595
e3a69bb4
MM
95962011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9597
9598 PR target/47755
9599 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9600 mode for vector constants. Remove code that checks for TImode.
9601
de650422
AO
96022011-02-15 Alexandre Oliva <aoliva@redhat.com>
9603
9604 PR debug/47106
9605 PR debug/47402
9606 * cgraph.h (compute_inline_parameters): Return void.
9607 * ipa-inline.c (compute_inline_parameters): Adjust.
9608
30925d94
AO
96092011-02-15 Alexandre Oliva <aoliva@redhat.com>
9610
9611 PR debug/47106
9612 PR debug/47402
9613 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
9614 rather than decl.
9615 * cfgexpand.c (estimated_stack_frame_size): Likewise.
9616 * ipa-inline.c (compute_inline_parameters): Adjust.
9617
1b9a784a
AO
96182011-02-15 Alexandre Oliva <aoliva@redhat.com>
9619
9620 PR debug/47106
9621 PR debug/47402
9622 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
9623 Adjust all users. Pass FN to...
9624 * tree-flow-inline.h (first_referenced_var): ... this. Add
9625 fn argument.
9626 * ipa-struct-reorg.c: Adjust.
9627 * tree-dfa.c: Adjust.
9628 * tree-into-ssa.c: Adjust.
9629 * tree-sra.c: Adjust.
9630 * tree-ssa-alias.c: Adjust.
9631 * tree-ssa-live.c: Adjust.
9632 * tree-ssa.c: Adjust.
9633 * tree-ssanames.c: Adjust.
9634 * tree-tailcall.c: Adjust.
9635
27c6b086
AO
96362011-02-15 Alexandre Oliva <aoliva@redhat.com>
9637
9638 PR debug/47106
9639 PR debug/47402
9640 * tree-flow.h (referenced_var_lookup): Add fn parameter.
9641 Adjust all callers.
9642 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
9643 * tree-flow-inline.h: Adjust.
9644 * gimple-pretty-print.c: Adjust.
9645 * tree-into-ssa.c: Adjust.
9646 * tree-ssa.c: Adjust.
9647 * cfgexpand.c: Adjust.
9648
679e8183
NF
96492011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9650
fbf4bfd3
UB
9651 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
9652 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9653 (EXTRA_CONSTRAINT): Delete.
9654 * config/iq2000/constraints.md: New file.
9655 * config/iq2000/iq2000.md: Include it.
679e8183
NF
9656 (define_insn ""): Delete.
9657 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
9658 unsupported constraint letters from patterns.
9659 (call_value, call_value_internal1): Likewise.
9660 (call_value_multiple_internal1): Likewise.
9661
a45d420a
NC
96622011-02-15 Nick Clifton <nickc@redhat.com>
9663
9664 * config/mn10300/mn10300.c: Include tm-constrs.h.
9665 (struct liw_data): New data structure describing an LIW candidate
9666 instruction.
9667 (extract_bundle): Use struct liw_data. Allow small integer
9668 operands for some instructions.
9669 (check_liw_constraints): Use struct liw_data. Remove swapped
9670 parameter. Add comments describing the checks. Fix bug when
9671 assigning the source of liw1 to the source of liw2.
9672 (liw_candidate): Delete. Code moved into extract_bundle.
9673 (mn10300_bundle_liw): Use struct liw_data. Check constraints
9674 before swapping.
9675 * config/mn10300/predicates.md (liw_operand): New predicate.
9676 Allows registers and small integer constants.
9677 * config/mn10300/constraints.md (O): New constraint. Accetps
9678 integers in the range -8 to +7 inclusive.
9679 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
9680 for moving a small integer into a register. Give this alternative
9681 LIW attributes.
9682 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
9683 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
9684 using the J,K,L and M constraints,
9685 (liw): Remove SI mode on second operands to allow for HI and QI
9686 mode values.
9687 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
9688 instruction.
9689
8a73faf1
L
96902011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9691
9692 PR middle-end/47725
9693 * combine.c (cant_combine_insn_p): Check zero/sign extended
9694 hard registers.
9695
48feba28
RG
96962011-02-15 Richard Guenther <rguenther@suse.de>
9697
9698 PR tree-optimization/47743
9699 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
9700 for a non-type-compatible VN lookup bail out.
9701
ad1c1eeb
NF
97022011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9703
9704 * config/fr30/constraints.md: New file.
9705 * config/fr30/fr30.md: Include it.
9706 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
9707 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9708 (EXTRA_CONSTRAINT): Delete.
9709
49ac143d
NF
97102011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9711
9712 * config/frv/constraints.md: New file.
9713 * config/frv/predicates.md: Include it.
9714 * config/frv/frv.c (reg_class_from_letter): Delete.
9715 (frv_option_override): Don't initialize it.
9716 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
9717 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
9718 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
9719 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9720 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
9721 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9722 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
9723 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
9724 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
9725 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
9726 (REG_CLASS_FROM_CONSTRAINT): Delete.
9727
c95f9494
JJ
97282011-02-15 Jakub Jelinek <jakub@redhat.com>
9729
9730 PR middle-end/47581
9731 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
9732 if frame size is 0 in a leaf function.
9733
13aed611
RO
97342011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9735
9736 PR pch/14940
9737 * config/alpha/host-osf.c: New file.
9738 * config/alpha/x-osf: New file.
9739 * config.host (alpha*-dec-osf*): Use it.
9740
b09c3081
AS
97412011-02-14 Anatoly Sokolov <aesok@post.ru>
9742
9743 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9744 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
9745 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
9746 (rx_mode_dependent_address_p): ...this. Make static. Change argument
9747 type to const_rtx.
9748 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9749
d634083b
NF
97502011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9751
9752 * config/stormy16/constraints.md: New file.
9753 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
9754 Use satisfies_constraint_Q and satisfies_constraint_R.
9755 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
9756 Delete.
9757 (xstormy16_legitiamte_address_p): Declare.
9758 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
9759 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9760 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 9761 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
9762 Un-staticize.
9763 (xstormy16_extra_constraint_p): Delete.
9764
c7dd803e
EB
97652011-02-14 Eric Botcazou <ebotcazou@adacore.com>
9766
9767 PR tree-optimization/46494
9768 * loop-unroll.c (split_edge_and_insert): Adjust comment.
9769 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
9770 (pass_rtl_loop_done): Add TODO_verify_flow.
9771 * fwprop.c (pass_rtl_fwprop): Likewise.
9772 * modulo-sched.c (pass_sms): Likewise.
9773 * tree-ssa-dom.c (pass_dominator): Likewise.
9774 * tree-ssa-loop-ch.c (pass_ch): Likewise.
9775 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
9776 (pass_tree_loop_done): Likewise.
9777 * tree-ssa-pre.c (execute_pre): Likewise.
9778 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9779 * tree-ssa-sink.c (pass_sink_code): Likewise.
9780 * tree-vrp.c (pass_vrp): Likewise.
9781
c6150df6
NF
97822011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9783
c7dd803e
EB
9784 * config/v850/constraints.md: New file.
9785 * config/v850/v850.md: Include it.
9786 * config/v850/predicates.md (reg_or_0_operand): Use
9787 satisfies_constraint_G.
9788 (special_symbolref_operand): Use satisfies_constraint_K.
9789 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
9790 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9791 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
9792 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9793 (EXTRA_CONSTRAINT): Delete.
9794 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
9795 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
9796 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 9797
30dd1ea3
AS
97982011-02-14 Anatoly Sokolov <aesok@post.ru>
9799
9800 PR target/47696
9801 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
9802 description.
9803
944f4bb3
NF
98042011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9805
9806 * config/mcore/constraints.md: New file.
9807 * config/mcore/mcore.md: Include it.
9808 * config/mcore/mcore.c (reg_class_from_letter): Delete.
9809 * config/mcore/mcore.h (reg_class_from_letter): Delete.
9810 (REG_CLASS_FROM_LETTER): Delete.
9811 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
9812 insn_const_int_ok_for_constraint.
9813 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
9814 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
9815 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9816 (EXTRA_CONSTRAINT): Delete.
9817
ad56a54c
RO
98182011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9819
9820 PR ada/41929
9821 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
9822 (IS_SIGHANDLER): Define.
9823 (sparc64_is_sighandler): New function, split off from
9824 sparc64_fallback_frame_state.
9825 (sparc_is_sighandler): New function, split off from
9826 sparc_fallback_frame_state.
9827 (sparc64_fallback_frame_state): Merge with ...
9828 (sparc_fallback_frame_state): ... this into ...
9829 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
9830 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
9831 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
9832 stack instead of hardcoded offsets.
ad56a54c 9833
fbf4bfd3 98342011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
9835
9836 PR target/45808
9837 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
9838
029c8f3e
RW
98392011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9840
9841 * configure: Regenerate.
9842
a016dc83
JM
98432011-02-12 Joseph Myers <joseph@codesourcery.com>
9844
9845 PR driver/45731
9846 * gcc.c (asm_options): Correct spec matching --target-help.
9847
8957a0ec
MJ
98482011-02-12 Martin Jambor <mjambor@suse.cz>
9849
9850 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
9851 to gimple call error.
9852
6ef828bc
MS
98532011-02-12 Mike Stump <mikestump@comcast.net>
9854
9855 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
9856 comments in backslash regions.
9857
a4015be5
MS
98582011-02-12 Mike Stump <mikestump@comcast.net>
9859 Jakub Jelinek <jakub@redhat.com>
9860 Iain Sandoe <iains@gcc.gnu.org>
9861
9862 PR target/47324
9863 * dwarf2out.c (output_cfa_loc): When required, apply the
9864 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
9865 (output_loc_sequence): Likewise.
9866 (output_loc_operands_raw): Likewise.
9867 (output_loc_sequence_raw): Likewise.
9868 (output_cfa_loc): Likewise.
9869 (output_loc_list): Suppress register number adjustment when
9870 calling output_loc_sequence()
9871 (output_die): Likewise.
9872
5378dda2
AS
98732011-02-12 Anatoly Sokolov <aesok@post.ru>
9874
9875 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9876 Remove macros.
9877 * config/xtensa/xtensa.c (xtensa_register_move_cost,
9878 xtensa_memory_move_cost): New functions.
9879 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
9880
f3d533d3
AO
98812011-02-12 Alexandre Oliva <aoliva@redhat.com>
9882
9883 PR lto/47225
9884 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
9885 in the current directory.
9886 * configure: Rebuilt.
9887
9d53403c
IS
98882011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9889
9890 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 9891 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
9892 correct indents of the preceding block.
9893
a350a6c8
IS
98942011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9895
9896 * gcc.c (driver_handle_option): Concatenate the argument to -F with
9897 the switch.
9898
bab79a40
JM
98992011-02-11 Joseph Myers <joseph@codesourcery.com>
9900
9901 * common.opt (nostartfiles): New Driver option.
9902
1bbc6693
XDL
99032011-02-11 Xinliang David Li <davidxl@google.com>
9904
9905 PR tree-optimization/47707
9906 * tree-chrec.c (convert_affine_scev): Keep type precision.
9907
1da7d8c0
EB
99082011-02-11 Eric Botcazou <ebotcazou@adacore.com>
9909
9910 PR tree-optimization/47420
9911 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
9912
99132011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
9914
9915 PR rtl-optimization/47614
9916 * rtl.h (check_for_inc_dec): Declare.
9917 * dse.c (check_for_inc_dec): Externalize...
9918 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
9919 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
9920
4df47bca
JM
99212011-02-11 Joseph Myers <joseph@codesourcery.com>
9922
9923 PR driver/47678
9924 * gcc.c (main): Do not compile inputs if there were errors in
9925 option handling.
9926 * opts-common.c (read_cmdline_option): Check for wrong language
9927 after other error checks.
9928
61502ca8
NF
99292011-02-11 Nathan Froyd <froydnj@codesourcery.com>
9930
9931 * cgraph.c: Fix comment typos.
9932 * cgraph.h: Likewise.
9933 * cgraphunit.c: Likewise.
9934 * ipa-cp.c: Likewise.
9935 * ipa-inline.c: Likewise.
9936 * ipa-prop.c: Likewise.
9937 * ipa-pure-const.c: Likewise.
9938 * ipa-ref.c: Likewise.
9939 * ipa-reference.c: Likewise.
9940
b63f974e
JJ
99412011-02-11 Jakub Jelinek <jakub@redhat.com>
9942
d50c5e0c
JJ
9943 PR debug/47684
9944 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 9945
6dd2a13c
RO
99462011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9947
9948 PR testsuite/47400
9949 * doc/sourcebuild.texi (Require Support): Document
9950 dg-require-ascii-locale.
9951
4a087ccf
MX
99522011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
9953
9954 * doc/lto.texi (Write summary): Fix missing parentheses.
9955
a4403164
DD
99562011-02-10 DJ Delorie <dj@redhat.com>
9957
9958 * config/m32c/m32c.c (m32c_option_override): Disable
9959 -fcombine-stack-adjustments until flag value tracking and compare
9960 optimization can be rewritten.
9961
4fac45bd
PB
99622011-02-10 Peter Bergner <bergner@vnet.ibm.com>
9963
9964 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
9965 PROCESSOR_POWER7.
9966 (PROCESSOR_DEFAULT64): Likewise.
9967
72602cd1
RH
99682011-02-10 Richard Henderson <rth@redhat.com>
9969
9970 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
9971 change from 2011-02-03.
9972 * config/rx/rx.c (flags_from_code): Likewise.
9973 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
9974 is valid, n/pz otherwise.
9975 (rx_select_cc_mode): Return CCmode if Y is not zero.
9976
ea57f573
RG
99772011-02-10 Richard Guenther <rguenther@suse.de>
9978
ea4c3e65 9979 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 9980
92b1d23b
RG
99812011-02-10 Richard Guenther <rguenther@suse.de>
9982
9983 PR tree-optimization/47677
9984 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
9985
525a2d06
JJ
99862011-02-10 Jakub Jelinek <jakub@redhat.com>
9987
9988 PR target/47665
9989 * combine.c (make_compound_operation): Only change shifts into
9990 multiplication for SCALAR_INT_MODE_P.
9991
06c969bd
JZ
99922011-02-10 Jie Zhang <jie@codesourcery.com>
9993
9994 PR testsuite/47622
9995 Revert
9996 2011-02-05 Jie Zhang <jie@codesourcery.com>
9997 PR debug/42631
9998 * web.c (entry_register): Don't clobber the number of the
9999 first uninitialized reference in used[].
10000
282ec48e
RG
100012011-02-09 Richard Guenther <rguenther@suse.de>
10002
10003 PR tree-optimization/47664
10004 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
10005 all edges again.
10006
df98c3e8
DE
100072011-02-09 David Edelsohn <dje.gcc@gmail.com>
10008
d0f21cd6
DE
10009 PR target/46481
10010 PR target/47032
df98c3e8
DE
10011 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
10012 PROCESSOR_POWER7.
10013 (PROCESSOR_DEFAULT64): Same.
10014 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
10015
67b6839f
RO
100162011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10017
10018 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
10019
4fd73214
MJ
100202011-02-09 Martin Jambor <mjambor@suse.cz>
10021
10022 PR middle-end/45505
10023 * tree-sra.c (struct access): New flags grp_scalar_read and
10024 grp_scalar_write. Changed description of assignment read and write
10025 flags.
10026 (dump_access): Dump new flags, reorder all of them.
10027 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
10028 to detect multiple scalar reads.
10029 (analyze_access_subtree): Use the new scalar read write flags instead
10030 of the old flags. Adjusted comments.
10031
91140cd3
DD
100322011-02-08 DJ Delorie <dj@redhat.com>
10033
10034 PR target/47548
10035 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
10036 patterns.
10037
4254bbfe
JM
100382011-02-08 Joseph Myers <joseph@codesourcery.com>
10039
10040 * config/m68k/uclinux.opt: New.
10041 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
10042
f1fda84e
JM
100432011-02-08 Joseph Myers <joseph@codesourcery.com>
10044
10045 * config/cris/elf.opt (sim): New Driver option.
10046
4933ae74
JM
100472011-02-08 Joseph Myers <joseph@codesourcery.com>
10048
10049 * config/xtensa/elf.opt: New.
10050 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
10051
4ad70280
JM
100522011-02-08 Joseph Myers <joseph@codesourcery.com>
10053
10054 * config/vax/elf.opt: New.
10055 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
10056
20893707
JM
100572011-02-08 Joseph Myers <joseph@codesourcery.com>
10058
10059 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
10060
b8e7038e
JM
100612011-02-08 Joseph Myers <joseph@codesourcery.com>
10062
10063 * config/gnu-user.opt: New.
10064 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
10065 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
10066 *-*-uclinux*): Use gnu-user.opt.
10067
e1c5225a
TS
100682011-02-08 Thomas Schwinge <thomas@schwinge.name>
10069
10070 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
10071 * config/i386/gnu.h (CPP_SPEC): Likewise.
10072
5e46b0c6
ILT
100732011-02-08 Ian Lance Taylor <iant@google.com>
10074
10075 * common.opt (fcx-limited-range): Add SetByCombined flag.
10076 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
10077 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
10078 (fassociative-math, freciprocal-math): Likewise.
10079 (funsafe-math-optimizations): Likewise.
10080 * opth-gen.awk: Handle SetByCombined.
10081 * optc-gen.awk: Likewise.
ea4c3e65 10082 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
10083 (set_unsafe_math_optimizations_flags): Likewise.
10084 * doc/options.texi (Option properties): Document SetByCombined.
10085
32243d46
JM
100862011-02-08 Joseph Myers <joseph@codesourcery.com>
10087
10088 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
10089 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
10090 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
10091 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
10092 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
10093
479c1fb3
SP
100942011-02-08 Sebastian Pop <sebastian.pop@amd.com>
10095
10096 PR tree-optimization/46834
10097 PR tree-optimization/46994
10098 PR tree-optimization/46995
10099 * graphite-sese-to-poly.c (used_outside_reduction): New.
10100 (detect_commutative_reduction): Call used_outside_reduction.
10101 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
10102 translate_scalar_reduction_to_array only when at least one
10103 loop-phi/close-phi tuple has been detected.
10104
3865a06f
RG
101052011-02-08 Richard Guenther <rguenther@suse.de>
10106
10107 PR middle-end/47639
10108 * tree-vect-generic.c (expand_vector_operations_1): Update
10109 stmts here ...
10110 (expand_vector_operations): ... not here. Cleanup EH info
10111 and the CFG if required.
10112
62902f3f
RG
101132011-02-08 Richard Guenther <rguenther@suse.de>
10114
10115 PR tree-optimization/47641
10116 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
10117 require type compatibility.
10118
0efb9d64
AK
101192011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10120
10121 * gimple-low.c (lower_function_body): Don't remove the location of
10122 the return statement here.
10123 (lower_gimple_return): Do it here instead but only if the return
10124 statement is actually used twice.
10125
034b8ae4
RG
101262011-02-08 Richard Guenther <rguenther@suse.de>
10127
10128 PR tree-optimization/47632
10129 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
10130 unused up_to_stmt parameter, return whether cfg-cleanup is
10131 necessary, remove EH info properly.
10132 (forward_propagate_into_gimple_cond): Adjust caller.
10133 (forward_propagate_into_cond): Likewise.
10134 (forward_propagate_comparison): Likewise.
10135 (tree_ssa_forward_propagate_single_use_vars): Make
10136 forward_propagate_comparison case similar to the two others.
10137
298362c8
NC
101382011-02-08 Nick Clifton <nickc@redhat.com>
10139
10140 * config/mn10300/mn10300.opt (mliw): New command line option.
10141 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
10142 (liw_bundling): New automaton.
10143 (liw): New attribute.
10144 (liw_op): New attribute.
10145 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
10146 (movsi_internal): Add LIW attributes.
10147 (andsi3): Likewise.
10148 (iorsi3): Likewise.
10149 (xorsi3): Likewise.
10150 (addsi3): Separate register and immediate alternatives.
10151 Add LIW attributes.
10152 (subsi3): Likewise.
10153 (cmpsi): Likewise.
10154 (aslsi3): Likewise.
10155 (lshrsi3): Likewise.
10156 (ashrsi3): Likewise.
10157 (liw): New pattern.
10158 * config/mn10300/mn10300.c (liw_op_names): New
10159 (mn10300_print_operand): Handle 'W' operand descriptor.
10160 (extract_bundle): New function.
10161 (check_liw_constraints): New function.
10162 (liw_candidate): New function.
10163 (mn10300_bundle_liw): New function.
10164 (mn10300_reorg): New function.
10165 (TARGET_MACHINE_DEPENDENT_REORG): Define.
10166 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
10167 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
10168 __LIW__ or __NO_LIW__.
10169 * doc/invoke.texi: Describe the -mliw command line option.
10170
90488014
JDA
101712011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10172
10173 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
10174 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
10175 pthread_mutex_unlock): Remove.
10176 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
10177 * config/pa/t-pa64: Likewise.
10178 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
10179 shared libc if not linking against libpthread.
10180 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
10181
689ff841
IS
101822011-02-07 Iain Sandoe <iains@gcc.gnu.org>
10183
10184 PR target/47558
10185 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
10186 on 10.6 and later to ensure that we always use the unwinder from
10187 the system. Only add -no_compact_unwind when tarteting darwin
10188 10.6 or later.
10189
821014aa
SE
101902011-02-07 Steve Ellcey <sje@cup.hp.com>
10191
10192 PR target/46997
10193 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
10194 (vec_interleave_lowv2sf): Ditto.
10195 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
10196 (vec_extract_oddv2sf): Ditto.
10197
41cf94fb
MS
101982011-02-07 Mike Stump <mikestump@comcast.net>
10199
62dea57d 10200 PR target/42333
41cf94fb
MS
10201 Add __ieee_divdc3 entry point.
10202 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
10203 entry point.
10204 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
10205 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
10206 * config/darwin.c (darwin_rename_builtins): Add.
10207 * config/darwin-protos.h (darwin_rename_builtins): Add.
10208
ee09a3dd
MM
102092011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10210
10211 PR target/47636
10212 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
10213 for the condition.
10214
83296cd0
MS
102152011-02-07 Mike Stump <mikestump@comcast.net>
10216
ea4c3e65 10217 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 10218
0f4e946f
DC
102192011-02-07 Denis Chertykov <chertykov@gmail.com>
10220
10221 PR target/47534
10222 * config/avr/libgcc.S (exit): Move .endfunc
10223
1ec87690
RG
102242011-02-07 Richard Guenther <rguenther@suse.de>
10225
10226 PR tree-optimization/47615
10227 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
10228 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
10229 (run_scc_vn): Initialize it.
10230 (visit_reference_op_load): Use it.
10231 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
10232
b46ae6da
UW
102332011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10234
10235 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
10236 DImode trapping arithmetic libfuncs.
10237
c0aae19c
RG
102382011-02-07 Richard Guenther <rguenther@suse.de>
10239
10240 PR tree-optimization/47621
10241 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
10242 two duplicates ...
10243 (execute_update_addresses_taken): ... here. Make it more
10244 conservative in what we accept.
10245
295d926b
JM
102462011-02-06 Joseph Myers <joseph@codesourcery.com>
10247
10248 * config/sparc/freebsd.h (ASM_SPEC): Define.
10249 * config/sparc/vxworks.h (ASM_SPEC): Define.
10250
bdeb2471
JM
102512011-02-06 Joseph Myers <joseph@codesourcery.com>
10252
10253 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10254
d5d3781a
SB
102552011-02-06 Steven Bosscher <steven@gcc.gnu.org>
10256
10257 * doc/invoke.texi: Remove reference to compiler internals from
10258 user documentation.
10259
10260 * reg-notes.def: Remove REG_VALUE_PROFILE.
10261 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
10262
c42c09fc
JJ
102632011-02-05 Jakub Jelinek <jakub@redhat.com>
10264
10265 PR middle-end/47610
10266 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 10267 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 10268
beea2755
JZ
102692011-02-05 Jie Zhang <jie@codesourcery.com>
10270
10271 PR debug/42631
10272 * web.c (entry_register): Don't clobber the number of the
10273 first uninitialized reference in used[].
10274
a130584a
SP
102752011-02-04 Sebastian Pop <sebastian.pop@amd.com>
10276
10277 PR tree-optimization/46194
10278 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
10279 (build_classic_dist_vector_1): Do not represent classic distance
10280 vectors when the access functions are variating in different loops.
10281
962101ac
JM
102822011-02-04 Joseph Myers <joseph@codesourcery.com>
10283
10284 * config/mips/iris6.opt: New.
10285 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
10286
55eaaa5b
RH
102872011-02-04 Richard Henderson <rth@redhat.com>
10288 Steve Ellcey <sje@cup.hp.com>
10289
10290 PR target/46997
10291 * config/ia64/predicates.md (mux1_brcst_element): New.
10292 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
10293 * config/ia64/ia64.c (ia64_unpack_assemble): New.
10294 (ia64_unpack_sign): New.
10295 (ia64_expand_unpack): Rewrite using new routines.
10296 (ia64_expand_widen_sum): Ditto.
10297 (ia64_expand_dot_prod_v8qi): Ditto.
10298 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
10299 routines, add endian check.
10300 (pmpy2_even): Rename from pmpy2_r, add endian check.
10301 (pmpy2_odd): Rename from pmpy2_l, add endian check.
10302 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
10303 (vec_widen_smult_hi_v4hi): Ditto.
10304 (vec_widen_umult_lo_v4hi): Ditto.
10305 (vec_widen_umult_hi_v4hi): Ditto.
10306 (mulv2si3): Change endian checks.
10307 (sdot_prodv4hi): Rewrite with new calls.
10308 (udot_prodv4hi): New.
10309 (vec_pack_ssat_v4hi): Add endian check.
10310 (vec_pack_usat_v4hi): Ditto.
10311 (vec_pack_ssat_v2si): Ditto.
10312 (max1_even): Rename from max1_r, add endian check.
10313 (max1_odd): Rename from max1_l, add endian check.
10314 (*mux1_rev): Format change.
10315 (*mux1_mix): Ditto.
10316 (*mux1_shuf): Ditto.
10317 (*mux1_alt): Ditto.
10318 (*mux1_brcst_v8qi): Use new predicate.
10319 (vec_extract_evenv8qi): Remove endian check.
10320 (vec_extract_oddv8qi): Ditto.
10321 (vec_interleave_lowv4hi): Format change.
10322 (vec_interleave_highv4hi): Ditto.
10323 (mix2_even): Rename from mix2_r, add endian check.
10324 (mix2_odd): Rename from mux2_l, add endian check.
10325 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
10326 (vec_extract_evenodd_helper): Format change.
10327 (vec_extract_evenv4hi): Remove endian check.
10328 (vec_extract_oddv4hi): Remove endian check.
10329 (vec_interleave_lowv2si): Format change.
10330 (vec_interleave_highv2si): Format change.
10331 (vec_initv2si): Remove endian check.
10332 (vecinit_v2si): Add endian check.
10333 (reduc_splus_v2sf): Add endian check.
10334 (reduc_smax_v2sf): Ditto.
10335 (reduc_smin_v2sf): Ditto.
10336 (vec_initv2sf): Remove endian check.
10337 (fpack): Add endian check.
10338 (fswap): Add endian check.
10339 (vec_interleave_highv2sf): Add endian check.
10340 (vec_interleave_lowv2sf): Add endian check.
10341 (fmix_lr): Add endian check.
10342 (vec_setv2sf): Format change.
10343 (*vec_extractv2sf_0_be): Use shift to extract operand.
10344 (*vec_extractv2sf_1_be): New.
10345 (vec_pack_trunc_v4hi): Add endian check.
10346 (vec_pack_trunc_v2si): Format change.
10347
dcde5957
JJ
103482011-02-04 Jakub Jelinek <jakub@redhat.com>
10349
10350 PR inline-asm/23200
10351 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 10352 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
10353 (stmt_is_replaceable_p): New function.
10354 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
10355 callers.
10356 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
10357 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
10358 SSA_NAME_DEF_STMT.
10359 * tree-flow.h (stmt_is_replaceable_p): New prototype.
10360
a64a8e5a
JM
103612011-02-04 Joseph Myers <joseph@codesourcery.com>
10362
10363 * config/rs6000/xilinx.opt: New.
10364 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
10365
4da2ed2f
JM
103662011-02-04 Joseph Myers <joseph@codesourcery.com>
10367
10368 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
10369
a6e508f9
AS
103702011-02-03 Anatoly Sokolov <aesok@post.ru>
10371
10372 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
10373 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10374 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
10375 secondary_reload_info, xtensa_secondary_reload): Remove.
10376 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
10377 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10378 (xtensa_preferred_reload_class): Make static. Change return and
10379 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
10380 Use CONST_DOUBLE_P predicate.
10381 (xtensa_preferred_output_reload_class): New function.
10382 (xtensa_secondary_reload): Make static.
10383
82dc0de3
JM
103842011-02-03 Joseph Myers <joseph@codesourcery.com>
10385
10386 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
10387 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
10388 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
10389
7fece979
JJ
103902011-02-03 Jakub Jelinek <jakub@redhat.com>
10391
10392 PR middle-end/31490
10393 * output.h (SECTION_RELRO): Define.
10394 (SECTION_MACH_DEP): Adjust.
10395 (get_variable_section): New prototype.
10396 * varpool.c (varpool_finalize_named_section_flags): New function.
10397 (varpool_assemble_pending_decls): Call it.
10398 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
10399 * cgraphunit.c (cgraph_output_in_order): Call
10400 varpool_finalize_named_section_flags.
10401 * varasm.c (get_section): Allow section flags conflicts between
10402 relro and read-only sections if the section hasn't been declared yet.
10403 Set SECTION_OVERRIDE after diagnosing section type conflict.
10404 (get_variable_section): No longer static.
10405 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
10406 readonly sections that need relocations.
10407 (decl_readonly_section_1): New function.
10408 (decl_readonly_section): Use it.
10409
10410 Revert:
509d65dd 10411 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
10412 Steve Ellcey <sje@cup.hp.com>
10413
10414 PR middle-end/31490
10415 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
10416 if section attribute used.
10417
d18d5478
JJ
104182011-02-03 Jakub Jelinek <jakub@redhat.com>
10419
10420 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
10421 * config/darwin.c (SECTION_NO_ANCHOR): Define.
10422 (darwin_init_sections): Remove assertion.
10423
6479ed4b
NC
104242011-02-03 Nick Clifton <nickc@redhat.com>
10425
10426 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
10427 lt and ge.
38be4072 10428 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
10429 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
10430 instead of "n" and "pz".
10431 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
10432 CC_FLAG_S.
10433
89843f5d
JJ
104342011-02-03 Jakub Jelinek <jakub@redhat.com>
10435
65450d64
JJ
10436 PR target/47312
10437 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
10438 fma, expand FMA_EXPR as fma{,f,l} call.
10439
7d58701c
JJ
10440 PR lto/47274
10441 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
10442 copy them into a unsigned char variable and pass address of it to
10443 lto_output_data_stream.
10444
89843f5d
JJ
10445 PR target/47564
10446 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
10447 around backend_init_target and lang_dependent_init_target calls.
10448 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
10449 (verify_cgraph_node): Don't call set_cfun here. Use
10450 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
10451 Set error_found for incorrectly represented calls to thunks.
10452
4deef538
AO
104532011-02-03 Alexandre Oliva <aoliva@redhat.com>
10454
10455 PR debug/43092
10456 PR rtl-optimization/43494
10457 * rtl.h (for_each_inc_dec_fn): New type.
10458 (for_each_inc_dec): Declare.
10459 * rtlanal.c (struct for_each_inc_dec_ops): New type.
10460 (for_each_inc_dec_find_inc_dec): New fn.
10461 (for_each_inc_dec_find_mem): New fn.
10462 (for_each_inc_dec): New fn.
10463 * dse.c (struct insn_size): Remove.
10464 (replace_inc_dec, replace_inc_dec_mem): Remove.
10465 (emit_inc_dec_insn_before): New fn.
10466 (check_for_inc_dec): Use it, along with for_each_inc_dec.
10467 (canon_address): Pass mem modes to cselib_lookup.
10468 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
10469 (cselib_lookup_from_insn): Likewise.
10470 (cselib_subst_to_values): Likewise.
10471 * cselib.c (find_slot_memmode): New var.
10472 (cselib_find_slot): New fn. Use it instead of
10473 htab_find_slot_with_hash everywhere.
10474 (entry_and_rtx_equal_p): Use find_slot_memmode.
10475 (autoinc_split): New fn.
10476 (rtx_equal_for_cselib_p): Rename and implement in terms of...
10477 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
10478 Deal with autoinc. Special-case recursion into MEMs.
10479 (cselib_hash_rtx): Likewise.
10480 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
10481 address and MEM modes.
10482 (cselib_subst_to_values): Add memmode, pass it on.
10483 Deal with autoinc.
10484 (cselib_lookup): Add memmode argument, pass it on.
10485 (cselib_lookup_from_insn): Add memmode.
10486 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
10487 (struct cselib_record_autoinc_data): New.
10488 (cselib_record_autoinc_cb): New fn.
10489 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
10490 mode to cselib_lookup. Reset autoinced REGs here instead of...
10491 (cselib_process_insn): ... here.
10492 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
10493 to cselib_lookup.
10494 (add_uses): Likewise, also to cselib_subst_to_values.
10495 (add_stores): Likewise.
10496 * sched-deps.c (add_insn_mem_dependence): Pass mode to
10497 cselib_subst_to_values.
10498 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
10499 * gcse.c (do_local_cprop): Adjusted.
10500 * postreload.c (reload_cse_simplify_set): Adjusted.
10501 (reload_cse_simplify_operands): Adjusted.
10502 * sel-sched-dump (debug_mem_addr_value): Pass mode.
10503
1551d44a
AO
105042011-02-03 Alexandre Oliva <aoliva@redhat.com>
10505
10506 PR tree-optimization/45122
10507 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
10508 unsafe assumptions when there's more than one loop exit.
10509
c9485473
MM
105102011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10511
10512 PR target/47272
10513 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10514 Document using vector double with the load/store builtins, and
10515 that the load/store builtins always use Altivec instructions.
10516
10517 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
10518 to use altivec memory instructions, even on VSX.
10519 (vector_altivec_store_<mode>): Ditto.
10520
10521 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
10522 function.
10523
10524 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10525 V2DF, V2DI support to load/store overloaded builtins.
10526
10527 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
10528 altivec load/store builtins for V2DF/V2DI types.
10529
10530 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10531 set avoid indexed addresses on power6 if -maltivec.
10532 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
10533 vector_altivec_load/vector_altivec_store builtins.
10534 (altivec_expand_st_builtin): Ditto.
10535 (altivec_expand_builtin): Add VSX memory builtins.
10536 (rs6000_init_builtins): Add V2DI types to internal types.
10537 (altivec_init_builtins): Add support for V2DF/V2DI altivec
10538 load/store builtins.
10539 (rs6000_address_for_altivec): Insure memory address is appropriate
10540 for Altivec.
10541
10542 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
10543 vec_vsx_ld and vec_vsx_st.
10544 (vsx_store_<mode>): Ditto.
10545
10546 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10547 variables to hold long long types for VSX vector memory builtins.
10548 (RS6000_BTI_unsigned_long_long): Ditto.
10549 (long_long_integer_type_internal_node): Ditti.
10550 (long_long_unsigned_type_internal_node): Ditti.
10551
10552 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10553 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10554 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10555
10556 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10557 short cuts.
10558 (vec_vsx_st): Ditto.
10559
b24d1acf
JM
105602011-02-02 Joseph Myers <joseph@codesourcery.com>
10561
10562 * config/pa/pa-hpux10.opt: New.
10563 * config/hpux11.opt (pthread): New Driver option.
10564 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10565 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10566
aa18dd0f
JM
105672011-02-02 Joseph Myers <joseph@codesourcery.com>
10568
10569 * config/ia64/vms.opt: New.
10570 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10571
28fc3eee
MM
105722011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10573
10574 PR target/47580
10575 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10576 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10577 generator functions.
10578 (vsx_floatuns<VSi><mode>2): Ditto.
10579 (vsx_fix_trunc<mode><VSi>2): Ditto.
10580 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10581
b5838b1f
JM
105822011-02-02 Joseph Myers <joseph@codesourcery.com>
10583
10584 * config/i386/djgpp.opt (posix): New Driver option.
10585
0db8fa89
GP
105862011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10587
10588 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10589 Move to the unsupported targets list.
10590
9cd4f22a
PB
105912011-02-02 Peter Bergner <bergner@vnet.ibm.com>
10592
10593 PR rtl-optimization/47525
10594 * df-scan.c: Update copyright years.
10595 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10596 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10597
9ed8059c
RO
105982011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10599
10600 * config/i386/sysv4.h (TARGET_VERSION): Remove.
10601 (SUBTARGET_RETURN_IN_MEMORY): Remove.
10602 (ASM_OUTPUT_ASCII): Remove.
10603 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10604
2a737389
JL
106052011-02-02 Jeff Law <law@redhat.com>
10606
10607 PR middle-end/47543
10608 * reload.c (find_reloads_address): Handle reg+d address where both
10609 components are invalid by reloading the entire address.
10610
9dac82c4
SP
106112011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10612 Richard Guenther <rguenther@suse.de>
10613
10614 PR tree-optimization/40979
10615 PR bootstrap/47044
10616 * passes.c (init_optimization_passes): After LIM call copy_prop
10617 and DCE to clean up.
10618 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
10619
14dd9aab
SP
106202011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10621
10622 PR tree-optimization/47576
10623 PR tree-optimization/47555
10624 * doc/invoke.texi (scev-max-expr-complexity): Documented.
10625 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10626 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
10627 * tree-scalar-evolution.c (follow_ssa_edge): Use
10628 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
10629
5cbf5c20
RG
106302011-02-02 Richard Guenther <rguenther@suse.de>
10631
10632 PR tree-optimization/47566
10633 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
10634
83d70792
AO
106352011-02-02 Alexandre Oliva <aoliva@redhat.com>
10636
e829c321
AO
10637 PR debug/47106
10638 PR debug/47402
10639 * tree-inline.c (declare_return_variable): Remove unused caller
10640 variable.
10641
83d70792
AO
10642 PR debug/47106
10643 PR debug/47402
10644 * tree-flow-inline.h (clear_is_used, is_used_p): New.
10645 * cfgexpand.c (account_used_vars_for_block): Use them.
10646 * tree-nrv.c (tree_nrv): Likewise.
10647 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
10648 (dump_scope_block): Likewise.
10649 (remove_unused_locals): Likewise.
10650
aaa2ac93
AO
10651 PR debug/47106
10652 PR debug/47402
10653 * tree-inline.c (declare_return_variable): Add result decl to
10654 local decls only once.
10655 * gimple-low.c (record_vars_into): Mark newly-created variables
10656 as referenced.
10657
a59d15cf
AO
106582011-02-02 Alexandre Oliva <aoliva@redhat.com>
10659
10660 PR debug/47498
10661 PR debug/47501
10662 PR debug/45136
10663 PR debug/45130
10664 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10665 debug insns.
10666 (no_real_insns_p, schedule_block, set_priorities): Drop special
10667 treatment of boundary debug insns.
38be4072 10668 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
10669 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
10670 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10671 (BOUNDARY_DEBUG_INSN_P): Likewise.
10672 (SCHEDULE_DEBUG_INSN_P): Likewise.
10673 * sched-rgn.c (init_ready_list): Drop special treatment of
10674 boundary debug insns.
10675 * final.c (rest_of_clean_state): Clear notes' BB.
10676
6fc2f091
JM
106772011-02-01 Joseph Myers <joseph@codesourcery.com>
10678
10679 * config/openbsd.opt (assert=): New Driver option.
10680
fc523387
JM
106812011-02-01 Joseph Myers <joseph@codesourcery.com>
10682
10683 * config/i386/nto.opt: New.
10684 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
10685
6d9821e5
JM
106862011-02-01 Joseph Myers <joseph@codesourcery.com>
10687
10688 * config/i386/netware.opt: New.
10689 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
10690
cef932d4
JM
106912011-02-01 Joseph Myers <joseph@codesourcery.com>
10692
10693 * config/interix.opt (posix): New Driver option.
10694
22843acd
DD
106952011-02-01 DJ Delorie <dj@redhat.com>
10696
56490b74
DD
10697 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
10698
22843acd
DD
10699 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
10700 class for A0/A1.
10701
199c8f2f
SP
107022011-02-01 Sebastian Pop <sebastian.pop@amd.com>
10703
10704 PR tree-optimization/47561
10705 * toplev.c (process_options): Print the Graphite flags. Add
10706 flag_loop_flatten to the list of options requiring Graphite.
10707
926bcf22
JM
107082011-02-01 Joseph Myers <joseph@codesourcery.com>
10709
10710 * config/i386/cygming.opt (posix): New Driver option.
10711
59793c51
JM
107122011-02-01 Joseph Myers <joseph@codesourcery.com>
10713
10714 * config/arm/vxworks.opt: New.
10715 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
10716
183c38a4
JM
107172011-02-01 Joseph Myers <joseph@codesourcery.com>
10718
10719 * config/alpha/elf.opt: New.
10720 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
10721 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
10722
9939e416
RG
107232011-02-01 Richard Guenther <rguenther@suse.de>
10724
10725 PR tree-optimization/47559
10726 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
10727 store-motion on references that can throw.
10728
4a3c9687
BS
107292011-02-01 Bernd Schmidt <bernds@codesourcery.com>
10730
10731 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
10732 * tree-pass.h (TDF_CSELIB): New macro.
10733 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
10734 cselib_lookup): Check for it rather than for TDF_DETAILS.
10735
dd3b31fb
L
107362011-02-01 H.J. Lu <hongjiu.lu@intel.com>
10737
10738 PR driver/47547
10739 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
10740 is HOST_BIT_BUCKET.
10741
10742 * opts.c (finish_options): Don't add x_aux_base_name if it is
10743 HOST_BIT_BUCKET.
10744
34c1de79
RG
107452011-02-01 Richard Guenther <rguenther@suse.de>
10746
10747 PR tree-optimization/47555
10748 Revert
10749 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
10750
10751 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10752
dd2804d2
SB
107532011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
10754
10755 PR gcc/46692
10756 * config/lm32/t-lm32: Add multilib for all CPU options.
10757
3fd3b156
RG
107582011-02-01 Richard Guenther <rguenther@suse.de>
10759
10760 PR tree-optimization/47541
10761 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10762 sure to have a field at offset zero.
10763
f16072b6
JM
107642011-01-31 Joseph Myers <joseph@codesourcery.com>
10765
10766 * config/arc/arc.opt (EB, EL): New Driver options.
10767
6456cf2e
JM
107682011-01-31 Joseph Myers <joseph@codesourcery.com>
10769
10770 * config/alpha/osf5.opt: New.
10771 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
10772
cdde6ab4
JM
107732011-01-31 Joseph Myers <joseph@codesourcery.com>
10774
10775 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
10776
7633415c
SP
107772011-01-31 Sebastian Pop <sebastian.pop@amd.com>
10778
10779 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
10780 -floop-interchange.
10781 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
10782 is an alias of -floop-interchange and that it requires the
10783 Graphite infrastructure.
10784 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
10785 flag_loop_interchange based on the value of flag_tree_loop_linear.
10786
0425d6f5
JJ
107872011-01-31 Jakub Jelinek <jakub@redhat.com>
10788 Richard Guenther <rguenther@suse.de>
10789
10790 PR tree-optimization/47538
10791 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
10792 type instead of r1type, except for comparisons. For right
10793 shifts and comparisons punt if there are mismatches in
10794 sizetype vs. non-sizetype types.
10795
500b16c3
RO
107962011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10797
10798 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10799 avx_runtime.
10800
e279edb0
RO
108012011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10802
10803 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
10804 version number.
10805 * configure: Regenerate.
10806
c6092243
RO
108072011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10808
10809 * configure.ac (gcc_cv_ld_static_option): Define.
10810 (gcc_cv_ld_dynamic_option): Define.
10811 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
10812 instead.
10813 (HAVE_LD_STATIC_DYNAMIC): Update message.
10814 (LD_STATIC_OPTION): Define.
10815 (LD_DYNAMIC_OPTION): Define.
10816 * configure: Regenerate.
10817 * config.in: Regenerate.
10818 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
10819 HAVE_LD_STATIC_DYNAMIC]: Use them.
10820
d7862be3
NC
108212011-01-31 Nick Clifton <nickc@redhat.com>
10822
10823 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
10824 registers inside interrupt handlers if the handler is not a leaf
10825 function.
10826
ba4ec0e0
NC
108272011-01-31 Nick Clifton <nickc@redhat.com>
10828
10829 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
10830 reg_renumber returning an INVALID_REGNUM.
10831
29a63921
AO
108322011-01-31 Alexandre Oliva <aoliva@redhat.com>
10833
10834 PR libgcj/44341
10835 * doc/install.texi: Document host options discarded when cross
10836 configuring target libraries.
10837
ef591d3f
AO
108382011-01-31 Alexandre Oliva <aoliva@redhat.com>
10839
10840 Reverted:
10841 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
10842 PR debug/45136
10843 PR debug/45130
10844 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10845 debug insns.
10846 (no_real_insns_p, schedule_block, set_priorities): Drop special
10847 treatment of boundary debug insns.
38be4072 10848 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
10849 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10850 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10851 (BOUNDARY_DEBUG_INSN_P): Likewise.
10852 (SCHEDULE_DEBUG_INSN_P): Likewise.
10853 * sched-rgn.c (init_ready_list): Drop special treatment of
10854 boundary debug insns.
10855 * final.c (rest_of_clean-state): Clear notes' BB.
10856
61052244
AM
108572011-01-31 Alan Modra <amodra@gmail.com>
10858
10859 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
10860 toc relative expressions as we do in print_operand_address.
10861
c4c8962b
KH
108622011-01-30 Kazu Hirata <kazu@codesourcery.com>
10863
10864 * doc/extend.texi: Follow spelling conventions.
10865 * doc/invoke.texi: Fix a typo.
10866
e543b94c
JM
108672011-01-30 Joseph Myers <joseph@codesourcery.com>
10868
10869 * config/hpux11.opt: New.
10870 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
10871 ia64*-*-hpux*): Use hpux11.opt.
10872
509d65dd 108732011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
10874
10875 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
10876 to tmake_file.
10877
7be03a0e
GP
108782011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10879
10880 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
10881 support sites.
10882
419d1d37
GP
108832011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10884
b596ed64
GP
10885 * doc/install.texi (Binaries): Remove outdated reference for
10886 Motorola 68HC11/68HC12 downloads.
10887
108882011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 10889
419d1d37
GP
10890 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
10891 Drepper's paper.
10892
4406d0e9
JW
108932011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
10894
10895 PR bootstrap/47147
10896 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
10897 used by NetBSD.
10898
38be4072 108992011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
10900
10901 * value-prof.c (check_counter): Corrected error message.
10902
0cd98787
JZ
109032011-01-29 Jie Zhang <jie@codesourcery.com>
10904
10905 * config/arm/arm.c (arm_legitimize_reload_address): New.
10906 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
10907 arm_legitimize_reload_address.
38be4072 10908 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 10909
9b798ac5
ILT
109102011-01-28 Ian Lance Taylor <iant@google.com>
10911
10912 * godump.c (go_define): Ignore macros whose definitions include
10913 two adjacent operands.
10914
591e29d9
JJ
109152011-01-28 Jakub Jelinek <jakub@redhat.com>
10916
10917 PR target/42894
10918 * varasm.c (force_const_mem): Store copy of x in desc->constant
10919 instead of x itself.
10920 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
10921 itself into REG_EQUAL note.
10922
62dcc44a
JM
109232011-01-28 Joseph Myers <joseph@codesourcery.com>
10924
10925 * config/freebsd.opt (posix, rdynamic): New Driver options.
10926
c9f58b9a
RO
109272011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10928
10929 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
10930 -Bstatic/-Bdynamic.
10931 * configure: Regenerate.
10932
5f02b9db
JM
109332011-01-27 Joseph Myers <joseph@codesourcery.com>
10934
10935 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
10936 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
10937
5df97412
AS
109382011-01-27 Anatoly Sokolov <aesok@post.ru>
10939
10940 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
10941 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
10942 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
10943 (s390_preferred_reload_class): Make static. Change return and
10944 'rclass' argument type to reg_class_t.
10945
779d4b91
JH
109462011-01-27 Jan Hubicka <jh@suse.cz>
10947
10948 PR middle-end/46949
10949 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
10950 (process_function_and_variable_attributes): Check defined weakrefs.
10951
e80b21ed
MJ
109522011-01-27 Martin Jambor <mjambor@suse.cz>
10953
10954 PR tree-optimization/47228
10955 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
10956 build_ref_for_offset.
10957
6dcc4f31
UW
109582011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10959
10960 * config/spu/spu-elf.h (ASM_SPEC): Remove.
10961
509d65dd 109622011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
10963
10964 PR rtl-optimization/46856
10965 * postreload.c (reload_combine_recognize_const_pattern): Do not
10966 separate cc0 setter and user on cc0 targets.
10967
04af8788
NP
109682011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
10969
10970 PR c/43082
10971 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
10972 passed a VOID_TYPE expression, immediately emit an error and
10973 return error_mark_node.
10974
f7a60085
JL
109752011-01-26 Jeff Law <law@redhat.com>
10976
10977 PR rtl-optimization/47464
10978 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
10979 rather than may_trap_p as needed.
10980
5c2917ec
DD
109812011-01-26 DJ Delorie <dj@redhat.com>
10982
10983 PR rtl-optimization/46878
10984 * combine.c (insn_a_feeds_b): Check for the implicit cc0
10985 setter/user dependency as well.
10986
bef16e87
EB
109872011-01-26 Eric Botcazou <ebotcazou@adacore.com>
10988
10989 PR rtl-optimization/44469
10990 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
10991 after removing trivially dead basic blocks.
10992
c75d884b
JM
109932011-01-26 Joseph Myers <joseph@codesourcery.com>
10994
10995 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
10996 * config/frv/frv.h (LINK_SPEC): Likewise.
10997 * config/i386/netware.h (LINK_SPEC): Likewise.
10998 * config/m68k/linux.h (ASM_SPEC): Likewise.
10999 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
11000 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11001 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11002 * config/sparc/linux.h (ASM_SPEC): Likewise.
11003 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11004 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11005
d3153553
JM
110062011-01-26 Joseph Myers <joseph@codesourcery.com>
11007
11008 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
11009 * config/frv/frv.h (ASM_SPEC): Likewise.
11010 * config/m68k/linux.h (ASM_SPEC): Likewise.
11011 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11012 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
11013 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11014 * config/sparc/linux.h (ASM_SPEC): Likewise.
11015 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11016 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11017
b89b1e9d
JM
110182011-01-26 Joseph Myers <joseph@codesourcery.com>
11019
11020 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
11021 * config/frv/frv.h (LINK_SPEC): Likewise.
11022 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
11023
12eb1a9c
JM
110242011-01-26 Joseph Myers <joseph@codesourcery.com>
11025
11026 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
11027 * config/frv/frv.h (ASM_SPEC): Likewise.
11028 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
11029 * config/m68k/linux.h (ASM_SPEC): Likewise.
11030 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
11031 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
11032 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
11033 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
11034 * config/sparc/linux.h (ASM_SPEC): Likewise.
11035 * config/sparc/linux64.h (ASM_SPEC): Likewise.
11036 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
11037 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
11038
e435f098
SE
110392011-01-26 Steve Ellcey <sje@cup.hp.com>
11040
11041 PR target/46997
11042 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
11043 (*mux2): Ditto.
11044 (vec_extract_evenodd_help): Ditto.
11045 (vec_extract_evenv4hi): Ditto.
11046 (vec_extract_oddv4hi): Ditto.
11047 (vec_interleave_lowv2si): Ditto.
11048 (vec_interleave_highv2si): Ditto.
11049 (vec_extract_evenv2si): Ditto.
11050 (vec_extract_oddv2si: Ditto.
11051 (vec_pack_trunc_v2si): Ditto.
11052
34f0eee0
JH
110532011-01-22 Jan Hubicka <jh@suse.cz>
11054
11055 PR target/47237
11056 * cgraph.h (cgraph_local_info): New field can_change_signature.
11057 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
11058 signature can change.
11059 (ipcp_estimate_growth): Call sequence simplify only if calle signature
11060 can change.
11061 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
11062 (cgraph_function_versioning): We can not change signature of functions
11063 that don't allow that.
11064 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
11065 (lto_input_node): Likewise.
38be4072
UB
11066 * ipa-inline.c (compute_inline_parameters): Compute
11067 local.can_change_signature.
34f0eee0 11068 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
11069 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
11070 functions that can not change signature.
34f0eee0 11071 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
11072 init_cumulative_args): Do not use local calling conventions
11073 for functions that can not change signature.
34f0eee0 11074
980ca891
JH
110752011-01-22 Jan Hubicka <jh@suse.cz>
11076
11077 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
11078
768e3c60
RG
110792011-01-26 Richard Guenther <rguenther@suse.de>
11080
11081 PR tree-optimization/47190
61052244
AM
11082 * cgraphunit.c (process_common_attributes): New function.
11083 (process_function_and_variable_attributes): Use it.
768e3c60 11084
21d6a1c7
RG
110852011-01-26 Richard Guenther <rguenther@suse.de>
11086
11087 PR lto/47423
11088 * cgraphbuild.c (record_eh_tables): Record reference to personality
11089 function.
11090
48bb58b1
AO
110912011-01-26 Alexandre Oliva <aoliva@redhat.com>
11092
11093 PR debug/45454
11094 * sel-sched.c (moveup_expr): Don't let debug insns prevent
11095 non-debug insns from moving up.
11096
58c741a6
DK
110972011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11098
11099 PR target/40125
11100 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
11101 t-dlldir{,-x} fragment for build and add it to tmake_file.
11102 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
11103 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
11104 * config/i386/t-dlldir: New file.
11105 (SHLIB_DLLDIR): Define.
11106 * config/i386/t-dlldir-x: New file.
11107 (SHLIB_DLLDIR): Define.
11108 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
11109 (SHLIB_INSTALL): Use it.
11110
bff99262
CLT
111112011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
11112
11113 PR target/47246
11114 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
11115 lower bound of the allowed Thumb-2 coprocessor load/store
11116 index range to -256. Add explaining comment.
11117
82c03907
ILT
111182011-01-25 Ian Lance Taylor <iant@google.com>
11119
11120 * godump.c (go_define): Improve lexing of macro expansion to only
11121 accept expressions which match Go spec.
11122
47ea1edf
DK
111232011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
11124
d4dba752 11125 PR c++/43601
47ea1edf
DK
11126 * tree.c (handle_dll_attribute): Handle it.
11127 * doc/extend.texi (@item dllexport): Mention it.
11128 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
11129
744f0946
ILT
111302011-01-25 Ian Lance Taylor <iant@google.com>
11131
11132 PR tree-optimization/26854
11133 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
11134 (decl_jump_unsafe): Move higher in file, with no other change.
11135 (bind): Set has_jump_unsafe_decl if appropriate.
11136 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
11137 (check_earlier_gotos): Likewise.
11138 (c_check_switch_jump_warnings): Likewise.
11139
5734f2b3
JW
111402011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
11141
11142 * doc/invoke.texi (Warning Options): Add missing hyphen.
11143 (-fprofile-dir): Minor grammatical fixes.
11144 (-fbranch-probabilities): Likewise.
11145
9bdbdcef
AO
111462011-01-25 Alexandre Oliva <aoliva@redhat.com>
11147
11148 PR debug/45136
11149 PR debug/45130
11150 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
11151 debug insns.
11152 (no_real_insns_p, schedule_block, set_priorities): Drop special
11153 treatment of boundary debug insns.
38be4072 11154 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
11155 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
11156 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
11157 (BOUNDARY_DEBUG_INSN_P): Likewise.
11158 (SCHEDULE_DEBUG_INSN_P): Likewise.
11159 * sched-rgn.c (init_ready_list): Drop special treatment of
11160 boundary debug insns.
11161 * final.c (rest_of_clean-state): Clear notes' BB.
11162
b305e3da
SP
111632011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11164
11165 * Makefile.in (LAMBDA_H): Removed.
11166 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
11167 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
11168 lambda-trans.o, and tree-loop-linear.o.
11169 (lto-symtab.o): Remove dependence on LAMBDA_H.
11170 (tree-loop-linear.o): Remove rule.
11171 (lambda-mat.o): Same.
11172 (lambda-trans.o): Same.
11173 (lambda-code.o): Same.
11174 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
11175 (tree-vect-slp.o): Same.
11176 * hwint.h (gcd): Moved here.
11177 (least_common_multiple): Same.
11178 * lambda-code.c: Removed.
11179 * lambda-mat.c: Removed.
11180 * lambda-trans.c: Removed.
11181 * lambda.h: Removed.
11182 * tree-loop-linear.c: Removed.
11183 * lto-symtab.c: Do not include lambda.h.
11184 * omega.c (gcd): Removed.
11185 * passes.c (init_optimization_passes): Remove pass_linear_transform.
11186 * tree-data-ref.c (print_lambda_vector): Moved here.
11187 (lambda_vector_copy): Same.
11188 (lambda_matrix_copy): Same.
11189 (lambda_matrix_id): Same.
11190 (lambda_vector_first_nz): Same.
11191 (lambda_matrix_row_add): Same.
11192 (lambda_matrix_row_exchange): Same.
11193 (lambda_vector_mult_const): Same.
11194 (lambda_vector_negate): Same.
11195 (lambda_matrix_row_negate): Same.
11196 (lambda_vector_equal): Same.
11197 (lambda_matrix_right_hermite): Same.
11198 * tree-data-ref.h: Do not include lambda.h.
11199 (lambda_vector): Moved here.
11200 (lambda_matrix): Same.
11201 (dependence_level): Same.
11202 (lambda_transform_legal_p): Removed declaration.
11203 (lambda_collect_parameters): Same.
11204 (lambda_compute_access_matrices): Same.
11205 (lambda_vector_gcd): Same.
11206 (lambda_vector_new): Same.
11207 (lambda_vector_clear): Same.
11208 (lambda_vector_lexico_pos): Same.
11209 (lambda_vector_zerop): Same.
11210 (lambda_matrix_new): Same.
11211 * tree-flow.h (least_common_multiple): Removed declaration.
11212 * tree-parloops.c (lambda_trans_matrix): Moved here.
11213 (LTM_MATRIX): Same.
11214 (LTM_ROWSIZE): Same.
11215 (LTM_COLSIZE): Same.
11216 (LTM_DENOMINATOR): Same.
11217 (lambda_trans_matrix_new): Same.
11218 (lambda_matrix_vector_mult): Same.
11219 (lambda_transform_legal_p): Same.
11220 * tree-pass.h (pass_linear_transform): Removed declaration.
11221 * tree-ssa-loop.c (tree_linear_transform): Removed.
11222 (gate_tree_linear_transform): Removed.
11223 (pass_linear_transform): Removed.
11224 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
11225 flag_loop_interchange.
11226
6bdfdb96
JJ
112272011-01-25 Jakub Jelinek <jakub@redhat.com>
11228
11229 PR tree-optimization/47265
11230 PR tree-optimization/47443
11231 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
11232 if name still has some uses.
11233
e4cba915
MJ
112342011-01-25 Martin Jambor <mjambor@suse.cz>
11235
11236 PR tree-optimization/47382
11237 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
11238 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
11239
509d65dd 112402011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
11241
11242 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
11243 sjlj_except_unwind_info.
11244
194313e2
RG
112452011-01-25 Richard Guenther <rguenther@suse.de>
11246
11247 PR tree-optimization/47426
11248 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
11249 visible functions results escape.
11250
147a0bcf
JJ
112512011-01-25 Jakub Jelinek <jakub@redhat.com>
11252
11253 PR target/45701
11254 * config/arm/arm.c (any_sibcall_uses_r3): New function.
11255 (arm_get_frame_offsets): Use it.
11256
db963b52
SP
112572011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11258 Jakub Jelinek <jakub@redhat.com>
11259
11260 PR tree-optimization/47271
11261 * tree-if-conv.c (bb_postdominates_preds): New.
11262 (if_convertible_bb_p): Call bb_postdominates_preds.
11263 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
11264 (predicate_scalar_phi): Call bb_postdominates_preds.
11265
bcddd3b9
NC
112662011-01-25 Nick Clifton <nickc@redhat.com>
11267
11268 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
11269 * config/rx/rx.c (rx_function_value): Likewise.
11270 (rx_promote_function_mode): Likewise.
11271 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
11272 in order to make it legitimate.
38be4072
UB
11273 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
11274 make sure that the first operand is the same as the result register.
bcddd3b9
NC
11275 (addsi3_unspec): Delete.
11276 (subdi3): Do not accept immediate operands.
11277 (subdi3_internal): Likewise.
11278
7e6cb022
JL
112792011-01-25 Jeff Law <law@redhat.com>
11280
11281 PR rtl-optimization/37273
11282 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11283 handle them like argument loads from stack slots. Do not double
11284 count memory for memory constants and argument loads from stack slots.
11285
9ffa621e
JJ
112862011-01-25 Jakub Jelinek <jakub@redhat.com>
11287
11288 PR tree-optimization/47427
11289 PR tree-optimization/47428
11290 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11291 coalesce if the new root var would be TREE_READONLY.
11292
5bd6e652
RG
112932011-01-25 Richard Guenther <rguenther@suse.de>
11294
11295 PR middle-end/47414
11296 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
11297 correct type for TBAA.
11298
7c48ea69
SP
112992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11300
11301 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
11302 (close_phi_written_to_memory): Call for_each_index with
11303 dr_indices_valid_in_loop.
11304
38013f25
SP
113052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11306
11307 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
11308 when it is initialized.
11309
5c640e29
SP
113102011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11311
11312 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
11313 call to graphite_find_data_references_in_stmt.
11314 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
11315 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
11316 call to graphite_find_data_references_in_stmt.
11317 (analyze_drs_in_stmts): Same.
11318 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
11319 in which the scalar analysis of indices is performed.
11320 (create_data_ref): Same. Update call to dr_analyze_indices.
11321 (find_data_references_in_stmt): Update call to create_data_ref.
11322 (graphite_find_data_references_in_stmt): Same.
11323 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
11324 declaration.
11325 (create_data_ref): Same.
11326 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
11327 call to create_data_ref.
11328
ac53c069
SP
113292011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11330
11331 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 11332 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 11333
3d17df15
SP
113342011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11335
11336 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
11337 VAR_DECL, PARM_DECL, and RESULT_DECL.
11338
c513da01
SP
113392011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11340
11341 * graphite-dependences.c (reduction_dr_1): Allow several reductions
11342 in a reduction PBB.
11343 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
11344 that have already been marked as PBB_IS_REDUCTION.
11345
3a292d59
SP
113462011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11347
11348 * graphite-scop-detection.c (same_close_phi_node): New.
11349 (remove_duplicate_close_phi): New.
11350 (make_close_phi_nodes_unique): New.
11351 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
11352
ba858447
SP
113532011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11354
11355 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
11356 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
11357 of both data references to be the same.
11358
8d865c56
SP
113592011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11360
38be4072
UB
11361 * graphite-dependences.c (build_lexicographical_constraint): Remove
11362 the gdim parameter.
11363 (build_lexicographical_constraint): Adjust call to
11364 ppl_powerset_is_empty.
8d865c56
SP
11365 (dependence_polyhedron): Same.
11366 (graphite_legal_transform_dr): Same.
11367 (graphite_carried_dependence_level_k): Same.
38be4072
UB
11368 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
11369 parameter.
8d865c56
SP
11370 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
11371
50034a36
SP
113722011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11373
11374 * graphite-sese-to-poly.c
11375 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
11376 (close_phi_written_to_memory): New.
11377 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
11378 and unshare_expr.
11379
0deada9e
SP
113802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11381
11382 * doc/install.texi: Update the expected version number of PPL to 0.11.
11383 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
11384 #if PPL_VERSION_MINOR < 11.
11385
d7d3d6af
SP
113862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11387
11388 * graphite-dependences.c: Include graphite-cloog-util.h.
11389 (new_poly_ddr): Inlined into dependence_polyhedron.
11390 (free_poly_ddr): Moved close by new_poly_ddr.
11391 (dependence_polyhedron_1): Renamed dependence_polyhedron.
11392 Early return NULL when ppl_powerset_is_empty returns true.
11393 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
11394 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
11395 (graphite_legal_transform_dr): Call new_poly_ddr.
11396 (graphite_carried_dependence_level_k): Same.
11397 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
11398 (dot_transformed_deps_stmt_1): Removed.
11399 (dot_deps_stmt_1): Call dot_deps_stmt_2.
11400 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
11401 (dot_deps_1): Call dot_deps_2.
11402 * Makefile.in (graphite-dependences.o): Add missing dependence on
11403 graphite-cloog-util.h.
11404
28c5db57
SP
114052011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11406
11407 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
11408 (build_lexicographical_constraint): Same.
11409 (dependence_polyhedron_1): Same.
11410 (graphite_legal_transform_dr): Same.
11411 (graphite_carried_dependence_level_k): Same.
11412 * graphite-ppl.c (ppl_powerset_is_empty): New.
11413 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
11414 * tree-data-ref.c (dump_data_reference): Print the basic block index.
11415
5168d98f
SP
114162011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11417
11418 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
11419 the "a followed by b" relation and document it.
11420
4a40293a
SP
114212011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11422
11423 * graphite-dependences.c (build_lexicographical_constraint): Stop the
11424 iteration when the bag of constraints is empty.
11425
271fb6fa
SP
114262011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11427
11428 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
11429
92d23680
SP
114302011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11431
11432 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
11433 nest and two loop depths as parameters.
11434 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
11435 lst_perfect_nestify.
11436
2f51deff
SP
114372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11438
11439 * graphite-dependences.c (print_pddr): Call
11440 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
11441
07f3593c
SP
114422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11443
11444 * graphite-ppl.c (debug_gmp_value): New.
11445 * graphite-ppl.h (debug_gmp_value): Declared.
11446
3fae6099
TG
114472011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
11448
11449 * doc/install.texi: Document availability of cloog-0.16.
11450
1c3ba85b
SP
114512011-01-25 Vladimir Kargov <kargov@gmail.com>
11452
11453 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
11454 invalid postdominance info.
11455
e8ba94fc
JH
114562011-01-24 Jan Hubicka <jh@suse.cz>
11457
11458 PR c/21659
11459 * doc/extend.texi (weak pragma): Drop claim that it must
11460 appear before definition.
11461 * varasm.c (merge_weak, declare_weak): Only sanity check
11462 that DECL is not output at a time it is declared weak.
11463
2b6e2d13
KZ
114642011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
11465
11466 * machmode.def: Fixed comments.
1c3ba85b 11467
9841210f
KT
114682011-01-24 Kai Tietz <kai.tietz@onevision.com>
11469
11470 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
11471
114722011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
11473
11474 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 11475 WORDS_BIG_ENDIAN.
e046112d 11476
a6c5070a
L
114772011-01-24 H.J. Lu <hongjiu.lu@intel.com>
11478
11479 PR target/46519
11480 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
11481 (block_info): Add scanned and prev.
11482 (move_or_delete_vzeroupper_2): Return if the basic block
11483 has been scanned and the upper 128bit state is unchanged
11484 from the last scan.
11485 (move_or_delete_vzeroupper_1): Return true if the exit
11486 state is changed.
11487 (move_or_delete_vzeroupper): Visit basic blocks using the
11488 work-list based algorithm based on vt_find_locations in
11489 var-tracking.c.
11490
11491 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
11492
a40d79d7
NC
114932011-01-24 Nick Clifton <nickc@redhat.com>
11494
11495 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
11496 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
11497 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
11498 then define __v850e1__.
11499 * doc/invoke.texi: Document -mv850es.
11500
440eb8de
RH
115012011-01-24 Richard Henderson <rth@redhat.com>
11502
11503 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
11504 compound unordered comparisons.
11505 * config/rx/rx.c (rx_split_fp_compare): Remove.
11506 * config/rx/rx-protos.h: Update.
11507 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
11508 (cbranchsf4): Don't call rx_split_fp_compare.
11509 (*cbranchsf4): Use rx_split_cbranch.
11510 (*cmpsf): Don't accept "i" constraint.
11511 (*conditional_branch): Only valid after reload.
11512 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
11513
3ff79f99
MM
115142011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11515
11516 PR target/47385
11517 * config/rs6000/altivec.md (vector constant splitters): Add
11518 support for creating vector single precision constants if -mvsx is
11519 used and we would create the constant using Altivec primitives.
11520
ff3d9d08
BS
115212011-01-23 Bernd Schmidt <bernds@codesourcery.com>
11522 Richard Sandiford <rdsandiford@googlemail.com>
11523
11524 PR rtl-optimization/47166
11525 * reload1.c (emit_reload_insns): Disable the spill_reg_store
11526 mechanism for PRE_MODIFY and POST_MODIFY.
11527 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
11528 reloadreg.
11529
7fcaf152
AS
115302011-01-23 Andreas Schwab <schwab@linux-m68k.org>
11531
8788adb6 11532 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 11533
d09b58c4
JH
115342011-01-22 Jan Hubicka <jh@suse.cz>
11535
11536 PR lto/47333
11537 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
11538
e8ff8c5a
JH
115392011-01-22 Jan Hubicka <jh@suse.cz>
11540
11541 PR tree-optimization/43884
11542 PR lto/44334
8788adb6 11543 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
11544 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11545
ccaed3ba
AS
115462011-01-22 Anatoly Sokolov <aesok@post.ru>
11547
11548 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11549 * config/s390/s390.c (s390_register_move_cost,
11550 s390_memory_move_cost): New.
11551 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11552
0cecee06
UW
115532011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11554
11555 PR middle-end/47401
11556 * except.c (sjlj_assign_call_site_values): Move setting the
11557 crtl->uses_eh_lsda flag to ...
11558 (sjlj_mark_call_sites): ... here.
11559 (sjlj_emit_function_enter): Support NULL dispatch label.
11560 (sjlj_build_landing_pads): In a function with no landing pads
11561 that still has must-not-throw regions, generate code to register
11562 a personality function with empty LSDA.
11563
e692f276
RH
115642011-01-21 Richard Henderson <rth@redhat.com>
11565
1b7ae0b7
RH
11566 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11567
3843787f
RH
11568 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11569
e692f276
RH
11570 * compare-elim.c: New file.
11571 * Makefile.in (OBJS-common): Add it.
11572 (compare-elim.o): New.
11573 * common.opt (fcompare-elim): New.
11574 * opts.c (default_options_table): Add OPT_fcompare_elim.
11575 * tree-pass.h (pass_compare_elim_after_reload): New.
11576 * passes.c (init_optimization_passes): Add it.
11577 * recog.h: Protect against re-inclusion.
11578 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11579 * doc/invoke.texi (-fcompare-elim): Document it.
11580 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11581 * doc/tm.texi: Rebuild.
11582
9a7c2050
NC
115832011-01-22 Nick Clifton <nickc@redhat.com>
11584
11585 * config/rx/rx.md (cstoresf4): Pass comparison operator to
11586 rx_split_fp_compare.
11587
15ba5696
NC
115882011-01-22 Nick Clifton <nickc@redhat.com>
11589
11590 * config/rx/rx.md (UNSPEC_CONST): New.
11591 (deallocate_and_return): Wrap the amount popped off the stack in
11592 an UNSPEC_CONST in order to stop it being rejected by
11593 -mmax-constant-size.
11594 (pop_and_return): Add a "(return)" rtx.
11595 (call): Drop the immediate operand.
11596 (call_internal): Likewise.
11597 (call_value): Likewise.
11598 (call_value_internal): Likewise.
11599 (sibcall_internal): Likewise.
11600 (sibcall_value_internal): Likewise.
11601 (sibcall): Likewise. Generate an explicit call using
11602 sibcall_internal.
11603 (sibcall_value): Likewise.
11604 (mov<>): FAIL if a constant operand is not legitimate.
11605 (addsi3_unpsec): New pattern.
9a7c2050 11606
38be4072 11607 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
11608 (ok_for_max_constant): New function.
11609 (gen_safe_add): New function.
11610 (rx_expand_prologue): Use gen_safe_add.
11611 (rx_expand_epilogue): Likewise.
11612 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
11613 UNSPEC CONSTs.
11614
caaf13d3
JL
116152011-01-21 Jeff Law <law@redhat.com>
11616
11617 PR tree-optimization/47053
11618 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
11619 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
11620 statements are deleted.
11621 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
11622 is nonempty, then purge dead edges and cleanup the CFG.
11623
12c30f2f
AO
116242011-01-21 Alexandre Oliva <aoliva@redhat.com>
11625
11626 PR debug/47402
11627 Temporarily revert:
11628 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
11629 PR debug/47106
11630 * tree-dfa.c (create_var_ann): Mark variable as used.
11631
7360d2ac
JJ
116322011-01-21 Jakub Jelinek <jakub@redhat.com>
11633
aaa52a96
JJ
11634 PR middle-end/45566
11635 * except.c (convert_to_eh_region_ranges): Emit queued no-region
11636 notes from other section in hot/cold partitioning even if
11637 last_action is -3. Increment call_site_base.
11638
7360d2ac
JJ
11639 PR rtl-optimization/47366
11640 * fwprop.c (forward_propagate_into): Return bool. If
11641 any changes are made, -fnon-call-exceptions is used and
11642 REG_EH_REGION note is present, call purge_dead_edges
11643 and return true if it purged anything.
11644 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
11645 any EH edges were purged.
11646
e90b336f
JL
116472011-01-21 Jeff Law <law@redhat.com>
11648
11649 PR rtl-optimization/41619
11650 * caller-save.c (setup_save_areas): Break out code to determine
11651 which hard regs are live across calls by examining the reload chains
11652 so that it is always used.
11653 Eliminate code which checked REG_N_CALLS_CROSSED.
11654
3ffe07e1
JJ
116552011-01-21 Jakub Jelinek <jakub@redhat.com>
11656
11657 PR tree-optimization/47355
11658 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
11659 NOP has non-debug uses beyond PHIs in new_bb.
11660
1c7d0b34
AO
116612011-01-21 Alexandre Oliva <aoliva@redhat.com>
11662
11663 PR debug/47106
11664 * cfgexpand.c (account_used_vars_for_block): Only account vars
11665 that are annotated as used.
11666 (estimated_stack_frame_size): Don't set TREE_USED.
11667 * tree-dfa.c (create_var_ann): Mark variable as used.
11668
f99cc488
RG
116692011-01-21 Richard Guenther <rguenther@suse.de>
11670
11671 PR middle-end/47395
11672 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
11673
3bc27de7
RG
116742011-01-21 Richard Guenther <rguenther@suse.de>
11675
11676 PR tree-optimization/47365
11677 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
11678 (vn_reference_lookup_pieces): Adjust.
11679 (vn_reference_lookup): Likewise.
11680 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
11681 (vn_reference_lookup_3): Only look through kills if in
11682 VN_WALKREWRITE mode.
11683 (vn_reference_lookup_pieces): Adjust.
11684 (vn_reference_lookup): Likewise.
11685 (visit_reference_op_load): Likewise.
11686 (visit_reference_op_store): Likewise.
11687 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
11688 (compute_avail): Likewise.
11689 (eliminate): Likewise.
11690
d8debb1d
JJ
116912011-01-21 Jakub Jelinek <jakub@redhat.com>
11692
11693 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
11694 DECL_IGNORED_P non-reg vars if they are used.
11695
3a2df831
JJ
11696 PR tree-optimization/47391
11697 * varpool.c (const_value_known_p): Return false if
11698 decl is volatile.
11699
1dd584a2
KT
117002011-01-21 Kai Tietz <kai.tietz@onevision.com>
11701
11702 PR bootstrap/47215
11703 * config/i386/i386.c (ix86_local_alignment): Handle
11704 case for va_list_type_node is nil.
11705 (ix86_canonical_va_list_type): Likewise.
11706
7f9f095e
AM
117072011-01-21 Alan Modra <amodra@gmail.com>
11708
11709 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
11710 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
11711
837b01f6
RR
117122011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11713
11714 * config/arm/arm.md (define_attr type): Rename f_load
11715 and f_store to f_fpa_load and f_fpa_store. Update.
11716 (write_conflict): Deal with rename fallout.
11717 (*push_fp_multi): Likewise.
11718 * config/arm/fpa.md (f_load): Use f_fpa_load.
11719 (f_store): Use f_fpa_store.
11720 (*movsf_fpa): Likewise.
11721 (*movdf_fpa): Likewise.
11722 (*movxf_fpa): Likewise.
11723 (*thumb2_movsf_fpa): Likewise.
11724 (*thumb2_movdf_fpa): Likewise.
11725 (*thumb2_movxf_fpa): Likewise.
11726 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
11727 f_loadd and f_stored.
11728 (*thumb2_movdi_vfp): Likewise.
11729 (*thumb2_movsf_vfp): Fix attribute to f_loads.
11730 (*thumb2_movsi_vfp): Likewise.
11731 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
11732 Use f_loads instead of f_load.
11733 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
11734
a1a79768
AS
117352011-01-20 Anatoly Sokolov <aesok@post.ru>
11736
11737 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11738 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
11739 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11740 (xtensa_mode_dependent_address_p): New function.
11741 (constantpool_address_p): Make static. Change return type to bool.
11742 Change argument type to const_rtx. Use CONST_INT_P predicate.
11743
427f6cec
AO
117442011-01-20 Alexandre Oliva <aoliva@redhat.com>
11745
11746 PR debug/46583
11747 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
11748
583ac69c
JJ
117492011-01-20 Jakub Jelinek <jakub@redhat.com>
11750
11751 PR debug/47283
11752 * cfgexpand.c (expand_debug_expr): Instead of generating
11753 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
11754 etc. handling.
11755
93e452ed
RG
117562011-01-20 Richard Guenther <rguenther@suse.de>
11757
11758 PR middle-end/47370
11759 * tree-inline.c (remap_gimple_op_r): Recurse manually for
11760 the pointer operand of MEM_REFs.
11761
28fc44f3
JJ
117622011-01-20 Jakub Jelinek <jakub@redhat.com>
11763
11764 PR tree-optimization/46130
11765 * ipa-split.c (consider_split): If return_bb contains non-virtual
11766 PHIs other than for retval or if split_function would not adjust it,
11767 refuse to split.
11768
ddd268f2
RG
117692011-01-20 Richard Guenther <rguenther@suse.de>
11770
11771 PR tree-optimization/47167
11772 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11773 Revert previous change, only avoid enumeral type changes.
11774
882020aa
MS
117752011-01-19 Mike Stump <mikestump@comcast.net>
11776
11777 * doc/tm.texi.in (BRANCH_COST): Englishify.
11778 * doc/tm.texi (BRANCH_COST): Likewise.
11779
7edb6247
DS
117802011-01-19 Dodji Seketeli <dodji@redhat.com>
11781
11782 PR c++/47291
11783 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
11784 (gen_scheduled_generic_parms_dies): New functions.
11785 (gen_struct_or_union_type_die): Schedule template parameters DIEs
11786 generation for the end of CU compilation.
11787 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 11788
23d5ed5d
AO
117892011-01-19 Alexandre Oliva <aoliva@redhat.com>
11790
11791 PR debug/46240
11792 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
11793 debug bind stmt on merge edges.
11794
37d6a488
AO
117952011-01-19 Alexandre Oliva <aoliva@redhat.com>
11796
11797 PR debug/47079
11798 PR debug/46724
11799 * function.c (instantiate_expr): Instantiate incoming rtl of
11800 implicit arguments, and recurse on VALUE_EXPRs.
11801 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
11802 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
11803
689f2c82
AO
118042011-01-19 Alexandre Oliva <aoliva@redhat.com>
11805
11806 * c-parser.c (c_parser_for_statement): Initialize
11807 collection_expression.
11808
03029de4
JM
118092011-01-19 Joseph Myers <joseph@codesourcery.com>
11810
11811 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
11812
3e03217e
JM
118132011-01-19 Joseph Myers <joseph@codesourcery.com>
11814
11815 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
11816 (LINK_SHLIB_SPEC): Don't use %(link_path).
11817 (SUBTARGET_EXTRA_SPECS): Remove link_path.
11818
5bbe9b3f
JM
118192011-01-19 Joseph Myers <joseph@codesourcery.com>
11820
11821 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
11822 (NO_SHARED_LIB_SUPPORT): Remove.
11823 (LINK_SHLIB_SPEC): Remove one conditional definition.
11824
368e0b39
JM
118252011-01-19 Joseph Myers <joseph@codesourcery.com>
11826
11827 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
11828 %{call_shared}.
11829 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
11830 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
11831 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
11832 %{call_shared} and conditionals on these options not being passed.
11833 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
11834 %{call_shared}.
11835
ed7656f6
JJ
118362011-01-19 Jakub Jelinek <jakub@redhat.com>
11837
68457901
JJ
11838 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
11839 simplify.
11840
ed7656f6
JJ
11841 * ipa-split.c: Spelling fixes.
11842
e0d1958f
RH
118432011-01-19 Richard Henderson <rth@redhat.com>
11844
11845 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
11846 (*mulsi3): Likewise.
11847
27098b6b
RH
11848 * longlong.h [__mn10300__] (count_leading_zeros): New.
11849 [__mn10300__] (umul_ppmm, smul_ppmm): New.
11850 [__mn10300__] (add_ssaaaa, subddmmss): New.
11851 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
11852 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
11853
d6be7c36
UW
118542011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11855
11856 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
11857
b1efde2a
RH
118582011-01-19 Richard Henderson <rth@redhat.com>
11859
44217823
RH
11860 * config/mn10300/mn10300.md (addsi3_flags): New.
11861 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
11862 (subsi3_flags, subc_internal, subdi3): New.
11863 (subdi3_internal, *subdi3_degenerate): New.
11864 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
11865
37a185d7
RH
11866 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
11867 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
11868 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
11869 * config/mn10300/mn10300-protos.h: Update.
11870 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
11871 (return_ret): Likewise. Rename from return_internal_regs.
11872 (return_internal): Remove.
11873
040c5757
RH
11874 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
11875 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
11876 (mn10300_legitimate_constant_p): Likewise.
11877 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
11878 (mn10300_frame_size): New.
11879 (mn10300_expand_prologue): Use it.
11880 (mn10300_expand_epilogue): Likewise.
11881 (mn10300_initial_offset): Likewise.
11882 * config/mn10300/mn10300-protos.h: Update.
11883 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
11884 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
11885 (prologue, epilogue, return_internal): Tidy output code.
11886 (mn10300_store_multiple_operation, return): Likewise.
11887 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
11888 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
11889 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
11890 (load_pic, am33_load_pic): New.
11891 (mn10300_load_pic0, mn10300_load_pic1): New.
11892
bad41521
RH
11893 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
11894 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
11895 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
11896 (cc_flags_for_mode, cc_flags_for_code): New.
11897 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
11898 overflow flag is not valid. Validate that the flags we need
11899 for the comparison are valid.
11900 (mn10300_output_cmp): Remove.
11901 (mn10300_output_add): New.
11902 (mn10300_select_cc_mode): Use cc_flags_for_code.
11903 (mn10300_split_cbranch): New.
11904 (mn10300_match_ccmode): New.
11905 (mn10300_split_and_operand_count): New.
11906 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
11907 to the function.
11908 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
11909 (addsi3): ... here. Use mn10300_output_add.
11910 (*addsi3_flags): New.
11911 (*am33_subsi3, *mn10300_subsi3): Merge...
11912 (subsi3): ... here. Use attribute isa.
11913 (*subsi3_flags): New.
11914 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
11915 when possible.
11916 (*am33_andsi3, *mn10300_andsi3): Merge...
11917 (andsi3): ... here.
11918 (*andsi3_flags): New.
11919 (andsi3 splitters): New.
11920 (*am33_iorsi3, *mn10300_iorsi3): Merge...
11921 (iorsi3): ... here.
11922 (*iorsi3_flags): New.
11923 (*am33_xorsi3, *mn10300_xorsi3): Merge...
11924 (xorsi3): ... here.
11925 (*xorsi3_flags): New.
11926 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
11927 (one_cmplsi2): ... here.
11928 (*one_cmplsi2_flags): New.
11929 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
11930 instead of "dax" in constraints. Use mn10300_split_cbranch.
11931 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
11932 use matching constraints to eliminate a self-comparison.
11933 (*integer_conditional_branch): Rename from integer_conditional_branch.
11934 Use int_mode_flags to match CC_REG.
11935 (*cbranchsi4_btst, *btstsi): New.
11936 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
11937 mn10300_split_cbranch.
11938 (*am33_cmpsf): Rename from am33_cmpsf.
11939 (*float_conditional_branch): Rename from float_conditional_branch.
11940 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
11941 (zero_extendqisi2): ... here.
11942 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
11943 (zero_extendhisi2): ... here.
11944 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
11945 (extendqisi2): ... here.
11946 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
11947 (extendhisi2): ... here.
11948 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
11949 (ashlsi3): ... here.
11950 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
11951 (lshrsi3): ... here.
11952 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
11953 (ashrsi3): ... here.
11954 (consecutive add peephole): Remove.
11955 * config/mn10300/predicates.md (label_ref_operand): New.
11956 (int_mode_flags): New.
11957 (CCZN_comparison_operator): New.
11958
9efb4993
RH
11959 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
11960 (throughput_42_latency_43): New reservation.
11961 (mulsidi3, umulsidi3): New expanders.
11962 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
11963 the MDR register to allocation; separately allocate the low and
11964 high parts of the DImode result.
11965 (umulsidi3_internal): Similarly.
11966 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
11967 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
11968 (udivsi3, umodsi3): Remove.
11969 (udivmodsi4, divmodsi4): New expanders.
11970 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
11971 (*divmodsi4): Simiarly.
11972 (ext_internal): New.
11973
c25a21f5
RH
11974 * config/mn10300/constraints.md ("z"): New constraint.
11975 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
11976 (FIXED_REGISTERS): Don't fix MDR.
11977 (CALL_USED_REGSITERS): Reformat nicely.
11978 (REG_ALLOC_ORDER): Add MDR.
11979 (enum regclass): Add MDR_REGS.
11980 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
11981 (IRA_COVER_CLASSES): Add MDR_REGS.
11982 (REGNO_REG_CLASS): Handle MDR_REG.
11983 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
11984 (mn10300_register_move_cost): Likewise.
11985 * config/mn10300/mn10300.md (MDR_REG): New.
11986 (*movsi_internal): Handle moves to/from MDR_REGS.
11987
36846b26
RH
11988 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
11989 POST_MODIFY.
11990 (mn10300_secondary_reload): Tidy combination reload classes.
11991 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
11992 addresses for AM33. Allow symbolic offsets for reg+imm.
11993 (mn10300_regno_in_class_p): New.
11994 (mn10300_legitimize_reload_address): New.
11995 * config/mn10300/mn10300.h (enum reg_class): Remove
11996 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
11997 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
11998 SP_OR_GENERAL_REGS.
11999 (REG_CLASS_NAMES): Update to match.
12000 (REG_CLASS_CONTENTS): Likewise.
12001 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
12002 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
12003 (REGNO_IN_RANGE_P): Remove.
12004 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
12005 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
12006 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
12007 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
12008 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
12009 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
12010 (REGNO_GENERAL_P): New.
12011 (HAVE_POST_MODIFY_DISP): New.
12012 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
12013 (LEGITIMIZE_RELOAD_ADDRESS): New.
12014 * config/mn10300/mn10300-protos.h: Update.
12015
8b119bb6
RH
12016 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
12017 DATA_REGS for AM33 stack-pointer destination.
12018 (mn10300_preferred_output_reload_class): Likewise.
12019 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
12020 into a form appropriate for ...
12021 (TARGET_SECONDARY_RELOAD): New.
12022 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
12023 * config/mn10300/mn10300-protos.h: Update.
12024 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
12025 reload_insi; use the "A" constraint for the scratch; handle AM33
12026 moves of sp to non-address registers.
12027
b1efde2a
RH
12028 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
12029 (*movqi_internal): ... here.
12030 (*am33_movhi, *mn10300_movhi): Merge into...
12031 (*movhi_internal): ... here.
12032 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
12033 as the source/destination of moves from/to SP.
12034 (movsf): Only allow for AM33-2.
1c3ba85b 12035 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
12036 any integer constant constraint. Only allow for AM33-2. Tidy
12037 all of the alternative outputs.
12038 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
12039 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
12040 for MN103.
12041 (udivsi3, umodsi3): New patterns for MN103 only.
12042
b899fd78
JR
120432011-01-19 Joern Rennecke <amylaar@spamcop.net>
12044
12045 * doc/tm.texi.in: Spell out that a lack of register class unions
12046 can lead to ICEs.
12047 * doc/tm.texi: Regenerate.
12048
afaaa67d
JJ
120492011-01-19 Jakub Jelinek <jakub@redhat.com>
12050
2e0642cd
JJ
12051 PR rtl-optimization/47337
12052 * dce.c (check_argument_store): New function.
12053 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
12054
afaaa67d
JJ
12055 PR tree-optimization/47290
12056 * tree-eh.c (infinite_empty_loop_p): New function.
12057 (cleanup_empty_eh): Use it.
12058
d2cd871f
SE
120592011-01-18 Steve Ellcey <sje@cup.hp.com>
12060
12061 PR target/46997
12062 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
12063 (a64_expand_widen_sum): Ditto.
12064 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
12065 (vec_extract_evenodd_help): Ditto.
12066 (vec_extract_evenv4hi): Ditto.
12067 (vec_extract_oddv4hi): Ditto.
12068 (vec_extract_evenv2si): Ditto.
12069 (vec_extract_oddv2si): Ditto.
12070 (vec_extract_evenv2sf): Ditto.
12071 (vec_extract_oddv2sf): Ditto.
12072 (vec_pack_trunc_v4hi: Ditto.
12073 (vec_pack_trunc_v2si): Ditto.
12074 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
12075 (vec_interleave_highv8qi): Ditto.
12076 (mix1_r): Ditto.
12077 (vec_extract_oddv8qi): Ditto.
12078 (vec_interleave_lowv4hi): Ditto.
12079 (vec_interleave_highv4hi): Ditto.
12080 (vec_interleave_lowv2si): Ditto.
12081 (vec_interleave_highv2si): Ditto.
12082
41a1208a
JDA
120832011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12084
12085 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
12086 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
12087 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
12088 (pa_c_mode_for_suffix): New.
12089 (TARGET_EXPAND_BUILTIN): Define.
12090 (TARGET_C_MODE_FOR_SUFFIX): Define.
12091 (pa_builtins): Define.
12092 (pa_init_builtins): Register __float128 type and init new support
12093 builtins.
12094 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
12095 * config/pa/quadlib.c (_U_Qfcopysign): New.
12096
1ecad98e
EB
120972011-01-18 Eric Botcazou <ebotcazou@adacore.com>
12098
12099 PR middle-end/46894
12100 * explow.c (allocate_dynamic_stack_space): Do not assume more than
12101 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
12102 are defined.
12103
d4f2460a
UW
121042011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12105
12106 PR tree-optimization/47179
12107 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
12108 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
12109
4994da65
RG
121102011-01-18 Richard Guenther <rguenther@suse.de>
12111
12112 PR rtl-optimization/47216
12113 * emit-rtl.c: Include tree-flow.h.
12114 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
12115 of replicating it with different semantics.
12116 * Makefile.in (emit-rtl.o): Adjust.
12117
1eb458d1
RR
121182011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12119
38be4072 12120 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 12121 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 12122
e7ef91dc
JJ
121232011-01-18 Jakub Jelinek <jakub@redhat.com>
12124
12125 PR rtl-optimization/47299
12126 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 12127 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
12128 * expmed.c (expand_widening_mult): Don't try to optimize constant
12129 multiplication if op0 has VOIDmode. Convert op1 constant to mode
12130 before using it.
12131
535b7874
RW
121322011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12133
12134 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
12135 spacing after 'e.g.', typos, comma, hyphenation.
12136
27bf36f3
RH
121372011-01-17 Richard Henderson <rth@redhat.com>
12138
8a5b5449
RH
12139 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
12140 (rx_restricted_mem_operand): New.
12141 (rx_shift_operand): Use register_operand.
12142 (rx_source_operand, rx_compare_operand): Likewise.
12143 * config/rx/rx.md (addsi3_flags): New expander.
12144 (adddi3): Rewrite as expander.
12145 (adc_internal, *adc_flags, adddi3_internal): New patterns.
12146 (subsi3_flags): New expander.
12147 (subdi3): Rewrite as expander.
12148 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
12149
784f69be
RH
12150 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
12151 (rx_init_builtins): Remove sat builtin.
12152 (rx_expand_builtin): Likewise.
12153 * config/rx/rx.md (ssaddsi3): New.
12154 (*sat): Rename from sat. Represent the CC_REG input.
12155
f033541c
RH
12156 * config/rx/predicates.md (rshift_operator): New.
12157 * config/rx/rx.c (rx_expand_insv): Remove.
12158 * config/rx/rx-protos.h: Update.
12159 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
12160 operand to the canonical position.
12161 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
12162 (*bitclr, *bitclr_in_memory): Similarly.
12163 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
12164 (insv): Retain the zero_extract in the expansion.
12165
34fee389
RH
12166 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
12167 (bswaphi2, bitinvert, revw): Likewise.
12168
265c835f
RH
12169 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
12170 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
12171 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
12172 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
12173 (bitset, bitset_in_memory): Likewise.
12174 (bitinvert, bitinvert_in_memory): Likewise.
12175 (bitclr, bitclr_in_memory): Likewise.
12176 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
12177 (rx_strend, rx_cmpstrn): Likewise.
12178 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
12179 (bitop peep2 patterns): Remove.
12180
b4d83be3
RH
12181 * config/rx/rx.c (rx_match_ccmode): New.
12182 * config/rx/rx-protos.h: Update.
12183 * config/rx/rx.md (abssi2): Clobber, don't set flags.
12184 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
12185 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
12186 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
12187 (fix_truncsfsi2, floatsisf2): Likewise.
12188 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
12189 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
12190 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
12191 (*subsi3_flags, *xorsi3_flags): New.
12192
d0acb939
RH
12193 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
12194
c06fc3d9
RH
12195 * config/rx/rx.c (rx_print_operand): Remove workaround for
12196 unsplit comparison operations.
12197
2882702b
RH
12198 * config/rx/rx.md (movsicc): Split after reload.
12199 (*movsicc): Merge *movsieq and *movsine via match_operator.
12200 (*stcc): New pattern.
12201
6f7310f2
RH
12202 * config/rx/rx.c (rx_float_compare_mode): Remove.
12203 * config/rx/rx.h (rx_float_compare_mode): Remove.
12204 * config/rx/rx.md (cstoresi4): Split after reload.
12205 (*sccc): New pattern.
12206
e963cb1a
RH
12207 * config/rx/predicates.md (label_ref_operand): New.
12208 (rx_z_comparison_operator): New.
12209 (rx_zs_comparison_operator): New.
12210 (rx_fp_comparison_operator): New.
12211 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
12212 Validate that the flags are set properly for the comparison.
12213 (rx_gen_cond_branch_template): Remove.
12214 (rx_cc_modes_compatible): Remove.
12215 (mode_from_flags): New.
12216 (flags_from_code): Rename from flags_needed_for_conditional.
12217 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
12218 (rx_select_cc_mode): Likewise.
12219 (rx_split_fp_compare): New.
12220 (rx_split_cbranch): New.
12221 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
12222 (*cbranchsi4): Use match_operator and rx_split_cbranch.
12223 (*cbranchsf4): Similarly.
12224 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
12225 match_operator and rx_split_cbranch.
12226 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
12227 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
12228 (*cmpsi): Rename from cmpsi.
12229 (*tstsi): Rename from tstsi.
12230 (*cmpsf): Rename from cmpsf; use CC_Fmode.
12231 (*conditional_branch): Rename from conditional_branch.
12232 (*reveresed_conditional_branch): Remove.
12233 (b<code>): Remove expander.
12234 * config/rx/rx-protos.h: Update.
12235
af530bb4
RH
12236 * config/rx/rx.c (rx_compare_redundant): Remove.
12237 * config/rx/rx.md (cmpsi): Don't use it.
12238 * config/rx/rx-protos.h: Update.
12239
27bf36f3
RH
12240 * config/rx/rx-modes.def (CC_F): New mode.
12241 * config/rx/rx.c (rx_select_cc_mode): New.
12242 * config/rx/rx.h (SELECT_CC_MODE): Use it.
12243 * config/rx/rx-protos.h: Update.
12244
d7fde127
RH
122452011-01-17 Richard Henderson <rth@redhat.com>
12246
12247 * except.c (dump_eh_tree): Fix stray ; after for statement.
12248
6ff38230
RG
122492011-01-17 Richard Guenther <rguenther@suse.de>
12250
12251 PR tree-optimization/47313
12252 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
12253 handling before copying the body. Properly deal with
12254 by-reference result in SSA form.
12255
114ce554
ILT
122562011-01-17 Ian Lance Taylor <iant@google.com>
12257
bf5cd92b 12258 PR target/47219
114ce554
ILT
12259 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
12260 (struct_value_alias_set): Don't define.
12261 (sparc_option_override): Don't set sparc_sr_alias_set and
12262 struct_value_alias_set.
12263 (save_or_restore_regs): Use gen_frame_mem rather than calling
12264 set_mem_alias_set.
12265 (sparc_struct_value_rtx): Likewise.
12266
98c6d93c
L
122672011-01-17 H.J. Lu <hongjiu.lu@intel.com>
12268
12269 PR target/47318
7a81008b 12270 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
12271 (_mm_maskstore_pd): Likewise.
12272 (_mm_maskload_ps): Likewise.
12273 (_mm_maskstore_ps): Likewise.
12274 (_mm256_maskload_pd): Change mask to __m256i.
12275 (_mm256_maskstore_pd): Likewise.
12276 (_mm256_maskload_ps): Likewise.
12277 (_mm256_maskstore_ps): Likewise.
12278
12279 * config/i386/i386-builtin-types.def: Updated.
12280 (ix86_expand_special_args_builtin): Likewise.
12281
12282 * config/i386/i386.c (bdesc_special_args): Update
12283 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
12284 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
12285 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
12286 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
12287
12288 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
12289 Use <avxpermvecmode> on mask register.
12290 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
12291
b9361af2 122922011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
12293 Michael Haubenwallner <michael.haubenwallner@salomon.at>
12294 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
12295
12296 PR target/46655
12297 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
12298 if <= USHRT_MAX in 32-bit mode.
12299
b7ae9eb5
RW
123002011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12301
12302 * doc/install.texi (Configuration, Specific): Wrap long
12303 lines in examples. Allow line wrapping in long options
12304 and URLs where beneficial for PDF output.
12305
4377fad9
RS
123062011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
12307
12308 * config/mips/mips.c (mips_classify_symbol): Don't return
12309 SYMBOL_PC_RELATIVE for nonlocal labels.
12310
55959ffa 123112011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 12312
55959ffa
EB
12313 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
12314
123152011-01-15 Jan Hubicka <jh@suse.cz>
12316
12317 PR tree-optimization/47276
be46831f
JH
12318 * ipa.c (function_and_variable_visibility): Do not try to mark alias
12319 declarations as needed.
12320
05842ff5
MJ
123212011-01-15 Martin Jambor <mjambor@suse.cz>
12322
12323 * common.opt (fdevirtualize): New flag.
12324 * doc/invoke.texi (Option Summary): Document it.
12325 * opts.c (default_options_table): Add devirtualize flag.
12326 * ipa-prop.c (detect_type_change): Return immediately if
12327 devirtualize flag is not set.
12328 (detect_type_change_ssa): Likewise.
12329 (compute_known_type_jump_func): Likewise.
12330 (ipa_analyze_virtual_call_uses): Likewise.
12331
f65cf2b7
MJ
123322011-01-14 Martin Jambor <mjambor@suse.cz>
12333
12334 PR tree-optimization/45934
12335 PR tree-optimization/46302
12336 * ipa-prop.c (type_change_info): New type.
12337 (stmt_may_be_vtbl_ptr_store): New function.
12338 (check_stmt_for_type_change): Likewise.
12339 (detect_type_change): Likewise.
12340 (detect_type_change_ssa): Likewise.
12341 (compute_complex_assign_jump_func): Check for dynamic type change.
12342 (compute_complex_ancestor_jump_func): Likewise.
12343 (compute_known_type_jump_func): Likewise.
12344 (compute_scalar_jump_functions): Likewise.
12345 (ipa_analyze_virtual_call_uses): Likewise.
12346 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
12347
eb5bb0fd
JM
123482011-01-14 Joseph Myers <joseph@codesourcery.com>
12349
12350 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
12351 * config/i386/i386.opt (msse5): New Alias.
12352
f2060fbe
JM
123532011-01-14 Joseph Myers <joseph@codesourcery.com>
12354
12355 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12356 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12357 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12358 * config/sparc/sparc.h (CC1_SPEC): Likewise.
12359
3a7b4385
JM
123602011-01-14 Joseph Myers <joseph@codesourcery.com>
12361
12362 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
12363 -mcpu options.
12364 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12365 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12366 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
12367 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
12368 Likewise.
12369 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
12370
a7b778f8
JM
123712011-01-14 Joseph Myers <joseph@codesourcery.com>
12372
38be4072 12373 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 12374
a7edae0a
MS
123752011-01-14 Mike Stump <mikestump@comcast.net>
12376
12377 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
12378 * config/fr30/fr30.md: Likweise
12379 (movsi_push): Likewise.
12380 (movsi_pop): Likewise.
12381 (enter_func): Likewise.
12382 * config/moxie/moxie.md (movsi_push): Likewise.
12383 (movsi_pop): Likewise.
12384
cbabf03f
JM
123852011-01-14 Joseph Myers <joseph@codesourcery.com>
12386
12387 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
12388 %{no_archive} %{exact_version}.
12389 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
12390 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
12391 %{no_archive} %{exact_version}.
12392 * config/mips/openbsd.h (LINK_SPEC): Likewise.
12393 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
12394 * config/mips/vxworks.h: Likewise.
12395
438da41a
JM
123962011-01-14 Joseph Myers <joseph@codesourcery.com>
12397
38be4072 12398 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 12399
da290a42
JM
124002011-01-14 Joseph Myers <joseph@codesourcery.com>
12401
12402 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
12403 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
12404
8989d00e
JM
124052011-01-14 Joseph Myers <joseph@codesourcery.com>
12406
12407 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
12408 -nodefaultlib.
12409
a3010a69
JM
124102011-01-14 Joseph Myers <joseph@codesourcery.com>
12411
12412 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
12413 for mcpu not cpu.
12414 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
12415 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
12416 not cpu.
12417 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
12418 Don't handle -shlib.
12419
e7f2f537
JM
124202011-01-14 Joseph Myers <joseph@codesourcery.com>
12421
12422 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
12423 (CC1_SPEC): Don't handle -profile.
12424
34830bfd
JM
124252011-01-14 Joseph Myers <joseph@codesourcery.com>
12426
12427 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
12428 * config/mips/mips.h (CC1_SPEC): Likewise.
12429
b2d36e74
JM
124302011-01-14 Joseph Myers <joseph@codesourcery.com>
12431
12432 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
12433 * config/mips/mips.h (CC1_SPEC): Likewise.
12434
dabadc52
JM
124352011-01-14 Joseph Myers <joseph@codesourcery.com>
12436
12437 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
12438 * config/m32r/linux.h (LINK_SPEC): Likewise.
12439 * config/mips/linux.h (LINK_SPEC): Likewise.
12440 * config/mips/linux64.h (LINK_SPEC): Likewise.
12441 * config/sparc/linux.h (LINK_SPEC): Likewise.
12442 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12443 LINK_SPEC): Likewise.
12444 * config/xtensa/linux.h (LINK_SPEC): Likewise.
12445
43ee6785
JM
124462011-01-14 Joseph Myers <joseph@codesourcery.com>
12447
12448 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
12449 %{version:-v}.
12450 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
12451
45e79dfd
JM
124522011-01-14 Joseph Myers <joseph@codesourcery.com>
12453
12454 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
12455 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12456
37e9e71d
JM
124572011-01-14 Joseph Myers <joseph@codesourcery.com>
12458
12459 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
12460
bb127cd8
RO
124612011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12462
12463 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
12464 supports -Bstatic/-Bdynamic.
12465 * configure: Regenerate.
12466
89a012ea 124672011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 12468 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
12469
12470 PR target/46037
12471 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
12472 when checking debug_info_level. Test write_symbols instead of
12473 debug_hooks->var_location when setting flag_var_tracking_uninit.
12474
7352c013
RG
124752011-01-14 Richard Guenther <rguenther@suse.de>
12476
12477 PR tree-optimization/47179
12478 * target.def (ref_may_alias_errno): New target hook.
12479 * targhooks.h (default_ref_may_alias_errno): Declare.
12480 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
12481 (default_ref_may_alias_errno): New function.
12482 * target.h (struct ao_ref_s): Declare.
12483 * tree-ssa-alias.c: Include target.h.
12484 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
12485 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
12486 (targhooks.o): Likewise.
12487 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
12488 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
12489
9a6c9288
RG
124902011-01-14 Richard Guenther <rguenther@suse.de>
12491
12492 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
12493
0fdb0d27
RG
124942011-01-14 Richard Guenther <rguenther@suse.de>
12495
12496 PR tree-optimization/47280
12497 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
12498 return CFG changes.
12499 (tree_ssa_forward_propagate_single_use_vars): Deal with
12500 CFG changes from associate_plusminus.
12501
8f66db3b
RG
125022011-01-14 Richard Guenther <rguenther@suse.de>
12503
12504 PR middle-end/47281
12505 Revert
12506 2011-01-11 Richard Guenther <rguenther@suse.de>
12507
280d9630
EB
12508 PR tree-optimization/46076
12509 * tree-ssa.c (useless_type_conversion_p): Conversions from
12510 unprototyped to empty argument list function types are useless.
8f66db3b 12511
6c0c92e6
RG
125122011-01-14 Richard Guenther <rguenther@suse.de>
12513
12514 PR tree-optimization/47286
280d9630 12515 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 12516
db09f943
MJ
125172011-01-14 Martin Jambor <mjambor@suse.cz>
12518
12519 PR middle-end/46823
12520 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
12521
dde8a3a4
AS
125222011-01-13 Anatoly Sokolov <aesok@post.ru>
12523
12524 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
12525 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12526 * config/xtensa/xtensa.c (xtensa_libcall_value,
12527 xtensa_function_value_regno_p): New functions.
12528 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12529
a2b63a20
KT
125302011-01-13 Kai Tietz <kai.tietz@onevision.com>
12531
12532 PR c++/47213
12533 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
12534 PE specific hook.
12535 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
12536 New function prototype.
12537 * config/i386/winnt.c (i386_pe_assemble_visibility):
12538 Warn only if attribute was specified by user.
12539
b41f0b34
MM
125402011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12541
12542 PR target/47251
12543 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12544 floating point.
12545 (floatunsdidf2_fcfidu): Ditto.
12546
3f3c098d
AK
125472011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12548
12549 * config/s390/s390.c (print_operand_address): Replace 'error' with
12550 'output_operand_lossage'.
12551 (print_operand): Likewise.
12552
29fa95ed
JL
125532011-01-13 Jeff Law <law@redhat.com>
12554
280d9630 12555 PR rtl-optimization/39077
29fa95ed
JL
12556 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12557 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12558 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12559 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12560 * gcse.c (prune_insertions_deletions): New function.
12561 (compute_pre_data): Use it.
12562
71d12276
DS
125632011-01-13 Dodji Seketeli <dodji@redhat.com>
12564
12565 PR debug/PR46973
12566 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12567 static function.
61052244 12568 (prune_unused_types_mark): Use it.
71d12276 12569
9b0f04e7
AB
125702011-01-13 Andrey Belevantsev <abel@ispras.ru>
12571
12572 PR rtl-optimization/45352
1c3ba85b 12573 * sel-sched.c: Update copyright years.
9b0f04e7 12574 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 12575 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 12576
d6a3e264
RH
125772011-01-12 Richard Henderson <rth@redhat.com>
12578
a49b692a
RH
12579 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12580 (TARGET_MD_ASM_CLOBBERS): New.
12581
126b1483
RH
12582 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12583 (TARGET_DELEGITIMIZE_ADDRESS): New.
12584
f3d9d2e0
RH
12585 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12586 (clzsi2, *bsch): New patterns.
12587
d84760c9
RH
12588 * config/mn10300/mn10300.md (INT): New mode iterator.
12589 (*mov<INT>_clr): New pattern, and peep2 to generate it.
12590
ec815d65
RH
12591 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12592 flag_split_wide_types.
12593
d6a3e264
RH
12594 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12595 (mn10300_trampoline_init): Rewrite without a template, an immediate
12596 load and a direct branch.
12597 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12598
0f8ab434
AS
125992011-01-12 Anatoly Sokolov <aesok@post.ru>
12600
12601 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12602 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12603 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12604 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12605
d8a24b65
KT
126062011-01-12 Kai Tietz <kai.tietz@onevision.com>
12607
12608 PR debug/47209
12609 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12610 of type.
12611
56e22cab
JH
126122011-01-12 Jan Hubicka <jh@suse.cz>
12613
12614 PR driver/47244
12615 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
12616 (PLUGIN_COND_CLOSE): New macro.
12617 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
12618
4b18b3c2
RG
126192011-01-12 Richard Guenther <rguenther@suse.de>
12620
12621 PR lto/47259
12622 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
12623 register variables in a MEM_REF.
12624
8e38461c
JM
126252011-01-12 Joseph Myers <joseph@codesourcery.com>
12626
12627 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
12628 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
12629 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
12630 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12631 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12632 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
12633 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
12634 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
12635 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
12636 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
12637 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
12638 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
12639 * config/gnu-user.h: New. Copied from linux.h.
12640 (LINUX_TARGET_STARTFILE_SPEC): Rename to
12641 GNU_USER_TARGET_STARTFILE_SPEC.
12642 (LINUX_TARGET_ENDFILE_SPEC): Rename to
12643 GNU_USER_TARGET_ENDFILE_SPEC.
12644 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
12645 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
12646 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
12647 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
12648 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
12649 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
12650 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
12651 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
12652 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
12653 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
12654 * config/arm/linux-eabi.h (CC1_SPEC): Use
12655 GNU_USER_TARGET_CC1_SPEC.
12656 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
12657 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
12658 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
12659 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
12660 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
12661 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
12662 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
12663 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
12664
a570fc16
RG
126652011-01-12 Richard Guenther <rguenther@suse.de>
12666
12667 PR other/46946
12668 * doc/invoke.texi (ffast-math): Document it is turned on
12669 with -Ofast.
12670
b0223c3e
JH
126712011-01-12 Jan Hubicka <jh@suse.cz>
12672
12673 PR tree-optimization/47233
ca1e00b3
EB
12674 * opts.c (common_handle_option): Disable ipa-reference with profile
12675 feedback.
b0223c3e 12676
1c3ba85b 126772011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
12678
12679 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
12680 error message.
12681
d853ee42
NP
126822011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
12683
12684 * c-parser.c (c_lex_one_token): Updated and reindented some
12685 comments. No changes in code.
12686
4053a5a0
ILT
126872011-01-11 Ian Lance Taylor <iant@google.com>
12688
12689 * godump.c (go_output_var): Don't output the variable if there is
12690 already a type with the same name.
12691
fa3e04d2
ILT
126922011-01-11 Ian Lance Taylor <iant@google.com>
12693
12694 * godump.c (go_format_type): Don't generate float80.
12695
885fe07c
RH
126962011-01-11 Richard Henderson <rth@redhat.com>
12697
72d6e3c5
RH
12698 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
12699 declaration. Rewrite for both speed and size.
12700 (mn10300_address_cost_1): Remove.
12701 (mn10300_register_move_cost): New.
12702 (mn10300_memory_move_cost): New.
12703 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
12704 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
12705 extensions, shifts, BSWAP, CLZ.
12706 (mn10300_wide_const_load_uses_clr): Remove.
12707 (TARGET_REGISTER_MOVE_COST): New.
12708 (TARGET_MEMORY_MOVE_COST): New.
12709 * config/mn10300/mn10300-protos.h: Update.
12710 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
12711
df37c023
RH
12712 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
12713 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
12714 * config/mn10300/mn10300-protos.h: Update.
12715 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
12716 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
12717 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
12718 (*test_int_bitfield, *test_byte_bitfield): Remove.
12719 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 12720 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 12721
85a337b5
RH
12722 * config/mn10300/constraints.md ("c"): Rename from "A".
12723 ("A", "D"): New constraint letters.
12724 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
12725 (fmssf4, fnmasf4, fnmssf4): Likewise.
12726
a5c727e3
RH
12727 * config/mn10300/mn10300.md (isa): New attribute.
12728 (enabled): New attribute.
12729
0d9e23f4
RH
12730 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
12731 (abssf2, negsf2): Define only for hardware fp.
12732 (sqrtsf2): Reformat.
12733 (addsf3, subsf3, mulsf3): Merge expander and insn.
12734
c157b3f0
RH
12735 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
12736 (DEBUGGER_AUTO_OFFSET): Remove.
12737 (DEBUGGER_ARG_OFFSET): Remove.
12738
cc909bba
RH
12739 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
12740 Emit register stores with the same offsets as the hardware.
12741 (mn10300_store_multiple_operation): Don't check that the register
12742 save offsets are monotonic.
12743 * config/mn10300/mn10300-protos.h: Update.
12744
e3b5c2f3
RH
12745 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
12746
885fe07c
RH
12747 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
12748 in terms of the value on the stack, not the MDR register.
12749
6e701822
JH
127502011-01-11 Jan Hubicka <jh@suse.cz>
12751
12752 PR lto/45721
12753 PR lto/45375
12754 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
12755 (symbol_alias_set_destroy, symbol_alias_set_contains,
12756 propagate_aliases_backward): Declare.
12757 * lto-streamer-out.c (struct sets): New sturcture.
12758 (trivally_defined_alias): New function.
12759 (output_alias_pair_p): Rewrite.
12760 (output_unreferenced_globals): Fix output of alias pairs.
12761 (produce_symtab): Likewise.
12762 * ipa.c (function_and_variable_visibility): Set weak alias destination
12763 as needed in lto.
12764 * varasm.c (symbol_alias_set_t): Remove.
12765 (symbol_alias_set_destroy): Export.
12766 (propagate_aliases_forward, propagate_aliases_backward): New functions
12767 based on ...
12768 (compute_visible_aliases): ... this one; remove.
12769 (trivially_visible_alias): New
12770 (trivially_defined_alias): New.
12771 (remove_unreachable_alias_pairs): Rewrite.
12772 (finish_aliases_1): Reorganize code checking if alias is defined.
12773 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
12774 in LTO mode.
12775
1b248907
RG
127762011-01-11 Richard Guenther <rguenther@suse.de>
12777
12778 PR tree-optimization/46076
12779 * tree-ssa.c (useless_type_conversion_p): Conversions from
12780 unprototyped to empty argument list function types are useless.
12781
b1923f0a
RG
127822011-01-11 Richard Guenther <rguenther@suse.de>
12783
12784 PR middle-end/45235
12785 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
12786 volatile MEMs as MEM_READONLY_P.
12787
e98965af
RG
127882011-01-11 Richard Guenther <rguenther@suse.de>
12789
12790 PR tree-optimization/47239
12791 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
12792
9f9ca914
JL
127932011-01-11 Jeff Law <law@redhat.com>
12794
1ee3ea05 12795 PR tree-optimization/47086
9f9ca914
JL
12796 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
12797 IVs from statements that might throw.
12798
345fdcb7
JH
127992011-01-10 Jan Hubicka <jh@suse.cz>
12800
12801 PR lto/45375
12802 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
12803
c459c97b
JH
128042011-01-10 Jan Hubicka <jh@suse.cz>
12805
12806 PR lto/45375
12807 * profile.c (read_profile_edge_counts): Ignore profile inconistency
12808 when correcting profile.
12809
06c9eb51
JH
128102011-01-10 Jan Hubicka <jh@suse.cz>
12811
12812 PR lto/46083
12813 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
12814 DECL_FINI_PRIORITY.
12815 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
12816 Restore DECL_FINI_PRIORITY.
12817
ae9fd815
RW
128182011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12819
12820 * doc/gimple.texi: Fix quoting of multi-word return values in
12821 @deftypefn statements. Ensure presence of return value. Wrap
12822 overlong @deftypefn lines.
12823 (is_gimple_operand, is_gimple_min_invariant_address): Remove
12824 descriptions of removed functions.
12825 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
12826 of multi-word return value in @deftypefn statement.
12827
0ecb4a7c
RW
128282011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12829
12830 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
12831 (Conditional Expressions, Logical Operators)
12832 (Statement and operand traversals): Do not indent smallexample
12833 code. Fix duplicate function argument in example.
12834
2e5e346d
JL
128352011-01-10 Jeff Law <law@redhat.com>
12836
1ee3ea05 12837 PR tree-optimization/47141
2e5e346d
JL
12838 * ipa-split.c (split_function): Handle case where we are
12839 returning a value and the return block has a virtual operand phi.
12840
cf9712cc
JH
128412011-01-10 Jan Hubicka <jh@suse.cz>
12842
1c3ba85b 12843 PR tree-optimization/47234
cf9712cc
JH
12844 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
12845 (pass_feedback_split_functions): Declare.
12846 * passes.c (init_optimization_passes): Add ipa-split as subpass of
12847 tree-profile.
12848 * ipa-split.c (gate_split_functions): Update comments; disable
12849 split-functions for profile_arc_flag and branch_probabilities.
12850 (gate_feedback_split_functions): New function.
12851 (execute_feedback_split_functions): New function.
12852 (pass_feedback_split_functions): New global var.
12853
94cd932c
L
128542011-01-10 H.J. Lu <hongjiu.lu@intel.com>
12855
12856 PR lto/46760
12857 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
12858 calling gimple_call_set_cannot_inline.
12859
fbbfcaf1
IS
128602011-01-10 Iain Sandoe <iains@gcc.gnu.org>
12861
12862 * config/darwin-sections.def: Remove unused section.
12863
d06865bf
DK
128642011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
12865
12866 PR c++/47218
12867 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
12868
96bbfbac
NP
128692011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
12870
12871 PR objc/47232
12872 * c-parser.c (c_parser_declaration_or_fndef): Improved
12873 error message.
12874
1ba6516f
KT
128752011-01-09 Kai Tietz <kai.tietz@onevision.com>
12876
12877 * config/i386/winnt.c (i386_pe_start_function): Make sure
12878 to switch back to function's section.
12879
0c5d770e
IS
128802011-01-09 Iain Sandoe <iains@gcc.gnu.org>
12881
12882 PR gcc/46902
12883 PR testsuite/46912
12884 * plugin.c: Move include of dlfcn.h from here...
12885 * system.h: ... to here.
12886
128872011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
12888
12889 * doc/cpp.texi (C++ Named Operators): Fix markup for header
12890 file name.
12891 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
12892 two extra empty pages in PDF output.
12893
046608a3
NP
128942011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
12895
12896 PR objc/47078
12897 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
12898 for error recovery purposes behave as if it was not specified so
12899 that the default type is usd.
12900
8cb114b9
JH
129012011-01-07 Jan Hubicka <jh@suse.cz>
12902
12903 PR tree-optmization/46469
12904 * ipa.c (function_and_variable_visibility): Clear needed flags on
12905 nodes with external decls; handle weakrefs merging correctly.
12906
b294a75e
JM
129072011-01-07 Joseph Myers <joseph@codesourcery.com>
12908
12909 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
12910 not false.
12911
96bdf9b4
JH
129122011-01-07 Jan Hubicka <jh@suse.cz>
12913
f60c2554 12914 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
12915 and no longer claim that gold is required for linker plugin.
12916 * configure: Regenerate.
12917 * gcc.c (PLUGIN_COND): New macro.
12918 (LINK_COMMAND_SPEC): Use it.
12919 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
12920 * config.in (HAVE_LTO_PLUGIN): New.
12921 * configure.ac (--with-lto-plugin): New parameter; autodetect
12922 HAVE_LTO_PLUGIN.
12923
17afc0fe
JH
129242011-01-07 Jan Hubicka <jh@suse.cz>
12925
12926 PR tree-optimization/46367
12927 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
12928 when we can update original.
12929 (cgraph_mark_inline_edge): Sanity check.
12930 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
12931
d4c48c0f
UW
129322011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12933
12934 * config/spu/spu.h (ASM_COMMENT_START): Define.
12935
96f5b137
L
129362011-01-07 H.J. Lu <hongjiu.lu@intel.com>
12937
12938 PR driver/42445
12939 * gcc.c (%>S): New.
12940 (SWITCH_KEEP_FOR_GCC): Likewise.
12941 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
12942 (do_spec_1): Handle "%>".
12943
12944 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
12945
c6a8f6de
JJ
129462011-01-07 Jakub Jelinek <jakub@redhat.com>
12947
c21bbd7a
JJ
12948 PR target/47201
12949 * config/i386/i386.c (ix86_delegitimize_address): If
12950 simplify_gen_subreg fails, return orig_x.
12951
c6a8f6de
JJ
12952 PR bootstrap/47187
12953 * value-prof.c (gimple_stringop_fixed_value): Handle
12954 lhs of the call properly.
12955
fe95fbf9
JH
129562011-01-07 Jan Hubicka <jh@suse.cz>
12957
12958 PR lto/45375
12959 * lto-opt.c (lto_reissue_options): Set flag_shlib.
12960
14d11d40
IS
129612011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12962
72e961c8
EB
12963 * target.def (function_switched_text_sections): New hook.
12964 * doc/tm.texi: Regenerated.
12965 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12966 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
12967 (final_scan_insn): Call function_switched_text_sections when a
12968 mid-function section change occurs.
14d11d40 12969 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
12970 * config/darwin-protos.h (darwin_function_switched_text_sections):
12971 Likewise.
14d11d40 12972 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 12973 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12974
0b764288
IS
129752011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12976
12977 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
12978 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
12979 the secondary code fragment when outputting for DWARF == 2.
12980
2ac6bb04
AS
129812011-01-07 Anatoly Sokolov <aesok@post.ru>
12982
12983 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12984 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
12985 Remove.
12986 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
12987 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12988
9f82de11
EB
129892011-01-06 Eric Botcazou <ebotcazou@adacore.com>
12990
12991 PR debug/46704
280d9630
EB
12992 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
12993 when it is not empty.
9f82de11
EB
12994
129952011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 12996
1ed72abf 12997 Bobcat Enablement
14b52538 12998 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 12999 (case ${target}): Add btver1.
14b52538 13000 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 13001 -march=native recognize btver1 processors.
14b52538 13002 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 13003 btver1 def_and_undef
14b52538 13004 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
13005 btver1 cost table.
13006 (m_BTVER1): New definition.
13007 (m_AMD_MULTIPLE): Includes m_BTVER1.
13008 (initial_ix86_tune_features): Add btver1 tune.
13009 (processor_target_table): Add btver1 entry.
13010 (static const char *const cpu_names): Add btver1 entry.
13011 (software_prefetching_beneficial_p): Add btver1.
13012 (ix86_option_override_internal): Add btver1 instruction sets.
13013 (ix86_issue_rate): Add btver1.
13014 (ix86_adjust_cost): Add btver1.
14b52538 13015 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
13016 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
13017 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
13018 * config/i386/i386.md (define_attr "cpu"): Add btver1.
13019
e1a973d8
RO
130202011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13021
13022 PR target/43309
13023 * config/i386/i386.c (legitimize_tls_address)
13024 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
13025 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
13026 (tls_initial_exec_64_sun): New pattern.
13027
c73f67c5
GP
130282011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
13029
13030 * doc/invoke.texi (Overall Options): Improve wording and markup
13031 of the description of -wrapper.
13032
bc4c6f9c
JM
130332011-01-06 Joseph Myers <joseph@codesourcery.com>
13034
13035 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
13036 rdynamic, threads): New Driver options.
13037
adb75db0
RO
130382011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13039
13040 PR target/38118
13041 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
13042 if coming from .tdata.
13043 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
13044
402c1cb4
JH
130452011-01-06 Jan Hubicka <jh@suse.cz>
13046
13047 PR lto/47188
13048 * collect2.c (main): Do not enable LTOmode when plugin is active.
13049
a4da6485
RO
130502011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13051
13052 PR other/45915
13053 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
13054 --version output if supported.
13055 * configure: Regenerate.
13056
028dbdf4
JM
130572011-01-06 Joseph Myers <joseph@codesourcery.com>
13058
13059 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
13060 Driver options.
13061
dfe776dd
JJ
130622011-01-06 Jakub Jelinek <jakub@redhat.com>
13063
13064 PR c/47150
13065 * c-convert.c (convert): When converting a complex expression
13066 other than COMPLEX_EXPR to a different complex type, ensure
13067 c_save_expr is called instead of save_expr, unless in_late_binary_op.
13068 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
13069 when converting COMPLEX_TYPE.
13070
210dedfe
IR
130712011-01-06 Ira Rosen <irar@il.ibm.com>
13072
13073 PR tree-optimization/47139
13074 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
13075 only the last reduction value is used outside the loop. Update
13076 documentation.
13077
cd33a412
JM
130782011-01-05 Joseph Myers <joseph@codesourcery.com>
13079
13080 * config/rtems.opt: New.
13081 * config.gcc (*-*-rtems*): Use rtems.opt.
13082
819edd94
CF
130832011-01-05 Changpeng Fang <changpeng.fang@amd.com>
13084
13085 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
13086 processors do not support 3DNow instructions.
13087
dc242c4a
UW
130882011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13089
13090 * config/spu/spu.c (spu_option_override): Set parameter
13091 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
13092
be286227
JH
130932011-01-05 Jan Hubicka <jh@suse.cz>
13094
13095 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
13096 at the command line.
13097
644e637f
MJ
130982011-01-05 Martin Jambor <mjambor@suse.cz>
13099
13100 PR lto/47162
13101 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
13102 deltas on streamed outgoing edges.
13103 (output_node_opt_summary): Output info for outgoing edges only when
13104 the node is in new parameter set.
13105 (output_cgraph_opt_summary): New parameter set, passed to the two
13106 aforementioned functions. Update its forward declaration and its
13107 callee too.
13108
7bd11157
TT
131092011-01-05 Tom Tromey <tromey@redhat.com>
13110
13111 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
13112 operator to c_finish_omp_atomic.
13113 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
13114 (build_unary_op): Update.
13115 (build_modify_expr): Update.
13116 (build_asm_expr): Update.
13117
f626b979
UW
131182011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13119
13120 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
13121 newly inserted insns.
13122 (pad_bb): Likewise.
13123 (spu_emit_branch_hint): Likewise.
13124 (insert_hbrp_for_ilb_runout): Likewise.
13125 (spu_machine_dependent_reorg): Call df_finish_pass after
13126 schedule_insns returns.
13127
4c825c02
UW
131282011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13129
13130 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
13131
5e9fba51
EB
131322011-01-05 Eric Botcazou <ebotcazou@adacore.com>
13133
13134 PR tree-optimization/47005
13135 * tree-sra.c (struct access): Add 'non_addressable' bit.
13136 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
13137 (decide_one_param_reduction): Return 0 if the parameter is passed by
13138 reference and one of the accesses in the group is non_addressable.
13139
3ebb5ca6
EB
131402011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13141
13142 PR tree-optimization/47056
13143 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
13144 (mark_load): Likewise. Handle FUNCTION_DECL specially.
13145 (mark_store): Likewise. Pass STMT to ipa_record_reference.
13146
d5d4d14e
EB
131472011-01-04 Eric Botcazou <ebotcazou@adacore.com>
13148
13149 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
13150 initializer. Skip view conversions from aggregate types.
13151
d996ef70
KT
131522011-01-04 Kai Tietz <kai.tietz@onevision.com>
13153
13154 PR bootstrap/47055
13155 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
13156
509d65dd 131572011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
13158
13159 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
13160 obvious typo.
13161
55c623b5
UW
131622011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13163
13164 * function.c (thread_prologue_and_epilogue_insns): Do not crash
13165 on empty epilogue sequences.
13166
b98d6b35
JM
131672011-01-04 Joseph Myers <joseph@codesourcery.com>
13168
13169 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
13170 non-static): New Driver options.
13171
a0d43bac
JZ
131722011-01-04 Jie Zhang <jie@codesourcery.com>
13173
13174 PR driver/47137
13175 * gcc.c (default_compilers[]): Set combinable field to 0
13176 for all assembly languages.
13177
2b18eb32
MX
131782011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
13179
13180 * config/mips/loongson3a.md: New file.
13181 * config/mips/mips.md: Include loongson3a.md.
13182 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
13183 TUNE_LOONGSON_3A.
13184
42a48c4f
EB
131852011-01-03 Eric Botcazou <ebotcazou@adacore.com>
13186
13187 PR middle-end/47017
13188 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
13189 instead of convert_memory_address_addr_space on the base expression.
13190
9c1732c4
UW
131912011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13192
13193 * config/spu/spu.c (spu_option_override): Update error text
13194 for bad -march= / -mtune= values.
13195
aa474365
UW
131962011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13197
13198 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
13199 if branch-hint optimization will be performed.
13200
9766135b
JJ
132012011-01-03 Jakub Jelinek <jakub@redhat.com>
13202
371556ee
JJ
13203 PR tree-optimization/47148
13204 * ipa-split.c (split_function): Convert arguments to
13205 DECL_ARG_TYPE if possible.
13206
1ac12fa2
JJ
13207 PR tree-optimization/47155
13208 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
13209 when computing uns.
13210
9766135b
JJ
13211 PR rtl-optimization/47157
13212 * combine.c (try_combine): If undobuf.other_insn becomes
13213 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
13214 and set *new_direct_jump_p too.
13215
f4a2e571
SP
132162011-01-03 Sebastian Pop <sebastian.pop@amd.com>
13217
13218 PR tree-optimization/47021
13219 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
13220
9f8e43c0
JJ
132212011-01-03 Jakub Jelinek <jakub@redhat.com>
13222
13223 * gcc.c (process_command): Update copyright notice dates.
13224 * gcov.c (print_version): Likewise.
13225 * gcov-dump.c (print_version): Likewise.
13226 * mips-tfile.c (main): Likewise.
13227 * mips-tdump.c (main): Likewise.
13228
1a2e38f3
MJ
132292011-01-03 Martin Jambor <mjambor@suse.cz>
13230
13231 PR tree-optimization/46801
13232 * tree-sra.c (type_internals_preclude_sra_p): Check whether
13233 aggregate fields start at byte boundary instead of the bit-field flag.
13234
56b721c5
L
132352011-01-03 H.J. Lu <hongjiu.lu@intel.com>
13236
13237 PR driver/47137
13238 * gcc.c (main): Revert revision 168407.
13239
839d549b
MJ
132402011-01-03 Martin Jambor <mjambor@suse.cz>
13241
13242 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
13243
4ce99a20 132442011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
13245
13246 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
13247 vector optab to expand vector/scalar shift, update gimple to vector.
13248
76df0ae6
MJ
132492011-01-03 Martin Jambor <mjambor@suse.cz>
13250
13251 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
13252 a thunk.
13253
ce47fda3
MJ
132542011-01-03 Martin Jambor <mjambor@suse.cz>
13255
13256 PR tree-optimization/46984
13257 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
13258 HOST_WIDE_INT.
13259 (cgraph_create_indirect_edge): Fixed line length.
13260 (cgraph_indirect_call_info): Declare.
13261 (cgraph_make_edge_direct) Update declaration.
13262 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
13263 (cgraph_create_indirect_edge): Use it.
13264 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
13265 callees.
13266 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
13267 the new thunk_delta representation.
13268 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
13269 HOST_WIDE_INT.
13270 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
13271 (ipa_read_indirect_edge_info): Likewise.
13272 * lto-cgraph.c (output_edge_opt_summary): New function.
13273 (output_node_opt_summary): Call it on all outgoing edges.
13274 (input_edge_opt_summary): New function.
13275 (input_node_opt_summary): Call it on all outgoing edges.
13276
1e67fa1f
L
132772011-01-02 H.J. Lu <hongjiu.lu@intel.com>
13278
13279 PR driver/47137
13280 * gcc.c (main): Don't check have_o when settting combine_inputs.
13281
6656b2ac
EB
132822011-01-02 Eric Botcazou <ebotcazou@adacore.com>
13283
13284 * regrename.c: Add general comment describing the pass.
13285 (struct du_head): Remove 'length' field.
13286 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
13287 (regrename_optimize): Do not sort chains. Rework comments, add others.
13288 Force renaming to the preferred class (if any) in the first pass and do
13289 not consider registers that belong to it in the second pass.
13290 (create_new_chain): Do not set 'length' field.
13291 (scan_rtx_reg): Likewise.
13292
bc470c24
JJ
132932011-01-02 Jakub Jelinek <jakub@redhat.com>
13294
4e996296
JJ
13295 PR tree-optimization/47140
13296 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
13297 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
13298 to bit_value_binop.
13299
bc470c24 13300 PR rtl-optimization/47028
6656b2ac
EB
13301 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
13302 parm_birth_insn instead of at the beginning of first bb.
bc470c24 13303
5af62fcd 133042011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
13305
13306 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
13307 Remove the word "see" before "@pxref".
13308 * doc/rtl.texi: Remove the word "see" before "@pxref".
13309
0e20c89f
JH
133102011-01-01 Jan Hubicka <jh@suse.cz>
13311
6656b2ac
EB
13312 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
13313 memory.
0e20c89f 13314
220e83ca
KT
133152011-01-01 Kai Tietz <kai.tietz@onevision.com>
13316
13317 PR target/38662
6656b2ac 13318 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 13319
ad41bd84 13320\f
797103eb 13321Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
13322
13323Copying and distribution of this file, with or without modification,
13324are permitted in any medium without royalty provided the copyright
13325notice and this notice are preserved.