1 2011-07-09 Richard Henderson <rth@redhat.com>
3 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
5 * dwarf2out.c: ... here.
6 (output_all_cfis): Remove.
7 (dwarf2out_switch_text_section): Use output_cfis directly.
8 (size_of_locs): Export.
9 (output_loc_sequence, output_loc_sequence_raw): Export.
10 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
11 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
12 output_cfa_loc_raw): Move to ...
13 * dwarfcfi.c: ... here.
14 * dwarf2out.h: Update decls.
16 2011-07-09 Richard Henderson <rth@redhat.com>
18 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
19 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
20 * dwarf2cfi.c: ... here.
21 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
22 (DWARF_ROUND, DWARF_CIE_ID): Remove.
23 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
24 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
25 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
27 2011-07-09 Richard Henderson <rth@redhat.com>
29 * dwarf2cfi.c (cie_return_save): New.
30 (queue_reg_save): Use compare_reg_or_pc.
31 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
32 (dwarf2out_frame_debug_expr): Likewise.
33 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
34 (initial_return_save): Likewise.
35 (execute_dwarf2_frame): Save and restore initial return save from
37 * config/mips/mips.c (mips_frame_set): Remove special case for
38 DWARF_FRAME_RETURN_COLUMN.
40 2011-07-09 Richard Henderson <rth@redhat.com>
42 * dwarf2cfi.c (lookup_cfa): Remove.
43 (execute_dwarf2_frame): Assert queues are empty on entry.
44 Setup initial cfa directly, not via lookup_cfa.
45 Don't clear args_size state here.
47 2011-07-09 Richard Henderson <rth@redhat.com>
49 * dwarf2cfi.c (add_cfi_vec): New.
50 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
51 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
52 (execute_dwarf2_frame): Set add_cfi_vec.
54 2011-07-09 Richard Henderson <rth@redhat.com>
56 * defaults.h (ASM_COMMENT_START): Move here...
57 * dwarf2asm.c: ... from here.
58 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
59 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
62 2011-07-09 Richard Henderson <rth@redhat.com>
65 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
66 (create_cfi_notes): ... do it here instead.
68 2011-07-09 Jakub Jelinek <jakub@redhat.com>
71 * dwarf2out.c (size_of_int_loc_descriptor): New function.
72 (address_of_int_loc_descriptor): Use it.
73 (scompare_loc_descriptor): Optimize EQ/NE comparison with
76 2011-07-09 Richard Henderson <rth@redhat.com>
78 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
79 (prologue, epilogue): New.
81 (blockage, setd, seti): New.
82 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
83 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
84 (pdp11_saved_regno): New.
85 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
86 generate rtl instead of text.
87 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
88 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
89 * config/pdp11/pdp11-protos.h: Update.
91 2011-07-09 Richard Henderson <rth@redhat.com>
93 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
94 try to insert an rtl prologue here.
95 (rs6000_output_function_epilogue): Similarly.
96 * config/rs6000/rs6000.md (prologue): Emit a barrier to
97 satisfy !TARGET_SCHED_PROLOG.
98 (epilogue, sibcall_epilogue): Likewise.
100 2011-07-09 Eric Botcazou <ebotcazou@adacore.com>
102 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
104 (IN_OR_GLOBAL_P): Likewise.
106 2011-07-08 Jason Merrill <jason@redhat.com>
109 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
112 * cgraph.c (cgraph_add_to_same_comdat_group): New.
113 * cgraph.h: Declare it.
114 * ipa.c (function_and_variable_visibility): Make sure thunks
115 have the right visibility.
117 2011-07-08 Richard Henderson <rth@redhat.com>
120 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
121 any tablejump vector.
124 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
127 2011-07-08 Jakub Jelinek <jakub@redhat.com>
130 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
131 CONST0_RTX (dest_mode) instead of const0_rtx as second operand
133 * config/rs6000/vector.md (vector_select_<mode>,
134 vector_select_<mode>_uns): Change second operand of NE to
135 CONST0_RTX (<MODE>mode) instead of const0_rtx.
136 * config/rs6000/altivec.md (*altivec_vsel<mode>,
137 *altivec_vsel<mode>_uns): Expect second operand of NE to be
138 zero_constant of the corresponding vector mode.
139 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
142 2011-07-08 Sebastian Pop <sebastian.pop@amd.com>
144 * graphite-dependences.c (build_alias_set_powerset): Remove
145 continue from loop, add one more assert.
147 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
150 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
151 In particular, allow 8-bit values in r28 and r29.
152 (avr_hard_regno_scratch_ok): Disallow any register that might be
153 part of the frame pointer.
154 (avr_hard_regno_rename_ok): Same.
155 (avr_legitimate_address_p): Don't allow SUBREGs.
157 2011-07-08 Julian Brown <julian@codesourcery.com>
159 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
161 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
162 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
163 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
164 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
165 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
166 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
167 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
168 registers in big-endian mode.
170 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
172 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
174 (write_attr_value): Write a cast if necessary.
176 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
177 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
178 (REG_WORDS_BIG_ENDIAN): Document.
179 * doc/tm.texi: Regenerate.
180 * reload.c (operands_match_p): Take it into account.
181 (reload_adjust_reg_for_mode): Likewise.
182 * rtlanal.c (subreg_get_info): Likewise.
184 2011-07-08 Richard Guenther <rguenther@suse.de>
186 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
189 2011-07-08 Kai Tietz <ktietz@redhat.com>
191 * fold-const.c (fold_truth_andor): Factored out truth_andor
192 label from fold_binary as function.
193 (fold_binary_loc): Replace truth_andor lable
194 by function fold_truth_andor.
196 2011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
199 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
200 check if address is stored in register. If so - give up.
201 (check_sibcall_argument_overlap_1): Do not perform check of
202 overlapping when it is call to address.
204 2011-07-08 Georg-Johann Lay <avr@gjlay.de>
206 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
209 2011-07-08 Bernd Schmidt <bernds@codesourcery.com>
211 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
212 GET_MODE_BITSIZE where appropriate.
213 (widen_leading, expand_parity, expand_ctz, expand_ffs,
214 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
215 expand_float, expand_fix): Likewise.
216 * expr.c (convert_move, convert_modes, expand_expr_real_2,
217 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
218 * stor-layout.c (get_mode_bounds): Likewise.
219 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
221 * convert.c (convert_to_integer): Likewise.
222 * expmed.c (expand_shift_1): Likewise.
224 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
227 * optabs.c (expand_binop): Tighten conditions for doubleword
229 (widen_bswap): Assert that mode bitsize and precision are the
231 * stor-layout.c (get_best_mode): Skip modes that have lower
232 precision than bitsize.
233 * recog.c (simplify_while_replacing): Assert that bitsize and
234 precision are the same.
236 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
238 * Makefile.in (LIBGCOV): Remove.
239 (libgcc.mvars): Remove LIBGCOV.
240 * libgov.c: Move to ../libgcc.
242 2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
244 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
246 2011-07-08 Martin Jambor <mjambor@suse.cz>
248 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
249 is too big for total scalarization.
251 2011-07-07 Richard Henderson <rth@redhat.com>
253 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
254 (DBX_DEBUGGING_INFO): Undef.
256 2011-07-07 Richard Henderson <rth@redhat.com>
258 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
259 Handle some opcodes specially for debugging.
260 * print-rtl.c: Include dwarf2out.h
261 (print_rtx): Handle NOTE_INSN_CFI.
262 * Makefile.in (print-rtl.o): Update.
264 2011-07-07 Richard Henderson <rth@redhat.com>
266 * tree-pass.h (pass_dwarf2_frame): Declare.
267 * passes.c (init_optimization_passes): Add it.
268 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
269 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
270 make static, do not call add_cfis_to_fde.
271 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
272 dwarf2out_frame_init): Merge into...
273 (execute_dwarf2_frame): ... here. New function.
274 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
275 saved_do_cfi_asm to a tri-state variable.
276 (gate_dwarf2_frame, pass_dwarf2_frame): New.
277 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
278 if it has yet to be done. Don't call dwarf2cfi_function_init.
279 * dwarf2out.h, debug.h: Update decls.
280 * final.c (final_start_function): Don't call
281 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
282 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
283 * toplev.c (lang_dependent_init): Likewise.
285 2011-07-07 Richard Henderson <rth@redhat.com>
287 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
288 FDE_TABLE_INCREMENT): Replace with...
289 (fde_vec): ... this, a new vector.
290 (current_fde): Remove. Replace all users with cfun->fde.
291 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
292 (size_of_aranges, dwarf2out_finish): Likewise.
293 (dwarf2out_alloc_current_fde): Break out from ...
294 (dwarf2out_begin_prologue): ... here.
295 (dwarf2out_frame_init): Remove.
296 * dwarf2cfi.c: Update all users of current_fde.
297 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
298 * dwarf2out.h: Update decls.
299 (dw_fde_node): Add fde_index member.
300 * function.h (struct function): Add fde member.
302 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
303 Richard Henderson <rth@redhat.com>
305 * dwarf2cfi.c (add_cfi): Remove.
306 (dwarf2out_cfi_label): Remove force argument. Only generate the
308 (add_fde_cfi): Simplify the different code paths.
310 (old_cfa, old_cfa_remember): New.
311 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
312 (last_reg_save_label): Remove.
313 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
314 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
315 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
316 dwarf2out_frame_debug_cfa_expression,
317 dwarf2out_frame_debug_cfa_restore,
318 dwarf2out_frame_debug_cfa_window_save,
319 dwarf2out_frame_debug_expr): Remove label parameter.
320 (cfi_label_required_p, add_cfis_to_fde): New.
321 (dwarf2out_frame_debug_after_prologue): New.
322 (dwarf2cfi_frame_init): Initialize old_cfa.
323 (dwarf2out_frame_debug_restore_state): Likewise.
324 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
325 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
326 * final.c (final_start_function): Call
327 dwarf2out_frame_debug_after_prologue.
329 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
330 Richard Henderson <rth@redhat.com>
332 * dwarf2cfi.c (cfi_insn): New.
333 (dwarf2out_cfi_label): Don't emit cfi label here.
334 (add_fde_cfi): Create a NOTE_INSN_CFI.
335 (dwarf2out_frame_debug): Setup cfi_insn.
336 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
337 (dwarf2out_cfi_begin_epilogue): Make static.
338 (dwarf2out_frame_debug_restore_state): Make static.
339 * dwarf2out.c (output_cfi_directive): Make static.
340 (dwarf2out_emit_cfi): New.
341 * dwarf2out.h: Update.
342 * final.c (final): Remove CFI notes.
343 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
344 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
345 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
346 * insn-notes.def (NOTE_INSN_CFI): New.
347 (NOTE_INSN_CFI_LABEL): New.
348 * rtl.h (union rtunion_def): Add rt_cfi member.
349 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
351 2011-07-07 Richard Henderson <rth@redhat.com>
353 * dwarf2cfi.c: New file.
354 * Makefile.in (OBJS): Add it.
355 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
356 * gengtype.c (open_base_files): Include dwarf2out.h.
357 * coretypes.h (enum var_init_status): Move from ...
359 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
360 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
361 expand_builtin_dwarf_sp_column, init_return_column_size,
362 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
363 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
364 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
365 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
366 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
367 compute_barrier_args_size, dwarf2out_args_size,
368 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
369 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
370 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
371 queue_reg_save, dwarf2out_flush_queued_reg_saves,
372 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
373 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
374 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
375 dwarf2out_frame_debug_cfa_expression,
376 dwarf2out_frame_debug_cfa_restore,
377 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
378 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
379 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
380 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
381 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
382 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
383 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
384 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
385 dw_loc_descr_node): Move to dwarf2out.h.
386 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
387 mem_loc_descriptor): Export.
388 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
389 (dwarf2out_frame_init): Extract CIE generation code to
390 dwarf2cfi_frame_init.
392 2011-07-07 Eric Botcazou <ebotcazou@adacore.com>
395 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
396 MASK_V8PLUS, remove commented out flag and reorder.
398 2011-07-07 Jakub Jelinek <jakub@redhat.com>
401 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
402 one non-complex and one complex argument, call c_save_expr on both
405 2011-07-07 Martin Jambor <mjambor@suse.cz>
408 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
409 (verify_cgraph_node): Some functinality moved to
410 verify_edge_corresponds_to_fndecl, call it.
412 2011-07-07 Joseph Myers <joseph@codesourcery.com>
414 * config.gcc (*local*): Remove.
415 * doc/install-old.texi: Don't mention local configurations.
417 2011-07-07 Jakub Jelinek <jakub@redhat.com>
420 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
421 referencing debug insns that have been reset.
422 (dead_debug_insert_before): Don't assert reg is non-NULL,
423 instead return immediately if it is NULL.
425 2011-07-07 Joseph Myers <joseph@codesourcery.com>
427 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa:
430 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
432 * hw-doloop.c: New file.
433 * hw-doloop.h: New file.
434 * Makefile.in (OBJS): Add hw-doloop.o.
435 (hw-doloop.o): New rule.
436 ($(obj_out_file)): Add hw-doloop.h dependency.
437 * config/bfin/bfin.c: Include "hw-doloop.h".
438 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
439 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
440 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
441 type changed to hwloop_info. Return bool, true if the loop was
442 successfully optimized. Remove code that was moved to
443 hw-doloop.c, and adjust other parts.
444 (hwloop_fail): New static function, containing parts that used
445 to be in bfin_optimize_loop.
446 (bfin_discover_loop, bfin_discover_loops, free_loops,
447 bfin_reorder_loops): Remove.
448 (hwloop_pattern_reg): New static function.
449 (bfin_doloop_hooks): New variable.
450 (bfin_reorg_loops): Remove most code, call reorg_loops.
451 * config/bfin/bfin.md (doloop_end splitter): Also enable if
452 loop counter is a memory_operand.
454 2011-07-07 H.J. Lu <hongjiu.lu@intel.com>
456 * config.gcc: Support --with-multilib-list for x86 Linux
459 * configure.ac: Mention x86-64 for --with-multilib-list.
460 * configure: Regenerated.
462 * config/i386/gnu-user64.h (SPEC_64): Support x32.
464 (ASM_SPEC): Likewise.
465 (LINK_SPEC): Likewise.
466 (TARGET_THREAD_SSP_OFFSET): Likewise.
467 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
470 * config/i386/i386.h (TARGET_X32): New.
472 (LONG_TYPE_SIZE): Likewise.
473 (POINTER_SIZE): Likewise.
474 (POINTERS_EXTEND_UNSIGNED): Likewise.
475 (OPT_ARCH64): Support x32.
476 (OPT_ARCH32): Likewise.
478 * config/i386/i386.opt (mx32): New.
480 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
481 (GLIBC_DYNAMIC_LINKERX32): Likewise.
482 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
483 (GLIBC_DYNAMIC_LINKERX32): Likewise.
485 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
486 (BIONIC_DYNAMIC_LINKERX32): Likewise.
487 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
489 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
491 * doc/install.texi: Document --with-multilib-list for
494 * doc/invoke.texi: Document -mx32.
496 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
498 * doc/invoke.texi (mwords-little-endian): Deprecate.
499 * config/arm/arm.opt (mwords-little-endian): Likewise.
500 * config/arm/arm.c (arm_option_override): Warn about the deprecation
501 of -mwords-little-endian.
503 2011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
505 * reload1.c (choose_reload_regs): Use mode sizes to check whether
506 an old reload register completely defines the required value.
508 2011-07-07 Richard Guenther <rguenther@suse.de>
510 * fold-const.c (fold_unary_loc): Do not strip sign-changes
513 2011-07-07 Richard Guenther <rguenther@suse.de>
515 * tree-vrp.c (simplify_conversion_using_ranges): New function.
516 (simplify_stmt_using_ranges): Call it.
518 2011-07-07 Kai Tietz <ktietz@redhat.com>
520 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
521 (lookup_logical_inverted_value): Likewise.
522 (simplify_bitwise_binary_1): Likewise.
523 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
525 2011-07-07 Joseph Myers <joseph@codesourcery.com>
527 * gcc.c (%[Spec]): Don't document.
528 (struct spec_list): Update comment.
529 (do_spec_1): Don't handle %[Spec].
530 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
532 2011-07-07 Joseph Myers <joseph@codesourcery.com>
534 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
535 default based on TARGET_ASM_NAMED_SECTION.
536 * common/common-target.def (have_named_sections): Default to true.
537 * common/config/default-common.c: Don't include tm.h.
538 * common/config/picochip/picochip-common.c
539 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
540 * common/config/m32c/m32c-common.c: Remove.
541 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
542 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to
544 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
546 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
548 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
549 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
551 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
554 2011-07-07 Jakub Jelinek <jakub@redhat.com>
557 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
558 operands and last COMPONENT_REF operand call gimplify_expr on it
561 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
564 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
566 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
569 * configure.ac (gcc_cv_as_hidden): Also accept
570 x86_64-*-solaris2.1[0-9]*.
571 (gcc_cv_as_cfi_directive): Likewise.
572 (gcc_cv_as_comdat_group_group): Likewise.
573 (set_have_as_tls): Likewise.
574 * configure: Regenerate.
575 * config.gcc (i[34567]86-*-solaris2*): Also handle
576 x86_64-*-solaris2.1[0-9]*.
577 * config.host (i[34567]86-*-solaris2*): Likewise.
578 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
579 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
580 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
581 (TARGET_LD_EMULATION): Use it.
582 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
583 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
584 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
585 (ASM_CPU64_DEFAULT_SPEC): Define.
586 (ASM_CPU_SPEC): Use %(asm_cpu_default).
587 (ASM_SPEC): Redefine.
588 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
589 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
590 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*):
592 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
594 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
596 2011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
598 * config/sol2.h (ASM_SPEC): Split into ...
599 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
600 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
601 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
602 (ASM_SPEC): Use ASM_SPEC_BASE.
603 * config/sparc/sol2.h (ASM_SPEC): Redefine.
605 2011-07-07 Georg-Johann Lay <avr@gjlay.de>
607 * config/avr/avr.md (*reload_insi): Change predicate #1 to
608 const_int_operand. Ditto for peep2 producing this insn.
609 Add argument to output_reload_insisf call.
610 (*movsi,*movsf): Add argument to output_movsisf call.
611 (*reload_insf): New insn and new peep2 to produce it.
612 * config/avr/avr-protos.h (output_movsisf): Change prototype.
613 (output_reload_insisf): Change prototype.
614 * config/avr/avr.c (avr_asm_len): New function.
615 (output_reload_insisf): Rewrite.
616 (output_movsisf): Change prototype. output_reload_insisf for
617 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
618 (adjust_insn_length): Add argument to output_movsisf and
619 output_reload_insisf call.
621 2011-07-07 Bernd Schmidt <bernds@codesourcery.com>
623 * emit-rtl.c (paradoxical_subreg_p): New function.
624 * rtl.h (paradoxical_subreg_p): Declare.
625 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
626 apply_distributive_law, simplify_comparison, simplify_set): Use it.
627 * cse.c (record_jump_cond, cse_insn): Likewise.
628 * expr.c (force_operand): Likewise.
629 * rtlanal.c (num_sign_bit_copies1): Likewise.
630 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
631 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
632 (push_reload): Use precision to check for paradoxical subregs.
633 * expmed.c (extract_bit_field_1): Likewise.
635 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
636 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
637 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
638 simplify_set, simplify_logical, expand_compound_operation,
639 make_extraction, force_to_mode, if_then_else_cond, extended_count,
640 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
641 record_value_for_reg): Likewise.
642 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
643 * simplify-rtx. c (simplify_unary_operation_1,
644 simplify_binary_operation_1, simplify_const_relational_operation):
647 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
648 instead of GET_MODE_BITSIZE where appropriate.
649 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
650 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
651 init_num_sign_bit_copies_in_rep): Likewise.
652 * cse.c (fold_rtx, cse_insn): Likewise.
653 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
654 * simplify-rtx.c (simplify_unary_operation_1,
655 simplify_const_unary_operation, simplify_binary_operation_1,
656 simplify_const_binary_operation, simplify_ternary_operation,
657 simplify_const_relational_operation, simplify_subreg): Likewise.
658 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
659 simplify_if_then_else, simplify_set, expand_compound_operation,
660 expand_field_assignment, make_extraction, if_then_else_cond,
661 make_compound_operation, force_to_mode, make_field_assignment,
662 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
663 extended_count, try_widen_shift_mode, simplify_shift_const_1,
664 simplify_comparison, record_promoted_value, simplify_compare_const,
665 record_dead_and_set_regs_1): Likewise.
668 * simplify-rtx.c (simplify_const_binary_operation): Use the
669 shift_truncation_mask hook instead of performing modulo by
670 width. Compare against mode precision, not bitsize.
671 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
672 Use shift_truncation_mask instead of constructing the value
675 2011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
677 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
679 (rs6000_save_toc_in_prologue_p): Ditto.
681 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
682 up the static chain (r11) during indirect function calls.
683 (-msave-toc-indirect): New undocumented debug switch.
685 * config/rs6000/rs6000.c (struct machine_function): Add
686 save_toc_in_prologue field to note whether the prologue needs to
687 save the TOC value in the reserved stack location.
688 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
689 to save the TOC in the prologue, do so.
690 (rs6000_trampoline_init): Don't allow creating AIX style
691 trampolines if -mno-r11 is in effect.
692 (rs6000_call_indirect_aix): New function to create AIX style
693 indirect calls, adding support for -mno-r11 to suppress loading
694 the static chain, and saving the TOC in the prologue instead of
696 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
699 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
702 (STATIC_CHAIN_REGNUM): Ditto.
703 (ARG_POINTER_REGNUM): Ditto.
704 (SFP_REGNO): Delete, unused.
705 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
706 function descriptor offsets.
707 (TOC_SAVE_OFFSET_64BIT): Ditto.
708 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
709 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
710 (AIX_FUNC_DESC_SC_32BIT): Ditto.
711 (AIX_FUNC_DESC_SC_64BIT): Ditto.
712 (ptrload): New mode attribute for the appropriate load of a
714 (call_indirect_aix32): Delete, rewrite AIX indirect function
716 (call_indirect_aix64): Ditto.
717 (call_value_indirect_aix32): Ditto.
718 (call_value_indirect_aix64): Ditto.
719 (call_indirect_nonlocal_aix32_internal): Ditto.
720 (call_indirect_nonlocal_aix32): Ditto.
721 (call_indirect_nonlocal_aix64_internal): Ditto.
722 (call_indirect_nonlocal_aix64): Ditto.
723 (call): Rewrite AIX indirect function calls. Add support for
724 eliminating the static chain, and for moving the save of the TOC
725 to the function prologue.
727 (call_indirect_aix<ptrsize>): Ditto.
728 (call_indirect_aix<ptrsize>_internal): Ditto.
729 (call_indirect_aix<ptrsize>_internal2): Ditto.
730 (call_indirect_aix<ptrsize>_nor11): Ditto.
731 (call_value_indirect_aix<ptrsize>): Ditto.
732 (call_value_indirect_aix<ptrsize>_internal): Ditto.
733 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
734 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
735 (call_nonlocal_aix32): Relocate in the rs6000.md file.
736 (call_nonlocal_aix64): Ditto.
738 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
739 -mno-r11 documentation.
741 2011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
744 * doc/extend.texi (Compound Literals): Fix typo.
746 2011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
748 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add
751 2011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
753 * configure.ac (plugin-version.h): Generate
754 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
755 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
758 * configure: Regenerate.
760 * doc/plugins.texi (Building GCC plugins): Mention
761 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
763 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
765 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
766 * combine.c (make_extraction, gen_lowpart_or_truncate,
767 apply_distributive_law, simplify_comparison,
768 reg_truncated_to_mode, record_truncated_value): Use it.
769 * cse.c (notreg_cost): Likewise.
770 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
771 * expr.c (convert_move, convert_modes): Likewise.
772 * optabs.c (expand_binop, expand_unop): Likewise.
773 * postreload.c (move2add_last_label): Likewise.
774 * regmove.c (optimize_reg_copy_3): Likewise.
775 * rtlhooks.c (gen_lowpart_general): Likewise.
776 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
778 2011-07-06 Joseph Myers <joseph@codesourcery.com>
780 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
782 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
784 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
785 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
786 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
787 (simplify_const_unary_operation, simplify_binary_operation_1,
788 simplify_const_binary_operation,
789 simplify_const_relational_operation): Use them. Use
790 GET_MODE_MASK for masking and sign-extensions.
791 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
792 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
793 simplify_shift_const_1, simplify_comparison): Likewise.
794 * expr.c (convert_modes): Likewise.
795 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
796 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag):
798 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
800 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
802 2011-07-06 Richard Guenther <rguenther@suse.de>
804 PR tree-optimization/49645
805 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
807 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
808 in type qualification here ...
809 (copy_reference_ops_from_ref): ... not here.
810 (vn_reference_lookup_3): ... or here.
811 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
812 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
814 2011-07-06 Ian Lance Taylor <iant@google.com>
816 * doc/install.texi (Configuration): It's
817 --enable-gnu-indirect-function, not --enable-indirect-function.
819 2011-07-06 Bernd Schmidt <bernds@codesourcery.com>
821 * simplify-rtx.c (simplify_const_binary_operation): Use the
822 shift_truncation_mask hook instead of performing modulo by
823 width. Compare against mode precision, not bitsize.
824 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
825 Use shift_truncation_mask instead of constructing the value
828 2011-07-06 H.J. Lu <hongjiu.lu@intel.com>
831 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
832 address computation and convert to address_mode if needed.
834 2011-07-06 Richard Guenther <rguenther@suse.de>
836 * tree.c (build_common_tree_nodes_2): Merge with
837 build_common_tree_nodes.
838 * tree.h (build_common_tree_nodes): Adjust prototype.
839 (build_common_tree_nodes_2): Remove.
840 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
841 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
843 2011-07-05 Jakub Jelinek <jakub@redhat.com>
845 PR tree-optimization/49618
846 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
847 t recurse on the decl.
848 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
849 return true if expr isn't known to be defined in current
850 TU or some other LTO partition.
852 2011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
854 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
855 override CASE_VALUES_THRESHOLD.
857 * stmt.c (toplevel): Include params.h.
858 (case_values_threshold): Use the --param case-values-threshold
859 value if non-zero, otherwise use machine dependent value.
860 (expand_case): Use case_values_threshold.
862 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
864 * doc/invoke.texi (--param case-values-threshold): Document.
866 2011-07-05 Richard Henderson <rth@redhat.com>
868 * dwarf2out.c (dwarf2out_cfi_label): Make static.
869 (dwarf2out_flush_queued_reg_saves): Make static.
870 (dwarf2out_reg_save): Remove.
871 (dwarf2out_return_save): Remove.
872 (dwarf2out_return_reg): Remove.
873 (dwarf2out_reg_save_reg): Remove.
874 (dwarf2out_def_cfa): Merge into ...
875 (dwarf2out_frame_init): ... here.
876 * dwarf2out.h, tree.h: Remove declarations as necessary.
878 2011-07-05 Richard Henderson <rth@redhat.com>
880 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
881 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
882 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
885 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
886 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
887 (process_epilogue): Don't call dwarf2out_def_cfa.
889 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
890 indicate the return address save.
891 (process_cfa_register): Likewise.
893 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
894 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
896 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
897 for ar.pfs save at alloc insn.
899 2011-07-05 Richard Henderson <rth@redhat.com>
901 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
902 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
903 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
905 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
906 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
907 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
908 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
910 2011-07-05 Richard Henderson <rth@redhat.com>
912 * config/vax/vax.md (define_c_enum unspecv): New. Define the
913 VUNSPEC_* constants here instead of via define_constants.
914 (VUNSPEC_PEM): New constant.
915 (procedure_entry_mask): New insn.
916 (prologue): New expander.
917 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
918 (vax_expand_prologue): Rename from vax_output_function_prologue;
919 emit rtl instead of text.
920 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
921 (print_operand): Add 'x' prefix.
923 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
926 * calls.c (precompute_register_parameters): Promote the function
927 argument before checking non-legitimate constant.
929 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
931 PR tree-optimization/47654
932 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
933 (lst_do_strip_mine_loop): Return an int.
934 (lst_do_strip_mine): Same.
935 (scop_do_strip_mine): Same.
936 (scop_do_block): Loop blocking should strip-mine at least two loops.
937 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
938 (scop_do_interchange): Same.
939 * graphite-poly.h (scop_do_interchange): Update declaration.
940 (scop_do_strip_mine): Same.
942 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
944 * graphite-clast-to-gimple.c (precision_for_value): Removed.
945 (precision_for_interval): Removed.
946 (gcc_type_for_interval): Use mpz_sizeinbase.
948 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
950 * graphite-ppl.h (value_max): Correct computation of max.
952 2011-07-05 Sebastian Pop <sebastian.pop@amd.com>
954 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
956 2011-07-05 Richard Guenther <rguenther@suse.de>
958 * c-decl.c (c_init_decl_processing): Defer building common
959 tree nodes to c_common_nodes_and_builtins.
961 2011-07-05 Razya Ladelsky <razya@il.ibm.com>
963 PR tree-optimization/49580
964 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
965 the loop's number of iterations.
966 * tree-parloops.c (transform_to_exit_first_loop): Add the
967 handling of the loop's number of iterations before the call
968 to gimple_duplicate_sese_tail.
969 Insert the stmt caclculating the new rhs of the loop's
970 condition stmt to the preheader instead of iters_bb.
972 2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
974 PR rtl-optimization/47449
975 * fwprop.c (forward_propagate_subreg): Don't propagate hard
976 register nor zero/sign extended hard register.
978 2011-07-05 Richard Guenther <rguenther@suse.de>
980 PR tree-optimization/49518
981 PR tree-optimization/49628
982 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
983 irrelevant and invariant data-references.
984 (vect_analyze_data_ref_access): For invariant loads clear the
987 2011-07-04 Jakub Jelinek <jakub@redhat.com>
989 PR rtl-optimization/49619
990 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
991 pass VOIDmode as op0_mode to recursive call, and return temp even
992 when different from tor, just if it is not IOR of the original
995 PR rtl-optimization/49472
996 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
997 negating MULT, negate the second operand instead of first.
998 (simplify_binary_operation_1) <case MULT>: If one operand is
999 a NEG and the other is MULT, don't attempt to optimize by
1000 negation of the MULT operand if it only moves the NEG operation
1004 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1005 get_current_def return value if it can't be trusted to be
1006 the current value of the variable in the current bb.
1008 2011-07-04 Uros Bizjak <ubizjak@gmail.com>
1011 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1012 general register to memory for !TARGET_INTER_UNIT_MOVES.
1014 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
1017 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1018 instead of TREE_READONLY.
1020 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
1022 * doc/extend.texi (AVR Built-in Functions): Update documentation
1023 of __builtin_avr_fmul*.
1024 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
1025 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1026 * config/avr/avr.md (fmul): Rename to fmul_insn.
1027 (fmuls): Rename to fmuls_insn.
1028 (fmulsu): Rename to fmulsu_insn.
1029 (fmul,fmuls,fmulsu): New expander.
1030 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1031 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1032 * config/avr/libgcc.S (__fmul): New function.
1033 (__fmuls): New function.
1034 (__fmulsu,__fmulsu_exit): New function.
1036 2011-07-04 Richard Guenther <rguenther@suse.de>
1038 PR tree-optimization/49615
1039 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1040 basic-block index check.
1042 2011-07-04 Georg-Johann Lay <avr@gjlay.de>
1044 * longlong.h (count_leading_zeros, count_trailing_zeros,
1045 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1048 2011-07-03 Ira Rosen <ira.rosen@linaro.org>
1050 PR tree-optimization/49610
1051 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1054 2011-07-02 Eric Botcazou <ebotcazou@adacore.com>
1055 Olivier Hainque <hainque@adacore.com>
1056 Nicolas Setton <setton@adacore.com>
1058 * tree.h (TYPE_ARTIFICIAL): New flag.
1059 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1060 the DIE of the type if it is artificial.
1061 (gen_array_type_die): Likewise.
1062 (gen_enumeration_type_die): Likewise.
1063 (gen_struct_or_union_type_die): Likewise.
1064 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1065 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1067 2011-07-01 Jakub Jelinek <jakub@redhat.com>
1069 * tree-object-size.c (pass_through_call): Handle
1070 BUILT_IN_ASSUME_ALIGNED.
1072 2011-07-01 Martin Jambor <mjambor@suse.cz>
1074 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1076 2011-07-01 H.J. Lu <hongjiu.lu@intel.com>
1079 * explow.c (update_nonlocal_goto_save_area): Use proper mode
1080 for stack save area.
1081 * function.c (expand_function_start): Likewise.
1083 2011-07-01 Richard Guenther <rguenther@suse.de>
1086 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1087 may have unknown refs.
1089 2011-07-01 Kai Tietz <ktietz@redhat.com>
1091 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1093 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1095 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1096 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1097 (Specific, mips-sgi-irix6): Likewise.
1099 2011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1102 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1104 2011-07-01 Jakub Jelinek <jakub@redhat.com>
1106 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1107 [idx]= and [idx1 ... idx2]= before initializers if needed for
1110 2011-07-01 Chen Liqin <liqin.gcc@gmail.com>
1112 * config.gcc (score-*-elf): Remove score7.o.
1113 * config/score/t-score-elf: Likewise.
1114 * config/score/score.c: Merge score7 to score.c and
1115 remove forwarding functions.
1116 * config/score/score7.c: Deleted.
1117 * config/score/score7.h: Deleted.
1119 2011-07-01 Richard Guenther <rguenther@suse.de>
1121 PR tree-optimization/49603
1122 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1124 2011-06-30 Martin Jambor <mjambor@suse.cz>
1126 * tree-sra.c (struct access): Rename total_scalarization to
1127 grp_total_scalarization
1128 (completely_scalarize_var): New function.
1129 (sort_and_splice_var_accesses): Set total_scalarization in the
1130 representative access.
1131 (analyze_access_subtree): Propagate total scalarization accross the
1132 tree, no holes in totally scalarized trees, simplify coverage
1134 (analyze_all_variable_accesses): Call completely_scalarize_var instead
1135 of completely_scalarize_record.
1137 2011-06-30 Richard Henderson <rth@redhat.com>
1139 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1140 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1141 * config/i386/i386.c: Don't include dwarf2out.h.
1142 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1143 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1144 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
1145 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1146 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1148 2011-06-30 Richard Henderson <rth@redhat.com>
1150 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1151 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1152 * final.c (final_scan_insn): Look for it, and invoke
1153 dwarf2out_frame_debug before the insn if found.
1155 2011-06-30 Richard Henderson <rth@redhat.com>
1157 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1158 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1160 2011-06-30 Richard Henderson <rth@redhat.com>
1162 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1163 Define a vector of this type.
1164 (regs_saved_in_regs): Use a VEC.
1165 (num_regs_saved_in_regs): Remove.
1166 (compare_reg_or_pc): New.
1167 (record_reg_saved_in_reg): Split out from...
1168 (dwarf2out_flush_queued_reg_saves): ... here.
1169 (clobbers_queued_reg_save): Update for VEC.
1170 (reg_saved_in): Likewise.
1171 (dwarf2out_frame_debug_init): Likewise.
1172 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1173 (dwarf2out_frame_debug_cfa_register): Likewise.
1175 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
1177 PR tree-optimization/49572
1178 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1179 type of the RHS instead of that of the LHS for the expression type.
1181 2011-06-30 Eric Botcazou <ebotcazou@adacore.com>
1183 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1186 2011-06-30 Richard Guenther <rguenther@suse.de>
1188 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1189 * tree-ssa-structalias.c (create_variable_info_for): Do not
1190 add initial constraints for non-var-decls. Properly handle
1191 globals in other ltrans partitions.
1192 (intra_create_variable_infos): Manually create constraints for
1193 the fake no-alias parameter.
1194 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1195 and assert there are no clones.
1197 2011-06-30 Richard Guenther <rguenther@suse.de>
1199 PR tree-optimization/46787
1200 * tree-data-ref.c (dr_address_invariant_p): Remove.
1201 (find_data_references_in_stmt): Invariant accesses are ok now.
1202 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
1203 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1206 2011-06-30 Martin Jambor <mjambor@suse.cz>
1208 PR tree-optimization/49094
1209 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1210 (build_accesses_from_assign): Use it.
1212 2011-06-30 Jakub Jelinek <jakub@redhat.com>
1214 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1215 handling of BUILT_IN_ASSUME_ALIGNED.
1218 * dwarf2out.c (output_abbrev_section): Don't return early
1219 if abbrev_die_table_in_use is 1.
1220 (dwarf2out_finish): Instead don't call output_abbrev_section
1221 nor emit abbrev_section_label in that case.
1223 2011-06-30 Nick Clifton <nickc@redhat.com>
1225 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1228 2011-06-30 Jakub Jelinek <jakub@redhat.com>
1230 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1231 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1233 2011-06-30 Ira Rosen <ira.rosen@linaro.org>
1235 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1236 both pattern and original statements if necessary.
1237 (vect_transform_loop): Likewise.
1238 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1239 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1240 Mark the pattern statement only if the original statement doesn't
1242 (process_use): Call vect_mark_relevant with additional parameter.
1243 (vect_mark_stmts_to_be_vectorized): Likewise.
1244 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1245 (vect_analyze_stmt): Handle both pattern and original statements
1247 (vect_transform_stmt): Don't store vectorized pattern statement
1248 in the original statement.
1249 (vect_is_simple_use_1): Use related pattern statement only if the
1250 original statement is irrelevant.
1251 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1253 2011-06-29 Changpeng Fang <changpeng.fang@amd.com>
1255 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1257 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1259 (TARGET_AVX128_OPTIMAL): New definition.
1260 * config/i386/i386.c (initial_ix86_tune_features): Initialize
1261 X86_TUNE_AVX128_OPTIMAL entry.
1262 (ix86_option_override_internal): Enable the generation
1263 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1264 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
1265 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
1267 2011-06-29 Eric Botcazou <ebotcazou@adacore.com>
1269 PR tree-optimization/49539
1270 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
1271 names by means of stmt_references_abnormal_ssa_name.
1272 (associate_plusminus): Call can_propagate_from before propagating
1273 from definition statements.
1274 (ssa_forward_propagate_and_combine): Remove superfluous newline.
1276 2011-06-29 Richard Guenther <rguenther@suse.de>
1278 * doc/invoke.texi: Document -scev dump modifier.
1279 * tree-pass.h (TDF_SCEV): New dump flag.
1280 * tree-dump.c (dump_option_value_in): Add scev.
1281 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
1282 * tree-scalar-evolution.c: Likewise.
1284 2011-06-29 Nathan Sidwell <nathan@codesourcery.com>
1286 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
1287 (cxa_type_match): Correct declaration.
1288 (__gnu_unwind_pr_common): Reconstruct additional indirection
1289 when __cxa_type_match returns succeeded_with_ptr_to_base.
1291 2011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1293 PR rtl-optimization/49114
1294 * reload.c (struct replacement): Remove SUBREG_LOC member.
1295 (push_reload): Do not set it.
1296 (push_replacement): Likewise.
1297 (subst_reload): Remove dead code.
1298 (copy_replacements): Remove assertion.
1299 (copy_replacements_1): Do not handle SUBREG_LOC.
1300 (move_replacements): Likewise.
1301 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
1302 Detect subregs via recursive descent instead of via SUBREG_LOC.
1304 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
1306 * config/avr/avr.c (avr_encode_section_info): Dispatch to
1307 default_encode_section_info.
1309 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
1311 PR tree-optimization/49545
1312 * builtins.c (get_object_alignment_1): Update function comment.
1313 Do not use DECL_ALIGN for functions, but test
1314 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
1315 * fold-const.c (get_pointer_modulus_and_residue): Don't check
1317 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1319 2011-06-29 Jakub Jelinek <jakub@redhat.com>
1322 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
1323 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
1325 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
1328 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
1329 about uninitialized data attributed 'progmem' from here...
1330 (avr_encode_section_info): ...to this new function.
1331 (TARGET_ENCODE_SECTION_INFO): New define.
1332 (avr_section_type_flags): For data in ".progmem.data", remove
1333 section flag SECTION_WRITE.
1335 2011-06-29 Georg-Johann Lay <avr@gjlay.de>
1337 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1339 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
1340 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
1341 (__umulhisi3): Ditto.
1342 * config/avr/avr.md (mulhisi3): New insn expender.
1343 (umulhisi3): New insn expender.
1344 (*mulhisi3_call): New insn.
1345 (*umulhisi3_call): New insn.
1347 2011-06-28 Joseph Myers <joseph@codesourcery.com>
1349 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1351 2011-06-28 Richard Henderson <rth@redhat.com>
1353 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
1354 all code and arguments that handled pushes. Update all callers.
1356 2011-06-28 Richard Henderson <rth@redhat.com>
1358 * config/arm/arm.c (arm_output_function_prologue): Don't call
1359 thumb1_output_function_prologue.
1360 (arm_expand_prologue): Avoid dead store.
1361 (number_of_first_bit_set): Use ctz_hwi.
1362 (thumb1_emit_multi_reg_push): New.
1363 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
1364 to emit the entire prologue as rtl.
1365 (thumb1_output_interwork): Split out from
1366 thumb1_output_function_prologue.
1367 (thumb1_output_function_prologue): Remove.
1368 (arm_attr_length_push_multi): Handle thumb1.
1369 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
1370 (prologue_thumb1_interwork): New.
1371 (*push_multi): Allow thumb1; use push_mult_memory_operand.
1372 * config/arm/predicates.md (push_mult_memory_operand): New.
1374 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
1376 * config/sparc/sync.md (*stbar): Delete.
1377 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1379 2011-06-28 Eric Botcazou <ebotcazou@adacore.com>
1381 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1383 2011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1385 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
1386 (TARGET_64BIT_DEFAULT): Define.
1387 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
1389 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1391 2011-06-28 Joseph Myers <joseph@codesourcery.com>
1393 * common.opt (in_lto_p): New Variable entry.
1394 * flags.h (in_lto_p): Move to common.opt.
1395 * gcc.c: Include params.h.
1396 (set_option_handlers): Also use common_handle_option and
1397 target_handle_option.
1398 (main): Call global_init_params, finish_params and init_options_struct.
1399 * opts.c (debug_type_names): Move from toplev.c.
1400 (print_filtered_help): Access quiet_flag through opts pointer.
1401 (common_handle_option): Return early in the driver for some options.
1402 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
1404 * toplev.c (in_lto_p): Move to common.opt.
1405 (debug_type_names): Move to opts.c.
1406 * Makefile.in (OBJS): Remove opts.o.
1407 (OBJS-libcommon-target): Add opts.o.
1408 (gcc.o): Update dependencies.
1410 2011-06-28 Kai Tietz <ktietz@redhat.com>
1412 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1414 2011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1416 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
1417 with '=' constraint modifier.
1418 (*divdf3_vfp): Likewise.
1419 ("*mulsf3_vfp"): Likewise.
1420 ("*muldf3_vfp"): Likewise.
1421 ("*mulsf3negsf_vfp"): Likewise.
1422 ("*muldf3negdf_vfp"): Likewise.
1424 2011-06-28 Nick Clifton <nickc@redhat.com>
1426 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1427 relaxation when performing an incremental link.
1429 2011-06-28 Kai Tietz <ktietz@redhat.com>
1431 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1432 within BB from last to first.
1434 2011-06-28 Joseph Myers <joseph@codesourcery.com>
1436 * genattr-common.c: New. Based on genattr.c.
1437 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
1438 (MOSTLYCLEANFILES): Add insn-attr-common.h.
1439 (opts.o): Update dependencies.
1440 (.PRECIOUS): Add insn-attr-common.h.
1441 (simple_rtl_generated_h): Add insn-attr-common.h.
1442 (build/genattr-common.o): New.
1443 (genprogrtl): Add attr-common.
1444 * genattr.c (main): Include insn-attr-common.h. Don't generate
1445 definitions of DELAY_SLOTS or INSN_SCHEDULING.
1446 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
1448 2011-06-28 Georg-Johann Lay <avr@gjlay.de>
1450 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
1451 avr-*-* and avr-*-rtems* targets.
1453 * config/avr/elf.h: New file.
1454 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
1455 (TARGET_ASM_SELECT_SECTION): Define.
1456 (INIT_SECTION_ASM_OP): Undefine.
1457 (FINI_SECTION_ASM_OP): Undefine.
1458 (READONLY_DATA_SECTION_ASM_OP): Undefine.
1459 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
1460 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
1462 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
1463 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
1464 (MAX_OFILE_ALIGNMENT): Move to elf.h.
1465 (STRING_LIMIT): Move to elf.h.
1466 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
1467 (ASM_DECLARE_OBJECT_NAME): Remove.
1469 (ASM_OUTPUT_SKIP): Remove.
1470 (DWARF2_DEBUGGING_INFO): Remove.
1471 (OBJECT_FORMAT_ELF): Remove.
1472 (USER_LABEL_PREFIX): Remove.
1473 (ASM_OUTPUT_EXTERNAL): Remove.
1474 (ASM_OUTPUT_ASCII): Remove.
1475 (TYPE_ASM_OP): Remove.
1476 (SIZE_ASM_OP): Remove.
1477 (WEAK_ASM_OP): Remove.
1478 (STRING_ASM_OP): Remove.
1479 (SET_ASM_OP): Remove.
1480 (ASM_WEAKEN_LABEL): Remove.
1481 (TYPE_OPERAND_FMT): Remove.
1482 (ASM_DECLARE_FUNCTION_SIZE): Remove.
1483 (ASM_FINISH_DECLARE_OBJECT): Remove.
1484 (NO_DOLLAR_IN_LABEL): Remove.
1485 (ASM_GENERATE_INTERNAL_LABEL): Remove.
1486 (ASM_OUTPUT_CASE_LABEL): Remove.
1487 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
1488 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
1489 (gas_output_ascii): Remove.
1490 (gas_output_limited_string): Remove.
1491 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
1492 * config/avr/avr-protos.h
1493 (gas_output_ascii): Remove prototye.
1494 (gas_output_limited_string): Remove prototype.
1496 2011-06-27 Richard Earnshaw <rearnsha@arm.com>
1499 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
1502 2011-06-27 Jan Hubicka <jh@suse.cz>
1504 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
1505 node instead of references in node.
1507 2011-06-27 Richard Henderson <rth@redhat.com>
1509 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
1510 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
1513 2011-06-27 Jakub Jelinek <jakub@redhat.com>
1515 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
1517 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
1518 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
1519 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
1520 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
1521 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
1522 (evaluate_stmt, execute_fold_all_builtins): Handle
1523 BUILT_IN_ASSUME_ALIGNED.
1524 * tree-ssa-dce.c (propagate_necessity): Likewise.
1525 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1526 call_may_clobber_ref_p_1): Likewise.
1527 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
1528 (expand_builtin_assume_aligned): New function.
1529 * doc/extend.texi (__builtin_assume_aligned): Document.
1532 * cselib.c (promote_debug_loc): If cselib_preserve_constants
1533 and l has two DEBUG_INSN owned locs instead of just one, adjust
1534 the second location's setting_insn too.
1536 2011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1539 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
1541 2011-06-27 Nick Clifton <nickc@redhat.com>
1543 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
1544 bit position of highest bit set into a count of the high zero bits.
1546 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
1548 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
1550 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
1553 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
1556 2011-06-27 Richard Guenther <rguenther@suse.de>
1558 PR tree-optimization/49394
1559 * passes.c (execute_one_pass): Restore current_pass after
1560 applying IPA transforms.
1562 2011-06-27 Kai Tietz <ktietz@redhat.com>
1564 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
1565 out of type precision after operation.
1566 (find_bswap): Take for limit value the integer auto-promotion
1569 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
1571 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
1572 forward scan as well.
1574 2011-06-27 Tristan Gingold <gingold@adacore.com>
1577 * config/vms/vms-protos.h: New file.
1578 * config/vms/vms-crtlmap.map: New file.
1579 * config/vms/vms.c: New file.
1580 * config/vms/make-crtlmap.awk: New file.
1581 * config/vms/vms-crtl.h: File removed.
1582 * config/vms/vms-crtl-64.h: File removed.
1583 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
1584 * config/alpha/vms64.h: Do not include vms-crtl-64.h
1585 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
1586 clear some builtins on VMS. Calls vms_patch_builtins.
1587 (avms_asm_output_external): Remove.
1588 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
1589 (struct crtl_name_spec): Remove
1590 (DO_CTRL_NAMES): Remove.
1591 * config/ia64/vms.h (struct crtl_name_spec): Remove
1592 (DO_CTRL_NAMES): Remove.
1593 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
1594 clear some builtins on VMS. Calls vms_patch_builtins.
1595 (ia64_asm_output_external): Remove DO_CRTL_NAME.
1596 * config/ia64/vms64.h: Do not include vms-crtl-64.h
1597 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
1599 2011-06-27 Tristan Gingold <gingold@adacore.com>
1601 * config/alpha/alpha.c (alpha_end_function): Always generate .end
1604 2011-06-27 Eric Botcazou <ebotcazou@adacore.com>
1606 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
1607 the function receives nonlocal gotos.
1609 2011-06-27 Richard Guenther <rguenther@suse.de>
1611 PR tree-optimization/49536
1612 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1613 For non-scalar inner types use a scalar type according to
1614 the scalar inner mode.
1616 2011-06-27 Richard Guenther <rguenther@suse.de>
1618 PR tree-optimization/49365
1619 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
1621 2011-06-27 Richard Guenther <rguenther@suse.de>
1623 PR tree-optimization/49169
1624 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
1625 the alignment of function decls.
1627 2011-06-26 Iain Sandoe <iains@gcc.gnu.org>
1630 * config/darwin.c (darwin_mergeable_string_section): Place string
1631 constants in '.cstring' rather than '.const' when CF/NSStrings are
1634 2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
1636 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
1637 (emit_save_register_window): Likewise.
1638 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
1639 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
1640 Swap back %o7/%i7 in register naming.
1642 2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
1645 * config/darwin.c (darwin_override_options): Improve warning when
1646 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
1647 is given with fpie/fPIE.
1648 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
1649 * config/darwin9.h (PIE_SPEC): New.
1651 2011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
1653 * timevar.c (timevar_print): Increase width for display of timevar
1656 2011-06-24 Jakub Jelinek <jakub@redhat.com>
1659 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
1660 instead of TYPE_CHAIN for chain_next for types.
1662 2011-06-24 Richard Henderson <rth@redhat.com>
1664 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
1665 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
1666 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
1667 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
1668 (sparc_flat_expand_prologue): Emit individual instructions
1669 instead of one of the above.
1671 2011-06-24 Easwaran Raman <eraman@google.com>
1673 PR rtl-optimization/49429
1675 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
1676 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
1677 used to copy y into x.
1678 * calls.c (initialize_argument_information): Mark
1679 an argument addressable if it is passed by invisible reference.
1680 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
1681 if it is passed by reference.
1683 2011-06-24 H.J. Lu <hongjiu.lu@intel.com>
1685 PR rtl-optimization/49504
1686 * rtlanal.c (nonzero_bits1): Properly handle addition or
1687 subtraction of a pointer in Pmode if pointers extend unsigned.
1688 (num_sign_bit_copies1): Likewise.
1690 2011-06-24 Martin Jambor <mjambor@suse.cz>
1692 PR tree-optimizations/49516
1693 * tree-sra.c (sra_modify_assign): Choose the safe path for
1694 aggregate copies if we also did scalar replacements.
1696 2011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1699 * config/arm/predicates.md (add_operator): New.
1700 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
1702 2011-06-24 Andi Kleen <ak@linux.intel.com>
1704 * tree-sra.c (type_internals_preclude_sra_p): Add msg
1705 parameter. Split up ifs and report reason in *msg.
1707 (find_var_candiate): Add msg variable.
1708 Split up ifs and report reason to reject.
1709 (find_param_candidates): Add msg variable.
1710 Pass msg to type_internals_preclude_sra_p.
1712 2011-06-23 Jeff Law <law@redhat.com>
1715 * reload.h (reload): Change to return a bool.
1716 * ira.c (ira): If requested by reload, run a fast DCE pass after
1717 reload has completed. Fix comment typo.
1718 * reload1.c (need_dce): New file scoped static.
1719 (reload): Set reload_completed here. Return whether or not a DCE
1720 pass after reload is needed.
1721 (delete_dead_insn): Set need_dce as needed.
1724 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
1725 to detect threading through joiner block. If there was already
1726 an edge to the new target, then do not change the PHI nodes.
1728 2011-06-23 Jakub Jelinek <jakub@redhat.com>
1730 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
1731 get_pointer_alignment to see if base isn't sufficiently aligned.
1733 2011-06-23 Jan Hubicka <jh@suse.cz>
1735 PR tree-optimize/49373
1736 * tree-pass.h (all_late_ipa_passes): Declare.
1737 * cgraphunit.c (init_lowered_empty_function): Fix properties.
1738 (cgraph_optimize): Execute late passes; remove unreachable funcions
1739 after materialization.
1740 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
1742 * passes.c (all_late_ipa_passes): Declare.
1743 (dump_passes, register_pass): Handle late ipa passes.
1744 (init_optimization_passes): Move ipa_pta to late passes; schedule
1745 fixup_cfg at beggining of all_passes.
1746 (apply_ipa_transforms): New function.
1747 (execute_one_pass): When doing simple ipa pass, apply all transforms.
1749 2011-06-23 Joseph Myers <joseph@codesourcery.com>
1751 * params.c: Include common/common-target.h. Don't include tm.h.
1752 (lang_independent_params): Move from toplev.c.
1753 (global_init_params): New.
1754 * params.h (global_init_params): Declare.
1755 * target.def (default_params): Move to common-target.def.
1756 * toplev.c (lang_independent_options): Remove.
1757 (lang_independent_params): Move to params.c.
1758 (general_init): Use global_init_params.
1759 * common/common-target.def (option_default_params): Move from
1761 * common/config/ia64/ia64-common.c: Include params.h.
1762 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1764 * common/config/rs6000/rs6000-common.c: Include params.h.
1765 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1767 * common/config/sh/sh-common.c: Include params.h.
1768 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1770 * common/config/spu/spu-common.c: Include params.h.
1771 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1773 * config/ia64/ia64.c (ia64_option_default_params,
1774 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
1775 * config/rs6000/rs6000.c (rs6000_option_default_params,
1776 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
1777 * config/sh/sh.c (sh_option_default_params,
1778 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
1779 * config/spu/spu.c (spu_option_default_params,
1780 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
1781 * Makefile.in (OBJS): Remove params.o.
1782 (OBJS-libcommon-target): Add params.o.
1783 (params.o, $(common_out_object_file)): Update dependencies.
1784 * doc/tm.texi: Regenerate.
1786 2011-06-23 Alan Modra <amodra@gmail.com>
1789 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
1790 invocation for 2011-06-09 changes.
1792 2011-06-22 Jakub Jelinek <jakub@redhat.com>
1795 * omp-low.c (expand_omp_for_static_nochunk): Only
1796 use n ceil/ nthreads size for the first n % nthreads threads in the
1797 team instead of all threads except for the last few ones which
1798 get less work or none at all.
1801 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
1804 2011-06-22 Richard Guenther <rguenther@suse.de>
1806 PR tree-optimization/49493
1807 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
1808 Refer to the alias target of variables.
1809 (associate_varinfo_to_alias_1): Remove.
1810 (ipa_pta_execute): Do not associate aliases with anything.
1811 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
1812 (cgraph_function_node): Likewise.
1813 (cgraph_function_or_thunk_node): Likewise.
1814 (varpool_variable_node): Likewise.
1816 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
1818 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
1819 * config.gcc (arm*-*-linux*): Default to gnu tls.
1820 (arm*-*-*): Add --with-tls option.
1821 (all_defaults): Add 'tls'.
1823 2011-06-22 Richard Henderson <rth@redhat.com>
1825 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
1826 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1827 (dwarf2out_frame_debug_cfa_window_save): Rename from
1828 dwarf2out_window_save; make static.
1829 * tree.h (dwarf2out_window_save): Don't declare.
1831 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
1832 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1833 (emit_save_register_window): Rename from gen_save_register_window;
1834 emit the insn and add REG_CFA_* notes.
1835 (sparc_expand_prologue): Update to match.
1836 * config/sparc/sparc.md (save_register_window_1): Simplify from
1837 save_register_window<P:mode>.
1839 2011-06-22 H.J. Lu <hongjiu.lu@intel.com>
1842 * config/i386/i386.md (*lea_general_2): Always allow SImode.
1843 (*lea_general_2_zext): Likewise.
1844 (imul to lea peepholes): Use const359_operand and check
1845 TARGET_PARTIAL_REG_STALL.
1847 * config/i386/predicates.md (const359_operand): New.
1849 2011-06-22 Michael Matz <matz@suse.de>
1851 * cgraphunit.c (assemble_thunk): Use correct return type.
1853 2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
1854 Dmitry Melnik <dm@ispras.ru>
1856 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
1857 (neon_output_shift_immediate): Ditto.
1858 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
1860 (neon_output_shift_immediate): Ditto.
1861 * config/arm/neon.md (vashl<mode>3): Modified constraint.
1862 (vashr<mode>3_imm): New insn pattern.
1863 (vlshr<mode>3_imm): Ditto.
1864 (vashr<mode>3): Modified constraint.
1865 (vlshr<mode>3): Ditto.
1866 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
1868 (imm_for_neon_rshift_operand): Ditto.
1869 (imm_lshift_or_reg_neon): Ditto.
1870 (imm_rshift_or_reg_neon): Ditto.
1872 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
1874 2011-06-22 Jakub Jelinek <jakub@redhat.com>
1876 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
1877 builtin calls even if likelyvalue is not CONSTANT.
1878 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
1879 Return get_value_for_expr of first operand
1880 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
1881 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1882 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
1883 their non-checking counterparts.
1884 (call_may_clobber_ref_p_1): Likewise.
1885 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
1886 like their non-checking counterparts.
1887 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1888 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
1889 like their non-checking counterparts.
1890 (find_func_clobbers): Likewise.
1891 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
1892 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
1894 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
1895 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
1896 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
1897 of base type reference as argument.
1898 (resolve_addr_in_expr): Likewise. Fix keep computation.
1899 (convert_descriptor_to_signed): Renamed to...
1900 (convert_descriptor_to_mode): ... this. For wider types convert to
1901 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
1902 (typed_binop): New function.
1903 (scompare_loc_descriptor, ucompare_loc_descriptor,
1904 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
1905 default to unsigned type instead of signed.
1908 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
1909 (gimple_build_debug_source_bind_stat): New prototype.
1910 (gimple_build_debug_source_bind): Define.
1911 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
1912 gimple_debug_source_bind_get_value,
1913 gimple_debug_source_bind_get_value_ptr,
1914 gimple_debug_source_bind_set_var,
1915 gimple_debug_source_bind_set_value): New inlines.
1916 * gimple.c (gimple_build_debug_source_bind_stat): New function.
1917 * gimple-pretty-print.c (dump_gimple_debug): Handle
1918 GIMPLE_DEBUG_SOURCE_BIND.
1919 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
1920 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1921 * tree-parloops.c (eliminate_local_variables,
1922 separate_decls_in_region): Likewise.
1923 (separate_decls_in_region_debug): Renamed from
1924 separate_decls_in_region_debug_bind. Handle
1925 gimple_debug_source_bind_p.
1926 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
1928 (DECL_HAS_DEBUG_ARGS_P): Define.
1929 (struct tree_function_decl): Add has_debug_args_flag field.
1930 * tree.c (debug_args_for_decl): New variable.
1931 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
1932 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
1933 (rewrite_debug_stmt_uses): New function.
1934 (rewrite_stmt): Use it to rewrite debug stmt uses.
1935 * rtl.def (DEBUG_PARAMETER_REF): New.
1936 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
1937 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
1938 DEBUG_PARAMETER_REF.
1939 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
1940 * print-rtl.c (print_rtx): Likewise.
1941 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
1942 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
1943 debug stmts in the first bb.
1944 * tree-inline.c (remap_ssa_name): If remapping default def
1945 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
1946 a source bind debug stmt.
1947 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
1948 (maybe_move_debug_stmts_to_successors): Likewise.
1949 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
1950 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
1951 debug args vector from old_decl to new_decl.
1952 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
1953 or modified parameters, add debug bind stmts before call
1954 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
1955 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
1956 on DECL_DEBUG_EXPRs from debug args vector.
1957 (expand_debug_source_expr): New function.
1958 (expand_debug_locations): Use it for source bind insns.
1959 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
1960 * var-tracking.c (prepare_call_arguments): Add debug args
1961 to call_arguments if any.
1962 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
1963 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
1964 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
1965 (get_ref_die_offset, parameter_ref_descriptor): New functions.
1966 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
1967 (gen_subprogram_die): Handle parameters identified by
1968 DEBUG_PARAMETER_REF.
1970 2011-06-22 Nathan Sidwell <nathan@codesourcery.com>
1972 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
1973 * doc/install.texi (Configuration): Document --with-tls.
1974 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
1975 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
1976 (arm_tls_descseq_addr): New.
1977 (legitimize_tls_address): Add tlsdesc support.
1978 (arm_cannot_copy_insn_p): Check for tlscall.
1979 (arm_emit_tls_decoration): Likewise.
1980 * config/arm/arm.h (TARGET_GNU2_TLS): New.
1981 (OPTION_DEFAULT_SPECS): Add with-tls support.
1982 * config/arm/arm.md (R1_REGNUM): Define.
1984 * config/arm/arm.opt (tls_type): New enumeration type and values.
1985 (mtls-dialect): New switch.
1986 * config/arm/arm-opts.h (enum tls_type): New.
1988 2011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
1990 * attribs.c (register_attribute): Added assert to check that all
1991 attribute specs are registered with a name that is not empty and
1992 does not start with '_'.
1993 (decl_attributes): Avoid the lookup of the "naked" attribute spec
1994 if the function has no attributes.
1995 * tree.c (is_attribute_with_length_p): Removed.
1996 (is_attribute_p): Removed.
1997 (private_is_attribute_p): New.
1998 (private_lookup_attribute): New.
1999 (lookup_attribute): Removed.
2000 (lookup_ident_attribute): New.
2001 (remove_attribute): Require the first argument to be in the form
2002 'text', not '__text__'. Updated asserts.
2003 (merge_attributes): Use lookup_ident_attributes instead of
2005 (merge_dllimport_decl_attributes): Use remove_attribute.
2006 (attribute_list_contained): Likewise.
2007 (attribute_list_equal): Immediately return 1 if the arguments are
2009 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
2010 'int'. Require the first argument to be in the form 'text', not
2011 '__text__'. Require the second argument to be an identifier.
2012 (lookup_attribute): Made inline. Require the first argument to be
2013 in the form 'text', not '__text__'.
2014 (private_is_attribute_p, private_lookup_attribute): New.
2017 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
2019 * builtins.c: Add sync_ or SYNC__ to builtin names.
2020 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2021 * omp-low.c: Add sync_ or SYNC__ to builtin names.
2023 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
2026 * config/avr/avr.md (extzv): New expander.
2028 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2029 * config/avr/constraints.md (C04): New constraint.
2030 * doc/md.texi (Machine Constraints): Document it.
2032 2011-06-21 Jakub Jelinek <jakub@redhat.com>
2035 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2036 unsignedp argument instead of 1 for clrsb_optab.
2037 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2038 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
2039 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2040 * optabs.c (widen_leading): Call widen_operand and expand_unop
2041 with 0 as unsignedp argument instead of 1 for clrsb_optab.
2042 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
2044 2011-06-21 Georg-Johann Lay <avr@gjlay.de>
2046 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2048 2011-06-21 Bernd Schmidt <bernds@codesourcery.com>
2050 * gensupport.c (add_define_attr): New static function.
2051 (is_predicable): Allow multi-alternative lists for the "predicable"
2053 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2054 (process_one_cond_exec): Call alter_attrs_for_insn.
2055 * doc/md.texi (Defining Attributes): Mention some standard names.
2056 (Conditional Execution): Update documentation for "predicable".
2058 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2059 __builtin_clrsbll): Document.
2060 * doc/rtl.texi (clrsb): New entry.
2061 * optabs.c (widen_leading): Renamed from widen_clz. New argument
2062 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
2063 (expand_unop): Handle clrsb_optab.
2064 (init_optabs): Initialize it.
2065 * optabs.h (enum optab_index): New entry OTI_clrsb.
2066 (clrsb_optab): Define.
2067 * genopinit.c (optabs): Add an entry for it.
2068 * builtins.c (expand_builtin): Handle clrsb builtin functions.
2069 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2070 BUILT_IN_CLRSBLL): New.
2071 * rtl.def (CLRSB): New code.
2072 * dwarf2out.c (mem_loc_descriptor): Handle it.
2073 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2074 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2076 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2077 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2078 (__ctzDI2): Move declaration.
2079 * config/bfin/bfin.md (clrsbsi2): New expander.
2080 (signbitssi2): Use the CLRSB rtx.
2081 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
2082 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2084 2011-06-21 Richard Guenther <rguenther@suse.de>
2086 * ipa-inline-transform.c (inline_transform): Fix previous change.
2088 2011-06-21 Ira Rosen <ira.rosen@linaro.org>
2090 PR tree-optimization/49478
2091 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2092 with constant operand.
2094 2011-06-21 Richard Guenther <rguenther@suse.de>
2096 * ipa-inline-transform.c (inline_transform): Fix typo.
2098 2011-06-21 Richard Guenther <rguenther@suse.de>
2100 PR tree-optimization/49483
2101 * tree-vect-stmts.c (vectorizable_assignment): Also handle
2102 VIEW_CONVERT_EXPR conversions.
2104 2011-06-21 Joseph Myers <joseph@codesourcery.com>
2106 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2107 * config/avr/avr-tables.opt: New file (generated).
2108 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2109 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2111 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2112 (avr_option_override): Don't process -mmcu= argument here. Set
2113 avr_current_device using avr_mcu_index.
2114 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
2115 * config/avr/avr.opt (mmcu=): Use Enum.
2116 * config/avr/t-avr (avr-devices.o): Update dependencies.
2117 ($(srcdir)/config/avr/avr-tables.opt): New.
2118 * target.def (help): Remove.
2119 * doc/tm.texi.in (TARGET_HELP): Remove.
2120 * doc/tm.texi: Regenerate.
2121 * opts.c: Don't include target.h.
2122 (common_handle_option): Don't call targetm.help.
2123 * system.h (TARGET_HELP): Poison.
2124 * Makefile.in (opts.o): Update dependencies.
2126 2011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2128 * config/usegld.h: New file.
2129 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2130 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
2131 (LIB_SPEC): Likewise. Search /lib.
2132 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2133 (RDYNAMIC_SPEC): Handle GNU ld.
2134 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2136 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2137 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2138 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2139 (STACK_CHECK_STATIC_BUILTIN): Define.
2140 * config/sol2.opt (compat-bsd): Remove.
2141 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2142 * config/sol2-bi.h: New file.
2143 * config/sol2-gld.h: Remove.
2144 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2145 (NO_DBX_BNSYM_ENSYM): Remove.
2146 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2147 (STACK_CHECK_STATIC_BUILTIN): Remove.
2148 Test USE_GLD instead of TARGET_GNU_LD.
2149 * config/i386/sol2-10.h: Rename to ...
2150 * config/i386/sol2-bi.h .. this.
2151 (SUBTARGET_EXTRA_SPECS): Redefine.
2152 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2153 (MULTILIB_DEFAULTS): Remove.
2154 (DEFAULT_ARCH32_P): Define.
2155 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2156 (ARCH64_SUBDIR): Define.
2157 Test USE_GLD instead of TARGET_GNU_LD.
2158 (I386_EMULATION): Rename to ...
2159 (ARCH32_EMULATION): ... this.
2160 (X86_64_EMULATION): Rename to ...
2161 (ARCH64_EMULATION): ... this.
2162 (TARGET_LD_EMULATION): Remove.
2163 (LINK_ARCH_SPEC): Remove.
2164 * config/i386/sol2-gas.h: Remove.
2165 * config/i386/t-sol2-10: Rename to ...
2166 * config/i386/t-sol2-64: ... this.
2167 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2168 (AS_SPARC64_FLAG): Define.
2169 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2170 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2171 depending on TARGET_CPU_DEFAULT.
2172 (CPP_CPU_SPEC): Redefine.
2173 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2174 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2175 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2176 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2177 ASM_ARCH_DEFAULT_SPEC): Redefine.
2178 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2179 LINK_ARCH_DEFAULT_SPEC.
2180 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2181 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2182 (ARCH64_SUBDIR): Define.
2183 (LINK_ARCH64_SPEC): Redefine.
2184 (CC1_SPEC): Redefine.
2185 (OPTION_DEFAULT_SPECS): Redefine.
2186 (MULTILIB_DEFAULTS): Define.
2187 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2188 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2189 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2190 (NO_DBX_BNSYM_ENSYM): Remove.
2191 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2192 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2193 (TARGET_ASM_NAMED_SECTION): Likewise.
2194 (STACK_CHECK_STATIC_BUILTIN): Remove.
2195 * config/sparc/sol2-bi.h: Remove.
2196 * config/sparc/sol2-gas-bi.h: Remove.
2197 * config/sparc/sol2-gas.h: Remove.
2198 * config/sparc/sol2-gld-bi.h: Remove.
2199 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2201 (*-*-solaris2*): ... here.
2203 2011-06-21 Christian Bruel <christian.bruel@st.com>
2206 * ipa-inline.c (can_inline_edge_p): Check
2207 !DECL_DISREGARD_INLINE_LIMITS.
2209 2011-06-21 Christian Bruel <christian.bruel@st.com>
2212 * cgraphunit.c (process_function_and_variable_attributes): warn when
2213 always_inline functions that are not inline.
2214 * ipa-inline-transform.c (inline_transform): Always call
2216 * tree-inline.c (tree_inlinable_function_p): Use error instead
2218 (expand_call_inline): Likewise.
2220 2011-06-21 Jakub Jelinek <jakub@redhat.com>
2222 * Makefile.in (dg_target_exps): Set.
2223 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2224 instead of 7, try to divide it more evenly.
2226 2011-06-20 Changpeng Fang <changpeng.fang@amd.com>
2229 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2230 (avx256_split_unaligned_store): New definition.
2231 (ix86_option_override_internal): Enable avx256 unaligned load/store
2232 splitting only when avx256_split_unaligned_load/store is set.
2234 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
2236 * regrename.c (scan_rtx_reg): Handle the case where we write to an
2237 open chain in a smaller mode without failing the entire block.
2239 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
2242 * combine.c (cant_combine_insn_p): Don't check zero/sign
2243 extended hard registers.
2245 2011-06-21 Alan Modra <amodra@gmail.com>
2247 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2248 CONST high part large-toc address.
2249 (rs6000_tls_referenced_p): Make static.
2250 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2252 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
2255 * combine.c (cant_combine_insn_p): Check zero/sign extended
2258 2011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2261 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2262 one of the operands is a register.
2264 2011-06-20 Kai Tietz <ktietz@redhat.com>
2266 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2267 operations in combination with binary and.
2269 2011-06-20 Bernd Schmidt <bernds@codesourcery.com>
2271 * regrename.c (do_replace): Don't update notes.
2273 2011-06-20 Alan Modra <amodra@gmail.com>
2275 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
2276 of toc-relative address in CONST.
2277 (rs6000_delegitimize_address): Recognize changed address.
2278 (rs6000_legitimize_reload_address): Likewise.
2279 (rs6000_emit_move): Don't force these constants to memory.
2280 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
2281 toc-relative address in CONST.
2282 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
2283 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
2285 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
2287 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2288 (count_trailing_zeros): Likewise.
2290 2011-06-18 H.J. Lu <hongjiu.lu@intel.com>
2293 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2294 .init_array can be used with .ctors on targets.
2295 * configure: Regenerated.
2297 2011-06-18 Eric Botcazou <ebotcazou@adacore.com>
2299 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2300 if the element type is volatile.
2302 2011-06-18 Jan Hubicka <jh@suse.cz>
2304 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2306 (lto_symtab_resolve_can_prevail_p): Likewise.
2307 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
2308 * cgraphbuild.c (record_reference): Remove extra body alias code.
2309 (mark_load): Likewise.
2310 (mark_store): Likewise.
2311 * cgraph.h (varpool_node): Remove extra_name filed;
2312 add alias_of and extraname_alias.
2313 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
2314 (varpool_alias_aliased_node): New inline function.
2315 (varpool_variable_node): New function.
2316 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
2317 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
2318 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
2319 (input_varpool_node): Likewise.
2320 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
2321 (varpool_externally_visible_p): Remove extra body alias code.
2322 (function_and_variable_visibility): Likewise.
2323 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
2324 (ipa_pta_execute): Use it.
2325 * varpool.c (varpool_remove_node): Remove extra name alias code.
2326 (varpool_mark_needed_node): Likewise.
2327 (varpool_analyze_pending_decls): Analyze aliases.
2328 (assemble_aliases): New functoin.
2329 (varpool_assemble_decl): Use it.
2330 (varpool_create_variable_alias): New function.
2331 (varpool_extra_name_alias): Rewrite.
2332 (varpool_for_node_and_aliases): New function.
2334 2011-06-18 Jakub Jelinek <jakub@redhat.com>
2337 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
2338 last_arg_constant and last argument doesn't match its predicate,
2339 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
2340 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
2341 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
2342 spelling of error message.
2343 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
2344 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
2345 const_0_to_255_operand instead of const_int_operand.
2348 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
2350 * config/i386/sse.md (blendbits): Remove mode attribute.
2351 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2352 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2353 Check integer value of operand 3 in insn constraint.
2355 2011-06-17 Hans-Peter Nilsson <hp@axis.com>
2357 PR rtl-optimization/48542
2358 * reload.c (find_equiv_reg): Stop looking when finding a
2360 * reload1.c (reload_as_needed): Invalidate all reload
2361 registers when crossing a setjmp-type call.
2363 2011-06-16 Jeff Law <law@redhat.com>
2365 * tree-ssa-threadupdate.c (struct redirection_data): New field
2367 (THREAD_TARGET2): Define.
2368 (redirection_data_eq): Also check that the intermediate edge is equal.
2369 (lookup_redirection_data): Drop useless argument. Extract the
2370 outgoing_edge and intermediate edge from E. Callers updated.
2371 (copy_phi_args, update_destination_phis): New functions.
2372 (fix_duplicate_block_edges): Likewise.
2373 (create_edge_and_update_destination_phis): Duplicate all the edges
2374 hung off e->aux. Use copy_phi_args.
2375 (create_duplicates): Use fix_duplicate_block_edges.
2376 (fixup_template_block): Likewise.
2377 (redirect_edges): If necessary, redirect the joiner block's incoming
2378 edge to the duplicate of the joiner block.
2379 (thread_block): Don't muck up loops when threading through a joiner
2381 (thread_through_loop_header): Handle threading through a joiner block.
2382 (mark_threaded_blocks, register_jump_thread): Likewise.
2383 * tree-flow.h (register_jump_thread): Add new argument. Callers
2385 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2386 (thread_across_edge): Handle threading through a joiner block.
2388 2011-06-16 Martin Jambor <mjambor@suse.cz>
2390 PR tree-optimization/49343
2391 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
2392 calculate offset, provide 2nd operand for the new COMPONENT_REF.
2394 2011-06-16 Iain Sandoe <iains@gcc.gnu.org>
2396 * config/darwin-protos.h (machopic_select_rtx_section): Move to
2397 inside RTX_CODE ifdef.
2399 2011-06-16 Tom de Vries <tom@codesourcery.com>
2402 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2403 Disallow NULL pointer for pointer arithmetic.
2405 2011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2409 2011-06-10 Wei Guozhi <carrot@google.com>
2412 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2413 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2414 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2416 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2418 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2419 (arm_legitimate_ldrd_p): New prototype.
2420 (arm_output_ldrd): New prototype.
2421 * config/arm/arm.c (arm_check_ldrd_operands): New function.
2422 (arm_legitimate_ldrd_p): New function.
2423 (arm_output_ldrd): New function.
2425 2011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
2428 * doc/tm.texi.in: Update Copyright date.
2429 * doc/tm.texi: Regenerate.
2430 * targhooks.c (default_setup_incoming_varargs): Replace
2431 CUMULATIVE_ARGS* argument type with cumulative_args_t.
2432 (default_pretend_outgoing_varargs_named): Likewise.
2433 (hook_pass_by_reference_must_pass_in_stack): Likewise.
2434 (hook_callee_copies_named): Likewise.
2435 (default_function_arg_advance): Likewise.
2436 (default_function_arg): Likewise.
2437 (default_function_incoming_arg): Likewise.
2438 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2439 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2440 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2441 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2442 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2443 * targhooks.h (default_setup_incoming_varargs): Likewise.
2444 (default_pretend_outgoing_varargs_named): Likewise.
2445 (hook_pass_by_reference_must_pass_in_stack): Likewise.
2446 (hook_callee_copies_named): Likewise.
2447 (default_function_arg_advance): Likewise.
2448 (default_function_arg): Likewise.
2449 (default_function_incoming_arg): Likewise.
2450 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2451 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2452 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2453 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2454 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2455 * target.def (pass_by_reference): Likewise.
2456 (setup_incoming_varargs, strict_argument_naming): Likewise.
2457 (pretend_outgoing_varargs_named, callee_copies): Likewise.
2458 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
2459 (function_incoming_arg): Likewise.
2460 * target.h: Don't include "tm.h" .
2461 (cumulative_args_t): New typedef.
2462 [GCC_TM_H] (get_cumulative_args): New static inline function.
2463 [GCC_TM_H] (pack_cumulative_args): Likewise.
2464 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
2465 argument type with cumulative_args_t.
2466 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
2467 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
2468 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
2469 (frv_arg_partial_bytes, frv_function_arg): Likewise.
2470 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
2471 (frv_function_arg_1): Likewise.
2472 * config/s390/s390.c (s390_pass_by_reference): Likewise.
2473 (s390_function_arg_advance, s390_function_arg): Likewise.
2474 * config/m32c/m32c.c (m32c_function_arg): Likewise.
2475 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
2476 (m32c_strict_argument_naming): Likewise.
2477 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
2478 (spu_function_arg_advance): Likewise.
2479 (spu_setup_incoming_varargs): Likewise. Make static.
2480 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
2482 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
2483 CUMULATIVE_ARGS* argument type with cumulative_args_t.
2484 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
2485 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
2486 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
2487 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
2488 (mep_pass_by_reference, mep_function_arg): Likewise.
2489 (mep_function_arg_advance): Likewise.
2490 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
2491 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
2492 (m32r_function_arg, m32r_function_arg_advance): Likewise.
2493 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
2494 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
2495 (ix86_function_arg, ix86_pass_by_reference): Likewise.
2496 (ix86_setup_incoming_varargs): Likewise.
2497 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
2498 (sh_strict_argument_naming): Likewise.
2499 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
2500 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
2501 (sh_function_arg_advance, sh_function_arg): Likewise.
2502 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
2503 (pdp11_function_arg_advance): Likewise.
2504 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
2506 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
2507 * config/avr/avr.c (avr_function_arg): Likewise.
2508 (avr_function_arg_advance): Likewise.
2509 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
2510 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
2511 (xtensa_function_arg_1): Likewise.
2512 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
2514 (xstormy16_function_arg): Likewise.
2515 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
2516 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
2517 (fr30_function_arg_advance): Likewise.
2518 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2519 (lm32_function_arg, lm32_function_arg_advance): Likewise.
2520 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
2521 (moxie_function_arg, moxie_function_arg_advance): Likewise.
2522 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
2523 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
2524 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
2525 (cris_function_arg, cris_function_incoming_arg): Likewise.
2526 (cris_function_arg_advance, cris_function_arg_1): Likewise.
2527 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
2528 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
2529 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
2530 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
2531 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
2532 (mn10300_arg_partial_bytes): Likewise.
2533 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
2534 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
2535 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
2536 (ia64_function_arg_1): Likewise.
2537 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
2538 (m68k_function_arg): Likewise.
2539 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
2540 (rs6000_function_arg, setup_incoming_varargs): Likewise.
2541 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
2542 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
2543 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
2544 (picochip_arg_advance): Likewise.
2545 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
2546 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
2547 (mcore_function_arg_advance): Likewise.
2548 * config/score/score.c (score_pass_by_reference): Likewise.
2549 (score_function_arg_advance): Likewise.
2550 (score_arg_partial_bytes): Likewise. Make static.
2551 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
2552 * config/arm/arm.c (arm_arg_partial_bytes): Replace
2553 CUMULATIVE_ARGS* argument type with cumulative_args_t.
2554 (arm_function_arg, arm_function_arg_advance): Likewise.
2555 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
2556 * config/pa/pa.c (pa_pass_by_reference): Likewise.
2557 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
2558 (pa_function_arg): Likewise.
2559 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
2560 (mips_function_arg, mips_function_arg_advance): Likewise.
2561 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
2562 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
2563 * config/vax/vax.c (vax_function_arg): Likewise.
2564 (vax_function_arg_advance): Likewise.
2565 * config/h8300/h8300.c (h8300_function_arg): Likewise.
2566 (h8300_function_arg_advance): Likewise.
2567 * config/v850/v850.c (v850_pass_by_reference): Likewise.
2568 (v850_strict_argument_naming, v850_function_arg): Likewise.
2569 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
2570 (v850_setup_incoming_varargs): Likewise.
2571 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
2572 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
2573 (mmix_function_arg, mmix_pass_by_reference): Likewise.
2574 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
2576 * config/bfin/bfin.c (setup_incoming_varargs): Replace
2577 CUMULATIVE_ARGS* argument type with cumulative_args_t.
2578 (bfin_function_arg_advance, bfin_function_arg): Likewise.
2579 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
2580 * calls.c (emit_call_1): Change type of args_so_far to
2581 cumulative_args_t. Changed all callers.
2582 (initialize_argument_information): Likewise.
2583 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
2584 * dse.c (get_call_args): Likewise.
2585 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2586 * function.c (pass_by_reference, reference_callee_copied): Likewise.
2587 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
2588 New member args_so_far_v. Changed all users.
2589 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
2590 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2591 * config/mips/mips.c (mips_output_args_xfer): Likewise.
2592 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
2593 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2594 * config/microblaze/microblaze.c (microblaze_expand_prologue):
2596 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
2597 m32r_pass_by_reference.
2599 2011-06-16 Ira Rosen <ira.rosen@linaro.org>
2601 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
2602 argument to be a VEC of statements.
2603 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
2604 assert that pattern statements have to have their vector type set.
2605 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
2606 Change the first argument to be a VEC of statements. Update
2608 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
2609 (vect_handle_widen_mult_by_const): New function.
2610 (vect_recog_widen_mult_pattern): Change the first argument to be a
2611 VEC of statements. Update documentation. Check that the constant is
2612 INTEGER_CST. Support multiplication by a constant that fits an
2613 intermediate type - call vect_handle_widen_mult_by_const.
2614 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
2615 call. Handle additional pattern statements if necessary.
2617 2011-06-16 Nick Clifton <nickc@redhat.com>
2620 * config.gcc: Set cpu_type to v850 for any V850 architecture.
2621 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
2622 md_file, extra_modes, out_file and extra_options are these are all
2623 deduced from cpu_type.
2625 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
2627 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
2628 truncation mask to 63.
2630 2011-06-16 Georg-Johann Lay <avr@gjlay.de>
2634 * longlong.h: Add AVR support:
2635 (count_leading_zeros): New macro.
2636 (count_trailing_zeros): New macro.
2637 (COUNT_LEADING_ZEROS_0): New macro.
2638 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
2639 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
2640 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
2641 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
2642 (LIB2FUNCS_EXCLUDE): Add _clz.
2643 * config/avr/libgcc.S (XCALL): Move up in file.
2644 (XJMP): New C Macro.
2645 (DEFUN): New asm macro.
2646 (ENDF): New asm macro.
2647 (__ffssi2): New function.
2648 (__ffshi2): New function.
2649 (__loop_ffsqi2): New function.
2650 (__ctzsi2): New function.
2651 (__ctzhi2): New function.
2652 (__clzdi2): New function.
2653 (__clzsi2): New function.
2654 (__clzhi2): New function.
2655 (__paritydi2): New function.
2656 (__paritysi2): New function.
2657 (__parityhi2): New function.
2658 (__parityqi2): New function.
2659 (__popcounthi2): New function.
2660 (__popcountsi2): New function.
2661 (__popcountdi2): New function.
2662 (__popcountqi2): New function.
2663 (__bswapsi2): New function.
2664 (__bswapdi2): New function.
2665 (__ashldi3): New function.
2666 (__ashrdi3): New function.
2667 (__lshrdi3): New function.
2668 Fix suspicous lines.
2670 2011-06-16 Richard Guenther <rguenther@suse.de>
2672 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
2674 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
2676 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
2677 equality compares against zero for the lower bit.
2679 2011-06-16 Jakub Jelinek <jakub@redhat.com>
2681 PR tree-optimization/49419
2682 * tree-vrp.c (execute_vrp): Call init_range_assertions
2683 before estimate_numbers_of_iterations, call
2684 free_number_of_iterations_estimates before calling
2685 remove_range_assertions.
2687 2011-06-16 Revital Eres <revital.eres@linaro.org>
2689 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
2690 (struct partial_schedule): Add rows_length field.
2691 (verify_partial_schedule): Check rows_length.
2692 (ps_insert_empty_row): Handle rows_length.
2693 (create_partial_schedule): Likewise.
2694 (free_partial_schedule): Likewise.
2695 (reset_partial_schedule): Likewise.
2696 (create_ps_insn): Remove rest_count argument.
2697 (remove_node_from_ps): Update rows_length.
2698 (add_node_to_ps): Update rows_length and call create_ps_insn
2699 without passing row_rest_count.
2700 (rotate_partial_schedule): Update rows_length.
2702 2011-06-16 Revital Eres <revital.eres@linaro.org>
2704 * ddg.c (add_intra_loop_mem_dep): New function.
2705 (build_intra_loop_deps): Call it.
2707 2011-06-13 Jeff Law <law@redhat.com>
2709 * df-problems.c (df_lr_local_compute): Manually CSE
2710 PIC_OFFSET_TABLE_REGNUM.
2711 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
2712 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
2714 2011-06-13 Jan Hubicka <jh@suse.cz>
2716 * cgraphunit.c (handle_alias_pairs): New function.
2717 (cgraph_finalize_compilation_unit): Use it.
2718 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
2719 as externally visible.
2721 2011-06-15 Richard Guenther <rguenther@suse.de>
2723 * expr.c (expand_expr_real_2): Reduce all integral types to
2725 (expand_expr_real_1): Likewise.
2727 2011-06-15 Martin Jambor <mjambor@suse.cz>
2729 PR tree-optimization/48613
2730 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
2731 ipa_node_params_vector is NULL.
2733 2011-06-15 Jakub Jelinek <jakub@redhat.com>
2736 * dwarf2out.c (dw_loc_list_node): Add force field.
2737 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
2738 location in the list, even if it is modified before first real insn.
2739 (output_loc_list): Emit empty ranges with force flag set.
2740 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
2742 2011-06-15 Alexander Monakov <amonakov@ispras.ru>
2745 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
2746 (fence_to_rewind). Use it to notice when bookkeeping will be placed
2747 above a fence. Update comments.
2748 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
2749 placed just above it. Do not allow NULL place_to_insert.
2751 2011-06-15 Ira Rosen <ira.rosen@linaro.org>
2753 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
2754 (slpeel_tree_peel_loop_to_edge): Don't call
2755 remove_dead_stmts_from_loop.
2756 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2757 remove irrelevant pattern statements. For irrelevant statements
2758 check if it is the last statement of a detected pattern, use
2759 corresponding pattern statement instead.
2760 (destroy_loop_vec_info): No need to remove pattern statements,
2761 only free stmt_vec_info.
2762 (vect_transform_loop): For irrelevant statements check if it is
2763 the last statement of a detected pattern, use corresponding
2764 pattern statement instead.
2765 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
2766 pattern statements. Set basic block for the new statement.
2767 (vect_pattern_recog): Update documentation.
2768 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
2769 operands of pattern statements.
2770 (vectorizable_call): Fix printing. In case of a pattern statement
2771 use the lhs of the original statement when creating a dummy
2772 statement to replace the original call.
2773 (vect_analyze_stmt): For irrelevant statements check if it is
2774 the last statement of a detected pattern, use corresponding
2775 pattern statement instead.
2776 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
2777 statements use gsi of the original statement.
2779 2011-06-14 Joseph Myers <joseph@codesourcery.com>
2781 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
2782 common/common-target-def.h.
2783 * target.def (default_target_flags, handle_option,
2784 supports_split_stack, optimization_table, init_struct,
2785 except_unwind_info, unwind_tables_default, have_named_sections):
2786 Move to common/common-target.def.
2787 * target.h (enum opt_levels, struct default_options): Move to
2788 common/common-target.h.
2789 * targhooks.c (default_except_unwind_info,
2790 dwarf2_except_unwind_info, sjlj_except_unwind_info,
2791 default_target_handle_option, empty_optimization_table): Move to
2792 common/common-targhooks.c.
2793 * targhooks.h (default_except_unwind_info,
2794 dwarf2_except_unwind_info, sjlj_except_unwind_info,
2795 default_target_handle_option, empty_optimization_table): Move to
2796 common/common-targhooks.h.
2797 * common/common-target-def.h: Include common/common-targhooks.h.
2798 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
2800 * common/common-target.def (handle_option, option_init_struct,
2801 option_optimization_table, default_target_flags,
2802 except_unwind_info, supports_split_stack, unwind_tables_default,
2803 have_named_sections): Move from target.def.
2804 (HOOK_PREFIX): Undefine at end of file.
2805 * common/common-target.h: Include input.h.
2806 (enum opt_levels, struct default_options): Move from target.h.
2807 * common/common-targhooks.c, common/common-targhooks.h: New.
2808 * config.gcc (target_has_targetm_common): Default to yes.
2809 (moxie*): Set target_has_targetm_common=no.
2810 (hppa*-*-*): Don't set target_has_targetm_common=yes.
2811 * doc/tm.texi: Regenerate.
2812 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
2813 (C_TARGET_DEF_H): Add common/common-targhooks.h.
2814 (GCC_OBJS): Remove vec.o.
2815 (OBJS): Remove hooks.o and vec.o.
2816 (OBJS-libcommon-target): Add vec.o, hooks.o and
2817 common/common-targhooks.o.
2818 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
2819 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
2820 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
2821 cfglayout.o, $(out_object_file), $(common_out_object_file)):
2822 Update dependencies.
2823 (common/common-targhooks.o): New.
2824 * common/config/default-common.c: Include tm.h. Add FIXME comment.
2825 * common/config/pa/pa-common.c: Include more headers. Take
2826 copyright dates from pa.c.
2827 (pa_option_optimization_table, pa_handle_option,
2828 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
2829 TARGET_HANDLE_OPTION): Move from pa.c.
2830 * common/config/alpha/alpha-common.c,
2831 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
2832 common/config/bfin/bfin-common.c,
2833 common/config/cris/cris-common.c,
2834 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
2835 common/config/h8300/h8300-common.c,
2836 common/config/i386/i386-common.c,
2837 common/config/ia64/ia64-common.c,
2838 common/config/iq2000/iq2000-common.c,
2839 common/config/lm32/lm32-common.c,
2840 common/config/m32c/m32c-common.c,
2841 common/config/m32r/m32r-common.c,
2842 common/config/m68k/m68k-common.c,
2843 common/config/mcore/mcore-common.c,
2844 common/config/mep/mep-common.c,
2845 common/config/microblaze/microblaze-common.c,
2846 common/config/mips/mips-common.c,
2847 common/config/mmix/mmix-common.c,
2848 common/config/mn10300/mn10300-common.c,
2849 common/config/pdp11/pdp11-common.c,
2850 common/config/picochip/picochip-common.c,
2851 common/config/rs6000/rs6000-common.c,
2852 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
2853 common/config/score/score-common.c, common/config/sh/sh-common.c,
2854 common/config/sparc/sparc-common.c,
2855 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
2856 common/config/vax/vax-common.c,
2857 common/config/xstormy16/xstormy16-common.c,
2858 common/config/xtensa/xtensa-common.c: New.
2859 * config/alpha/alpha.c: Include common/common-target.h.
2860 (alpha_option_optimization_table, alpha_handle_option,
2861 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2862 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
2863 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
2864 * config/arm/arm.c (arm_option_optimization_table,
2865 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2866 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
2868 * config/avr/avr.c (avr_option_optimization_table,
2869 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
2871 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
2872 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
2873 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
2874 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
2875 * config/cris/cris.c (cris_option_optimization_table,
2876 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2877 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
2879 * config/fr30/fr30.c (fr30_option_optimization_table,
2880 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
2882 * config/frv/frv.c (frv_option_optimization_table,
2883 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
2884 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
2885 * config/h8300/h8300.c (h8300_option_optimization_table,
2886 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2887 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
2888 * config/i386/i386-protos.h (ix86_handle_option): Declare.
2889 * config/i386/i386.c: Include common/common-target.h.
2890 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
2891 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
2892 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
2893 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
2894 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
2895 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
2896 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
2897 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
2898 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
2899 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
2900 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
2901 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
2902 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
2903 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
2904 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
2905 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
2906 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
2907 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
2908 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
2909 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
2910 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
2911 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
2912 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
2913 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
2914 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
2915 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
2916 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
2917 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
2918 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
2919 ix86_option_optimization_table, ix86_option_init_struct,
2920 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
2921 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
2922 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
2924 * config/i386/t-i386 (i386.o): Update dependencies.
2925 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
2926 * config/ia64/ia64.c (ia64_option_optimization_table,
2927 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
2928 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2929 ia64_handle_option): Move to ia64-common.c.
2930 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
2931 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
2932 * config/lm32/lm32.c (lm32_option_optimization_table,
2933 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
2935 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
2937 * config/m32r/m32r.c (m32r_option_optimization_table,
2938 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2939 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
2940 m32r_handle_option): Move to m32r-common.c.
2941 (m32r_memory_move_cost): Remove comment referring to
2942 TARGET_HANDLE_OPTION.
2943 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
2944 Move to m68k-common.c.
2945 * config/mcore/mcore.c (mcore_option_optimization_table,
2946 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2947 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
2948 * config/mep/mep.c (mep_option_optimization_table,
2949 mep_handle_option, TARGET_HANDLE_OPTION,
2950 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
2951 Move to mep-common.c.
2952 * config/microblaze/microblaze.c
2953 (microblaze_option_optimization_table,
2954 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2955 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
2956 * config/mips/mips.c (mips_handle_option,
2957 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
2958 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
2960 * config/mmix/mmix.c (mmix_option_optimization_table,
2961 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
2962 Move to mmix-common.c.
2963 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
2964 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
2965 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2966 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
2967 * config/pa/pa.c: Include common/common-target.h.
2968 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
2969 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2970 pa_handle_option): Move to pa-common.c.
2971 (pa_option_override): Use targetm_common.except_unwind_info.
2972 (pa_asm_output_mi_thunk, pa_function_section): Use
2973 targetm_common.have_named_sections.
2974 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
2975 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2976 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
2977 pdp11_handle_option, pdp11_option_init_struct): Move to
2979 * config/picochip/picochip.c (picochip_option_optimization_table,
2980 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
2981 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
2982 * config/rs6000/rs6000.c: Include common/common-target.h.
2983 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
2984 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
2985 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
2986 rs6000_handle_option): Move to rs6000-common.c.
2987 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
2988 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
2989 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
2990 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
2991 * config/s390/s390.c (processor_flags_table,
2992 s390_option_optimization_table, s390_option_init_struct,
2993 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
2994 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
2995 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
2996 * config/s390/s390.h (processor_flags_table): Declare.
2997 * config/score/score.c (score_option_optimization_table,
2998 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2999 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3000 score_handle_option): Move to score-common.c.
3001 * config/sh/sh.c (sh_option_optimization_table,
3002 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3003 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3004 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3005 * config/sparc/sparc.c: Include common/common-target.h.
3006 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3007 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3008 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3009 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3010 spu_option_init_struct): Move to spu-common.c.
3011 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3012 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3013 * config/v850/v850.c (small_memory_physical_max,
3014 v850_handle_memory_optionn v850_handle_option,
3015 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3016 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3018 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
3019 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3020 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3021 Move to xtensa-common.c.
3022 * cfglayout.c: Include common/common-target.h.
3023 (fixup_reorder_chain): Use targetm_common.have_named_sections.
3024 * cfgrtl.c: Include common/common-target.h.
3025 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3026 targetm_common.have_named_sections.
3027 * dbxout.c: Include common/common-target.h.
3028 (dbxout_function_end): Use targetm_common.have_named_sections.
3029 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3030 targetm_common.except_unwind_info.
3031 * dwarf2out.c: Include common/common-target.h.
3032 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3033 dwarf2out_begin_prologue, dwarf2out_frame_init,
3034 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3035 targetm_common.except_unwind_info.
3036 * except.c: Include common/common-target.h.
3037 (init_eh, finish_eh_generation,
3038 output_one_function_exception_table): Use
3039 targetm_common.except_unwind_info.
3040 (switch_to_exception_section): Use targetm_common.have_named_sections.
3041 * explow.c: Include common/common-target.h.
3042 * expr.c: Include common/common-target.h.
3043 (build_personality_function): Use targetm_common.except_unwind_info.
3044 * function.c: Include common/common-target.h.
3045 (expand_function_end): Use targetm_common.except_unwind_info.
3046 * haifa-sched.c: Include common/common-target.h.
3047 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
3048 * lto-opts.c: Include common/common-target.h instead of target.h.
3049 (lto_reissue_options): Use targetm_common.handle_option.
3050 * opts.c: Include common/common-target.h.
3051 (target_handle_option): Use targetm_common.handle_option.
3052 (init_options_struct): Update comment referring to
3053 targetm.target_option.optimization. Use
3054 targetm_common.default_target_flags,
3055 targetm_common.unwind_tables_default and
3056 targetm_common.option_init_struct.
3057 (default_options_optimization): Use
3058 targetm_common.option_optimization_table.
3059 (finish_options): Use targetm_common.except_unwind_info,
3060 targetm_common.unwind_tables_default,
3061 targetm_common.have_named_sections and
3062 targetm_common.supports_split_stack.
3063 * toplev.c: Include common/common-target.h.
3064 (process_options): Use targetm_common.have_named_sections.
3065 * tree-tailcall.c: Include common/common-target.h.
3066 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
3067 * tree.c: Include common/common-target.h.
3068 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
3069 * varasm.c: Include common/common-target.h.
3070 (resolve_unique_section, hot_function_section,
3071 default_function_section): Use targetm_common.have_named_sections.
3073 2011-06-14 Easwaran Raman <eraman@google.com>
3075 PR rtl-optimization/44194
3076 * dse.c: Include tree-flow.h
3077 (insn_info): Add new field non_frame_wild_read.
3078 (group_info): Add new fields escaped_n and escaped_p.
3079 (kill_on_calls): New variable.
3080 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3081 (dse_step0): Initialize kill_on_calls.
3082 (can_escape): New function.
3083 (set_usage_bits): Add additional parameter; record information
3084 about escaped locations.
3085 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
3086 (dse_step2_nospill): Set kill_on_calls based on
3087 group->escaped_n and group->escaped_n.
3088 (add_wild_read): Refactor into...
3089 (reset_active_stores): ... New function, and
3090 (free_read_records): ... New function.
3091 (add_non_frame_wild_read): New function.
3092 (scan_insn): Call add_non_frame_wild_read on non-const calls.
3093 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
3094 (dse_step5_nospill): Call scan_reads_nospill for instructions
3095 marked as non_frame_wild_read.
3096 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
3098 2011-06-14 Joseph Myers <joseph@codesourcery.com>
3100 * common/common-target-def.h, common/common-target.def,
3101 common/common-target.h, common/config/default-common.c,
3102 common/config/pa/pa-common.c: New files.
3103 * Makefile.in (common_out_file, common_out_object_file,
3104 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3105 (OBJS-libcommon-target): Include $(common_out_object_file).
3106 (prefix.o): Update dependencies.
3107 ($(common_out_object_file), common/common-target-hooks-def.h,
3108 s-common-target-hooks-def-h): New.
3109 (s-tm-texi): Also check timestamp on common-target.def.
3110 (build/genhooks.o): Update dependencies.
3111 * config.gcc (common_out_file, target_has_targetm_common): Define.
3112 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3113 TARGET_ALWAYS_STRIP_DOTDOT.
3114 * configure.ac (common_out_object_file): Define.
3115 (common_out_file, common_out_object_file): Substitute.
3116 (common): Create directory.
3117 * configure: Regenerate.
3118 * doc/tm.texi.in (targetm_common): Document.
3119 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3120 * doc/tm.texi: Regenerate.
3121 * genhooks.c (hook_array): Also include common/common-target.def.
3122 * prefix.c (tm.h): Don't include.
3123 (common/common-target.h): Include.
3124 (ALWAYS_STRIP_DOTDOT): Don't define.
3125 (update_path): Use targetm_common.always_strip_dotdot instead of
3126 ALWAYS_STRIP_DOTDOT.
3127 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3129 2011-06-14 David Li <davidxl@google.com>
3131 * passes.c (execute_function_todo): Remove TODO_dump_func.
3132 (execute_one_pass): Remove TODO_dump_func.
3133 (execute_function_dump): New function.
3134 * tree-vrp.c: Remove TODO_dump_func.
3135 * regrename.c: Remove TODO_dump_func.
3136 * fwprop.c: Remove TODO_dump_func.
3137 * tree-into-ssa.c: Remove TODO_dump_func.
3138 * tree-complex.c: Remove TODO_dump_func.
3139 * tracer.c: Remove TODO_dump_func.
3140 * tree-loop-distribution.c: Remove TODO_dump_func.
3141 * postreload-gcse.c: Remove TODO_dump_func.
3142 * postreload.c: Remove TODO_dump_func.
3143 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3144 * tree-tailcall.c: Remove TODO_dump_func.
3145 * ipa-cp.c: Remove TODO_dump_func.
3146 * final.c: Remove TODO_dump_func.
3147 * tree-emutls.c: Remove TODO_dump_func.
3148 * omp-low.c: Remove TODO_dump_func.
3149 * tree-ssa-dse.c: Remove TODO_dump_func.
3150 * tree-ssa-uncprop.c: Remove TODO_dump_func.
3151 * auto-inc-dec.c: Remove TODO_dump_func.
3152 * reorg.c: Remove TODO_dump_func.
3153 * tree-ssa-copyrename.c: Remove TODO_dump_func.
3154 * tree-ssa-ccp.c: Remove TODO_dump_func.
3155 * compare-elim.c: Remove TODO_dump_func.
3156 * mode-switching.c: Remove TODO_dump_func.
3157 * modulo-sched.c: Remove TODO_dump_func.
3158 * tree-call-cdce.c: Remove TODO_dump_func.
3159 * cse.c: Remove TODO_dump_func.
3160 * web.c: Remove TODO_dump_func.
3161 * tree-stdarg.c: Remove TODO_dump_func.
3162 * lto-streamer-out.c: Remove TODO_dump_func.
3163 * tree-ssa-math-opts.c: Remove TODO_dump_func.
3164 * tree-ssa-dom.c: Remove TODO_dump_func.
3165 * tree-nrv.c: Remove TODO_dump_func.
3166 * loop-init.c: Remove TODO_dump_func.
3167 * gimple-low.c: Remove TODO_dump_func.
3168 * ipa-inline.c: Remove TODO_dump_func.
3169 * tree-ssa-sink.c: Remove TODO_dump_func.
3170 * jump.c: Remove TODO_dump_func.
3171 * ifcvt.c: Remove TODO_dump_func.
3172 * tree-ssa-loop.c: Remove TODO_dump_func.
3173 * recog.c: Remove TODO_dump_func.
3174 * dse.c: Remove TODO_dump_func.
3175 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3176 * matrix-reorg.c: Remove TODO_dump_func.
3177 * tree-eh.c: Remove TODO_dump_func.
3178 * regmove.c: Remove TODO_dump_func.
3179 * function.c: Remove TODO_dump_func.
3180 * tree-vectorizer.c: Remove TODO_dump_func.
3181 * ipa-split.c: Remove TODO_dump_func.
3182 * gcse.c: Remove TODO_dump_func.
3183 * tree-if-conv.c: Remove TODO_dump_func.
3184 * init-regs.c: Remove TODO_dump_func.
3185 * tree-ssa-phiopt.c: Remove TODO_dump_func.
3186 * implicit-zee.c: Remove TODO_dump_func.
3187 * lower-subreg.c: Remove TODO_dump_func.
3188 * bt-load.c: Remove TODO_dump_func.
3189 * tree-dfa.c: Remove TODO_dump_func.
3190 * except.c: Remove TODO_dump_func.
3191 * emit-rtl.c: Remove TODO_dump_func.
3192 * store-motion.c: Remove TODO_dump_func.
3193 * cfgexpand.c: Remove TODO_dump_func.
3194 * tree-cfgcleanup.c: Remove TODO_dump_func.
3195 * cfgcleanup.c: Remove TODO_dump_func.
3196 * tree-ssa-pre.c: Remove TODO_dump_func.
3197 * tree-sra.c: Remove TODO_dump_func.
3198 * tree-mudflap.c: Remove TODO_dump_func.
3199 * tree-ssa-copy.c: Remove TODO_dump_func.
3200 * cfglayout.c: Remove TODO_dump_func.
3201 * tree-ssa-forwprop.c: Remove TODO_dump_func.
3202 * tree-ssa-dce.c: Remove TODO_dump_func.
3203 * ira.c: Remove TODO_dump_func.
3204 * tree-ssa.c: Remove TODO_dump_func.
3205 * integrate.c: Remove TODO_dump_func.
3206 * tree-optimize.c: Remove TODO_dump_func.
3207 * tree-ssa-phiprop.c: Remove TODO_dump_func.
3208 * tree-object-size.c: Remove TODO_dump_func.
3209 * combine.c: Remove TODO_dump_func.
3210 * bb-reorder.c: Remove TODO_dump_func.
3211 * cprop.c: Remove TODO_dump_func.
3212 * var-tracking.c: Remove TODO_dump_func.
3213 * tree-profile.c: Remove TODO_dump_func.
3214 * tree-vect-generic.c: Remove TODO_dump_func.
3215 * reg-stack.c: Remove TODO_dump_func.
3216 * sched-rgn.c: Remove TODO_dump_func.
3217 * tree-ssa-structalias.c: Remove TODO_dump_func.
3218 * tree-switch-conversion.c: Remove TODO_dump_func.
3219 * tree-cfg.c: Remove TODO_dump_func.
3220 * tree-ssa-reassoc.c: Remove TODO_dump_func.
3221 * combine-stack-adj.c: Remove TODO_dump_func.
3222 * dce.c: Remove TODO_dump_func.
3223 * tree-ssanames.c: Remove TODO_dump_func.
3224 * regcprop.c: Remove TODO_dump_func.
3226 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
3229 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3230 and properly handle result not in Pmode.
3232 2011-06-14 Robert Millan <rmh@gnu.org>
3234 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3235 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3238 * config/i386/kfreebsd-gnu64.h: New file.
3239 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3240 with `i386/kfreebsd-gnu64.h'.
3242 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3243 (GNU_USER_LINK_EMULATION64): New macros.
3244 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3245 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3246 of hardcoding `elf_i386' and `elf_x86_64'.
3248 2011-06-14 Nick Clifton <nickc@redhat.com>
3251 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3254 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3256 2011-06-14 Jakub Jelinek <jakub@redhat.com>
3259 * tree.h (DECL_NONSHAREABLE): Define.
3260 (struct tree_decl_common): Change decl_common_unused to
3261 decl_nonshareable_flag.
3262 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3263 Ignore vars with DECL_NONSHAREABLE bit set.
3264 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
3265 on stores to automatic aggregate vars.
3267 PR rtl-optimization/49390
3269 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
3271 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3274 2011-06-14 Zdenek Dvorak <ook@ucw.cz>
3275 Tom de Vries <tom@codesourcery.com>
3278 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
3279 Document changed semantics.
3280 (max_stmt_executions, max_stmt_executions_int): Declare.
3281 * tree-data-ref.c (estimated_loop_iterations)
3282 (estimated_loop_iterations_int): Move functions...
3283 * tree-ssa-loop-niter.c (estimated_loop_iterations)
3284 (estimated_loop_iterations_int): here.
3285 (record_estimate): Change nb_iterations_upper_bound and
3286 nb_iterations_estimate semantics.
3287 (max_stmt_executions, max_stmt_executions_int): New function.
3288 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
3289 (max_stmt_executions_tree): this.
3290 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
3291 estimated_loop_iterations_tree.
3292 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
3293 max_stmt_executions_int instead of estimated_loop_iterations_int.
3294 * predict.c (predict_loops): Idem.
3295 * tree-parloops.c (parallelize_loops): Idem.
3296 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
3297 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
3298 (init_omega_for_ddr_1): Idem.
3299 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
3300 (loop_prefetch_arrays): Idem
3301 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
3302 max_stmt_executions instead of estimated_loop_iterations.
3303 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
3304 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
3305 instead of nb_iterations_upper_bound.
3307 2011-06-13 Jan Hubicka <jh@suse.cz>
3309 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3311 2011-06-14 Richard Henderson <rth@redhat.com>
3314 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
3315 (based_loc_descr): Assert it's true.
3316 (compute_frame_pointer_to_fb_displacement): Set it, rather than
3317 aborting immediately.
3319 2011-06-14 Sanjin Liu <scliu@faraday-tech.com>
3320 Mingfeng Wu <mingfeng@faraday-tech.com>
3322 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3324 2011-06-13 Jan Hubicka <jh@suse.cz>
3326 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3328 2011-06-13 Jan Hubicka <jh@suse.cz>
3330 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
3331 similarly to DECL_COMDAT.
3332 * cgraphunit.c (cgraph_analyze_function): Likewise.
3333 * ipa.c (function_and_variable_visibility): Likewise.
3335 2011-06-13 Jan Hubicka <jh@suse.cz>
3337 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3338 BINFO_VIRTUALS when streaming for ltrans unit.
3340 2011-06-13 David Edelsohn <dje.gcc@gmail.com>
3342 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3343 (movdi_internal64): Same.
3345 2011-06-13 Edmar Wienskoski <edmar@freescale.com>
3348 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
3349 a set of similar patterns, where the MATCH_OPERAND for the function
3350 argument is replaced with individual references to hardware registers.
3351 (save_fpregs_<mode>): Ditto
3352 (restore_gpregs_<mode>): Ditto
3353 (return_and_restore_gpregs_<mode>): Ditto
3354 (return_and_restore_fpregs_<mode>): Ditto
3355 (return_and_restore_fpregs_aix_<mode>): Ditto
3357 2011-06-13 Jan Hubicka <jh@suse.cz>
3359 * ipa-utils.c (postorder_stack): New structure.
3360 (ipa_reverse_postorder): Handle aliases.
3362 2011-06-13 Jan Hubicka <jh@suse.cz>
3364 * ipa-inline.c (reset_edge_caches): Walk aliases.
3365 (update_caller_keys): Do not test inlinability of aliases.
3366 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
3367 (do_estimate_growth): Fix typo.
3369 2011-06-13 Jan Hubicka <jh@suse.cz>
3371 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
3372 (can_remove_node_now_p): ... here; handle same comdat groups.
3373 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
3374 (inline_call): Update use of can_remove_node_now_p.
3376 2011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
3378 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
3379 condition to disallow non-identical memory locations.
3380 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
3381 preference to bit manipulation instructions.
3383 2011-06-13 Jan Hubicka <jh@suse.cz>
3385 * cgraph.c (cgraph_for_node_thunks_and_aliases,
3386 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
3387 (nonremovable_p): New function.
3388 (cgraph_can_remove_if_no_direct_calls_p): New function.
3389 (used_from_object_file_p): New functoin.
3390 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for