OSDN Git Service

dwarf2: Move CFI output routines to dwarf2cfi.c.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-09  Richard Henderson  <rth@redhat.com>
2
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.
15
16 2011-07-09  Richard Henderson  <rth@redhat.com>
17
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.
26
27 2011-07-09  Richard Henderson  <rth@redhat.com>
28
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
36         the cie to the fde.
37         * config/mips/mips.c (mips_frame_set): Remove special case for
38         DWARF_FRAME_RETURN_COLUMN.
39
40 2011-07-09  Richard Henderson  <rth@redhat.com>
41
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.
46
47 2011-07-09  Richard Henderson  <rth@redhat.com>
48
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.
53
54 2011-07-09  Richard Henderson  <rth@redhat.com>
55
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.
60         * varasm.c: Likewise.
61
62 2011-07-09  Richard Henderson  <rth@redhat.com>
63
64         PR debug/49686
65         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
66         (create_cfi_notes): ... do it here instead.
67
68 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
69
70         PR debug/49676
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
74         constant.
75
76 2011-07-09  Richard Henderson  <rth@redhat.com>
77
78         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
79         (prologue, epilogue): New.
80         (return, *rts): 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.
90
91 2011-07-09  Richard Henderson  <rth@redhat.com>
92
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.
99
100 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
101
102         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
103         (FP_REG_P): Delete.
104         (IN_OR_GLOBAL_P): Likewise.
105
106 2011-07-08  Jason Merrill  <jason@redhat.com>
107
108         PR c++/45437
109         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
110         compound assignment.
111
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.
116
117 2011-07-08  Richard Henderson  <rth@redhat.com>
118
119         PR bootstrap/49680
120         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
121         any tablejump vector.
122
123         PR bootstrap/49680
124         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
125         end of the prologue.
126
127 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
128
129         PR target/49621
130         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
131         CONST0_RTX (dest_mode) instead of const0_rtx as second operand
132         of NE.
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):
140         Likewise.
141
142 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
143
144         * graphite-dependences.c (build_alias_set_powerset): Remove
145         continue from loop, add one more assert.
146
147 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
148         
149         PR target/46779
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.
156
157 2011-07-08  Julian Brown  <julian@codesourcery.com>
158
159         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
160         big-endian mode.
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.
169
170 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
171
172         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
173         in terms of another.
174         (write_attr_value): Write a cast if necessary.
175
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.
183
184 2011-07-08  Richard Guenther  <rguenther@suse.de>
185
186         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
187         folding.
188
189 2011-07-08  Kai Tietz  <ktietz@redhat.com>
190
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.
195
196 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
197
198         PR middle-end/49519
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.
203
204 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
205
206         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
207         of magic '31'.
208
209 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
210
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):
220         Likewise.
221         * convert.c (convert_to_integer): Likewise.
222         * expmed.c (expand_shift_1): Likewise.
223
224         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
225         a bitsize.
226
227         * optabs.c (expand_binop): Tighten conditions for doubleword
228         expansions.
229         (widen_bswap): Assert that mode bitsize and precision are the
230         same.
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.
235
236 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
237
238         * Makefile.in (LIBGCOV): Remove.
239         (libgcc.mvars): Remove LIBGCOV.
240         * libgov.c: Move to ../libgcc.
241
242 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
243
244         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
245
246 2011-07-08  Martin Jambor  <mjambor@suse.cz>
247
248         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
249         is too big for total scalarization.
250
251 2011-07-07  Richard Henderson  <rth@redhat.com>
252
253         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
254         (DBX_DEBUGGING_INFO): Undef.
255
256 2011-07-07  Richard Henderson  <rth@redhat.com>
257
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.
263
264 2011-07-07  Richard Henderson  <rth@redhat.com>
265
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.
284
285 2011-07-07  Richard Henderson  <rth@redhat.com>
286
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.
301
302 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
303             Richard Henderson  <rth@redhat.com>
304
305         * dwarf2cfi.c (add_cfi): Remove.
306         (dwarf2out_cfi_label): Remove force argument.  Only generate the
307         label name.
308         (add_fde_cfi): Simplify the different code paths.
309         (add_cie_cfi): New.
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.
328
329 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
330             Richard Henderson  <rth@redhat.com>
331
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.
350
351 2011-07-07  Richard Henderson  <rth@redhat.com>
352
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 ...
358         * rtl.h: ... here.
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.
391
392 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
393
394         PR target/49660
395         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
396         MASK_V8PLUS, remove commented out flag and reorder.
397
398 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
399
400         PR c/49644
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
403         operands.
404
405 2011-07-07  Martin Jambor  <mjambor@suse.cz>
406
407         PR middle-end/49495
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.
411
412 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
413
414         * config.gcc (*local*): Remove.
415         * doc/install-old.texi: Don't mention local configurations.
416
417 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
418
419         PR debug/49522
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.
424
425 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
426
427         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa:
428         Remove.
429
430 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
431
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.
453
454 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
455
456         * config.gcc: Support --with-multilib-list for x86 Linux
457         targets.
458
459         * configure.ac: Mention x86-64 for --with-multilib-list.
460         * configure: Regenerated.
461
462         * config/i386/gnu-user64.h (SPEC_64): Support x32.
463         (SPEC_32): Likewise.
464         (ASM_SPEC): Likewise.
465         (LINK_SPEC): Likewise.
466         (TARGET_THREAD_SSP_OFFSET): Likewise.
467         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
468         (SPEC_X32): New.
469
470         * config/i386/i386.h (TARGET_X32): New.
471         (TARGET_LP64): New.
472         (LONG_TYPE_SIZE): Likewise.
473         (POINTER_SIZE): Likewise.
474         (POINTERS_EXTEND_UNSIGNED): Likewise.
475         (OPT_ARCH64): Support x32.
476         (OPT_ARCH32): Likewise.
477
478         * config/i386/i386.opt (mx32): New.
479
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.
484
485         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
486         (BIONIC_DYNAMIC_LINKERX32): Likewise.
487         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
488
489         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
490
491         * doc/install.texi: Document --with-multilib-list for
492         Linux/x86-64.
493
494         * doc/invoke.texi: Document -mx32.
495
496 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
497
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.
502
503 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
504
505         * reload1.c (choose_reload_regs): Use mode sizes to check whether
506         an old reload register completely defines the required value.
507
508 2011-07-07  Richard Guenther  <rguenther@suse.de>
509
510         * fold-const.c (fold_unary_loc): Do not strip sign-changes
511         for NEGATE_EXPR.
512
513 2011-07-07  Richard Guenther  <rguenther@suse.de>
514
515         * tree-vrp.c (simplify_conversion_using_ranges): New function.
516         (simplify_stmt_using_ranges): Call it.
517
518 2011-07-07  Kai Tietz  <ktietz@redhat.com>
519
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.
524
525 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
526
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.
531
532 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
533
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
543         false.
544         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
545         false.
546         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
547         false.
548         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
549         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to
550         false.
551         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to
552         false.
553
554 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
555
556         PR middle-end/49640
557         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF
558         operands and last COMPONENT_REF operand call gimplify_expr on it
559         if non-NULL.
560
561 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
562
563         PR libmudflap/49550
564         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
565
566 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
567
568         PR target/39150
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]*):
591         Document.
592         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
593         configuration.
594         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
595
596 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
597
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.
604
605 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
606         
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.
620
621 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
622
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.
634
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):
645         Likewise.
646
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.
666
667         Revert:
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
673         manually.
674
675 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
676
677         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
678         declaration.
679         (rs6000_save_toc_in_prologue_p): Ditto.
680
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.
684
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
695         the call body.
696         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
697         TOC in the prologue.
698
699         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
700         register numbers.
701         (TOC_REGNUM): Ditto.
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
713         pointer.
714         (call_indirect_aix32): Delete, rewrite AIX indirect function
715         calls.
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.
726         (call_value): Ditto.
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.
737
738         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
739         -mno-r11 documentation.
740
741 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
742
743         PR other/49658
744         * doc/extend.texi (Compound Literals): Fix typo.
745
746 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
747
748         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add
749         __ARM_FEATURE_DSP.
750
751 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
752
753         * configure.ac (plugin-version.h): Generate
754         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
755         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
756         macros.
757
758         * configure: Regenerate.
759
760         * doc/plugins.texi (Building GCC plugins): Mention
761         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
762
763 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
764
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.
777
778 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
779
780         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
781
782 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
783
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):
797         Likewise.
798         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
799
800         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
801
802 2011-07-06  Richard Guenther  <rguenther@suse.de>
803
804         PR tree-optimization/49645
805         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
806         register variables.
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.
813
814 2011-07-06  Ian Lance Taylor  <iant@google.com>
815
816         * doc/install.texi (Configuration): It's
817         --enable-gnu-indirect-function, not --enable-indirect-function.
818
819 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
820
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
826         manually.
827
828 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
829
830         PR middle-end/47383
831         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
832         address computation and convert to address_mode if needed.
833
834 2011-07-06  Richard Guenther  <rguenther@suse.de>
835
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.
842
843 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
844
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.
851
852 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
853
854         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
855         override CASE_VALUES_THRESHOLD.
856
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.
861
862         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
863
864         * doc/invoke.texi (--param case-values-threshold): Document.
865
866 2011-07-05  Richard Henderson  <rth@redhat.com>
867
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.
877
878 2011-07-05  Richard Henderson  <rth@redhat.com>
879
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
883         the alloc insn.
884
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.
888
889         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
890         indicate the return address save.
891         (process_cfa_register): Likewise.
892
893         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
894         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
895
896         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
897         for ar.pfs save at alloc insn.
898
899 2011-07-05  Richard Henderson  <rth@redhat.com>
900
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
904         stack pointer save.
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.
909
910 2011-07-05  Richard Henderson  <rth@redhat.com>
911
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.
922
923 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
924
925         PR middle-end/47715
926         * calls.c (precompute_register_parameters): Promote the function
927         argument before checking non-legitimate constant.
928
929 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
930
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.
941
942 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
943
944         * graphite-clast-to-gimple.c (precision_for_value): Removed.
945         (precision_for_interval): Removed.
946         (gcc_type_for_interval): Use mpz_sizeinbase.
947
948 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
949
950         * graphite-ppl.h (value_max): Correct computation of max.
951
952 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
953
954         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
955
956 2011-07-05  Richard Guenther  <rguenther@suse.de>
957
958         * c-decl.c (c_init_decl_processing): Defer building common
959         tree nodes to c_common_nodes_and_builtins.
960
961 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
962
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.
971
972 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
973
974         PR rtl-optimization/47449
975         * fwprop.c (forward_propagate_subreg): Don't propagate hard
976         register nor zero/sign extended hard register.
977
978 2011-07-05  Richard Guenther  <rguenther@suse.de>
979
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
985         group association.
986
987 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
988
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
993         PLUS arguments.
994
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
1001         around.
1002
1003         PR debug/49602
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.
1007
1008 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
1009
1010         PR target/49600
1011         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1012         general register to memory for !TARGET_INTER_UNIT_MOVES.
1013
1014 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1015
1016         PR target/44643
1017         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1018         instead of TREE_READONLY.
1019
1020 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1021
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.
1035
1036 2011-07-04  Richard Guenther  <rguenther@suse.de>
1037
1038         PR tree-optimization/49615
1039         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1040         basic-block index check.
1041
1042 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1043
1044         * longlong.h (count_leading_zeros, count_trailing_zeros,
1045         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1046         resp. 64.
1047
1048 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
1049
1050         PR tree-optimization/49610
1051         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1052         a basic block.
1053
1054 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1055             Olivier Hainque  <hainque@adacore.com>
1056             Nicolas Setton  <setton@adacore.com>
1057
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.
1066
1067 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1068
1069         * tree-object-size.c (pass_through_call): Handle
1070         BUILT_IN_ASSUME_ALIGNED.
1071
1072 2011-07-01  Martin Jambor  <mjambor@suse.cz>
1073
1074         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1075
1076 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1077
1078         PR middle-end/48016
1079         * explow.c (update_nonlocal_goto_save_area): Use proper mode
1080         for stack save area.
1081         * function.c (expand_function_start): Likewise.
1082
1083 2011-07-01  Richard Guenther  <rguenther@suse.de>
1084
1085         PR middle-end/49596
1086         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1087         may have unknown refs.
1088
1089 2011-07-01  Kai Tietz  <ktietz@redhat.com>
1090
1091         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1092
1093 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1094
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.
1098
1099 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1100
1101         PR libmudflap/49549
1102         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1103
1104 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1105
1106         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1107         [idx]= and [idx1 ... idx2]= before initializers if needed for
1108         array initializers.
1109
1110 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
1111
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.
1118
1119 2011-07-01  Richard Guenther  <rguenther@suse.de>
1120
1121         PR tree-optimization/49603
1122         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1123
1124 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1125
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
1133         computation.
1134         (analyze_all_variable_accesses): Call completely_scalarize_var instead
1135         of completely_scalarize_record.
1136
1137 2011-06-30  Richard Henderson  <rth@redhat.com>
1138
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.
1147
1148 2011-06-30  Richard Henderson  <rth@redhat.com>
1149
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.
1154
1155 2011-06-30  Richard Henderson  <rth@redhat.com>
1156
1157         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1158         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1159
1160 2011-06-30  Richard Henderson  <rth@redhat.com>
1161
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.
1174
1175 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1176
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.
1180
1181 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1182
1183         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1184         unconditionally.
1185
1186 2011-06-30  Richard Guenther  <rguenther@suse.de>
1187
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.
1196
1197 2011-06-30  Richard Guenther  <rguenther@suse.de>
1198
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
1204         invariant loads.
1205
1206 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1207
1208         PR tree-optimization/49094
1209         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1210         (build_accesses_from_assign): Use it.
1211
1212 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1213
1214         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1215         handling of BUILT_IN_ASSUME_ALIGNED.
1216
1217         PR debug/49364
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.
1222
1223 2011-06-30  Nick Clifton  <nickc@redhat.com>
1224
1225         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1226         for the V850E.
1227
1228 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1229
1230         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1231         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1232
1233 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
1234
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
1241         have its own uses.
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
1246         if necessary.
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.
1252
1253 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
1254
1255         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1256         option.
1257         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1258         entry.
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.
1266
1267 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1268
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.
1275
1276 2011-06-29  Richard Guenther  <rguenther@suse.de>
1277
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.
1283
1284 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1285
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.
1290
1291 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1292
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.
1303
1304 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1305
1306         * config/avr/avr.c (avr_encode_section_info): Dispatch to
1307         default_encode_section_info.
1308
1309 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
1310
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
1316         for functions here.
1317         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1318
1319 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
1320
1321         PR debug/49567
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.
1324
1325 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1326
1327         PR target/34734
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.
1334
1335 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1336
1337         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1338         _xmulhisi3_exit.
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.
1346
1347 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1348
1349         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1350
1351 2011-06-28  Richard Henderson  <rth@redhat.com>
1352
1353         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
1354         all code and arguments that handled pushes.  Update all callers.
1355
1356 2011-06-28  Richard Henderson  <rth@redhat.com>
1357
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.
1373
1374 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1375
1376         * config/sparc/sync.md (*stbar): Delete.
1377         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1378
1379 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1380
1381         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1382
1383 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1384
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
1388         of tm_file.
1389         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1390
1391 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1392
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
1403         opts pointer.
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.
1409
1410 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1411
1412         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1413
1414 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1415
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.
1423
1424 2011-06-28  Nick Clifton  <nickc@redhat.com>
1425
1426         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1427         relaxation when performing an incremental link.
1428
1429 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1430
1431         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1432         within BB from last to first.
1433
1434 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1435
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.
1447
1448 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
1449
1450         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
1451         avr-*-* and avr-*-rtems* targets.
1452
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.
1461         * config/avr/avr.h:
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.
1468         (ESCAPES): 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.
1495
1496 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
1497
1498         PR target/48637
1499         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
1500         asm operands.
1501
1502 2011-06-27  Jan Hubicka  <jh@suse.cz>
1503
1504         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
1505         node instead of references in node.
1506
1507 2011-06-27  Richard Henderson  <rth@redhat.com>
1508
1509         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
1510         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
1511         inside ifdef.
1512
1513 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
1514
1515         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
1516
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.
1530
1531         PR debug/49544
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.
1535
1536 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1537
1538         PR libmudflap/38738
1539         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
1540
1541 2011-06-27  Nick Clifton  <nickc@redhat.com>
1542
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.
1545
1546 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1547
1548         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
1549
1550 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1551
1552         PR lto/48492
1553         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
1554         to a NULL parent.
1555
1556 2011-06-27  Richard Guenther  <rguenther@suse.de>
1557
1558         PR tree-optimization/49394
1559         * passes.c (execute_one_pass): Restore current_pass after
1560         applying IPA transforms.
1561
1562 2011-06-27  Kai Tietz  <ktietz@redhat.com>
1563
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
1567         into account.
1568
1569 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1570
1571         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
1572         forward scan as well.
1573
1574 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1575
1576         PR target/44241
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.
1598
1599 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1600
1601         * config/alpha/alpha.c (alpha_end_function): Always generate .end
1602         directive on VMS.
1603
1604 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1605
1606         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
1607         the function receives nonlocal gotos.
1608
1609 2011-06-27  Richard Guenther  <rguenther@suse.de>
1610
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.
1615
1616 2011-06-27  Richard Guenther  <rguenther@suse.de>
1617
1618         PR tree-optimization/49365
1619         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
1620
1621 2011-06-27  Richard Guenther  <rguenther@suse.de>
1622
1623         PR tree-optimization/49169
1624         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
1625         the alignment of function decls.
1626
1627 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
1628
1629         PR target/47997
1630         * config/darwin.c (darwin_mergeable_string_section): Place string
1631         constants in '.cstring' rather than '.const' when CF/NSStrings are
1632         active.
1633
1634 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
1635
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.
1641
1642 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
1643
1644         PR driver/49371
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.
1650
1651 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1652
1653         * timevar.c (timevar_print): Increase width for display of timevar
1654         name.
1655
1656 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
1657
1658         PR c++/46400
1659         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
1660         instead of TYPE_CHAIN for chain_next for types.
1661
1662 2011-06-24  Richard Henderson  <rth@redhat.com>
1663
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.
1670
1671 2011-06-24  Easwaran Raman  <eraman@google.com>
1672
1673         PR rtl-optimization/49429
1674         PR target/49454
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.
1682
1683 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1684
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.
1689
1690 2011-06-24  Martin Jambor  <mjambor@suse.cz>
1691
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.
1695
1696 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1697
1698         PR target/49335
1699         * config/arm/predicates.md (add_operator): New.
1700         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
1701
1702 2011-06-24  Andi Kleen  <ak@linux.intel.com>
1703
1704         * tree-sra.c (type_internals_preclude_sra_p): Add msg
1705         parameter. Split up ifs and report reason in *msg.
1706         (reject): Add.
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.
1711
1712 2011-06-23  Jeff Law  <law@redhat.com>
1713
1714         PR middle-end/48770
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.
1722
1723         PR middle-end/49465
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.
1727
1728 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
1729
1730         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
1731         get_pointer_alignment to see if base isn't sufficiently aligned.
1732
1733 2011-06-23  Jan Hubicka  <jh@suse.cz>
1734
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
1741         LTOing.
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.
1748
1749 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
1750
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
1760         target.def.
1761         * common/config/ia64/ia64-common.c: Include params.h.
1762         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1763         from ia64.c.
1764         * common/config/rs6000/rs6000-common.c: Include params.h.
1765         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1766         from rs6000.c.
1767         * common/config/sh/sh-common.c: Include params.h.
1768         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1769         from sh.c.
1770         * common/config/spu/spu-common.c: Include params.h.
1771         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1772         from spu.c.
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.
1785
1786 2011-06-23  Alan Modra  <amodra@gmail.com>
1787
1788         PR bootstrap/49383
1789         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
1790         invocation for 2011-06-09 changes.
1791
1792 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1793
1794         PR libgomp/49490
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.
1799
1800         PR debug/49496
1801         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
1802         uses.
1803
1804 2011-06-22  Richard Guenther  <rguenther@suse.de>
1805
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.
1815
1816 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1817
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'.
1822
1823 2011-06-22  Richard Henderson  <rth@redhat.com>
1824
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.
1830
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>.
1838
1839 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
1840
1841         PR target/49497
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.
1846
1847         * config/i386/predicates.md (const359_operand): New.
1848
1849 2011-06-22  Michael Matz  <matz@suse.de>
1850
1851         * cgraphunit.c (assemble_thunk): Use correct return type.
1852
1853 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
1854             Dmitry Melnik  <dm@ispras.ru>
1855
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
1859         prototype.
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
1867         predicate.
1868         (imm_for_neon_rshift_operand): Ditto.
1869         (imm_lshift_or_reg_neon): Ditto.
1870         (imm_rshift_or_reg_neon): Ditto.
1871
1872         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
1873
1874 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1875
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.
1893
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.
1906
1907         PR debug/47858
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
1927         prototypes.
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.
1969
1970 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1971
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.
1983         (tlscall): New.
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.
1987
1988 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
1989
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
2004         lookup_attribute.
2005         (merge_dllimport_decl_attributes): Use remove_attribute.
2006         (attribute_list_contained): Likewise.
2007         (attribute_list_equal): Immediately return 1 if the arguments are
2008         identical pointers.
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.
2015         Updated comments.
2016
2017 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2018
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.
2022
2023 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2024
2025         PR target/33049
2026         * config/avr/avr.md (extzv): New expander.
2027         (*extzv): New insn.
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.
2031
2032 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR middle-end/49489
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.
2043
2044 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2045
2046         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2047
2048 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
2049
2050         * gensupport.c (add_define_attr): New static function.
2051         (is_predicable): Allow multi-alternative lists for the "predicable"
2052         attribute.
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".
2057
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
2075         and popcount.
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.
2083
2084 2011-06-21  Richard Guenther  <rguenther@suse.de>
2085
2086         * ipa-inline-transform.c (inline_transform): Fix previous change.
2087
2088 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
2089
2090         PR tree-optimization/49478
2091         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2092         with constant operand.
2093
2094 2011-06-21  Richard Guenther  <rguenther@suse.de>
2095
2096         * ipa-inline-transform.c (inline_transform): Fix typo.
2097
2098 2011-06-21  Richard Guenther  <rguenther@suse.de>
2099
2100         PR tree-optimization/49483
2101         * tree-vect-stmts.c (vectorizable_assignment): Also handle
2102         VIEW_CONVERT_EXPR conversions.
2103
2104 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
2105
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
2110         avr-mcus.def.
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.
2125
2126 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2127
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):
2135         Define.
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
2200         common parts ...
2201         (*-*-solaris2*): ... here.
2202
2203 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2204
2205         PR other/43564
2206         * ipa-inline.c (can_inline_edge_p): Check
2207         !DECL_DISREGARD_INLINE_LIMITS.
2208
2209 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2210
2211         PR middle-end/49139
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
2215         optimize_inline.
2216         * tree-inline.c (tree_inlinable_function_p): Use error instead
2217         of sorry.
2218         (expand_call_inline): Likewise.
2219
2220 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2221
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.
2225
2226 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
2227
2228         PR target/49089
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.
2233
2234 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2235
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.
2238
2239 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2240
2241         PR middle-end/47725
2242         * combine.c (cant_combine_insn_p): Don't check zero/sign
2243         extended hard registers.
2244
2245 2011-06-21  Alan Modra  <amodra@gmail.com>
2246
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.
2251
2252 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2253
2254         PR middle-end/47725
2255         * combine.c (cant_combine_insn_p): Check zero/sign extended
2256         hard registers.
2257
2258 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2259
2260         PR target/49385
2261         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2262         one of the operands is a register.
2263
2264 2011-06-20  Kai Tietz  <ktietz@redhat.com>
2265
2266         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2267         operations in combination with binary and.
2268
2269 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2270
2271         * regrename.c (do_replace): Don't update notes.
2272
2273 2011-06-20  Alan Modra  <amodra@gmail.com>
2274
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.
2284
2285 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2286
2287         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2288         (count_trailing_zeros): Likewise.
2289
2290 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2291
2292         PR other/49325
2293         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2294         .init_array can be used with .ctors on targets.
2295         * configure: Regenerated.
2296
2297 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2298
2299         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2300         if the element type is volatile.
2301
2302 2011-06-18  Jan Hubicka  <jh@suse.cz>
2303
2304         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2305         extra name aliases.
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.
2333
2334 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
2335
2336         PR target/49411
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.
2346
2347         Revert:
2348         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2349
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.
2354
2355 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
2356
2357         PR rtl-optimization/48542
2358         * reload.c (find_equiv_reg): Stop looking when finding a
2359         setjmp-type call.
2360         * reload1.c (reload_as_needed): Invalidate all reload
2361         registers when crossing a setjmp-type call.
2362
2363 2011-06-16  Jeff Law  <law@redhat.com>
2364
2365         * tree-ssa-threadupdate.c (struct redirection_data): New field
2366         intermediate_edge.
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
2380         block.
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
2384         updated.
2385         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2386         (thread_across_edge): Handle threading through a joiner block.
2387
2388 2011-06-16  Martin Jambor  <mjambor@suse.cz>
2389
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.
2393
2394 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
2395
2396         * config/darwin-protos.h (machopic_select_rtx_section): Move to
2397         inside RTX_CODE ifdef.
2398
2399 2011-06-16  Tom de Vries  <tom@codesourcery.com>
2400
2401         PR target/45098
2402         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2403         Disallow NULL pointer for pointer arithmetic.
2404
2405 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2406
2407         PR target/49398
2408         Revert.
2409         2011-06-10  Wei Guozhi  <carrot@google.com>
2410
2411         PR target/45335
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
2415         related peephole2.
2416         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2417         related peephole2.
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.
2424
2425 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2426
2427         PR middle-end/46500
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):
2481         Remove prototype.
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):
2505         Likewise.
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):
2513         Likewise.
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
2575         with const void *.
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):
2595         Likewise.
2596         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
2597         m32r_pass_by_reference.
2598
2599 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
2600
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
2607         documentation.
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.
2616
2617 2011-06-16  Nick Clifton  <nickc@redhat.com>
2618
2619         PR target/49427
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.
2624
2625 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
2626
2627         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
2628         truncation mask to 63.
2629
2630 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
2631
2632         PR target/49313
2633         PR target/29524
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.
2669
2670 2011-06-16  Richard Guenther  <rguenther@suse.de>
2671
2672         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
2673         the same as x != 0.
2674         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
2675         to (bool) X & 1.
2676         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
2677         equality compares against zero for the lower bit.
2678
2679 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
2680
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.
2686
2687 2011-06-16  Revital Eres  <revital.eres@linaro.org>
2688
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.
2701
2702 2011-06-16  Revital Eres  <revital.eres@linaro.org>
2703
2704         * ddg.c (add_intra_loop_mem_dep): New function.
2705         (build_intra_loop_deps): Call it.
2706
2707 2011-06-13  Jeff Law  <law@redhat.com>
2708
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.
2713
2714 2011-06-13  Jan Hubicka  <jh@suse.cz>
2715
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.
2720
2721 2011-06-15  Richard Guenther  <rguenther@suse.de>
2722
2723         * expr.c (expand_expr_real_2): Reduce all integral types to
2724         bitfield precision.
2725         (expand_expr_real_1): Likewise.
2726
2727 2011-06-15  Martin Jambor  <mjambor@suse.cz>
2728
2729         PR tree-optimization/48613
2730         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
2731         ipa_node_params_vector is NULL.
2732
2733 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
2734
2735         PR debug/49382
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.
2741
2742 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
2743
2744         PR target/49349
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.
2750
2751 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
2752
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.
2778
2779 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
2780
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
2799         defined.
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
2867         arm-common.c.
2868         * config/avr/avr.c (avr_option_optimization_table,
2869         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
2870         to avr-common.c.
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
2878         cris-common.c.
2879         * config/fr30/fr30.c (fr30_option_optimization_table,
2880         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
2881         to fr30-common.c.
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
2923         i386-common.c.
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
2934         to lm32-common.c.
2935         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
2936         m32c-common.c.
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
2959         mips-common.c.
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
2978         pdp11-common.c.
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
3017         v850-common.c.
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.
3072
3073 2011-06-14  Easwaran Raman  <eraman@google.com>
3074
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.
3097
3098 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3099
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.
3128
3129 2011-06-14  David Li  <davidxl@google.com>
3130
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.
3225
3226 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3227
3228         PR middle-end/47364
3229         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3230         and properly handle result not in Pmode.
3231
3232 2011-06-14  Robert Millan  <rmh@gnu.org>
3233
3234         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3235         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3236         `config/linux.h'.
3237
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'.
3241
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'.
3247
3248 2011-06-14  Nick Clifton  <nickc@redhat.com>
3249
3250         PR target/49403
3251         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3252
3253         PR target/49402
3254         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3255
3256 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
3257
3258         PR fortran/49103
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.
3266
3267         PR rtl-optimization/49390
3268         Revert:
3269         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3270
3271         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3272         MEM_ALIAS_SET.
3273
3274 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
3275             Tom de Vries  <tom@codesourcery.com>
3276
3277         PR target/45098
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.
3306
3307 2011-06-13  Jan Hubicka  <jh@suse.cz>
3308
3309         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3310
3311 2011-06-14  Richard Henderson  <rth@redhat.com>
3312
3313         PR debug/48459
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.
3318
3319 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
3320             Mingfeng Wu  <mingfeng@faraday-tech.com>
3321
3322         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3323
3324 2011-06-13  Jan Hubicka  <jh@suse.cz>
3325
3326         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3327
3328 2011-06-13  Jan Hubicka  <jh@suse.cz>
3329
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.
3334
3335 2011-06-13  Jan Hubicka  <jh@suse.cz>
3336
3337         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3338         BINFO_VIRTUALS when streaming for ltrans unit.
3339
3340 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
3341
3342         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3343         (movdi_internal64): Same.
3344
3345 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
3346
3347         PR target/44618
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
3356
3357 2011-06-13  Jan Hubicka  <jh@suse.cz>
3358
3359         * ipa-utils.c (postorder_stack): New structure.
3360         (ipa_reverse_postorder): Handle aliases.
3361
3362 2011-06-13  Jan Hubicka  <jh@suse.cz>
3363
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.
3368
3369 2011-06-13  Jan Hubicka  <jh@suse.cz>
3370
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.
3375
3376 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3377
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.
3382
3383 2011-06-13  Jan Hubicka  <jh@suse.cz>
3384
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
3391