OSDN Git Service

* config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
5
6 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
7
8         PR debug/49676
9         * dwarf2out.c (int_shift_loc_descriptor): New function.
10         (int_loc_descriptor): If shorter, emit i as
11         (i >> shift), shift, DW_OP_shl for suitable shift value.
12         Similarly, try to optimize large negative values using
13         DW_OP_neg of a positive value if shorter.
14         (size_of_int_shift_loc_descriptor): New function.
15         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
16         changes.
17         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
18         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
19         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
20         is shorter.
21         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
22         addend as added DW_OP_plus if it is shorter.
23
24 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25
26         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
27         (DTORS_SECTION_ASM_OP): Define.
28
29 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30
31         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
32         * config/t-dfprules: Move to ../libgcc/config.
33         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
34         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
35         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
36         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
37         Likewise.
38         (i[34567]86-*-cygwin*): Likewise.
39         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
40         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
41         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
42         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
43         D64PBIT_FUNCS, D128PBIT_FUNCS.
44
45 2011-07-11  Richard Guenther  <rguenther@suse.de>
46
47         * tree-vrp.c (simplify_conversion_using_ranges): Manually
48         translate the source value-range through the conversion chain.
49
50 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
51
52         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
53
54 2011-07-11  Arthur Loiret  <aloiret@debian.org>
55
56         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
57         a bi-arch compiler defaulting to 31-bit. In this case:
58         (tmake_file): Add s390/t-linux64.
59         * doc/install.texi: Add s390-linux to the list of targets supporting
60         --enable-targets=all.
61
62 2011-07-11  Arthur Loiret  <aloiret@debian.org>
63             Matthias Klose <doko@debian.org>
64
65         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
66         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
67         (tm_file): Add mips/linux64.h.
68         (tmake_file): Add mips/t-linux64.
69         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
70         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
71         instead of hardcoded mabi=n32.
72         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
73         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
74         convention.
75
76 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
77
78         * passes.c (init_optimization_passes): Add invariant motion pass
79         after induction variable optimization.
80
81 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
82
83         PR target/39633
84         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
85         offsets 1..5 set cc0 in a usable way.
86
87 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
88
89         * tree.h (call_expr_arg): Remove.
90         (call_expr_argp): Likewise.
91
92 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * config/sparc/sparc.md (save_register_window_1): Rename to...
95         (window_save): ...this.
96         * config/sparc/sparc.c (emit_save_register_window): Rename to...
97         (emit_window_save): ...this.
98         (sparc_expand_prologue): Adjust to above renaming.
99
100 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
101
102         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
103         of movabs for x32.
104
105 2011-07-10  Richard Henderson  <rth@redhat.com>
106
107         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
108         run final, instead of emitting text directly.
109
110 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
111
112         * config/i386/i386.c (ix86_option_override_internal): Turn on
113         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
114         small PIC models for TARGET_X32.
115
116 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
117
118         PR target/49684
119         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
120         $(LIBGCC2_CFLAGS).
121
122         PR bootstrap/49680
123         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
124         stray notes and debug insns by using prev_nonnote_nondebug_insn
125         instead of PREV_INSN.
126
127 2011-07-09  Richard Henderson  <rth@redhat.com>
128
129         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
130         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
131         * dwarf2out.c: ... here.
132         (output_all_cfis): Remove.
133         (dwarf2out_switch_text_section): Use output_cfis directly.
134         (size_of_locs): Export.
135         (output_loc_sequence, output_loc_sequence_raw): Export.
136         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
137         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
138         output_cfa_loc_raw): Move to ...
139         * dwarfcfi.c: ... here.
140         * dwarf2out.h: Update decls.
141
142 2011-07-09  Richard Henderson  <rth@redhat.com>
143
144         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
145         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
146         * dwarf2cfi.c: ... here.
147         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
148         (DWARF_ROUND, DWARF_CIE_ID): Remove.
149         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
150         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
151         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
152
153 2011-07-09  Richard Henderson  <rth@redhat.com>
154
155         * dwarf2cfi.c (cie_return_save): New.
156         (queue_reg_save): Use compare_reg_or_pc.
157         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
158         (dwarf2out_frame_debug_expr): Likewise.
159         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
160         (initial_return_save): Likewise.
161         (execute_dwarf2_frame): Save and restore initial return save from
162         the cie to the fde.
163         * config/mips/mips.c (mips_frame_set): Remove special case for
164         DWARF_FRAME_RETURN_COLUMN.
165
166 2011-07-09  Richard Henderson  <rth@redhat.com>
167
168         * dwarf2cfi.c (lookup_cfa): Remove.
169         (execute_dwarf2_frame): Assert queues are empty on entry.
170         Setup initial cfa directly, not via lookup_cfa.
171         Don't clear args_size state here.
172
173 2011-07-09  Richard Henderson  <rth@redhat.com>
174
175         * dwarf2cfi.c (add_cfi_vec): New.
176         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
177         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
178         (execute_dwarf2_frame): Set add_cfi_vec.
179
180 2011-07-09  Richard Henderson  <rth@redhat.com>
181
182         * defaults.h (ASM_COMMENT_START): Move here...
183         * dwarf2asm.c: ... from here.
184         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
185         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
186         * varasm.c: Likewise.
187
188 2011-07-09  Richard Henderson  <rth@redhat.com>
189
190         PR debug/49686
191         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
192         (create_cfi_notes): ... do it here instead.
193
194 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
195
196         PR debug/49676
197         * dwarf2out.c (size_of_int_loc_descriptor): New function.
198         (address_of_int_loc_descriptor): Use it.
199         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
200
201 2011-07-09  Richard Henderson  <rth@redhat.com>
202
203         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
204         (prologue, epilogue): New.
205         (return, *rts): New.
206         (blockage, setd, seti): New.
207         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
208         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
209         (pdp11_saved_regno): New.
210         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
211         generate rtl instead of text.
212         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
213         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
214         * config/pdp11/pdp11-protos.h: Update.
215
216 2011-07-09  Richard Henderson  <rth@redhat.com>
217
218         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
219         try to insert an rtl prologue here.
220         (rs6000_output_function_epilogue): Similarly.
221         * config/rs6000/rs6000.md (prologue): Emit a barrier to
222         satisfy !TARGET_SCHED_PROLOG.
223         (epilogue, sibcall_epilogue): Likewise.
224
225 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
226
227         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
228         (FP_REG_P): Delete.
229         (IN_OR_GLOBAL_P): Likewise.
230
231 2011-07-08  Jason Merrill  <jason@redhat.com>
232
233         PR c++/45437
234         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
235         compound assignment.
236
237         * cgraph.c (cgraph_add_to_same_comdat_group): New.
238         * cgraph.h: Declare it.
239         * ipa.c (function_and_variable_visibility): Make sure thunks
240         have the right visibility.
241
242 2011-07-08  Richard Henderson  <rth@redhat.com>
243
244         PR bootstrap/49680
245         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
246         any tablejump vector.
247
248         PR bootstrap/49680
249         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
250         end of the prologue.
251
252 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
253
254         PR target/49621
255         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
256         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
257         * config/rs6000/vector.md (vector_select_<mode>,
258         vector_select_<mode>_uns): Change second operand of NE to
259         CONST0_RTX (<MODE>mode) instead of const0_rtx.
260         * config/rs6000/altivec.md (*altivec_vsel<mode>,
261         *altivec_vsel<mode>_uns): Expect second operand of NE to be
262         zero_constant of the corresponding vector mode.
263         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
264         Likewise.
265
266 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
267
268         * graphite-dependences.c (build_alias_set_powerset): Remove
269         continue from loop, add one more assert.
270
271 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
272
273         PR target/46779
274         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
275         In particular, allow 8-bit values in r28 and r29.
276         (avr_hard_regno_scratch_ok): Disallow any register that might be
277         part of the frame pointer.
278         (avr_hard_regno_rename_ok): Same.
279         (avr_legitimate_address_p): Don't allow SUBREGs.
280
281 2011-07-08  Julian Brown  <julian@codesourcery.com>
282
283         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
284         big-endian mode.
285         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
286         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
287         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
288         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
289         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
290         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
291         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
292         registers in big-endian mode.
293
294 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
295
296         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
297         in terms of another.
298         (write_attr_value): Write a cast if necessary.
299
300         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
301         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
302         (REG_WORDS_BIG_ENDIAN): Document.
303         * doc/tm.texi: Regenerate.
304         * reload.c (operands_match_p): Take it into account.
305         (reload_adjust_reg_for_mode): Likewise.
306         * rtlanal.c (subreg_get_info): Likewise.
307
308 2011-07-08  Richard Guenther  <rguenther@suse.de>
309
310         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
311         folding.
312
313 2011-07-08  Kai Tietz  <ktietz@redhat.com>
314
315         * fold-const.c (fold_truth_andor): Factored out truth_andor
316         label from fold_binary as function.
317         (fold_binary_loc): Replace truth_andor lable
318         by function fold_truth_andor.
319
320 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
321
322         PR middle-end/49519
323         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
324         check if address is stored in register. If so - give up.
325         (check_sibcall_argument_overlap_1): Do not perform check of
326         overlapping when it is call to address.
327
328 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
329
330         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
331         of magic '31'.
332
333 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
334
335         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
336         GET_MODE_BITSIZE where appropriate.
337         (widen_leading, expand_parity, expand_ctz, expand_ffs,
338         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
339         expand_float, expand_fix): Likewise.
340         * expr.c (convert_move, convert_modes, expand_expr_real_2,
341         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
342         * stor-layout.c (get_mode_bounds): Likewise.
343         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
344         Likewise.
345         * convert.c (convert_to_integer): Likewise.
346         * expmed.c (expand_shift_1): Likewise.
347
348         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
349         a bitsize.
350
351         * optabs.c (expand_binop): Tighten conditions for doubleword
352         expansions.
353         (widen_bswap): Assert that mode bitsize and precision are the same.
354         * stor-layout.c (get_best_mode): Skip modes that have lower
355         precision than bitsize.
356         * recog.c (simplify_while_replacing): Assert that bitsize and
357         precision are the same.
358
359 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
360
361         * Makefile.in (LIBGCOV): Remove.
362         (libgcc.mvars): Remove LIBGCOV.
363         * libgov.c: Move to ../libgcc.
364
365 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
366
367         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
368
369 2011-07-08  Martin Jambor  <mjambor@suse.cz>
370
371         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
372         is too big for total scalarization.
373
374 2011-07-07  Richard Henderson  <rth@redhat.com>
375
376         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
377         (DBX_DEBUGGING_INFO): Undef.
378
379 2011-07-07  Richard Henderson  <rth@redhat.com>
380
381         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
382         Handle some opcodes specially for debugging.
383         * print-rtl.c: Include dwarf2out.h
384         (print_rtx): Handle NOTE_INSN_CFI.
385         * Makefile.in (print-rtl.o): Update.
386
387 2011-07-07  Richard Henderson  <rth@redhat.com>
388
389         * tree-pass.h (pass_dwarf2_frame): Declare.
390         * passes.c (init_optimization_passes): Add it.
391         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
392         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
393         make static, do not call add_cfis_to_fde.
394         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
395         dwarf2out_frame_init): Merge into...
396         (execute_dwarf2_frame): ... here.  New function.
397         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
398         saved_do_cfi_asm to a tri-state variable.
399         (gate_dwarf2_frame, pass_dwarf2_frame): New.
400         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
401         if it has yet to be done.  Don't call dwarf2cfi_function_init.
402         * dwarf2out.h, debug.h: Update decls.
403         * final.c (final_start_function): Don't call
404         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
405         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
406         * toplev.c (lang_dependent_init): Likewise.
407
408 2011-07-07  Richard Henderson  <rth@redhat.com>
409
410         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
411         FDE_TABLE_INCREMENT): Replace with...
412         (fde_vec): ... this, a new vector.
413         (current_fde): Remove.  Replace all users with cfun->fde.
414         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
415         (size_of_aranges, dwarf2out_finish): Likewise.
416         (dwarf2out_alloc_current_fde): Break out from ...
417         (dwarf2out_begin_prologue): ... here.
418         (dwarf2out_frame_init): Remove.
419         * dwarf2cfi.c: Update all users of current_fde.
420         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
421         * dwarf2out.h: Update decls.
422         (dw_fde_node): Add fde_index member.
423         * function.h (struct function): Add fde member.
424
425 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
426             Richard Henderson  <rth@redhat.com>
427
428         * dwarf2cfi.c (add_cfi): Remove.
429         (dwarf2out_cfi_label): Remove force argument.  Only generate the
430         label name.
431         (add_fde_cfi): Simplify the different code paths.
432         (add_cie_cfi): New.
433         (old_cfa, old_cfa_remember): New.
434         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
435         (last_reg_save_label): Remove.
436         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
437         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
438         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
439         dwarf2out_frame_debug_cfa_expression,
440         dwarf2out_frame_debug_cfa_restore,
441         dwarf2out_frame_debug_cfa_window_save,
442         dwarf2out_frame_debug_expr): Remove label parameter.
443         (cfi_label_required_p, add_cfis_to_fde): New.
444         (dwarf2out_frame_debug_after_prologue): New.
445         (dwarf2cfi_frame_init): Initialize old_cfa.
446         (dwarf2out_frame_debug_restore_state): Likewise.
447         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
448         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
449         * final.c (final_start_function): Call
450         dwarf2out_frame_debug_after_prologue.
451
452 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
453             Richard Henderson  <rth@redhat.com>
454
455         * dwarf2cfi.c (cfi_insn): New.
456         (dwarf2out_cfi_label): Don't emit cfi label here.
457         (add_fde_cfi): Create a NOTE_INSN_CFI.
458         (dwarf2out_frame_debug): Setup cfi_insn.
459         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
460         (dwarf2out_cfi_begin_epilogue): Make static.
461         (dwarf2out_frame_debug_restore_state): Make static.
462         * dwarf2out.c (output_cfi_directive): Make static.
463         (dwarf2out_emit_cfi): New.
464         * dwarf2out.h: Update.
465         * final.c (final): Remove CFI notes.
466         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
467         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
468         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
469         * insn-notes.def (NOTE_INSN_CFI): New.
470         (NOTE_INSN_CFI_LABEL): New.
471         * rtl.h (union rtunion_def): Add rt_cfi member.
472         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
473
474 2011-07-07  Richard Henderson  <rth@redhat.com>
475
476         * dwarf2cfi.c: New file.
477         * Makefile.in (OBJS): Add it.
478         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
479         * gengtype.c (open_base_files): Include dwarf2out.h.
480         * coretypes.h (enum var_init_status): Move from ...
481         * rtl.h: ... here.
482         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
483         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
484         expand_builtin_dwarf_sp_column, init_return_column_size,
485         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
486         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
487         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
488         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
489         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
490         compute_barrier_args_size, dwarf2out_args_size,
491         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
492         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
493         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
494         queue_reg_save, dwarf2out_flush_queued_reg_saves,
495         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
496         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
497         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
498         dwarf2out_frame_debug_cfa_expression,
499         dwarf2out_frame_debug_cfa_restore,
500         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
501         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
502         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
503         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
504         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
505         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
506         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
507         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
508         dw_loc_descr_node): Move to dwarf2out.h.
509         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
510         mem_loc_descriptor): Export.
511         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
512         (dwarf2out_frame_init): Extract CIE generation code to
513         dwarf2cfi_frame_init.
514
515 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
516
517         PR target/49660
518         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
519         MASK_V8PLUS, remove commented out flag and reorder.
520
521 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
522
523         PR c/49644
524         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
525         one non-complex and one complex argument, call c_save_expr on both
526         operands.
527
528 2011-07-07  Martin Jambor  <mjambor@suse.cz>
529
530         PR middle-end/49495
531         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
532         (verify_cgraph_node): Some functinality moved to
533         verify_edge_corresponds_to_fndecl, call it.
534
535 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
536
537         * config.gcc (*local*): Remove.
538         * doc/install-old.texi: Don't mention local configurations.
539
540 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
541
542         PR debug/49522
543         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
544         referencing debug insns that have been reset.
545         (dead_debug_insert_before): Don't assert reg is non-NULL,
546         instead return immediately if it is NULL.
547
548 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
549
550         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
551
552 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
553
554         * hw-doloop.c: New file.
555         * hw-doloop.h: New file.
556         * Makefile.in (OBJS): Add hw-doloop.o.
557         (hw-doloop.o): New rule.
558         ($(obj_out_file)): Add hw-doloop.h dependency.
559         * config/bfin/bfin.c: Include "hw-doloop.h".
560         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
561         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
562         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
563         type changed to hwloop_info.  Return bool, true if the loop was
564         successfully optimized.  Remove code that was moved to
565         hw-doloop.c, and adjust other parts.
566         (hwloop_fail): New static function, containing parts that used
567         to be in bfin_optimize_loop.
568         (bfin_discover_loop, bfin_discover_loops, free_loops,
569         bfin_reorder_loops): Remove.
570         (hwloop_pattern_reg): New static function.
571         (bfin_doloop_hooks): New variable.
572         (bfin_reorg_loops): Remove most code, call reorg_loops.
573         * config/bfin/bfin.md (doloop_end splitter): Also enable if
574         loop counter is a memory_operand.
575
576 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
577
578         * config.gcc: Support --with-multilib-list for x86 Linux targets.
579
580         * configure.ac: Mention x86-64 for --with-multilib-list.
581         * configure: Regenerated.
582
583         * config/i386/gnu-user64.h (SPEC_64): Support x32.
584         (SPEC_32): Likewise.
585         (ASM_SPEC): Likewise.
586         (LINK_SPEC): Likewise.
587         (TARGET_THREAD_SSP_OFFSET): Likewise.
588         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
589         (SPEC_X32): New.
590
591         * config/i386/i386.h (TARGET_X32): New.
592         (TARGET_LP64): New.
593         (LONG_TYPE_SIZE): Likewise.
594         (POINTER_SIZE): Likewise.
595         (POINTERS_EXTEND_UNSIGNED): Likewise.
596         (OPT_ARCH64): Support x32.
597         (OPT_ARCH32): Likewise.
598
599         * config/i386/i386.opt (mx32): New.
600
601         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
602         (GLIBC_DYNAMIC_LINKERX32): Likewise.
603         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
604         (GLIBC_DYNAMIC_LINKERX32): Likewise.
605
606         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
607         (BIONIC_DYNAMIC_LINKERX32): Likewise.
608         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
609
610         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
611
612         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
613
614         * doc/invoke.texi: Document -mx32.
615
616 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
617
618         * doc/invoke.texi (mwords-little-endian): Deprecate.
619         * config/arm/arm.opt (mwords-little-endian): Likewise.
620         * config/arm/arm.c (arm_option_override): Warn about the deprecation
621         of -mwords-little-endian.
622
623 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
624
625         * reload1.c (choose_reload_regs): Use mode sizes to check whether
626         an old reload register completely defines the required value.
627
628 2011-07-07  Richard Guenther  <rguenther@suse.de>
629
630         * fold-const.c (fold_unary_loc): Do not strip sign-changes
631         for NEGATE_EXPR.
632
633 2011-07-07  Richard Guenther  <rguenther@suse.de>
634
635         * tree-vrp.c (simplify_conversion_using_ranges): New function.
636         (simplify_stmt_using_ranges): Call it.
637
638 2011-07-07  Kai Tietz  <ktietz@redhat.com>
639
640         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
641         (lookup_logical_inverted_value): Likewise.
642         (simplify_bitwise_binary_1): Likewise.
643         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
644
645 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
646
647         * gcc.c (%[Spec]): Don't document.
648         (struct spec_list): Update comment.
649         (do_spec_1): Don't handle %[Spec].
650         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
651
652 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
653
654         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
655         default based on TARGET_ASM_NAMED_SECTION.
656         * common/common-target.def (have_named_sections): Default to true.
657         * common/config/default-common.c: Don't include tm.h.
658         * common/config/picochip/picochip-common.c
659         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
660         * common/config/m32c/m32c-common.c: Remove.
661         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
662         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
663         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
664         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
665         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
666         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
667         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
668
669 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
670
671         PR middle-end/49640
672         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
673         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
674
675 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
676
677         PR libmudflap/49550
678         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
679
680 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
681
682         PR target/39150
683         * configure.ac (gcc_cv_as_hidden): Also accept
684         x86_64-*-solaris2.1[0-9]*.
685         (gcc_cv_as_cfi_directive): Likewise.
686         (gcc_cv_as_comdat_group_group): Likewise.
687         (set_have_as_tls): Likewise.
688         * configure: Regenerate.
689         * config.gcc (i[34567]86-*-solaris2*): Also handle
690         x86_64-*-solaris2.1[0-9]*.
691         * config.host (i[34567]86-*-solaris2*): Likewise.
692         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
693         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
694         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
695         (TARGET_LD_EMULATION): Use it.
696         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
697         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
698         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
699         (ASM_CPU64_DEFAULT_SPEC): Define.
700         (ASM_CPU_SPEC): Use %(asm_cpu_default).
701         (ASM_SPEC): Redefine.
702         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
703         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
704         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
705         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
706         configuration.
707         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
708
709 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
710
711         * config/sol2.h (ASM_SPEC): Split into ...
712         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
713         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
714         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
715         (ASM_SPEC): Use ASM_SPEC_BASE.
716         * config/sparc/sol2.h (ASM_SPEC): Redefine.
717
718 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
719
720         * config/avr/avr.md (*reload_insi): Change predicate #1 to
721         const_int_operand.  Ditto for peep2 producing this insn.
722         Add argument to output_reload_insisf call.
723         (*movsi,*movsf): Add argument to output_movsisf call.
724         (*reload_insf): New insn and new peep2 to produce it.
725         * config/avr/avr-protos.h (output_movsisf): Change prototype.
726         (output_reload_insisf): Change prototype.
727         * config/avr/avr.c (avr_asm_len): New function.
728         (output_reload_insisf): Rewrite.
729         (output_movsisf): Change prototype.  output_reload_insisf for
730         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
731         (adjust_insn_length): Add argument to output_movsisf and
732         output_reload_insisf call.
733
734 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
735
736         * emit-rtl.c (paradoxical_subreg_p): New function.
737         * rtl.h (paradoxical_subreg_p): Declare.
738         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
739         apply_distributive_law, simplify_comparison, simplify_set): Use it.
740         * cse.c (record_jump_cond, cse_insn): Likewise.
741         * expr.c (force_operand): Likewise.
742         * rtlanal.c (num_sign_bit_copies1): Likewise.
743         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
744         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
745         (push_reload): Use precision to check for paradoxical subregs.
746         * expmed.c (extract_bit_field_1): Likewise.
747
748         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
749         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
750         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
751         simplify_set, simplify_logical, expand_compound_operation,
752         make_extraction, force_to_mode, if_then_else_cond, extended_count,
753         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
754         record_value_for_reg): Likewise.
755         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
756         * simplify-rtx. c (simplify_unary_operation_1,
757         simplify_binary_operation_1, simplify_const_relational_operation):
758         Likewise.
759
760         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
761         instead of GET_MODE_BITSIZE where appropriate.
762         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
763         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
764         init_num_sign_bit_copies_in_rep): Likewise.
765         * cse.c (fold_rtx, cse_insn): Likewise.
766         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
767         * simplify-rtx.c (simplify_unary_operation_1,
768         simplify_const_unary_operation, simplify_binary_operation_1,
769         simplify_const_binary_operation, simplify_ternary_operation,
770         simplify_const_relational_operation, simplify_subreg): Likewise.
771         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
772         simplify_if_then_else, simplify_set, expand_compound_operation,
773         expand_field_assignment, make_extraction, if_then_else_cond,
774         make_compound_operation, force_to_mode, make_field_assignment,
775         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
776         extended_count, try_widen_shift_mode, simplify_shift_const_1,
777         simplify_comparison, record_promoted_value, simplify_compare_const,
778         record_dead_and_set_regs_1): Likewise.
779
780         Revert:
781         * simplify-rtx.c (simplify_const_binary_operation): Use the
782         shift_truncation_mask hook instead of performing modulo by width.
783         Compare against mode precision, not bitsize.
784         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
785         Use shift_truncation_mask instead of constructing the value manually.
786
787 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
788
789         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
790         declaration.
791         (rs6000_save_toc_in_prologue_p): Ditto.
792
793         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
794         up the static chain (r11) during indirect function calls.
795         (-msave-toc-indirect): New undocumented debug switch.
796
797         * config/rs6000/rs6000.c (struct machine_function): Add
798         save_toc_in_prologue field to note whether the prologue needs to
799         save the TOC value in the reserved stack location.
800         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
801         to save the TOC in the prologue, do so.
802         (rs6000_trampoline_init): Don't allow creating AIX style
803         trampolines if -mno-r11 is in effect.
804         (rs6000_call_indirect_aix): New function to create AIX style
805         indirect calls, adding support for -mno-r11 to suppress loading
806         the static chain, and saving the TOC in the prologue instead of
807         the call body.
808         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
809         TOC in the prologue.
810
811         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
812         register numbers.
813         (TOC_REGNUM): Ditto.
814         (STATIC_CHAIN_REGNUM): Ditto.
815         (ARG_POINTER_REGNUM): Ditto.
816         (SFP_REGNO): Delete, unused.
817         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
818         function descriptor offsets.
819         (TOC_SAVE_OFFSET_64BIT): Ditto.
820         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
821         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
822         (AIX_FUNC_DESC_SC_32BIT): Ditto.
823         (AIX_FUNC_DESC_SC_64BIT): Ditto.
824         (ptrload): New mode attribute for the appropriate load of a pointer.
825         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
826         (call_indirect_aix64): Ditto.
827         (call_value_indirect_aix32): Ditto.
828         (call_value_indirect_aix64): Ditto.
829         (call_indirect_nonlocal_aix32_internal): Ditto.
830         (call_indirect_nonlocal_aix32): Ditto.
831         (call_indirect_nonlocal_aix64_internal): Ditto.
832         (call_indirect_nonlocal_aix64): Ditto.
833         (call): Rewrite AIX indirect function calls.  Add support for
834         eliminating the static chain, and for moving the save of the TOC
835         to the function prologue.
836         (call_value): Ditto.
837         (call_indirect_aix<ptrsize>): Ditto.
838         (call_indirect_aix<ptrsize>_internal): Ditto.
839         (call_indirect_aix<ptrsize>_internal2): Ditto.
840         (call_indirect_aix<ptrsize>_nor11): Ditto.
841         (call_value_indirect_aix<ptrsize>): Ditto.
842         (call_value_indirect_aix<ptrsize>_internal): Ditto.
843         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
844         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
845         (call_nonlocal_aix32): Relocate in the rs6000.md file.
846         (call_nonlocal_aix64): Ditto.
847
848         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
849         -mno-r11 documentation.
850
851 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
852
853         PR other/49658
854         * doc/extend.texi (Compound Literals): Fix typo.
855
856 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
857
858         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
859
860 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
861
862         * configure.ac (plugin-version.h): Generate
863         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
864         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
865         macros.
866
867         * configure: Regenerate.
868
869         * doc/plugins.texi (Building GCC plugins): Mention
870         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
871
872 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
873
874         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
875         * combine.c (make_extraction, gen_lowpart_or_truncate,
876         apply_distributive_law, simplify_comparison,
877         reg_truncated_to_mode, record_truncated_value): Use it.
878         * cse.c (notreg_cost): Likewise.
879         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
880         * expr.c (convert_move, convert_modes): Likewise.
881         * optabs.c (expand_binop, expand_unop): Likewise.
882         * postreload.c (move2add_last_label): Likewise.
883         * regmove.c (optimize_reg_copy_3): Likewise.
884         * rtlhooks.c (gen_lowpart_general): Likewise.
885         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
886
887 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
888
889         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
890
891 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
892
893         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
894         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
895         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
896         (simplify_const_unary_operation, simplify_binary_operation_1,
897         simplify_const_binary_operation, simplify_const_relational_operation):
898         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
899         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
900         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
901         simplify_shift_const_1, simplify_comparison): Likewise.
902         * expr.c (convert_modes): Likewise.
903         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
904         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
905         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
906
907         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
908
909 2011-07-06  Richard Guenther  <rguenther@suse.de>
910
911         PR tree-optimization/49645
912         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
913         register variables.
914         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
915         in type qualification here ...
916         (copy_reference_ops_from_ref): ... not here.
917         (vn_reference_lookup_3): ... or here.
918         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
919         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
920
921 2011-07-06  Ian Lance Taylor  <iant@google.com>
922
923         * doc/install.texi (Configuration): It's
924         --enable-gnu-indirect-function, not --enable-indirect-function.
925
926 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
927
928         * simplify-rtx.c (simplify_const_binary_operation): Use the
929         shift_truncation_mask hook instead of performing modulo by width.
930         Compare against mode precision, not bitsize.
931         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
932         Use shift_truncation_mask instead of constructing the value manually.
933
934 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
935
936         PR middle-end/47383
937         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
938         address computation and convert to address_mode if needed.
939
940 2011-07-06  Richard Guenther  <rguenther@suse.de>
941
942         * tree.c (build_common_tree_nodes_2): Merge with
943         build_common_tree_nodes.
944         * tree.h (build_common_tree_nodes): Adjust prototype.
945         (build_common_tree_nodes_2): Remove.
946         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
947         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
948
949 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
950
951         PR tree-optimization/49618
952         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
953         t recurse on the decl.
954         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
955         return true if expr isn't known to be defined in current
956         TU or some other LTO partition.
957
958 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
959
960         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
961         override CASE_VALUES_THRESHOLD.
962
963         * stmt.c (toplevel): Include params.h.
964         (case_values_threshold): Use the --param case-values-threshold
965         value if non-zero, otherwise use machine dependent value.
966         (expand_case): Use case_values_threshold.
967
968         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
969
970         * doc/invoke.texi (--param case-values-threshold): Document.
971
972 2011-07-05  Richard Henderson  <rth@redhat.com>
973
974         * dwarf2out.c (dwarf2out_cfi_label): Make static.
975         (dwarf2out_flush_queued_reg_saves): Make static.
976         (dwarf2out_reg_save): Remove.
977         (dwarf2out_return_save): Remove.
978         (dwarf2out_return_reg): Remove.
979         (dwarf2out_reg_save_reg): Remove.
980         (dwarf2out_def_cfa): Merge into ...
981         (dwarf2out_frame_init): ... here.
982         * dwarf2out.h, tree.h: Remove declarations as necessary.
983
984 2011-07-05  Richard Henderson  <rth@redhat.com>
985
986         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
987         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
988         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
989         the alloc insn.
990
991         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
992         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
993         (process_epilogue): Don't call dwarf2out_def_cfa.
994
995         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
996         indicate the return address save.
997         (process_cfa_register): Likewise.
998
999         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
1000         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
1001
1002         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
1003         for ar.pfs save at alloc insn.
1004
1005 2011-07-05  Richard Henderson  <rth@redhat.com>
1006
1007         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
1008         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1009         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
1010         stack pointer save.
1011         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
1012         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
1013         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
1014         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
1015
1016 2011-07-05  Richard Henderson  <rth@redhat.com>
1017
1018         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
1019         VUNSPEC_* constants here instead of via define_constants.
1020         (VUNSPEC_PEM): New constant.
1021         (procedure_entry_mask): New insn.
1022         (prologue): New expander.
1023         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
1024         (vax_expand_prologue): Rename from vax_output_function_prologue;
1025         emit rtl instead of text.
1026         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
1027         (print_operand): Add 'x' prefix.
1028
1029 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1030
1031         PR middle-end/47715
1032         * calls.c (precompute_register_parameters): Promote the function
1033         argument before checking non-legitimate constant.
1034
1035 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1036
1037         PR tree-optimization/47654
1038         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
1039         (lst_do_strip_mine_loop): Return an int.
1040         (lst_do_strip_mine): Same.
1041         (scop_do_strip_mine): Same.
1042         (scop_do_block): Loop blocking should strip-mine at least two loops.
1043         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
1044         (scop_do_interchange): Same.
1045         * graphite-poly.h (scop_do_interchange): Update declaration.
1046         (scop_do_strip_mine): Same.
1047
1048 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1049
1050         * graphite-clast-to-gimple.c (precision_for_value): Removed.
1051         (precision_for_interval): Removed.
1052         (gcc_type_for_interval): Use mpz_sizeinbase.
1053
1054 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1055
1056         * graphite-ppl.h (value_max): Correct computation of max.
1057
1058 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
1059
1060         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
1061
1062 2011-07-05  Richard Guenther  <rguenther@suse.de>
1063
1064         * c-decl.c (c_init_decl_processing): Defer building common
1065         tree nodes to c_common_nodes_and_builtins.
1066
1067 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
1068
1069         PR tree-optimization/49580
1070         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
1071         the loop's number of iterations.
1072         * tree-parloops.c (transform_to_exit_first_loop): Add the
1073         handling of the loop's number of iterations before the call
1074         to gimple_duplicate_sese_tail.
1075         Insert the stmt caclculating the new rhs of the loop's
1076         condition stmt to the preheader instead of iters_bb.
1077
1078 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1079
1080         PR rtl-optimization/47449
1081         * fwprop.c (forward_propagate_subreg): Don't propagate hard
1082         register nor zero/sign extended hard register.
1083
1084 2011-07-05  Richard Guenther  <rguenther@suse.de>
1085
1086         PR tree-optimization/49518
1087         PR tree-optimization/49628
1088         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
1089         irrelevant and invariant data-references.
1090         (vect_analyze_data_ref_access): For invariant loads clear the
1091         group association.
1092
1093 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
1094
1095         PR rtl-optimization/49619
1096         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
1097         pass VOIDmode as op0_mode to recursive call, and return temp even
1098         when different from tor, just if it is not IOR of the original
1099         PLUS arguments.
1100
1101         PR rtl-optimization/49472
1102         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
1103         negating MULT, negate the second operand instead of first.
1104         (simplify_binary_operation_1) <case MULT>: If one operand is
1105         a NEG and the other is MULT, don't attempt to optimize by negation
1106         of the MULT operand if it only moves the NEG operation around.
1107
1108         PR debug/49602
1109         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
1110         get_current_def return value if it can't be trusted to be
1111         the current value of the variable in the current bb.
1112
1113 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
1114
1115         PR target/49600
1116         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
1117         general register to memory for !TARGET_INTER_UNIT_MOVES.
1118
1119 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1120
1121         PR target/44643
1122         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
1123         instead of TREE_READONLY.
1124
1125 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1126
1127         * doc/extend.texi (AVR Built-in Functions): Update documentation
1128         of __builtin_avr_fmul*.
1129         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
1130         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
1131         * config/avr/avr.md (fmul): Rename to fmul_insn.
1132         (fmuls): Rename to fmuls_insn.
1133         (fmulsu): Rename to fmulsu_insn.
1134         (fmul,fmuls,fmulsu): New expander.
1135         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
1136         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
1137         * config/avr/libgcc.S (__fmul): New function.
1138         (__fmuls): New function.
1139         (__fmulsu,__fmulsu_exit): New function.
1140
1141 2011-07-04  Richard Guenther  <rguenther@suse.de>
1142
1143         PR tree-optimization/49615
1144         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
1145         basic-block index check.
1146
1147 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
1148
1149         * longlong.h (count_leading_zeros, count_trailing_zeros,
1150         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
1151         resp. 64.
1152
1153 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
1154
1155         PR tree-optimization/49610
1156         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
1157         a basic block.
1158
1159 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
1160             Olivier Hainque  <hainque@adacore.com>
1161             Nicolas Setton  <setton@adacore.com>
1162
1163         * tree.h (TYPE_ARTIFICIAL): New flag.
1164         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
1165         the DIE of the type if it is artificial.
1166         (gen_array_type_die): Likewise.
1167         (gen_enumeration_type_die): Likewise.
1168         (gen_struct_or_union_type_die): Likewise.
1169         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
1170         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
1171
1172 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1173
1174         * tree-object-size.c (pass_through_call): Handle
1175         BUILT_IN_ASSUME_ALIGNED.
1176
1177 2011-07-01  Martin Jambor  <mjambor@suse.cz>
1178
1179         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
1180
1181 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
1182
1183         PR middle-end/48016
1184         * explow.c (update_nonlocal_goto_save_area): Use proper mode
1185         for stack save area.
1186         * function.c (expand_function_start): Likewise.
1187
1188 2011-07-01  Richard Guenther  <rguenther@suse.de>
1189
1190         PR middle-end/49596
1191         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
1192         may have unknown refs.
1193
1194 2011-07-01  Kai Tietz  <ktietz@redhat.com>
1195
1196         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
1197
1198 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1199
1200         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
1201         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
1202         (Specific, mips-sgi-irix6): Likewise.
1203
1204 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1205
1206         PR libmudflap/49549
1207         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
1208
1209 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
1210
1211         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
1212         [idx]= and [idx1 ... idx2]= before initializers if needed for
1213         array initializers.
1214
1215 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
1216
1217         * config.gcc (score-*-elf): Remove score7.o.
1218         * config/score/t-score-elf: Likewise.
1219         * config/score/score.c: Merge score7 to score.c and
1220         remove forwarding functions.
1221         * config/score/score7.c: Deleted.
1222         * config/score/score7.h: Deleted.
1223
1224 2011-07-01  Richard Guenther  <rguenther@suse.de>
1225
1226         PR tree-optimization/49603
1227         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
1228
1229 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1230
1231         * tree-sra.c (struct access): Rename total_scalarization to
1232         grp_total_scalarization
1233         (completely_scalarize_var): New function.
1234         (sort_and_splice_var_accesses): Set total_scalarization in the
1235         representative access.
1236         (analyze_access_subtree): Propagate total scalarization accross the
1237         tree, no holes in totally scalarized trees, simplify coverage
1238         computation.
1239         (analyze_all_variable_accesses): Call completely_scalarize_var instead
1240         of completely_scalarize_record.
1241
1242 2011-06-30  Richard Henderson  <rth@redhat.com>
1243
1244         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
1245         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
1246         * config/i386/i386.c: Don't include dwarf2out.h.
1247         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
1248         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
1249         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
1250         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
1251         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
1252
1253 2011-06-30  Richard Henderson  <rth@redhat.com>
1254
1255         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
1256         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1257         * final.c (final_scan_insn): Look for it, and invoke
1258         dwarf2out_frame_debug before the insn if found.
1259
1260 2011-06-30  Richard Henderson  <rth@redhat.com>
1261
1262         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
1263         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
1264
1265 2011-06-30  Richard Henderson  <rth@redhat.com>
1266
1267         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
1268         Define a vector of this type.
1269         (regs_saved_in_regs): Use a VEC.
1270         (num_regs_saved_in_regs): Remove.
1271         (compare_reg_or_pc): New.
1272         (record_reg_saved_in_reg): Split out from...
1273         (dwarf2out_flush_queued_reg_saves): ... here.
1274         (clobbers_queued_reg_save): Update for VEC.
1275         (reg_saved_in): Likewise.
1276         (dwarf2out_frame_debug_init): Likewise.
1277         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
1278         (dwarf2out_frame_debug_cfa_register): Likewise.
1279
1280 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1281
1282         PR tree-optimization/49572
1283         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
1284         type of the RHS instead of that of the LHS for the expression type.
1285
1286 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
1287
1288         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
1289         unconditionally.
1290
1291 2011-06-30  Richard Guenther  <rguenther@suse.de>
1292
1293         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
1294         * tree-ssa-structalias.c (create_variable_info_for): Do not
1295         add initial constraints for non-var-decls.  Properly handle
1296         globals in other ltrans partitions.
1297         (intra_create_variable_infos): Manually create constraints for
1298         the fake no-alias parameter.
1299         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
1300         and assert there are no clones.
1301
1302 2011-06-30  Richard Guenther  <rguenther@suse.de>
1303
1304         PR tree-optimization/46787
1305         * tree-data-ref.c (dr_address_invariant_p): Remove.
1306         (find_data_references_in_stmt): Invariant accesses are ok now.
1307         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
1308         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
1309         invariant loads.
1310
1311 2011-06-30  Martin Jambor  <mjambor@suse.cz>
1312
1313         PR tree-optimization/49094
1314         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
1315         (build_accesses_from_assign): Use it.
1316
1317 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1318
1319         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1320         handling of BUILT_IN_ASSUME_ALIGNED.
1321
1322         PR debug/49364
1323         * dwarf2out.c (output_abbrev_section): Don't return early
1324         if abbrev_die_table_in_use is 1.
1325         (dwarf2out_finish): Instead don't call output_abbrev_section
1326         nor emit abbrev_section_label in that case.
1327
1328 2011-06-30  Nick Clifton  <nickc@redhat.com>
1329
1330         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
1331         for the V850E.
1332
1333 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
1334
1335         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
1336         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
1337
1338 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
1339
1340         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1341         both pattern and original statements if necessary.
1342         (vect_transform_loop): Likewise.
1343         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
1344         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
1345         Mark the pattern statement only if the original statement doesn't
1346         have its own uses.
1347         (process_use): Call vect_mark_relevant with additional parameter.
1348         (vect_mark_stmts_to_be_vectorized): Likewise.
1349         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
1350         (vect_analyze_stmt): Handle both pattern and original statements
1351         if necessary.
1352         (vect_transform_stmt): Don't store vectorized pattern statement
1353         in the original statement.
1354         (vect_is_simple_use_1): Use related pattern statement only if the
1355         original statement is irrelevant.
1356         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1357
1358 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
1359
1360         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
1361         option.
1362         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
1363         entry.
1364         (TARGET_AVX128_OPTIMAL): New definition.
1365         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1366         X86_TUNE_AVX128_OPTIMAL entry.
1367         (ix86_option_override_internal): Enable the generation
1368         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
1369         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
1370         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
1371
1372 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
1373
1374         PR tree-optimization/49539
1375         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
1376         names by means of stmt_references_abnormal_ssa_name.
1377         (associate_plusminus): Call can_propagate_from before propagating
1378         from definition statements.
1379         (ssa_forward_propagate_and_combine): Remove superfluous newline.
1380
1381 2011-06-29  Richard Guenther  <rguenther@suse.de>
1382
1383         * doc/invoke.texi: Document -scev dump modifier.
1384         * tree-pass.h (TDF_SCEV): New dump flag.
1385         * tree-dump.c (dump_option_value_in): Add scev.
1386         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
1387         * tree-scalar-evolution.c: Likewise.
1388
1389 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
1390
1391         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
1392         (cxa_type_match): Correct declaration.
1393         (__gnu_unwind_pr_common): Reconstruct additional indirection
1394         when __cxa_type_match returns succeeded_with_ptr_to_base.
1395
1396 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1397
1398         PR rtl-optimization/49114
1399         * reload.c (struct replacement): Remove SUBREG_LOC member.
1400         (push_reload): Do not set it.
1401         (push_replacement): Likewise.
1402         (subst_reload): Remove dead code.
1403         (copy_replacements): Remove assertion.
1404         (copy_replacements_1): Do not handle SUBREG_LOC.
1405         (move_replacements): Likewise.
1406         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
1407         Detect subregs via recursive descent instead of via SUBREG_LOC.
1408
1409 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1410
1411         * config/avr/avr.c (avr_encode_section_info): Dispatch to
1412         default_encode_section_info.
1413
1414 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
1415
1416         PR tree-optimization/49545
1417         * builtins.c (get_object_alignment_1): Update function comment.
1418         Do not use DECL_ALIGN for functions, but test
1419         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
1420         * fold-const.c (get_pointer_modulus_and_residue): Don't check
1421         for functions here.
1422         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1423
1424 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
1425
1426         PR debug/49567
1427         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
1428         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
1429
1430 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1431
1432         PR target/34734
1433         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
1434         about uninitialized data attributed 'progmem' from here...
1435         (avr_encode_section_info): ...to this new function.
1436         (TARGET_ENCODE_SECTION_INFO): New define.
1437         (avr_section_type_flags): For data in ".progmem.data", remove
1438         section flag SECTION_WRITE.
1439
1440 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
1441
1442         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
1443         _xmulhisi3_exit.
1444         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
1445         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
1446         (__umulhisi3): Ditto.
1447         * config/avr/avr.md (mulhisi3): New insn expender.
1448         (umulhisi3): New insn expender.
1449         (*mulhisi3_call): New insn.
1450         (*umulhisi3_call): New insn.
1451
1452 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1453
1454         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
1455
1456 2011-06-28  Richard Henderson  <rth@redhat.com>
1457
1458         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
1459         all code and arguments that handled pushes.  Update all callers.
1460
1461 2011-06-28  Richard Henderson  <rth@redhat.com>
1462
1463         * config/arm/arm.c (arm_output_function_prologue): Don't call
1464         thumb1_output_function_prologue.
1465         (arm_expand_prologue): Avoid dead store.
1466         (number_of_first_bit_set): Use ctz_hwi.
1467         (thumb1_emit_multi_reg_push): New.
1468         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
1469         to emit the entire prologue as rtl.
1470         (thumb1_output_interwork): Split out from
1471         thumb1_output_function_prologue.
1472         (thumb1_output_function_prologue): Remove.
1473         (arm_attr_length_push_multi): Handle thumb1.
1474         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
1475         (prologue_thumb1_interwork): New.
1476         (*push_multi): Allow thumb1; use push_mult_memory_operand.
1477         * config/arm/predicates.md (push_mult_memory_operand): New.
1478
1479 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1480
1481         * config/sparc/sync.md (*stbar): Delete.
1482         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
1483
1484 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
1485
1486         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
1487
1488 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1489
1490         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
1491         (TARGET_64BIT_DEFAULT): Define.
1492         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
1493         of tm_file.
1494         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
1495
1496 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1497
1498         * common.opt (in_lto_p): New Variable entry.
1499         * flags.h (in_lto_p): Move to common.opt.
1500         * gcc.c: Include params.h.
1501         (set_option_handlers): Also use common_handle_option and
1502         target_handle_option.
1503         (main): Call global_init_params, finish_params and init_options_struct.
1504         * opts.c (debug_type_names): Move from toplev.c.
1505         (print_filtered_help): Access quiet_flag through opts pointer.
1506         (common_handle_option): Return early in the driver for some options.
1507         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
1508         opts pointer.
1509         * toplev.c (in_lto_p): Move to common.opt.
1510         (debug_type_names): Move to opts.c.
1511         * Makefile.in (OBJS): Remove opts.o.
1512         (OBJS-libcommon-target): Add opts.o.
1513         (gcc.o): Update dependencies.
1514
1515 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1516
1517         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
1518
1519 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1520
1521         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
1522         with '=' constraint modifier.
1523         (*divdf3_vfp): Likewise.
1524         ("*mulsf3_vfp"): Likewise.
1525         ("*muldf3_vfp"): Likewise.
1526         ("*mulsf3negsf_vfp"): Likewise.
1527         ("*muldf3negdf_vfp"): Likewise.
1528
1529 2011-06-28  Nick Clifton  <nickc@redhat.com>
1530
1531         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
1532         relaxation when performing an incremental link.
1533
1534 2011-06-28  Kai Tietz  <ktietz@redhat.com>
1535
1536         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
1537         within BB from last to first.
1538
1539 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
1540
1541         * genattr-common.c: New.  Based on genattr.c.
1542         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
1543         (MOSTLYCLEANFILES): Add insn-attr-common.h.
1544         (opts.o): Update dependencies.
1545         (.PRECIOUS): Add insn-attr-common.h.
1546         (simple_rtl_generated_h): Add insn-attr-common.h.
1547         (build/genattr-common.o): New.
1548         (genprogrtl): Add attr-common.
1549         * genattr.c (main): Include insn-attr-common.h.  Don't generate
1550         definitions of DELAY_SLOTS or INSN_SCHEDULING.
1551         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
1552
1553 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
1554
1555         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
1556         avr-*-* and avr-*-rtems* targets.
1557
1558         * config/avr/elf.h: New file.
1559         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
1560         (TARGET_ASM_SELECT_SECTION): Define.
1561         (INIT_SECTION_ASM_OP): Undefine.
1562         (FINI_SECTION_ASM_OP): Undefine.
1563         (READONLY_DATA_SECTION_ASM_OP): Undefine.
1564         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
1565         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
1566         * config/avr/avr.h:
1567         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
1568         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
1569         (MAX_OFILE_ALIGNMENT): Move to elf.h.
1570         (STRING_LIMIT): Move to elf.h.
1571         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
1572         (ASM_DECLARE_OBJECT_NAME): Remove.
1573         (ESCAPES): Remove.
1574         (ASM_OUTPUT_SKIP): Remove.
1575         (DWARF2_DEBUGGING_INFO): Remove.
1576         (OBJECT_FORMAT_ELF): Remove.
1577         (USER_LABEL_PREFIX): Remove.
1578         (ASM_OUTPUT_EXTERNAL): Remove.
1579         (ASM_OUTPUT_ASCII): Remove.
1580         (TYPE_ASM_OP): Remove.
1581         (SIZE_ASM_OP): Remove.
1582         (WEAK_ASM_OP): Remove.
1583         (STRING_ASM_OP): Remove.
1584         (SET_ASM_OP): Remove.
1585         (ASM_WEAKEN_LABEL): Remove.
1586         (TYPE_OPERAND_FMT): Remove.
1587         (ASM_DECLARE_FUNCTION_SIZE): Remove.
1588         (ASM_FINISH_DECLARE_OBJECT): Remove.
1589         (NO_DOLLAR_IN_LABEL): Remove.
1590         (ASM_GENERATE_INTERNAL_LABEL): Remove.
1591         (ASM_OUTPUT_CASE_LABEL): Remove.
1592         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
1593         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
1594         (gas_output_ascii): Remove.
1595         (gas_output_limited_string): Remove.
1596         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
1597         * config/avr/avr-protos.h
1598         (gas_output_ascii): Remove prototye.
1599         (gas_output_limited_string): Remove prototype.
1600
1601 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
1602
1603         PR target/48637
1604         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
1605         asm operands.
1606
1607 2011-06-27  Jan Hubicka  <jh@suse.cz>
1608
1609         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
1610         node instead of references in node.
1611
1612 2011-06-27  Richard Henderson  <rth@redhat.com>
1613
1614         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
1615         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
1616         inside ifdef.
1617
1618 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
1619
1620         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
1621
1622         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
1623         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
1624         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
1625         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
1626         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
1627         (evaluate_stmt, execute_fold_all_builtins): Handle
1628         BUILT_IN_ASSUME_ALIGNED.
1629         * tree-ssa-dce.c (propagate_necessity): Likewise.
1630         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1631         call_may_clobber_ref_p_1): Likewise.
1632         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
1633         (expand_builtin_assume_aligned): New function.
1634         * doc/extend.texi (__builtin_assume_aligned): Document.
1635
1636         PR debug/49544
1637         * cselib.c (promote_debug_loc): If cselib_preserve_constants
1638         and l has two DEBUG_INSN owned locs instead of just one, adjust
1639         the second location's setting_insn too.
1640
1641 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1642
1643         PR libmudflap/38738
1644         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
1645
1646 2011-06-27  Nick Clifton  <nickc@redhat.com>
1647
1648         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
1649         bit position of highest bit set into a count of the high zero bits.
1650
1651 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1652
1653         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
1654
1655 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1656
1657         PR lto/48492
1658         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
1659         to a NULL parent.
1660
1661 2011-06-27  Richard Guenther  <rguenther@suse.de>
1662
1663         PR tree-optimization/49394
1664         * passes.c (execute_one_pass): Restore current_pass after
1665         applying IPA transforms.
1666
1667 2011-06-27  Kai Tietz  <ktietz@redhat.com>
1668
1669         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
1670         out of type precision after operation.
1671         (find_bswap): Take for limit value the integer auto-promotion
1672         into account.
1673
1674 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1675
1676         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
1677         forward scan as well.
1678
1679 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1680
1681         PR target/44241
1682         * config/vms/vms-protos.h: New file.
1683         * config/vms/vms-crtlmap.map: New file.
1684         * config/vms/vms.c: New file.
1685         * config/vms/make-crtlmap.awk: New file.
1686         * config/vms/vms-crtl.h: File removed.
1687         * config/vms/vms-crtl-64.h: File removed.
1688         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
1689         * config/alpha/vms64.h: Do not include vms-crtl-64.h
1690         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
1691         clear some builtins on VMS.  Calls vms_patch_builtins.
1692         (avms_asm_output_external): Remove.
1693         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
1694         (struct crtl_name_spec): Remove
1695         (DO_CTRL_NAMES): Remove.
1696         * config/ia64/vms.h (struct crtl_name_spec): Remove
1697         (DO_CTRL_NAMES): Remove.
1698         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
1699         clear some builtins on VMS.  Calls vms_patch_builtins.
1700         (ia64_asm_output_external): Remove DO_CRTL_NAME.
1701         * config/ia64/vms64.h: Do not include vms-crtl-64.h
1702         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
1703
1704 2011-06-27  Tristan Gingold  <gingold@adacore.com>
1705
1706         * config/alpha/alpha.c (alpha_end_function): Always generate .end
1707         directive on VMS.
1708
1709 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
1710
1711         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
1712         the function receives nonlocal gotos.
1713
1714 2011-06-27  Richard Guenther  <rguenther@suse.de>
1715
1716         PR tree-optimization/49536
1717         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1718         For non-scalar inner types use a scalar type according to
1719         the scalar inner mode.
1720
1721 2011-06-27  Richard Guenther  <rguenther@suse.de>
1722
1723         PR tree-optimization/49365
1724         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
1725
1726 2011-06-27  Richard Guenther  <rguenther@suse.de>
1727
1728         PR tree-optimization/49169
1729         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
1730         the alignment of function decls.
1731
1732 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
1733
1734         PR target/47997
1735         * config/darwin.c (darwin_mergeable_string_section): Place string
1736         constants in '.cstring' rather than '.const' when CF/NSStrings are
1737         active.
1738
1739 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
1740
1741         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
1742         (emit_save_register_window): Likewise.
1743         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
1744         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
1745         Swap back %o7/%i7 in register naming.
1746
1747 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
1748
1749         PR driver/49371
1750         * config/darwin.c (darwin_override_options): Improve warning when
1751         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
1752         is given with fpie/fPIE.
1753         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
1754         * config/darwin9.h (PIE_SPEC): New.
1755
1756 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
1757
1758         * timevar.c (timevar_print): Increase width for display of timevar
1759         name.
1760
1761 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
1762
1763         PR c++/46400
1764         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
1765         instead of TYPE_CHAIN for chain_next for types.
1766
1767 2011-06-24  Richard Henderson  <rth@redhat.com>
1768
1769         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
1770         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
1771         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
1772         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
1773         (sparc_flat_expand_prologue): Emit individual instructions
1774         instead of one of the above.
1775
1776 2011-06-24  Easwaran Raman  <eraman@google.com>
1777
1778         PR rtl-optimization/49429
1779         PR target/49454
1780         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
1781         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
1782         used to copy y into x.
1783         * calls.c (initialize_argument_information): Mark
1784         an argument addressable if it is passed by invisible reference.
1785         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
1786         if it is passed by reference.
1787
1788 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
1789
1790         PR rtl-optimization/49504
1791         * rtlanal.c (nonzero_bits1): Properly handle addition or
1792         subtraction of a pointer in Pmode if pointers extend unsigned.
1793         (num_sign_bit_copies1): Likewise.
1794
1795 2011-06-24  Martin Jambor  <mjambor@suse.cz>
1796
1797         PR tree-optimizations/49516
1798         * tree-sra.c (sra_modify_assign): Choose the safe path for
1799         aggregate copies if we also did scalar replacements.
1800
1801 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1802
1803         PR target/49335
1804         * config/arm/predicates.md (add_operator): New.
1805         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
1806
1807 2011-06-24  Andi Kleen  <ak@linux.intel.com>
1808
1809         * tree-sra.c (type_internals_preclude_sra_p): Add msg
1810         parameter. Split up ifs and report reason in *msg.
1811         (reject): Add.
1812         (find_var_candiate): Add msg variable.
1813         Split up ifs and report reason to reject.
1814         (find_param_candidates): Add msg variable.
1815         Pass msg to type_internals_preclude_sra_p.
1816
1817 2011-06-23  Jeff Law  <law@redhat.com>
1818
1819         PR middle-end/48770
1820         * reload.h (reload): Change to return a bool.
1821         * ira.c (ira): If requested by reload, run a fast DCE pass after
1822         reload has completed.  Fix comment typo.
1823         * reload1.c (need_dce): New file scoped static.
1824         (reload): Set reload_completed here.  Return whether or not a DCE
1825         pass after reload is needed.
1826         (delete_dead_insn): Set need_dce as needed.
1827
1828         PR middle-end/49465
1829         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
1830         to detect threading through joiner block.  If there was already
1831         an edge to the new target, then do not change the PHI nodes.
1832
1833 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
1834
1835         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
1836         get_pointer_alignment to see if base isn't sufficiently aligned.
1837
1838 2011-06-23  Jan Hubicka  <jh@suse.cz>
1839
1840         PR tree-optimize/49373
1841         * tree-pass.h (all_late_ipa_passes): Declare.
1842         * cgraphunit.c (init_lowered_empty_function): Fix properties.
1843         (cgraph_optimize): Execute late passes; remove unreachable funcions
1844         after materialization.
1845         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
1846         LTOing.
1847         * passes.c (all_late_ipa_passes): Declare.
1848         (dump_passes, register_pass): Handle late ipa passes.
1849         (init_optimization_passes): Move ipa_pta to late passes; schedule
1850         fixup_cfg at beggining of all_passes.
1851         (apply_ipa_transforms): New function.
1852         (execute_one_pass): When doing simple ipa pass, apply all transforms.
1853
1854 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
1855
1856         * params.c: Include common/common-target.h.  Don't include tm.h.
1857         (lang_independent_params): Move from toplev.c.
1858         (global_init_params): New.
1859         * params.h (global_init_params): Declare.
1860         * target.def (default_params): Move to common-target.def.
1861         * toplev.c (lang_independent_options): Remove.
1862         (lang_independent_params): Move to params.c.
1863         (general_init): Use global_init_params.
1864         * common/common-target.def (option_default_params): Move from
1865         target.def.
1866         * common/config/ia64/ia64-common.c: Include params.h.
1867         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1868         from ia64.c.
1869         * common/config/rs6000/rs6000-common.c: Include params.h.
1870         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1871         from rs6000.c.
1872         * common/config/sh/sh-common.c: Include params.h.
1873         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1874         from sh.c.
1875         * common/config/spu/spu-common.c: Include params.h.
1876         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
1877         from spu.c.
1878         * config/ia64/ia64.c (ia64_option_default_params,
1879         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
1880         * config/rs6000/rs6000.c (rs6000_option_default_params,
1881         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
1882         * config/sh/sh.c (sh_option_default_params,
1883         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
1884         * config/spu/spu.c (spu_option_default_params,
1885         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
1886         * Makefile.in (OBJS): Remove params.o.
1887         (OBJS-libcommon-target): Add params.o.
1888         (params.o, $(common_out_object_file)): Update dependencies.
1889         * doc/tm.texi: Regenerate.
1890
1891 2011-06-23  Alan Modra  <amodra@gmail.com>
1892
1893         PR bootstrap/49383
1894         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
1895         invocation for 2011-06-09 changes.
1896
1897 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1898
1899         PR libgomp/49490
1900         * omp-low.c (expand_omp_for_static_nochunk): Only
1901         use n ceil/ nthreads size for the first n % nthreads threads in the
1902         team instead of all threads except for the last few ones which
1903         get less work or none at all.
1904
1905         PR debug/49496
1906         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
1907         uses.
1908
1909 2011-06-22  Richard Guenther  <rguenther@suse.de>
1910
1911         PR tree-optimization/49493
1912         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
1913         Refer to the alias target of variables.
1914         (associate_varinfo_to_alias_1): Remove.
1915         (ipa_pta_execute): Do not associate aliases with anything.
1916         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
1917         (cgraph_function_node): Likewise.
1918         (cgraph_function_or_thunk_node): Likewise.
1919         (varpool_variable_node): Likewise.
1920
1921 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
1922
1923         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
1924         * config.gcc (arm*-*-linux*): Default to gnu tls.
1925         (arm*-*-*): Add --with-tls option.
1926         (all_defaults): Add 'tls'.
1927
1928 2011-06-22  Richard Henderson  <rth@redhat.com>
1929
1930         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
1931         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
1932         (dwarf2out_frame_debug_cfa_window_save): Rename from
1933         dwarf2out_window_save; make static.
1934         * tree.h (dwarf2out_window_save): Don't declare.
1935
1936         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
1937         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
1938         (emit_save_register_window): Rename from gen_save_register_window;
1939         emit the insn and add REG_CFA_* notes.
1940         (sparc_expand_prologue): Update to match.
1941         * config/sparc/sparc.md (save_register_window_1): Simplify from
1942         save_register_window<P:mode>.
1943
1944 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
1945
1946         PR target/49497
1947         * config/i386/i386.md (*lea_general_2): Always allow SImode.
1948         (*lea_general_2_zext): Likewise.
1949         (imul to lea peepholes): Use const359_operand and check
1950         TARGET_PARTIAL_REG_STALL.
1951
1952         * config/i386/predicates.md (const359_operand): New.
1953
1954 2011-06-22  Michael Matz  <matz@suse.de>
1955
1956         * cgraphunit.c (assemble_thunk): Use correct return type.
1957
1958 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
1959             Dmitry Melnik  <dm@ispras.ru>
1960
1961         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
1962         (neon_output_shift_immediate): Ditto.
1963         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
1964         prototype.
1965         (neon_output_shift_immediate): Ditto.
1966         * config/arm/neon.md (vashl<mode>3): Modified constraint.
1967         (vashr<mode>3_imm): New insn pattern.
1968         (vlshr<mode>3_imm): Ditto.
1969         (vashr<mode>3): Modified constraint.
1970         (vlshr<mode>3): Ditto.
1971         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
1972         predicate.
1973         (imm_for_neon_rshift_operand): Ditto.
1974         (imm_lshift_or_reg_neon): Ditto.
1975         (imm_rshift_or_reg_neon): Ditto.
1976
1977         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
1978
1979 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1980
1981         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
1982         builtin calls even if likelyvalue is not CONSTANT.
1983         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
1984         Return get_value_for_expr of first operand
1985         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
1986         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
1987         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
1988         their non-checking counterparts.
1989         (call_may_clobber_ref_p_1): Likewise.
1990         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
1991         like their non-checking counterparts.
1992         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1993         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
1994         like their non-checking counterparts.
1995         (find_func_clobbers): Likewise.
1996         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
1997         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
1998
1999         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
2000         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
2001         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
2002         of base type reference as argument.
2003         (resolve_addr_in_expr): Likewise.  Fix keep computation.
2004         (convert_descriptor_to_signed): Renamed to...
2005         (convert_descriptor_to_mode): ... this.  For wider types convert to
2006         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
2007         (typed_binop): New function.
2008         (scompare_loc_descriptor, ucompare_loc_descriptor,
2009         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
2010         default to unsigned type instead of signed.
2011
2012         PR debug/47858
2013         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
2014         (gimple_build_debug_source_bind_stat): New prototype.
2015         (gimple_build_debug_source_bind): Define.
2016         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
2017         gimple_debug_source_bind_get_value,
2018         gimple_debug_source_bind_get_value_ptr,
2019         gimple_debug_source_bind_set_var,
2020         gimple_debug_source_bind_set_value): New inlines.
2021         * gimple.c (gimple_build_debug_source_bind_stat): New function.
2022         * gimple-pretty-print.c (dump_gimple_debug): Handle
2023         GIMPLE_DEBUG_SOURCE_BIND.
2024         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
2025         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2026         * tree-parloops.c (eliminate_local_variables,
2027         separate_decls_in_region): Likewise.
2028         (separate_decls_in_region_debug): Renamed from
2029         separate_decls_in_region_debug_bind.  Handle
2030         gimple_debug_source_bind_p.
2031         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
2032         prototypes.
2033         (DECL_HAS_DEBUG_ARGS_P): Define.
2034         (struct tree_function_decl): Add has_debug_args_flag field.
2035         * tree.c (debug_args_for_decl): New variable.
2036         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
2037         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
2038         (rewrite_debug_stmt_uses): New function.
2039         (rewrite_stmt): Use it to rewrite debug stmt uses.
2040         * rtl.def (DEBUG_PARAMETER_REF): New.
2041         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
2042         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
2043         DEBUG_PARAMETER_REF.
2044         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
2045         * print-rtl.c (print_rtx): Likewise.
2046         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
2047         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
2048         debug stmts in the first bb.
2049         * tree-inline.c (remap_ssa_name): If remapping default def
2050         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
2051         a source bind debug stmt.
2052         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
2053         (maybe_move_debug_stmts_to_successors): Likewise.
2054         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
2055         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
2056         debug args vector from old_decl to new_decl.
2057         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
2058         or modified parameters, add debug bind stmts before call
2059         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
2060         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
2061         on DECL_DEBUG_EXPRs from debug args vector.
2062         (expand_debug_source_expr): New function.
2063         (expand_debug_locations): Use it for source bind insns.
2064         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
2065         * var-tracking.c (prepare_call_arguments): Add debug args
2066         to call_arguments if any.
2067         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
2068         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
2069         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
2070         (get_ref_die_offset, parameter_ref_descriptor): New functions.
2071         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
2072         (gen_subprogram_die): Handle parameters identified by
2073         DEBUG_PARAMETER_REF.
2074
2075 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
2076
2077         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
2078         * doc/install.texi (Configuration): Document --with-tls.
2079         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
2080         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
2081         (arm_tls_descseq_addr): New.
2082         (legitimize_tls_address): Add tlsdesc support.
2083         (arm_cannot_copy_insn_p): Check for tlscall.
2084         (arm_emit_tls_decoration): Likewise.
2085         * config/arm/arm.h (TARGET_GNU2_TLS): New.
2086         (OPTION_DEFAULT_SPECS): Add with-tls support.
2087         * config/arm/arm.md (R1_REGNUM): Define.
2088         (tlscall): New.
2089         * config/arm/arm.opt (tls_type): New enumeration type and values.
2090         (mtls-dialect): New switch.
2091         * config/arm/arm-opts.h (enum tls_type): New.
2092
2093 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2094
2095         * attribs.c (register_attribute): Added assert to check that all
2096         attribute specs are registered with a name that is not empty and
2097         does not start with '_'.
2098         (decl_attributes): Avoid the lookup of the "naked" attribute spec
2099         if the function has no attributes.
2100         * tree.c (is_attribute_with_length_p): Removed.
2101         (is_attribute_p): Removed.
2102         (private_is_attribute_p): New.
2103         (private_lookup_attribute): New.
2104         (lookup_attribute): Removed.
2105         (lookup_ident_attribute): New.
2106         (remove_attribute): Require the first argument to be in the form
2107         'text', not '__text__'.  Updated asserts.
2108         (merge_attributes): Use lookup_ident_attributes instead of
2109         lookup_attribute.
2110         (merge_dllimport_decl_attributes): Use remove_attribute.
2111         (attribute_list_contained): Likewise.
2112         (attribute_list_equal): Immediately return 1 if the arguments are
2113         identical pointers.
2114         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
2115         'int'.  Require the first argument to be in the form 'text', not
2116         '__text__'.  Require the second argument to be an identifier.
2117         (lookup_attribute): Made inline.  Require the first argument to be
2118         in the form 'text', not '__text__'.
2119         (private_is_attribute_p, private_lookup_attribute): New.
2120         Updated comments.
2121
2122 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
2123
2124         * builtins.c: Add sync_ or SYNC__ to builtin names.
2125         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
2126         * omp-low.c: Add sync_ or SYNC__ to builtin names.
2127
2128 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2129
2130         PR target/33049
2131         * config/avr/avr.md (extzv): New expander.
2132         (*extzv): New insn.
2133         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
2134         * config/avr/constraints.md (C04): New constraint.
2135         * doc/md.texi (Machine Constraints): Document it.
2136
2137 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2138
2139         PR middle-end/49489
2140         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
2141         unsignedp argument instead of 1 for clrsb_optab.
2142         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
2143         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
2144         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
2145         * optabs.c (widen_leading): Call widen_operand and expand_unop
2146         with 0 as unsignedp argument instead of 1 for clrsb_optab.
2147         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
2148
2149 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
2150
2151         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
2152
2153 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
2154
2155         * gensupport.c (add_define_attr): New static function.
2156         (is_predicable): Allow multi-alternative lists for the "predicable"
2157         attribute.
2158         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
2159         (process_one_cond_exec): Call alter_attrs_for_insn.
2160         * doc/md.texi (Defining Attributes): Mention some standard names.
2161         (Conditional Execution): Update documentation for "predicable".
2162
2163         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
2164         __builtin_clrsbll): Document.
2165         * doc/rtl.texi (clrsb): New entry.
2166         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
2167         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
2168         (expand_unop): Handle clrsb_optab.
2169         (init_optabs): Initialize it.
2170         * optabs.h (enum optab_index): New entry OTI_clrsb.
2171         (clrsb_optab): Define.
2172         * genopinit.c (optabs): Add an entry for it.
2173         * builtins.c (expand_builtin): Handle clrsb builtin functions.
2174         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
2175         BUILT_IN_CLRSBLL): New.
2176         * rtl.def (CLRSB): New code.
2177         * dwarf2out.c (mem_loc_descriptor): Handle it.
2178         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2179         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
2180         and popcount.
2181         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
2182         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
2183         (__ctzDI2): Move declaration.
2184         * config/bfin/bfin.md (clrsbsi2): New expander.
2185         (signbitssi2): Use the CLRSB rtx.
2186         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
2187         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
2188
2189 2011-06-21  Richard Guenther  <rguenther@suse.de>
2190
2191         * ipa-inline-transform.c (inline_transform): Fix previous change.
2192
2193 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
2194
2195         PR tree-optimization/49478
2196         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
2197         with constant operand.
2198
2199 2011-06-21  Richard Guenther  <rguenther@suse.de>
2200
2201         * ipa-inline-transform.c (inline_transform): Fix typo.
2202
2203 2011-06-21  Richard Guenther  <rguenther@suse.de>
2204
2205         PR tree-optimization/49483
2206         * tree-vect-stmts.c (vectorizable_assignment): Also handle
2207         VIEW_CONVERT_EXPR conversions.
2208
2209 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
2210
2211         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
2212         * config/avr/avr-tables.opt: New file (generated).
2213         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
2214         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
2215         avr-mcus.def.
2216         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
2217         (avr_option_override): Don't process -mmcu= argument here.  Set
2218         avr_current_device using avr_mcu_index.
2219         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
2220         * config/avr/avr.opt (mmcu=): Use Enum.
2221         * config/avr/t-avr (avr-devices.o): Update dependencies.
2222         ($(srcdir)/config/avr/avr-tables.opt): New.
2223         * target.def (help): Remove.
2224         * doc/tm.texi.in (TARGET_HELP): Remove.
2225         * doc/tm.texi: Regenerate.
2226         * opts.c: Don't include target.h.
2227         (common_handle_option): Don't call targetm.help.
2228         * system.h (TARGET_HELP): Poison.
2229         * Makefile.in (opts.o): Update dependencies.
2230
2231 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2232
2233         * config/usegld.h: New file.
2234         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
2235         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
2236         (LIB_SPEC): Likewise.  Search /lib.
2237         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
2238         (RDYNAMIC_SPEC): Handle GNU ld.
2239         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
2240         Define.
2241         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
2242         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
2243         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
2244         (STACK_CHECK_STATIC_BUILTIN): Define.
2245         * config/sol2.opt (compat-bsd): Remove.
2246         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
2247         * config/sol2-bi.h: New file.
2248         * config/sol2-gld.h: Remove.
2249         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
2250         (NO_DBX_BNSYM_ENSYM): Remove.
2251         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2252         (STACK_CHECK_STATIC_BUILTIN): Remove.
2253         Test USE_GLD instead of TARGET_GNU_LD.
2254         * config/i386/sol2-10.h: Rename to ...
2255         * config/i386/sol2-bi.h .. this.
2256         (SUBTARGET_EXTRA_SPECS): Redefine.
2257         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
2258         (MULTILIB_DEFAULTS): Remove.
2259         (DEFAULT_ARCH32_P): Define.
2260         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
2261         (ARCH64_SUBDIR): Define.
2262         Test USE_GLD instead of TARGET_GNU_LD.
2263         (I386_EMULATION): Rename to ...
2264         (ARCH32_EMULATION): ... this.
2265         (X86_64_EMULATION): Rename to ...
2266         (ARCH64_EMULATION): ... this.
2267         (TARGET_LD_EMULATION): Remove.
2268         (LINK_ARCH_SPEC): Remove.
2269         * config/i386/sol2-gas.h: Remove.
2270         * config/i386/t-sol2-10: Rename to ...
2271         * config/i386/t-sol2-64: ... this.
2272         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
2273         (AS_SPARC64_FLAG): Define.
2274         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
2275         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
2276         depending on TARGET_CPU_DEFAULT.
2277         (CPP_CPU_SPEC): Redefine.
2278         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
2279         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
2280         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
2281         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
2282         ASM_ARCH_DEFAULT_SPEC): Redefine.
2283         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
2284         LINK_ARCH_DEFAULT_SPEC.
2285         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
2286         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
2287         (ARCH64_SUBDIR): Define.
2288         (LINK_ARCH64_SPEC): Redefine.
2289         (CC1_SPEC): Redefine.
2290         (OPTION_DEFAULT_SPECS): Redefine.
2291         (MULTILIB_DEFAULTS): Define.
2292         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
2293         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
2294         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
2295         (NO_DBX_BNSYM_ENSYM): Remove.
2296         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
2297         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
2298         (TARGET_ASM_NAMED_SECTION): Likewise.
2299         (STACK_CHECK_STATIC_BUILTIN): Remove.
2300         * config/sparc/sol2-bi.h: Remove.
2301         * config/sparc/sol2-gas-bi.h: Remove.
2302         * config/sparc/sol2-gas.h: Remove.
2303         * config/sparc/sol2-gld-bi.h: Remove.
2304         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
2305         common parts ...
2306         (*-*-solaris2*): ... here.
2307
2308 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2309
2310         PR other/43564
2311         * ipa-inline.c (can_inline_edge_p): Check
2312         !DECL_DISREGARD_INLINE_LIMITS.
2313
2314 2011-06-21  Christian Bruel  <christian.bruel@st.com>
2315
2316         PR middle-end/49139
2317         * cgraphunit.c (process_function_and_variable_attributes): warn when
2318         always_inline functions that are not inline.
2319         * ipa-inline-transform.c (inline_transform): Always call
2320         optimize_inline.
2321         * tree-inline.c (tree_inlinable_function_p): Use error instead
2322         of sorry.
2323         (expand_call_inline): Likewise.
2324
2325 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
2326
2327         * Makefile.in (dg_target_exps): Set.
2328         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
2329         instead of 7, try to divide it more evenly.
2330
2331 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
2332
2333         PR target/49089
2334         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
2335         (avx256_split_unaligned_store): New definition.
2336         (ix86_option_override_internal): Enable avx256 unaligned load/store
2337         splitting only when avx256_split_unaligned_load/store is set.
2338
2339 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2340
2341         * regrename.c (scan_rtx_reg): Handle the case where we write to an
2342         open chain in a smaller mode without failing the entire block.
2343
2344 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2345
2346         PR middle-end/47725
2347         * combine.c (cant_combine_insn_p): Don't check zero/sign
2348         extended hard registers.
2349
2350 2011-06-21  Alan Modra  <amodra@gmail.com>
2351
2352         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
2353         CONST high part large-toc address.
2354         (rs6000_tls_referenced_p): Make static.
2355         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
2356
2357 2011-06-20  H.J. Lu  <hongjiu.lu@intel.com>
2358
2359         PR middle-end/47725
2360         * combine.c (cant_combine_insn_p): Check zero/sign extended
2361         hard registers.
2362
2363 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2364
2365         PR target/49385
2366         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
2367         one of the operands is a register.
2368
2369 2011-06-20  Kai Tietz  <ktietz@redhat.com>
2370
2371         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
2372         operations in combination with binary and.
2373
2374 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
2375
2376         * regrename.c (do_replace): Don't update notes.
2377
2378 2011-06-20  Alan Modra  <amodra@gmail.com>
2379
2380         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
2381         of toc-relative address in CONST.
2382         (rs6000_delegitimize_address): Recognize changed address.
2383         (rs6000_legitimize_reload_address): Likewise.
2384         (rs6000_emit_move): Don't force these constants to memory.
2385         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
2386         toc-relative address in CONST.
2387         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
2388         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
2389
2390 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2391
2392         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
2393         (count_trailing_zeros): Likewise.
2394
2395 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
2396
2397         PR other/49325
2398         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
2399         .init_array can be used with .ctors on targets.
2400         * configure: Regenerated.
2401
2402 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
2403
2404         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
2405         if the element type is volatile.
2406
2407 2011-06-18  Jan Hubicka  <jh@suse.cz>
2408
2409         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
2410         extra name aliases.
2411         (lto_symtab_resolve_can_prevail_p): Likewise.
2412         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
2413         * cgraphbuild.c (record_reference): Remove extra body alias code.
2414         (mark_load): Likewise.
2415         (mark_store): Likewise.
2416         * cgraph.h (varpool_node): Remove extra_name filed;
2417         add alias_of and extraname_alias.
2418         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
2419         (varpool_alias_aliased_node): New inline function.
2420         (varpool_variable_node): New function.
2421         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
2422         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
2423         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
2424         (input_varpool_node): Likewise.
2425         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
2426         (varpool_externally_visible_p): Remove extra body alias code.
2427         (function_and_variable_visibility): Likewise.
2428         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
2429         (ipa_pta_execute): Use it.
2430         * varpool.c (varpool_remove_node): Remove extra name alias code.
2431         (varpool_mark_needed_node): Likewise.
2432         (varpool_analyze_pending_decls): Analyze aliases.
2433         (assemble_aliases): New functoin.
2434         (varpool_assemble_decl): Use it.
2435         (varpool_create_variable_alias): New function.
2436         (varpool_extra_name_alias): Rewrite.
2437         (varpool_for_node_and_aliases): New function.
2438
2439 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
2440
2441         PR target/49411
2442         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
2443         last_arg_constant and last argument doesn't match its predicate,
2444         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
2445         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
2446         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
2447         spelling of error message.
2448         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
2449         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
2450         const_0_to_255_operand instead of const_int_operand.
2451
2452         Revert:
2453         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
2454
2455         * config/i386/sse.md (blendbits): Remove mode attribute.
2456         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
2457         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
2458         Check integer value of operand 3 in insn constraint.
2459
2460 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
2461
2462         PR rtl-optimization/48542
2463         * reload.c (find_equiv_reg): Stop looking when finding a
2464         setjmp-type call.
2465         * reload1.c (reload_as_needed): Invalidate all reload
2466         registers when crossing a setjmp-type call.
2467
2468 2011-06-16  Jeff Law  <law@redhat.com>
2469
2470         * tree-ssa-threadupdate.c (struct redirection_data): New field
2471         intermediate_edge.
2472         (THREAD_TARGET2): Define.
2473         (redirection_data_eq): Also check that the intermediate edge is equal.
2474         (lookup_redirection_data): Drop useless argument.  Extract the
2475         outgoing_edge and intermediate edge from E.  Callers updated.
2476         (copy_phi_args, update_destination_phis): New functions.
2477         (fix_duplicate_block_edges): Likewise.
2478         (create_edge_and_update_destination_phis): Duplicate all the edges
2479         hung off e->aux.  Use copy_phi_args.
2480         (create_duplicates): Use fix_duplicate_block_edges.
2481         (fixup_template_block): Likewise.
2482         (redirect_edges): If necessary, redirect the joiner block's incoming
2483         edge to the duplicate of the joiner block.
2484         (thread_block): Don't muck up loops when threading through a joiner
2485         block.
2486         (thread_through_loop_header): Handle threading through a joiner block.
2487         (mark_threaded_blocks, register_jump_thread): Likewise.
2488         * tree-flow.h (register_jump_thread): Add new argument.  Callers
2489         updated.
2490         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
2491         (thread_across_edge): Handle threading through a joiner block.
2492
2493 2011-06-16  Martin Jambor  <mjambor@suse.cz>
2494
2495         PR tree-optimization/49343
2496         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
2497         calculate offset, provide 2nd operand for the new COMPONENT_REF.
2498
2499 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
2500
2501         * config/darwin-protos.h (machopic_select_rtx_section): Move to
2502         inside RTX_CODE ifdef.
2503
2504 2011-06-16  Tom de Vries  <tom@codesourcery.com>
2505
2506         PR target/45098
2507         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
2508         Disallow NULL pointer for pointer arithmetic.
2509
2510 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2511
2512         PR target/49398
2513         Revert.
2514         2011-06-10  Wei Guozhi  <carrot@google.com>
2515
2516         PR target/45335
2517         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
2518         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
2519         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
2520         related peephole2.
2521         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
2522         related peephole2.
2523         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
2524         (arm_legitimate_ldrd_p): New prototype.
2525         (arm_output_ldrd): New prototype.
2526         * config/arm/arm.c (arm_check_ldrd_operands): New function.
2527         (arm_legitimate_ldrd_p): New function.
2528         (arm_output_ldrd): New function.
2529
2530 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
2531
2532         PR middle-end/46500
2533         * doc/tm.texi.in: Update Copyright date.
2534         * doc/tm.texi: Regenerate.
2535         * targhooks.c (default_setup_incoming_varargs): Replace
2536         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2537         (default_pretend_outgoing_varargs_named): Likewise.
2538         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2539         (hook_callee_copies_named): Likewise.
2540         (default_function_arg_advance): Likewise.
2541         (default_function_arg): Likewise.
2542         (default_function_incoming_arg): Likewise.
2543         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2544         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2545         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2546         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2547         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2548         * targhooks.h (default_setup_incoming_varargs): Likewise.
2549         (default_pretend_outgoing_varargs_named): Likewise.
2550         (hook_pass_by_reference_must_pass_in_stack): Likewise.
2551         (hook_callee_copies_named): Likewise.
2552         (default_function_arg_advance): Likewise.
2553         (default_function_arg): Likewise.
2554         (default_function_incoming_arg): Likewise.
2555         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
2556         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
2557         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
2558         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
2559         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
2560         * target.def (pass_by_reference): Likewise.
2561         (setup_incoming_varargs, strict_argument_naming): Likewise.
2562         (pretend_outgoing_varargs_named, callee_copies): Likewise.
2563         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
2564         (function_incoming_arg): Likewise.
2565         * target.h: Don't include "tm.h" .
2566         (cumulative_args_t): New typedef.
2567         [GCC_TM_H] (get_cumulative_args): New static inline function.
2568         [GCC_TM_H] (pack_cumulative_args): Likewise.
2569         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
2570         argument type with cumulative_args_t.
2571         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
2572         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
2573         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
2574         (frv_arg_partial_bytes, frv_function_arg): Likewise.
2575         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
2576         (frv_function_arg_1): Likewise.
2577         * config/s390/s390.c (s390_pass_by_reference): Likewise.
2578         (s390_function_arg_advance, s390_function_arg): Likewise.
2579         * config/m32c/m32c.c (m32c_function_arg): Likewise.
2580         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
2581         (m32c_strict_argument_naming): Likewise.
2582         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
2583         (spu_function_arg_advance): Likewise.
2584         (spu_setup_incoming_varargs): Likewise.  Make static.
2585         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
2586         Remove prototype.
2587         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
2588         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2589         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
2590         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
2591         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
2592         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
2593         (mep_pass_by_reference, mep_function_arg): Likewise.
2594         (mep_function_arg_advance): Likewise.
2595         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
2596         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
2597         (m32r_function_arg, m32r_function_arg_advance): Likewise.
2598         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
2599         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
2600         (ix86_function_arg, ix86_pass_by_reference): Likewise.
2601         (ix86_setup_incoming_varargs): Likewise.
2602         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
2603         (sh_strict_argument_naming): Likewise.
2604         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
2605         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
2606         (sh_function_arg_advance, sh_function_arg): Likewise.
2607         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
2608         (pdp11_function_arg_advance): Likewise.
2609         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
2610         Likewise.
2611         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
2612         * config/avr/avr.c (avr_function_arg): Likewise.
2613         (avr_function_arg_advance): Likewise.
2614         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
2615         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
2616         (xtensa_function_arg_1): Likewise.
2617         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
2618         Likewise.
2619         (xstormy16_function_arg): Likewise.
2620         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
2621         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
2622         (fr30_function_arg_advance): Likewise.
2623         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
2624         (lm32_function_arg, lm32_function_arg_advance): Likewise.
2625         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
2626         (moxie_function_arg, moxie_function_arg_advance): Likewise.
2627         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
2628         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
2629         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
2630         (cris_function_arg, cris_function_incoming_arg): Likewise.
2631         (cris_function_arg_advance, cris_function_arg_1): Likewise.
2632         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
2633         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
2634         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
2635         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
2636         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
2637         (mn10300_arg_partial_bytes): Likewise.
2638         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
2639         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
2640         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
2641         (ia64_function_arg_1): Likewise.
2642         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
2643         (m68k_function_arg): Likewise.
2644         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
2645         (rs6000_function_arg, setup_incoming_varargs): Likewise.
2646         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
2647         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
2648         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
2649         (picochip_arg_advance): Likewise.
2650         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
2651         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
2652         (mcore_function_arg_advance): Likewise.
2653         * config/score/score.c (score_pass_by_reference): Likewise.
2654         (score_function_arg_advance): Likewise.
2655         (score_arg_partial_bytes): Likewise.  Make static.
2656         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
2657         * config/arm/arm.c (arm_arg_partial_bytes): Replace
2658         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2659         (arm_function_arg, arm_function_arg_advance): Likewise.
2660         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
2661         * config/pa/pa.c (pa_pass_by_reference): Likewise.
2662         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
2663         (pa_function_arg): Likewise.
2664         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
2665         (mips_function_arg, mips_function_arg_advance): Likewise.
2666         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
2667         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
2668         * config/vax/vax.c (vax_function_arg): Likewise.
2669         (vax_function_arg_advance): Likewise.
2670         * config/h8300/h8300.c (h8300_function_arg): Likewise.
2671         (h8300_function_arg_advance): Likewise.
2672         * config/v850/v850.c (v850_pass_by_reference): Likewise.
2673         (v850_strict_argument_naming, v850_function_arg): Likewise.
2674         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
2675         (v850_setup_incoming_varargs): Likewise.
2676         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
2677         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
2678         (mmix_function_arg, mmix_pass_by_reference): Likewise.
2679         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
2680         with const void *.
2681         * config/bfin/bfin.c (setup_incoming_varargs): Replace
2682         CUMULATIVE_ARGS* argument type with cumulative_args_t.
2683         (bfin_function_arg_advance, bfin_function_arg): Likewise.
2684         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
2685         * calls.c (emit_call_1): Change type of args_so_far to
2686         cumulative_args_t.  Changed all callers.
2687         (initialize_argument_information): Likewise.
2688         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
2689         * dse.c (get_call_args): Likewise.
2690         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
2691         * function.c (pass_by_reference, reference_callee_copied): Likewise.
2692         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
2693         New member args_so_far_v.  Changed all users.
2694         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
2695         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2696         * config/mips/mips.c (mips_output_args_xfer): Likewise.
2697         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
2698         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2699         * config/microblaze/microblaze.c (microblaze_expand_prologue):
2700         Likewise.
2701         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
2702         m32r_pass_by_reference.
2703
2704 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
2705
2706         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
2707         argument to be a VEC of statements.
2708         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
2709         assert that pattern statements have to have their vector type set.
2710         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
2711         Change the first argument to be a VEC of statements.  Update
2712         documentation.
2713         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
2714         (vect_handle_widen_mult_by_const): New function.
2715         (vect_recog_widen_mult_pattern):  Change the first argument to be a
2716         VEC of statements.  Update documentation.  Check that the constant is
2717         INTEGER_CST.  Support multiplication by a constant that fits an
2718         intermediate type - call vect_handle_widen_mult_by_const.
2719         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
2720         call.  Handle additional pattern statements if necessary.
2721
2722 2011-06-16  Nick Clifton  <nickc@redhat.com>
2723
2724         PR target/49427
2725         * config.gcc: Set cpu_type to v850 for any V850 architecture.
2726         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
2727         md_file, extra_modes, out_file and extra_options are these are all
2728         deduced from cpu_type.
2729
2730 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
2731
2732         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
2733         truncation mask to 63.
2734
2735 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
2736
2737         PR target/49313
2738         PR target/29524
2739         * longlong.h: Add AVR support:
2740         (count_leading_zeros): New macro.
2741         (count_trailing_zeros): New macro.
2742         (COUNT_LEADING_ZEROS_0): New macro.
2743         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
2744         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
2745         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
2746         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
2747         (LIB2FUNCS_EXCLUDE): Add _clz.
2748         * config/avr/libgcc.S (XCALL): Move up in file.
2749         (XJMP): New C Macro.
2750         (DEFUN): New asm macro.
2751         (ENDF): New asm macro.
2752         (__ffssi2): New function.
2753         (__ffshi2): New function.
2754         (__loop_ffsqi2): New function.
2755         (__ctzsi2): New function.
2756         (__ctzhi2): New function.
2757         (__clzdi2): New function.
2758         (__clzsi2): New function.
2759         (__clzhi2): New function.
2760         (__paritydi2): New function.
2761         (__paritysi2): New function.
2762         (__parityhi2): New function.
2763         (__parityqi2): New function.
2764         (__popcounthi2): New function.
2765         (__popcountsi2): New function.
2766         (__popcountdi2): New function.
2767         (__popcountqi2): New function.
2768         (__bswapsi2): New function.
2769         (__bswapdi2): New function.
2770         (__ashldi3): New function.
2771         (__ashrdi3): New function.
2772         (__lshrdi3): New function.
2773         Fix suspicous lines.
2774
2775 2011-06-16  Richard Guenther  <rguenther@suse.de>
2776
2777         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
2778         the same as x != 0.
2779         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
2780         to (bool) X & 1.
2781         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
2782         equality compares against zero for the lower bit.
2783
2784 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
2785
2786         PR tree-optimization/49419
2787         * tree-vrp.c (execute_vrp): Call init_range_assertions
2788         before estimate_numbers_of_iterations, call
2789         free_number_of_iterations_estimates before calling
2790         remove_range_assertions.
2791
2792 2011-06-16  Revital Eres  <revital.eres@linaro.org>
2793
2794         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
2795         (struct partial_schedule): Add rows_length field.
2796         (verify_partial_schedule): Check rows_length.
2797         (ps_insert_empty_row): Handle rows_length.
2798         (create_partial_schedule): Likewise.
2799         (free_partial_schedule): Likewise.
2800         (reset_partial_schedule): Likewise.
2801         (create_ps_insn): Remove rest_count argument.
2802         (remove_node_from_ps): Update rows_length.
2803         (add_node_to_ps): Update rows_length and call create_ps_insn
2804         without passing row_rest_count.
2805         (rotate_partial_schedule): Update rows_length.
2806
2807 2011-06-16  Revital Eres  <revital.eres@linaro.org>
2808
2809         * ddg.c (add_intra_loop_mem_dep): New function.
2810         (build_intra_loop_deps): Call it.
2811
2812 2011-06-13  Jeff Law  <law@redhat.com>
2813
2814         * df-problems.c (df_lr_local_compute): Manually CSE
2815         PIC_OFFSET_TABLE_REGNUM.
2816         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
2817         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
2818
2819 2011-06-13  Jan Hubicka  <jh@suse.cz>
2820
2821         * cgraphunit.c (handle_alias_pairs): New function.
2822         (cgraph_finalize_compilation_unit): Use it.
2823         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
2824         as externally visible.
2825
2826 2011-06-15  Richard Guenther  <rguenther@suse.de>
2827
2828         * expr.c (expand_expr_real_2): Reduce all integral types to
2829         bitfield precision.
2830         (expand_expr_real_1): Likewise.
2831
2832 2011-06-15  Martin Jambor  <mjambor@suse.cz>
2833
2834         PR tree-optimization/48613
2835         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
2836         ipa_node_params_vector is NULL.
2837
2838 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
2839
2840         PR debug/49382
2841         * dwarf2out.c (dw_loc_list_node): Add force field.
2842         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
2843         location in the list, even if it is modified before first real insn.
2844         (output_loc_list): Emit empty ranges with force flag set.
2845         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
2846
2847 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
2848
2849         PR target/49349
2850         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
2851         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
2852         above a fence.  Update comments.
2853         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
2854         placed just above it.  Do not allow NULL place_to_insert.
2855
2856 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
2857
2858         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
2859         (slpeel_tree_peel_loop_to_edge): Don't call
2860         remove_dead_stmts_from_loop.
2861         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2862         remove irrelevant pattern statements.  For irrelevant statements
2863         check if it is the last statement of a detected pattern, use
2864         corresponding pattern statement instead.
2865         (destroy_loop_vec_info): No need to remove pattern statements,
2866         only free stmt_vec_info.
2867         (vect_transform_loop): For irrelevant statements check if it is
2868         the last statement of a detected pattern, use corresponding
2869         pattern statement instead.
2870         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
2871         pattern statements.  Set basic block for the new statement.
2872         (vect_pattern_recog): Update documentation.
2873         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
2874         operands of pattern statements.
2875         (vectorizable_call): Fix printing.  In case of a pattern statement
2876         use the lhs of the original statement when creating a dummy
2877         statement to replace the original call.
2878         (vect_analyze_stmt): For irrelevant statements check if it is
2879         the last statement of a detected pattern, use corresponding
2880         pattern statement instead.
2881         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
2882         statements use gsi of the original statement.
2883
2884 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
2885
2886         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
2887         common/common-target-def.h.
2888         * target.def (default_target_flags, handle_option,
2889         supports_split_stack, optimization_table, init_struct,
2890         except_unwind_info, unwind_tables_default, have_named_sections):
2891         Move to common/common-target.def.
2892         * target.h (enum opt_levels, struct default_options): Move to
2893         common/common-target.h.
2894         * targhooks.c (default_except_unwind_info,
2895         dwarf2_except_unwind_info, sjlj_except_unwind_info,
2896         default_target_handle_option, empty_optimization_table): Move to
2897         common/common-targhooks.c.
2898         * targhooks.h (default_except_unwind_info,
2899         dwarf2_except_unwind_info, sjlj_except_unwind_info,
2900         default_target_handle_option, empty_optimization_table): Move to
2901         common/common-targhooks.h.
2902         * common/common-target-def.h: Include common/common-targhooks.h.
2903         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
2904         defined.
2905         * common/common-target.def (handle_option, option_init_struct,
2906         option_optimization_table, default_target_flags,
2907         except_unwind_info, supports_split_stack, unwind_tables_default,
2908         have_named_sections): Move from target.def.
2909         (HOOK_PREFIX): Undefine at end of file.
2910         * common/common-target.h: Include input.h.
2911         (enum opt_levels, struct default_options): Move from target.h.
2912         * common/common-targhooks.c, common/common-targhooks.h: New.
2913         * config.gcc (target_has_targetm_common): Default to yes.
2914         (moxie*): Set target_has_targetm_common=no.
2915         (hppa*-*-*): Don't set target_has_targetm_common=yes.
2916         * doc/tm.texi: Regenerate.
2917         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
2918         (C_TARGET_DEF_H): Add common/common-targhooks.h.
2919         (GCC_OBJS): Remove vec.o.
2920         (OBJS): Remove hooks.o and vec.o.
2921         (OBJS-libcommon-target): Add vec.o, hooks.o and
2922         common/common-targhooks.o.
2923         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
2924         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
2925         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
2926         cfglayout.o, $(out_object_file), $(common_out_object_file)):
2927         Update dependencies.
2928         (common/common-targhooks.o): New.
2929         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
2930         * common/config/pa/pa-common.c: Include more headers.  Take
2931         copyright dates from pa.c.
2932         (pa_option_optimization_table, pa_handle_option,
2933         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
2934         TARGET_HANDLE_OPTION): Move from pa.c.
2935         * common/config/alpha/alpha-common.c,
2936         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
2937         common/config/bfin/bfin-common.c,
2938         common/config/cris/cris-common.c,
2939         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
2940         common/config/h8300/h8300-common.c,
2941         common/config/i386/i386-common.c,
2942         common/config/ia64/ia64-common.c,
2943         common/config/iq2000/iq2000-common.c,
2944         common/config/lm32/lm32-common.c,
2945         common/config/m32c/m32c-common.c,
2946         common/config/m32r/m32r-common.c,
2947         common/config/m68k/m68k-common.c,
2948         common/config/mcore/mcore-common.c,
2949         common/config/mep/mep-common.c,
2950         common/config/microblaze/microblaze-common.c,
2951         common/config/mips/mips-common.c,
2952         common/config/mmix/mmix-common.c,
2953         common/config/mn10300/mn10300-common.c,
2954         common/config/pdp11/pdp11-common.c,
2955         common/config/picochip/picochip-common.c,
2956         common/config/rs6000/rs6000-common.c,
2957         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
2958         common/config/score/score-common.c, common/config/sh/sh-common.c,
2959         common/config/sparc/sparc-common.c,
2960         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
2961         common/config/vax/vax-common.c,
2962         common/config/xstormy16/xstormy16-common.c,
2963         common/config/xtensa/xtensa-common.c: New.
2964         * config/alpha/alpha.c: Include common/common-target.h.
2965         (alpha_option_optimization_table, alpha_handle_option,
2966         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2967         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
2968         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
2969         * config/arm/arm.c (arm_option_optimization_table,
2970         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2971         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
2972         arm-common.c.
2973         * config/avr/avr.c (avr_option_optimization_table,
2974         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
2975         to avr-common.c.
2976         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
2977         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
2978         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
2979         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
2980         * config/cris/cris.c (cris_option_optimization_table,
2981         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
2982         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
2983         cris-common.c.
2984         * config/fr30/fr30.c (fr30_option_optimization_table,
2985         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
2986         to fr30-common.c.
2987         * config/frv/frv.c (frv_option_optimization_table,
2988         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
2989         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
2990         * config/h8300/h8300.c (h8300_option_optimization_table,
2991         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
2992         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
2993         * config/i386/i386-protos.h (ix86_handle_option): Declare.
2994         * config/i386/i386.c: Include common/common-target.h.
2995         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
2996         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
2997         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
2998         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
2999         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
3000         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
3001         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
3002         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
3003         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
3004         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
3005         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
3006         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
3007         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
3008         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
3009         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
3010         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
3011         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
3012         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
3013         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
3014         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
3015         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
3016         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
3017         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
3018         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
3019         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
3020         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
3021         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
3022         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
3023         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
3024         ix86_option_optimization_table, ix86_option_init_struct,
3025         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
3026         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3027         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
3028         i386-common.c.
3029         * config/i386/t-i386 (i386.o): Update dependencies.
3030         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
3031         * config/ia64/ia64.c (ia64_option_optimization_table,
3032         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3033         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3034         ia64_handle_option): Move to ia64-common.c.
3035         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
3036         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
3037         * config/lm32/lm32.c (lm32_option_optimization_table,
3038         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
3039         to lm32-common.c.
3040         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
3041         m32c-common.c.
3042         * config/m32r/m32r.c (m32r_option_optimization_table,
3043         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3044         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
3045         m32r_handle_option): Move to m32r-common.c.
3046         (m32r_memory_move_cost): Remove comment referring to
3047         TARGET_HANDLE_OPTION.
3048         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
3049         Move to m68k-common.c.
3050         * config/mcore/mcore.c (mcore_option_optimization_table,
3051         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3052         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
3053         * config/mep/mep.c (mep_option_optimization_table,
3054         mep_handle_option, TARGET_HANDLE_OPTION,
3055         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
3056         Move to mep-common.c.
3057         * config/microblaze/microblaze.c
3058         (microblaze_option_optimization_table,
3059         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
3060         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
3061         * config/mips/mips.c (mips_handle_option,
3062         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3063         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
3064         mips-common.c.
3065         * config/mmix/mmix.c (mmix_option_optimization_table,
3066         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3067         Move to mmix-common.c.
3068         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
3069         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
3070         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3071         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
3072         * config/pa/pa.c: Include common/common-target.h.
3073         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
3074         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3075         pa_handle_option): Move to pa-common.c.
3076         (pa_option_override): Use targetm_common.except_unwind_info.
3077         (pa_asm_output_mi_thunk, pa_function_section): Use
3078         targetm_common.have_named_sections.
3079         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
3080         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3081         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3082         pdp11_handle_option, pdp11_option_init_struct): Move to
3083         pdp11-common.c.
3084         * config/picochip/picochip.c (picochip_option_optimization_table,
3085         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
3086         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
3087         * config/rs6000/rs6000.c: Include common/common-target.h.
3088         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
3089         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
3090         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
3091         rs6000_handle_option): Move to rs6000-common.c.
3092         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
3093         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
3094         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3095         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
3096         * config/s390/s390.c (processor_flags_table,
3097         s390_option_optimization_table, s390_option_init_struct,
3098         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
3099         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
3100         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
3101         * config/s390/s390.h (processor_flags_table): Declare.
3102         * config/score/score.c (score_option_optimization_table,
3103         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3104         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
3105         score_handle_option): Move to score-common.c.
3106         * config/sh/sh.c (sh_option_optimization_table,
3107         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
3108         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
3109         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
3110         * config/sparc/sparc.c: Include common/common-target.h.
3111         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3112         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
3113         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
3114         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
3115         spu_option_init_struct): Move to spu-common.c.
3116         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
3117         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
3118         * config/v850/v850.c (small_memory_physical_max,
3119         v850_handle_memory_optionn v850_handle_option,
3120         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
3121         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
3122         v850-common.c.
3123         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
3124         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
3125         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
3126         Move to xtensa-common.c.
3127         * cfglayout.c: Include common/common-target.h.
3128         (fixup_reorder_chain): Use targetm_common.have_named_sections.
3129         * cfgrtl.c: Include common/common-target.h.
3130         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
3131         targetm_common.have_named_sections.
3132         * dbxout.c: Include common/common-target.h.
3133         (dbxout_function_end): Use targetm_common.have_named_sections.
3134         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
3135         targetm_common.except_unwind_info.
3136         * dwarf2out.c: Include common/common-target.h.
3137         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
3138         dwarf2out_begin_prologue, dwarf2out_frame_init,
3139         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
3140         targetm_common.except_unwind_info.
3141         * except.c: Include common/common-target.h.
3142         (init_eh, finish_eh_generation,
3143         output_one_function_exception_table): Use
3144         targetm_common.except_unwind_info.
3145         (switch_to_exception_section): Use targetm_common.have_named_sections.
3146         * explow.c: Include common/common-target.h.
3147         * expr.c: Include common/common-target.h.
3148         (build_personality_function): Use targetm_common.except_unwind_info.
3149         * function.c: Include common/common-target.h.
3150         (expand_function_end): Use targetm_common.except_unwind_info.
3151         * haifa-sched.c: Include common/common-target.h.
3152         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
3153         * lto-opts.c: Include common/common-target.h instead of target.h.
3154         (lto_reissue_options): Use targetm_common.handle_option.
3155         * opts.c: Include common/common-target.h.
3156         (target_handle_option): Use targetm_common.handle_option.
3157         (init_options_struct): Update comment referring to
3158         targetm.target_option.optimization.  Use
3159         targetm_common.default_target_flags,
3160         targetm_common.unwind_tables_default and
3161         targetm_common.option_init_struct.
3162         (default_options_optimization): Use
3163         targetm_common.option_optimization_table.
3164         (finish_options): Use targetm_common.except_unwind_info,
3165         targetm_common.unwind_tables_default,
3166         targetm_common.have_named_sections and
3167         targetm_common.supports_split_stack.
3168         * toplev.c: Include common/common-target.h.
3169         (process_options): Use targetm_common.have_named_sections.
3170         * tree-tailcall.c: Include common/common-target.h.
3171         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
3172         * tree.c: Include common/common-target.h.
3173         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
3174         * varasm.c: Include common/common-target.h.
3175         (resolve_unique_section, hot_function_section,
3176         default_function_section): Use targetm_common.have_named_sections.
3177
3178 2011-06-14  Easwaran Raman  <eraman@google.com>
3179
3180         PR rtl-optimization/44194
3181         * dse.c: Include tree-flow.h
3182         (insn_info): Add new field non_frame_wild_read.
3183         (group_info): Add new fields escaped_n and escaped_p.
3184         (kill_on_calls): New variable.
3185         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
3186         (dse_step0): Initialize kill_on_calls.
3187         (can_escape): New function.
3188         (set_usage_bits): Add additional parameter; record information
3189         about escaped locations.
3190         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
3191         (dse_step2_nospill): Set kill_on_calls based on
3192         group->escaped_n and group->escaped_n.
3193         (add_wild_read): Refactor into...
3194         (reset_active_stores): ... New function, and
3195         (free_read_records): ... New function.
3196         (add_non_frame_wild_read): New function.
3197         (scan_insn): Call add_non_frame_wild_read on non-const calls.
3198         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
3199         (dse_step5_nospill): Call scan_reads_nospill for instructions
3200         marked as non_frame_wild_read.
3201         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
3202
3203 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
3204
3205         * common/common-target-def.h, common/common-target.def,
3206         common/common-target.h, common/config/default-common.c,
3207         common/config/pa/pa-common.c: New files.
3208         * Makefile.in (common_out_file, common_out_object_file,
3209         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
3210         (OBJS-libcommon-target): Include $(common_out_object_file).
3211         (prefix.o): Update dependencies.
3212         ($(common_out_object_file), common/common-target-hooks-def.h,
3213         s-common-target-hooks-def-h): New.
3214         (s-tm-texi): Also check timestamp on common-target.def.
3215         (build/genhooks.o): Update dependencies.
3216         * config.gcc (common_out_file, target_has_targetm_common): Define.
3217         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
3218         TARGET_ALWAYS_STRIP_DOTDOT.
3219         * configure.ac (common_out_object_file): Define.
3220         (common_out_file, common_out_object_file): Substitute.
3221         (common): Create directory.
3222         * configure: Regenerate.
3223         * doc/tm.texi.in (targetm_common): Document.
3224         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
3225         * doc/tm.texi: Regenerate.
3226         * genhooks.c (hook_array): Also include common/common-target.def.
3227         * prefix.c (tm.h): Don't include.
3228         (common/common-target.h): Include.
3229         (ALWAYS_STRIP_DOTDOT): Don't define.
3230         (update_path): Use targetm_common.always_strip_dotdot instead of
3231         ALWAYS_STRIP_DOTDOT.
3232         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
3233
3234 2011-06-14  David Li  <davidxl@google.com>
3235
3236         * passes.c (execute_function_todo): Remove TODO_dump_func.
3237         (execute_one_pass): Remove TODO_dump_func.
3238         (execute_function_dump): New function.
3239         * tree-vrp.c: Remove TODO_dump_func.
3240         * regrename.c: Remove TODO_dump_func.
3241         * fwprop.c: Remove TODO_dump_func.
3242         * tree-into-ssa.c: Remove TODO_dump_func.
3243         * tree-complex.c: Remove TODO_dump_func.
3244         * tracer.c: Remove TODO_dump_func.
3245         * tree-loop-distribution.c: Remove TODO_dump_func.
3246         * postreload-gcse.c: Remove TODO_dump_func.
3247         * postreload.c: Remove TODO_dump_func.
3248         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
3249         * tree-tailcall.c: Remove TODO_dump_func.
3250         * ipa-cp.c: Remove TODO_dump_func.
3251         * final.c: Remove TODO_dump_func.
3252         * tree-emutls.c: Remove TODO_dump_func.
3253         * omp-low.c: Remove TODO_dump_func.
3254         * tree-ssa-dse.c: Remove TODO_dump_func.
3255         * tree-ssa-uncprop.c: Remove TODO_dump_func.
3256         * auto-inc-dec.c: Remove TODO_dump_func.
3257         * reorg.c: Remove TODO_dump_func.
3258         * tree-ssa-copyrename.c: Remove TODO_dump_func.
3259         * tree-ssa-ccp.c: Remove TODO_dump_func.
3260         * compare-elim.c: Remove TODO_dump_func.
3261         * mode-switching.c: Remove TODO_dump_func.
3262         * modulo-sched.c: Remove TODO_dump_func.
3263         * tree-call-cdce.c: Remove TODO_dump_func.
3264         * cse.c: Remove TODO_dump_func.
3265         * web.c: Remove TODO_dump_func.
3266         * tree-stdarg.c: Remove TODO_dump_func.
3267         * lto-streamer-out.c: Remove TODO_dump_func.
3268         * tree-ssa-math-opts.c: Remove TODO_dump_func.
3269         * tree-ssa-dom.c: Remove TODO_dump_func.
3270         * tree-nrv.c: Remove TODO_dump_func.
3271         * loop-init.c: Remove TODO_dump_func.
3272         * gimple-low.c: Remove TODO_dump_func.
3273         * ipa-inline.c: Remove TODO_dump_func.
3274         * tree-ssa-sink.c: Remove TODO_dump_func.
3275         * jump.c: Remove TODO_dump_func.
3276         * ifcvt.c: Remove TODO_dump_func.
3277         * tree-ssa-loop.c: Remove TODO_dump_func.
3278         * recog.c: Remove TODO_dump_func.
3279         * dse.c: Remove TODO_dump_func.
3280         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
3281         * matrix-reorg.c: Remove TODO_dump_func.
3282         * tree-eh.c: Remove TODO_dump_func.
3283         * regmove.c: Remove TODO_dump_func.
3284         * function.c: Remove TODO_dump_func.
3285         * tree-vectorizer.c: Remove TODO_dump_func.
3286         * ipa-split.c: Remove TODO_dump_func.
3287         * gcse.c: Remove TODO_dump_func.
3288         * tree-if-conv.c: Remove TODO_dump_func.
3289         * init-regs.c: Remove TODO_dump_func.
3290         * tree-ssa-phiopt.c: Remove TODO_dump_func.
3291         * implicit-zee.c: Remove TODO_dump_func.
3292         * lower-subreg.c: Remove TODO_dump_func.
3293         * bt-load.c: Remove TODO_dump_func.
3294         * tree-dfa.c: Remove TODO_dump_func.
3295         * except.c: Remove TODO_dump_func.
3296         * emit-rtl.c: Remove TODO_dump_func.
3297         * store-motion.c: Remove TODO_dump_func.
3298         * cfgexpand.c: Remove TODO_dump_func.
3299         * tree-cfgcleanup.c: Remove TODO_dump_func.
3300         * cfgcleanup.c: Remove TODO_dump_func.
3301         * tree-ssa-pre.c: Remove TODO_dump_func.
3302         * tree-sra.c: Remove TODO_dump_func.
3303         * tree-mudflap.c: Remove TODO_dump_func.
3304         * tree-ssa-copy.c: Remove TODO_dump_func.
3305         * cfglayout.c: Remove TODO_dump_func.
3306         * tree-ssa-forwprop.c: Remove TODO_dump_func.
3307         * tree-ssa-dce.c: Remove TODO_dump_func.
3308         * ira.c: Remove TODO_dump_func.
3309         * tree-ssa.c: Remove TODO_dump_func.
3310         * integrate.c: Remove TODO_dump_func.
3311         * tree-optimize.c: Remove TODO_dump_func.
3312         * tree-ssa-phiprop.c: Remove TODO_dump_func.
3313         * tree-object-size.c: Remove TODO_dump_func.
3314         * combine.c: Remove TODO_dump_func.
3315         * bb-reorder.c: Remove TODO_dump_func.
3316         * cprop.c: Remove TODO_dump_func.
3317         * var-tracking.c: Remove TODO_dump_func.
3318         * tree-profile.c: Remove TODO_dump_func.
3319         * tree-vect-generic.c: Remove TODO_dump_func.
3320         * reg-stack.c: Remove TODO_dump_func.
3321         * sched-rgn.c: Remove TODO_dump_func.
3322         * tree-ssa-structalias.c: Remove TODO_dump_func.
3323         * tree-switch-conversion.c: Remove TODO_dump_func.
3324         * tree-cfg.c: Remove TODO_dump_func.
3325         * tree-ssa-reassoc.c: Remove TODO_dump_func.
3326         * combine-stack-adj.c: Remove TODO_dump_func.
3327         * dce.c: Remove TODO_dump_func.
3328         * tree-ssanames.c: Remove TODO_dump_func.
3329         * regcprop.c: Remove TODO_dump_func.
3330
3331 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
3332
3333         PR middle-end/47364
3334         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
3335         and properly handle result not in Pmode.
3336
3337 2011-06-14  Robert Millan  <rmh@gnu.org>
3338
3339         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
3340         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
3341         `config/linux.h'.
3342
3343         * config/i386/kfreebsd-gnu64.h: New file.
3344         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
3345         with `i386/kfreebsd-gnu64.h'.
3346
3347         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
3348         (GNU_USER_LINK_EMULATION64): New macros.
3349         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
3350         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
3351         of hardcoding `elf_i386' and `elf_x86_64'.
3352
3353 2011-06-14  Nick Clifton  <nickc@redhat.com>
3354
3355         PR target/49403
3356         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
3357
3358         PR target/49402
3359         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
3360
3361 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
3362
3363         PR fortran/49103
3364         * tree.h (DECL_NONSHAREABLE): Define.
3365         (struct tree_decl_common): Change decl_common_unused to
3366         decl_nonshareable_flag.
3367         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
3368         Ignore vars with DECL_NONSHAREABLE bit set.
3369         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
3370         on stores to automatic aggregate vars.
3371
3372         PR rtl-optimization/49390
3373         Revert:
3374         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
3375
3376         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
3377         MEM_ALIAS_SET.
3378
3379 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
3380             Tom de Vries  <tom@codesourcery.com>
3381
3382         PR target/45098
3383         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
3384         Document changed semantics.
3385         (max_stmt_executions, max_stmt_executions_int): Declare.
3386         * tree-data-ref.c (estimated_loop_iterations)
3387         (estimated_loop_iterations_int): Move functions...
3388         * tree-ssa-loop-niter.c (estimated_loop_iterations)
3389         (estimated_loop_iterations_int): here.
3390         (record_estimate): Change nb_iterations_upper_bound and
3391         nb_iterations_estimate semantics.
3392         (max_stmt_executions, max_stmt_executions_int): New function.
3393         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
3394         (max_stmt_executions_tree): this.
3395         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
3396         estimated_loop_iterations_tree.
3397         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
3398         max_stmt_executions_int instead of estimated_loop_iterations_int.
3399         * predict.c (predict_loops): Idem.
3400         * tree-parloops.c (parallelize_loops): Idem.
3401         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
3402         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
3403         (init_omega_for_ddr_1): Idem.
3404         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
3405         (loop_prefetch_arrays): Idem
3406         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
3407         max_stmt_executions instead of estimated_loop_iterations.
3408         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
3409         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
3410         instead of nb_iterations_upper_bound.
3411
3412 2011-06-13  Jan Hubicka  <jh@suse.cz>
3413
3414         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
3415
3416 2011-06-14  Richard Henderson  <rth@redhat.com>
3417
3418         PR debug/48459
3419         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
3420         (based_loc_descr): Assert it's true.
3421         (compute_frame_pointer_to_fb_displacement): Set it, rather than
3422         aborting immediately.
3423
3424 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
3425             Mingfeng Wu  <mingfeng@faraday-tech.com>
3426
3427         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
3428
3429 2011-06-13  Jan Hubicka  <jh@suse.cz>
3430
3431         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
3432
3433 2011-06-13  Jan Hubicka  <jh@suse.cz>
3434
3435         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
3436         similarly to DECL_COMDAT.
3437         * cgraphunit.c (cgraph_analyze_function): Likewise.
3438         * ipa.c (function_and_variable_visibility): Likewise.
3439
3440 2011-06-13  Jan Hubicka  <jh@suse.cz>
3441
3442         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
3443         BINFO_VIRTUALS when streaming for ltrans unit.
3444
3445 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
3446
3447         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
3448         (movdi_internal64): Same.
3449
3450 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
3451
3452         PR target/44618
3453         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
3454         a set of similar patterns, where the MATCH_OPERAND for the function
3455         argument is replaced with individual references to hardware registers.
3456         (save_fpregs_<mode>): Ditto
3457         (restore_gpregs_<mode>): Ditto
3458         (return_and_restore_gpregs_<mode>): Ditto
3459         (return_and_restore_fpregs_<mode>): Ditto
3460         (return_and_restore_fpregs_aix_<mode>): Ditto
3461
3462 2011-06-13  Jan Hubicka  <jh@suse.cz>
3463
3464         * ipa-utils.c (postorder_stack): New structure.
3465         (ipa_reverse_postorder): Handle aliases.
3466
3467 2011-06-13  Jan Hubicka  <jh@suse.cz>
3468
3469         * ipa-inline.c (reset_edge_caches): Walk aliases.
3470         (update_caller_keys): Do not test inlinability of aliases.
3471         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
3472         (do_estimate_growth): Fix typo.
3473
3474 2011-06-13  Jan Hubicka  <jh@suse.cz>
3475
3476         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
3477         (can_remove_node_now_p): ... here; handle same comdat groups.
3478         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
3479         (inline_call): Update use of can_remove_node_now_p.
3480
3481 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
3482
3483         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
3484         condition to disallow non-identical memory locations.
3485         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
3486         preference to bit manipulation instructions.
3487
3488 2011-06-13  Jan Hubicka  <jh@suse.cz>
3489
3490         * cgraph.c (cgraph_for_node_thunks_and_aliases,
3491         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
3492         (nonremovable_p): New function.
3493         (cgraph_can_remove_if_no_direct_calls_p): New function.
3494         (used_from_object_file_p): New functoin.
3495         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
3496         references from aliases.
3497         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
3498         * ipa-inline.c (check_caller_edge): New function.
3499         (want_inline_function_called_once_p): Use it; accept aliases called
3500         once, too.
3501         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
3502
3503 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3504
3505         PR target/48454
3506         * config/arm/neon.md (vec_pack_trunc): Set the lengths
3507         correctly for the case with Quad vectors.
3508
3509 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
3510            Ira Rosen  <ira.rosen@linaro.org>
3511
3512         PR tree-optimization/49352
3513         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
3514         all, make sure loop_use_stmt after the loop is a def stmt of a used
3515         SSA_NAME that is the only one defined inside of the loop.  Don't
3516         check for COND_EXPR and GIMPLE_BINARY_RHS.
3517         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
3518         check_reduction is true.
3519
3520 2011-06-11  Jan Hubicka  <jh@suse.cz>
3521
3522         PR middle-end/49373
3523         * ipa.c (cgraph_externally_visible_p): Check resolution info.
3524
3525 2011-06-11  Jan Hubicka  <jh@suse.cz>
3526
3527         PR middle-end/48836
3528         * ipa-inline-transform.c: Include tree-pass.h
3529         (inline_transform): Set TODO_update_ssa_only_virtuals.
3530         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
3531
3532 2011-06-11  Jan Hubicka  <jh@suse.cz>
3533
3534         PR middle-end/49378
3535         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
3536         aliases and thunks.
3537
3538 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
3539
3540         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
3541         Take number of iterations to peel into account for equally frequent
3542         misalignment values.
3543
3544 2011-06-11  Jan Hubicka  <jh@suse.cz>
3545
3546         * lto-streamer-out.c (produce_symtab): Stream out the newly
3547         represented aliases.
3548
3549 2011-06-11  Jan Hubicka  <jh@suse.cz>
3550
3551         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
3552         varying args.
3553         (ipa_update_after_lto_read): Likewise.
3554         (ipa_write_node_info): Do not sream call_with_var_arguments.
3555         (ipa_read_node_info): Likewise.
3556
3557 2011-06-11  Jan Hubicka  <jh@suse.cz>
3558
3559         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
3560
3561 2011-06-11  Jan Hubicka  <jh@suse.cz>
3562
3563         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
3564         (lto_symtab_resolve_can_prevail_p): Likewise.
3565         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
3566         * cgraph.c (same_body_aliases_done): New global var.
3567         (cgraph_same_body_alias_1): Rename to ...
3568         (cgraph_create_function_alias): ... this one; reorg to new
3569         representation.
3570         (cgraph_same_body_alias): Use cgraph_create_function_alias;
3571         record references when asked to.
3572         (cgraph_add_thunk): Fix formating.
3573         (cgraph_get_node): Kill same body alias code.
3574         (cgraph_node_for_asm): Likewise.
3575         (cgraph_remove_same_body_alias): Remove.
3576         (cgraph_remove_node): Kill same body alias code.
3577         (cgraph_mark_address_taken_node): Mark also the aliased function
3578         as having address taken.
3579         (dump_cgraph_node): Dump same body aliases.
3580         (cgraph_for_node_thunks_and_aliases): Update for new alias
3581         representation.
3582         (cgraph_for_node_and_aliases): Likewise.
3583         * cgraph.h (same_body): Kll pointer.
3584         (same_body_alias): Update comment.
3585         (same_body_aliases_done): Declare.
3586         (cgraph_remove_same_body_alias): Remove declaration.
3587         (cgraph_create_function_alias): Declare.
3588         (cgraph_process_same_body_aliases): Declare.
3589         (cgraph_function_with_gimple_body_p): Check for alias.
3590         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
3591         (cgraph_alias_aliased_node): New function.
3592         (cgraph_function_node): Update for new aliases.
3593         (cgraph_function_or_thunk_node): Likewise.
3594         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
3595         (inline_call): Remove dead aliases.
3596         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
3597         name hack for same body aliases.
3598         (clone_of_p): Look through aliases.
3599         (verify_cgraph_node): Verify aliases.
3600         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
3601         (cgraph_process_same_body_aliases): New function.
3602         (process_function_and_variable_attributes): Disable weakref warning on
3603         alias.
3604         (cgraph_analyze_functions): Handle aliases.
3605         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
3606         (assemble_thunks): Rename to ...
3607         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
3608         (cgraph_expand_function): Remove alias output code.
3609         (cgraph_output_in_order): Skip aliases.
3610         (cgraph_preserve_function_body_p): Aliases don't need preserving.
3611         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
3612         (ipa_record_reference): Do not assert on alias references.
3613         (ipa_ref_has_aliases_p): New function.
3614         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
3615         (ipa_ref_has_aliases_p): Declare.
3616         * lto-cgraph.c (lto_output_node): Handle aliases.
3617         (input_node): Likewise.
3618         * lto-streamer-out.c (lto_output): Skip aliases.
3619         (produce_symtab): Kill same_body_alias code.
3620         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
3621         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
3622         * ipa-inline.c (update_caller_keys): Walk aliases.
3623         (inline_small_functions): Fix thinko in previous patch.
3624         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
3625         (function_and_variable_visibility): Do not walk same body aliases.
3626         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
3627         (ipa_pta_execute): Use it.
3628
3629 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3630
3631         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
3632         (*vec_dupv2df): Rename from vec_dupv2df.
3633         (vec_dupv2df): New expander.
3634
3635 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3636
3637         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
3638
3639 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
3640
3641         * config/i386/i386.md: Use default value in "isa" attribute.
3642         * config/i386/sse.md: Ditto.
3643         * config/i386/mmx.md: Ditto.
3644
3645 2011-06-10  Wei Guozhi  <carrot@google.com>
3646
3647         PR target/45335
3648         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
3649         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
3650         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
3651         related peephole2.
3652         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
3653         related peephole2.
3654         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
3655         (arm_legitimate_ldrd_p): New prototype.
3656         (arm_output_ldrd): New prototype.
3657         * config/arm/arm.c (arm_check_ldrd_operands): New function.
3658         (arm_legitimate_ldrd_p): New function.
3659         (arm_output_ldrd): New function.
3660
3661 2011-06-10  David Li  <davidxl@google.com>
3662
3663         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
3664         * passes.c (passr_eq): New function.
3665         (create_pass_tab): New function.
3666         (pass_traverse): New function.
3667         (dump_one_pass): New function.
3668         (dump_pass_list): New function.
3669         (dump_passes): New function.
3670
3671 2011-06-10  Jan Hubicka  <jh@suse.cz>
3672
3673         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
3674         setting the nothrow flag.
3675         * ipa-reference.c (propagate): Skip aliases.
3676         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
3677         (propagate_nothrow): Skip aliases; do not update cgraph.
3678         (local_pure_const): Do not update cgraph.
3679         * tree-profile.c (tree_profiling): Do fixup_cfg.
3680
3681 2011-06-10  Jan Hubicka  <jh@suse.cz>
3682
3683         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
3684         (cgraph_local_node_p): ... here; handle aliases.
3685         (has_addr_references_p): Break out from ...;
3686         (cgraph_remove_unreachable_nodes) ... here.
3687
3688 2011-06-10  Jan Hubicka  <jh@suse.cz>
3689
3690         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
3691         * common.opt (flag_inline_functions_called_once): Do not
3692         initialize to 1.
3693
3694 2011-06-10  Jan Hubicka  <jh@suse.cz>
3695
3696         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
3697         (ipcp_initialize_node_lattices): Do not deal with aliases;
3698         Do not try to propagate through thunks.
3699         (ipcp_change_tops_to_bottom): Do not deal with aliases.
3700
3701 2011-06-10  Jan Hubicka  <jh@suse.cz>
3702
3703         * ipa-prop.c (ipa_write_node_info): Stream jump functions
3704         for indirect calls.
3705         (ipa_read_node_info): Likewise.
3706
3707 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3708
3709         PR lto/49302
3710         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
3711         (build_and_insert_call): Likewise.
3712         (build_and_insert_ref): New.
3713         (gimple_expand_builtin_pow): Minor cleanup.
3714         (gimple_expand_builtin_cabs): New.
3715         (execute_cse_sincos): Add case for BUILT_IN_CABS.
3716
3717 2011-06-10  Jan Hubicka  <jh@suse.cz>
3718
3719         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
3720         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
3721         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
3722         (ipcp_propagate_stage): Skip aliases when propagating.
3723         (ipcp_need_redirect_p): Skip aliases.
3724         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
3725         collect_callers_of_node.
3726         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
3727         for aliases.
3728         (ipa_compute_jump_functions): Look through aliases.
3729
3730 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3731
3732         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
3733
3734 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
3735
3736         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
3737         Adjust comments.
3738         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
3739
3740 2011-06-10  Jan Hubicka  <jh@suse.cz>
3741
3742         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
3743         Update call of gimple_get_virt_method_for_binfo.
3744         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
3745         refuse_thunks parameter.
3746         (gimple_fold_call): Update.
3747         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
3748
3749 2011-06-10  Jan Hubicka  <jh@suse.cz>
3750
3751         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
3752         (not_all_callers_have_enough_arguments_p): ... this one; turn into
3753         worker for cgraph_for_node_and_aliases.
3754         (convert_callers_for_node): Break out from ...
3755         (convert_callers): ... here.
3756         (modify_function): Use collect_callers_of_node.
3757         (ipa_early_sra): Use cgraph_for_node_and_aliases.
3758
3759 2011-06-10  Richard Guenther  <rguenther@suse.de>
3760
3761         PR tree-optimization/49361
3762         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
3763         when not already in gimple form.
3764
3765 2011-06-10  Richard Guenther  <rguenther@suse.de>
3766
3767         PR bootstrap/49344
3768         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
3769         FOR_EACH_PHI_OR_STMT_USE.
3770
3771 2011-06-10  Jan Hubicka  <jh@suse.cz>
3772
3773         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
3774         (clone_inlined_nodes): ... here.
3775         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
3776         to real destination prior inlining.
3777         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
3778         can_early_inline_edge_p, want_early_inline_function_p,
3779         want_early_inline_function_p, want_inline_small_function_p,
3780         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
3781         edge_badness, update_all_callee_keys, lookup_recursive_calls,
3782         add_new_edges_to_heap, inline_small_functions, flatten_function,
3783         inline_always_inline_functions, early_inline_small_functions): Use
3784         cgraph_function_or_thunk_node.
3785         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
3786         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
3787         (do_estimate_edge_growth_1): Break out from ...
3788         (do_estimate_growth) ... here; walk aliases.
3789         (inline_generate_summary): Skip aliases.
3790
3791 2011-06-10  Richard Guenther  <rguenther@suse.de>
3792
3793         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
3794         forward when combining, visit inserted stmts when a stmt was changed.
3795
3796 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
3797
3798         * tree.h (error_operand_p): Add.
3799         * dbxout.c (dbxout_type_fields): Use the latter.
3800         * c-decl.c (add_stmt): Likewise.
3801         * gimplify.c (omp_add_variable, omp_notice_variable,
3802         gimplify_scan_omp_clauses): Likewise.
3803
3804 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
3805
3806         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
3807         when a value is actually passed in regs.
3808
3809 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
3810             Laurent Rougé  <laurent.rouge@menta.fr>
3811
3812         * doc/invoke.texi (SPARC options): Add -mflat.
3813         * config/sparc/sparc.opt: Likewise.
3814         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
3815         (sparc_flat_expand_prologue): Declare.
3816         (sparc_flat_expand_epilogue): Likewise.
3817         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
3818         (CPP_ENDIAN_SPEC): Replace with...
3819         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
3820         (CPP_SPEC): Adjust to above change.
3821         (EXTRA_SPECS): Likewise.
3822         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
3823         (INCOMING_REGNO): Likewise.
3824         (OUTGOING_REGNO): Likewise.
3825         (LOCAL_REGNO): Likewise.
3826         (SETUP_FRAME_ADDRESSES): Likewise.
3827         (FIXED_REGISTERS): Set 0 for %fp.
3828         (CALL_USED_REGISTERS): Likewise.
3829         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
3830         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
3831         (RETURN_ADDR_REGNUM): Define.
3832         (RETURN_ADDR_RTX): Use it.
3833         (INCOMING_RETURN_ADDR_REGNUM): Define.
3834         (INCOMING_RETURN_ADDR_RTX): Use it.
3835         (DWARF_FRAME_RETURN_COLUMN): Likewise.
3836         (EH_RETURN_REGNUM): Define.
3837         (EH_RETURN_STACKADJ_RTX): Use it.
3838         (EH_RETURN_HANDLER_RTX): Delete.
3839         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
3840         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
3841         Delete.
3842         (struct machine_function): Add frame_size, apparent_frame_size,
3843         frame_base_reg, frame_base_offset, n_global_fp_regs and
3844         save_local_in_regs_p fields.
3845         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
3846         sparc_frame_base_offset, sparc_n_global_fp_regs,
3847         sparc_save_local_in_regs_p): New macros.
3848         (sparc_option_override): Error out if -fcall-saved-REG is specified
3849         for Out registers.
3850         (eligible_for_restore_insn): Fix formatting.
3851         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
3852         (eligible_for_sibcall_delay): Likewise.
3853         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
3854         (sparc_legitimate_address_p): Adjust to above change.
3855         (save_global_or_fp_reg_p): New predicate.
3856         (return_addr_reg_needed_p): Likewise.
3857         (save_local_or_in_reg_p): Likewise.
3858         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
3859         (SORR_SAVE, SORR_RESTORE): Delete.
3860         (sorr_pred_t): New typedef.
3861         (sorr_act_t): New enum.
3862         (save_or_restore_regs): Rename to...
3863         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
3864         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
3865         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
3866         mechanism.  Add CFI information for double-word saves in 32-bit mode.
3867         (emit_adjust_base_to_offset): New function extracted from...
3868         (emit_save_or_restore_regs): ...this.  Rename the rest to...
3869         (emit_save_or_restore_regs_global_fp_regs): ...this.
3870         (emit_save_or_restore_regs_local_in_regs): New function.
3871         (gen_create_flat_frame_[123]): New functions.
3872         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
3873         (sparc_flat_expand_prologue): New function.
3874         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
3875         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
3876         (sparc_flat_expand_epilogue): New function.
3877         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
3878         (output_return): Likewise.
3879         (output_sibcall): Likewise.
3880         (sparc_output_mi_thunk): Likewise.
3881         (sparc_frame_pointer_required): Likewise.
3882         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
3883         function optimization.
3884         * config/sparc/sparc.md (flat): New attribute.
3885         (prologue): Add TARGET_FLAT handling.
3886         (save_register_window): Disable if TARGET_FLAT.
3887         (create_flat_frame_[123]): New patterns.
3888         (epilogue): Add TARGET_FLAT handling.
3889         (sibcall_epilogue): Likewise.
3890         (eh_return): New expander.
3891         (eh_return_internal): New insn and splitter.
3892         (return_internal): Add TARGET_FLAT handling.
3893         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
3894         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
3895         (nonlocal_goto): Add TARGET_FLAT handling.
3896         * config/sparc/t-elf: Add -mflat multilib.
3897         * config/sparc/t-leon: Likewise.
3898
3899 2011-06-10  Jan Hubicka  <jh@suse.cz>
3900
3901         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
3902         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
3903         (self_recursive_p): Use cgraph_function_node.
3904         (propagate_pure_const): Likewise.
3905         (propagate_nothrow): Likewise.
3906         * ipa-reference.c (ipa_reference_get_not_read_global): Use
3907         cgraph_function_node.
3908         (propagate_bits): Likewise.
3909         (propagate): Likewise.
3910
3911 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3912             Richard Earnshaw  <rearnsha@arm.com>
3913
3914         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
3915         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
3916         (*thumb2_movdi_vfp): Delete.
3917         (*arm_movdi_vfp_cortexa8): Delete.
3918         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
3919         (*movdi_vfp_cortexa8): Likewise.
3920
3921 2011-06-10  Richard Guenther  <rguenther@suse.de>
3922
3923         * stor-layout.c (initialize_sizetypes): Give names to all
3924         sizetype kinds.
3925
3926 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
3927
3928         PR tree-optimization/49318
3929         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
3930         irrelevant pattern statements.
3931
3932 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
3933
3934         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
3935
3936         PR bootstrap/49354
3937         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
3938         to last assignment.
3939
3940 2011-06-09  Jan Hubicka  <jh@suse.cz>
3941
3942         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
3943         do not recompute reachable flag.
3944         (cgraph_finalize_function, cgraph_analyze_functions): Set
3945         redefined_extern_inline here.
3946
3947 2011-06-09  Jan Hubicka  <jh@suse.cz>
3948
3949         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
3950         (cgraph_only_called_directly_p): ... this one; bring offline.
3951         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
3952         varpool_used_from_object_file_p): Drop names from the declaratoin.
3953         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
3954         collect_callers_of_node): New.
3955         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
3956         (cgraph_edge_recursive_p): Use cgraph_function_node.
3957         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
3958         (cgraph_node_cannot_be_local_p_1): Break out from ...
3959         (cgraph_node_can_be_local_p): ... here; walk aliases.
3960         (cgraph_for_node_thunks_and_aliases): New function.
3961         (cgraph_for_node_and_aliases): New function.
3962         (cgraph_make_node_local_1): Break out from ...
3963         (cgraph_make_node_local) ... here; use
3964         cgraph_for_node_thunks_and_aliases.
3965         (cgraph_set_nothrow_flag_1): Break out from ...
3966         (cgraph_set_nothrow_flag) ... here;
3967         use cgraph_for_node_thunks_and_aliases.
3968         (cgraph_set_const_flag_1): Break out from ...
3969         (cgraph_set_const_flag) ... here;
3970         use cgraph_for_node_thunks_and_aliases.
3971         (cgraph_set_pure_flag_1): Break out from ...
3972         (cgraph_set_pure_flag) ... here;
3973         use cgraph_for_node_thunks_and_aliases.
3974         (cgraph_propagate_frequency_1): Break out from ...
3975         (cgraph_propagate_frequency) ... here; use
3976         cgraph_for_node_thunks_and_aliases.
3977         (cgraph_used_from_object_file_p): Do not care about aliases.
3978         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
3979         New functions.
3980         (collect_callers_of_node_1, collect_callers_of_node): New functions.
3981
3982 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
3983
3984         PR rtl-optimization/49154
3985         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
3986         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
3987         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
3988         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
3989         * config/cris/cris.h (cris_register_move_cost): Remove
3990         !TARGET_V32 code.  Tweak comments.
3991
3992 2011-06-09  Jan Hubicka  <jh@suse.cz>
3993
3994         * cgraphbuild.c (record_eh_tables): Mark personality function as having
3995         address taken.
3996
3997 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
3998
3999         PR rtl-optimization/49154
4000         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
4001         is a matching slot in the hashtable, assign it to classes_ptr.
4002
4003         PR rtl-optimization/49154
4004         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
4005         register classes.
4006         * doc/tm.texi: Regenerate.
4007
4008 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
4009
4010         PR target/49307
4011         * config/sh/sh.md (UNSPEC_CHKADD): New.
4012         (chk_guard_add): New define_insn_and_split.
4013         (symGOT_load): Use chk_guard_add instead of blockage.
4014
4015 2011-06-09  Kai Tietz  <ktietz@redhat.com>
4016
4017         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
4018
4019 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
4020
4021         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
4022
4023 2011-06-09  Wei Guozhi  <carrot@google.com>
4024
4025         PR target/46975
4026         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
4027         (peephole2 for conditional move): Generate 16 bit instructions.
4028
4029 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
4030
4031         * config/i386/i386.md (*movdi_internal_rex64): Merge
4032         alternatives 6 and 8.
4033
4034 2011-06-09  David Li  <davidxl@google.com>
4035
4036         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
4037         * passes.c (passr_eq): New function.
4038         (create_pass_tab): New function.
4039         (pass_traverse): New function.
4040         (dump_one_pass): New function.
4041         (dump_pass_list): New function.
4042         (dump_passes): New function.
4043
4044 2011-06-09  David Li  <davidxl@google.com>
4045
4046         * tree-complex.c (tree_lower_complex): Gate cleanup.
4047         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
4048         (execute_optimize_stdarg): Ditto.
4049         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
4050         (execute_cleanup_eh_1): Ditto.
4051         (execute_cleanup_eh): Ditto.
4052         * gcse.c (gate_rtl_pre): Ditto.
4053         (execute_rtl_pre): Ditto.
4054         * except.c (finish_eh_generation): Ditto.
4055         (convert_to_eh_region_ranges): Ditto.
4056         * cprop.c (one_cprop_pass): Ditto.
4057
4058 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
4059
4060         PR target/48673
4061         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
4062         in all basic blocks.
4063
4064 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4065
4066         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
4067         (HAVE_ENABLE_EXECUTE_STACK): Define.
4068         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
4069         (HAVE_ENABLE_EXECUTE_STACK): Define.
4070         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
4071         (HAVE_ENABLE_EXECUTE_STACK): Define.
4072         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
4073         (ENABLE_EXECUTE_STACK): Remove.
4074         (HAVE_ENABLE_EXECUTE_STACK): Define.
4075         [IN_LIBGCC2]: Don't include <windows.h>.
4076         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4077         (HAVE_ENABLE_EXECUTE_STACK): Define.
4078         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
4079         (HAVE_ENABLE_EXECUTE_STACK): Define.
4080         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
4081         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
4082         (HAVE_ENABLE_EXECUTE_STACK): Define.
4083         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
4084         (HAVE_ENABLE_EXECUTE_STACK): Define.
4085         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
4086         (HAVE_ENABLE_EXECUTE_STACK): Define.
4087         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
4088         (HAVE_ENABLE_EXECUTE_STACK): Define.
4089         * config/alpha/alpha.c (alpha_trampoline_init): Test
4090         HAVE_ENABLE_EXECUTE_STACK.
4091         * config/i386/i386.c (ix86_trampoline_init): Likewise.
4092         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
4093         (sparc64_initialize_trampoline): Likewise.
4094         * libgcc2.c [L_enable_execute_stack]: Remove.
4095         * system.h (ENABLE_EXECUTE_STACK): Poison.
4096         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
4097         * doc/tm.texi: Regenerate.
4098         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
4099
4100 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
4101
4102         PR middle-end/49308
4103         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
4104         variable.  After resetting and rescanning insn continue with previous
4105         statement.
4106
4107 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4108
4109         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
4110         (gcc_cv_ld_hidden): Likewise.
4111         * configure: Regenerate.
4112         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
4113         (ix86_stack_protect_fail): Mark unused.
4114         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
4115         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
4116         [TARGET_MACHO]: Don't define.
4117         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
4118         (TARGET_STACK_PROTECT_FAIL): Likewise.
4119         (rs6000_stack_protect_fail): Mark unused.
4120         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
4121         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
4122
4123 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4124
4125         * varasm.c (get_section): Print location of other conflict
4126         for section conflicts.
4127
4128 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4129
4130         * config/i386/driver-i386.c (host_detect_local_cpu):
4131         Add model 0x2d Intel CPU.
4132
4133 2011-06-08  Andi Kleen  <ak@linux.intel.com>
4134
4135         * reginfo.c (global_regs_decl): Add.
4136         (globalize_reg): Add decl parameter. Compute location.  Pass location
4137         to warnings and add inform. Store decl in global_regs_decl.
4138         * rtl.h (globalize_reg): Update prototype.
4139         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
4140
4141 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
4142
4143         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
4144
4145 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4146
4147         PR target/49305
4148         * config/sh/predicates.md (general_movsrc_operand): Check
4149         mode for memory with indexed address for QI and HImode.
4150         (general_movdst_operand): Likewise.
4151
4152 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
4153
4154         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
4155
4156 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
4157
4158         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
4159         (num_ssa_operands): Likewise.
4160         (op_iter_init_phiuse): Forward-declare.
4161         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
4162
4163 2011-06-08  Nick Clifton  <nickc@redhat.com>
4164
4165         * doc/invoke.texi (ARM Options): Update description of
4166         -mthumb-interwork.
4167
4168 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
4169
4170         * config/i386/driver-i386.c (host_detect_local_cpu): Support
4171         unknown Intel family 0x6 CPUs.
4172
4173 2011-06-08  Martin Jambor  <mjambor@suse.cz>
4174
4175         * tree-sra.c (mark_rw_status): Removed.
4176         (analyze_access_subtree): New parameter parent instead of
4177         mark_read and mark_write, propagate from that.
4178
4179 2011-06-08  Julian Brown  <julian@codesourcery.com>
4180
4181         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
4182         for double-precision helper functions in hard-float mode if only
4183         single-precision arithmetic is supported in hardware.
4184
4185 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
4186
4187         PR rtl-optimization/49303
4188         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
4189         code_motion_path_driver returned 0 or 1.
4190         (sel_region_finish): Clear h_d_i_d.
4191
4192 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
4193
4194         * config/sh/sh.c (prepare_move_operands): Set pic register
4195         appropriately for global and local dynamic tls models even
4196         if flag_pic is unset.
4197
4198 2011-06-07  Jason Merrill  <jason@redhat.com>
4199
4200         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
4201
4202 2011-06-07  Xinliang David Li  <davidxl@google.com>
4203         * passes.c (enable_disable_pass): Handle assembler name.
4204         (is_pass_explicitly_enabled_or_disabled): Ditto.
4205
4206 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4207
4208         PR tree-optimization/48497
4209         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
4210
4211 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4212
4213         PR tree-optimization/46728
4214         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
4215         to use gimple_val_nonnegative_real_p.
4216         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
4217         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
4218
4219 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
4220
4221         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
4222
4223 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
4224
4225         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
4226         constant vectors.
4227
4228 2011-06-07  Richard Guenther  <rguenther@suse.de>
4229
4230         * stor-layout.c (initialize_sizetypes): Initialize all
4231         sizetypes based on target definitions.
4232         (set_sizetype): Remove.
4233         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
4234         * tree.h (set_sizetype): Remove.
4235
4236 2011-06-07  Nick Clifton  <nickc@redhat.com>
4237
4238         * config.gcc: Unify V850 architecture options and add support for
4239         newer V850 architectures.
4240         * config/v850/t-v850e: Delete.
4241
4242 2011-06-07  Richard Guenther  <rguenther@suse.de>
4243
4244         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
4245         Call set_sizetype from here.
4246
4247 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
4248
4249         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
4250         (*maddhisi4tb, *maddhisi4tt): New define_insns.
4251
4252 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
4253             Andrew Stubbs  <ams@codesourcery.com>
4254
4255         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
4256         multiplies.
4257         * doc/md.texi (Canonicalization of Instructions): Document widening
4258         multiply canonicalization.
4259
4260 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
4261
4262         PR gcov-profile/49299
4263         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
4264
4265 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
4266
4267         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
4268         a pointer.
4269         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
4270         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
4271         vect_recog_pow_pattern): Likewise.
4272         (vect_pattern_recog_1): Remove declaration.
4273         (widened_name_p): Remove declaration.  Add new argument to specify
4274         whether to check that both types are either signed or unsigned.
4275         (vect_recog_widen_mult_pattern): Update documentation.  Handle
4276         unsigned patterns and multiplication by constants.
4277         (vect_pattern_recog_1): Update vect_recog_func references.  Use
4278         statement information from the statement returned from pattern
4279         detection functions.
4280         (vect_pattern_recog): Update vect_recog_func reference.
4281         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
4282         multiplication by a constant use the type of the other operand.
4283
4284 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
4285
4286         PR rtl-optimization/49145
4287         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
4288
4289 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
4290
4291         PR debug/49262
4292         * dwarf2out.c (native_encode_initializer): Decrement count in each
4293         iteration.
4294
4295         PR debug/49294
4296         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
4297         non-MODE_INT modes.
4298
4299         PR c++/49264
4300         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
4301         if stmt folded into nothing.
4302         * tree-inline.c (fold_marked_statements): If a builtin at the end of
4303         a bb folded into nothing, just update cgraph edges and move to next bb.
4304         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
4305         to be NULL.  Don't compute count and frequency if new_call is NULL.
4306
4307 2011-06-04  Diego Novillo  <dnovillo@google.com>
4308
4309         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
4310         (cgraph.o): Likewise.
4311         (cgraphunit.o): Likewise.
4312         * cgraphunit.c: Include lto-streamer.h
4313         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
4314         if LTO is enabled.
4315         * lto-streamer-in.c (unpack_value_fields): Call
4316         streamer_hooks.unpack_value_fields if set.
4317         (lto_materialize_tree): For unhandled nodes, first try to
4318         call lto_streamer_hooks.alloc_tree, if it exists.
4319         (lto_input_ts_decl_common_tree_pointers): Move reading of
4320         DECL_INITIAL to lto_streamer_read_tree.
4321         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
4322         (lto_streamer_read_tree): New.
4323         (lto_reader_init): Rename from lto_init_reader.
4324         Move initialization code to lto/lto.c.
4325         * lto-streamer-out.c (pack_value_fields): Call
4326         streamer_hooks.pack_value_fields if set.
4327         (lto_output_tree_ref): For tree nodes that are not normally indexable,
4328         call streamer_hooks.indexable_with_decls_p before giving up.
4329         (lto_output_ts_decl_common_tree_pointers): Move handling
4330         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
4331         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
4332         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
4333         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
4334         (lto_streamer_write_tree): New.
4335         (lto_output): Call lto_streamer_init directly.
4336         (lto_writer_init): Remove.
4337         * lto-streamer.c (streamer_hooks): New.
4338         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
4339         instead of lto_preload_common_nodes.
4340         (lto_is_streamable): Move from lto-streamer.h
4341         (lto_streamer_hooks_init): New.
4342         (streamer_hooks): New.
4343         (streamer_hooks_init): New.
4344         * lto-streamer.h (struct output_block): Forward declare.
4345         (struct lto_input_block): Likewise.
4346         (struct data_in): Likewise.
4347         (struct bitpack_d): Likewise.
4348         (struct streamer_hooks): Declare.
4349         (streamer_hooks): Declare.
4350         (lto_streamer_hooks_init): Declare.
4351         (lto_streamer_write_tree): Declare.
4352         (lto_streamer_read_tree): Declare.
4353         (streamer_hooks_init): Declare.
4354         (lto_is_streamable): Move to lto-streamer.c
4355
4356 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4357
4358         * longlong.h (smul_ppmm): The resulting register pair contains the
4359         higher order word first.
4360
4361 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4362
4363         PR tree-optimization/46728
4364         * builtins.c (powi_table): Remove.
4365         (powi_lookup_cost): Remove.
4366         (powi_cost): Remove.
4367         (expand_powi_1): Remove.
4368         (expand_powi): Remove.
4369         (expand_builtin_pow_root): Remove.
4370         (expand_builtin_pow): Remove.
4371         (expand_builtin_powi): Eliminate handling of constant exponent.
4372         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
4373
4374 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4375
4376         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
4377
4378 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4379
4380         * dce.c (reset_unmarked_insns_debug_uses): New.
4381         (delete_unmarked_insns): Skip debug insns.
4382         (prescan_insns_for_dce): Likewise.
4383         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
4384         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
4385         active reg can be found.
4386         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
4387         (convert_regs_1): Use it.
4388
4389 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4390
4391         * tree-pretty-print.c (dump_function_header): Add flags.
4392         Don't dump decl_uid with nouid.
4393         * tree-pretty-print.h (dump_function_header): Adjust.
4394         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
4395         * passes.c (pass_init_dump_file): Pass dump_flags on.
4396         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
4397
4398 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
4399
4400         PR bootstrap/49270
4401         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
4402
4403 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
4404
4405         PR tree-optimization/49243
4406         * calls.c (setjmp_call_p): Also check if fndecl has the
4407         returns_twice attribute.
4408
4409 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4410
4411         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
4412         -ffast-math etc.
4413
4414 2011-06-06  Richard Henderson  <rth@redhat.com>
4415             Georg-Johann Lay  <avr@gjlay.de>
4416
4417         PR target/42210
4418         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
4419         New predicates.
4420         * config/avr/avr.md ("insv"): New insn expander.
4421         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
4422         "*insv.not.io", "*insv.reg"): New insns.
4423
4424 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
4425
4426         PR target/49285
4427         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
4428         to nonimmediate_operand from memory_operand for the operand that is to
4429         be forced to memory by the expander.  Lose the constraints.
4430
4431 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
4432
4433         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
4434         EH return when delayed branches are disabled.
4435
4436 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
4437
4438         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
4439         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
4440         calculation.
4441         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
4442         Simplify MODE_V1DF and MODE_V2SF handling.
4443         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
4444         Simplify MODE_SF handling.
4445
4446 2011-06-04  Jan Hubicka  <jh@suse.cz>
4447
4448         PR tree-optimization/48893
4449         PR tree-optimization/49091
4450         PR tree-optimization/49179
4451         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
4452         Bounds check.
4453
4454 2011-06-04  Jan Hubicka  <jh@suse.cz>
4455
4456         PR lto/48954
4457         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
4458         bitmaps.
4459
4460 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
4461
4462         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
4463
4464 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR target/49281
4467         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
4468         to be strictly smaller than 1 << shiftcount.
4469
4470 2011-06-04  Jan Hubicka  <jh@suse.cz>
4471
4472         PR tree-optimize/48929
4473         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
4474         of empty predicate.
4475
4476 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
4477
4478         PR debug/48333
4479         * calls.c (emit_call_1): Prefer the __builtin declaration of
4480         builtin functions.
4481
4482 2011-06-03   Diego Novillo  <dnovillo@google.com>
4483
4484         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
4485         (lto_input_tree_pointers): Likewise.
4486         * lto-streamer-out.c (pack_value_fields): Likewise.
4487         (lto_output_tree_pointers): Likewise.
4488         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
4489         and OPTIMIZATION_NODE.
4490
4491 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4492
4493         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
4494         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
4495         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
4496         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
4497         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
4498         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
4499         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
4500         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
4501         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
4502         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
4503         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
4504         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
4505         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
4506         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
4507         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
4508         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
4509         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
4510         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
4511         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
4512         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
4513         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
4514         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
4515         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
4516         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
4517         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
4518         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
4519         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
4520         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
4521         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
4522         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
4523         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
4524         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
4525         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
4526         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
4527         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
4528         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
4529         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
4530         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
4531         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
4532         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
4533         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
4534         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
4535         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
4536         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
4537         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
4538         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
4539         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
4540         * system.h (MD_UNWIND_SUPPORT): Poison.
4541         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
4542         * doc/tm.texi: Regenerate.
4543         * unwind-dw2.c: Include md-unwind-support.h instead of
4544         MD_UNWIND_SUPPORT.
4545         * config/ia64/unwind-ia64.c: Likewise.
4546         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4547
4548 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
4549
4550         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
4551
4552 2011-06-03  Richard Henderson  <rth@redhat.com>
4553             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4554
4555         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
4556         (sigill_hdlr): Correct insn, insn size.
4557         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
4558
4559 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4560
4561         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
4562         t-slibgcc-dummy.
4563         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
4564         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
4565         * config/mips/t-iris: Remove.
4566         * config/mips/t-irix6: New file.
4567         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
4568
4569 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4570
4571         * Makefile.in (LIB2ADDEHDEP): Remove.
4572         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
4573         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
4574         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
4575         * config/t-darwin (LIB2ADDEHDEP): Remove.
4576         * config/t-freebsd (LIB2ADDEHDEP): Remove.
4577         * config/t-linux (LIB2ADDEHDEP): Remove.
4578
4579 2011-06-03  Diego Novillo  <dnovillo@google.com>
4580
4581         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
4582         (lto_register_var_decl_in_symtab): Likewise.
4583         (lto_register_function_decl_in_symtab): Likewise.
4584         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
4585         logic to uniquify_nodes.
4586
4587 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4588
4589         * config/alpha/t-osf5: Remove.
4590         * config/alpha/t-osf-pthread: Remove.
4591         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
4592         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
4593
4594 2011-06-03  Julian Brown  <julian@codesourcery.com>
4595
4596         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
4597         (strongarm1110): Use strongarm tuning.
4598         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
4599         * config/arm/arm.c (arm_strongarm_tune): New.
4600         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
4601         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
4602         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
4603         setting, using previous defaults or 1 for Cortex-A5.
4604         (arm_option_override): Set max_insns_skipped from current tuning.
4605
4606 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
4607
4608         * doc/install.texi (Options specification): Document --with-specs.
4609
4610 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4611
4612         * config/arm/neon.md (orndi3_neon): Actually split it.
4613
4614 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
4615
4616         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
4617         * var-tracking.c (reverse_op): Limite recurse depth to 5.
4618
4619 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
4620
4621         PR debug/47590
4622         * target.def (delay_sched2, delay_vartrack): New.
4623         * doc/tm.texi.in: Update.
4624         * doc/tm.texi: Rebuild.
4625         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
4626         * var-tracking.c (gate_handle_var_tracking): Likewise.
4627         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
4628         (bfin_flag_var_tracking): Drop.
4629         (output_file_start): Don't save and override flag_var_tracking.
4630         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
4631         (bfin_reorg): Test original variables.
4632         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4633         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
4634         (ia64_flag_var_tracking): Drop.
4635         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4636         (ia64_file_start): Don't save and override flag_var_tracking.
4637         (ia64_override_options_after_change): Ditto
4638         flag_schedule_insns_after_reload.
4639         (ia64_reorg): Test original variables.
4640         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
4641         (picochip_flag_var_tracking): Drop.
4642         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
4643         (picochip_option_override): Don't save and override
4644         flag_schedule_insns_after_reload.
4645         (picochip_asm_file_start): Ditto flag_var_tracking.
4646         (picochip_reorg): Test original variables.
4647         * config/spu/spu.c (spu_flag_var_tracking): Drop.
4648         (TARGET_DELAY_VARTRACK): Define.
4649         (spu_var_tracking): New.
4650         (spu_machine_dependent_reorg): Call it.
4651         (asm_file_start): Don't save and override flag_var_tracking.
4652
4653 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
4654
4655         PR target/49163
4656         * config/sh/predicates.md (general_movsrc_operand): Return 0
4657         for memory and memory subreg of which address is an invalid
4658         indexed address for QI and HImode.
4659         (general_movdst_operand): Likewise.
4660
4661 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4662
4663         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
4664         edges only, when there is a non-local label in the function.
4665         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
4666
4667 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
4668
4669         * config/i386/constraints.md (Y3): New register constraint.
4670         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
4671         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
4672         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
4673         *sse2_interleave_lowv2df.
4674
4675 2011-06-02  Julian Brown  <julian@codesourcery.com>
4676
4677         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
4678         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
4679         (arm_cortex_a5_tune): New.
4680
4681 2011-06-02  Julian Brown  <julian@codesourcery.com>
4682
4683         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
4684         * config/arm/arm.c (arm_default_branch_cost): New.
4685         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
4686         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
4687         (arm_fa726_tune): Set branch_cost field using
4688         arm_default_branch_cost.
4689         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
4690         current_tune structure.
4691         * dojump.c (tm_p.h): Include file.
4692
4693 2011-06-02  Julian Brown  <julian@codesourcery.com>
4694
4695         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
4696         tuning.
4697         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
4698         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
4699         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
4700         field.
4701         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
4702         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
4703         (arm_fa726te_tune): Add prefer_constant_pool setting.
4704         (arm_v6t2_tune, arm_cortex_tune): New.
4705         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
4706         prefer_constant_pool setting.
4707
4708 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
4709
4710         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
4711         switch statement.
4712         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
4713         (*movdf_internal) <case 6,7,8>: Ditto.
4714
4715         * config/i386/constraints.md (Y4): New register constraint.
4716         * config/i386/sse.md (vec_set<mode>_0): Merge with
4717         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
4718         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
4719         *vec_extractv2di_1_sse.
4720         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
4721         and *vec_concatv2di_rex64_sse.
4722
4723 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
4724
4725         PR target/48807
4726         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
4727         of cgraph_local_info for null before attempting to use it.
4728
4729 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
4730
4731         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
4732         (current_function_dynamic_alloc_count): Delete.
4733         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
4734         (expand_builtin_nonlocal_goto): Remove obsolete comment.
4735         (expand_builtin_update_setjmp_buf): Remove dead code.
4736         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
4737         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
4738         support.
4739         * function.c (instantiate_virtual_regs): Likewise.
4740         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
4741         for a block with a single abnormal incoming edge.
4742         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
4743         (SETJMP_VIA_SAVE_AREA): Delete.
4744         * config/sparc/sparc-protos.h (load_got_register): Declare.
4745         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
4746         (load_got_register): Make global.
4747         (sparc_frame_pointer_required): Add 'static'.
4748         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
4749         (sparc_builtin_setjmp_frame_value): New function.
4750         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
4751         (save_stack_nonlocal): New expander.
4752         (restore_stack_nonlocal): Likewise.
4753         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
4754         (nonlocal_goto_internal): New insn.
4755         (goto_handler_and_restore): Delete.
4756         (builtin_setjmp_setup): Likewise.
4757         (do_builtin_setjmp_setup): Likewise.
4758         (setjmp): Likewise.
4759         (builtin_setjmp_receiver): New expander.
4760
4761 2011-06-01  David Li  <davidxl@google.com>
4762
4763         PR middle-end/49261
4764         * tree-pretty-print.c (dump_function_header): Format cleanup.
4765
4766 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
4767
4768         PR target/49238
4769         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
4770         needed when original operands are used for msw_skip comparison.
4771
4772 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
4773
4774         PR debug/49250
4775         * var-tracking.c (add_uses, add_stores): Don't call
4776         cselib_subst_to_values on ENTRY_VALUE.
4777
4778 2011-06-01  Diego Novillo  <dnovillo@google.com>
4779
4780         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
4781         output_record_start with LTO_null instead of output_zero.
4782         (lto_output_ts_binfo_tree_pointers): Likewise.
4783         (lto_output_tree): Likewise.
4784         (output_eh_try_list): Likewise.
4785         (output_eh_region): Likewise.
4786         (output_eh_lp): Likewise.
4787         (output_eh_regions): Likewise.
4788         (output_bb): Likewise.
4789         (output_function): Likewise.
4790         (output_unreferenced_globals): Likewise.
4791         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
4792         instead of NUM_TREE_CODES.
4793         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
4794         (lto_output_int_in_range): Change << to >> when shifting VAL.
4795
4796 2011-06-01  Diego Novillo  <dnovillo@google.com>
4797
4798         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
4799         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
4800
4801 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
4802
4803         PR target/45074
4804         * optabs.h (valid_multiword_target_p): Declare.
4805         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
4806         doing multi-word operations.
4807         * optabs.c (expand_binop): Likewise.
4808         (expand_doubleword_bswap): Likewise.
4809         (expand_absneg_bit): Likewise.
4810         (expand_unop): Likewise.
4811         (expand_copysign_bit): Likewise.
4812         (multiword_target_p): New function.
4813
4814 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
4815
4816         PR rtl-optimization/48830
4817         PR rtl-optimization/48808
4818         PR rtl-optimization/48792
4819         * reload.c (push_reload): Check contains_reg_of_mode.
4820         * reload1.c (strip_paradoxical_subreg): New function.
4821         (gen_reload_chain_without_interm_reg_p): Use it to handle
4822         paradoxical subregs.
4823         (emit_output_reload_insns, gen_reload): Likewise.
4824
4825 2011-06-01  David Li  <davidxl@google.com>
4826
4827         * predict.c : Change pass name
4828         * ipa.c: Ditto.
4829         * dce.c: Ditto.
4830         * tree-profile.c: Ditto.
4831         * except.c: Ditto.
4832
4833 2011-06-01  David Li  <davidxl@google.com>
4834
4835         * tree-pretty-print.c (dump_function_header): New function.
4836         * final.c (rest_of_clean_state): Use header dumper.
4837         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
4838         * passes.c (pass_init_dump_file): Use header dumper.
4839
4840 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
4841
4842         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
4843         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
4844         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
4845         New functions.
4846         (mem_loc_descriptor): Use them.
4847
4848         * var-tracking.c (create_entry_value): New function.
4849         (vt_add_function_parameter): Use it.
4850
4851 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4852
4853         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
4854         Include <signal.h>, <ucontext.h>.
4855         (sigill_caught): Define.
4856         (sigill_hdlr): New function.
4857         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
4858         insns can be executed.
4859         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
4860         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
4861
4862 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4863
4864         * config/t-slibgcc-darwin: Move to ...
4865         * config/t-slibgcc-dummy: ... this.  Clarify comments.
4866         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
4867         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
4868         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
4869         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
4870         Remove i386/t-crtstuff from tmake_file.
4871         (i[34567]86-*-solaris2*): Remove t-svr4,
4872         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
4873         t-slibgcc-dummy.
4874         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
4875         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
4876         sparc/t-crtfm from tmake_file.
4877         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
4878         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
4879         Remove extra_parts.
4880         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
4881         * config/i386/t-nwld (SHLIB_LINK): Remove.
4882         * config/i386/t-rtems-i386: Rename to ...
4883         * config/i386/t-rtems: ... this.
4884         ($(T)crti.o, $(T)crtn.o): Remove.
4885         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
4886         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
4887         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
4888         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
4889         EXTRA_MULTILIB_PARTS): Remove.
4890         * config/sparc/t-sol2-64: Likewise.
4891         * config/sparc/t-sol2: Remove.
4892         * config/sparc/t-crtin: Remove.
4893         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
4894         * config/i386/gmon-sol2.c: Remove.
4895         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
4896         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
4897         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
4898         * config/i386/sol2-gc1.asm: Remove.
4899         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
4900         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
4901         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
4902         * config/t-slibgcc-sld: Remove.
4903
4904 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
4905
4906         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
4907         base_type_for_mode with op_mode instead of mode.
4908
4909 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
4910
4911         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
4912         Cortex-A15.
4913         * config/arm/arm-tune.md: Regenerate.
4914         * config/arm/arm-tables.opt: Regenerate.
4915         * config/arm/arm.c (FL_DIV): Rename...
4916         (FL_THUMB_DIV): ... to this.
4917         (FL_ARM_DIV): Define.
4918         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
4919         (arm_arch_hwdiv): Remove.
4920         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
4921         (arm_issue_rate): Add cortexr5.
4922         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
4923         __ARM_ARCH_EXT_IDIV__.
4924         (TARGET_IDIV): Define.
4925         (arm_arch_hwdiv): Remove.
4926         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
4927         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
4928         (divsi3, udivsi3): New patterns.
4929         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
4930         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
4931
4932 2011-06-01  Martin Jambor  <mjambor@suse.cz>
4933
4934         * ipa-utils.c (ipa_dfs_info): New field scc_no.
4935         * ipa-utils.c (searchc): Set scc_no.
4936
4937 2011-06-01  Martin Jambor  <mjambor@suse.cz>
4938
4939         * ipa-utils.c (searchc_env): New field allow_overwritable.
4940         (searchc): do not ignore edges to overwritable nodes if indicated
4941         by env->allow_overwritable.
4942         (ipa_reduced_postorder): Set env.allow_overwritable.
4943
4944 2011-06-01  Richard Guenther  <rguenther@suse.de>
4945
4946         * tree.c (free_lang_data): Do not reset boolean_type_node nor
4947         char_type_node.
4948         * lto-streamer.c (lto_record_common_node): Take node pointer,
4949         do not register types.
4950         (lto_preload_common_nodes): Explicitly skip preloading nodes
4951         that differ between frontends.
4952
4953 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
4954
4955         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
4956         NON_FLOAT_REGS.
4957
4958 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
4959
4960         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
4961         parameter value for dump. Dump cost on outermost call only.
4962         (rs6000_memory_move_cost): Dump cost on outermost call only.
4963
4964 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
4965
4966         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
4967         DW_OP_GNU_convert ops.
4968
4969         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
4970         cselib_preserve_constants.
4971         (cselib_lookup_1): If cselib_preserve_constants,
4972         a new VALUE is being created for REG and there is a VALUE for the
4973         same register in wider mode, add another loc with lowpart SUBREG of
4974         the wider VALUE.
4975         (cselib_subst_to_values): Handle ENTRY_VALUE.
4976         * var-tracking.c  (replace_expr_with_values): Return NULL for
4977         ENTRY_VALUE too.
4978         * dwarf2out.c (convert_descriptor_to_signed): New function.
4979         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
4980         instead of two shifts.
4981         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
4982         the right mode if needed.
4983         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
4984         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
4985         convert_descriptor_to_signed.
4986         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
4987         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
4988
4989         PR target/48688
4990         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
4991
4992 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
4993
4994         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
4995         of X87MODEI12 and SWI48x instead of SSEMODEI24.
4996         (SWI248x): New mode iterator, rename from X87MODEI.
4997         (X87MODEI): Remove mode iterator.
4998         (X87MODEI12): Ditto.
4999         (SSEMODEI24): Ditto.
5000
5001 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5002
5003         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
5004         * doc/invoke.texi: Document max-vartrack-expr-depth.
5005         * var-tracking.c (EXPR_DEPTH): New.
5006         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
5007
5008 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5009
5010         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
5011         * config/i386/sse.md: Add n to negated FMA pattern names.
5012
5013 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5014
5015         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
5016
5017 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
5018
5019         * gengtype-state.c (read_state_params_structs): Initialize previous.
5020
5021 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5022
5023         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
5024         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
5025
5026 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
5027
5028         * config/i386/i386.md (*movtf_internal): Avoid allocating general
5029         registers.  Penalize F*r->o alternative to prevent partial memory
5030         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
5031         CONST_DOUBLE immediates when optimizing function for size.  Do not move
5032         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5033         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
5034         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
5035         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
5036         alternatives.
5037         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
5038
5039         (fp_register_operand splitters): Use fp_register_operand
5040         constraint.  Do not use FP_REG_P in insn condition.
5041         (any_fp_register_operand splitters): Use any_fp_register_operand
5042         constraint.  Do not use ANY_FP_REG_P in insn condition.
5043
5044 2011-05-31  Jan Hubicka  <jh@suse.cz>
5045
5046         * cgraph.h (cgraph_inline_failed_t): Give enum a name
5047         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
5048         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
5049         (lto_output_edge): Use output_enum and var_len_unsigned.
5050         (lto_output_varpool_node): Likewise.
5051         (input_overwrite_node): Do not take resolution parameter;
5052         extract it from a bitpack.
5053         (input_node): Do not read resolution; use input_enum and
5054         var_len_unsigned.
5055         (input_varpool_node): Likewise.
5056         (input_edge): Likewise.
5057         (input_cgraph_1): Likewise.
5058
5059 2011-05-31  Richard Guenther  <rguenther@suse.de>
5060
5061         * gimple.c (gimple_register_canonical_type): Do not register
5062         any types via gimple_register_type.
5063
5064 2011-05-31  Jan Hubicka  <jh@suse.cz>
5065
5066         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
5067         of thunks.
5068
5069 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
5070
5071         PR rtl-optimization/49235
5072         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
5073         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
5074
5075 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
5076
5077         PR tree-optimization/49093
5078         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
5079         data references.
5080
5081 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
5082
5083         PR debug/49047
5084         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
5085         for concrete functions containing the code of cloned functions.
5086
5087 2011-05-31  Richard Guenther  <rguenther@suse.de>
5088
5089         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
5090         to ...
5091         (forward_propagate_into_comparison_1): ... this.
5092         (forward_propagate_comparison): Rename to ...
5093         (forward_propagate_into_comparison): ... this.  Split out
5094         real forward propagation code to ...
5095         (forward_propagate_comparison): ... this.
5096         (forward_propagate_into_gimple_cond): Remove looping.
5097         (forward_propagate_into_cond): Likewise.
5098         (simplify_not_neg_expr): Return whether we have done something.
5099         (simplify_gimple_switch): Likewise.
5100         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
5101         (ssa_forward_propagate_and_combine): ... this.  Re-structure
5102         to do a forward forward-propagation walk on BBs and a backward
5103         stmt combining walk on BBs.  Consistently re-scan changed statements.
5104         (pass_forwprop): Adjust.
5105
5106 2011-05-30  Ian Lance Taylor  <iant@google.com>
5107
5108         * godump.c (go_format_type): Correct length of name added to
5109         obstack for anonymous field.
5110
5111 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
5112
5113         PR target/49186
5114         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
5115         part of the second operand is 0.
5116
5117 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
5118
5119         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
5120         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
5121         to memory for !TARGET_MEMORY_MISMATCH_STALL.
5122         (*movdf_internal_rex64): Do not penalize F->r alternative.
5123         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
5124         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
5125         when optimizing function for size.  Do not move CONST_DOUBLEs
5126         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
5127         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
5128         SUBREGs.  Do not check for MEM_P operands in the insn condition,
5129         check for ANY_FP_REGNO_P instead.
5130         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
5131         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
5132         function for speed.
5133         * config/i386/i386.c (ix86_option_override_internal): Do not
5134         set TARGET_INTEGER_DFMODE_MOVES here.
5135
5136 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
5137
5138         PR target/49168
5139         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
5140
5141 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5142
5143         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
5144         DW_TAG_rvalue_reference_type even for
5145         -gdwarf-4 -fno-debug-types-section.
5146
5147 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5148
5149         PR tree-optimization/46728
5150         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
5151         (build_and_insert_binop): New.
5152         (gimple_expand_builtin_pow): Reorder args for
5153         build_and_insert_call; use build_and_insert_binop; add more
5154         optimizations for fractional exponents.
5155
5156 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
5157
5158         PR bootstrap/49190
5159
5160         Revert:
5161         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5162
5163         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5164         tree_common.
5165         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5166         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5167         TS_BASE instead of TS_COMMON.
5168         * varasm.c (assemble_name): Remove assert.
5169
5170 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
5171
5172         * config.gcc: Keep obselete list sorted.
5173
5174 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
5175             Eric Botcazou  <ebotcazou@adacore.com>
5176
5177         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
5178         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
5179         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
5180         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
5181         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
5182
5183 2011-05-30  Richard Guenther  <rguenther@suse.de>
5184
5185         * gimple.c (gimple_types_compatible_p_1): Compare record
5186         and union type members properly.
5187
5188 2011-05-30  Richard Guenther  <rguenther@suse.de>
5189
5190         PR tree-optimization/49210
5191         * ipa-split.c (split_function): Care for the case where the call
5192         result is not trivially convertible to the result holding variable.
5193
5194 2011-05-30  Richard Guenther  <rguenther@suse.de>
5195
5196         PR tree-optimization/49218
5197         * tree-vrp.c (adjust_range_with_scev): Properly check whether
5198         overflow occured.
5199
5200 2011-05-30  Richard Guenther  <rguenther@suse.de>
5201
5202         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
5203         New function split out from ...
5204         (forward_propagate_into_gimple_cond): ... here.  Adjust.
5205         (forward_propagate_into_cond): Likewise.
5206         (forward_propagate_comparison): Also propagate into
5207         comparisons on assignment RHS.  Change return value to
5208         behave similar to forward_propagate_into_cond.
5209         (tree_ssa_forward_propagate_single_use_vars): Handle
5210         strict-overflow warnings properly for forward_propagate_comparison.
5211
5212 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5213
5214         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
5215         from plugin linker.
5216         * configure: Regenerate.
5217
5218 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
5219
5220         PR tree-optimization/49199
5221         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
5222         non-reduction operands are either defined in the loop or by induction.
5223
5224 2011-05-29  Xinliang David Li  <davidxl@google.com>
5225
5226         * opts-global.c (handle_common_deferred_options): Handle new options.
5227         * passes.c (register_one_dump_file): Call register_pass_name.
5228         (execute_one_pass): Check explicit enable/disable flag.
5229         (passr_hash): New function.
5230         (passr_eq): Ditto.
5231         (register_pass_name): Ditto.
5232         (get_pass_by_name): Ditto.
5233         (pass_hash): Ditto.
5234         (pass_eq): Ditto.
5235         (enable_pass): Ditto.
5236         (disable_pass): Ditto.
5237         (is_pass_explicitly_enabled_or_disabled): Ditto.
5238
5239 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
5240
5241         * config/i386/i386.md (*movoi_internal_avx): Use
5242         standard_sse_constant_opcode for alternative 0.
5243         (*movti_internal_sse): Ditto.
5244         (*movti_internal_rex64): Use standard_sse_constant_opcode for
5245         alternative 2.
5246         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
5247         sselog1 type moves.
5248         (*movsi_internal): Ditto.
5249         (*movdi_internal): Ditto.  Add ssecvt type moves.
5250
5251 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
5252
5253         PR target/48830
5254         * rtlanal.c (simplify_subreg_regno): Adjust comment.
5255
5256 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
5257
5258         PR rtl-optimization/49095
5259         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
5260         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
5261
5262 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5263
5264         PR target/43995
5265         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
5266         recurse_p argument.  Only follow register copies if it is set,
5267         and prevent mips_find_pic_call_symbol from recursing.
5268         (mips_find_pic_call_symbol): Add a recurse_p argument.
5269         Pass it to mips_pic_call_symbol_from_set.
5270         (mips_annotate_pic_calls): Update accordingly.
5271
5272 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
5273
5274         * emit-rtl.c (try_split): Use a loop to search for
5275         NOTE_INSN_CALL_ARG_LOCATIONs.
5276
5277 2011-05-29  Richard Guenther  <rguenther@suse.de>
5278
5279         PR tree-optimization/49217
5280         * ipa-pure-const.c (propagate_pure_const): Fix typos.
5281
5282 2011-05-28  Jan Hubicka  <jh@suse.cz>
5283
5284         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
5285         length.
5286         (string_slot_free): Remove
5287         (create_output_block): Initialize obstack.
5288         (destroy_output_block): Free obstack.
5289         (lto_string_index): Add PERSISTENT parameter; do not duplicate
5290         the string unless it needs to be added into the hash.
5291         (lto_output_string_with_length): Add persistent attribute;
5292         handle NULL strings.
5293         (lto_output_string): Add PERSISTENT parameter.
5294         (output_string_cst, output_identifier): Simplify.
5295         (lto_output_location_bitpack): Update.
5296         (lto_output_builtin_tree): Update.
5297         * lto-streamer.h (struct output_block): Add obstack.
5298         (lto_output_string, lto_output_string_with_length): Remove
5299         declarations; functions are static now.
5300
5301 2011-05-28  Jan Hubicka  <jh@suse.cz>
5302
5303         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
5304         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
5305         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
5306         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
5307         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
5308         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
5309         unpack_ts_decl_with_vis_value_fields,
5310         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
5311         lto_get_builtin_tree): Use enum and variable length i/o.
5312         * basic-block.h (profile_status_d): Add PROFILE_LAST.
5313         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
5314         New functions.
5315         (bp_pack_enum, bp_unpack_enum): New macros.
5316
5317 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5318
5319         * genrecog.c: Remove redundant forward declarations.
5320
5321 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5322
5323         * config.gcc: Deprecate mips*-*-openbsd*.
5324
5325 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
5326
5327         PR bootstrap/49195
5328         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
5329         for match_op_dup.
5330
5331 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
5332
5333         PR middle-end/48981
5334         * gengtype.c (vec_prefix_type): New function.
5335         (note_def_vec): Use vec_prefix_type and change the length
5336         attribute to be based on the prefix.
5337         * vec.c: Include coretypes.h before vec.h.
5338         (struct vec_prefix): Remove.
5339         (vec_gc_p_reserve): Change the offsetof to sizeof.
5340         (vec_gc_p_reserve_exact): Likewise.
5341         (vec_heap_p_reserve): Likewise.
5342         (vec_heap_p_reserve_exact): Likewise.
5343         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
5344         (vec_stack_p_reserve): Change the offsetof to sizeof.
5345         (vec_stack_p_reserve_exact): Likewise.
5346         * vec.h (struct vec_prefix): New struct definition.
5347         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
5348         (VEC_T_GTY(T,B)): Likewise.
5349         (DEF_VEC_FUNC_P(T)): Use prefix field.
5350         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
5351         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
5352
5353 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5354
5355         PR tree-optimization/46728
5356         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
5357         (powi_as_mults): Add gimple_set_location.
5358         (build_and_insert_call): New.
5359         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
5360         0.5, 0.25, 0.75, 1./3., or 1./6.
5361
5362 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
5363
5364         * doc/contrib.texi: Update copyright years.
5365         (Contributors): Add Zdenek Sojka.
5366
5367 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
5368
5369         * c-decl.c (c_push_function_context): Copy the current statement
5370         list stack.
5371         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
5372         (finish_struct): Call building_stmt_list_p instead of checking
5373         cur_stmt_list.
5374         * c-parser.c (c_parser_postfix_expression): Likewise.
5375         * c-typeck.c (c_end_compound_stmt): Likewise.
5376         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
5377         * tree-iterator.c (stmt_list_cache): Change to a VEC.
5378         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
5379         (free_stmt_list): Likewise.
5380         * tree.h (struct tree_statement_list): Include typed_tree instead
5381         of tree_common.
5382         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
5383         as TS_TYPED instead of TS_COMMON.
5384
5385 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5386             Uros Bizjak  <ubizjak@gmail.com>
5387
5388         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
5389         (HAVE_AS_IX86_TLSGDPTL): Define.
5390         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
5391         (HAVE_AS_IX86_TLSLDMPLT): Define.
5392         * configure: Regenerate.
5393         * config.in: Regenerate.
5394         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
5395         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
5396         TARGET_SUN_TLS, use @tlsgdplt or @plt.
5397         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
5398         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
5399         @tlsldmplt or @plt.
5400         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
5401
5402 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5403
5404         * sched-int.h (struct _haifa_deps_insn_data): New members cond
5405         and reverse_cond.
5406         (INSN_COND, INSN_REVERSE_COND): New macros.
5407         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
5408         once.
5409         (sched_get_condition_with_rev): Cache the results, and look them up
5410         if possible.
5411         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
5412         are clobbered by the current insn.
5413         * target.def (exposed_pipline): New sched data hook.
5414         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
5415         * doc/tm.texi: Regenerate.
5416
5417 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5418
5419         PR tree-optimization/49170
5420         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
5421         sincos or cexp.
5422
5423 2011-05-27  Richard Guenther  <rguenther@suse.de>
5424
5425         PR middle-end/49189
5426         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
5427         of comparisons.
5428
5429 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
5430
5431         * haifa-sched.c (sched_scan_info): Remove.
5432         (schedule_block): Call sched_extend_luids rather than sched_init_luids
5433         with NULL args.
5434         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
5435         Remove functions.
5436         (sched_scan): Remove.
5437         (sched_extend_luids): Renamed from luids_extend_insn and no longer
5438         static.  All callers changed.
5439         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
5440         static.  All callers changed.
5441         (sched_init_luids): Remove all arguments except the first.  All
5442         callers changed.  Don't use sched_scan.
5443         (haifa_init_h_i_d): Likewise.
5444         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
5445         manually rather than using sched_init_luids.  Likewise with
5446         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
5447         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
5448         rather than sched_init_luids with NULL args.
5449         * sel-sched-ir.c (new_insns): Remove variable.
5450         (sched_scan): New static function, previously in haifa-sched.c.  Remove
5451         all arguments but the first two; all callers changed.
5452         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
5453         rather than sched_init_luids.
5454         (sel_init_bbs): Remove second argument.  All callers changed.
5455         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
5456         with NULL arguments.
5457         (create_insn_rtx_from_pattern): Likewise.
5458         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
5459         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
5460         (sched_init_insn_luid, sched_extend_luids): Declare.
5461         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
5462         declarations.
5463
5464 2011-05-27  Richard Guenther  <rguenther@suse.de>
5465
5466         PR middle-end/49177
5467         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
5468         A CMP B ? (T) true : (T) false for non-integral types T again.
5469
5470 2011-05-27  Jan Hubicka  <jh@suse.cz>
5471
5472         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
5473         so 0 means NULL string.
5474         (lto_output_string_with_length): ... here.
5475         (lto_output_string, output_string_cst, output_identifier): Update
5476         handling of NULL strings.
5477         (lto_output_location_bitpack): New function.
5478         (lto_output_location): Use it.
5479         (lto_output_tree_ref): Use output_record_start.
5480         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
5481         len values.
5482         * lto-streamer-in.c (string_for_index): Break out from ...; offset
5483         values by 1.
5484         (input_string_internal): ... here;
5485         (input_string_cst, input_identifier, lto_input_string): Update handling
5486         of NULL strings.
5487         (lto_input_location_bitpack): New function
5488         (lto_input_location): Use it.
5489         (unpack_ts_type_common_value_fields): Pack align & alias in var len
5490         values.
5491         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
5492         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
5493         (bp_pack_value): Sanity check the value range.
5494         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
5495         New functions.
5496         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
5497         New functions.
5498
5499 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
5500
5501         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
5502         call_arg_location instructions down the floor.
5503
5504 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
5505
5506         PR rtl-optimization/49154
5507         * ira.c (setup_pressure_classes): Process class without sublcasses
5508         as a candidate for pressure classes.
5509
5510 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
5511
5512         PR rtl-optimization/48575
5513         * genrecog.c (position_type): New enum.
5514         (position): New structure.
5515         (decision): Use position structure instead of a string.
5516         (root_pos, peep2_insn_pos_list): New variables.
5517         (next_position, compare_positions): New functions.
5518         (new_decision): Use position structures instead of strings.
5519         (maybe_both_true): Likewise.
5520         (change_state): Likewise.
5521         (write_tree): Likewise.
5522         (make_insn_sequence): Likewise.
5523
5524 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5525
5526         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
5527         TS_BASE instead of TS_COMMON.
5528         (find_decls_types_r): Check for TS_TYPED structure before looking at
5529         TREE_TYPE.
5530         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
5531         Add chain field.
5532         (BLOCK_CHAIN): Use new chain field.
5533
5534 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
5535
5536         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
5537         moves expensive on Power7 also.
5538
5539 2011-05-26  Richard Guenther  <rguenther@suse.de>
5540
5541         * fold-const.c (fold_unary_loc): Remove bogus code.
5542
5543 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
5544
5545         * tree.h (struct tree_identifier): Inherit from tree_typed, not
5546         tree_common.
5547         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
5548         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
5549         TS_BASE instead of TS_COMMON.
5550         * varasm.c (assemble_name): Remove assert.
5551
5552 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5553
5554         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
5555         substituted first.
5556         * libgcc-std.ver: Delete file.
5557
5558 2011-05-26  Richard Guenther  <rguenther@suse.de>
5559
5560         PR tree-optimization/48702
5561         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
5562         only when we know the base address is within bounds.
5563         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
5564         assume the base address of TARGET_MEM_REFs is in bounds.
5565
5566 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5567
5568         PR target/49099
5569         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
5570         declaration in TARGET_SOLARIS.
5571
5572 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
5573
5574         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
5575         The instruction is then expanded explicitly.
5576         (supported_compare): Callable instruction.
5577         (compare): Likewise.
5578
5579 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5580
5581         PR c++/49165
5582         * gimplify.c (shortcut_cond_r): Don't special case
5583         COND_EXPRs if they have void type on one of their arms.
5584
5585 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
5586
5587         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
5588         to reduce duplication, and to achieve a slightly more logical order
5589         of operations.
5590
5591 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
5592
5593         PR tree-optimization/49161
5594         * tree-vrp.c (struct case_info): New type.
5595         (compare_case_labels): Sort case_info structs instead of
5596         trees, and not primarily by CASE_LABEL uids but by
5597         label_for_block indexes.
5598         (find_switch_asserts): Put case labels into struct case_info
5599         array instead of TREE_VEC, adjust sorting, compare label_for_block
5600         values instead of CASE_LABELs.
5601
5602 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
5603
5604         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
5605         ("orndi3_neon"): Likewise.
5606         ("bic<mode>3_neon"): Likewise.
5607
5608 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
5609
5610         PR tree-optimization/49038
5611         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
5612         Ensure at least one epilogue iteration if required by data
5613         accesses with gaps.
5614         * tree-vectorizer.h (struct _loop_vec_info): Add new field
5615         to mark loops that require peeling for gaps.
5616         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
5617         (vect_get_known_peeling_cost): Take peeling for gaps into
5618         account.
5619         (vect_transform_loop): Generate epilogue if required by data
5620         access with gaps.
5621         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
5622         loop as requiring an epilogue if there are gaps in the end of
5623         the strided group.
5624
5625 2011-05-25  Ian Lance Taylor  <iant@google.com>
5626
5627         * godump.c (go_format_type): Output the first field with a usable
5628         Go type, if any.
5629
5630 2011-05-25  Ian Lance Taylor  <iant@google.com>
5631
5632         * godump.c (go_format_type): Check for invalid type names, pointer
5633         target types, and struct field types.
5634
5635 2011-05-25  Jason Merrill  <jason@redhat.com>
5636
5637         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
5638
5639 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
5640
5641         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
5642
5643 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5644
5645         * config/i386/i386.md (*movqi_extv_1)): Put back
5646         "register_operand" check in "type" calculation.
5647         (*movqi_extzv_2): Likewise.
5648
5649 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5650
5651         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
5652
5653 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
5654
5655         PR bootstrap/49160
5656         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
5657         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
5658         __divxc3, __divtc3): Wrap definitions in #ifndef.
5659
5660 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5661
5662         PR target/49142
5663         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
5664         "register_operand" check and replace q_regs_operand with
5665         QIreg_operand in "type" calculation.
5666         (*movqi_extv_1): Likewise.
5667         (*movqi_extzv_2_rex64): Likewise.
5668         (*movqi_extzv_2): Likewise.
5669
5670         * config/i386/predicates.md (QIreg_operand): New.
5671
5672 2011-05-25  Richard Guenther  <rguenther@suse.de>
5673
5674         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
5675         type-based offset disambiguation, streamline MEM_REF and
5676         TARGET_MEM_REF handling.
5677
5678 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
5679
5680         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
5681         (bdesc_special_args): Add pause intrinsic.
5682
5683         * config/i386/i386.md (UNSPEC_PAUSE): New.
5684         (pause): Likewise.
5685         (*pause): Likewise.
5686         * config/i386/ia32intrin.h (__pause): Likewise.
5687
5688         * doc/extend.texi (X86 Built-in Functions): Add documentation for
5689         pause intrinsic.
5690
5691 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5692
5693         PR tree-optimization/46728
5694         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
5695         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
5696
5697 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
5698
5699         * tree.h (struct tree_exp): Inherit from struct tree_typed.
5700         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
5701         instead of TS_COMMON.
5702
5703 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
5704
5705         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
5706         LIBGCC2_GNU_PREFIX is defined.
5707         (__N): New macro.
5708         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
5709         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
5710         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
5711         __clz_tab): Define using __N.
5712         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
5713         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
5714         * target.def (libfunc_gnu_prefix): New hook.
5715         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
5716         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
5717         * doc/tm.texi: Regenerate.
5718         * system.h (LIBGCC2_GNU_PREFIX): Poison.
5719         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
5720         account.
5721         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
5722         (init_optabs): Likewise for the bswap libfuncs.
5723         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
5724         and divide.
5725         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
5726         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
5727         * libgcc-std.ver: Remove.
5728         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
5729         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
5730         libgcc-std.ver.
5731         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
5732         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
5733         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
5734         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
5735         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
5736         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
5737         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
5738         * config/fixed-bit.h (FIXED_OP): Define differently depending on
5739         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
5740         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
5741
5742 2011-05-25  Jan Hubicka  <jh@suse.cz>
5743
5744         * lto-streamer-out.c (output_record_start): Use lto_output_enum
5745         (lto_output_tree): Use output_record_start.
5746         * lto-streamer-in.c (input_record_start): Use lto_input_enum
5747         (lto_get_pickled_tree): Use input_record_start.
5748         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
5749         (lto_value_range_error): New function.
5750         * lto-streamer.h (lto_value_range_error): Declare.
5751         (lto_output_int_in_range, lto_input_int_in_range): New functions.
5752         (lto_output_enum, lto_input_enum): New macros.
5753
5754 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
5755
5756         * common.opt (flag_stack_usage_info): New variable.
5757         (-Wstack-usage): New option.
5758         * doc/invoke.texi (Warning options): Document -Wstack-usage.
5759         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
5760         <OPT_fstack_usage>: Likewise.
5761         * toplev.c (output_stack_usage): Handle -Wstack-usage.
5762         * calls.c (expand_call): Test flag_stack_usage_info variable instead
5763         of flag_stack_usage.
5764         (emit_library_call_value_1): Likewise.
5765         * explow.c (allocate_dynamic_stack_space): Likewise.
5766         * function.c (instantiate_virtual_regs ): Likewise.
5767         (prepare_function_start): Likewise.
5768         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
5769         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
5770         * config/arm/arm.c (arm_expand_prologue): Likewise.
5771         (thumb1_expand_prologue): Likewise.
5772         * config/avr/avr.c (expand_prologue): Likewise.
5773         * config/i386/i386.c (ix86_expand_prologue): Likewise.
5774         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5775         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
5776         * config/mips/mips.c (mips_expand_prologue): Likewise.
5777         * config/pa/pa.c (hppa_expand_prologue): Likewise.
5778         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
5779         * config/s390/s390.c (s390_emit_prologue): Likewise.
5780         * config/sh/sh.c (sh_expand_prologue): Likewise.
5781         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
5782         * config/spu/spu.c (spu_expand_prologue): Likewise.
5783
5784 2011-05-25  Richard Guenther  <rguenther@suse.de>
5785
5786         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
5787         (gimple_canonical_types_compatible_p): Likewise.
5788
5789 2011-05-25  Jan Hubicka  <jh@suse.cz>
5790
5791         PR middle-end/49062
5792         * ipa.c (function_and_variable_visibility): Only add to same
5793         comdat group list if DECL_ONE_ONLY.
5794
5795 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
5796
5797         PR rtl-optimization/49014
5798         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
5799
5800 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
5801
5802         PR target/49128
5803         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
5804
5805 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
5806
5807         PR rtl-optimization/48757
5808         * ira-build.c (loop_with_eh_edge_p): Rename to
5809         loop_with_complex_edge_p, check edges on complexity, make function
5810         conditional.
5811         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
5812         conditional.
5813
5814 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
5815
5816         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
5817         force flag_ira_share_save_slots to 0.
5818
5819 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
5820
5821         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
5822         (vt_initialize): Set PROLOGUE_BB unconditionally.
5823         Add block comment about CFA_BASE_RTX machinery.
5824         Reset FP_CFA_OFFSET to -1 on all invalid paths.
5825         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
5826
5827 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
5828
5829         PR objc/48187
5830         * c-parser.c (c_parser_objc_class_instance_variables): More robust
5831         parsing of syntax error in ObjC instance variable lists.  In
5832         particular, avoid an infinite loop if there is a stray ']'.
5833         Updated error message.
5834
5835 2011-05-24  Ian Lance Taylor  <iant@google.com>
5836
5837         * godump.c (go_define): Don't accept a string immediately after
5838         another operand.
5839
5840 2011-05-24  Ian Lance Taylor  <iant@google.com>
5841
5842         * godump.c (struct godump_container): Add invalid_hash field.
5843         (go_format_type): Return false if type is found in invalid_hash.
5844         (go_output_typedef): Add invalid type to invalid_hash.
5845         (go_finish): Create and delete invalid_hash.
5846
5847 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5848
5849         PR tree-optimization/46728
5850         * tree-ssa-math-opts.c (powi_table): New.
5851         (powi_lookup_cost): New.
5852         (powi_cost): New.
5853         (powi_as_mults_1): New.
5854         (powi_as_mults): New.
5855         (gimple_expand_builtin_powi): New.
5856         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
5857         (gate_cse_sincos): Remove sincos/cexp restriction.
5858
5859 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5860
5861         PR target/3746
5862         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
5863         mips-tdump native.
5864         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
5865         * mips-tdump.c: Likewise.
5866
5867 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
5868
5869         PR target/49128
5870         * config/i386/driver-i386.c (host_detect_local_cpu): Always
5871         add -mno-XXX.  Handle FMA.
5872
5873 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
5874
5875         PR rtl-optimization/48633
5876         * ira-build.c (loop_with_eh_edge_p): New function.
5877         (mark_loops_for_removal): Use it.
5878
5879 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
5880
5881         PR rtl-optimization/48971
5882         * ira.c (setup_pressure_classes): Don't check register move cost
5883         for classes with one registers.  Don't add pressure class if there
5884         is a pressure class with the same available hard registers.
5885         Check contains_reg_of_mode.  Fix a typo in collecting
5886         temp_hard_regset.  Ignore hard registers not belonging to a class.
5887
5888 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
5889
5890         PR target/49133
5891         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
5892
5893 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
5894             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5895
5896         PR gcov-profile/48845
5897         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
5898
5899 2011-05-24  Richard Guenther  <rguenther@suse.de>
5900
5901         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
5902         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
5903         (gimple_types_compatible_p_1): Adjust.
5904         (iterative_hash_canonical_type): Do not bother about complete vs.
5905         incomplete types.
5906         (gimple_canonical_types_compatible_p): Likewise.
5907
5908 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5909
5910         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
5911
5912 2011-05-24  Richard Guenther  <rguenther@suse.de>
5913
5914         PR bootstrap/49078
5915         * gimple.c (gimple_register_canonical_type): Revert
5916         previous change.
5917         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
5918         does not for a tree for the case where it matters.  Cache
5919         pointer-type alias-sets.
5920
5921 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
5922
5923         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
5924         (OBJS): Remove options.o, opts-common.o and prefix.o.
5925         (OBJS-libcommon-target): New.
5926         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
5927         (BACKEND): Include libcommon-target.a.
5928         (MOSTLYCLEANFILES): Include libcommon-target.a.
5929         (libcommon-target.a): New.
5930         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
5931         prefix.o.
5932
5933 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
5934
5935         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
5936         parts of output shared with the driver.
5937         * optc-gen.awk: Don't generate parts of output not shared with the
5938         driver.
5939         * opth-gen.awk: Remove GCC_DRIVER conditionals.
5940         * doc/options.texi (SourcerInclude): Mention options-save.c.
5941         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
5942         (OBJS): Add options-save.o.
5943         (options-save.c, options-save.o): New.
5944         (options.o): Update dependencies.
5945         (gcc-options.o): Remove.
5946         (mostlyclean): Remove options-save.c.
5947
5948 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
5949
5950         PR debug/49032
5951         * dbxout.c: Include cgraph.h.
5952         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
5953         and without value expr, return NULL if no varpool node exists for
5954         it or if it is not needed.
5955         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
5956
5957         PR c/49120
5958         * c-decl.c (start_decl): Convert expr to void_type_node.
5959
5960 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
5961
5962         PR rtl-optimization/48826
5963         * emit-rtl.c (try_split): When splitting a call that is followed
5964         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
5965
5966 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
5967
5968         * cfgexpand.c (expand_debug_expr): For unused non-addressable
5969         parameters passed in memory prefer using DECL_INCOMING_RTL over
5970         the pseudos it will be copied into.
5971
5972 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
5973
5974         PR target/47315
5975         * config/i386/i386.c (ix86_option_override_internal): Save the
5976         initial options after checking vzeroupper.
5977
5978 2011-05-23  David Li  <davidxl@google.com>
5979
5980         PR tree-optimization/48988
5981         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
5982         Initialize has_valid_pred for each pred chain.
5983
5984 2011-05-23  Richard Guenther  <rguenther@suse.de>
5985
5986         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
5987         (iterative_hash_gimple_type): Always hash type names.
5988
5989 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
5990
5991         * c-typeck.c (build_function_call_vec): Tweak call to
5992         check_function_arguments.
5993
5994 2011-05-23  Richard Guenther  <rguenther@suse.de>
5995
5996         PR tree-optimization/49115
5997         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
5998         is not necessarily carried out, do not claim it kills the ref.
5999         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
6000
6001 2011-05-23  Richard Guenther  <rguenther@suse.de>
6002
6003         PR middle-end/15419
6004         * builtins.c (fold_builtin_memory_op): Be less restrictive about
6005         what pointer types we accept for folding.
6006
6007 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6008
6009         * gthr-gnat.c: Remove.
6010         * gthr-gnat.h: Remove.
6011         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
6012         * config/t-freebsd (LIB2ADDEH): Likewise.
6013         * config/t-linux (LIB2ADDEH): Likewise.
6014         * config/t-sol2 (LIB2ADDEH): Likewise.
6015         * config/ia64/t-vms (LIB2ADDEH): Likewise.
6016         * configure.ac (target_thread_file): Remove gnat handling.
6017         * configure: Regenerate.
6018         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
6019
6020 2011-05-23  Tristan Gingold  <gingold@adacore.com>
6021             Eric Botcazou  <ebotcazou@adacore.com>
6022
6023         * gcov.c (create_file_names): If no object directory is specified,
6024         keep the directory of the file.
6025
6026 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6027
6028         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
6029         * configure: Regenerate.
6030
6031 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
6032
6033         PR middle-end/48973
6034         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
6035         failed and the comparison has a single bit signed type, use
6036         constm1_rtx instead of const1_rtx for true value.
6037         (do_store_flag): If ops->type is single bit signed type, disable
6038         signel bit test optimization and pass -1 instead of 1 as last
6039         parameter to emit_store_flag_force.
6040
6041 2011-05-23  Tom de Vries  <tom@codesourcery.com>
6042
6043         PR target/45098
6044         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
6045         function.
6046         (infer_loop_bounds_from_undefined): Use new function.
6047
6048 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6049
6050         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
6051         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
6052         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
6053         and -O0 otherwise.
6054         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
6055
6056 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6057
6058         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
6059         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
6060         returns true.
6061
6062 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
6063
6064         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
6065
6066 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6067
6068         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
6069         UNSPEC_MOVE_PIC pattern.
6070
6071 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
6072
6073         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
6074         (sparc-*-rtems*): Likewise.
6075         (sparc64-*-elf*): Likewise.
6076         (sparc64-*-rtems*): Likewise.
6077         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
6078         * config/sparc/t-crtin: New file.
6079         * config/sparc/t-sol2 (crti.o): Delete rule.
6080         (crtn.o): Likewise.
6081         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
6082         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
6083         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
6084         (ENDFILE_SPEC): Add crtn.o.
6085
6086 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6087
6088         PR middle-end/48689
6089         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
6090         CODE_CONTAINS_STRUCT (TS_COMMON).
6091
6092 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
6093
6094         PR middle-end/49029
6095         * expmed.c (extract_fixed_bit_field): Test whether target can be used
6096         only after deciding which mode to use.
6097
6098 2011-05-22  Tom de Vries  <tom@codesourcery.com>
6099
6100         PR target/45098
6101         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
6102         for call to get_shiftadd_cost.
6103
6104 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
6105
6106         PR target/49104
6107         * config/i386/cpuid.h (bit_MMXEXT): New define.
6108
6109 2011-05-22  Nick Clifton  <nickc@redhat.com>
6110
6111         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
6112         initialisation of non-existant args[2] element.  Use args[] array
6113         not arg[] array to pass arguments to build_function_type_list.
6114
6115 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
6116
6117         PR tree-optimization/49087
6118         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
6119
6120 2011-05-21  Jason Merrill  <jason@redhat.com>
6121
6122         PR c++/49092
6123         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
6124         static storage duration.
6125
6126 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6127
6128         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
6129         frame pointer.
6130
6131 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
6132
6133         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
6134         false if there are call-saved registers here...
6135         (sparc_can_use_return_insn_p): ...but here instead.
6136         (save_or_restore_regs): Fix thinko.
6137         (sparc_expand_prologue): Use current_function_is_leaf.
6138         (sparc_frame_pointer_required): Likewise.
6139
6140 2011-05-21  Nick Clifton  <nickc@redhat.com>
6141
6142         PR target/49098
6143         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
6144
6145 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6146
6147         * gengtype.c (walk_type): Implemented "atomic" GTY option.
6148         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
6149
6150 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
6151
6152         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
6153         * optc-gen.awk: Move common code to opt-read.awk.
6154         * opth-gen.awk: Likewise.
6155         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
6156
6157 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
6158
6159         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
6160
6161 2011-05-20  Tom de Vries  <tom@codesourcery.com>
6162
6163         PR target/45098
6164         * tree-ssa-loop-ivopts.c: Include expmed.h.
6165         (get_shiftadd_cost): New function.
6166         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
6167
6168 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6169
6170         PR bootstrap/49086
6171         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
6172         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
6173
6174 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6175
6176         * Makefile.in: Update comment referring to $(OBJS-common).
6177
6178 2011-05-20  Ian Lance Taylor  <iant@google.com>
6179
6180         * godump.c (go_output_typedef): Put enum constants in the macro
6181         hash table to avoid duplicate Go const definitions.
6182
6183 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
6184
6185         * Makefile.in (LIBDEPS): Add libcommon.a.
6186         (LIBS): Likewise.
6187         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
6188         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
6189         pretty-print.o and version.o.
6190         (OBJS-libcommon): New.
6191         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
6192         (BACKEND): Add libcommon.a.
6193         (MOSTLYCLEANFILES): Likewise.
6194         (libcommon.a): New.
6195         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
6196         (cpp$(exeext)): Likewise.
6197         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
6198         pretty-print.o and input.o.
6199         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
6200         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
6201         (errors.o): Remove.
6202         (mips-tfile): Don't explicitly use version.o.
6203         (mips-tdump): Likewise.
6204         (gcov.o): Depend on $(DIAGNOSTIC_H).
6205         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
6206         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
6207         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
6208         * gcov-dump.c: Include intl.h and diagnostic.h.
6209         (main): Initialize diagnostics.
6210         * gcov.c: Include diagnostic.h.
6211         (fnotice): Remove.
6212         (main): Initialize diagnostics.
6213         * lto-wrapper.c: Include diagnostic.h.
6214         (main): Initialize diagnostics.
6215
6216 2011-05-20  Michael Matz  <matz@suse.de>
6217
6218         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
6219
6220 2011-05-20  Michael Matz  <matz@suse.de>
6221             Richard Guenther  <rguenther@suse.de>
6222
6223         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
6224         use lto_streamer_cache_append directly instead of returning a VEC.
6225         (preload_common_node): Remove.
6226         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
6227         track seen nodes.
6228         (lto_streamer_cache_create): Call lto_preload_common_nodes.
6229
6230 2011-05-20  Richard Guenther  <rguenther@suse.de>
6231
6232         PR tree-optimization/49079
6233         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
6234         MEM_REFs correctly for the trailing array access detection.
6235         Special case constants the same way as decls for overall size
6236         constraining.
6237
6238 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
6239
6240         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
6241         argument expansion.
6242
6243 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
6244
6245         PR tree-optimization/49073
6246         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
6247         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6248         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
6249
6250 2011-05-20  Richard Guenther  <rguenther@suse.de>
6251
6252         PR middle-end/48849
6253         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
6254         of pointer types the same way the middle-end does.
6255
6256 2011-05-20  Richard Guenther  <rguenther@suse.de>
6257
6258         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
6259         or pointer-to chains.  Delay all fixup to uniquify_nodes.
6260
6261 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
6262
6263         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
6264         (fma4_fmaddsub): Likewise
6265
6266 2011-05-19  Jan Hubicka  <jh@suse.cz>
6267
6268         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
6269         (GIMPLE_TYPE_PAIR_SIZE): New macro.
6270         (type_pair_cache): New static var.
6271         (lookup_type_pair): Use fixed sized custom hash; make inline.
6272         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
6273         calls of lookup_type_pair.
6274         (print_gimple_types_stats): Remove cache stats.
6275         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
6276         and gtc_ob.
6277
6278 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
6279
6280         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
6281         when TARGET_RDRND is active.
6282         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
6283         Generate dummy SImode target register when target is NULL.
6284
6285 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6286
6287         * config/arm/arm-fpus.def: New.
6288         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
6289         arm-fpus.def.
6290         * config/arm/arm-tables.opt: Regenerate.
6291         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
6292         (arm_option_override): Don't decode FPU name to string here.
6293         * config/arm/arm.opt (mfpu=): Use Enum.
6294         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
6295         Update dependencies.
6296
6297 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
6298
6299         * collect2.c: Include diagnostic.h.
6300         (fatal_perror, fatal, error, fancy_abort): Remove.
6301         (main): Set progname.  Call xmalloc_set_program_name and
6302         diagnostic_initialize.
6303         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
6304         scan_libraries, resolve_lib_name): Call fatal_error instead of
6305         fatal and fatal_perror.
6306         * collect2.h (error, fatal, fatal_perror): Don't declare.
6307         * tlink.c: Include diagnostic-core.h.
6308         (recompile_files): Call fatal_error instead of fatal_perror.
6309         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
6310         pretty-print.o and input.o.
6311         (collect2.o, tlink.o): Update dependencies.
6312
6313 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6314
6315         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
6316
6317 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6318
6319         PR target/40483
6320         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
6321         COMDAT group syntax, both SPARC and x86 variants.
6322         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
6323         * configure: Regenerate.
6324         * config/sol2.h (TARGET_SOLARIS): Define.
6325         (PUSHSECTION_FORMAT): Remove.
6326         (SECTION_NAME_FORMAT): Define.
6327         * config/sol2.c: Include hashtab.h.
6328         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
6329         expansion, using SECTION_NAME_FORMAT.
6330         (solaris_comdat_htab): New variable.
6331         (struct comdat_entry): Define.
6332         (comdat_hash): New function.
6333         (comdat_eq): New function.
6334         (solaris_elf_asm_comdat_section): New function.
6335         (solaris_define_comdat_signature): New function.
6336         (solaris_code_end): New function.
6337         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
6338         (solaris_code_end): Declare.
6339         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
6340         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
6341         solaris_code_end.
6342         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
6343         Remove ATTRIBUTE_UNUSED.
6344         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
6345         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
6346         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
6347         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
6348         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
6349         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
6350         (PUSHSECTION_FORMAT): Remove.
6351         (SECTION_NAME_FORMAT): Redefine.
6352
6353 2011-05-19  Kai Tietz  <ktietz@redhat.com>
6354
6355         * tree-cfg.c (verify_gimple_assign_binary): Barf on
6356         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
6357         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
6358
6359 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
6360             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6361
6362         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
6363
6364 2011-05-19  Richard Guenther  <rguenther@suse.de>
6365
6366         PR middle-end/48985
6367         * tree-object-size.c (addr_object_size): If the pointed-to
6368         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
6369
6370 2011-05-19  Richard Guenther  <rguenther@suse.de>
6371
6372         * gimple.c (gimple_types_compatible_p_1): Compare names of
6373         the types themselves.
6374         (iterative_hash_gimple_type): And hash them that way.
6375         (gimple_register_type_1): If we register a main variant properly
6376         initialize the leader to ourselves.
6377
6378 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6379
6380         PR target/45098
6381         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
6382         get_loop_invariant_expr_id.
6383         (get_loop_invariant_expr_id): Use get_expr_id.
6384         (parm_decl_cost): New function.
6385         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
6386         Improve bound cost estimation.  Use different inv_expr_id for elim and
6387         express cases.
6388
6389 2011-05-19  Tom de Vries  <tom@codesourcery.com>
6390
6391         PR target/45098
6392         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
6393         cost_base.cost == 0.
6394
6395 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
6396
6397         PR target/49002
6398         * config/i386/sse.md
6399         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
6400         load cast.
6401
6402 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6403
6404         PR tree-optimization/49039
6405         * tree-vrp.c (extract_range_from_binary_expr): For
6406         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
6407         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
6408
6409 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6410
6411         PR target/45098
6412         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
6413
6414 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
6415
6416         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
6417         (*tls_global_dynamic_64): Ditto.
6418         (*tls_local_dynamic_base_32_gnu): Ditto.
6419         (*tls_local_dynamic_base_64): Ditto.
6420         (tls_initial_exec_64_sun): Ditto.
6421
6422 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
6423
6424         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
6425         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
6426         bf592-none.
6427         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
6428         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
6429         * config/bfin/bfin.c (bfin_cpus): Add bf592.
6430         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
6431         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
6432         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
6433         * config/bfin/elf.h (LIB_SPEC): Add bf592.
6434
6435 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
6436
6437         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
6438         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
6439         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
6440         target_thread_pointer, arm_structure_size_boundary, struct
6441         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
6442         struct abi_name, arm_all_abis): Remove.
6443         (arm_option_override) Don't process most enumerated option values here.
6444         Don't process target_fpe_name here.  Work with integer not string for
6445         structure size boundary; use separate diagnostics for each case.
6446         * config/arm/arm.h (enum float_abi_type, enum
6447         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
6448         to arm-opts.h.
6449         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
6450         arm_structure_size_boundary): Remove.
6451         * config/arm/arm.opt (mabi=): Use Enum and Init.
6452         (arm_abi_type): New Enum and EnumValue entries.
6453         (mfloat-abi=): Use Enum and Init.
6454         (float_abi_type): New Enum and EnumValue entries.
6455         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
6456         (mfp16-format=): Use Enum and Init.
6457         (arm_fp16_format_type): New Enum and EnumValue entries.
6458         (mstructure-size-boundary=): Use UInteger and Init.
6459         (mtp=): Use Enum and Init.
6460         (arm_tp_type): New Enum and EnumValue entries.
6461
6462 2011-05-18  Richard Guenther  <rguenther@suse.de>
6463
6464         PR tree-optimization/49018
6465         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
6466         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
6467         gimple_has_side_effects.
6468
6469 2011-05-18  Richard Guenther  <rguenther@suse.de>
6470
6471         * gimple.c (gimple_register_type_1): New function, split out from ...
6472         (gimple_register_type): ... here.  Avoid infinite recursion.
6473
6474 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6475
6476         PR tree-optimization/41881
6477         * tree-vectorizer.h (struct _loop_vec_info): Add new field
6478         reduction_chains along with a macro for its access.
6479         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
6480         (destroy_loop_vec_info): Free reduction chains.
6481         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
6482         (vect_is_slp_reduction): New function.
6483         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
6484         (vect_create_epilog_for_reduction): Support SLP reduction chains.
6485         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
6486         definition types for reduction chains.
6487         (vect_supported_load_permutation_p): Don't allow permutations for
6488         reduction chains.
6489         (vect_analyze_slp_instance): Support reduction chains.
6490         (vect_analyze_slp): Try to build SLP instance from reduction chains.
6491         (vect_get_constant_vectors):  Handle reduction chains.
6492         (vect_schedule_slp_instance): Mark the first statement of the
6493         reduction chain as reduction.
6494
6495 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
6496
6497         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
6498         names for group elements access.
6499         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
6500         reduction chains as well.  Remove data reference and interleaving
6501         related words from the fields names.
6502         * tree-vect-loop.c (vect_transform_loop): Use new names for group
6503         elements access.
6504         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
6505         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
6506         vect_update_interleaving_chain, vect_same_range_drs,
6507         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
6508         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
6509         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
6510         vect_analyze_group_access, vect_analyze_data_ref_access,
6511         vect_create_data_ref_ptr, vect_transform_strided_load,
6512         vect_record_strided_load_vectors): Likewise.
6513         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
6514         vect_model_load_cost, vectorizable_store, vectorizable_load,
6515         vect_remove_stores, new_stmt_vec_info): Likewise.
6516         * tree-vect-slp.c (vect_build_slp_tree,
6517         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
6518
6519 2011-05-18  Richard Guenther  <rguenther@suse.de>
6520
6521         PR middle-end/48989
6522         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
6523         operand verification.
6524         (verify_gimple_assign_binary): Likewise.
6525         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
6526         to non-1-precision BOOLEAN_TYPEs.
6527
6528 2011-05-18  Tom de Vries  <tom@codesourcery.com>
6529
6530         PR target/45098
6531         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
6532
6533 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
6534
6535         PR tree-optimization/49000
6536         * tree-ssa.c (execute_update_addresses_taken): Call
6537         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
6538         be rewritten and decl has been marked for renaming, reset
6539         the debug stmt.
6540
6541 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
6542
6543         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
6544         enum_opts_set when testing if attributes have set -mfpmath=.
6545
6546 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
6547
6548         * config/mips/mips.c (mips_handle_option): Remove unused variable.
6549
6550 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6551
6552         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
6553         info->entry with 0
6554         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
6555         id.transform_lang_insert_block with NULL.
6556
6557 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
6558
6559         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
6560         (output_fp_compare): Change args 3 and 4 to bool.
6561         (ix86_expand_call): Change arg 6 to bool.
6562         (ix86_attr_length_immediate_default): Change arg 2 to bool.
6563         (ix86_attr_length_vex_default): Change arg 3 to bool.
6564         * config/i386/i386.md: Update all uses.
6565         * config/i386/i386.c: Ditto.
6566         (ix86_flags_dependent): Change return type to bool.
6567
6568 2011-05-17  Richard Guenther  <rguenther@suse.de>
6569
6570         * gimple.c (type_hash_pair_compare): Fix comparison.
6571
6572 2011-05-17  Richard Guenther  <rguenther@suse.de>
6573
6574         * gimple.c (iterative_hash_gimple_type): Simplify singleton
6575         case some more, fix final hash value of the non-singleton case.
6576
6577 2011-05-17  Richard Guenther  <rguenther@suse.de>
6578
6579         PR bootstrap/49013
6580         Revert
6581         2011-05-16  Richard Guenther  <rguenther@suse.de>
6582
6583         * gimple.c (gimple_types_compatible_p_1): Use names of the
6584         type itself, not its main variant.
6585         (iterative_hash_gimple_type): Likewise.
6586
6587 2011-05-17  Richard Guenther  <rguenther@suse.de>
6588
6589         * gimple.c (gimple_register_canonical_type): Use the main-variant
6590         leader for computing the canonical type.
6591
6592 2011-05-17  Nick Clifton  <nickc@redhat.com>
6593
6594         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
6595         moves.
6596
6597         * config/rx/rx.md: Add peephole to remove redundant extensions
6598         after loads.
6599         (bitset_in_memory): Use rx_restricted_mem_operand.
6600         (bitinvert_in_memory): Likewise.
6601         (bitclr_in_memory): Likewise.
6602
6603 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
6604             Nick Clifton  <nickc@redhat.com>
6605
6606         * config/rx/rx.md: Add peepholes to match a register move followed
6607         by a comparison of the moved register.  Replace these with an
6608         addition of zero that does both actions in one instruction.
6609
6610 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
6611
6612         PR target/48986
6613         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
6614         predicate to allow CONST_INT.
6615         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
6616
6617 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
6618
6619         * opts-common.c (opt_enum_arg_to_value): New.
6620         * opts.h (opt_enum_arg_to_value): Declare.
6621         * config/i386/i386.opt (fpmath): Remove.
6622         (mfpmath=): Use Enum, Init and Save.
6623         (fpmath_unit): New Enum and EnumValue entries.
6624         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
6625         name for function fpmath state.
6626         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
6627         * config/i386/i386.c: Include diagnostic.h.
6628         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
6629         (ix86_target_string): Take enum fpmath_unit value instead of string.
6630         (ix86_debug_options): Update call to ix86_target_string.
6631         (ix86_option_override_internal): Don't process fpmath strings here.
6632         (x86_function_specific_save, ix86_function_specific_restore):
6633         Don't handle fpmath state specially.
6634         (ix86_function_specific_print): Pass fpmath state to
6635         ix86_target_string instead of printing in this function.
6636         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
6637         Handle enum attributes.
6638         (IX86_ATTR_ENUM, ix86_opt_enum): New.
6639         (ix86_valid_target_attribute_tree): Update option_strings
6640         handling.  Handle fpmath as enum option.
6641         (ix86_can_inline_p): Update field names for function fpmath state.
6642         (ix86_expand_builtin): Update call to ix86_target_string.
6643         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
6644         (ix86_fpmath): Remove.
6645         * config/i386/t-i386 (i386.o): Update dependencies.
6646
6647 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
6648
6649         PR preprocessor/48677
6650         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
6651         from decoded_options[0], not from itself.
6652
6653 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
6654
6655         * config/i386/constraints.md (z): New constraint.
6656         * config/i386/i386.c (c): New mode attribute.
6657         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
6658         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
6659         constraint for operand 0.
6660         (*call_vzeroupper): Ditto.
6661         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
6662         (*call_rex64_ms_sysv_vzeroupper): Ditto.
6663         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
6664         Use "lzm" constraint for operand 0.
6665         (*call_pop_vzeroupper): Ditto.
6666         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
6667         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
6668         constraint for operand 0.
6669         (*sibcall_vzeroupper): Ditto.
6670         (*sibcall_rex64_ms_sysv): Ditto.
6671         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
6672         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
6673         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
6674         (*sibcall_pop_vzeroupper): Ditto.
6675         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
6676         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
6677         mode iterator.  Use "<c>zm" constraint for operand 1.
6678         (*call_value_vzeroupper): Ditto.
6679         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
6680         for operand 1.
6681         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
6682         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
6683         *call_value_pop_1.  Use "lzm" constraint for operand 1.
6684         (*call_value_pop_vzeroupper): Ditto.
6685         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
6686         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
6687         mode iterator.  Use "Uz" constraint for operand 1.
6688         (*sibcall_value_vzeroupper): Ditto.
6689         (*sibcall_value_rex64_ms_sysv): Ditto.
6690         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
6691         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
6692         constraint for operand 1.
6693         (*sibcall_value_pop_vzeroupper): Ditto.
6694         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
6695         and "z" constraint for operand 2.
6696         (*tls_global_dynamic_32_gnu): Ditto.
6697         (*tls_local_dynamic_base_32_gnu): Ditto.
6698         (*tls_local_dynamic_base_64): Ditto.
6699         (*tls_local_dynamic_32_once): Ditto.
6700         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
6701         Update all callers.
6702         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
6703
6704 2011-05-16  Richard Guenther  <rguenther@suse.de>
6705
6706         * gimple.c (gimple_types_compatible_p_1): Use names of the
6707         type itself, not its main variant.
6708         (iterative_hash_gimple_type): Likewise.
6709
6710 2011-05-16  Richard Guenther  <rguenther@suse.de>
6711
6712         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
6713         always visit pointer target and function result and argument types.
6714
6715 2011-05-16  Jason Merrill  <jason@redhat.com>
6716
6717         PR c++/48999
6718         * tree-inline.c (copy_statement_list): Put back recursion.
6719
6720 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
6721
6722         PR target/27663
6723         PR target/41076
6724         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
6725         * config/avr/avr.md ("*ior<mode>qi.byte0",
6726         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
6727
6728 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
6729
6730         PR target/45099
6731         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
6732         register is needed for a function argument.
6733
6734 2011-05-16  Richard Guenther  <rguenther@suse.de>
6735
6736         * gimple.c (struct type_hash_pair): New type.
6737         (type_hash_pair_compare): New function.
6738         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
6739
6740 2011-05-16  Revital Eres  <revital.eres@linaro.org>
6741
6742         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
6743
6744 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
6745
6746         * config/i386/i386.md (floating point move splitters): Fix
6747         usage of standard_80387_constant_p.
6748         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
6749
6750 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
6751
6752         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
6753
6754 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
6755
6756         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
6757         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
6758         (tree_ssa_lim_finalize): Likewise.
6759
6760 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
6761
6762         * config/i386/constraint.md (Yd, Yx): New register constraints.
6763         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
6764         Yd conditional register constraint.
6765         (*movtf_internal): Use standard_sse_constant_opcode.
6766         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
6767         Yx conditional register constraint.
6768         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
6769         Yd conditional register constraint.  Use standard_sse_constant_p to
6770         check for valid SSE constants and call standard_sse_constant_opcode to
6771         output SSE insn.
6772         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
6773         constants and call standard_sse_constant_opcode to output SSE insn.
6774         * config/i386/i386.c (ix86_option_ovverride_internal): Set
6775         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
6776         optimize_size is set.
6777         (standard_sse_constant_opcode): Output conditional AVX insn templates.
6778
6779 2011-05-14  Tobias Burnus  <burnus@net-b.de>
6780
6781         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
6782
6783 2011-05-13  Martin Jambor  <mjambor@suse.cz>
6784
6785         * ipa-prop.c (ipa_cst_from_jfunc): New function.
6786         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
6787         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
6788         (evaluate_conditions_for_ipcp_clone): Removed.
6789         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
6790         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
6791         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
6792
6793 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6794
6795         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
6796         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
6797         lieu of MAY_HAVE_DEBUG_STMTS.
6798         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
6799         debug statements if !MAY_HAVE_DEBUG_STMTS.
6800
6801 2011-05-13  Martin Thuresson  <martint@google.com>
6802
6803         PR gcov-profile/47793
6804         * libgcov.c (gcov_exit): Support relative profile paths.
6805         * doc/invoke.texi (-fprofile-dir): Update for above change.
6806
6807 2011-05-13  Richard Guenther  <rguenther@suse.de>
6808
6809         * gimple.c (gimple_canonical_types_compatible_p): Do not use
6810         type-pair caching, do not compare hashes.
6811
6812 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
6813
6814         PR middle-end/48965
6815         * tree-cfg.c (edge_to_cases_cleanup): Return true.
6816         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
6817
6818 2011-05-13  Kai Tietz  <ktietz@redhat.com>
6819
6820         * gimplify.c (gimplify_expr): Make sure operand is boolified.
6821         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
6822         compatible type for TRUTH_NOT_EXPR.
6823
6824 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
6825
6826         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
6827         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
6828         can_create_pseudo_p ().
6829
6830 2011-05-13  Richard Guenther  <rguenther@suse.de>
6831
6832         PR lto/48978
6833         * gimple.c (iterative_hash_gimple_type): Revert change in
6834         pointer target and function result and argument hashing.
6835
6836 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
6837
6838         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
6839         (*movxf_internal_nointeger): Ditto.
6840         (*movdf_internal_rex64): Ditto.
6841         (*movdf_internal): Ditto.
6842         (*movdf_internal_nointeger): Ditto.
6843         (*movsf_internal): Ditto.
6844         (sincos splitters): Use can_create_pseudo ().
6845
6846 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
6847
6848         * config/i386/i386-opts.h: New.
6849         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
6850         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
6851         ix86_section_threshold): Remove.
6852         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
6853         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
6854         OPT_mbranch_cost_.
6855         (ix86_option_override_internal): Don't decode strings for options
6856         other than -march=, -mtune= and -mfpmath=.  Don't allow for
6857         __attribute__ uses in remaining diagnostics for options with
6858         string arguments.  Don't check for integer arguments being negative.
6859         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
6860         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
6861         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
6862         ix86_branch_cost, ix86_section_threshold): Remove.
6863         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
6864         HeaderInclude.
6865         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
6866         but not Var.
6867         (masm=): Use Enum and Init.
6868         (asm_dialect): New Enum and EnumValue entries.
6869         (mbranch-cost=): Use UInteger.
6870         (mlarge-data-threshold=): Use UInteger and Init.
6871         (mcmodel=): Use Enum and Init.
6872         (cmodel): New Enum and EnumValue entries.
6873         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
6874         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
6875         mregparm=): Use UInteger.
6876         (mstringop-strategy=): Use Enum and Init.
6877         (stringop_alg): New Enum and EnumValue entries.
6878         (mtls-dialect=): Use Enum and Init.
6879         (tls_dialect): New Enum and EnumValue entries.
6880         (mabi=): Use Enum and Init.
6881         (calling_abi): New Enum and EnumValue entries.
6882         (mveclibabi=): Use Enum and Init.
6883         (ix86_veclibabi): New Enum and EnumValue entries.
6884
6885 2011-05-13  Nick Clifton  <nickc@redhat.com>
6886
6887         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
6888         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
6889
6890 2011-05-13  Kai Tietz  <ktietz@redhat.com>
6891
6892         PR middle-end/48984
6893         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
6894         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
6895         (gimple_boolify): Check for cast for boolean_type_node instead for
6896         BOOLEAN_TYPE.
6897
6898 2011-05-13  Richard Guenther  <rguenther@suse.de>
6899
6900         PR tree-optimization/48172
6901         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
6902         multiplying by number of iterations for equal step.
6903         (vect_create_cond_for_alias_checks): Likewise.
6904
6905 2011-05-13  Andreas Schwab  <schwab@redhat.com>
6906
6907         * configure.ac: Use AS_HELP_STRING throughout.
6908         * configure: Regenerate.
6909
6910 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
6911
6912         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
6913         (ix86_emit_restore_regs_using_mov): Likewise.
6914         (ix86_emit_restore_sse_regs_using_mov): Likewise.
6915
6916 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
6917
6918         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
6919         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
6920         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
6921         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
6922         RTX_OK_FOR_OLO10_P): ...here.
6923         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
6924         SYMBOLIC_CONST.
6925
6926 2011-05-12  Kai Tietz  <ktietz@redhat.com>
6927
6928         * gimplify.c (gimple_boolify): Re-boolify expression
6929         arguments even if expression type is of kind BOOLEAN_TYPE.
6930         (gimplify_boolean_expr): Removed.
6931         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
6932         and XOR. Additional take care that we keep expression's type.
6933         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
6934         of TRUTH_AND|OR|XOR_EXPR.
6935
6936 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
6937
6938         PR tree-optimization/48975
6939         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
6940         on all bbs here and free and clear ifc_bbs at the end.
6941
6942 2011-05-12  Richard Guenther  <rguenther@suse.de>
6943
6944         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
6945         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
6946         until after simple checks.
6947         (gimple_types_compatible_p): Likewise.
6948         (iterative_hash_gimple_type): Always hash pointer targets
6949         and function return and argument types.
6950         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
6951         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
6952         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
6953         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
6954         completely in the simple compare section.
6955         (gimple_register_canonical_type): Query the cache again after
6956         registering.
6957
6958 2011-05-12  Richard Guenther  <rguenther@suse.de>
6959
6960         PR tree-optimization/48172
6961         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
6962         the number of iterations from the segment size calculation.
6963         (vect_create_cond_for_alias_checks): Adjust.
6964
6965 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
6966
6967         PR debug/48967
6968         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
6969         if validate_subreg fails.
6970
6971 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
6972
6973         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
6974         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
6975         early.
6976
6977 2011-05-12  DJ Delorie  <dj@redhat.com>
6978
6979         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
6980         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
6981         created builtin into rx_builtins array.
6982         (rx_builtin_decl): New function.
6983         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
6984
6985 2011-05-12  DJ Delorie  <dj@redhat.com>
6986             Nick Clifton  <nickc@redhat.com>
6987
6988         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
6989         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
6990         (rx_is_legitimate_address): Add pre-decrement and post-increment
6991         addressing in HImode and QImode.  Fix test for out of range
6992         REG+INT addressing.
6993         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
6994         (rx_align_for_label): Test label before extracting its usage count.
6995         (rx_adjust_insn_lengths): Fix selection of insn codes.
6996         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
6997
6998 2011-05-11  Jason Merrill  <jason@redhat.com>
6999
7000         * tree.c (type_hash_canon): Use struct tree_type_non_common.
7001
7002 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7003
7004         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
7005         reindent the subsequent block.
7006
7007 2011-05-11  Satoru Takabayashi  <satorux@google.com>
7008             Paul Pluzhnikov  <ppluzhnikov@google.com>
7009
7010         * doc/install.texi (Configuration): Document --with-linker-hash-style.
7011         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
7012         * config.in: Add LINKER_HASH_STYLE.
7013         * configure.ac: Add --with-linker-hash-style.
7014         * configure: Regenerate.
7015
7016 2011-05-11  Richard Guenther  <rguenther@suse.de>
7017
7018         PR middle-end/48964
7019         * gimple.c (iterative_hash_canonical_type): Fix typo.
7020
7021 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
7022
7023         * config/i386/i386.c (legitimize_tls_address)
7024         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7025         expanders directly for TARGET_GNU2_TLS.  Determine pic and
7026         __tls_get_addr symbol reference here.  Update call to
7027         gen_tls_global_dynamic_{32,64} for added arguments.
7028         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
7029         expanders directly for TARGET_GNU2_TLS.  Determine
7030         __tls_get_addr symbol reference here.  Update call to
7031         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
7032         unique UNSPEC REG_EQUIV to libcall block.
7033         (ix86_tls_get_addr): Declare static.
7034         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
7035         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
7036         Do not determine pic and __tls_get_addr symbol reference here. Do not
7037         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
7038         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
7039         (tls_global_dynamic_64): Add operand 2.  Do not determine
7040         __tls_get_addr symbol reference here.  Do not call
7041         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
7042         (tls_local_dynamic_base64): Ditto for operand 1.
7043
7044 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7045
7046         * function.c (expand_function_start): Initialize stack_check_probe_note
7047         only if the generic stack checking mechanism is used.
7048
7049 2011-05-11  Richard Guenther  <rguenther@suse.de>
7050
7051         PR tree-optimization/15256
7052         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
7053         (A & B) | C, combine (A op CST1) op CST2.
7054         (tree_ssa_forward_propagate_single_use_vars): Only bother to
7055         visit assigns that have uses.
7056
7057 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
7058
7059         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
7060         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
7061         (unpack_ts_type_common_value_fields): ...this.  Update comment.
7062         (unpack_value_fields): Adjust for renaming.
7063         (lto_input_ts_type_tree_pointers): Split into...
7064         (lto_input_ts_type_common_tree_pointer): ...this and...
7065         (lto_input_ts_type_non_common_tree_pointers): ...this.
7066         (lto_input_tree_pointers): Adjust for above split.
7067         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
7068         (pack_ts_type_common_value_fields): ...this.  Update comment.
7069         (lto_output_ts_type_tree_pointers): Split into...
7070         (lto_output_ts_type_common_tree_pointers): ...this and...
7071         (lto_output_ts_type_non_common_tree_pointers): ...this.
7072         (lto_output_tree_pointers): Adjust for above split.
7073         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
7074         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
7075         * stor-layout.c (vector_type_mode): Adjust location of mode field.
7076         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
7077         Define.
7078         (struct tree_type): Split into...
7079         (struct tree_type_common: ...this and...
7080         (struct tree_type_with_lang_specific): ...this and...
7081         (struct tree_type_non_common): ...this.  Adjust accessor macros
7082         accordingly.
7083         (TYPE_VALUES_RAW): Define.
7084         (union tree_node): Update for above changes.
7085         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
7086         TS_TYPE_NON_COMMON.
7087         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
7088         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
7089         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
7090         * treestructu.def (TS_TYPE): Remove.
7091         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
7092         Define.
7093
7094 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
7095
7096         PR debug/48159
7097         * tree-ssa.c (reset_debug_uses): New function.
7098         * tree-flow.h (reset_debug_uses): New prototype.
7099         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
7100         * tree-loop-distribution.c (generate_loops_for_partition): Call
7101         reset_debug_uses on the stmts that will be removed.  Keep around
7102         all debug stmts, don't count them as bits in partition bitmap.
7103         (generate_builtin): Don't count debug stmts or labels as bits in
7104         partition bitmap.
7105
7106 2011-05-11  Richard Guenther  <rguenther@suse.de>
7107
7108         * gimple.c (gimple_type_hash_1): Merge with ...
7109         (gimple_type_hash): ... this.
7110         (gtc_visit): Remove mode parameter and simplify accordingly.
7111         (gimple_types_compatible_p_1): Likewise.
7112         (gimple_types_compatible_p): Likewise.
7113         (iterative_hash_gimple_type): Likewise.
7114         (visit): Likewise.
7115         (gimple_type_eq): Adjust.
7116
7117 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7118
7119         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
7120         enters the branch create an anti edge in the opposite direction
7121         to prevent the creation of reg-moves.
7122         * modulo-sched.c: Adjust comment to reflect the fact we are
7123         scheduling closing branch.
7124         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
7125         (stage_count): New field in struct partial_schedule.
7126         (calculate_stage_count): New function.
7127         (normalize_sched_times): Rename to reset_sched_times and handle
7128         incrementing the sched time of the nodes by a constant value
7129         passed as parameter.
7130         (duplicate_insns_of_cycles): Skip closing branch.
7131         (sms_schedule_by_order): Schedule closing branch.
7132         (ps_insn_find_column): Handle closing branch.
7133         (sms_schedule): Call reset_sched_times and adjust the code to
7134         support scheduling of the closing branch.
7135         (ps_insert_empty_row): Update calls to normalize_sched_times
7136         and rotate_partial_schedule functions.
7137
7138 2011-05-11  Richard Guenther  <rguenther@suse.de>
7139
7140         PR middle-end/48953
7141         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
7142
7143 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
7144
7145         * opts.c (finish_options): Move warning settings from process_options.
7146         * toplev.c (process_options): Move warning settings to finish_options.
7147
7148 2011-05-11  Richard Guenther  <rguenther@suse.de>
7149
7150         PR tree-optimization/18041
7151         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
7152         (simplify_bitwise_binary): ... this.  Handle operand conversions
7153         by applying them to the result instead.
7154         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
7155
7156 2011-05-11  Richard Guenther  <rguenther@suse.de>
7157
7158         * gimple.c (gimple_canonical_types_compatible_p): Split out
7159         from gimple_types_compatible_p and friends.  Do not recurse
7160         to pointed-to types.
7161         (gimple_canonical_type_eq): Use it.
7162         (iterative_hash_canonical_type): Split out from
7163         iterative_hash_gimple_type and friends.  Do not recurse
7164         to pointed-to types.
7165         (gimple_canonical_type_hash): Use it, allocate the hash here.
7166
7167 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7168
7169         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
7170         recognizing doloop.
7171
7172 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7173
7174         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
7175         instead of PREV_INSN.
7176
7177 2011-05-11  Revital Eres  <revital.eres@linaro.org>
7178
7179         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
7180         * loop-doloop.c (doloop_condition_get): Likewise.
7181         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
7182         (doloop_end): New.
7183         * config/arm/arm.md (*addsi3_compare0): Remove "*".
7184
7185 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
7186
7187         * tree.def (CASE_LABEL_EXPR): Add an operand.
7188         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
7189
7190 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7191
7192         * c-decl.c (c_override_global_bindings_to_false): Remove.
7193         (global_bindings_p): Don't check
7194         c_override_global_bindings_to_false.
7195         * c-tree.h (c_override_global_bindings_to_false): Remove.
7196         * c-typeck.c (composite_type): Don't set
7197         c_override_global_bindings_to_false.
7198
7199 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7200
7201         PR target/48857, 48495
7202         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
7203         (VSX_MODE): Ditto.
7204         (VSX_MOVE_MODE): Ditto.
7205         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
7206         VSX vector types.  Add V2DImode.
7207         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
7208         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
7209         (MODES_TIEABLE_P): Ditto.
7210
7211         * config/rs6000/rs6000.c (rs6000_emit_move): Use
7212         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
7213         VSX_VECTOR_MODE.
7214         (init_cumulative_args): Ditto.
7215         (rs6000_function_arg_boundary): Ditto.
7216         (rs6000_function_arg_advance_1): Ditto.
7217         (rs6000_function_arg): Ditto.
7218         (rs6000_function_ok_for_sibcall): Ditto.
7219         (emit_frame_save): Ditto.
7220         (rs6000_function_value): Ditto.
7221         (rs6000_libcall_value): Ditto.
7222
7223 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7224
7225         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
7226         i386/darwin-lib.h to $libgcc_tm_file.
7227         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
7228
7229 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7230
7231         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
7232
7233 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7234
7235         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
7236         * config/rs6000/rs6000-tables.opt: New file (generated).
7237         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
7238         rs6000/rs6000-tables.opt to extra_options.
7239         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
7240         * config/rs6000/rs6000.c (rs6000_select): Remove.
7241         (processor_target_table): Move contents to rs6000-cpus.def.
7242         (darwin_rs6000_override_options): Check
7243         global_options_set.x_rs6000_cpu_index instead of
7244         rs6000_select[1].string.
7245         (rs6000_option_override_internal): Likewise.
7246         (rs6000_handle_option): Don't assert that global structures are in
7247         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
7248         (rs6000_default_cpu): New variable.
7249         (rs6000_file_start): Set it instead of local default_cpu.  Check
7250         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
7251         global_options_set.x_rs6000_tune_index instead of rs6000_select.
7252         (rs6000_darwin_file_start): Check rs6000_default_cpu and
7253         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
7254         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
7255         rs6000_select): Remove.
7256         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
7257         Remove.
7258         (mcpu=, mtune=): Use Var, Init, Enum and Save.
7259         * config/rs6000/t-rs6000
7260         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
7261         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7262         global_options_set.x_rs6000_cpu_index instead of
7263         rs6000_select[1].string.
7264         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
7265         global_options_set.x_rs6000_cpu_index instead of
7266         rs6000_select[1].string.
7267
7268 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
7269
7270         * config.gcc (libgcc_tm_file): Define instead of including files
7271         from ../../libgcc/config/ in tm_file.
7272         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
7273         * configure: Regenerate.
7274         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
7275         libgcc_tm.h, cs-libgcc_tm.h): New.
7276         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
7277         (clean): Remove libgcc_tm.h.
7278         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
7279         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
7280         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
7281
7282 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
7283
7284         PR target/48896
7285         * config/avr/avr.c (avr_ret_register): Return unsigned int
7286         instead of int.
7287         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
7288         it to avr_libcall_value.
7289         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
7290         expand_expr.
7291         (avr_expand_binop_builtin): Ditto.
7292         (avr_expand_unop_builtin): Ditto.
7293
7294 2011-05-10  DJ Delorie  <dj@redhat.com>
7295
7296         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
7297         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
7298         * config/rx/rx.c (rx_align_for_label): Add label and
7299         uses_threshold parameters.  Do not align when the label is not
7300         used enough.
7301         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
7302
7303 2011-05-10  Richard Guenther  <rguenther@suse.de>
7304
7305         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
7306         a series of conversions and apply foldings similar to what
7307         fold-const does.
7308         (tree_ssa_forward_propagate_single_use_vars): Call it.
7309
7310 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR tree-optimization/48611
7313         PR tree-optimization/48794
7314         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
7315         referenced from RESX or EH_DISPATCH arguments.
7316
7317         PR debug/48928
7318         * dfp.c (decimal_to_decnumber): Handle conversion from
7319         dconst{1,2,m1,half}.
7320
7321 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7322
7323         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
7324         for !flag_prefer_avx128.
7325         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
7326
7327 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7328
7329         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
7330         (fold_ternary_loc): Use expr_location_or.
7331
7332 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
7333
7334         PR debug/48853
7335         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
7336         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
7337         Pmode and mem_mode is not VOIDmode.
7338
7339 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
7340
7341         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
7342         TYPE_QUAL_RESTRICT): Convert to enum.
7343
7344 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7345
7346         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
7347         (const_pow2_1_to_8_operand): Ditto.
7348         (const_pow2_1_to_128_operand): Ditto.
7349         (const_pow2_1_to_32768_operand): Ditto.
7350         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
7351         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
7352         in insn constraint to check integer value of operand 3.
7353         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
7354
7355         (PINSR_MODE): New mode iterator.
7356         (sse2p4_1): New mode attribute.
7357         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
7358         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
7359         iterator.  Use const_int_operand instead of
7360         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
7361         exact_log2 in insn constraint to check integer value of operand 3.
7362
7363 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7364
7365         * config/i386/sse.md (blendbits): Remove mode attribute.
7366         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7367         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7368         Check integer value of operand 3 in insn constraint.
7369
7370 2011-05-09  Richard Guenther  <rguenther@suse.de>
7371
7372         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
7373         for diagnostics.
7374         (lto_symtab_merge): Likewise.  Do not register types here.
7375         (lto_symtab_merge_decls_2): Likewise.
7376         (lto_symtab_merge_decls_1): Likewise.
7377         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
7378         * gimple.c (enum gtc_mode): Declare.
7379         (gimple_types_compatible_p): Make static.
7380
7381 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7382
7383         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
7384         temporary register to match Pmode.
7385
7386 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7387
7388         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
7389         and *vec_concatv4si_1_avx.
7390
7391 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7392
7393         PR rtl-optimization/48927
7394         * ira-conflicts.c (commutative_constraint_p): Use
7395         recog_data.alternative_enabled_p to disable alternatives where
7396         "enabled" attribute is false.
7397         (get_dup_num): Ditto.
7398         * ira-lives.c (single_reg_class): Ditto.
7399         (ira_implicitly_set_insn_hard_regs): Ditto.
7400
7401 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
7402
7403         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
7404         (dataflow_set_preserve_mem_locs): Likewise.
7405
7406 2011-05-09  Philipp Thomas  <pth@suse.de>
7407
7408         * config/mep/mep.c (mep_validate_vliw): Syntax description
7409         should not be translated.
7410
7411 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
7412
7413         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
7414         * config/mips/mips-tables.opt: New file (generated).
7415         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
7416         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
7417         MIPS_ARCH_OPTION_NATIVE): Define.
7418         * config/mips/mips.c (mips_cpu_info_table): Move contents to
7419         mips-cpus.def.
7420         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
7421         mips_parse_cpu): Remove.
7422         (mips_cpu_info_from_opt, mips_default_arch): New.
7423         (mips_handle_option): Don't assert that global structures are in
7424         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
7425         (mips_option_override): Use new variables and functions to set
7426         state of these options.  Use strcmp to check for individual CPU names.
7427         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
7428         definition.
7429         * config/mips/mips.opt (march=): Use ToLower and Enum.
7430         (mips): Use ToLower, Enum and Var.
7431         (mtune=): Use ToLower and Enum.
7432         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
7433
7434 2011-05-08  Jan Hubicka  <jh@suse.cz>
7435
7436         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
7437         Arrange type pairs to be UID ordered.
7438         (gimple_lookup_type_leader): Make inline.
7439
7440 2011-05-09  Nick Clifton  <nickc@redhat.com>
7441
7442         PR target/48899
7443         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
7444         PROCESSOR_DEFAULT.
7445
7446         PR target/48897
7447         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
7448         variable 's'.
7449
7450 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
7451
7452         * combine.c (simplify_comparison): Abstract out parts into...
7453         (simplify_compare_const): ... new function.
7454         (try_combine): Generalize parallel arithmetic/compare combining
7455         to call simplify_compare_const() and CANONICALIZE_COMPARE().
7456
7457 2011-05-08  Jan Hubicka  <jh@suse.cz>
7458
7459         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
7460         (cgraph_create_virtual_clone): Call hooks once virtual clone
7461         is finished.
7462         * cgraph.h (cgraph_clone_node): Update prototype.
7463         * ipa-cp.c (ipcp_estimate_growth): Use
7464         estimate_ipcp_clone_size_and_time.
7465         * ipa-inline-transform.c (clone_inlined_nodes): Update.
7466         * lto-cgraph.c (input_node): Update.
7467         * ipa-inline.c (recursive_inlining): Update.
7468         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
7469         (evaluate_conditions_for_known_args): Break out from ...
7470         (evaluate_conditions_for_edge): ... here.
7471         (evaluate_conditions_for_ipcp_clone): New function.
7472         (inline_node_duplication_hook): Update clone summary based
7473         on parameter map.
7474         (estimate_callee_size_and_time): Rename to ...
7475         (estimate_node_size_and_time): take NODE instead of EDGE;
7476         take POSSIBLE_TRUTHS as argument.
7477         (estimate_callee_size_and_time): Update.
7478         (estimate_ipcp_clone_size_and_time): New function.
7479         (do_estimate_edge_time): Update.
7480
7481 2011-05-08  Richard Guenther  <rguenther@suse.de>
7482
7483         PR middle-end/48908
7484         PR middle-end/48905
7485         * expmed.c (expand_shift_1): Compute adjusted constant shift
7486         amount manually.
7487
7488 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7489
7490         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
7491
7492 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
7493
7494         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
7495
7496 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
7497
7498         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
7499
7500 2011-05-07  Jan Hubicka  <jh@suse.cz>
7501
7502         * ipa-inline-transform.c (inline_call): Account when program size
7503         decreases.
7504         * ipa-inline.c (relative_time_benefit): New function.
7505         (edge_badness): Reorganize to be power 2 based; fix thinko when
7506         computing badness for negative growth; update comments to match
7507         reality; better dumps.
7508
7509 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
7510
7511         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
7512         type to bool and adjust comment.
7513         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
7514         (fold_mathfn_compare): Remove calls to global_bindings_p.
7515         (fold_inf_compare): Likewise.
7516         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
7517         * c-tree.h (global_bindings_p): Adjust prototype.
7518         * c-decl.c (global_bindings_p): Return bool and simplify.
7519
7520 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
7521
7522         PR tree-optimization/48837
7523         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
7524         when accumulator transformation is performed.
7525
7526 2011-05-06  Jan Hubicka  <jh@suse.cz>
7527
7528         * i386.h (ix86_tune_indices): Add
7529         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
7530         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
7531         * i386.c (initial_ix86_tune_features): Add
7532         X86_SOFTARE_PREFETCHING_BENEFICIAL.
7533         (software_prefetching_beneficial_p): Remove predicate.
7534         (ix86_option_override_internal): Use new macro.
7535
7536 2011-05-06  Jan Hubicka  <jh@suse.cz>
7537
7538         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
7539
7540 2011-05-06  Jan Hubicka  <jh@suse.cz>
7541
7542         * cgraph.c (cgraph_add_thunk): Create real function node instead
7543         of alias node; finalize it and mark needed/reachale; arrange visibility
7544         to be right and add it into the corresponding same comdat group list.
7545         (dump_cgraph_node): Dump thunks.
7546         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
7547         cgraph_function_with_gimple_body_p,
7548         cgraph_first_function_with_gimple_body,
7549         cgraph_next_function_with_gimple_body): New functions.
7550         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
7551         New macros.
7552         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
7553         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7554         * cgraphunit.c (cgraph_finalize_function): Only look into possible
7555         devirtualization when optimizing.
7556         (verify_cgraph_node): Verify thunks.
7557         (cgraph_analyze_function): Analyze thunks.
7558         (cgraph_mark_functions_to_output): Output thunks only in combination
7559         with function they are assigned to.
7560         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
7561         alias into normal node.
7562         (assemble_thunks): New functoin.
7563         (cgraph_expand_function): Use it.
7564         * lto-cgraph.c (lto_output_node): Stream thunks.
7565         (input_overwrite_node): Stream in thunks.
7566         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
7567         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
7568         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
7569         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
7570         (inline_analyze_function): Do not care about thunk jump functions.
7571         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
7572         * ipa-prop.c (ipa_prop_write_jump_functions): Use
7573         cgraph_function_with_gimple_body_p.
7574         * passes.c (do_per_function_toporder): Use
7575         cgraph_function_with_gimple_body_p.
7576         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
7577         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
7578         (function_called_by_processed_nodes_p): Likewise.
7579
7580 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
7581
7582         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
7583         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
7584         entries.
7585         (mabi=): Replace with separate entries for mabi=altivec,
7586         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
7587         mabi=ieeelongdouble and mabi=ibmlongdouble.
7588         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
7589         check for -mabi=spe without SPE ABI support here.
7590         (rs6000_handle_option): Replace OPT_mabi_ handling with
7591         OPT_mabi_altivec and OPT_mabi_spe handling.
7592
7593 2011-05-06  Cary Coutant  <ccoutant@google.com>
7594
7595         * dwarf2out.c (contains_subprogram_definition): New function.
7596         (should_move_die_to_comdat): Call it.
7597
7598 2011-05-06  Jeff Law  <law@redhat.com>
7599
7600         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
7601         remove_ctrl_stmt_and_useless_edges.
7602         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
7603         (fixup_template_block, thread_single_edge): Likewise.
7604         (mark_threaded_blocks): Use THREAD_TARGET.
7605
7606 2011-05-06  Alan Modra  <amodra@gmail.com>
7607
7608         PR target/48900
7609         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
7610         const0_rtx as the arg to the dummy __tls_get_addr libcall.
7611
7612 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
7613
7614         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
7615         constraint modifier to "r".
7616
7617 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
7618
7619         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
7620         fall through for OPT_mcmodel_.
7621
7622 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7623
7624         * config/s390/s390.c (s390_asm_trampoline_template): Comment
7625         instruction sizes.
7626         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
7627
7628 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7629
7630         PR target/47930
7631         * config/arm/arm.opt (marm): Document it.
7632         (mthumb): Reject negative variant.
7633
7634 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
7635
7636         PR target/48898
7637         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
7638         Fix typo in "ccvt" variable name.
7639
7640 2011-05-06  Tristan Gingold  <gingold@adacore.com>
7641
7642         PR target/48895
7643         * config/vms/vms-ar.c (main): Remove cwd variable.
7644
7645 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
7646
7647         PR debug/48902
7648         * var-tracking.c (prepare_call_arguments): Move else before #endif.
7649
7650 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
7651
7652         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
7653         * gimplify.c (gimplify_switch_expr): Likewise.
7654         * omp-low.c (expand_omp_sections): Likewise.
7655         * tree-eh.c (lower_try_finally_switch): Likewise.
7656         (lower_eh_dispatch): Likewise.
7657         * tree.h (build_case_label): Declare.
7658         * tree.c (build_case_label): Define.
7659
7660 2011-05-05  Jason Merrill  <jason@redhat.com>
7661
7662         PR c++/40975
7663         * tree-inline.c (copy_tree_r): Use copy_statement_list.
7664         (copy_statement_list): Don't recurse.
7665         * stor-layout.c (copy_self_referential_tree_r): Don't allow
7666         STATEMENT_LIST.
7667
7668 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7669
7670         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
7671         through from -mfpu= handling.
7672         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
7673
7674 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
7675
7676         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
7677         POST_MODIFY.
7678
7679 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
7680
7681         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
7682         for 11.31.
7683         (hppa[12]*-*-hpux11*): Ditto.
7684         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
7685         * config/ia64/hpux-unix2003.h: New.
7686         * config/pa/pa-hpux1131.opt: New.
7687         * config/pa/pa-hpux1131.h: New.
7688         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
7689         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
7690         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
7691
7692 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
7693
7694         PR debug/48853
7695         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
7696         instead of mode as 3rd argument to recursive call.
7697         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
7698         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
7699         VOIDmode.
7700         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
7701         don't give up if mode is Pmode and mem_mode is not VOIDmode.
7702         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
7703         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
7704
7705 2011-05-05  Julian Brown  <julian@codesourcery.com>
7706
7707         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
7708         parenthesis in D-register case.
7709
7710 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7711
7712         * opt-functions.awk (var_type_struct): Handle Enum options.
7713         * optc-gen.awk: Don't check range of variables of character type.
7714         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
7715         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
7716         rs6000_sdata_name, rs6000_explicit_options): Remove.
7717         (rs6000_option_override_internal): Check for -malign-power here.
7718         Use global_options_set instead of rs6000_explicit_options.
7719         (rs6000_parse_fpu_option): Remove.
7720         (rs6000_handle_option): Access variables via opts and opts_set
7721         pointers.  Use error_at and warning_at.  Add fall-through
7722         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
7723         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
7724         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
7725         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
7726         here.  Don't use rs6000_parse_fpu_option.
7727         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
7728         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
7729         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
7730         (mrecip=): Use Var.
7731         (mspe): Use Var and Save.
7732         (mtraceback=): Use Enum and Var.
7733         (rs6000_traceback_type): New Enum and EnumValue entries.
7734         (mfloat-gprs=): Use Enum, Var and Save.
7735         (rs6000_float_gprs): New Enum and EnumValue entries.
7736         (mlong-double-): use Var and Save.
7737         (msched-costly-dep=, minsert-sched-nops=): Use Var.
7738         (malign-): Use Enum and Var.
7739         (rs6000_alignment_flags): New Enum and EnumValue entries.
7740         (mfpu=): Use Enum.
7741         (fpu_type_t): New Enum and EnumValue entries.
7742         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
7743         global_options_set instead of rs6000_explicit_options.
7744         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
7745         global_options_set instead of rs6000_explicit_options.
7746         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
7747         global_options_set instead of rs6000_explicit_options.
7748         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
7749         global_options_set instead of rs6000_explicit_options.
7750         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
7751         global_options_set instead of rs6000_explicit_options.
7752         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
7753         global_options_set instead of rs6000_explicit_options.
7754         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
7755         definition.
7756         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
7757         global_options_set instead of rs6000_explicit_options.
7758         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
7759         (rs6000_cmodel): New Enum and EnumValue entries.
7760         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
7761         global_options_set instead of rs6000_explicit_options.
7762         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
7763         (mtls-size=): Use Enum and Var.
7764         (rs6000_tls_size): New Enum and EnumValue entries.
7765
7766 2011-05-05  Michael Matz  <matz@suse.de>
7767
7768         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
7769         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
7770         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
7771         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
7772         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
7773         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
7774         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
7775         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
7776         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
7777         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
7778         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
7779         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
7780         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
7781         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
7782         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
7783         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
7784
7785 2011-05-05  Richard Guenther  <rguenther@suse.de>
7786
7787         * expmed.c (expand_variable_shift): Rename to ...
7788         (expand_shift_1): ... this.  Take an expanded shift amount.
7789         For rotates recurse directly not building trees for the shift amount.
7790         (expand_variable_shift): Wrap around expand_shift_1.
7791         (expand_shift): Adjust.
7792
7793 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
7794
7795         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
7796
7797 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
7798
7799         * tree.h (get_pending_sizes): Remove prototype.
7800         (put_pending_size): Likewise.
7801         (put_pending_sizes): Likewise.
7802         * stor-layout.c (pending_sizes): Delete.
7803         (get_pending_sizes): Likewise.
7804         (put_pending_size): Likewise.
7805         (put_pending_sizes): Likewise.
7806         (variable_size): Do not call put_pending_size and tidy up.
7807         * function.h (struct function): Remove dont_save_pending_sizes_p.
7808         * lto-streamer-in.c (input_function): Do not stream it.
7809         * lto-streamer-out.c (output_function): Likewise.
7810         * tree-inline.c (initialize_cfun): Do not copy it.
7811         * c-decl.c (store_parm_decls): Do not set it.
7812         * omp-low.c (create_task_copyfn): Likewise.
7813         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7814
7815 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
7816
7817         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
7818         conditions.
7819         (*movdf_internal): Ditto.
7820         (*movdf_internal_nointeger): Ditto.
7821         (*movsf_internal): Ditto.
7822
7823 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
7824
7825         * c-decl.c (finish_decl): Don't call get_pending_sizes.
7826         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
7827         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
7828         (c_variable_size): Remove.
7829         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
7830         call put_pending_sizes.
7831         (get_parm_info): Add parameter expr.  Use it to set
7832         arg_info->pending_sizes.
7833         (store_parm_decls): Use arg_info->pending_sizes instead or calling
7834         get_pending_sizes.
7835         * c-parser.c (c_parser_parms_declarator): Update call to
7836         c_parser_parms_list_declarator.
7837         (c_parser_parms_list_declarator): Take parameter expr.  Update
7838         call to push_parm_decl.  Update recursive call.  Don't call
7839         get_pending_sizes.  Update calls to get_parm_info.
7840         (c_parser_objc_method_definition): Update calls to
7841         c_parser_objc_method_decl and objc_start_method_definition.
7842         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
7843         (c_parser_objc_method_decl): Add parameter expr.  Update call to
7844         grokparm.
7845         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
7846         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
7847         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
7848
7849 2011-05-05  Michael Hope  <michael.hope@linaro.org>
7850
7851         PR pch/45979
7852         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
7853         __ARM_EABI__ hosts.
7854
7855 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7856
7857         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
7858         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
7859         (spu_output_mi_thunk): New function.
7860
7861 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7862
7863         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
7864         targetm.asm_out.print_operand.
7865         * config/sol2.c: Include target.h.
7866
7867 2011-05-04  Jan Hubicka  <jh@suse.cz>
7868
7869         * ipa-inline.c (reset_edge_caches): New function.
7870         (update_caller_keys): Add check_inlinablity_for; do not
7871         reset edge caches; remove now unnecesary loop.
7872         (update_callee_keys): Add comments; reset node_growth_cache of callee.
7873         (update_all_callee_keys): Likewise.
7874         (inline_small_functions): Sanity check cache; update code
7875         recomputing it.
7876
7877 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
7878
7879         PR rtl-optimization/47612
7880         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
7881         as the last insn of the sequence to be moved.
7882
7883 2011-05-04  Tobias Burnus  <burnus@net-b.de>
7884
7885         PR fortran/48864
7886         * doc/invoke.texi (Ofast): Document that it
7887         enables Fortran's -fno-protect-parens.
7888
7889 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
7890
7891         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
7892
7893 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
7894
7895         * stor-layout.c (variable_size): Do not issue errors.
7896
7897 2011-05-04  Richard Guenther  <rguenther@suse.de>
7898
7899         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
7900         for array-ref indices.
7901         (tree_coverage_counter_addr): Likewise.
7902         (build_fn_info_type): Use size_int for index types.
7903         (build_gcov_info): Likewise.
7904
7905 2011-05-04  Richard Guenther  <rguenther@suse.de>
7906
7907         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
7908         to build_int_cst.
7909         * c-typeck.c (really_start_incremental_init): Use bitsize_int
7910         for constructor indices.
7911         (push_init_level): Likewise.
7912
7913 2011-05-04  Richard Guenther  <rguenther@suse.de>
7914
7915         * explow.c (promote_mode): Move variable declarations before code.
7916
7917 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
7918
7919         * tree.h (build_function_type_array): Declare.
7920         (build_varargs_function_type_array): Declare.
7921         (build_function_type_vec, build_varargs_function_type_vec): Define.
7922         * tree.c (build_function_type_array_1): New function.
7923         (build_function_type_array): New function.
7924         (build_varargs_function_type_array): New function.
7925
7926 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
7927
7928         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
7929         before setting STMT_VINFO_TYPE.
7930
7931 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7932
7933         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
7934         instead of spu_pass_by_reference.
7935
7936 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7937
7938         * calls.c (emit_library_call_value_1): Invoke
7939         promote_function_mode hook on libcall arguments.
7940         * explow.c (promote_function_mode, promote_mode): Handle TYPE
7941         argument being NULL.
7942         * targhooks.c (default_promote_function_mode): Lisewise.
7943         * config/s390/s390.c (s390_promote_function_mode): Likewise.
7944         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
7945
7946         * doc/tm.texi: Document that TYPE argument might be NULL.
7947
7948 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
7949
7950         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
7951
7952 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
7953
7954         From Bernd Schmidt
7955         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
7956
7957 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7958
7959         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
7960         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
7961         Move ...
7962         * mips-tfile.c: ... here.
7963         Don't include coretypes.h, tm.h, filenames.h.
7964         (saber_stop): Remove definition and all calls.
7965         [__SABER__]: Remove.
7966         (__LINE__): Remove default.
7967         (Size_t, Ptrdiff_t): Remove definitions.
7968         Replace by size_t, ptrdiff_t.
7969         [!MIPS_DEBUGGING_INFO]: Remove.
7970         (SHASH_SIZE, THASH_SIZE): Remove defaults.
7971         (progname): Add const.
7972         (STATIC): Remove.
7973         Replace all uses by static.
7974         (ALIGN_SYMTABLE_OFFSET): Remove default.
7975         * mips-tdump.c: Don't include coretypes.h, tm.h.
7976         Remove !MIPS_IS_STAB guard.
7977         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
7978         $(TM_H), filenames.h dependencies.
7979         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
7980
7981 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
7982
7983         From Jie Zhang
7984         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
7985         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
7986
7987 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
7988
7989         From Bernd Schmidt
7990         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
7991         account and save/restore RETS.
7992         (PROFILE_BEFORE_PROLOGUE): Define.
7993         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
7994         the push insn to use predecrement.
7995
7996 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
7997
7998         From Jie Zhang
7999         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
8000
8001 2011-05-04  Nick Clifton  <nickc@redhat.com>
8002
8003         * config/mn10300/mn10300.c: Include cfgloop.h.
8004         (DUMP): New macro.
8005         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
8006         Lcc or a FLcc insn into the instruction stream.
8007         (mn10300_block_contains_call): New function.  Returns true if the
8008         given basic block contains a CALL insn.
8009         (mn10300_loop_contains_call_insn): New function.  Returns true if
8010         the given loop contains a CALL insn.
8011         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
8012         to use the SETLB and Lcc or FLcc insns.
8013         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
8014         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
8015         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
8016         disable the SETLB optimization.
8017         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
8018         __SETLB__ or __NO_SETLB__.
8019         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
8020         (movsf_internal): Handle MDR register.
8021         (cmpsi): Make visible.
8022         (setlb): New pattern.
8023         (Lcc): New pattern.
8024         (FLcc): New pattern.
8025
8026 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
8027
8028         PR target/48860
8029         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
8030         for reg<->xmm moves.
8031         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
8032         (vec_concatv2di_rex64_sse): Ditto.
8033         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
8034         (*vec_extractv2di_1_rex64): Ditto.
8035
8036         Revert:
8037         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8038
8039         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8040         reg<->xmm moves.
8041         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
8042
8043 2011-05-04  Richard Guenther  <rguenther@suse.de>
8044
8045         * tree.h (int_const_binop): Remove notrunc argument.
8046         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
8047         create integer constants that are properly truncated.
8048         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
8049         (const_binop): Remove zero notrunc argument to int_const_binop.
8050         (size_binop_loc): Likewise.
8051         (fold_div_compare): Likewise.
8052         (maybe_canonicalize_comparison_1): Likewise.
8053         (fold_comparison): Likewise.
8054         (fold_binary_loc): Likewise.
8055         (multiple_of_p): Likewise.
8056         * expr.c (store_constructor): Likewise.
8057         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8058         (maybe_fold_stmt_addition): Likewise.
8059         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
8060         * stor-layout.c (layout_type): Likewise.
8061         * tree-data-ref.c (tree_fold_divides_p): Likewise.
8062         * tree-sra.c (build_ref_for_offset): Likewise.
8063         (build_user_friendly_ref_for_offset): Likewise.
8064         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
8065         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
8066         * tree-ssa-loop-niter.c (inverse): Likewise.
8067         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
8068         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
8069         * tree-switch-conversion.c (check_range): Likewise.
8070         (build_constructors): Likewise.
8071         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
8072         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
8073         (extract_range_from_assert): Likewise.
8074         (vrp_int_const_binop): Likewise.
8075         (extract_range_from_binary_expr): Likewise.
8076         (extract_range_from_unary_expr): Likewise.
8077         (check_array_ref): Likewise.
8078         (find_case_label_range): Likewise.
8079         (simplify_div_or_mod_using_ranges): Likewise.
8080         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
8081         comparing case labels for merging.
8082
8083 2011-05-03  Mark Wielaard  <mjw@redhat.com>
8084
8085         * dwarf2out.c (debug_str_hash_forced): Removed.
8086         (gen_label_for_indirect_string): Removed.
8087         (get_debug_string_label): Removed.
8088         (AT_string_form): Generate label directly.
8089         (output_indirect_string): Test indirect_string_node for
8090         DW_FORM_strp instead of checking label and refcount.
8091         (prune_indirect_string): Removed.
8092         (prune_unused_types): Don't check debug_str_hash_forced or
8093         call prune_indirect_string.
8094
8095 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8096
8097         PR other/48093
8098         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
8099
8100 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
8101
8102         PR debug/47994
8103         PR debug/47919
8104         * combine.c (try_combine): Skip debug insns at m_split tests.
8105
8106 2011-04-26  Mark Wielaard  <mjw@redhat.com>
8107
8108         PR42288
8109         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
8110         when info_section_emitted.
8111
8112 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
8113
8114         * config/mips/mips-opts.h: New.
8115         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
8116         to mips-opts.h.
8117         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
8118         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8119         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
8120         via opts pointer.
8121         * config/mips/mips.h (enum mips_code_readable_setting): Move to
8122         mips-opts.h.
8123         (mips_abi, mips_code_readable): Don't declare.
8124         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
8125         (mabi=): Use Enum and Var.
8126         (mips_abi): New Enum and EnumValue entries.
8127         (mcode-readable=): Use Enum and Var.
8128         (mips_code_readable_setting): New Enum and EnumValue entries.
8129         (mr10k-cache-barrier=): Use Enum and Var.
8130         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
8131
8132 2011-05-03  Jan Hubicka  <jh@suse.cz>
8133
8134         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
8135         replace hash by pointer map.
8136         (cgraph_node_set_element_def, cgraph_node_set_element,
8137         const_cgraph_node_set_element, varpool_node_set_element_def,
8138         varpool_node_set_element, const_varpool_node_set_element): Remove.
8139         (free_cgraph_node_set, free_varpool_node_set): New function.
8140         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
8141         * tree-emutls.c: Free varpool node set.
8142         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
8143         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8144         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
8145         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8146         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
8147         Move here from ipa.c; implement using pointer_map
8148         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
8149         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
8150         debug_cgraph_node_set, varpool_node_set_new,
8151         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
8152         dump_varpool_node_set, debug_varpool_node_set):
8153         Move to ipa-uitls.c.
8154         * passes.c (ipa_write_summaries): Update.
8155
8156 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8157
8158         From Mike Frysinger:
8159         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
8160         bf542/bf544/bf547/bf548/bf549.
8161
8162 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8163
8164         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
8165
8166 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8167
8168         From Bernd Schmidt:
8169         * config/bfin/bfin.md (MOVCC): New mode_macro.
8170         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
8171         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
8172         comments from generated assembly.
8173
8174 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8175
8176         From Bernd Schmidt
8177         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
8178         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
8179         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
8180         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
8181         * config/bfin/lib1funcs.asm (___muldi3): New function.
8182
8183 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8184
8185         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
8186         build_function_type_list instead of build_function_type.
8187         Rearrange initialization of `args' to do so.
8188
8189 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8190
8191         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
8192         instead of build_function_type.
8193
8194 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8195
8196         * config/rs6000/rs6000.c (spe_init_builtins): Call
8197         build_function_type_list instead of build_function_type.
8198         (paired_init_builtins, altivec_init_builtins): Likewise.
8199         (builtin_function_type): Likewise.
8200
8201 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8202
8203         * config/sh/sh.c (sh_media_init_builtins): Call
8204         build_function_type_list instead of build_function_type.
8205
8206 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8207
8208         * config/sparc/sparc.c (sparc_file_end): Call
8209         build_function_type_list instead of build_function_type.
8210
8211 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8212
8213         * config/alpha/alpha.c (alpha_init_builtins): Call
8214         build_function_type_list instead of build_function_type.
8215
8216 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8217
8218         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
8219         build_function_type_list instead of build_function_type.
8220
8221 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8222
8223         * config/iq2000/i2000.c (iq2000_init_builtins): Call
8224         build_function_type_list instead of build_function_type.
8225         Delete `endlink' variable.
8226
8227 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8228
8229         * config/avr/avr.c (avr_init_builtins): Call
8230         build_function_type_list instead of build_function_type.
8231
8232 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8233
8234         * config/picochip/picochip.c (picochip_init_builtins): Call
8235         build_function_type_list instead of build_function_type.
8236         Delete `endlink' variable.
8237
8238 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
8239
8240         * config/bfin/bfin.c (bfin_init_builtins): Call
8241         build_function_type_list instead of build_function_type.
8242
8243 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8244
8245         From Bernd Schmidt
8246         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
8247         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
8248
8249 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8250
8251         From Jie Zhang:
8252         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
8253         libbffastfp overrides libgcc when -mfast-fp.
8254
8255 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8256
8257         Originally from Bernd Schmidt
8258         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
8259         * config/bfin/bfin.c (override_options): Test it and error if
8260         TARGET_FDPIC.
8261
8262 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
8263
8264         Originally From Bernd Schmidt
8265         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
8266         FD-PIC.
8267
8268 2011-05-03  Jeff Law  <law@redhat.com>
8269
8270         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
8271         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
8272         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
8273         than accessing AUX field directly.  Free the AUX field before
8274         clearing it.
8275         (thread_block, thread_through_loop_header): Likewise.
8276         (thread_single_edge, mark_threaded_blocks): Likewise.
8277         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
8278         (register_jump_thread): Do not attempt to thread to a NULL edge.
8279
8280 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8281
8282         * function.c (init_function_start): Call decide_function_section.
8283         * varasm.c (decide_function_section): New function.
8284         (assemble_start_function): When not using
8285         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
8286         or first_function_block_is_cold.
8287         * rtl.h (decide_function_section): Declare.
8288
8289 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
8290             Jakub Jelinek  <jakub@redhat.com>
8291
8292         PR target/48774
8293         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
8294         only succeed if req_mode is the same as set_mode.
8295
8296 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
8297
8298         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
8299         * genemit.c (gen_exp): Handle RETURN.
8300         * emit-rtl.c (verify_rtx_sharing): Likewise.
8301         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
8302         * rtl.c (copy_rtx): RETURN is shared.
8303         * rtl.h (enum global_rtl_index): Add GR_RETURN.
8304         (ret_rtx): New.
8305         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
8306         * config/s390/s390.c (s390_emit_epilogue): Likewise.
8307         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
8308         * config/cris/cris.c (cris_expand_return): Likewise.
8309         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
8310         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
8311         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
8312         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
8313         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
8314         Likewise.
8315         * config/v850/v850.c (expand_epilogue): Likewise.
8316         * config/bfin/bfin.c (bfin_expand_call): Likewise.
8317         * config/arm/arm.md (epilogue): Likewise.
8318         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
8319         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
8320         variable to ret_reg.
8321
8322 2011-05-03  Richard Guenther  <rguenther@suse.de>
8323
8324         PR lto/48846
8325         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
8326         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
8327         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
8328
8329 2011-05-03  Richard Guenther  <rguenther@suse.de>
8330
8331         * c-decl.c (grokdeclarator): Instead of looking at
8332         TREE_OVERFLOW check if the constant fits in the index type.
8333
8334 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8335
8336         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
8337         (vec_store_lanes<mode><mode>): Likewise.
8338
8339 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8340
8341         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
8342         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
8343         convert_optab_index values.
8344         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
8345         * genopinit.c (optabs): Initialize the new optabs.
8346         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
8347         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
8348         (expand_STORE_LANES): New functions.
8349         * tree.h (build_array_type_nelts): Declare.
8350         * tree.c (build_array_type_nelts): New function.
8351         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
8352         (vect_model_load_cost): Likewise.
8353         (vect_store_lanes_supported, vect_load_lanes_supported)
8354         (vect_record_strided_load_vectors): Declare.
8355         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
8356         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
8357         (vect_transform_strided_load): Split out statement recording into...
8358         (vect_record_strided_load_vectors): ...this new function.
8359         * tree-vect-stmts.c (create_vector_array, read_vector_array)
8360         (write_vector_array, create_array_ref): New functions.
8361         (vect_model_store_cost): Add store_lanes_p argument.
8362         (vect_model_load_cost): Add load_lanes_p argument.
8363         (vectorizable_store): Try to use store-lanes functions for
8364         interleaved stores.
8365         (vectorizable_load): Likewise load-lanes and loads.
8366         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
8367         to vect_model_store_cost.
8368         (vect_build_slp_tree): Likewise vect_model_load_cost.
8369
8370 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
8371
8372         * hooks.h (hook_bool_mode_uhwi_false): Declare.
8373         * hooks.c (hook_bool_mode_uhwi_false): New function.
8374         * target.def (array_mode_supported_p): New hook.
8375         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
8376         * doc/tm.texi: Regenerate.
8377         * stor-layout.c (mode_for_array): New function.
8378         (layout_type): Use it.
8379         * config/arm/arm.c (arm_array_mode_supported_p): New function.
8380         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
8381
8382 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
8383
8384         PR target/48723
8385         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
8386         for -fstack-check if the size to allocate is negative.
8387
8388 2011-05-02  Lawrence Crowl  <crowl@google.com>
8389
8390         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
8391         (timevar_cond_start): New for starting a timer only when it is not
8392         already running.
8393         (timevar_cond_stop): New for stopping a timer when it was not already
8394         running.
8395
8396         * timevar.c (timevar_stop): Enable start/stop timers to start again.
8397         (timevar_cond_start): New as above.
8398         (timevar_cond_stop): New as above.
8399
8400         * timevar.def: Add start/stop timers for compiler phases,
8401         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
8402         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
8403         and TV_PHASE_FINALIZE.
8404         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
8405         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
8406         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
8407         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
8408         Make unused TV_OVERLOAD into a start/stop timer.
8409
8410         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
8411         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
8412         to indicate that they are start/stop timers.
8413
8414         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
8415         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
8416         Move initialization to do_compile.
8417         (do_compile): Add initialization from above.
8418         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
8419
8420         * c-decl.c (c_write_global_declarations): Add start/stop of
8421         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
8422
8423         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
8424         or TV_PARSE_INLINE, as appropriate.
8425         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
8426         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
8427
8428 2011-05-02  Jason Merrill  <jason@redhat.com>
8429
8430         PR c++/40975
8431         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
8432
8433 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
8434
8435         PR c/35445
8436         * c-decl.c (finish_decl): Only create a composite if the types are
8437         compatible.
8438
8439 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8440
8441         * config/fr30/fr30-protos.h (Mmode): Don't define.
8442         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
8443         definition where used.
8444         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
8445         define.  Expand definitions where used.
8446         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
8447         Expand definitions where used.
8448         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
8449         rx_function_arg, rx_function_arg_advance,
8450         rx_function_arg_boundary): Expand definitions of those macros.
8451         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
8452         definition where used.
8453
8454 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8455
8456         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
8457         reg<->xmm moves.
8458         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
8459         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
8460         with *movv2sf_internal_rex64_avx.
8461         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
8462         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
8463         Use %v prefix in insn mnemonic to handle TARGET_AVX.
8464         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
8465         "vex" in "prefix" attribute calculation.
8466         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
8467
8468 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
8469
8470         PR target/47951
8471         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
8472         inputs match the output.
8473
8474 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
8475
8476         PR target/47955
8477         * config/m68k/m68k.c (m68k_expand_prologue): Set
8478         current_function_static_stack_size.
8479
8480 2011-05-02   Jan Hubicka  <jh@suse.cz>
8481
8482         * lto-streamer.c (lto_streamer_cache_insert_1,
8483         lto_streamer_cache_lookup, lto_streamer_cache_create,
8484         lto_streamer_cache_delete): Use pointer map instead of hashtable.
8485         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
8486
8487 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
8488
8489         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
8490         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
8491         config/m68k/t-opts: New files.
8492         * config/m68k/m68k-tables.opt: New file (generated).
8493         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
8494         extra_options and m68k/t-opts to tmake_file.
8495         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
8496         (all_isas): Initialize using m68k-isas.def.
8497         (all_microarchs): Initialize using m68k-microarchs.def.
8498         (m68k_find_selection): Remove.
8499         (m68k_handle_option): Don't assert that global structures are in
8500         use.  Use error_at.  Access variables via opts pointer.  Don't
8501         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
8502         directly for -m68020-40 and -m68020-60.
8503         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
8504         m68k_tune_entry here.
8505         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
8506         to m68k-opts.h.
8507         (m68k_library_id_string): Remove declaration.
8508         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
8509         (m68k_library_id_string): New Variable.
8510         (march=, mcpu=, mtune=): Use Enum and Var.
8511
8512 2011-05-02  Richard Guenther  <rguenther@suse.de>
8513
8514         * varasm.c (output_constructor_regular_field): Compute zero-based
8515         index with double-ints.  Make sure to ICE instead of producing
8516         wrong code.
8517         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
8518         in asserts.  Properly use a signed type.
8519
8520 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
8521
8522         * config/i386/sse.md (V): New mode iterator.
8523         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
8524         TARGET_SSE2.
8525         (V_256): Rename from AVX256MODE.
8526         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
8527         condition to all users.
8528         (VF1): Ditto.
8529         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
8530         condition to all users.
8531         (VF_128): Make V4SF mode unconditional.
8532         (VF_256): Rename from AVX256MODEF2P.
8533         (VI4F_128): Rename from SSEMODE4S.
8534         (VI8F_128): Rename from SSEMODE2D.
8535         (VI4F_256): Rename from AVX256MODE8P.
8536         (VI8F_256): Rename from AVX256MODE4P.
8537         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
8538         (ssescalarmodesuffix): Remove SF and DF modes.
8539         (SSEMODE124): Remove.
8540         (SSEMODE1248): Ditto.
8541         (SSEMODEF2P): Ditto.
8542         (AVXMODEF2P): Ditto.
8543         (AVXMODEFDP): Ditto.
8544         (AVXMODEFSP): Ditto.
8545         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
8546         unconditional.
8547         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
8548         unconditional.
8549         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
8550         xop_pcmov_<mode>256.  Use V mode iterator.
8551
8552         Adjust RTX patterns globally for renamed mode attributes.
8553
8554 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8555
8556         * haifa-sched.c (sched_emit_insn): Emit insn before first
8557         non-scheduled insn.  Inform back-end about new insn.  Add
8558         new insn to scheduled_insns list.
8559
8560 2011-05-02  Richard Guenther  <rguenther@suse.de>
8561
8562         PR tree-optimization/48822
8563         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
8564         (process_scc): Indicate which iteration we start.
8565
8566 2011-05-02  Jan Hubicka  <jh@suse.cz>
8567
8568         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
8569         (lto_section_overrun): New.
8570         * lto-section-out.c (append_block): Rename to ...
8571         (lto_append_block): ... this one; export.
8572         (lto_output_1_stream): Move lto lto-streamer.h
8573         (lto_output_data_stream): Update.
8574         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
8575         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
8576         functions.
8577
8578 2011-05-02  Richard Guenther  <rguenther@suse.de>
8579
8580         * tree.c (tree_code_counts): New global array.
8581         (record_node_allocation_statistics): Count individual tree codes.
8582         (dump_tree_statistics): Dump individual code stats.
8583
8584 2011-05-01  Jan Hubicka  <jh@suse.cz>
8585
8586         * ipa-inline.c (caller_growth_limits): Fix thinko when
8587         looking for largest stack frame.
8588         * ipa-inline.h (dump_inline_summary): Declare.
8589         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
8590         on stack usage.
8591         (dump_inline_summary): Export.
8592         (debug_inline_summary): Declare as DEBUG_FUNCTION.
8593
8594 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
8595
8596         * reginfo.c (memory_move_cost): Change rclass argument type form
8597         'enum reg_class' to reg_class_t.
8598         * reload.h (memory_move_cost): Update prototype.
8599         * postreload.c reload_cse_simplify_set): Change type dclass var to
8600         reg_class_t.
8601         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
8602         Update prototype.
8603         (ira_allocate_and_set_costs): Change aclass argument type form
8604         'enum reg_class' to reg_class_t.
8605         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
8606         Change aclass argument type to reg_class_t.
8607         (update_conflict_hard_reg_costs): Change type aclass and pref vars
8608         to reg_class_t.
8609         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
8610         memory_move_cost call.
8611
8612         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
8613         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
8614         Change type tmp var to reg_class_t.
8615
8616 2011-04-30  Jan Hubicka  <jh@suse.cz>
8617
8618         * ipa-inline.c (can_inline_edge_p): Disregard limits when
8619         inlining into function with flatten attribute.
8620         (want_inline_small_function_p): Be more realistic about inlining
8621         cold calls where callee size grows.
8622
8623 2011-04-30  Jan Hubicka  <jh@suse.cz>
8624
8625         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
8626         flags.
8627
8628 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
8629
8630         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
8631         PRINT_OPERAND_PUNCT_VALID_P): Remove.
8632         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
8633         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
8634         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8635         (print_operand): Rename to...
8636         (sparc_print_operand): ...this. Make static. Adjust
8637         sparc_print_operand function call.
8638         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
8639         functions.
8640
8641 2011-04-30  Jan Hubicka  <jh@suse.cz>
8642
8643         PR middle-end/48752
8644         * ipa-inline.c (early_inliner): Disable when doing late
8645         addition of function.
8646
8647 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
8648
8649         * dwarf2out.c (get_address_mode): New inline.
8650         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
8651         if not dwarf_strict emit
8652         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
8653         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
8654         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
8655         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
8656         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
8657         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
8658         mem_loc_descriptor callers.
8659         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8660         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
8661         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
8662         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
8663         (base_types): New variable.
8664         (get_base_type_offset, calc_base_type_die_sizes,
8665         base_type_for_mode, mark_base_types, base_type_cmp,
8666         move_marked_base_types): New functions.
8667         (calc_die_sizes): Assert that die_offset is 0 or equal to
8668         next_die_offset.
8669         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
8670         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
8671         callers.  If not dwarf_strict, call mem_loc_descriptor even for
8672         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
8673         (gen_subprogram_die): Don't give up on call site parameters
8674         with non-integral or large integral modes.  Adjust
8675         mem_loc_descriptor callers.
8676         (prune_unused_types): Call prune_unused_types_mark on base_types
8677         vector entries.
8678         (resolve_addr): Call mark_base_types.
8679         (dwarf2out_finish): Call move_marked_base_types.
8680
8681         PR tree-optimization/48809
8682         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
8683         type.
8684         (gen_inbound_check): Don't compute index_expr - range_min in utype
8685         again, instead reuse SSA_NAME initialized in build_arrays.
8686         Remove two useless gsi_for_stmt calls.
8687
8688 2011-04-29  Jeff Law  <law@redhat.com>
8689
8690         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
8691
8692 2011-04-29  Martin Jambor  <mjambor@suse.cz>
8693
8694         * cgraph.h (cgraph_postorder): Remove declaration.
8695         * ipa-utils.h (ipa_free_postorder_info): Declare.
8696         (ipa_reverse_postorder): Likewise.
8697         * cgraphunit.c: Include ipa-utils.h.
8698         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
8699         * ipa-inline.c: Include ipa-utils.h.
8700         (ipa_inline): Update call to ipa_reverse_postorder.
8701         * ipa-pure-const.c (propagate_pure_const): Update call to
8702         ipa_reduced_postorder and ipa_print_order.  Call
8703         ipa_free_postorder_info to clean up.
8704         (propagate_nothrow): Likewise.
8705         * ipa-reference.c (propagate): Removed a useless call to
8706         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
8707         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
8708         * ipa.c: Include ipa-utils.h.
8709         (ipa_profile): Update call to ipa_reverse_postorder.
8710         (cgraph_postorder): Moved to...
8711         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
8712         (ipa_utils_print_order): Renamed to ipa_print_order.
8713         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
8714         comments.
8715         (ipa_free_postorder_info): New function.
8716         * passes.c: Include ipa-utils.h.
8717         (do_per_function_toporder): Update call to ipa_reverse_postorder.
8718         (ipa_write_summaries): Likewise.
8719         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
8720         (cgraphunit.o): Likewise.
8721         (ipa.o): Likewise.
8722         (ipa-inline.o): Likewise.
8723
8724 2011-04-29  Jan Hubicka  <jh@suse.cz>
8725
8726         * gcc.dg/tree-ssa/inline-10.c: New testcase.
8727         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
8728         * ipa-inline.h (clause_t): Turn into unsigned int.
8729         * ipa-inline-analysis.c (add_clause): Do more simplification.
8730         (and_predicates): Shortcut more cases.
8731         (predicates_equal_p): Move forward; check that clauses are properly
8732         ordered.
8733         (or_predicates): Shortcut more cases.
8734         (edge_execution_predicate): Rewrite as...
8735         (set_cond_stmt_execution_predicate): ... this function; handle
8736         __builtin_constant_p.
8737         (set_switch_stmt_execution_predicate): New .
8738         (compute_bb_predicates): New.
8739         (will_be_nonconstant_predicate): Update TODO.
8740         (estimate_function_body_sizes): Use compute_bb_predicates
8741         and free them later, always try to estimate if stmt is constant.
8742         (estimate_time_after_inlining, estimate_size_after_inlining):
8743         Gracefully handle optimized out edges.
8744         (read_predicate): Fix off by one error.
8745
8746 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
8747
8748         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
8749
8750 2011-04-27  Xinliang David Li  <davidxl@google.com>
8751
8752         * tree-profile.c (init_ic_make_global_vars): Set
8753         tls attribute on ic vars.
8754         * coverage.c (coverage_end_function): Initialize
8755         function_list with zero.
8756
8757 2011-04-29  Richard Guenther  <rguenther@suse.de>
8758
8759         * builtins.c (fold_builtin_classify_type): Use integer_type_node
8760         for the type of the result.
8761         (fold_builtin_isascii): Likewise.
8762         (fold_builtin_toascii): Use integer_type_node where appropriate.
8763         (fold_builtin_logb): Likewise.
8764         (fold_builtin_frexp): Likewise.
8765         (fold_builtin_strstr): Likewise.
8766         (fold_builtin_strpbrk): Likewise.
8767         (fold_builtin_fputs): Likewise.
8768         (fold_builtin_sprintf): Likewise.
8769         (fold_builtin_snprintf): Likewise.
8770         (fold_builtin_printf): Likewise.
8771         (do_mpfr_remquo): Use a proper type for the assigned constant.
8772         (do_mpfr_lgamma_r): Likewise.
8773         * dwarf2out.c (resolve_one_addr): Use size_int.
8774         * except.c (init_eh): Likewise.
8775         (assign_filter_values): Use integer_type_node for filter values.
8776         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
8777         indices.
8778         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
8779         for EH region numbers.
8780         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
8781         for the shift amount.
8782
8783 2011-04-29  Richard Guenther  <rguenther@suse.de>
8784
8785         * expr.h (expand_shift): Rename to ...
8786         (expand_variable_shift): ... this.
8787         (expand_shift): Take a constant shift amount.
8788         * expmed.c (expand_shift): Rename to ...
8789         (expand_variable_shift): ... this.
8790         (expand_shift): New wrapper around expand_variable_shift.
8791         * expr.c (convert_move, emit_group_load_1, emit_group_store,
8792         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
8793         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
8794         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
8795         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
8796         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
8797         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
8798         emit_store_flag_1, emit_store_flag): Likewise.
8799         * builtins.c (expand_builtin_signbit): Likewise.
8800         * calls.c (load_register_parameters): Likewise.
8801         * function.c (assign_parm_setup_block): Likewise.
8802         * lower-subreg.c (resolve_shift_zext): Likewise.
8803         * optabs.c (widen_bswap, expand_abs_nojump,
8804         expand_one_cmpl_abs_nojump, expand_float): Likewise.
8805         * spu/spu.c (spu_expand_extv): Likewise.
8806         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8807
8808 2011-04-29  Richard Guenther  <rguenther@suse.de>
8809
8810         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
8811         for the remapped region number.
8812         * predict.c (build_predict_expr): Use integer_type_node for the
8813         predict kind.
8814         * fold-const.c (fold_binary_loc): Use integer_type_node for
8815         the shift amount.  Use a proper type for the PLUS_EXPR operand.
8816
8817 2011-04-29  Michael Matz  <matz@suse.de>
8818
8819         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
8820         other trees that just builtins.
8821         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
8822
8823 2011-04-29  Richard Guenther  <rguenther@suse.de>
8824
8825         * tree-nested.c (get_trampoline_type): Use size_int.
8826         (get_nl_goto_field): Likewise.
8827         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
8828         for all indexes.
8829         (lower_eh_constructs_2): Likewise.
8830         (lower_resx): Likewise.
8831         (lower_eh_dispatch): Likewise.
8832         * tree-mudflap.c (mf_build_string): Use size_int.
8833         (mudflap_register_call): Use integer_type_node for the flag.
8834         (mudflap_enqueue_constant): Use size_int.
8835         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
8836         instead of rebuilding it.
8837
8838 2011-04-29  Richard Guenther  <rguenther@suse.de>
8839
8840         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
8841         Handle OBJ_TYPE_REF.
8842         (find_func_aliases_for_call): Use it more consistently.
8843
8844 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
8845
8846         * haifa-sched.c (last_nondebug_scheduled_insn): New.
8847         (rank_for_schedule): Use it.
8848         (schedule_block): Set it.
8849
8850 2011-04-28  David Li  <davidxl@google.com>
8851
8852         * tree.c (crc32_string): Use crc32_byte.
8853         (crc32_byte): New function.
8854         * tree.h (crc32_byte): New function.
8855         * gcov.c (read_graph_file): Handle new cfg_cksum.
8856         (read_count_file): Ditto.
8857         * profile.c (instrument_values): Ditto.
8858         (get_exec_counts): Ditto.
8859         (read_profile_edge_counts): Ditto.
8860         (compute_branch_probabilities): Ditto.
8861         (compute_value_histograms): Ditto.
8862         (branch_prob): Ditto.
8863         (end_branch_prob): Ditto.
8864         * coverage.c (read_counts_file): Ditto.
8865         (get_coverage_counts): Ditto.
8866         (tree_coverage_counter_addr): Ditto.
8867         (coverage_checksum_string): Ditto.
8868         (coverage_begin_output): Ditto.
8869         (coverage_end_function): Ditto.
8870         (build_fn_info_type): Ditto.
8871         (build_fn_info_value): Ditto.
8872         * libgcov.c (gcov_exit): Ditto.
8873         * gcov-dump.c (tag_function): Ditto.
8874         (compute_checksum): Remove.
8875
8876 2011-04-29  Alan Modra  <amodra@gmail.com>
8877
8878         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8879         unspec plus offset.  Tidy macho code.
8880
8881 2011-04-29  Martin Jambor  <mjambor@suse.cz>
8882
8883         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
8884         node instead of a decl.  Update all callers.
8885         * cgraph.h: Update declaration.
8886
8887 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
8888
8889         PR tree-optimization/48765
8890         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
8891         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
8892         to indicate if loop aware SLP is being used.  Scan the statements
8893         and update the vectorization factor according to the type of
8894         vectorization before statement analysis.
8895         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
8896         pass it to vect_analyze_loop_operations.
8897         (vectorizable_reduction): Set number of copies to 1 in case of pure
8898         SLP statement.
8899         * tree-vect-stmts.c (vectorizable_conversion,
8900         vectorizable_assignment, vectorizable_shift,
8901         vectorizable_operation, vectorizable_type_demotion,
8902         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
8903         Likewise.
8904         (vectorizable_condition): Move the check that it is not SLP
8905         vectorization before the number of copies check.
8906         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
8907         to vectorize the loop using SLP.
8908
8909 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
8910
8911         PR middle-end/48597
8912         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
8913         inline asm.
8914
8915 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
8916
8917         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
8918         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
8919         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
8920         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
8921         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
8922         linux*.h headers.
8923         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
8924         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
8925         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
8926         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
8927         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
8928         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
8929         REG_NAME.
8930         * config/i386/linux.h (REG_NAME): Don't define.
8931         * config/i386/linux64.h (REG_NAME): Don't define.
8932         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
8933         Undefine before defining.
8934
8935 2011-04-28  Jan Hubicka  <jh@suse.cz>
8936
8937         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
8938         nonconstant_names array.
8939         (estimate_function_body_sizes): Build nonconstant_names array; handle
8940         BUILT_IN_CONSTANT_P.
8941
8942 2011-04-28  Richard Guenther  <rguenther@suse.de>
8943
8944         PR bootstrap/48804
8945         Revert
8946         2011-04-28  Richard Guenther  <rguenther@suse.de>
8947
8948         * tree-ssa-structalias.c (solve_constraints): Build succ graph
8949         as late as possible.
8950
8951 2011-04-28  Richard Guenther  <rguenther@suse.de>
8952
8953         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
8954         (debug_constraint): Do it here.
8955         (dump_constraints): And here.
8956         (rewrite_constraints): And here.
8957         (dump_constraint_edge): Remove.
8958         (dump_constraint_graph): Rewrite to produce DOT output.
8959         (solve_constraints): Build succ graph as late as possible.
8960         Dump constraint graphs before and after solving.
8961
8962 2011-04-28  Richard Guenther  <rguenther@suse.de>
8963
8964         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8965         New function split out from ...
8966         (find_func_aliases): ... here.  Call it.
8967         (find_func_aliases_for_call): Likewise.
8968
8969 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8970
8971         * internal-fn.h (internal_fn_name_array): Declare.
8972         (internal_fn_flags_array): Likewise.
8973
8974 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
8975
8976         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
8977         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
8978         Move from sse.md.
8979         (ssemodefsuffix): Remove.
8980         (ssevecmodesuffix): New mode attribute.
8981         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
8982         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
8983         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
8984         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
8985         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
8986         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
8987         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
8988         ssemodesuffix mode attribute.
8989         (float splitters): Use ssevecmodesuffix mode attribute.
8990         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
8991         (sseinsmode): Rename from avxvecmode.
8992         (avxsizesuffix): Rename from avxmodesuffix.
8993         (sseintvecmode): Rename from avxpermvecmode.
8994         (ssedoublevecmode): Rename from ssedoublesizemode.
8995         (ssehalfvecmode): Rename from avxhalfvecmode.
8996         (ssescalarmode): Rename from avxscalarmode.
8997         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
8998         templates for ssemodesuffix mode attribute.
8999         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
9000         mode attribute.
9001
9002         Adjust RTX patterns globally for renamed mode attributes.
9003
9004 2011-04-27  Jan Hubcika  <jh@suse.cz>
9005
9006         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
9007         * ipa-inline-analysis.c: Include alloc-pool.h.
9008         (edge_predicate_pool): New.
9009         (trye_predicate_p): New function
9010         (false_predicate_p): New function.
9011         (add_clause): Sanity check that false clauses are "optimized";
9012         never add clauses to predicate that is already known to be false.
9013         (and_predicate): Use flase_predicate_p.
9014         (evaulate_predicate): Rename to ...
9015         (evaluate_predicate): ... this one; update all callers; assert
9016         that false is not listed among possible truths.
9017         (dump_predicate): Use true_predicate_p.
9018         (account_size_time): Use false_predicate_p.
9019         (evaulate_conditions_for_edge): Rename to ...
9020         (evaluate_conditions_for_edge) ... this one.
9021         (edge_set_predicate): New function.
9022         (inline_edge_duplication_hook): Duplicate edge predicates.
9023         (inline_edge_removal_hook): Free edge predicates.
9024         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
9025         (dump_inline_summary): Update.
9026         (estimate_function_body_sizes): Set edge predicates.
9027         (estimate_calls_size_and_time): Handle predicates.
9028         (estimate_callee_size_and_time): Update.
9029         (remap_predicate): Add toplev_predicate; update comment.
9030         (remap_edge_predicates): New function.
9031         (inline_merge_summary): Compute toplev predicate; update.
9032         (read_predicate): New function.
9033         (read_inline_edge_summary): Use it.
9034         (inline_read_section): Likewise.
9035         (write_predicate): New function.
9036         (write_inline_edge_summary): Use it.
9037         (inline_write_summary): Likewise.
9038         (inline_free_summary): Free alloc pool and edge summary vec.
9039
9040 2011-04-27  Richard Guenther  <rguenther@suse.de>
9041
9042         * tree-ssa-structalias.c (changed_count): Remove.
9043         (changed): Use a bitmap.
9044         (unify_nodes): Adjust.
9045         (do_sd_constraint): Likewise.
9046         (do_ds_constraint): Likewise.
9047         (do_complex_constraint): Likewise.
9048         (solve_graph): Likewise.
9049
9050 2011-04-27  Jan Hubicka  <jh@suse.cz>
9051
9052         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
9053
9054 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
9055
9056         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
9057         (avx_vperm2f128_*_operand): Ditto.
9058         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
9059         Use avx_vpermilp_parallel in insn condition.
9060         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
9061         Use avx_vperm2f128_parallel in insn condition.
9062
9063 2011-04-27  Richard Guenther  <rguenther@suse.de>
9064
9065         * Makefile.in (tree-ssa-structalias.o): Remove
9066         gt-tree-ssa-structalias.h dependency.
9067         (GTFILES): Remove tree-ssa-structalias.c.
9068         * tree.c (allocate_decl_uid): New function.
9069         (make_node_stat): Use it.
9070         (copy_node_stat): Likewise.
9071         * tree.h (allocate_decl_uid): Declare.
9072         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
9073         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
9074         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
9075         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
9076         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
9077         (struct heapvar_map): Likewise.
9078         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
9079         heapvar_insert): Likewise.
9080         (make_heapvar_for): Rename to ...
9081         (make_heapvar): ... this.  Simplify.
9082         (fake_var_decl_obstack): New global var.
9083         (build_fake_var_decl): New function.
9084         (make_constraint_from_heapvar): Adjust.
9085         (handle_lhs_call): Likewise.
9086         (create_function_info_for): Likewise.
9087         (intra_create_variable_infos): Likewise.
9088         (init_alias_vars): Allocate fake_var_decl_obstack.
9089         (init_alias_heapvars, delete_alias_heapvars): Remove.
9090         (compute_points_to_sets): Do not call init_alias_heapvars.
9091         (ipa_pta_execute): Likewise.
9092         (delete_points_to_sets): Free fake_var_decl_obstack.
9093
9094 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9095
9096         * config/spu/divmovti4.c (union qword_UTItype): New data type.
9097         (si_from_UTItype, si_to_UTItype): New functions.
9098         (__udivmodti4): Use them to implement type-punning.
9099         * config/spu/multi3.c (union qword_TItype): New data type.
9100         (si_from_TItype, si_to_TItype): New functions.
9101         (__multi3): Use them to implement type-punning.
9102
9103 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9104
9105         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
9106
9107 2011-04-27  Jan Hubicka  <jh@suse.cz>
9108
9109         * ipa-prop.c (function_insertion_hook_holder): New holder.
9110         (ipa_add_new_function): New function.
9111         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
9112         Register/deregister holder.
9113
9114 2011-04-27  Richard Guenther  <rguenther@suse.de>
9115
9116         PR tree-optimization/48772
9117         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9118
9119 2011-04-27  Richard Guenther  <rguenther@suse.de>
9120
9121         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
9122         TARGET_MEM_REF handling.
9123
9124 2011-04-27  Nick Clifton  <nickc@redhat.com>
9125
9126         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
9127         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
9128         (REG_CLASS_NAMES): Likewise.
9129         (REG_CLASS_CONTENTS): Likewise.
9130         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9131         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
9132         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
9133         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
9134         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
9135         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
9136         duplicate register classes.
9137         (frv_class_likely_spilled_p): Likewise.
9138         (frv_register_move_cost): Likewise.
9139
9140         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
9141         end of the regno_reg_class array.
9142
9143 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
9144
9145         PR c/48742
9146         * c-typeck.c (build_binary_op): Don't wrap arguments if
9147         int_operands is true.
9148
9149 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
9150
9151         PR target/48767
9152         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
9153         targetm.calls.must_pass_in_stack for void type.
9154
9155 2011-04-26  Jan Hubicka  <jh@suse.cz>
9156
9157         * cgraphbuild.c (build_cgraph_edges): Update call
9158         of cgraph_create_edge and cgraph_create_indirect_edge.
9159         * cgraph.c (cgraph_create_edge_including_clones,
9160         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
9161         cgraph_update_edges_for_call_stmt_node): Do not take nest
9162         argument; do not initialize call_stmt_size/time.
9163         (dump_cgraph_node): Do not dump nest.
9164         (cgraph_clone_edge): Do not take loop_nest argument;
9165         do not propagate it; do not clone call_stmt_size/time.
9166         (cgraph_clone_node): Likewise.
9167         (cgraph_create_virtual_clone): Update.
9168         * cgraph.h (struct cgraph_edge): Remove
9169         call_stmt_size/call_stmt_time/loop_nest.
9170         (cgraph_create_edge, cgraph_create_indirect_edge,
9171         cgraph_create_edge_including_clones, cgraph_clone_node): Update
9172         prototype.
9173         * tree-emutls.c (gen_emutls_addr): Update.
9174         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
9175         loop_nest; handle indirect calls, too.
9176         (clone_inlined_nodes): Do not care about updating inline summaries.
9177         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
9178         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
9179         stream call_stmt_size/call_stmt_time/loop_nest.
9180         * ipa-inline.c (edge_badness): Update.
9181         (ipa_inline): dump summaries after inlining.
9182         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
9183         New.
9184         (inline_edge_summary): New function.
9185         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
9186         (inline_edge_removal_hook): Handle edge summaries.
9187         (inline_edge_duplication_hook): New hook.
9188         (inline_summary_alloc): Alloc hooks.
9189         (initialize_growth_caches): Do not register removal hooks.
9190         (free_growth_caches); Do not free removal hook.
9191         (dump_inline_edge_summary): New function.
9192         (dump_inline_summary): Use it.
9193         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
9194         (inline_update_callee_summaries): New function.
9195         (inline_merge_summary): Use it.
9196         (do_estimate_edge_time, do_estimate_edge_growth): Update.
9197         (read_inline_edge_summary): New function.
9198         (inline_read_section): Use it.
9199         (write_inline_edge_summary): New function.
9200         (inline_write_summary): Use it.
9201         (inline_free_summary): Free edge new holders.
9202         * tree-inline.c (copy_bb): Update.
9203
9204 2011-04-26  Jason Merrill  <jason@redhat.com>
9205
9206         * tree-eh.c (lower_try_finally_switch): Create the label along with
9207         the CASE_LABEL_EXPR.
9208
9209 2011-04-26  David S. Miller  <davem@davemloft.net>
9210             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9211
9212         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
9213         * configure: Regenerate.
9214
9215 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9216
9217         PR target/48258
9218         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
9219         reduction.
9220         (VEC_reduc): New code iterator and splitters for vector reduction.
9221         (VEC_reduc_name): Ditto.
9222         (VEC_reduc_rtx): Ditto.
9223         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
9224         (reduc_<VEC_reduc_name>_v4sf): Ditto.
9225
9226         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
9227         support for extracting SF on VSX.
9228
9229         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
9230         generating xscvspdp.
9231         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
9232         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
9233         double add, minimum, maximum vector reduction.
9234         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
9235         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
9236         optimize double vector reduction.
9237         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
9238
9239 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
9240
9241         * config/fr30/fr30.h (inhibit_libc): Don't define.
9242         * config/m32r/m32r-protos.h: Correct comment.
9243         * config/v850/v850.h (GHS_default_section_names,
9244         GHS_current_section_names): Use tree, not union tree_node *.
9245
9246 2011-04-26  Xinliang David Li  <davidxl@google.com>
9247
9248         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
9249         * c-family/c-opts.c (c_common_handle_option): Set
9250         warn_maybe_uninitialized.
9251         * opts.c (common_handle_option): Ditto.
9252         * common.opt:  New option.
9253         * tree-ssa.c (warn_uninit): Add one more parameter.
9254         (warn_uninitialized_var): Pass warning code.
9255         * tree-flow.h: Interface change.
9256
9257 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9258
9259         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9260         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
9261         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
9262
9263 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9264
9265         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
9266         * config/mips/mips.opt (mmips-tfile): Remove.
9267
9268         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
9269         mips-tdump reference to ...
9270         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
9271         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
9272         reference by Tru64 UNIX.
9273
9274 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
9275
9276         PR debug/48768
9277         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
9278         is error_mark_node, set value to NULL.
9279
9280         PR tree-optimization/48734
9281         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
9282         if return value from maybe_fold_*_comparsions isn't something
9283         the code is prepared to handle.
9284
9285 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
9286
9287         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
9288         mode check.
9289         (ext_QIreg_nomode_operands): Remove.
9290         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
9291         (*andsi_1): Ditto.
9292         (*andhi_1): Ditto.
9293
9294 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
9295
9296         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
9297
9298 2011-04-26  Richard Guenther  <rguenther@suse.de>
9299
9300         * c-typeck.c (build_unary_op): Do not expand array-refs via
9301         pointer arithmetic.  Only adjust qualifiers for function types.
9302
9303 2011-04-26  Richard Guenther  <rguenther@suse.de>
9304
9305         PR middle-end/48694
9306         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
9307         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
9308         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
9309         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
9310
9311 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
9312
9313         * doc/extend.texi: Document __underlying_type.
9314
9315 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
9316
9317         * config/rs6000/titan.md (automata_option "progress"): Remove.
9318
9319 2011-04-25  Jeff Law  <law@redhat.com>
9320
9321         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
9322
9323 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
9324
9325         * system.h (ENUM_BITFIELD): Remove.
9326
9327 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
9328             Eric Botcazou  <ebotcazou@adacore.com>
9329
9330         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
9331         for STORE_FLAG_VALUE==-1 case.
9332
9333 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
9334
9335         PR target/43804
9336         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
9337         LEGITIMATE_PIC_OPERAND_P.
9338
9339 2011-04-24  Jan Hubicka  <jh@suse.cz>
9340
9341         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
9342         WPA hack.
9343         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
9344         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
9345         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
9346         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
9347         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
9348         Sanity check predicate length.
9349         (remap_predicate): Likewise; sanity check jump functions.
9350         (inline_read_section, inline_write_summary): Sanity check
9351         predicate length.
9352
9353 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
9354
9355         PR other/48748
9356         * doc/extend.texi (Type Traits): Document __is_standard_layout,
9357         __is_literal_type, and __is_trivial; update throughout about
9358         possibly cv-qualified void types.
9359
9360 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
9361
9362         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
9363         testsuite and make it version agnostic.
9364
9365 2011-04-22  Jan Hubicka  <jh@suse.cz>
9366
9367         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
9368
9369 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR c/48685
9372         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
9373         to VOID_TYPE even around MODIFY_EXPR.
9374
9375 2011-04-22  Mike Stump  <mikestump@comcast.net>
9376
9377         * gensupport.c (read_md_rtx): Fix typo in comment.
9378         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
9379         comment.
9380
9381 2011-04-22  Jan Hubicka  <jh@suse.cz>
9382
9383         * gengtype.c (open_base_files): Add ipa-inline.h include.
9384         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
9385         ipa-prop.c; update all uses.
9386         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
9387         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
9388         merge summary of inlined function into former caller.
9389         * ipa-inline.c (max_benefit): Remove.
9390         (edge_badness): Compensate for removal of benefits.
9391         (update_caller_keys): Use
9392         reset_node_growth_cache/reset_edge_growth_cache.
9393         (update_callee_keys): Likewise.
9394         (update_all_callee_keys): Likewise.
9395         (inline_small_functions): Do not collect max_benefit; do not reset
9396         estimated_growth; call free_growth_caches and initialize_growth_caches.
9397         * ipa-inline.h (struct condition, type clause_t, struct predicate,
9398         struct size_time_entry): New structures.
9399         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
9400         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
9401         and estimated_growth.
9402         (edge_growth_cache_entry): New structure.
9403         (node_growth_cache, edge_growth_cache): New global vars.
9404         (estimate_growth): Turn into inline.
9405         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
9406         initialize_growth_caches, free_growth_caches): Declare.
9407         (estimate_edge_growth): Rewrite.
9408         (estimate_edge_time): Implement as inline cache lookup.
9409         (reset_node_growth_cache, reset_edge_growth_cache): New inline
9410         functions.
9411         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
9412         (NUM_CONDITIONS): New constant.
9413         (predicate_conditions): New enum.
9414         (IS_NOT_CONSTANT): New constant.
9415         (edge_removal_hook_holder): New var.
9416         (node_growth_cache, edge_growth_cache): New global vars.
9417         (true_predicate, single_cond_predicate, false_predicate,
9418         not_inlined_predicate, add_condition, add_clause, and_predicates,
9419         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
9420         dump_clause, dump_predicate, account_size_time,
9421         evaulate_conditions_for_edge): New functions.
9422         (inline_summary_alloc): Move to heap.
9423         (inline_node_removal_hook): Clear condition and entry vectors.
9424         (inline_edge_removal_hook): New function.
9425         (initialize_growth_caches, free_growth_caches): New function.
9426         (dump_inline_summary): Update.
9427         (edge_execution_predicate): New function.
9428         (will_be_nonconstant_predicate): New function.
9429         (estimate_function_body_sizes): Compute BB and constantness predicates.
9430         (compute_inline_parameters): Do not clear estimated_growth.
9431         (estimate_edge_size_and_time): New function.
9432         (estimate_calls_size_and_time): New function.
9433         (estimate_callee_size_and_time): New function.
9434         (remap_predicate): New function.
9435         (inline_merge_summary): New function.
9436         (do_estimate_edge_time): New function based on...
9437         (estimate_edge_time): ... this one.
9438         (do_estimate_edge_growth): New function.
9439         (do_estimate_growth): New function based on....
9440         (estimate_growth): ... this one.
9441         (inline_analyze_function): Analyze after deciding on jump functions.
9442         (inline_read_section): New function.
9443         (inline_read_summary): Use it.
9444         (inline_write_summary): Write all the new data.
9445         * ipa-prop.c (ipa_get_param_decl_index): Export.
9446         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
9447         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
9448         Declare.
9449         (ipa_get_lattice): Move here from ipa-cp.c
9450         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
9451         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
9452         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
9453         cgraph_edge_inlinable_p): Remove.
9454         * cgraphunit.c: Include ipainline.h
9455         (cgraph_process_new_functions): Update call of
9456         compute_inline_parameters.
9457
9458 2011-04-22  Richard Guenther  <rguenther@suse.de>
9459
9460         * tree.c (build_int_cst): Properly create canonicalized integer
9461         constants.
9462         (build_int_cst_type): Remove scary comments.
9463
9464 2011-04-22  Xinliang David Li  <davidxl@google.com>
9465
9466         * toplev.c (process_options): Enable -Werror=coverage-mismatch
9467         by default when -Wno-error is not specified.
9468         * opts-global.c (decode_options): Remove call to
9469         control_warning_options.
9470
9471 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9472
9473         PR tree-optimization/48717
9474         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
9475         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
9476
9477 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
9478
9479         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
9480         definition where used.
9481
9482 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
9483
9484         PR c/48716
9485         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
9486         TREE_STATIC variables declared inside of some OpenMP construct.
9487
9488 2011-04-22  Martin Jambor  <mjambor@suse.cz>
9489
9490         PR middle-end/48585
9491         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
9492
9493 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
9494
9495         PR c/36750
9496         * c-typeck.c (pop_init_level): Do not warn about initializing
9497         with ` = {0}'.
9498
9499 2011-04-22  Alan Modra  <amodra@gmail.com>
9500
9501         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
9502         when returning call_cookie.
9503         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
9504         pointers, to functions with no more vector args than the current
9505         function, and some non-local calls for ABI_V4.
9506         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
9507         sibcall_nonlocal_aix64): Combine to ..
9508         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
9509         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
9510         (sibcall_value_nonlocal_aix<mode>): ..likewise.
9511         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
9512         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
9513         operand.
9514         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
9515         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
9516         sibcall_value_symbolic_64): Delete.
9517
9518 2011-04-21  Xinliang David Li  <davidxl@google.com>
9519
9520         * cgraph.h: Remove pid.
9521         * cgraph.c: Remove pid.
9522         * value-prof.c (init_node_map): New function.
9523         (del_node_map): New function.
9524         (find_func_by_funcdef_no): New function.
9525         (gimple_ic_transform): Call new function.
9526         * cgraphunit.c (cgraph_finalize_function): Remove pid.
9527         * function.c (get_last_funcdef_no): New function.
9528         * function.h (get_last_funcdef_no): New function.
9529         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
9530         to libgcov function.
9531         (tree-profiling): Call node map init and delete function.
9532
9533 2011-04-21  Ian Lance Taylor  <iant@google.com>
9534
9535         * godump.c (go_format_type): Use exported Go name for anonymous
9536         field name.
9537
9538 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9539
9540         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
9541         Call builtin_function_type_list instead of builtin_function_type.
9542         (UNARY, BINARY, TRINARY, QUAD): Likewise.
9543
9544 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9545
9546         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
9547         build_function_type_list instead of build_function_type.
9548         Delete variable `endlink'.
9549
9550 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9551
9552         * config/s390/s390.c (s390_init_builtins): Call
9553         build_function_type_list instead of build_function_type.
9554
9555 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
9556
9557         * config/ia64/ia64.c (ia64_init_builtins): Call
9558         build_function_type_list instead of builtin_function_type.
9559
9560 2011-04-21  Easwaran Raman  <eraman@google.com>
9561
9562         * cfgexpand.c (stack_var): Remove OFFSET...
9563         (add_stack_var): ...and its reference here...
9564         (expand_stack_vars): ...and here.
9565         (stack_var_cmp): Sort by descending order of size.
9566         (partition_stack_vars): Change heuristic.
9567         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
9568         (dump_stack_var_partition): Add newline after each partition.
9569
9570 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
9571             Jeff Law  <law@redhat.com>
9572
9573         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
9574         * gengtype.c (matching_file_name_substitute): Likewise.
9575
9576 2011-04-21  Richard Guenther  <rguenther@suse.de>
9577
9578         PR lto/48703
9579         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
9580
9581 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9582
9583         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
9584
9585 2011-04-21  Richard Guenther  <rguenther@suse.de>
9586
9587         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
9588         file name.
9589
9590 2011-04-21  Richard Guenther  <rguenther@suse.de>
9591
9592         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
9593         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
9594         Use DECL_P, not SSA_VAR_P.
9595         (ptr_derefs_may_alias_p): Likewise.
9596         (ptr_deref_may_alias_ref_p_1): Likewise.
9597         (decl_refs_may_alias_p): Likewise.
9598         (refs_may_alias_p_1): Likewise.
9599         (ref_maybe_used_by_call_p_1): Likewise.
9600         (call_may_clobber_ref_p_1): Likewise.
9601         (indirect_ref_may_alias_decl_p): Assume indirect refrences
9602         are either MEM_REF or TARGET_MEM_REF.
9603         (indirect_refs_may_alias_p): Likewise.
9604         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
9605         for MEM_EXPR of indirect calls.
9606
9607 2011-04-21  Tristan Gingold  <gingold@adacore.com>
9608
9609         * vmsdbgout.c (write_srccorr): Compute file length from the string.
9610         (dst_file_info_struct): Remove flen field.
9611         (lookup_filename): Remove code that set flen field.
9612
9613 2011-04-21  Tristan Gingold  <gingold@adacore.com>
9614
9615         * config/ia64/ia64.c (ia64_start_function): Add a guard.
9616
9617 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
9618
9619         PR target/48708
9620         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
9621         vec_extract and vec_concat for non-SSE4_1 targets.
9622
9623 2011-04-21  Richard Guenther  <rguenther@suse.de>
9624
9625         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
9626         return statements.
9627
9628 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
9629
9630         * config/i386/cygming.h (union tree_node, TREE): Don't define or
9631         undefine.
9632         (FILE): Don't undefine.
9633
9634 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
9635
9636         * config/alpha/alpha.c (struct machine_function): Use rtx, not
9637         struct rtx_def *.
9638         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
9639         struct rtx_def *.
9640         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
9641         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
9642         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
9643         rtx_def *.
9644         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
9645         definitions where used.
9646         * config/microblaze/microblaze.h (struct microblaze_args): Use
9647         rtx, not struct rtx_def *.
9648         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
9649         rtx_def *.
9650         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
9651         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
9652         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
9653         not struct rtx_def *.
9654         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
9655         struct rtx_def *.
9656         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
9657         rtx_def *.
9658         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
9659
9660 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9661
9662         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
9663         operand_equal_p to compare DR_BASE_ADDRESSes.
9664         (vect_check_interleaving): Likewise.
9665
9666 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9667
9668         PR target/46329
9669         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
9670         for all Neon struct constants.
9671
9672 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9673
9674         * target.def (legitimate_constant_p): New hook.
9675         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
9676         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
9677         * doc/tm.texi: Regenerate.
9678         * hooks.h (hook_bool_mode_rtx_true): Declare.
9679         * hooks.c (hook_bool_mode_rtx_true): Define.
9680         * system.h (LEGITIMATE_CONSTANT_P): Poison.
9681         * calls.c (precompute_register_parameters): Replace uses of
9682         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
9683         (emit_library_call_value_1): Likewise.
9684         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
9685         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
9686         * ira-costs.c (scan_one_insn): Likewise.
9687         * recog.c (general_operand, immediate_operand): Likewise.
9688         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
9689         * reload1.c (init_eliminable_invariants): Likewise.
9690
9691         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
9692         mode argument.
9693         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
9694         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
9695         argument.
9696         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9697         * config/alpha/predicates.md (input_operand): Update call to
9698         alpha_legitimate_constant_p.
9699
9700         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
9701         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
9702         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
9703         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9704         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
9705         (arm_legitimate_constant_p): New functions.
9706         (arm_cannot_force_const_mem): Make static.
9707
9708         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
9709
9710         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
9711         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
9712         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
9713         instead of bfin_legitimate_constant_p.
9714         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
9715         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9716
9717         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
9718
9719         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
9720
9721         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
9722         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
9723         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9724         (frv_legitimate_constant_p): Make static.  Add a mode argument.
9725
9726         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
9727         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
9728         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
9729
9730         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
9731         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
9732         * config/i386/i386.c (legitimate_constant_p): Rename to...
9733         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
9734         argument.
9735         (ix86_cannot_force_const_mem): Update accordingly.
9736         (ix86_legitimate_address_p): Likewise.
9737         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9738         * config/i386/i386.md: Update commentary.
9739
9740         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
9741         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
9742         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9743         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
9744
9745         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
9746
9747         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
9748         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
9749         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9750         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
9751
9752         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
9753         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
9754         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
9755
9756         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
9757         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9758         (m32r_legitimate_constant_p): New function.
9759
9760         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
9761         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
9762         LEGITIMATE_CONSTANT_P.
9763         (LEGITIMATE_CONSTANT_P): Delete.
9764         * config/m68k/m68k.c (m68k_expand_prologue): Call
9765         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
9766         (m68k_legitimate_constant_p): New function.
9767         * config/m68k/m68k.md: Update comments.
9768
9769         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
9770         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9771         (mcore_legitimate_constant_p): New function.
9772
9773         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
9774         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
9775         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
9776         Add a mode argument.
9777         (mep_legitimate_address): Update accordingly.
9778         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9779
9780         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
9781         Delete.
9782         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
9783         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
9784         static.  Check OP's mode for VOIDmode.
9785         (microblaze_legitimate_constant_p): New function.
9786         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9787
9788         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
9789         * config/mips/mips.c (mips_legitimate_constant_p): New function.
9790         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
9791         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9792         * config/mips/predicates.md: Update comments.
9793
9794         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
9795         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
9796         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9797         (mmix_legitimate_constant_p): Make static, return a bool, and take
9798         a mode argument.
9799         (mmix_print_operand_address): Update accordingly.
9800
9801         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
9802         Delete.
9803         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
9804         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
9805         static.  Add a mode argument.
9806         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9807
9808         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
9809
9810         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
9811         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9812         (pa_legitimate_constant_p): New function.
9813
9814         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
9815
9816         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
9817         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9818         (pdp11_legitimate_constant_p): New function.
9819
9820         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
9821         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9822         (rs6000_legitimate_constant_p): New function.
9823
9824         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
9825         (rx_legitimate_constant_p): ...this.
9826         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
9827         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
9828         (rx_legitimate_constant_p): ...this.
9829         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9830         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
9831
9832         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
9833         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
9834         * config/s390/s390.c (legitimate_constant_p): Rename to...
9835         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
9836         and add a mode argument.
9837         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9838
9839         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
9840
9841         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
9842         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9843         (sh_legitimate_constant_p): New function.
9844
9845         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
9846         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
9847         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9848         (legitimate_constant_p): Rename to...
9849         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
9850         argument.
9851         (constant_address_p): Update accordingly.
9852
9853         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
9854         argument and return a bool.
9855         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
9856         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9857         (spu_legitimate_constant_p): Add a mode argument and return a bool.
9858         (spu_rtx_costs): Update accordingly.
9859         * config/spu/predicates.md (vec_imm_operand): Likewise.
9860
9861         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
9862
9863         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
9864         * config/v850/v850.c (v850_legitimate_constant_p): New function.
9865         (TARGET_LEGITIMATE_CONSTANT_P): Define.
9866
9867         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
9868         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
9869         * config/vax/vax.c (legitimate_constant_p): Likewise.
9870
9871         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
9872         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
9873         (xtensa_legitimate_constant_p): New function.
9874
9875 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
9876
9877         * target.def (cannot_force_const_mem): Add a mode argument.
9878         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
9879         * doc/tm.texi: Regenerate.
9880         * hooks.h (hook_bool_mode_rtx_false): Declare.
9881         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
9882         (hook_bool_mode_const_rtx_true): Likewise.
9883         (hook_bool_mode_rtx_false): New function.
9884         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
9885         to be non-VOID.  Update call to cannot_force_const_mem.
9886         (find_reloads): Update accordingly.
9887         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
9888         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
9889         argument.
9890         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
9891         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
9892         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
9893         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
9894         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
9895         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
9896         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
9897         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
9898         (m68k_cannot_force_const_mem): ...this new function.
9899         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
9900         argument.
9901         (mips_const_insns, mips_legitimize_const_move): Update calls.
9902         (mips_secondary_reload_class): Likewise.
9903         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
9904         (pa_cannot_force_const_mem): ...this new function.
9905         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
9906         (rs6000_cannot_force_const_mem): ...this new function.
9907         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
9908         argument.
9909         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
9910         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
9911         to...
9912         (xtensa_cannot_force_const_mem): ...this new function.
9913
9914 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
9915
9916         * config/mips/mips.c (mips16_build_function_stub): Call
9917         build_function_type_list instead of build_function_type.
9918         (mips16_build_call_stub): Likewise.
9919
9920 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
9921
9922         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
9923         instead of build_function_type.
9924
9925 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
9926
9927         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
9928         instead of build_function_type.
9929
9930 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         PR target/48678
9933         * config/i386/i386.md (insv): Change operand 0 constraint to
9934         "register_operand".  Change operand 1 and 2 constraint to
9935         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
9936         * config/i386/sse.md (sse4_1_pinsrb): Export.
9937         (sse2_pinsrw): Ditto.
9938         (sse4_1_pinsrd): Ditto.
9939         (sse4_1_pinsrq): Ditto.
9940         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
9941         * config/i386/i386.c (ix86_expand_pinsr): New.
9942
9943 2011-04-20  Easwaran Raman  <eraman@google.com>
9944
9945         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
9946         containing union type only with -fstrict-aliasing.
9947
9948 2011-04-20  Jim Meyering  <meyering@redhat.com>
9949
9950         Remove useless if-before-free tests.
9951         * calls.c (expand_call, save_area): Likewise.
9952         * cfgcleanup.c (try_forward_edges): Likewise.
9953         * collect2.c (collect_execute): Likewise.
9954         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
9955         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
9956         * coverage.c (coverage_checksum_string): Likewise.
9957         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
9958         * cselib.c (cselib_init): Likewise.
9959         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
9960         (df_set_clean_cfg): Likewise.
9961         * function.c (free_after_compilation): Likewise.
9962         * gcc.c (do_spec_1, main): Likewise.
9963         * gcov.c (create_file_names): Likewise.
9964         * gensupport.c (identify_predicable_attribute): Likewise.
9965         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
9966         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
9967         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
9968         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
9969         * ipa-pure-const.c (local_pure_const): Likewise.
9970         * ipa-reference.c (propagate): Likewise.
9971         * ira-costs.c (free_ira_costs): Likewise.
9972         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
9973         * matrix-reorg.c (mat_free): Likewise.
9974         * prefix.c (get_key_value): Likewise.
9975         * profile.c (compute_value_histograms): Likewise.
9976         * reload1.c (free_reg_equiv): Likewise.
9977         * sched-deps.c (free_deps): Likewise.
9978         * sel-sched-ir.c (fence_clear): Likewise.
9979         * sese.c (set_rename, if_region_set_false_region): Likewise.
9980         * tree-data-ref.c (free_rdg): Likewise.
9981         * tree-eh.c (lower_try_finally): Likewise.
9982         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
9983         * tree-ssa-live.c (delete_var_map): Likewise.
9984         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
9985         * tree-ssa-pre.c (phi_trans_add): Likewise.
9986
9987 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
9988
9989         PR tree-optimization/48611
9990         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
9991         beyond ERT_MUST_NOT_THROW region.
9992
9993 2011-04-20  Catherine Moore  <clm@codesourcery.com>
9994
9995         * config/mips/mips.opt (mfix-24k): New.
9996         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
9997         * config/mips/mips.md (length): Increase by 4 for stores if
9998         fixing 24K errata.
9999         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
10000         all noreorder if fixing 24K errata.
10001         * doc/invoke.texi: Document mfix-24k.
10002
10003 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
10004
10005         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
10006         quad-word modes, reduce to 9-bit index range when above 1016 limit.
10007
10008 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10009
10010         * config/arm/arm.c (arm_gen_constant): Move movw support ....
10011         (const_ok_for_op): ... to here.
10012
10013 2011-04-20  Kai Tietz  <ktietz@redhat.com>
10014
10015         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
10016         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
10017
10018 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
10019
10020         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
10021
10022 2011-04-20  Richard Guenther  <rguenther@suse.de>
10023
10024         PR tree-optimization/47892
10025         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
10026         are if-convertible.
10027
10028 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
10029
10030         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
10031
10032 2011-04-20  Tristan Gingold  <gingold@adacore.com>
10033
10034         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
10035
10036 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
10037
10038         PR target/18145
10039
10040         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
10041         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
10042         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
10043         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
10044         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
10045
10046         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
10047         New prototype.
10048
10049         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
10050         (avr_asm_named_section, avr_asm_output_aligned_common,
10051         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
10052         New functions to update...
10053         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
10054         (avr_asm_init_sections): Overwrite section callbacks for
10055         data_section, bss_section.
10056         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
10057         from here to...
10058         (avr_file_end): ...here.
10059
10060 2011-04-20  Richard Guenther  <rguenther@suse.de>
10061
10062         PR middle-end/48695
10063         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
10064         objects and types here.  Adjust for their offset before comparing.
10065
10066 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10067
10068         * tree-vect-stmts.c (vectorizable_store): Only chain one related
10069         statement per copy.
10070
10071 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
10072
10073         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
10074         (GIMPLE_H): Include $(INTERNAL_FN_H).
10075         (OBJS-common): Add internal-fn.o.
10076         (internal-fn.o): New rule.
10077         * internal-fn.def: New file.
10078         * internal-fn.h: Likewise.
10079         * internal-fn.c: Likewise.
10080         * gimple.h: Include internal-fn.h.
10081         (GF_CALL_INTERNAL): New gf_mask.
10082         (gimple_statement_call): Put fntype into a union with a new
10083         internal_fn field.
10084         (gimple_build_call_internal): Declare.
10085         (gimple_build_call_internal_vec): Likewise.
10086         (gimple_call_same_target_p): Likewise.
10087         (gimple_call_internal_p): New function.
10088         (gimple_call_internal_fn): Likewise.
10089         (gimple_call_fntype): Return null for internal calls.
10090         (gimple_call_set_fntype): Assert that the function is not internal.
10091         (gimple_call_set_fn): Likewise.
10092         (gimple_call_set_fndecl): Likewise.
10093         (gimple_call_set_internal_fn): New function.
10094         (gimple_call_addr_fndecl): Handle null functions.
10095         (gimple_call_return_type): Likewise null types.
10096         * gimple.c (gimple_build_call_internal_1): New function.
10097         (gimple_build_call_internal): Likewise.
10098         (gimple_build_call_internal_vec): Likewise.
10099         (gimple_call_same_target_p): Likewise.
10100         (gimple_call_flags): Handle calls to internal functions.
10101         (gimple_call_fnspec): New function.
10102         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
10103         (gimple_has_side_effects): Handle null functions.
10104         (gimple_rhs_has_side_effects): Likewise.
10105         (gimple_call_copy_skip_args): Handle calls to internal functions.
10106         * cfgexpand.c (expand_call_stmt): Likewise.
10107         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
10108         * gimple-fold.c (gimple_fold_call): Handle null functions.
10109         (gimple_fold_stmt_to_constant_1): Don't fold
10110         calls to internal functions.
10111         * gimple-low.c (gimple_check_call_args): Handle calls to internal
10112         functions.
10113         * gimple-pretty-print.c (dump_gimple_call): Likewise.
10114         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
10115         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
10116         (do_warn_unused_result): Likewise.
10117         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
10118         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
10119         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
10120         the target of a call.
10121         (initialize_hash_element): Update accordingly.
10122         (hashable_expr_equal_p): Use gimple_call_same_target_p.
10123         (iterative_hash_hashable_expr): Handle calls to internal functions.
10124         (print_expr_hash_elt): Likewise.
10125         * tree-ssa-pre.c (can_value_number_call): Likewise.
10126         (eliminate): Handle null functions.
10127         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
10128         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
10129         (find_func_aliases): Likewise.
10130         * value-prof.c (gimple_ic_transform): Likewise.
10131         (gimple_indirect_call_to_profile): Likewise.
10132         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10133         * lto-streamer-out.c (output_gimple_stmt): Likewise.
10134
10135 2011-04-19  Jan Hubicka  <jh@suse.cz>
10136
10137         * ipa-inline-transform.c (save_inline_function_body): Add comments.
10138         * ipa-inline.c (inline_small_functions): Compute summaries first,
10139         populate heap later.
10140
10141 2011-04-19  Jan Hubicka  <jh@suse.cz>
10142
10143         * cgraph.h (save_inline_function_body): Remove.
10144         * ipa-inline-transform.c: New file, broke out of...
10145         * ipa-inline.c: ... this one; Update toplevel comment.
10146         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
10147         make global.
10148         (update_noncloned_frequencies): Move to ipa-inline-transform.c
10149         (cgraph_mark_inline_edge): Rename to inline_call; move to
10150         ipa-inline-transform.c.
10151         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
10152         move to ipa-inline-transform.c
10153         (recursive_inlining, inline_small_functions, flatten_function,
10154         ipa_inline, inline_always_inline_functions,
10155         early_inline_small_functions): Update.
10156         (inline_transform): Move to ipa-inline-transform.c.
10157         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
10158         Declare.
10159         * Makefile.in (ipa-inline-transform.o): New file.
10160         * cgraphunit.c (save_inline_function_body): Move to
10161         ipa-inline-transform.c
10162
10163 2011-04-19  DJ Delorie  <dj@redhat.com>
10164
10165         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
10166         registers if we already know there aren't any.
10167         (m32c_emit_epilogue): Don't emit a barrier here.
10168         (m32c_emit_eh_epilogue): Likewise.
10169         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
10170         operands at expand time.
10171         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
10172         int" wchar type.
10173         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
10174         duplicates.  Provide aliases instead.
10175         * config/m32c/prologue.md (eh_return): Emit a barrier here.
10176         (eh_epilogue): Add a "(return)" here as a hint to other parts of
10177         the compiler.
10178
10179 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
10180
10181         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
10182         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
10183         (general_or_i64_p, sparc_register_move_cost): New function.
10184
10185 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10186
10187         * doc/install.texi (Configuration, --enable-threads): Remove mach.
10188         Add lynx, mipssde.  Sort table.
10189
10190 2011-04-19  Xinliang David Li  <davidxl@google.com>
10191
10192         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
10193         not negative.
10194
10195 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
10196
10197         PR target/48678
10198         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
10199         is a SUBREG with non-MODE_INT mode inside of it.
10200
10201 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10202
10203         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
10204         also according to actual contants.
10205         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
10206         (gimple_fold_call): Use it.
10207         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
10208
10209 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10210
10211         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
10212         non-pointer assignments.
10213
10214 2011-04-19  Martin Jambor  <mjambor@suse.cz>
10215
10216         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
10217         account anc_offset and otr_type from the indirect edge info.
10218         * ipa-prop.c (get_ancestor_addr_info): New function.
10219         (compute_complex_ancestor_jump_func): Assignment analysis moved to
10220         get_ancestor_addr_info, call it.
10221         (ipa_note_param_call): Do not initialize information about polymorphic
10222         calls, return the indirect call graph edge.  Remove the last
10223         parameter, adjust all callers.
10224         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
10225         parameters.  Initialize polymorphic information in the indirect edge.
10226
10227 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10228
10229         PR lto/48148
10230         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
10231         the types if they have different enumeration identifiers.
10232
10233 2011-04-19  Jan Hubicka  <jh@suse.cz>
10234
10235         * cgraph.h (cgraph_optimize_for_size_p): Declare.
10236         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
10237         * predict.c (cgraph_optimize_for_size_p): Break out from ...
10238         (optimize_function_for_size_p) ... here.
10239
10240 2011-04-19  Richard Guenther  <rguenther@suse.de>
10241
10242         PR lto/48207
10243         * tree.c (free_lang_data): Do not reset the decl-assembler-name
10244         langhook.
10245
10246 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
10247
10248         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
10249         if DECL_NO_INLINE_WARNING_P is set on the function.
10250
10251 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
10252
10253         PR fortran/47976
10254         * reload1.c (inc_for_reload): Return void. All callers changed.
10255         (emit_input_reload_insns): Don't try to delete previous output
10256         reloads to a register, or record spill_reg_store for autoincs.
10257
10258 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
10259
10260         * gengtype.h: Updated copyright year.
10261         (struct input_file_st): Add inpisplugin field.
10262         (type_fileloc): New function.
10263         * gengtype.c
10264         (write_typed_struct_alloc_def): Add gcc_assert.
10265         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
10266         (write_typed_alloc_defns): Don't output for plugin files.
10267         (input_file_by_name): Clear inpisplugin field.
10268         (main): Set inpisplugin field for plugin files.
10269
10270 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
10271
10272         * gengtype-state.c (string_eq): New.
10273         (read_state): Use string_eq instead of strcmp when creating the
10274         state_ident_tab.
10275
10276 2011-04-19  Wei Guozhi  <carrot@google.com>
10277
10278         PR target/47855
10279         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
10280         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
10281         linkage.
10282         * config/arm/constraints.md (Uu): New constraint.
10283         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
10284
10285 2011-04-19  Tristan Gingold  <gingold@adacore.com>
10286
10287         * config.gcc (-*-*-*vms): Added.
10288         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
10289         definitions moved.
10290         * config/vms/vms-ld.c: New file.
10291         * config/vms/vms-ar.c: New file.
10292         * config/vms/t-vmsnative: New file.
10293
10294 2011-04-18  Xinliang David Li  <davidxl@google.com>
10295
10296         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
10297
10298 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10299
10300         PR middle-end/48661
10301         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
10302         if TREE_TYPE (v) is non-NULL.
10303
10304         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
10305         gimple_get_virt_mehtod_for_binfo.
10306         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
10307         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
10308         callers.
10309         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
10310
10311 2011-04-18  Michael Matz  <matz@suse.de>
10312             Steve Ellcey  <sje@cup.hp.com>
10313
10314         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
10315         use its mode as source mode if it isn't VOIDmode.
10316
10317 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
10318
10319         * doc/passes.texi: Fill crossref nodes.
10320
10321 2011-04-18  Jim Meyering  <meyering@redhat.com>
10322
10323         Fix doubled-word typos in comments and strings
10324         * config/alpha/vms-unwind.h: s/for for/for/
10325         * config/arm/unwind-arm.h: Likewise.
10326         * config/microblaze/microblaze.c: Likewise.
10327         * config/sh/constraints.md: s/in in/in/
10328         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
10329
10330 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
10331
10332         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
10333         (AVX_FLOAT_MODE_P): Ditto.
10334         (AVX128_VEC_FLOAT_MODE_P): Ditto.
10335         (AVX256_VEC_FLOAT_MODE_P): Ditto.
10336         (AVX_VEC_FLOAT_MODE_P): Ditto.
10337         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
10338         (UNSPEC_MASKSTORE): Ditto.
10339         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
10340         Merge from <sse>_movmsk<ssemodesuffix> and
10341         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
10342         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
10343         iterator.
10344         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
10345         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
10346         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
10347
10348 2011-04-18  Jan Hubicka  <jh@suse.cz>
10349
10350         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
10351
10352         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
10353         (want_inline_function_called_once_p): Break out the logic from
10354         ipa_inline.
10355         (edge_badness): Ensure that profile is not misupdated.
10356         (lookup_recursive_calls): Prioritize by call frequencies.
10357         (inline_small_functions): Move program size estimates here;
10358         actually process whole queue even when unit growth has been
10359         met. (to properly compute inline_failed reasons and for the
10360         case unit size decrease.) Revisit comments on recursive inlining.
10361         (ipa_inline): Remove unit summary code; first inline hot calls
10362         of functions called once, cold calls next.
10363         (order, nnodes): Remove unused variables.
10364         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
10365         (GTFILES): Remove ipa-inline.c
10366         * sel-sched.c (fill_insns): Silence uninitialized var warning.
10367
10368 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10369
10370         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
10371
10372 2011-04-18  Jie Zhang  <jie@codesourcery.com>
10373             Richard Earnshaw  <rearnsha@arm.com>
10374
10375         * arm.c (neon_builtin_type_bits): Remove.
10376         (typedef enum neon_builtin_mode): New.
10377         (T_MAX): Don't define.
10378         (typedef enum neon_builtin_datum): Remove bits, codes[],
10379         num_vars and base_fcode.  Add mode, code and fcode.
10380         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
10381         VAR10): Change accordingly.
10382         (neon_builtin_data[]): Change accordingly
10383         (arm_init_neon_builtins): Change accordingly.
10384         (neon_builtin_compare): Remove.
10385         (locate_neon_builtin_icode): Remove.
10386         (arm_expand_neon_builtin): Change accordingly.
10387
10388         * arm.h (enum arm_builtins): Move to ...
10389         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
10390
10391         * arm.c (arm_builtin_decl): Declare.
10392         (TARGET_BUILTIN_DECL): Define.
10393         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
10394         (arm_builtin_decls[]): New.
10395         (arm_init_neon_builtins): Store builtin declarations in
10396         arm_builtin_decls[].
10397         (arm_init_tls_builtins): Likewise.
10398         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
10399         (arm_builtin_decl): New.
10400
10401 2011-04-18  Richard Guenther  <rguenther@suse.de>
10402
10403         * tree.c (upper_bound_in_type): Build properly canonicalized
10404         INTEGER_CSTs.
10405         (lower_bound_in_type): Likewise.
10406
10407 2011-04-18  Richard Guenther  <rguenther@suse.de>
10408
10409         * gimple.h (gimple_call_addr_fndecl): New function.
10410         (gimple_call_fndecl): Use it.
10411         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
10412         for direct calls.
10413         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
10414         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
10415
10416 2011-04-18  Richard Guenther  <rguenther@suse.de>
10417
10418         PR middle-end/48650
10419         * tree.c (build_string): STRING_CST is now derived from tree_typed.
10420
10421 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
10422
10423         PR lto/48492
10424         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
10425         DECL_IN_CONSTANT_POOL without RTL.
10426
10427 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
10428             Ira Rosen  <ira.rosen@linaro.org>
10429
10430         PR target/48252
10431         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
10432         to match neon_vzip/vuzp/vtrn_internal.
10433         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
10434         outputs explicitly dependent on both inputs.
10435         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
10436
10437 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
10438
10439         PR tree-optimization/48616
10440         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
10441         whether the shift is by scalar or vector based on whether all SLP
10442         scalar stmts have the same rhs.
10443
10444 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
10445
10446         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
10447         memory operands.
10448
10449 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
10450
10451         PR target/43700
10452         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
10453         registers.
10454
10455 2011-04-17  Jan Hubicka  <jh@suse.cz>
10456
10457         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
10458         * cgrpahunit.c (cgraph_finalize_function): Do not set
10459         finalized_by_frontend.
10460         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10461         finalized_by_frontend.
10462
10463 2011-04-17  Jan Hubicka  <jh@suse.cz>
10464
10465         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
10466         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
10467         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
10468         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
10469         method.
10470         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
10471         gimple-fold.c
10472         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
10473
10474 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
10475
10476         PR lto/48538
10477         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
10478         is non-null before accessing it.
10479         (input_cgraph): Remove trailing spaces.
10480
10481 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10482
10483         * params.def (sms-min-sc): New param flag.
10484         * modulo-sched.c (sms_schedule): Use it.
10485         * doc/invoke.texi (sms-min-sc): Document it.
10486
10487 2011-04-17  Jan Hubicka  <jh@suse.cz>
10488
10489         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
10490         present, also set gimple_call_set_cannot_inline.
10491         * ipa-inline.c: Update toplevel comment.
10492         (MAX_TIME): Remove.
10493         (cgraph_clone_inlined_nodes): Fix linebreaks.
10494         (cgraph_check_inline_limits): Restructure to ...
10495         (caller_growth_limits): ... this one; be more tolerant
10496         on growth in nested inline chains; add explanatory comment;
10497         fix stack accounting thinko introduced by previous patch.
10498         (cgraph_default_inline_p): Remove.
10499         (report_inline_failed_reason): New function.
10500         (can_inline_edge_p): New function.
10501         (can_early_inline_edge_p): New function.
10502         (leaf_node_p): Move upwards in file.
10503         (want_early_inline_function_p): New function.
10504         (want_inline_small_function_p): New function.
10505         (want_inline_self_recursive_call_p): New function.
10506         (cgraph_edge_badness): Rename to ...
10507         (edge_badness) ... this one; fix linebreaks.
10508         (update_edge_key): Update call of edge_baddness; add
10509         detailed dump about queue updates.
10510         (update_caller_keys): Use can_inline_edge_p and
10511         want_inline_small_function_p.
10512         (cgraph_decide_recursive_inlining): Rename to...
10513         (recursive_inlining): Use can_inline_edge_p and
10514         want_inline_self_recursive_call_p; simplify and remove no longer
10515         valid FIXME.
10516         (cgraph_set_inline_failed): Remove.
10517         (add_new_edges_to_heap): Use can_inline_edge_p and
10518         want_inline_small_function_p.
10519         (cgraph_decide_inlining_of_small_functions): Rename to ...
10520         (inline_small_functions): ... this one; cleanup; use
10521         can/want predicates; cleanup debug ouput; work edges till fibheap
10522         is exhausted and do not stop once unit growth is reached; remove
10523         later loop processing remaining edges.
10524         (cgraph_flatten): Rename to ...
10525         (flatten_function): ... this one; use can_inline_edge_p
10526         and can_early_inline_edge_p predicates.
10527         (cgraph_decide_inlining): Rename to ...
10528         (ipa_inline): ... this one; remove unreachable nodes before
10529         inlining functions called once; simplify the pass.
10530         (cgraph_perform_always_inlining): Rename to ...
10531         (inline_always_inline_functions): ... this one; use
10532         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
10533         (cgraph_decide_inlining_incrementally): Rename to ...
10534         (early_inline_small_functions): ... this one; simplify
10535         using new predicates; cleanup; make dumps prettier.
10536         (cgraph_early_inlining): Rename to ...
10537         (early_inliner): newer inline regular functions into always-inlines;
10538         fix updating of call stmt summaries.
10539         (pass_early_inline): Update for new names.
10540         (inline_transform): Fix formating.
10541         (gate_cgraph_decide_inlining): Rename to ...
10542         (pass_ipa_inline): ... this one.
10543         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
10544         * ipa-inline-analysis.c (dump_inline_summary): Update.
10545         (compute_inline_parameters): Do not compute disregard_inline_limits;
10546         look for mismatching arguments.
10547         (estimate_growth): Fix handlig of non-trivial self recursion.
10548         (inline_read_summary): Do not read info->disregard_inline_limits.
10549         (inline_write_summary): Do not write info->disregard_inline_limits.
10550         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
10551         and move all checks into can_inline_edge_p predicate; re-enable code
10552         comparing optimization levels.
10553         (expand_call_inline): Do not test inline_forbidden_into_p.
10554         * Makefile.in (ipa-inline.o): Update arguments.
10555
10556 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10557
10558         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
10559
10560 2011-04-17  Revital Eres  <revital.eres@linaro.org>
10561
10562         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
10563
10564 2011-04-17  Michael Matz  <matz@suse.de>
10565
10566         PR tree-optimization/48622
10567         PR lto/48645
10568         * ipa-inline-analysis.c (inline_read_summary): Read size/time
10569         in same order as they're written.
10570
10571 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10572
10573         * config/pa/predicates.md: Reorganize and simplify predicates.
10574         Eliminate duplicate code checks.
10575         (arith_operand): Rename to arith14_operand
10576         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
10577         * config/pa/pa.md: Use renamed operands.
10578         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
10579         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
10580         arith11_operand, adddi3_operand, indexed_memory_operand,
10581         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
10582         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
10583         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
10584         move_dest_operand, move_src_operand, prefetch_cc_operand,
10585         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
10586         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
10587         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
10588         div_operand, int5_operand, movb_comparison_operator,
10589         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
10590         arith_double_operand, ireg_operand, lhs_lshift_operand,
10591         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
10592         integer_store_memory_operand): Likewise.
10593         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
10594         (integer_store_memory_operand, read_only_operand,
10595         function_label_operand, borx_reg_operand,
10596         non_hard_reg_operand): Likewise.
10597         (eq_neq_comparison_operator): Delete unused operator.
10598         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
10599         function_label_operand.
10600         (emit_move_sequence): Likewise.
10601
10602 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
10603
10604         * config/i386/sse.md (sseunpackmode): New mode attribute.
10605         (ssepackmode): Ditto.
10606         (vec_pack_trunc_<mode>): Macroize expander from
10607         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
10608         (vec_unpacks_lo_<mode>): Macroize expander from
10609         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10610         (vec_unpacks_hi_<mode>): Macroize expander from
10611         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10612         (vec_unpacku_lo_<mode>): Macroize expander from
10613         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10614         (vec_unpacku_hi_<mode>): Macroize expander from
10615         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
10616         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
10617         ix86_expand_sse4_unpack.
10618         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
10619
10620 2011-04-16  Jan Hubicka  <jh@suse.cz>
10621
10622         * cgraphbuild.c: Include ipa-inline.h.
10623         (reset_inline_failed): Use initialize_inline_failed.
10624         * cgraph.c: Include ipa-inline.h.
10625         (cgraph_create_node_1): Do not initialize estimated_growth.
10626         (initialize_inline_failed): More to ipa-inline-analysis.c
10627         (dump_cgraph_node): Do not dump inline flags.
10628         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
10629         and disregard_inline_limits flags.
10630         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
10631         time, size, estimated_growth.
10632         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
10633         Update.
10634         * cgraphunit.c (cgraph_decide_is_function_needed): Use
10635         DECL_DISREGARD_INLINE_LIMITS.
10636         (cgraph_analyze_function): Do not initialize
10637         node->local.disregard_inline_limits.
10638         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
10639         inlinable, versionable and disregard_inline_limits.
10640         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
10641         cgraph_check_inline_limits, cgraph_default_inline_p,
10642         cgraph_edge_badness, update_caller_keys, update_callee_keys,
10643         add_new_edges_to_heap): Update.
10644         (cgraph_decide_inlining_of_small_function): Update; set
10645         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
10646         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
10647         cgraph_decide_inlining_incrementally): Update.
10648         * ipa-inline.h (inline_summary): Add inlinable, versionable,
10649         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
10650         time, size and estimated_growth parameters.
10651         (estimate_edge_growth): Update.
10652         (initialize_inline_failed): Declare.
10653         * ipa-split.c: Include ipa-inline.h
10654         (execute_split_functions): Update.
10655         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
10656         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
10657         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
10658         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
10659         estimated_growth to INT_MIN.
10660         (inline_node_duplication_hook): Likewise.
10661         (dump_inline_summary): Dump new fields.
10662         (compute_inline_parameters): Update.
10663         (estimate_edge_time, estimate_time_after_inlining,
10664         estimate_size_after_inlining, estimate_growth, inline_read_summary,
10665         inline_write_summary):
10666         (initialize_inline_failed): Move here from cgraph.c.
10667         * tree-sra.c: Include ipa-inline.h.
10668         (ipa_sra_preliminary_function_checks): Update.
10669         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
10670         ipa-inline.h.
10671
10672 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
10673
10674         * config/i386/sse.md (V16): New mode iterator.
10675         (VI1, VI8): Ditto.
10676         (AVXMODEQI, AVXMODEDI): Remove.
10677         (sse2, sse3): New mode attribute.
10678         (mov<mode>): Use V16 mode iterator.
10679         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
10680         (push<mode>1): Use V16 mode iterator.
10681         (movmisalign<mode>): Ditto.
10682         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
10683         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
10684         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
10685         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
10686         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
10687         avx_movdqu<avxmodesuffix>.
10688         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
10689         *avx_movdqu<avxmodesuffix>.
10690         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
10691         avx_lddqu<avxmodesuffix>.
10692         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
10693         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
10694         avx_movnt<AVXMODEDI:mode>.
10695         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
10696         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
10697
10698 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
10699
10700         PR target/48629
10701         * haifa-sched.c (prune_ready_list, schedule_block): Use
10702         sched_pressure_p rather than flag_sched_pressure.
10703
10704 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
10705
10706         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
10707         cgraph_get_node instead of cgraph_get_create_node.
10708
10709 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
10710
10711         * cfgexpand.c (expand_debug_expr): Use
10712         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
10713
10714 2011-04-15  Michael Matz  <matz@suse.de>
10715
10716         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
10717         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
10718         * function.c (gimplify_parameters): Ditto.
10719         * gimplify.c (gimplify_vla_decl): Ditto.
10720
10721         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
10722         (gimple_call_set_alloca_for_var): New inline function.
10723         (gimple_call_alloca_for_var_p): Ditto.
10724         * gimple.c (gimple_build_call_from_tree): Remember
10725         CALL_ALLOCA_FOR_VAR_P state.
10726         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
10727
10728         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
10729         calls if they were for VLA objects.
10730
10731 2011-04-15  Martin Jambor  <mjambor@suse.cz>
10732
10733         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
10734         of ADR_EXPRs.
10735
10736 2011-04-15  Martin Jambor  <mjambor@suse.cz>
10737
10738         PR middle-end/48601
10739         * tree-emutls.c (lower_emutls_function_body): Call
10740         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
10741         result is non-NULL.
10742
10743 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
10744
10745         * c-decl.c (detect_field_duplicates): Call
10746         objc_detect_field_duplicates instead of objc_get_interface_ivars.
10747
10748 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
10749
10750         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
10751         * gimple.c (gimple_asm_clobbers_memory_p): Define.
10752         * ipa-pure-const.c (check_stmt): Call it.
10753         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
10754
10755 2011-04-15  Richard Guenther  <rguenther@suse.de>
10756
10757         PR tree-optimization/48290
10758         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
10759         Properly decide inhibiting propagation based on the valueized
10760         operand.  Do loop-closed SSA form preserving here ...
10761         (init_copy_prop): ... not here.
10762
10763 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
10764
10765         PR target/48612
10766         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
10767         (*ieee_smax<mode>3): Likewise.
10768
10769 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10770
10771         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
10772         Replace match_operand with match_dup for the third operand in
10773         these expanders.
10774
10775 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
10776
10777         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
10778         to track processing of conditionals.  Update all callers.
10779         (try_combine, simplify_if_then_else): Update.
10780
10781 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
10782
10783         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
10784         -fsched-pressure.
10785
10786 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
10787
10788         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
10789         instead of match_operand for operand 3.
10790
10791 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
10792
10793         * recog.h (insn_operand_data): Add an "allows_mem" field.
10794         * genoutput.c (output_operand_data): Initialize it.
10795         * optabs.c (maybe_legitimize_operand_same_code): New function.
10796         (maybe_legitimize_operand): Use it when matching the original
10797         op->value.
10798
10799 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
10800
10801         * gimplify.c: Fix issues in comments throughout.
10802         (voidify_wrapper_expr): Fix long line.
10803         (build_stack_save_restore): Likewise.
10804         (gimplify_loop_expr): Likewise.
10805         (gimplify_compound_lval): Likewise.
10806         (gimplify_init_ctor_eval): Likewise.
10807         (gimplify_modify_expr_rhs): Likewise.
10808         (omp_notice_threadprivate_variable): Likewise.
10809
10810 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
10811
10812         * cfgexpand.c (expand_call_stmt): Convert the function type to the
10813         original one if this is not a builtin function.
10814
10815 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
10816
10817         PR target/48605
10818         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
10819         offset it as needed based on top 2 bits in operands[3], change
10820         MEM mode to SFmode and mask those 2 bits away from operands[3].
10821
10822 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
10823
10824         * c-parser.c (c_parser_objc_protocol_definition): Updated for
10825         change from objc_declare_protocols() to objc_declare_protocol().
10826
10827 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
10828
10829         * config/i386/sse.md (sse4_1): New mode attribute.
10830         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
10831         avx_blend<ssemodesuffix><avxmodesuffix> and
10832         sse4_1_blend<ssemodesuffix> using VF mode iterator.
10833         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
10834         avx_blendv<ssemodesuffix><avxmodesuffix> and
10835         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
10836         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
10837         avx_dp<ssemodesuffix><avxmodesuffix> and
10838         sse4_1_dp<ssemodesuffix> using VF mode iterator.
10839         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
10840         (sse4_1_packusdw): Merge with *avx_packusdw.
10841         (sse4_1_pblendvb): Merge with *avx_pblendvb.
10842         (sse4_1_pblendw): Merge with *avx_pblendw.
10843         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
10844         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
10845         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
10846         VF mode iterator.
10847         (sse4_1_round<ssescalarmodesuffix>): Merge with
10848         *avx_round<ssescalarmodesuffix>.
10849         (aesenc): Merge with *avx_aesenc.
10850         (aesenclast): Merge with *avx_aesenclast.
10851         (aesdec): Merge with *avx_aesdec.
10852         (aesdeclast): Merge with *avx_aesdeclast.
10853         (pclmulqdq): Merge with *pclmulqdq.
10854         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
10855         New predicate.
10856         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
10857
10858 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
10859
10860         PR middle-end/48608
10861         * cfgexpand.c (get_decl_align_unit): Renamed to ...
10862         (align_local_variable): This.  Update DECL_ALIGN.
10863         (add_stack_var): Updated.
10864         (expand_one_stack_var): Likewise.
10865
10866 2011-04-14  Richard Guenther  <rguenther@suse.de>
10867
10868         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
10869         Remove.
10870         (dse_initialize_block_local_data, dse_leave_block,
10871         record_voperand_set, get_stmt_uid): Likewise.
10872         (dse_possible_dead_store_p): Allow any kind of killing stmt.
10873         (dse_optimize_stmt): Remove voperand set handling code.
10874         Simplify and improve to handle any kind of killing stmt.
10875         (dse_record_phi): Remove.
10876         (dse_enter_block): Simplify.
10877         (tree_ssa_dse): Likewise.
10878         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
10879
10880 2011-04-14  Jan Hubicka  <jh@suse.cz>
10881
10882         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
10883         * cgraph.h (struct inline_summary): Move to ipa-inline.h
10884         (cgraph_local_info): Remove inline_summary.
10885         * ipa-cp.c: Include ipa-inline.h.
10886         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
10887         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
10888         accesor.
10889         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
10890         (input_overwrite_node): Do not set inline summary.
10891         (input_node): Do not stream inline summary.
10892         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
10893         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
10894         growth; we do not have inline parameters computed for that anyway.
10895         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
10896         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
10897         (inline_summary_t): New type and VECtor.
10898         (debug_inline_summary, dump_inline_summaries): Declare.
10899         (inline_summary): Use VOCtor.
10900         (estimate_edge_growth): Kill hack computing call stmt size directly.
10901         * lto-section-in.c (lto_section_name): Add inline section.
10902         * ipa-inline-analysis.c: Include lto-streamer.h
10903         (node_removal_hook_holder, node_duplication_hook_holder): New holders
10904         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
10905         (inline_summary_vec): Define.
10906         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
10907         dump_inline_summaries): New functions.
10908         (estimate_function_body_sizes): Properly compute size/time of outgoing
10909         calls.
10910         (compute_inline_parameters): Alloc inline_summary; do not compute
10911         size/time of incomming calls.
10912         (estimate_edge_time): Avoid missing time summary hack.
10913         (inline_read_summary): Read inline summary info.
10914         (inline_write_summary): Write inline summary info.
10915         (inline_free_summary): Free all hooks and inline summary vector.
10916         * lto-streamer.h: Add LTO_section_inline_summary section.
10917         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
10918         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
10919
10920 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
10921
10922         * tree-vectorizer.h (vect_strided_store_supported): Add a
10923         HOST_WIDE_INT argument.
10924         (vect_strided_load_supported): Likewise.
10925         (vect_permute_store_chain): Return void.
10926         (vect_transform_strided_load): Likewise.
10927         (vect_permute_load_chain): Delete.
10928         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
10929         count argument.  Check that the count is a power of two.
10930         (vect_strided_load_supported): Likewise.
10931         (vect_permute_store_chain): Return void.  Update after above changes.
10932         Assert that the access is supported.
10933         (vect_permute_load_chain): Likewise.
10934         (vect_transform_strided_load): Return void.
10935         * tree-vect-stmts.c (vectorizable_store): Update calls after
10936         above interface changes.
10937         (vectorizable_load): Likewise.
10938         (vect_analyze_stmt): Don't check for strided powers of two here.
10939
10940 2011-04-14  Richard Guenther  <rguenther@suse.de>
10941
10942         PR tree-optimization/48590
10943         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
10944         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
10945         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
10946         BUILT_IN_STACK_SAVE.
10947         * tree-ssa-dce.c (propagate_necessity): Handle
10948         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
10949
10950 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
10951
10952         * c-parser.c (c_parser_objc_class_declaration): Updated call to
10953         objc_declare_class.
10954
10955 2011-04-14  Richard Guenther  <rguenther@suse.de>
10956
10957         * tree.h (get_object_alignment_1): Declare.
10958         * builtins.c (get_object_alignment_1): Split out worker from ...
10959         (get_object_alignment): ... here.
10960         * fold-const.c (get_pointer_modulus_and_residue): Use
10961         get_object_alignment_1.
10962
10963 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
10964
10965         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
10966         type parameter.
10967         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
10968         parameter.  Generalise code to handle arrays as well as vectors.
10969         (vect_setup_realignment): Update accordingly.
10970         * tree-vect-stmts.c (vectorizable_store): Likewise.
10971         (vectorizable_load): Likewise.
10972
10973 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
10974
10975         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
10976         within the per-copy loop.
10977
10978 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
10979
10980         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
10981         in the dump file.
10982
10983 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
10984
10985         * doc/options.texi (Negative): Explicitly mention that the
10986         Negative chain must be circular.
10987
10988 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
10989
10990         * function.h (block_chainon): Declare.
10991         * function.c (block_chainon): Define.
10992
10993 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
10994             Eric Weddington  <eric.weddington@atmel.com>
10995             Georg-Johann Lay  <avr@gjlay.de>
10996
10997         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
10998         New Includes
10999         (avr_init_builtins, avr_expand_builtin,
11000         avr_expand_delay_cycles, avr_expand_unop_builtin,
11001         avr_expand_binop_builtin ): New functions.
11002         (avr_builtin_id): New enum
11003         (struct avr_builtin_description): New struct
11004         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
11005         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11006
11007         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
11008         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
11009         UNSPECV_DELAY_CYCLES): new enumeration values
11010         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
11011         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
11012         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
11013         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
11014         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
11015         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
11016         "fmulsu"): New insns
11017
11018         * config/avr/avr-c.c: fix line endings
11019         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
11020         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
11021         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
11022         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
11023         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
11024
11025         * doc/extend.texi (AVR Built-in Functions): New node
11026         (Target Builtins): Add documentation of AVR
11027         built-in functions.
11028
11029 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
11030
11031         PR target/44643
11032         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
11033         alone. Error if non-const data has attribute progmem.
11034
11035 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11036
11037         * tree.h (struct tree_constructor): Include tree_typed instead of
11038         tree_common.
11039         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
11040         TS_TYPED instead of TS_COMMON.
11041
11042 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11043
11044         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
11045         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
11046         (sse2_psadbw): Merge with *avx_psadbw.
11047         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
11048         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
11049         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
11050         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
11051         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
11052         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
11053         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
11054         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
11055         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
11056         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
11057         (ssse3_palignrti): Merge with *avx_palignrti.
11058
11059 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11060
11061         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
11062         * tree-ssanames.c (fini_ssanames): VEC_free it.
11063         (make_ssa_name_fn): Update for VECness of free_ssanames.
11064         (release_ssa_name, release_dead_ssa_names): Likewise.
11065         * tree.h (struct tree_ssa_name): Include tree_typed instead of
11066         tree_common.
11067         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
11068         TS_TYPED instead of TS_COMMON.
11069
11070 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11071
11072         * postreload-gcse.c (gcse_after_reload_main): Add calls to
11073         statistics_counter_event.
11074         * tree-ssa-copyrename.c (stats): Define.
11075         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
11076         statistics_counter_event.
11077         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
11078         (bswap_stats, widen_mul_stats): Define.
11079         (insert_reciprocals): Increment rdivs_inserted.
11080         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
11081         rfuncs_inserted.  Add calls to statistics_counter_event.
11082         (execute_cse_sincos_1): Increment inserted.
11083         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
11084         statistics_counter_event.
11085         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
11086         of bswap_stats.  Add calls to statistics_counter_event.
11087         (convert_mult_to_widen): Increment widen_mults_inserted.
11088         (convert_plusminus_to_widen): Increment maccs_inserted.
11089         (convert_mult_to_fma): Increment fmas_inserted.
11090         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
11091         calls to statistics_counter_event.
11092
11093 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
11094
11095         PR rtl-optimization/48455
11096         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
11097         `temp_costs->mem_cost'.
11098
11099 2011-04-13  Jan Hubicka  <jh@suse.cz>
11100
11101         * ipa-inline.h: New file.
11102         * ipa-inline-analysis.c: New file. Broken out of ...
11103         * ipa-inline.c: ... this file; update toplevel comment;
11104         include ipa-inline.h
11105         (inline_summary): Move to ipa-inline.h
11106         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
11107         ipa-inline-analysis.c.
11108         (cgraph_estimate_time_after_inlining): Rename to
11109         estiamte_time_after_inlining; move to ipa-inline-analysis.c
11110         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
11111         to estimate_edge_growth.
11112         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
11113         rename to estimate_size_after_inlining.
11114         (cgraph_mark_inline_edge): Update for new naming convention.
11115         (cgraph_check_inline_limits): Likewise.
11116         (cgraph_edge_badness): Likewise.
11117         (cgraph_decide_recursive_inlining): Likewise.
11118         (cgraph_decide_inlining_of_small_functions): Likewise.
11119         (cgraph_decide_inlining_incrementally): Likewise.
11120         (cgraph_estimate_growth): Rename to estimate_growth; move to
11121         ipa-inline-analysis.c.
11122         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
11123         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
11124         (compute_inline_parameters): Likewise.
11125         (compute_inline_parameters_for_current): Likewise.
11126         (pass_inline_parameters): Likewise.
11127         (inline_indirect_intraprocedural_analysis): Likewise.
11128         (analyze_function): Rename to inline_analyze_function; likewise.
11129         (add_new_function): Move to ipa-inline-analysis.c.
11130         (inline_generate_summary): Likewise.
11131         (inline_read_summary): Likewise.
11132         (inline_write_summary): Likewise.
11133         * Makefile.in (ipa-inline-analysis.c): New file.
11134
11135 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11136
11137         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
11138         * configure: Regenerate.
11139
11140 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
11141
11142         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
11143         instead of tree_common.
11144         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
11145         Likewise.
11146         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
11147         TS_TYPED rather than TS_COMMON.
11148         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
11149
11150 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
11151
11152         PR target/45263
11153         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
11154         r20 around calls of __tablejump_elpm__
11155
11156 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
11157
11158         PR middle-end/48591
11159         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
11160         NULL.
11161         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
11162
11163 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
11164
11165         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
11166         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
11167         (cfi_vec): New typedef.
11168         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
11169         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
11170         (cie_cfi_vec): New static variable.
11171         (cie_cfi_head): Delete.
11172         (add_cfi): Accept a cfi_vec * as first argument. All callers and
11173         declaration changed. Use vector rather than list operations.
11174         (new_cfi): Don't initialize the dw_cfi_next field.
11175         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
11176         rather than list operations.
11177         (lookup_cfa): Use vector rather than list operations.
11178         (output_cfis): New argument upto. Accept a cfi_vec rather than
11179         a dw_cfi_ref list head as argument. All callers changed.
11180         Iterate over the vector using upto as a maximum index.
11181         (output_all_cfis): New static function.
11182         (output_fde): Use vector rather than list operations. Use the
11183         new upto argument for output_cfis rather than manipulating a
11184         list.
11185         (dwarf2out_begin_prologue): Change initializations to match
11186         new struct members.
11187         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
11188         from the vector length rather than searching for the end of a list.
11189         Use output_all_cfis.
11190         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
11191
11192 2011-04-13  Nick Clifton  <nickc@redhat.com>
11193
11194         * config/rx/rx.md (movmemsi): Do not use this pattern when
11195         volatile pointers are involved.
11196
11197 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
11198
11199         * config/i386/sse.md (pinsrbits): Remove.
11200         (sse2_packsswb): Merge with *avx_packsswb.
11201         (sse2_packssdw): Merge with *avx_packssdw.
11202         (sse2_packuswb): Merge with *avx_packuswb.
11203         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
11204         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
11205         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
11206         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
11207         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
11208         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
11209         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
11210         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
11211         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
11212         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
11213         (sse2_loadld): Merge with *avx_loadld.
11214         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
11215         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
11216         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
11217         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
11218         (vec_concatv2di): Merge with *vec_concatv2di_avx.
11219
11220 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
11221
11222         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
11223         calling TREE_CHAIN.
11224         * print-tree.c (print_node): Likewise.
11225         * tree-inline.c (copy_tree_r): Likewise.
11226         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
11227         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
11228         instead of TS_COMMON.
11229         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
11230         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
11231         (copy_node_stat): Zero TREE_CHAIN only if necessary.
11232         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
11233         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
11234         ...and these...
11235         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
11236         * tree.h: ...here.
11237         (TREE_CHAIN): Check for a TS_COMMON structure.
11238         (TREE_TYPE): Check for a TS_TYPED structure.
11239
11240 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
11241
11242         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
11243         cgraph_get_create_node instead of cgraph_node.
11244
11245 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11246
11247         * c-parser.c (c_parser_initelt): Updated call to
11248         objc_build_message_expr.
11249         (c_parser_postfix_expression): Likewise.
11250
11251 2011-04-12  Kai Tietz  <ktietz@redhat.com>
11252
11253         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
11254         MASK_MS_BITFIELD_LAYOUT bit.
11255
11256 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11257
11258         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
11259         assert it is always true.
11260         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
11261         moves.
11262
11263 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
11264
11265         * c-parser.c (c_lex_one_token): Rewritten conditional used when
11266         compiling Objective-C to be more efficient.
11267
11268 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
11269
11270         * opts-common.c (decode_cmdline_options_to_array): Remove variable
11271         argv_copied.
11272
11273 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11274
11275         * recog.h, genoutput.c, optabs.c: Revert last patch.
11276
11277 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11278
11279         PR target/48090
11280         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
11281
11282 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11283
11284         * recog.h (insn_operand_data): Add an "allows_mem" field.
11285         * genoutput.c (output_operand_data): Initialize it.
11286         * optabs.c (maybe_legitimize_operand_same_code): New function.
11287         (maybe_legitimize_operand): Use it when matching the original
11288         op->value.
11289
11290 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11291
11292         * genpreds.c (process_define_predicate): Move most processing
11293         to gensupport.c.  Continue to validate the expression.
11294         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
11295         (process_define_predicate): Move processing to gensupport.c.
11296         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
11297         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
11298         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
11299         argument.
11300         (valid_predicate_name_p): New function, split out from old
11301         genpreds.c:process_define_predicate.
11302         (process_define_predicate): New function, combining code from
11303         old genpreds.c and genrecog.c functions.
11304         (process_rtx): Call it for DEFINE_PREDICATE and
11305         DEFINE_SPECIAL_PREDICATE.
11306
11307 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
11308
11309         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
11310         size of a '%A' memory reference.
11311         (T_DREG, T_QREG): New neon_builtin_type_bits.
11312         (arm_init_neon_builtins): Assert that the load and store operands
11313         are neon_struct_operands.
11314         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
11315         (NEON_ARG_MEMORY): New builtin_arg.
11316         (neon_dereference_pointer): New function.
11317         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
11318         Handle NEON_ARG_MEMORY.
11319         (arm_expand_neon_builtin): Update after above interface changes.
11320         Use NEON_ARG_MEMORY for loads and stores.
11321         * config/arm/predicates.md (neon_struct_operand): New predicate.
11322         * config/arm/iterators.md (V_two_elem): Tweak formatting.
11323         (V_three_elem): Use BLKmode for accesses that have no associated mode.
11324         (V_four_elem): Tweak formatting.
11325         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
11326         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
11327         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
11328         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
11329         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
11330         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
11331         (neon_vst4<mode>): Replace pointer operand with a memory operand.
11332         Use %A in the output template.
11333         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
11334         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
11335         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
11336         the width of the memory access.  Remove post-increment.
11337         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
11338
11339 2011-04-12  Nick Clifton  <nickc@redhat.com>
11340
11341         * config/v850/v850.c (expand_prologue): Do not use the CALLT
11342         instruction for interrupt handlers if the target is the basic V850
11343         architecture.
11344         (expand_epilogue): Likewise.
11345
11346 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11347
11348         PR rtl-optimization/48549
11349         * combine.c (propagate_for_debug): Also stop after BB_END of
11350         this_basic_block.  Process LAST and just stop processing after it.
11351         (combine_instructions): If last_combined_insn has been deleted,
11352         set last_combined_insn to its PREV_INSN.
11353
11354 2011-04-12  Richard Guenther  <rguenther@suse.de>
11355
11356         PR tree-optimization/46076
11357         * gimple.h (struct gimple_statement_call): Add fntype field.
11358         (gimple_call_fntype): Adjust.
11359         (gimple_call_set_fntype): New function.
11360         * gimple.c (gimple_build_call_1): Set the call function type.
11361         * gimplify.c (gimplify_call_expr): Preserve the function
11362         type the frontend used for the call.
11363         (gimplify_modify_expr): Likewise.
11364         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
11365         function type.
11366         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
11367         function type.
11368         * tree-ssa.c (useless_type_conversion_p): Function pointer
11369         conversions are useless.
11370
11371 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11372
11373         * cgraph.h (cgraph_node): Remove function declaration.
11374         (cgraph_create_node): Declare.
11375         (cgraph_get_create_node): Likewise.
11376         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
11377         Updated all callers.
11378         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
11379         the decl does not already exist.  Call cgraph_get_create_node instead
11380         of cgraph_node.
11381         (cgraph_get_create_node): New function.
11382         (cgraph_same_body_alias): Update comment.
11383         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
11384         assert it does not return NULL.
11385         (cgraph_update_edges_for_call_stmt): Likewise.
11386         (cgraph_clone_edge): Likewise.
11387         (cgraph_create_virtual_clone): Likewise.
11388         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
11389         instead of cgraph_node.
11390         (cgraph_add_new_function): Call cgraph_create_node or
11391         cgraph_get_create_node instead of cgraph_node.
11392         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
11393         instead of cgraph_node.
11394         (record_eh_tables): Likewise.
11395         (mark_address): Likewise.
11396         (mark_load): Likewise.
11397         (build_cgraph_edges): Call cgraph_get_create_node instead
11398         of cgraph_node.
11399         (rebuild_cgraph_edges): Likewise.
11400         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
11401         instead of cgraph_node.
11402         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
11403         cgraph_node.
11404         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
11405         cgraph_create_node instead of cgraph_node.
11406         * c-decl.c (finish_function): Call cgraph_get_create_node instead
11407         of cgraph_node.
11408         * lto-cgraph.c (input_node): Likewise.
11409         * lto-streamer-in.c (input_function): Likewise.
11410         * varasm.c (mark_decl_referenced): Likewise.
11411         (assemble_alias): Likewise.
11412
11413 2011-04-12  Martin Jambor  <mjambor@suse.cz>
11414
11415         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
11416         instead of cgraph_node and assert it does not return NULL.
11417         * lto-streamer-in.c (lto_read_body): Likewise.
11418         * omp-low.c (new_omp_context): Likewise.
11419         (create_task_copyfn): Likewise.
11420         * tree-emutls.c (lower_emutls_function_body): Likewise.
11421         * matrix-reorg.c (transform_allocation_sites): Likewise.
11422
11423 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
11424
11425         PR c/48552
11426         * c-typeck.c (build_asm_expr): Error out on attempts to use
11427         void type outputs or inputs for constraints that allow reg or
11428         don't allow memory.
11429
11430 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
11431             Richard Earnshaw  <rearnsha@arm.com>
11432
11433         PR target/48250
11434         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
11435         to use sign-magnitude offsets. Reject unsupported unaligned
11436         cases. Add detailed description in comments.
11437         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
11438         condition from TARGET_32BIT to TARGET_ARM.
11439
11440 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
11441
11442         * tree.h (struct typed_tree): New.
11443         (struct tree_common): Include it instead of tree_base.
11444         (TREE_TYPE): Update for new location of type field.
11445         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
11446         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
11447         (union tree_node): Add typed field.
11448         * treestruct.def (TS_TYPED): New.
11449         * lto-streamer.c (check_handled_ts_structures): Handle it.
11450         * tree.c (MARK_TS_TYPED): New macro.
11451         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
11452
11453 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
11454
11455         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
11456         (force_nonfallthru): Do not alter the loop nest if no basic block
11457         was created.
11458
11459 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11460
11461         * config/i386/sse.md (VI): New mode iterator.
11462         (SSEMODEI): Remove.
11463         (AVX256MODEI): Ditto.
11464         (AVXMODEF4P): Ditto.
11465         (avxvecpsmode): Ditto.
11466         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
11467         (sse2_andnot<mode>3): New expander.
11468         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
11469         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
11470         (<any_logic:code><mode>3): Use VI mode iterator.
11471         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
11472         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
11473         (*andnottf3): Handle AVX three-operand constraints.
11474         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
11475
11476 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11477             Robert Millan  <rmh@gnu.org>
11478
11479         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
11480         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
11481         GNU_USER_DYNAMIC_LINKER64): Define.
11482         (REG_NAME): Don't undefine.
11483         (MD_UNWIND_SUPPORT): Undefine.
11484         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
11485         (REG_NAME): Don't undefine.
11486         (MD_UNWIND_SUPPORT): Undefine.
11487         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
11488
11489 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11490
11491         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
11492         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
11493
11494 2011-04-11  Xinliang David Li  <davidxl@google.com>
11495
11496         * value-profile.c (check_ic_target): New function.
11497         (gimple_ic_transform): Sanity check indirect call target.
11498         * gimple-low.c (gimple_check_call_args): Interface change.
11499         (gimple_check_call_matching_types): New function.
11500         * tree-inline.c (tree_can_inline_p): Call new function.
11501
11502 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
11503
11504         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
11505         tree-pretty-print.h & realmpfr.h.
11506
11507 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
11508
11509         PR middle-end/48464
11510         * ira.c (setup_pressure_classes): Fix typo in loop condition.
11511         (setup_allocno_and_important_classes): Ditto.
11512
11513 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11514
11515         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
11516         GNU_USER_DYNAMIC_LINKER.
11517         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
11518         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11519         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
11520         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11521         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11522         GNU_USER_TARGET_OS_CPP_BUILTINS.
11523         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
11524         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11525         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11526         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11527         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
11528         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11529         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11530         GNU_USER_TARGET_OS_CPP_BUILTINS.
11531         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11532         GNU_USER_DYNAMIC_LINKER.
11533         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11534         GNU_USER_TARGET_OS_CPP_BUILTINS.
11535         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
11536         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11537         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
11538         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11539         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
11540         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
11541         GNU_USER_DYNAMIC_LINKER64): Remove.
11542         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
11543         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11544         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11545         GNU_USER_DYNAMIC_LINKER.
11546         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11547         GNU_USER_TARGET_OS_CPP_BUILTINS.
11548         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11549         GNU_USER_TARGET_OS_CPP_BUILTINS.
11550         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
11551         to GNU_USER_TARGET_OS_CPP_BUILTINS.
11552         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
11553         GNU_USER_TARGET_OS_CPP_BUILTINS.
11554         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
11555         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
11556         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11557         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
11558         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11559         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11560         GNU_USER_DYNAMIC_LINKER.
11561         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
11562         GNU_USER_TARGET_OS_CPP_BUILTINS.
11563         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
11564         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11565         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11566         GNU_USER_DYNAMIC_LINKER.
11567         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11568         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11569         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
11570         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11571         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11572         GNU_USER_DYNAMIC_LINKER.
11573         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
11574         GNU_USER_DYNAMIC_LINKERN32.
11575         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
11576         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
11577         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
11578         GNU_USER_DYNAMIC_LINKER32.
11579         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
11580         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11581         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11582         GNU_USER_DYNAMIC_LINKER.
11583         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
11584         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11585         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
11586         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11587         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11588         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
11589         GNU_USER_DYNAMIC_LINKER32.
11590         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
11591         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
11592         GNU_USER_DYNAMIC_LINKER.
11593         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
11594         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11595         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
11596         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
11597         GNU_USER_DYNAMIC_LINKER64.
11598         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
11599         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11600         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11601         GNU_USER_DYNAMIC_LINKER.
11602         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
11603         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11604         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
11605         GNU_USER_DYNAMIC_LINKER.
11606         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
11607         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11608         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
11609         GNU_USER_DYNAMIC_LINKER32.
11610         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
11611         GNU_USER_DYNAMIC_LINKER64.
11612         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
11613         GNU_USER_DYNAMIC_LINKER64.
11614         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
11615         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11616         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
11617         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
11618         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
11619
11620 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11621
11622         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
11623         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
11624         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
11625         GNU_USER_DYNAMIC_LINKER.
11626         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
11627         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
11628         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
11629         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
11630         GNU_USER_DYNAMIC_LINKER64.
11631         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
11632         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
11633         GNU_USER_LINK_EMULATION.
11634         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
11635         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
11636         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
11637         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
11638         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
11639         CPP_SPEC, CC1_SPEC): Remove.
11640         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
11641         (GNU_USER_DYNAMIC_LINKER): Define.
11642         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
11643         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
11644         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
11645         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
11646         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
11647         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
11648         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
11649         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
11650         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
11651         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
11652         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
11653         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
11654         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
11655         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
11656         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
11657         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
11658         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11659         GNU_USER_DYNAMIC_LINKER.
11660         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11661         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11662         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11663         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11664         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
11665         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
11666         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
11667         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
11668         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
11669         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
11670
11671 2011-04-11  Kai Tietz  <ktietz@redhat.com>
11672
11673         PR target/9601
11674         PR target/11772
11675         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
11676         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
11677         comment.
11678         (ix86_is_msabi_thiscall): Removed.
11679         (ix86_is_type_thiscall): Likewise.
11680         (ix86_get_callcvt): New function.
11681         (ix86_comp_type_attributes): Simplify check.
11682         (ix86_function_regparm): Use ix86_get_callcvt for calling
11683         convention attribute checks.
11684         (ix86_return_pops_args): Likewise.
11685         (ix86_static_chain): Likewise.
11686         (x86_this_parameter): Likewise.
11687         (x86_output_mi_thunk): Likewise.
11688         (ix86_function_type_abi): Optimize check for types without attributes.
11689         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
11690         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
11691         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
11692         by flag-values.
11693         (IX86_BASE_CALLCVT): Helper macro.
11694         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11695         Use ix86_get_callcvt for calling convention attribute checks and avoid
11696         symbol-decoration for stdcall in TARGET_RTD case.
11697         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
11698         Likewise.
11699         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
11700         for declaration.
11701
11702 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
11703
11704         * config/i386/sse.md (VI_128): New mode iterator.
11705         (VI12_128): Rename from SSEMODE12.
11706         (VI14_128): Rename from SSEMODE14.
11707         (VI124_128): New mode iterator.
11708         (VI24_128): Rename from SSEMODE248.
11709         (VI248_128): Rename from SSEMODE248.
11710         (SSEMODE124C8): Remove.
11711         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
11712         (*sse2_<plusminus_insn><mode>3): Merge with
11713         *avx_<plusminus_insn><mode>3.
11714         (*mulv8hi3): Merge with *avx_mulv8hi3.
11715         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
11716         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
11717         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
11718         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
11719         (ashr<mode>3): Merge with *avx_ashr<mode>3.
11720         (lshr<mode>3): Merge with *avx_lshr<mode>3.
11721         (ashl<mode>3): Merge with *avx_ashl<mode>3.
11722         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
11723         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
11724         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
11725         (*<smaxmin:code>v8hi3): Ditto.
11726         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
11727         (*<smaxmin:code>v16qi3): Ditto.
11728         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
11729         (*sse2_eq<mode>3): Ditto.
11730         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
11731         (*sse2_gt<mode>3): Ditto.
11732         (vcondv2di): Split out of vcond<mode>.
11733         (vconduv2di): Split out of vcondu<mode>.
11734
11735 2011-04-11  Richard Guenther  <rguenther@suse.de>
11736
11737         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
11738         before calling tree_low_cst.
11739
11740 2011-04-11  Richard Guenther  <rguenther@suse.de>
11741
11742         * stor-layout.c (layout_type): Compute all array index size operations
11743         in the original type.
11744         (initialize_sizetypes): Add comment.
11745         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
11746
11747 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
11748
11749         * common.opt (Tbss=, Tdata=, Ttext=): New options.
11750
11751 2011-04-11  Martin Jambor  <mjambor@suse.cz>
11752
11753         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
11754         of cgraph_node, handle NULL return value.
11755         (cgraph_global_info): Likewise.
11756         (cgraph_rtl_info): Likewise.
11757         * tree-inline.c (estimate_num_insns): Likewise.
11758         * gimplify.c (unshare_body): Likewise.
11759         (unvisit_body): Likewise.
11760         (gimplify_body): Likewise.
11761         * predict.c (optimize_function_for_size_p): Likewise.
11762         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
11763         (call_may_clobber_ref_p_1): Likewise.
11764         * varasm.c (function_section_1): Likewise.
11765         (assemble_start_function): Likewise.
11766
11767 2011-04-11  Martin Jambor  <mjambor@suse.cz>
11768
11769         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
11770         of cgraph_node.
11771         * final.c (rest_of_clean_state): Likewise.
11772         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
11773         * passes.c (pass_init_dump_file): Likewise.
11774         (execute_all_ipa_transforms): Likewise.
11775         (function_called_by_processed_nodes_p): Likewise.
11776         * predict.c (maybe_hot_frequency_p): Likewise.
11777         (probably_never_executed_bb_p): Likewise.
11778         (compute_function_frequency): Likewise.
11779         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
11780         (unnest_nesting_tree_1): Likewise.
11781         (lower_nested_functions): Likewise.
11782         * tree-optimize.c (execute_fixup_cfg): Likewise.
11783         (tree_rest_of_compilation): Likewise.
11784         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
11785         * tree-sra.c (ipa_early_sra): Likewise.
11786         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
11787         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
11788         * ipa.c (record_cdtor_fn): Likewise.
11789         * ipa-inline.c (cgraph_early_inlining): Likewise.
11790         (compute_inline_parameters_for_current): Likewise.
11791         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
11792         * ipa-pure-const.c (local_pure_const): Likewise.
11793         * ipa-split.c (split_function): Likewise.
11794         (execute_split_functions): Likewise.
11795         * cgraphbuild.c (build_cgraph_edges): Likewise.
11796         (rebuild_cgraph_edges): Likewise.
11797         (cgraph_rebuild_references): Likewise.
11798         (remove_cgraph_callee_edges): Likewise.
11799         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
11800         (verify_cgraph_node): Likewise.
11801         (cgraph_analyze_functions): Likewise.
11802         (cgraph_preserve_function_body_p): Likewise.
11803         (save_inline_function_body): Likewise.
11804         (save_inline_function_body): Likewise.
11805         * tree-inline.c (copy_bb): Likewise.
11806         (optimize_inline_calls): Likewise.
11807
11808 2011-04-11  Martin Jambor  <mjambor@suse.cz>
11809
11810         PR tree-optimization/48195
11811         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
11812         ipa_check_create_edge_args.
11813         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
11814         ipa_check_create_edge_args.
11815         * ipa-inline.c (inline_generate_summary): Do not call
11816         ipa_check_create_node_params and ipa_check_create_edge_args.
11817         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
11818         ipa_check_create_edge_args.
11819
11820 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
11821
11822         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
11823         instead of loop.
11824         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
11825         * function.c (record_hard_reg_sets): Likewise.
11826         * ira.c (compute_regs_asm_clobbered): Likewise.
11827         * sched-deps.c (sched_analyze_1): Likewise.
11828         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
11829
11830 2011-04-09  Xinliang David Li  <davidxl@google.com>
11831
11832         PR tree-optimization/PR48484
11833         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
11834         has_valid_pred lazily
11835
11836 2011-04-09  Duncan Sands  <baldrick@free.fr>
11837
11838         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
11839
11840 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
11841
11842         * combine.c (combine_validate_cost): Adjust comments.  Set registered
11843         cost of I0 to zero at the end, if any.
11844
11845 2011-04-08  Xinliang David Li  <davidxl@google.com>
11846
11847         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
11848         to insane profile data.
11849
11850 2011-04-08  Xinliang David Li  <davidxl@google.com>
11851
11852         * ipa-cp.c (ipcp_update_profiling): Correct
11853          negative scale factor due to insane profile data.
11854
11855 2011-04-08  Xinliang David Li  <davidxl@google.com>
11856
11857         * final.c (dump_basic_block_info): New function.
11858         (final): Dump basic block.
11859         (final_scan_insn): Remove old dump.
11860
11861 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
11862
11863         PR target/47829
11864         * config.gcc (i386-*-freebsd): Disable unwind table generation for
11865         crtbegin/crtend.
11866
11867 2011-04-08  Michael Matz  <matz@suse.de>
11868
11869         PR middle-end/48389
11870         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
11871         functions.
11872         (rebuild_jump_labels): Call rebuild_jump_labels_1.
11873         * rtl.h (rebuild_jump_labels_chain): Declare.
11874         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
11875         insns inserted on edges.
11876
11877 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
11878
11879         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
11880         * config/arm/arm-arches.def: New.
11881         * config/arm/arm-opts.h: New.
11882         * config/arm/genopt.sh: New.
11883         * config/arm/arm-tables.opt: New (generated).
11884         * config/arm/arm.c (arm_handle_option, arm_target_help,
11885         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
11886         (all_architectures): Get most table contents from arm-arches.def.
11887         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
11888         arm_selected_tune here.
11889         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
11890         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
11891         (march=, mcpu=, mtune=): Use Enum and Var.
11892         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
11893         (arm.o): Update dependencies.
11894
11895 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
11896
11897         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
11898         of header_file.
11899         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
11900         (write_typed_alloc_defns): Likewise.
11901         (main): Calls write_typed_alloc_defns with output_header.
11902
11903 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
11904
11905         PR inline-asm/48435
11906         * ira-color.c (setup_profitable_hard_regs): Add comments.
11907         Don't take prohibited hard regs into account.
11908         (setup_conflict_profitable_regs): Rename to
11909         get_conflict_profitable_regs.
11910         (check_hard_reg_p): Check prohibited hard regs.
11911
11912 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
11913
11914         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
11915         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
11916         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
11917
11918 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11919
11920         PR target/48366
11921         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
11922         move from floating point to shift amount register.
11923         (emit_move_sequence): Remove secondary reload support for floating
11924         point to shift amount amount register copies.
11925         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
11926         amount register copies.
11927         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
11928         register, return false if mode isn't a scalar integer mode.
11929         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
11930
11931 2011-04-08  Richard Guenther  <rguenther@suse.de>
11932
11933         * gimple.c (gimple_call_flags): Remove kludge.
11934
11935 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
11936
11937         * sel-sched.c (sel_region_init): Move call to
11938         sel_setup_region_sched_flags after setup_current_loop_nest.
11939
11940 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
11941
11942         PR rtl-optimization/48272
11943         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
11944         init_insn_reg_pressure_info.  Adjust a caller.
11945         * sched-int.h (init_insn_reg_pressure_info): Declare.
11946         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
11947         when sched-pressure is enabled.
11948
11949 2011-04-08  Richard Guenther  <rguenther@suse.de>
11950
11951         * gimple.c (gimple_set_modified): Do not queue calls to
11952         MODIFIED_NORETURN_CALLS here ...
11953         * tree-ssa-operands.c (update_stmt_operands): ... but here.
11954
11955 2011-04-08  Richard Guenther  <rguenther@suse.de>
11956
11957         PR lto/48467
11958         * toplev.c (lang_dependent_init): Do not open asm_out_file
11959         in WPA mode, nor perform debug machinery initialization.
11960         (finalize): Do not unlink asm_out_file in WPA mode.
11961
11962 2011-04-08  Richard Guenther  <rguenther@suse.de>
11963
11964         * gimple.h (gimple_call_fntype): New function.
11965         (gimple_call_return_type): Use it.
11966         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
11967         * gimple-low.c (gimple_check_call_args): Likewise.
11968         * gimple.c (gimple_call_flags): Likewise.
11969         (gimple_call_arg_flags): Likewise.
11970         (gimple_call_return_flags): Likewise.
11971         * tree-cfg.c (verify_gimple_call): Likewise.
11972         (do_warn_unused_result): Likewise.
11973         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
11974         * value-prof.c (gimple_ic_transform): Fix fndecl check.
11975
11976 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
11977
11978         PR rtl-optimization/48235
11979         * sel-sched.c (code_motion_process_successors): Recompute the last
11980         insn in basic block if control flow changed.
11981         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
11982         Update condition for ilist_remove.
11983
11984 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
11985
11986         PR rtl-optimization/48302
11987         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
11988         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
11989         it to record added preheader blocks.
11990         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
11991         on to sel_add_loop_preheaders.
11992         (sel_region_init): Move call to setup_current_loop_nest after
11993         sel_init_bbs.
11994
11995 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
11996
11997         PR target/48273
11998         * cfgloop.h (loop_has_exit_edges): New helper.
11999         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
12000         non-clonable.
12001         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
12002         that have no exit edges.
12003
12004 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
12005
12006         PR rtl-optimization/48442
12007         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
12008         all callers.  Adjust assert.
12009
12010 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
12011
12012         PR tree-optimization/48377
12013         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
12014         is_packed to true even for types with smaller TYPE_ALIGN than
12015         TYPE_SIZE.
12016
12017 2011-04-08  Richard Guenther  <rguenther@suse.de>
12018
12019         PR bootstrap/48513
12020         * doc/tm.texi: Re-generate.
12021
12022 2011-04-08  Wei Guozhi  <carrot@google.com>
12023
12024         PR target/47855
12025         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
12026         * config/arm/arm.c (arm_attr_length_push_multi): New function.
12027         * config/arm/arm.md (*push_multi): Change the length computation to
12028         call a C function.
12029
12030 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
12031
12032         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
12033         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
12034         * doc/tm.texi: Regenerate.
12035         * system.h (ASM_OUTPUT_BSS): Poison.
12036         * varasm.c (asm_output_bss): Remove function.
12037         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
12038
12039         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
12040         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
12041         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
12042         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12043         Likewise.
12044         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12045         Likewise.
12046         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
12047         Likewise.
12048         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
12049
12050 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12051
12052         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
12053         EnumValue lines.
12054
12055 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
12056
12057         * config/m68k/m68k.c (m68k_handle_option): Don't handle
12058         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
12059         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
12060         OPT_mcpu32.
12061         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12062         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
12063         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
12064         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
12065         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
12066         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
12067         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12068         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
12069         options.  Don't map other m68k options manually.  Don't handle
12070         old-style options as canonical.
12071         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
12072         * doc/install.texi (m68k-*-*): Document binutils version requirement.
12073
12074 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
12075
12076         * basic-block.h (force_nonfallthru): Move to...
12077         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
12078         (force_nonfallthru): ...here.
12079         * cfghooks.c (force_nonfallthru): New function.
12080         * cfgrtl.c (force_nonfallthru): Rename into...
12081         (rtl_force_nonfallthru): ...this.
12082         (commit_one_edge_insertion): Do not set AUX field.
12083         (commit_edge_insertions): Do not discover new basic blocks.
12084         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
12085         (cfg_layout_rtl_cfg_hooks): Likewise.
12086         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
12087         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
12088         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
12089
12090 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
12091
12092         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
12093         Remove macros.
12094
12095 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
12096
12097         * config/i386/sse.md: Update copyright year.
12098         (avxcvtvecmode): Remove.
12099         (sse_movhlps): Merge with *avx_movhlps.
12100         (sse_movlhps): Merge with *avx_movlhps.
12101         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
12102         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
12103         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
12104         (sse_loadhps): Merge with *avx_loadhps.
12105         (sse_storelps): Merge with *avx_storelps.
12106         (sse_loadlps): Merge with *avx_loadlps.
12107         (sse_movss): Merge with *avx_movss.
12108         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
12109         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
12110         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
12111         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
12112         (vec_set<mode>_0): Ditto.
12113         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
12114         (sse4_1_insertps): Merge with *avx_insertps.
12115         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
12116         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
12117         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
12118         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
12119         (sse2_storehpd): Merge with *avx_storehpd.
12120         (sse2_loadhpd): Merge with *avx_loadhpd.
12121         (sse2_loadlpd): Merge with *avx_loadlpd.
12122         (sse2_movsd): Merge with *avx_movsd.
12123         (*vec_concatv2df): Merge with *vec_concatv2df.
12124
12125 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
12126
12127         PR debug/48343
12128         * combine.c (combine_instructions): Add last_combined_insn,
12129         update it if insn is after it, pass it to all try_combine calls.
12130         (try_combine): Add last_combined_insn parameter, pass it instead of
12131         i3 to propagate_for_debug.
12132
12133 2011-04-07  Nick Clifton  <nickc@redhat.com>
12134
12135         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
12136         to handle MDR <-> data register transfers.
12137         (movhi_internal): Likewise.
12138
12139 2011-04-07  Alan Modra  <amodra@gmail.com>
12140
12141         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
12142         previous stack info.
12143
12144 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12145
12146         PR target/43920
12147         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
12148         flow_find_cross_jump.  Swap variables to implement backward replacement.
12149         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
12150
12151 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12152
12153         PR target/43920
12154         * cfgcleanup.c (walk_to_nondebug_insn): New function.
12155         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
12156         and bb2.
12157         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
12158         src1 or src2.  Redirect edges to the last basic block.  Update
12159         frequency and count on multiple basic blocks in case of fallthru.
12160
12161 2011-04-07  Tom de Vries  <tom@codesourcery.com>
12162
12163         PR target/43920
12164         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
12165         function.
12166         (old_insns_match_p): Change return type.  Replace return false/true
12167         with return dir_none/dir_both.  Use can_replace_by.
12168         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
12169         direction from dir_p.  Register replacement direction in dir, last_dir
12170         and afterlast_dir.  Handle new return type of old_insns_match_p using
12171         merge_dir.  Return replacement direction in dir_p.
12172         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
12173         return type of old_insns_match_p.
12174         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
12175         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
12176         flow_find_cross_jump.
12177         * basic-block.h (enum replace_direction): New type.
12178         (flow_find_cross_jump): Add parameter to declaration.
12179
12180 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12181
12182         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
12183         (AVXMODEDCVTPS2DQ): Ditto.
12184         (VEC_FLOAT_MODE): Ditto.
12185         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
12186         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12187         (<any_logic:code><mode>3): Use VF mode iterator.
12188         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
12189         Use VF mode iterator.
12190         (copysign<mode>3): Use VF mode iterator.
12191         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
12192         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
12193         (*<any_logic:code><MODEF:mode>3): Merge with
12194         *avx_<any_logic:code><MODEF:mode>3.
12195         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
12196         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
12197         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
12198         (avx_cvtdq2ps<avxmodesuffix>): Remove.
12199         (sse2_cvtdq2ps): Use %v modifier.
12200         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
12201         (avx_cvtps2dq<avxmodesuffix>): Remove.
12202         (sse2_cvtps2dq): Use %v modifier.
12203         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
12204         (avx_cvttps2dq<avxmodesuffix>): Remove.
12205         (sse2_cvttps2dq): Use %v modifier.
12206         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
12207         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
12208         (sse2_cvtsd2siq): Fix insn template.
12209         (sse2_cvtsd2siq_2): Ditto.
12210         (sse2_cvttsd2siq): Ditto.
12211         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
12212         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
12213
12214 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12215
12216         * gcov-io.c: Use GCC Runtime Library Exception.
12217
12218 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
12219
12220         PR debug/48466
12221         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
12222         as base_reg whatever register reg has been eliminated to, instead
12223         of hardcoding STACK_POINTER_REGNUM.
12224
12225 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
12226
12227         * doc/tm.texi.in: Document C target hooks as separate from general
12228         target hooks.
12229         * doc/tm.texi: Regenerate.
12230         * genhooks.c (struct hook_desc): Add docname field.
12231         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
12232         docname field.
12233         (hook_array): Include c-target.def.
12234         (emit_documentation): Use docname field in output.
12235         (emit_init_macros): Take docname argument.  Only emit definitions
12236         for hooks matching docname.
12237         (main): Expect additional arguments in all cases.  Pass argument
12238         to emit_init_macros.
12239         * target.def: Move initial macro definitions and comments to
12240         target-hooks-macros.h.
12241         (gcc_targetcm): Move to c-family/c-target.def.
12242         * target.h (targetcm): Move declaration to c-family/c-target.h.
12243         * targhooks.c (default_handle_c_option): Move to
12244         c-family/c-opts.c.
12245         * targhooks.h (default_handle_c_option): Move declaration to
12246         c-family/c-common.h.
12247         * target-hooks-macros.h: New file.
12248         * config.gcc (target_has_targetcm): Define and use to add to
12249         c_target_objs and cxx_target_objs.
12250         * config/default-c.c: New file.
12251         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
12252         of target.h and target-def.h.
12253         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
12254         (darwin_objc_construct_string, darwin_cfstring_ref_p,
12255         darwin_check_cfstring_format_arg): Make static.
12256         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12257         TARGET_STRING_OBJECT_REF_TYPE_P,
12258         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
12259         * config/darwin-protos.h (darwin_objc_construct_string,
12260         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
12261         declare.
12262         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
12263         TARGET_STRING_OBJECT_REF_TYPE_P,
12264         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
12265         * config/t-darwin (darwin-c.o): Update dependencies.
12266         * system.h (TARGET_HAS_TARGETCM): Poison.
12267         * Makefile.in (TARGET_H): Update.
12268         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
12269         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
12270         (default-c.o): New target.
12271         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
12272         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
12273         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
12274         c-target.def.
12275         (build/genhooks.o): Update dependencies.
12276
12277 2011-04-06  Richard Guenther  <rguenther@suse.de>
12278
12279         * ipa-inline.c (enum inlining_mode): Remove.
12280         (cgraph_flatten): Use some other token.
12281         (cgraph_edge_early_inlinable_p): New function, split out from ...
12282         (cgraph_perform_always_inlining): New function, split out from ...
12283         (cgraph_decide_inlining_incrementally): ... here.
12284         (cgraph_mark_inline_edge): Adjust.
12285         (cgraph_early_inlining): Re-structure.
12286         (pass_early_inline): Require SSA form.
12287
12288 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
12289             Julian Brown  <julian@codesourcery.com>
12290             Mark Shinwell  <shinwell@codesourcery.com>
12291
12292         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
12293         LO_REGS only for Thumb-1.
12294         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
12295         be used in short instructions when optimising for size on Thumb-2.
12296
12297 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12298
12299         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
12300         associated with user returns to be preserved.
12301
12302 2011-04-06  Tristan Gingold  <gingold@adacore.com>
12303
12304         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
12305         symbol_queue_size, DBXOUT_DECR_NESTING,
12306         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
12307         if XCOFF_DEBUGGING_INFO.
12308
12309 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
12310
12311         * config/i386/i386.md (attribute isa): New.
12312         (attribute enabled): New.
12313         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
12314         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
12315         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
12316         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
12317         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
12318         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12319         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
12320         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
12321
12322         * config/i386/sse.md (VF): New mode iterator.
12323         (VF1): Ditto.
12324         (VF2): Ditto.
12325         (VF_128): Ditto.
12326         (SSEMODEF4): Remove.
12327         (attribute sse): Handle V8SF and V4DF modes.
12328         (<absneg:code><mode>2): Use VF mode iterator.
12329         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
12330         mode iterator.
12331         (<plusminus_insn><mode>3): Use VF mode iterator.
12332         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
12333         Use VF mode iterator.
12334         (<sse>_vm<plusminus_insn><mode>3): Merge with
12335         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
12336         (mul<mode>3): Use VF mode iterator.
12337         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
12338         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
12339         mode iterator.
12340         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
12341         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
12342         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
12343         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
12344         mode iterator.
12345         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
12346         Use VF1 mode iterator.
12347         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
12348         (sqrt<VF2:mode>2): New expander.
12349         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
12350         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
12351         and sqrtv2df2.  Use VF mode iterator.
12352         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
12353         mode iterator.
12354         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
12355         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
12356         Use VF1 mode iterator.
12357         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
12358         (<smaxmin:code><mode>3): Use VF mode iterator.
12359         (*<smaxmin:code><mode>3_finite): Merge with
12360         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
12361         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
12362         (<sse>_vm<smaxmin:code><mode>2): Merge with
12363         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
12364         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
12365         mode iterator.
12366         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
12367         mode iterator.
12368         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
12369         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
12370         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
12371         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
12372         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
12373         VF mode iterator.
12374         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
12375         Use VF_128 mode iterator.
12376         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
12377         mode iterator.
12378         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
12379         VF_128 mode iterator.
12380         (vcond<mode>): Use VF mode iterator.
12381         * config/i386/predicates.md (sse_comparison_operator): Merge with
12382         avx_comparison_float_operator.  Do not declare as special_predicate.
12383         * config/i386/i386.c (struct builtin_description): Update for renamed
12384         compare patterns.
12385         (ix86_expand_args_builtin): Ditto.
12386         (ix86_expand_sse_compare_mask): Ditto.
12387
12388 2011-04-06  Richard Guenther  <rguenther@suse.de>
12389
12390         * tree-inline.c (estimate_num_insns): For calls simply account
12391         for all passed arguments and a used return value.
12392
12393 2011-04-06  Richard Guenther  <rguenther@suse.de>
12394
12395         PR tree-optimization/47663
12396         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
12397         call_stmt_time fields.
12398         (cgraph_edge_inlinable_p): Declare.
12399         (cgraph_edge_recursive_p): New inline function.
12400         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
12401         (cgraph_clone_edge): Copy it.
12402         * ipa-inline.c (cgraph_estimate_edge_time): New function.
12403         Account for call stmt time.
12404         (cgraph_estimate_time_after_inlining): Take edge argument.
12405         (cgraph_estimate_edge_growth): Account call stmt size.
12406         (cgraph_estimate_size_after_inlining): Take edge argument.
12407         (cgraph_mark_inline_edge): Adjust.
12408         (cgraph_check_inline_limits): Likewise.
12409         (cgraph_recursive_inlining_p): Remove.
12410         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
12411         (cgraph_decide_recursive_inlining): Take edge argument and
12412         adjust.
12413         (cgraph_decide_inlining_of_small_functions): Do not avoid
12414         diags for recursive inlining here.
12415         (cgraph_flatten): Adjust.
12416         (cgraph_decide_inlining_incrementally): Likewise.
12417         (estimate_function_body_sizes): Remove call cost handling.
12418         (compute_inline_parameters): Initialize caller edge call costs.
12419         (cgraph_estimate_edge_growth): New function.
12420         (cgraph_estimate_growth): Use it.
12421         (cgraph_edge_badness): Likewise.
12422         (cgraph_check_inline_limits): Take an edge argument.
12423         (cgraph_decide_inlining_of_small_functions): Adjust.
12424         (cgraph_decide_inlining): Likewise.
12425         * tree-inline.c (estimate_num_insns): Only account for call
12426         return value if it is used.
12427         (expand_call_inline): Avoid diagnostics on recursive inline
12428         functions here.
12429         * lto-cgraph.c (lto_output_edge): Output edge call costs.
12430         (input_edge): Input edge call costs.
12431
12432 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12433
12434         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
12435
12436 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
12437
12438         * doc/invoke.texi (Spec Files): Fix typo.
12439
12440 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
12441
12442         * profile.c (branch_prob): Move declaration of local variable.  Remove
12443         obsolete ??? comment.  Expand the location explicitly instead of using
12444         the LOCATION_FILE and LOCATION_LINE macros.
12445
12446 2011-04-06  Wei Guozhi  <carrot@google.com>
12447
12448         PR target/47855
12449         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
12450         (arm_cond_branch): Likewise.
12451         (arm_cond_branch_reversed): Likewise.
12452         (arm_jump): Likewise.
12453         (push_multi): Likewise.
12454         * config/arm/constraints.md (Py): New constraint.
12455
12456 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12457
12458         PR bootstrap/48471
12459         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
12460         Move these...
12461         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
12462         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
12463         #ifdef DBX_DEBUGGING_INFO.
12464
12465 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
12466
12467         PR bootstrap/48403
12468         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
12469         if old and new states differ.
12470
12471 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12472
12473         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
12474         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
12475         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
12476         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
12477         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
12478         mcfv4e): Use Alias.
12479         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
12480         ColdFire options to -mcpu= options.
12481
12482 2011-04-05  Jeff Law  <law@redhat.com>
12483
12484         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
12485         check if BB is a successor of LOOP->header and return
12486         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
12487
12488 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12489
12490         * cprop.c (struct reg_use): Remove.
12491         (reg_use_table): Make an array of RTX.
12492         (find_used_regs, constprop_register, local_cprop_pass,
12493         bypass_block): Simplify users of reg_use_table.
12494         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
12495         on one of the uses found by find_used_regs.
12496
12497 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12498
12499         PR bootstrap/48469
12500         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
12501         declaration.
12502
12503 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12504
12505         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
12506         as an rtx.
12507         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
12508
12509 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
12510
12511         PR middle-end/48441
12512         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
12513
12514 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12515
12516         * combine.c: Include obstack.h.
12517         (struct insn_link): Define.
12518         (uid_log_links): Adjust type.
12519         (FOR_EACH_LOG_LINK): New macro.
12520         (insn_link_obstack): Declare.
12521         (alloc_insn_link): Define.
12522         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
12523         type of link variables.
12524         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
12525         (try_combine, record_promoted_values, distribute_notes): Likewise.
12526         (distribute_links): Likewise.  Tweak prototype.
12527         (clear_log_links): Delete.
12528         (adjust_for_new_dest): Call alloc_insn_link.
12529         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
12530
12531 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12532
12533         * gcse.c (modify_mem_list): Convert to an array of VECs.
12534         (canon_modify_mem_list, compute_transp): Tweak formatting.
12535         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
12536         (load_killed_in_block_p): Likewise.
12537         (record_last_mem_set_info): Likewise.
12538         (clear_modify_mem_tables): Likewise.
12539
12540 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12541
12542         PR middle-end/48461
12543         * function.c (emit_use_return_register_into_block): Only define if
12544         HAVE_return.
12545
12546 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
12547
12548         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
12549
12550 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
12551
12552         * config/rx/rx-opts.h: New.
12553         * config/rx/rx.c (rx_cpu_type): Remove.
12554         (rx_handle_option): Don't assert that global structures are in
12555         use.  Access variables via opts pointer.  Defer most handling of
12556         OPT_mint_register_.  Use error_at.
12557         (rx_option_override): Handle deferred OPT_mint_register_ here.
12558         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
12559         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
12560         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
12561         (rx_cpu_types): New Enum and EnumValue entries.
12562         (mint-register=): Use Defer and use Var accordingly.
12563
12564 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12565
12566         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
12567         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
12568         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
12569         Move these...
12570         (debug_free_queue, debug_nesting, symbol_queue_index):
12571         ...and these...
12572         * dbxout.c: ...to here.  Make static.
12573
12574 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
12575
12576         * gcse.c (modify_pair): Define.  Define a VEC of it.
12577         (canon_modify_mem_list): Convert to an array of VECs.
12578         (free_insn_expr_list_list): Delete.
12579         (clear_modify_mem_tables): Call VEC_free instead.
12580         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
12581         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
12582         (canon_list_insert, compute_transp): Likewise.
12583
12584 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12585
12586         PR target/43920
12587         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
12588         for size.
12589
12590 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12591
12592         PR target/43920
12593         * function.c (emit_use_return_register_into_block): New function.
12594         (thread_prologue_and_epilogue_insns): Use
12595         emit_use_return_register_into_block.
12596
12597 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12598
12599         PR target/43920
12600         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
12601         insn.
12602
12603 2011-04-05  Tom de Vries  <tom@codesourcery.com>
12604
12605         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
12606
12607 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
12608
12609         * config/arm/arm.md (define_constants for unspec): Replace with
12610         define_c_enum.
12611         (define_constants for unspecv): Replace with define_c_enum.
12612         * config/arm/neon.md (define_constants for unspec): Replace with
12613         define_c_enum.
12614
12615 2011-04-04  Richard Henderson  <rth@redhat.com>
12616
12617         PR bootstrap/48400
12618         * dwarf2out.c (output_line_info): Always emit line info from
12619         at least one section.
12620         (dwarf2out_init): Create text_section_line_info here ...
12621         (set_cur_line_info_table): ... not here.
12622
12623 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
12624
12625         PR target/48380
12626         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
12627         not called.
12628
12629         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
12630
12631 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
12632
12633         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
12634         (expr_equiv_p): Remove.
12635         (insert_set_in_table): Look at <dest, src> pair instead of expr.
12636         (hash_scan_set): Update call to insert_set_in_table.
12637         (dump_hash_table): Dump <dest, src> pair.
12638         (lookup_set): Simplify.  Lookup <dest, src> pair.
12639         (compute_transp): Remove, fold heavily simplified code into...
12640         (compute_local_properties): ...here.  Expect COMP and TRANSP
12641         unconditionally.
12642         (find_avail_set): Take set directly from struct expr.
12643         (find_bypass-set): Likewise.
12644         (bypass_block): Likewise.
12645         (cprop_insn): Likewise.  Remove redundant INSN_P test.
12646
12647         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
12648         checks on form of COND from find_implicit_sets to here.
12649         (find_implicit_sets): Cleanup control flow. Split critical edges
12650         if it exposes implicit sets.  Allocate/resize implicit_sets as
12651         necessary.
12652         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
12653         changed something.  Run df_analyze after find_implicit_sets if any
12654         edges were split.  Do not allocate implicit_sets here.
12655
12656         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
12657         (gcse_obstack): Renamed to cprop_obstack.
12658         (GNEW, GNEWVEC, GNEWVAR): Remove.
12659         (gmalloc): Remove.
12660         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
12661         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
12662         (gcse_alloc): Likewise, and rename to cprop_alloc.
12663         (alloc_gcse_men, free_gcse_mem): Remove.
12664         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
12665         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
12666         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
12667
12668         * cprop.c (oprs_not_set_p): Remove.
12669         (mark_set, mark_clobber): Remove.
12670         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
12671         (reg_not_set_p): New function.
12672         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
12673         (cprop_insn): Likewise.
12674         (cprop_jump): Use FOR_EACH_EDGE.
12675
12676 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
12677
12678         PR bootstrap/48403
12679         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
12680         (rank_for_schedule): Use scheduled_insns vector instead of
12681         last_scheduled_insn.
12682         (ok_for_early_queue_removal): Likewise.
12683         (queue_to_ready): Search forward in nonscheduled_insns_begin if
12684         we have a dbg_cnt.
12685         (choose_ready): Likewise.
12686         (commit_schedule): Use VEC_iterate.
12687         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
12688         a dbg_cnt, use it and ensure the first insn is in the ready list.
12689         (haifa_sched_init): Allocate scheduled_insns.
12690         (sched_extend_ready_list): Don't allocate it; reserve space.
12691         (haifa_sched_finish): Free it.
12692
12693 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
12694
12695         * optc-gen.awk: Always remove type from Variable entry before
12696         recording in var_seen.
12697
12698 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
12699
12700         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
12701         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
12702         call to tidy_fallthru_edges.
12703
12704 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
12705
12706         * doc/options.texi (ToLower): Document.
12707         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
12708         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
12709         * opts.h (cl_option): Add cl_tolower field.
12710         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
12711         arguments with lowercase strings.
12712         * config/rx/rx.opt (mcpu=): Add ToLower.
12713         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
12714         argument.
12715
12716 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
12717
12718         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
12719
12720 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
12721
12722         * config/vax/vax.c: Include reload.h.
12723
12724 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
12725
12726         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
12727         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
12728         (sparc_preferred_reload_class): New function.
12729
12730 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
12731
12732         PR debug/48401
12733         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
12734         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
12735
12736 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
12737
12738         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
12739         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
12740
12741 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
12742
12743         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
12744         (ASM_OUTPUT_ALIGNED_BSS): Define.
12745
12746 2011-04-03  Michael Matz  <matz@suse.de>
12747
12748         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
12749         and next_slot members.
12750         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
12751         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
12752         (lto_streamer_cache_append): Declare.
12753         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
12754         unsigned index, remove offset parameter, ensure that we append
12755         or update existing entries.
12756         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
12757         parameter, update next_slot for append.
12758         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
12759         parameter.
12760         (lto_streamer_cache_insert_at): Likewise.
12761         (lto_streamer_cache_append): New function.
12762         (lto_streamer_cache_lookup): Use unsigned index.
12763         (lto_streamer_cache_get): Likewise.
12764         (lto_record_common_node): Don't test tree_node_can_be_shared.
12765         (preload_common_node): Adjust call to lto_streamer_cache_insert.
12766         (lto_streamer_cache_delete): Don't free offsets member.
12767         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
12768         (lto_output_string_with_length): Use lto_output_data_stream.
12769         (lto_output_tree_header): Remove ix parameter, don't write it.
12770         (lto_output_builtin_tree): Likewise.
12771         (lto_write_tree): Adjust callers to above, don't track and write
12772         offset, write unsigned index.
12773         (output_unreferenced_globals): Don't emit all global vars.
12774         (write_global_references): Use unsigned indices.
12775         (lto_output_decl_state_refs): Likewise.
12776         (write_symbol): Likewise.
12777         * lto-streamer-in.c (lto_input_chain): Move earlier.
12778         (input_function): Use unsigned index.
12779         (input_alias_pairs): Don't read and then ignore all global vars.
12780         (lto_materialize_tree): Remove ix_p parameter, don't read index,
12781         don't pass it back, use lto_streamer_cache_append.
12782         (lto_register_var_decl_in_symtab): Use unsigned index.
12783         (lto_register_function_decl_in_symtab): Likewise.
12784         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
12785         index.
12786         (lto_get_builtin_tree): Don't read index, use
12787         lto_streamer_cache_append.
12788         (lto_read_tree): Adjust call to lto_materialize_tree.
12789
12790         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
12791         don't use function calls in arguments to MIN.
12792
12793         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
12794         twice.
12795
12796         * gimple.c (gimple_type_leader_entry): Mark deletable.
12797
12798 2011-04-03  Alan Modra  <amodra@gmail.com>
12799
12800         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
12801
12802 2011-04-03  Michael Matz  <matz@suse.de>
12803
12804         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
12805         an integer.
12806         * tree.h (tree_decl_non_common.vindex): Adjust comment.
12807
12808 2011-04-03  Michael Matz  <matz@suse.de>
12809
12810         * cgraphbuild.c (record_reference): Canonicalize constructor values.
12811         * gimple-fold.c (canonicalize_constructor_val): Accept being called
12812         without function context.
12813         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
12814         current_function_decl and cfun.
12815
12816 2011-04-03  Michael Matz  <matz@suse.de>
12817
12818         * tree.c (decl_init_priority_insert): Don't create entry for
12819         default priority.
12820         (decl_fini_priority_insert): Ditto.
12821         (fields_compatible_p, find_compatible_field): Remove.
12822         * tree.h (fields_compatible_p, find_compatible_field): Remove.
12823         * gimple.c (gimple_compare_field_offset): Adjust block comment.
12824
12825 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
12826
12827         * combine.c (try_combine): Remove useless local variable.
12828
12829 2011-04-03  Richard Guenther  <rguenther@suse.de>
12830             Ira Rosen  <ira.rosen@linaro.org>
12831
12832         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
12833         non-variable offsets and compare the remaining bases of the two
12834         accesses instead of looking for exact same data-ref.
12835
12836 2011-04-02  Kai Tietz  <ktietz@redhat.com>
12837
12838         PR target/48416
12839         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
12840
12841         * i386.c (ix86_is_msabi_thiscall): New helper function.
12842         (ix86_is_type_thiscall): New helper function.
12843         (ix86_comp_type_attributes): Handle thiscall for method-functions
12844         special.
12845         (init_cumulative_args): Likewise.
12846         (find_drap_reg): Likewise.
12847         (ix86_static_chain): Likewise.
12848         (x86_this_parameter): Likewise.
12849         (x86_output_mi_thunk): Likewise.
12850
12851 2011-04-01  Olivier Hainque  <hainque@adacore.com>
12852             Nicolas Setton  <setton@adacore.com>
12853             Eric Botcazou  <ebotcazou@adacore.com>
12854
12855         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
12856         (add_gnat_descriptive_type_attribute): New function.
12857         (gen_array_type_die): Call it.
12858         (gen_enumeration_type_die): Likewise.
12859         (gen_struct_or_union_type_die): Likewise.
12860         (modified_type_die): Likewise.
12861         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
12862         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
12863         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
12864
12865 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
12866
12867         PR bootstrap/48148
12868         * dwarf2out.c (resolve_addr): Don't call force_decl_die
12869         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
12870
12871         Revert:
12872         2011-03-17  Richard Guenther  <rguenther@suse.de>
12873
12874         PR bootstrap/48148
12875         * lto-cgraph.c (input_overwrite_node): Clear the abstract
12876         origin for decls in other ltrans units.
12877         (input_varpool_node): Likewise.
12878
12879 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
12880
12881         PR middle-end/48335
12882         * expr.c (expand_assignment): Handle all possibilities
12883         if TO_RTX is CONCAT.
12884         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
12885         (store_split_bit_field): If SUBREG_REG (op0) or
12886         op0 itself has smaller mode than word, return it
12887         for offset 0 and const0_rtx for out-of-bounds stores.
12888         If word is const0_rtx, skip it.
12889
12890 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
12891
12892         * config/h8300/h8300.c (print_operand_address): Rename to...
12893         (h8300_print_operand_address): ...this. Make static. Adjust comments.
12894         Call h8300_print_operand and h8300_print_operand_address instead of
12895         print_operand and print_operand_address. Declare.
12896         (print_operand): Renake to...
12897         (h8300_print_operand): ...this. Make static. Adjust comments.
12898         Call h8300_print_operand instead of print_operand. Declare.
12899         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
12900         (h8300_register_move_cost): Likewise.
12901         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
12902         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
12903         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
12904         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
12905         * config/h8300/h8300-protos.h (print_operand): Delete.
12906         (print_operand_address): Delete.
12907
12908 2011-04-01  Richard Henderson  <rth@redhat.com>
12909
12910         PR 48400
12911         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
12912         in strict mode before dwarf4.  Re-order tests to early out
12913         before switching sections.
12914
12915 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
12916
12917         * config/h8300/constraints.md: New file.
12918         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
12919         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
12920         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
12921         * config/h8300/predicates.md (bit_operand): Likewise.
12922         (incdec_operand): Use satisfies_constraint_M and
12923         satisfies_constraint_O.  Don't use C code block.
12924         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
12925         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
12926         (compute_mov_length): Use satisfies_constraint_G.
12927         (fix_bit_operand): Use satisfies_constraint_U.
12928         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
12929         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
12930         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
12931         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
12932         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
12933         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
12934         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
12935         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
12936         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
12937         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
12938         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
12939         (EXTRA_MEMORY_CONSTRAINT): Delete.
12940
12941 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
12942             Michael Meissner  <meissner@linux.vnet.ibm.com>
12943
12944         PR target/48262
12945         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
12946         operands, as per the specifications.
12947
12948         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
12949         (vec_extract_evenv4sf): Ditto.
12950         (vec_extract_evenv8hi): Ditto.
12951         (vec_extract_evenv16qi): Ditto.
12952         (vec_extract_oddv4si): Ditto.
12953
12954 2011-03-31  Mark Wielaard  <mjw@redhat.com>
12955
12956         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
12957         high_pc attribute if the CU has no associated code. Only output
12958         DW_AT_entry_pc for CU if not generating strict dwarf and
12959         dwarf_version < 4.
12960
12961 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
12962
12963         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
12964         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
12965         out of ...
12966         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
12967         * final.c (final_start_function): Call the new function rather
12968         than using a NULL argument for dwarf2out_frame_debug.
12969
12970         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
12971         that contains the prologue.
12972
12973         * haifa-sched.c (queue_insn): New arg REASON.  All callers
12974         changed.  Print it in debugging output.
12975
12976         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
12977
12978         * sched-ebb.c (begin_schedule_ready): Remove second argument.
12979         Split most of the code into...
12980         (begin_move_insn): ... here.  New function.
12981         (ebb_sched_info): Add a pointer to it.
12982         * haifa-sched.c (scheduled_insns): New static variable.
12983         (sched_extend_ready_list): Allocate it.
12984         (schedule_block): Use it to record the order of scheduled insns.
12985         Perform RTL changes to move insns only after all scheduling
12986         decisions have been made.
12987         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
12988         begin_move_insn field.
12989         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
12990         * sched-int.h (struct haifa_sched_info): Remove second argument
12991         from begin_schedule_ready hook.  Add new member begin_move_insn.
12992         * sched-rgn.c (begin_schedule_ready): Remove second argument.
12993         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
12994
12995         * haifa-sched.c (prune_ready_list): New function, broken out of
12996         schedule_block.
12997         (schedule_block): Use it.
12998
12999 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13000
13001         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
13002
13003 2011-04-01  Kai Tietz  <ktietz@redhat.com>
13004
13005         * config.gcc (*-*-mingw*): Allow as option the
13006         posix threading model.
13007         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
13008         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
13009         definition.
13010         (CPP_SPEC): Add pthread/no-pthread handling.
13011         (LIB_SPEC): Likewise.
13012         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
13013         (LIB_SPEC): Likewise.
13014         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
13015         flag to pass -pthread option for shared libgcc build.
13016         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
13017         for shared libgcc build.
13018         * config/i386/t-mingw-pthread: New file.
13019         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
13020         New define to enable use of library pthread by default.
13021         * config/i386/mingw.opt (pthread): New driver option.
13022         (no-pthread): New driver option.
13023         * config/i386/cygming.opt: Make sure trailing empty line is retained.
13024         * config/i386/mingw-w64.opt: Likewise.
13025
13026 2011-04-01  Gary Funck  <gary@intrepid.com>
13027
13028         * c-decl.c (grokdeclarator): Fix formatting.
13029
13030 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13031
13032         * expr.c (emit_block_move_via_movmem): Use n_generator_args
13033         instead of n_operands.
13034         (set_storage_via_setmem): Likewise.
13035         * optabs.c (maybe_gen_insn): Likewise.
13036         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
13037         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
13038         (mips_expand_builtin_direct): Likewise.
13039         * config/spu/spu.c (expand_builtin_args): Likewise.
13040
13041 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13042
13043         * recog.h (insn_data_d): Add n_generator_args.
13044         * genoutput.c (data): Likewise.
13045         (output_insn_data): Print it.
13046         (max_opno, num_dups): Delete.
13047         (scan_operands): Just fill in "d->operand[...]".
13048         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
13049
13050 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
13051
13052         * gensupport.h (pattern_stats): New structure.
13053         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
13054         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
13055         (max_operand_1, max_operand_vec): Delete.
13056         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
13057
13058 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
13059
13060         * emit-rtl.c (emit_pattern_after_setloc): New function.
13061         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
13062         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
13063         (emit_pattern_after): New function.
13064         (emit_insn_after, emit_jump_insn_after): Call it.
13065         (emit_call_insn_after, emit_debug_insn_after): Likewise.
13066         (emit_pattern_before_setloc): New function.
13067         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
13068         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
13069         Likewise.
13070         (emit_pattern_before): New function.
13071         (emit_insn_before, emit_jump_insn_before): Call it.
13072         (emit_call_insn_before, emit_debug_insn_before): Likewise.
13073
13074 2011-03-31  Richard Henderson  <rth@redhat.com>
13075
13076         * dwarf2out.c (dw_separate_line_info_ref): Remove.
13077         (dw_separate_line_info_entry): Remove.
13078         (enum dw_line_info_opcode): New.
13079         (dw_line_info_entry): Use it.
13080         (dw_line_info_table, dw_line_info_table_p): New.
13081         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
13082         (line_info_table, line_info_label_num): Remove.
13083         (line_info_table_in_use): Remove.
13084         (separate_line_info_table): Remove.
13085         (separate_line_info_table_allocated): Remove.
13086         (separate_line_info_table_in_use): Remove.
13087         (LINE_INFO_TABLE_INCREMENT): Remove.
13088         (line_info_label_num): New.
13089         (cur_line_info_table): New.
13090         (text_section_line_info, cold_text_section_line_info): New.
13091         (separate_line_info): New.
13092         (SEPARATE_LINE_CODE_LABEL): Remove.
13093         (print_dwarf_line_table): Remove.
13094         (debug_dwarf): Don't dump it.
13095         (output_one_line_info_table): New.
13096         (output_line_info): Use it.
13097         (new_line_info_table): New.
13098         (set_cur_line_info_table): New.
13099         (dwarf2out_switch_text_section): Use it.
13100         (dwarf2out_begin_function): Likewise.
13101         (push_dw_line_info_entry): New.
13102         (dwarf2out_source_line): Rewrite for new line info tables.
13103         (dwarf2out_init): Remove dead initailizations.
13104
13105 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13106
13107         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
13108         various flags.
13109         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
13110         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
13111         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
13112         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
13113         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
13114         * opt-functions.awk (flag_init, switch_bit_fields): New.
13115         (switch_flags): Don't handle flags moved to bit-fields.  Don't
13116         generate CL_MISSING_OK or CL_SAVE.
13117         * optc-gen.awk: Update to generate bit-field output as well as
13118         flags field.
13119         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
13120         bit-field instead of CL_REJECT_DRIVER flag.
13121         * opts-common.c (generate_canonical_option,
13122         decode_cmdline_option): Use bit-fields instead of CL_* flags.
13123         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
13124         instead of CL_REJECT_NEGATIVE flag.
13125         * toplev.c (print_switch_values): Use cl_report bit-field instead
13126         of CL_REPORT flag.
13127
13128 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13129
13130         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
13131         a zero minimum index only if it is redundant.
13132
13133 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
13134
13135         PR rtl-optimization/48381
13136         * ira-color.c (assign_hard_reg): Use hard reg set intersection
13137         instead of ira_class_hard_reg_index for calculating conflicting
13138         hard registers.
13139
13140 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
13141
13142         * cprop.c: Clean up hash table building.
13143         (reg_avail_info): Remove.
13144         (oprs_available_p): Remove.
13145         (record_last_reg_set_info): Remove.
13146         (record_last_set_info): Remove.
13147         (reg_available_p): New function.
13148         (gcse_constant_p): Do not treat unfolded conditions as constants.
13149         (make_set_regs_unavailable): New function.
13150         (hash_scan_set): Simplify with new reg_available_p.
13151         (compute_hash_table_work): Traverse insns stream only once.
13152         Do not compute reg_avail_info. Traverse insns in reverse order.
13153         Record implicit sets after recording explicit sets from the block.
13154
13155 2011-03-31  Michael Matz  <matz@suse.de>
13156
13157         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
13158
13159 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
13160
13161         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
13162         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
13163         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
13164         (h8300_mode_dependent_address_p): New function.
13165         (h8300_get_index): Make static.
13166
13167 2011-03-31  Jeff Law  <law@redhat.com>
13168
13169         * reload1.c (elimination_effects): Fix typo in recent change.
13170
13171         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
13172         typo potentially leading to null pointer dereference.
13173
13174         * caller-save.c (new_saved_hard_reg): Eliminate return value.
13175         (setup_save_areas): Corresponding changes to avoid useless
13176         assignments.
13177
13178         * jump.c (reversed_comparison_code_parts): Avoid successive return
13179         statements when REVERSE_CONDITION is defined.
13180
13181         * expr.c (expand_assignment): Avoid useless assignments.
13182         (expand_expr_real_1): Likewise.
13183         (expand_expr_real_2): Avoid useless statements.
13184
13185         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
13186
13187         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
13188
13189         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
13190         statements.
13191
13192         * stmt.c (expand_expr_stmt): Avoid useless assignment.
13193
13194 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
13195
13196         PR target/47109
13197         * doc/tm.texi.in (TARGET_VERSION): Remove.
13198         * doc/tm.texi: Regenerate.
13199         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
13200         * collect2.c (main): Don't use TARGET_VERSION.
13201         * mips-tdump.c (main): Don't use TARGET_VERSION.
13202         * mips-tfile.c (main): Don't use TARGET_VERSION.
13203         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
13204         * config/rs6000/vxworksae.h: Remove.
13205         * config/alpha/alpha.h (TARGET_VERSION): Remove.
13206         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
13207         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
13208         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
13209         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13210         * config/arm/arm.h (TARGET_VERSION): Remove.
13211         * config/arm/coff.h (TARGET_VERSION): Remove.
13212         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
13213         * config/arm/elf.h (TARGET_VERSION): Remove.
13214         * config/arm/freebsd.h (TARGET_VERSION): Remove.
13215         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
13216         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
13217         * config/arm/pe.h (TARGET_VERSION): Remove.
13218         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
13219         * config/arm/semi.h (TARGET_VERSION): Remove.
13220         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
13221         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
13222         * config/arm/vxworks.h (TARGET_VERSION): Remove.
13223         * config/avr/avr.h (TARGET_VERSION): Remove.
13224         * config/bfin/bfin.h (TARGET_VERSION): Remove.
13225         * config/fr30/fr30.h (TARGET_VERSION): Remove.
13226         * config/frv/frv.h (TARGET_VERSION): Remove.
13227         * config/h8300/h8300.h (TARGET_VERSION): Remove.
13228         * config/i386/cygwin.h (TARGET_VERSION): Remove.
13229         * config/i386/darwin.h (TARGET_VERSION): Remove.
13230         * config/i386/darwin64.h (TARGET_VERSION): Remove.
13231         * config/i386/djgpp.h (TARGET_VERSION): Remove.
13232         * config/i386/freebsd.h (TARGET_VERSION): Remove.
13233         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
13234         * config/i386/gnu.h (TARGET_VERSION): Remove.
13235         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
13236         * config/i386/i386elf.h (TARGET_VERSION): Remove.
13237         * config/i386/linux.h (TARGET_VERSION): Remove.
13238         * config/i386/linux64.h (TARGET_VERSION): Remove.
13239         * config/i386/lynx.h (TARGET_VERSION): Remove.
13240         * config/i386/mingw32.h (TARGET_VERSION): Remove.
13241         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
13242         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
13243         * config/i386/netware.h (TARGET_VERSION): Remove.
13244         * config/i386/nto.h (TARGET_VERSION): Remove.
13245         * config/i386/openbsd.h (TARGET_VERSION): Remove.
13246         * config/i386/vxworks.h (TARGET_VERSION): Remove.
13247         * config/ia64/elf.h (TARGET_VERSION): Remove.
13248         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
13249         * config/ia64/hpux.h (TARGET_VERSION): Remove.
13250         * config/ia64/linux.h (TARGET_VERSION): Remove.
13251         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
13252         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
13253         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13254         * config/lm32/lm32.h (TARGET_VERSION): Remove.
13255         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
13256         * config/m32c/m32c.h (TARGET_VERSION): Remove.
13257         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
13258         * config/m32r/m32r.h (TARGET_VERSION): Remove.
13259         * config/m68k/linux.h (TARGET_VERSION): Remove.
13260         * config/m68k/m68k.h (TARGET_VERSION): Remove.
13261         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
13262         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
13263         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
13264         * config/mep/mep.h (TARGET_VERSION): Remove.
13265         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
13266         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
13267         * config/mips/iris6.h (MACHINE_TYPE): Remove.
13268         * config/mips/linux.h (TARGET_VERSION): Remove.
13269         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
13270         * config/mips/vxworks.h (TARGET_VERSION): Remove.
13271         * config/mmix/mmix.h (TARGET_VERSION): Remove.
13272         * config/mn10300/linux.h (TARGET_VERSION): Remove.
13273         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
13274         * config/pa/pa.h (TARGET_VERSION): Remove.
13275         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
13276         * config/picochip/picochip.h (TARGET_VERSION): Remove.
13277         * config/rs6000/aix.h (TARGET_VERSION): Remove.
13278         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
13279         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
13280         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
13281         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
13282         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
13283         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
13284         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
13285         * config/rs6000/linux.h (TARGET_VERSION): Remove.
13286         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
13287         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
13288         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
13289         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
13290         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
13291         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
13292         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
13293         * config/s390/linux.h (TARGET_VERSION): Remove.
13294         * config/s390/s390.h (TARGET_VERSION): Remove.
13295         * config/s390/tpf.h (TARGET_VERSION): Remove.
13296         * config/score/score.h (TARGET_VERSION): Remove.
13297         * config/sh/linux.h (TARGET_VERSION): Remove.
13298         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
13299         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
13300         * config/sh/sh.h (TARGET_VERSION): Remove.
13301         * config/sh/sh64.h (TARGET_VERSION): Remove.
13302         * config/sh/superh.h (TARGET_VERSION): Remove.
13303         * config/sh/vxworks.h (TARGET_VERSION): Remove.
13304         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
13305         * config/sparc/linux.h (TARGET_VERSION): Remove.
13306         * config/sparc/linux64.h (TARGET_VERSION): Remove.
13307         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
13308         TARGET_NAME32, TARGET_NAME): Remove.
13309         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
13310         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
13311         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
13312         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
13313         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
13314         * config/spu/spu.h (TARGET_VERSION): Remove.
13315         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
13316         * config/v850/v850.h (TARGET_VERSION): Remove.
13317         * config/vax/linux.h (TARGET_VERSION): Remove.
13318         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
13319         * config/xtensa/elf.h (TARGET_VERSION): Remove.
13320         * config/xtensa/linux.h (TARGET_VERSION): Remove.
13321
13322 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
13323
13324         PR target/48142
13325         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
13326         frame-related from frame-unrelated adjustments to the stack pointer.
13327
13328 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
13329
13330         * common.opt (fdebug-types-section): Move earlier.
13331         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
13332
13333 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
13334
13335         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
13336         var.
13337
13338 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
13339
13340         * tree.h (CASE_CHAIN): Define.
13341         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
13342         (gimple_redirect_edge_and_branch): Likewise.
13343
13344 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13345
13346         PR middle-end/48367
13347         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
13348         calculation.
13349
13350 2011-03-30  Jeff Law  <law@redhat.com>
13351
13352         * PR bootstrap/48371
13353         * reload1.c (reload): Fix botch in last change.
13354
13355         * reload.h (struct reload): Fix typo introduced in last change.
13356
13357 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13358
13359         * config/arm/arm.opt (mhard-float, msoft-float): Mark
13360         Undocumented.  Remove help text.
13361         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
13362         -mhard-float.
13363
13364 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13365
13366         * doc/options.texi (NegativeAlias): Document.
13367         (Alias): Mention NegativeAlias.
13368         * opt-functions.awk: Handle NegativeAlias.
13369         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
13370         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
13371         * opts.h (CL_NEGATIVE_ALIAS): Define.
13372         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
13373         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
13374         OPT_mspe_.
13375         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
13376         Alias entries.
13377         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
13378         mno-spe and mno-isel instead of mspe=no and -misel=no.
13379
13380 2011-03-29  Mark Wielaard  <mjw@redhat.com>
13381
13382         * common.opt (fdebug-types-section): New flag.
13383         * doc/invoke.texi: Document new -fno-debug-types-section flag.
13384         * dwarf2out.c (use_debug_types): New define.
13385         (struct die_struct): Mark die_id with GTY desc use_debug_types.
13386         (print_die): Guard output of type unit signatures using
13387         use_debug_types.
13388         (build_abbrev_table): Replace assert of dwarf_version >= 4
13389         with assert on use_debug_types.
13390         (size_of_die): Likewise.
13391         (unmark_dies): Likewise.
13392         (value_format): Decide AT_ref_external form on use_debug_types.
13393         (output_die): Replace dwarf_version version check guard with
13394         use_debug_types where appropriate.
13395         (modified_type_die): Likewise.
13396         (gen_reference_type_die): Likewise.
13397         (dwarf2out_start_source_file): Likewise.
13398         (dwarf2out_end_source_file): Likewise.
13399         (prune_unused_types_walk_attribs): Likewise.
13400         (dwarf2out_finish): Likewise.
13401
13402 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
13403
13404         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
13405
13406 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13407
13408         PR rtl-optimization/48332
13409         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
13410         mode of input operand N and modeN to its actual mode.
13411
13412 2011-03-30  Jeff Law  <law@redhat.com>
13413
13414         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
13415         define accessor macro.
13416         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
13417         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
13418         (reg_equiv_init): Likewise.
13419         (reg_equivs_size): New variable.
13420         (reg_equiv_init_size): Remove.
13421         (allocate_initial_values): Move prototype to here from....
13422         * integrate.h (allocate_initial_values): Remove prototype.
13423         * integrate.c: Include reload.h.
13424         (allocate_initial_values): Corresponding changes.
13425         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
13426         (fix_reg_equiv_init, no_equiv): Corresponding changes.
13427         (update_equiv_regs): Corresponding changes.
13428         (ira): Corresponding changes.
13429         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
13430         (push_secondary_reload): Corresponding changes.
13431         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
13432         (make_memloc, find_reloads_address): Corresponding changes.
13433         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
13434         (find_reloads_address_1): Corresponding changes.
13435         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
13436         (refers_to_regno_for_reload_p): Corresponding changes.
13437         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
13438         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
13439         * reload1.c: Include ggc.h.
13440         (grow_reg_equivs): New function.
13441         (replace_pseudos_in, reload): Corresponding changes.
13442         (calculate_needs_all_insns, alter_regs): Corresponding changes.
13443         (eliminate_regs_1, elimination_effects): Corresponding changes.
13444         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
13445         (delete_output_reload): Likewise.
13446         * caller-save.c (mark_referenced_regs): Corresponding changes.
13447         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
13448         * frv/predicates.md (frv_load_operand): Corresponding changes.
13449         * microblaze/microblaze.c (double_memory_operand): Corresponding
13450         changes.
13451         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
13452         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
13453         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
13454         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
13455         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
13456         changes.
13457         * pa/pa.c (emit_move_sequence): Corresponding changes.
13458         * vax/vax.c (nonindexed_address_p): Corresponding changes.
13459
13460 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13461
13462         PR target/47551
13463         * config/arm/arm.c (coproc_secondary_reload_class): Handle
13464         structure modes.  Don't check neon_vector_mem_operand for
13465         vector or structure modes.
13466
13467 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
13468             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
13469
13470         PR target/43590
13471         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
13472         operand 1 and reshuffle the operands to match.
13473         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
13474
13475 2011-03-30  Christian Schüler  <cschueler@gmx.de>
13476
13477         PR driver/48208
13478         * config/c.opt (F): Added 'Driver' to -F option.
13479
13480         PR driver/48260
13481         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
13482           handler function.
13483         * config/darwin.opt: Added '-arch' option.
13484
13485 2011-03-30  Nick Clifton  <nickc@redhat.com>
13486
13487         * config/rx/rx.md: Add peepholes and patterns to combine
13488         extending loads and simple arithmetic instructions.
13489         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
13490         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
13491         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
13492         modes to use pre-decrement and post-increment addressing.
13493         (rx_is_restricted_memory_address): Add range checking of REG+INT
13494         addresses.
13495         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
13496         (rx_memory_move_cost): Adjust cost of stores.
13497         (rx_adjust_insn_length): New function.
13498
13499 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
13500
13501         PR c/48305
13502         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
13503         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
13504         matching arg00/arg01 types.
13505
13506 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
13507
13508         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
13509         last_location to UNKNOWN_LOCATION.
13510
13511 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
13512
13513         PR target/48349
13514         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
13515         FLOAT_SSE_REGS.
13516
13517 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
13518             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13519
13520         PR bootstrap/48337
13521         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
13522         Init(PROCESSOR_V7).
13523         (sparc_cpu): Likewise.
13524         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
13525         PROCESSOR_V7.
13526
13527 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13528
13529         PR target/48336
13530         PR middle-end/48342
13531         PR rtl-optimization/48345
13532         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
13533         hard regs for given mode from profitable regs when doing secondary
13534         allocation.
13535
13536 2011-03-29  Jeff Law  <law@redhat.com>
13537
13538         PR bootstrap/48327
13539         * tree-ssa-threadupdate.c (struct redirection_data): Remove
13540         do_not_duplicate field.
13541         (lookup_redirection_data): Corresponding changes.
13542         (create_duplicates): Always create a template block.
13543         (redirect_edges): Remove code which reused the original block
13544         when it was going to become unreachable code.
13545         (thread_block): Don't set do_not_duplicate field.
13546
13547 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
13548
13549         * lto-opts.c (register_user_option_p, lto_register_user_option):
13550         Make type argument unsigned.
13551         * lto-streamer.h (lto_register_user_option): Make type argument
13552         unsigned.
13553         * opth-gen.awk: Make CL_* macros unsigned.
13554         * opts-common.c (find_opt): Make lang_mask argument unsigned.
13555         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
13556         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
13557         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
13558         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
13559         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
13560         (find_opt): Make lang_mask argument unsigned.
13561
13562 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13563
13564         PR rtl-optimization/48331
13565         PR rtl-optimization/48334
13566         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
13567         for any used algorithm.
13568
13569 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
13570
13571         * ira-conflicts.c (build_object_conflicts): Add unused attribute
13572         to parent_max.
13573
13574 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
13575
13576         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
13577         (alpha_option_override): Don't set alpha_sr_alias_set.
13578         (emit_frame_store_1): Use gen_frame_mem rather than calling
13579         set_mem_alias_set.
13580         (alpha_expand_epilogue): Ditto.
13581
13582 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
13583
13584         PR tree-optimization/48290
13585         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
13586         vectorization, check that relevant phis in the basic block after
13587         the inner loop are really inner loop's exit phis.
13588
13589 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
13590
13591         PR debug/48190
13592         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
13593         (cached_dw_loc_list_def): New structure.
13594         (cached_dw_loc_list): New typedef.
13595         (cached_dw_loc_list_table): New variable.
13596         (cached_dw_loc_list_table_hash): New function.
13597         (cached_dw_loc_list_table_eq): Likewise.
13598         (add_location_or_const_value_attribute): Take a bool cache_p.
13599         Cache the list when the parameter is true.
13600         (gen_formal_parameter_die): Update caller.
13601         (gen_variable_die): Likewise.
13602         (dwarf2out_finish): Likewise.
13603         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
13604         while generating debug info for the decl.
13605         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
13606         (dwarf2out_init): Initialize cached_dw_loc_list_table.
13607         (resolve_addr): Cache the result of resolving a chain of
13608         location lists.
13609
13610 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
13611
13612         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
13613         conflict object hard regset nodes have intersecting hard reg sets.
13614
13615         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
13616         after regstat_init_n_sets_and_refs.
13617
13618         * ira.c: Add more comments at the top.
13619         (setup_stack_reg_pressure_class, setup_pressure_classes):
13620         Add comments how we compute the register pressure classes.
13621         (setup_allocno_and_important_classes): Add more comments.
13622         (setup_class_translate_array, reorder_important_classes)
13623         (setup_reg_class_relations): Add comments.
13624
13625         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
13626         start of the file.
13627
13628         * ira-color.c: Add 2011 to the Copyright line.
13629         (assign_hard_reg):  Add more comments.
13630         (improve_allocation): Ditto.
13631
13632         * ira-costs.c: Add 2011 to the Copyright line.
13633         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
13634         comments.
13635         (setup_regno_cost_classes_by_mode): Ditto.
13636
13637         Initial patches from ira-improv branch:
13638
13639         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
13640
13641         * ira-build.c (ira_create_object): Remove initialization of
13642         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
13643         (ira_create_allocno): Remove initialization of
13644         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
13645         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
13646         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
13647         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
13648         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
13649         Initialize ALLOCNO_ADD_DATA.
13650         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
13651         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
13652         ALLOCNO_REG.
13653         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
13654         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
13655
13656         * ira.c (ira_reallocate): Remove.
13657         (setup_pressure_classes): Call
13658         ira_init_register_move_cost_if_necessary.  Use
13659         ira_register_move_cost instead of ira_get_register_move_cost.
13660         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
13661         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
13662
13663         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
13664         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
13665         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
13666         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
13667         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
13668         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
13669         Fix formatting.
13670         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
13671         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
13672         (struct allocno_color_data): New.
13673         (allocno_color_data_t): New typedef.
13674         (allocno_color_data): New definition.
13675         (ALLOCNO_COLOR_DATA): New macro.
13676         (struct object_color_data): New.
13677         (object_color_data_t): New typedef.
13678         (object_color_data): New definition.
13679         (OBJECT_COLOR_DATA): New macro.
13680         (update_copy_costs, calculate_allocno_spill_cost): Call
13681         ira_init_register_move_cost_if_necessary.  Use
13682         ira_register_move_cost instead of ira_get_register_move_cost.
13683         (move_spill_restore, update_curr_costs): Ditto.
13684         (allocno_spill_priority): Make it inline.
13685         (color_pass): Allocate and free allocno_color_dat and object_color_data.
13686         (struct coalesce_data, coalesce_data_t): New.
13687         (allocno_coalesce_data): New definition.
13688         (ALLOCNO_COALESCE_DATA): New macro.
13689         (merge_allocnos, coalesced_allocno_conflict_p): Use
13690         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
13691         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
13692         (coalesce_allocnos): Ditto.
13693         (setup_coalesced_allocno_costs_and_nums): Ditto.
13694         (collect_spilled_coalesced_allocnos): Ditto.
13695         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
13696         (setup_slot_coalesced_allocno_live_ranges): Ditto.
13697         (coalesce_spill_slots): Ditto.
13698         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
13699         free allocno_coalesce_data.
13700
13701         * ira-conflicts.c: Fix formatting.
13702         (process_regs_for_copy): Call
13703         ira_init_register_move_cost_if_necessary.  Use
13704         ira_register_move_cost instead of ira_get_register_move_cost.
13705         (build_object_conflicts): Optimize.
13706
13707         * ira-costs.c (record_reg_classes): Optimize.  Call
13708         ira_init_register_move_cost_if_necessary.  Use
13709         ira_register_move_cost, ira_may_move_in_cost, and
13710         ira_may_move_out_cost instead of ira_get_register_move_cost and
13711         ira_get_may_move_cost.
13712         (record_address_regs): Ditto.
13713         (scan_one_insn): Optimize.
13714         (find_costs_and_classes): Optimize.
13715         (process_bb_node_for_hard_reg_moves): Call
13716         ira_init_register_move_cost_if_necessary.  Use
13717         ira_register_move_cost instead of ira_get_register_move_cost.
13718
13719         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
13720         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
13721         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
13722         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
13723         definitions.
13724         (ira_initiate_emit_data, ira_finish_emit_data)
13725         (create_new_allocno): New functions.
13726         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
13727         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
13728         Use ira_register_move_cost instead of ira_get_register_move_cost.
13729
13730         * ira-int.h: Fix some comments.
13731         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
13732         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
13733         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
13734         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
13735         add_data.
13736         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
13737         bitfield after mode.  Make hard_regno a short int.  Make
13738         hard_regno short.  Remove first_coalesced_allocno and
13739         next_coalesced_allocno.  Move mem_optimized_dest_p,
13740         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
13741         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
13742         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
13743         temp, colorable_p.  Add new member add_data.
13744         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
13745         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
13746         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
13747         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
13748         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
13749         (ALLOCNO_ADD_DATA): New macro.
13750         (ira_emit_data_t): New typedef.
13751         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
13752         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
13753         from struct ira_allocno.
13754         (ALLOCNO_EMIT_DATA): New macro.
13755         (ira_allocno_emit_data, allocno_emit_reg): New.
13756         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
13757         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
13758         (OBJECT_ADD_DATA): New macro.
13759         (ira_reallocate): Remove.
13760         (ira_initiate_emit_data, ira_finish_emit_data): New.
13761         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
13762         (ira_init_register_move_cost_if_necessary): New.
13763         (ira_object_conflict_iter_next): Merge into
13764         ira_object_conflict_iter_cond.
13765         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
13766
13767         * ira-live.c (process_single_reg_class_operands): Call
13768         ira_init_register_move_cost_if_necessary.  Use
13769         ira_register_move_cost instead of ira_get_register_move_cost.
13770
13771         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
13772
13773         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
13774
13775         * ira-costs.c: Fix formatting.
13776         (cost_classes, cost_classes_num): Remove.
13777         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
13778         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
13779         (cost_classes_del, cost_classes_htab): New.
13780         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
13781         (initiate_regno_cost_classes, setup_cost_classes): New.
13782         (setup_regno_cost_classes_by_aclass): New.
13783         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
13784         (record_reg_classes): Use regno_cost_classes instead of
13785         cost_classes.  Move checking opposite operand up.
13786         (record_address_regs): Use regno_cost_classes
13787         instead of cost_classes.
13788         (scan_one_insn): Ditto.  Use always general register.
13789         (print_allocno_costs): Use regno_cost_classes instead of
13790         cost_classes.
13791         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
13792         (find_costs_and_classes): Set up cost classes for each registers.
13793         Use also their mode for this.  Use regno_cost_classes instead of
13794         cost_classes.
13795         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
13796         cost_classes.
13797         (free_ira_costs, ira_init_costs): Don't use cost_classes.
13798         (ira_costs, ira_set_pseudo_classes): Call
13799         initiate_regno_cost_classes and finish_regno_cost_classes.
13800
13801         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
13802
13803         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
13804
13805         * target.def (ira_cover_classes): Remove.
13806
13807         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
13808
13809         * doc/tm.texi.in: Ditto.
13810
13811         * ira-conflicts.c: Remove mentioning cover classes from the file.
13812         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
13813         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
13814
13815         * targhooks.c (default_ira_cover_classes): Remove.
13816
13817         * targhooks.h (default_ira_cover_classes): Ditto.
13818
13819         * haifa-sched.c: Remove mentioning cover classes from the file.
13820         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
13821         ira_pressure_classes and ira_pressure_classes_num instead of
13822         ira_reg_class_cover_size and ira_reg_class_cover.  Use
13823         sched_regno_pressure_class instead of sched_regno_cover_class.
13824         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
13825         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
13826
13827         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
13828         classes from the file.
13829         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
13830         (struct object_hard_regs, struct object_hard_regs_node): New.
13831         (struct ira_object): New members profitable_hard_regs,
13832         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
13833         (struct ira_allocno): Rename cover_class to aclass.  Rename
13834         cover_class_cost and updated_cover_class_cost to class_cost and
13835         updated_class_cost.  Remove splay_removed_p and
13836         left_conflict_size.  Add new members colorable_p.
13837         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
13838         (ALLOCNO_COLORABLE_P): New macro.
13839         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
13840         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
13841         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
13842         (OBJECT_...): Rename parameter C to O.
13843         (OBJECT_PROFITABLE_HARD_REGS): New macro.
13844         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
13845         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
13846         (struct target_ira_int): New members x_ira_max_memory_move_cost,
13847         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
13848         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
13849         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
13850         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
13851         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
13852         x_ira_reg_class_subunion.
13853         (ira_max_memory_move_cost, ira_max_register_move_cost)
13854         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
13855         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
13856         (ira_important_class_nums, ira_reg_class_superunion): New macros.
13857         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
13858         (ira_reg_class_union): Rename to ira_reg_class_subunion.
13859         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
13860         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
13861         (ira_tune_allocno_costs_and_cover_classes): Rename to
13862         ira_tune_allocno_costs.
13863         (ira_debug_hard_regs_forest): New.
13864         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
13865         (ira_object_conflict_iter_next): Fix comments.
13866         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
13867         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
13868         cover_class to aclass.
13869         (ira_allocate_and_accumulate_costs): Ditto.
13870         (ira_allocate_and_set_or_copy_costs): Ditto.
13871
13872         * opts.c (decode_options): Remove ira_cover_class check.
13873
13874         * ira-color.c: Remove mentioning cover classes from the file.  Use
13875         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
13876         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
13877         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
13878         (splay-tree.h): Remove include.
13879         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
13880         before copy_freq_compare_func.
13881         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
13882         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
13883         New definitions.
13884         (hard_regs_roots, hard_regs_node_vec): Ditto.
13885         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
13886         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
13887         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
13888         (create_new_object_hard_regs_node): Ditto.
13889         (add_new_object_hard_regs_node_to_forest): Ditto.
13890         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
13891         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
13892         Ditto.
13893         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
13894         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
13895         (remove_unused_object_hard_regs_nodes): Ditto.
13896         (enumerate_object_hard_regs_nodes): Ditto.
13897         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
13898         (object_hard_regs_subnode_t): Ditto.
13899         (struct object_hard_regs_subnode): Ditto.
13900         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
13901         (setup_object_hard_regs_subnode_index): Ditto.
13902         (get_object_hard_regs_subnodes_num): Ditto.
13903         (form_object_hard_regs_nodes_forest): Ditto.
13904         (finish_object_hard_regs_nodes_tree): Ditto.
13905         (finish_object_hard_regs_nodes_forest): Ditto.
13906         (allocnos_have_intersected_live_ranges_p): Rename to
13907         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
13908         (pseudos_have_intersected_live_ranges_p): Rename to
13909         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
13910         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
13911         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
13912         (update_copy_costs): Remove assert.  Skip cost update if the hard
13913         reg does not belong the class.
13914         (assign_hard_reg): Process only profitable hard regs.
13915         (uncolorable_allocnos_num): Make it scalar.
13916         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
13917         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
13918         and ira_reg_class_max_nregs.
13919         (bucket_allocno_compare_func): Check frequency first.
13920         (sort_bucket): Add compare function as a parameter.
13921         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
13922         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
13923         (push_allocno_to_stack): Rewrite for checking new allocno
13924         colorability.
13925         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
13926         (push_only_colorable): Pass new parameter to sort_bucket.
13927         (push_allocno_to_spill): Remove.
13928         (allocno_spill_priority_compare): Make it inline and rewrite.
13929         (splay_tree_allocate, splay_tree_free): Remove.
13930         (allocno_spill_sort_compare): New function.
13931         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
13932         build and use splay tree.  Choose first allocno in uncolorable
13933         allocno bucket to spill.  Remove setting spill cost.
13934         (all_conflicting_hard_regs): Remove.
13935         (setup_allocno_available_regs_num): Check only profitable hard
13936         regs.  Print info about hard regs nodes.
13937         (setup_allocno_left_conflicts_size): Remove.
13938         (put_allocno_into_bucket): Don't call
13939         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
13940         (improve_allocation): New.
13941         (color_allocnos): Call setup_profitable_hard_regs,
13942         form_object_hard_regs_nodes_forest, improve_allocation,
13943         finish_object_hard_regs_nodes_forest.  Setup spill cost.
13944         (print_loop_title): Use pressure classes.
13945         (color_allocnso): Ditto.
13946         (do_coloring): Remove allocation and freeing splay_tree_node_pool
13947         and allocnos_for_spilling.
13948         (ira_sort_regnos_for_alter_reg): Don't setup members
13949         {first,next}_coalesced_allocno.
13950         (color): Remove allocating and freeing removed_splay_allocno_vec.
13951         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
13952         prohibited_class_mode_regs.
13953
13954         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
13955         formatting.
13956         (update_allocno_pressure_excess_length): Use pressure classes.
13957         (inc_register_pressure, dec_register_pressure): Check for pressure
13958         class.
13959         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
13960         pressure class.  Use ira_reg_class_nregs instead of
13961         ira_reg_class_max_nregs.
13962         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
13963         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
13964         (single_reg_class): Use ira_reg_class_nregs instead of
13965         ira_reg_class_max_nregs.
13966         (process_bb_node_lives): Use pressure classes.
13967
13968         * ira-emit.c: Remove mentioning cover classes from the file.  Use
13969         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
13970         (change_loop): Use pressure classes.
13971         (modify_move_list): Call ira_set_allocno_class instead of
13972         ira_set_allocno_cover_class.
13973
13974         * ira-build.c: Remove mentioning cover classes from the file.  Use
13975         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
13976         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
13977         ALLOCNO_UPDATED_CLASS_COST instead of
13978         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
13979         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
13980         (ira_create_allocno): Remove initialization of
13981         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
13982         ALLOCNO_COLORABLE_P.
13983         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
13984         Update conflict regs for the objects.
13985         (create_cap_allocno): Remove assert.  Don't propagate
13986         ALLOCNO_AVAILABLE_REGS_NUM.
13987         (ira_free_allocno_costs): New function.
13988         (finish_allocno): Change a part of code into call of
13989         ira_free_allocno_costs.
13990         (low_pressure_loop_node_p): Use pressure classes.
13991         (object_range_compare_func): Don't compare classes.
13992         (setup_min_max_conflict_allocno_ids): Ditto.
13993
13994         * loop-invariant.c: Remove mentioning cover classes from the file.
13995         Use ira_pressure_classes and ira_pressure_classes_num instead of
13996         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
13997         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
13998         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
13999         Use reg_allocno_class instead of reg_cover_class.
14000         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
14001         STACK_REG_COVER_CLASS.
14002         (get_regno_cover_class): Rename to get_regno_pressure_class.
14003         (move_loop_invariants): Initialize and finalize regstat.
14004
14005         * ira.c: Remove mentioning cover classes from the file.  Add
14006         comments about coloring without cover classes.  Use ALLOCNO_CLASS
14007         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
14008         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
14009         setup_class_subset_and_memory_move_costs.
14010         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
14011         (setup_cover_and_important_classes): Rename to
14012         setup_allocno_and_important_classes.
14013         (setup_class_translate_array): New.
14014         (setup_class_translate): Call it for allocno and pressure classes.
14015         (cover_class_order): Rename to allocno_class_order.
14016         (comp_reg_classes_func): Use ira_allocno_class_translate instead
14017         of ira_class_translate.
14018         (reorder_important_classes): Set up ira_important_class_nums.
14019         (setup_reg_class_relations): Set up ira_reg_class_superunion.
14020         (print_class_cover): Rename to print_classes.  Add parameter.
14021         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
14022         Print pressure classes too.
14023         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
14024         setup_reg_subclasses.
14025         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14026         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14027         (setup_prohibited_class_mode_regs): Use
14028         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
14029         (clarify_prohibited_class_mode_regs): New function.
14030         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
14031         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
14032         (ira_init_once): Initialize them.
14033         (free_register_move_costs): Process them.
14034         (ira_init): Move calls of find_reg_classes and
14035         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
14036         Call clarify_prohibited_class_mode_regs.
14037         (ira_no_alloc_reg): Remove.
14038         (too_high_register_pressure_p): Use pressure classes.
14039
14040         * sched-deps.c: Remove mentioning cover classes from the file.
14041         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
14042         ira_pressure_classes and ira_pressure_classes_num instead of
14043         ira_reg_class_cover_size and ira_reg_class_cover.
14044         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
14045         sched_regno_pressure_class instead of sched_regno_cover_class.
14046         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
14047         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
14048
14049         * ira.h: Add 2010 to Copyright.
14050         (ira_no_alloc_reg): Remove external.
14051         (struct target_ira): Rename x_ira_hard_regno_cover_class,
14052         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
14053         x_ira_class_translate to x_ira_hard_regno_allocno_class,
14054         x_ira_allocno_classes_num, x_ira_allocno_classes, and
14055         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
14056         x_ira_pressure_classes, x_ira_pressure_class_translate, and
14057         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
14058         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
14059         x_ira_no_alloc_regs.
14060         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
14061         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
14062         ira_allocno_classes_num and ira_allocno_classes.
14063         (ira_class_translate): Rename to ira_allocno_class_translate.
14064         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
14065         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
14066         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
14067         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
14068         (ira_no_alloc_regs): New.
14069
14070         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
14071         classes from the file.  Use ALLOCNO_CLASS instead of
14072         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
14073         ALLOCNO_COVER_CLASS_COST.
14074         (regno_cover_class): Rename to regno_aclass.
14075         (record_reg_classes): Use ira_reg_class_subunion instead of
14076         ira_reg_class_union.
14077         (record_address_regs): Check overflow.
14078         (scan_one_insn): Ditto.
14079         (print_allocno_costs): Print total mem cost fore regional allocation.
14080         (print_pseudo_costs): Use REG_N_REFS.
14081         (find_costs_and_classes): Use classes intersected with them on the
14082         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
14083         ira_reg_class_union.  Use ira_allocno_class_translate and
14084         regno_aclass instead of ira_class_translate and regno_cover_class.
14085         Modify code for finding regno_aclass.  Setup preferred classes for
14086         the next pass.
14087         (setup_allocno_cover_class_and_costs): Rename to
14088         setup_allocno_class_and_costs.  Use regno_aclass instead of
14089         regno_cover_class.  Use ira_set_allocno_class instead of
14090         ira_set_allocno_cover_class.
14091         (init_costs, finish_costs): Use regno_aclass instead of
14092         regno_cover_class.
14093         (ira_costs): Use setup_allocno_class_and_costs instead of
14094         setup_allocno_cover_class_and_costs.
14095         (ira_tune_allocno_costs_and_cover_classes): Rename to
14096         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
14097         by processing objects.  Use ira_reg_class_max_nregs instead of
14098         ira_reg_class_nregs.
14099
14100         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
14101
14102         * sched-int.h: Remove mentioning cover classes from the file.
14103         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
14104
14105         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
14106         classes from the file.
14107         (struct reg_pref): Rename coverclass into allocnoclass.
14108         (reg_cover_class): Rename to reg_allocno_class.
14109
14110         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
14111
14112         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
14113
14114         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
14115
14116         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
14117
14118         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
14119
14120         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
14121
14122         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
14123
14124         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
14125
14126         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
14127
14128         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
14129
14130         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
14131         (i386_ira_cover_classes): Ditto.
14132
14133         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
14134
14135         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
14136
14137         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
14138
14139         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
14140
14141         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
14142
14143         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
14144
14145         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
14146         (mips_ira_cover_classes): Ditto.
14147
14148         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
14149
14150         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
14151
14152         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
14153
14154         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
14155
14156         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
14157
14158         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
14159         (IRA_COVER_CLASSES_VSX): Ditto.
14160
14161         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
14162         (rs6000_ira_cover_classes): Ditto.
14163
14164         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
14165
14166         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
14167
14168         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
14169
14170         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
14171
14172         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
14173
14174         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
14175
14176         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
14177
14178         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
14179
14180         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
14181
14182         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
14183
14184 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
14185
14186         PR debug/48253
14187         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
14188         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
14189         dw_fde_unlikely_section_end_label, cold_in_std_section,
14190         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
14191         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
14192         fields.
14193         (output_fde): Use dw_fde_second_{begin,end} if second is
14194         true, otherwise dw_fde_{begin,end}.
14195         (output_call_frame_info): Test dw_fde_second_begin != NULL
14196         instead of dw_fde_switched_sections.
14197         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
14198         fields, initialize new fields.  Initialize in_std_section
14199         unconditionally from the first partition.
14200         (dwarf2out_end_epilogue): Don't override dw_fde_end when
14201         dw_fde_second_begin is non-NULL.
14202         (dwarf2out_switch_text_section): Stop initializing removed
14203         dw_fde_struct fields, initialize new fields, initialize
14204         also dw_fde_end here.  Set dw_fde_switch_cfi even when
14205         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
14206         (struct var_loc_list_def): Add last_before_switch field.
14207         (arange_table, arange_table_allocated, arange_table_in_use,
14208         ARANGE_TABLE_INCREMENT, add_arange): Removed.
14209         (size_of_aranges): Count !in_std_section and !second_in_std_section
14210         hunks in fdes, instead of looking at arange_table_in_use.
14211         (output_aranges): Add aranges_length argument, don't call
14212         size_of_aranges here.  Instead of using aranges_table*
14213         emit ranges for fdes when !in_std_section resp.
14214         !second_in_std_section.
14215         (dw_loc_list): Break ranges crossing section switch.
14216         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
14217         use dw_fde_second_end instead of dw_fde_end as end of last range.
14218         (gen_subprogram_die): Don't call add_arange.  Use
14219         dw_fde_{begin,end} for first partition and if switched
14220         section dw_fde_second_{begin,end} for the second.
14221         (var_location_switch_text_section_1,
14222         var_location_switch_text_section): New functions.
14223         (dwarf2out_begin_function): Initialize cold_text_section even
14224         when function_section () isn't text_section.
14225         (prune_unused_types): Don't walk arange_table.
14226         (dwarf2out_finish): Don't needlessly test
14227         flag_reorder_blocks_and_partition when testing cold_text_section_used.
14228         If info_section_emitted, call size_of_aranges and if it indicates
14229         non-empty .debug_aranges, call output_aranges with the computed
14230         size.  Stop using removed dw_fde_struct fields, use
14231         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
14232         for second.
14233
14234         PR debug/48203
14235         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
14236         create ENTRY_VALUE if incoming or address of incoming's MEM
14237         is a hard REG.
14238         * dwarf2out.c (mem_loc_descriptor): Don't emit
14239         DW_OP_GNU_entry_value of DW_OP_fbreg.
14240         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
14241         on ENTRY_VALUE is able to find the canonical parameter VALUE.
14242         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
14243         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
14244         ENTRY_VALUE_EXPs.
14245         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
14246         is a REG_P or MEM_P with REG_P address, compute hash directly
14247         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
14248         (preserve_only_constants): Don't clear VALUES forwaring
14249         ENTRY_VALUE to some other VALUE.
14250
14251 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
14252
14253         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
14254         instead of GEN_INT.
14255
14256 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14257
14258         * cfgexpand.c (expand_gimple_cond): Always set the source location and
14259         block before expanding the statement.
14260         (expand_gimple_stmt_1): Likewise.  Set them here...
14261         (expand_gimple_stmt): ...and not here.  Tidy.
14262         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
14263         unknown.
14264
14265 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14266
14267         * Makefile.in: New rule for cprop.o.
14268         * gcse.c: Move constant/copy propagation to cprop.c.
14269         (compute_local_properties): Only handle expression tables.
14270         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
14271         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
14272         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
14273         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
14274         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
14275         compute_cprop_data, find_used_regs, try_replace_reg,
14276         find_avail_set, cprop_jump, constprop_register, cprop_insn,
14277         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
14278         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
14279         find_bypass_set, reg_killed_on_edge, bypass_block,
14280         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
14281         execute_rtl_cprop, pass_rtl_cprop): Move to...
14282         * cprop.c: ...here.  New file, constant/copy propagation for RTL
14283         moved from gcse.c to here with minor cleanups in duplicated code.
14284
14285 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
14286
14287         * config/i386/i386.c (flag_opts): Fix a typo in
14288         -mavx256-split-unaligned-store.
14289
14290 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14291
14292         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
14293         LIBCALL_VALUE): Remove macros.
14294         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14295         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14296         (h8300_function_value, h8300_libcall_value,
14297         h8300_function_value_regno_p): New functions.
14298
14299 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
14300
14301         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
14302
14303 2011-03-28  Jeff Law  <law@redhat.com>
14304
14305         * tree-ssa-threadupdate.c (redirect_edges): Call
14306         create_edge_and_update_destination_phis as needed.
14307         (create_edge_and_update_destination_phis): Accept new BB argument.
14308         All callers updated.
14309         (thread_block): Do not update the profile when threading around
14310         intermediate blocks.
14311         (thread_single_edge): Likewise.
14312         (determine_bb_domination_status): If BB is not a successor of the
14313         loop header, return NONDOMINATING.
14314         (register_jump_thread): Note when we register a jump thread around
14315         an intermediate block.
14316         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
14317         (thread_across_edge): Use it.
14318
14319 2011-03-28  Tristan Gingold  <gingold@adacore.com>
14320
14321         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
14322         when for_return is 2.
14323
14324 2011-03-28  Jeff Law  <law@redhat.com>
14325
14326         * var-tracking.c (canonicalize_values_mark): Delete unused
14327         lhs assignment.
14328         (canonicalize_values_star, set_variable_part): Likewise.
14329         (clobber_variable_part, delete_variable_part): Likewise.
14330
14331 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
14332
14333         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
14334
14335 2011-03-28  Martin Jambor  <mjambor@suse.cz>
14336
14337         * tree-inline.c (expand_call_inline): Do not check that destination
14338         node is analyzed.
14339         (optimize_inline_calls): Assert that destination node is analyzed.
14340         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
14341         not call tree_lowering_passes.
14342         * cgraph.h (cgraph_analyze_function): Declare.
14343         * cgraphunit.c (cgraph_analyze_function): Make public.
14344
14345 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
14346
14347         * config/sparc/sparc-opts.h: New.
14348         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
14349         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
14350         (sparc_option_override): Store processor_type enumeration rather
14351         than string in cpu_default.  Remove name and enumeration from
14352         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
14353         without using sparc_select.  Use target_flags_explicit instead of
14354         fpu_option_set.
14355         * config/sparc/sparc.h (enum processor_type): Move to
14356         sparc-opts.h.
14357         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
14358         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
14359         HeaderInclude entry.
14360         (mcpu=, mtune=): Use Var and Enum.
14361         (sparc_processor_type): New Enum and EnumValue entries.
14362
14363 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14364             Iain Sandoe  <iains@gcc.gnu.org>
14365
14366         PR target/48245
14367         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
14368
14369 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
14370
14371         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
14372         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
14373         Insert new statements at it in lieu of STMT.
14374         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
14375         * tree-vect-stmts.c (vectorizable_store): Likewise.
14376         (vectorizable_load): Likewise.
14377
14378 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
14379
14380         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
14381         (divtf3): Ditto.
14382         (multf3): Ditto.
14383         (subtf3): Ditto.
14384
14385 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14386
14387         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
14388         unaligned 256bit load/store.
14389         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
14390         (*avx_movdqu<avxmodesuffix>): Likewise.
14391
14392 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14393
14394         PR target/48288
14395         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
14396         * config/pa/pa.md (iordi3): Use new predicate in expander.
14397         (iorsi3): Likewise.
14398
14399 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
14400
14401         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
14402         FUNCTION_VALUE_REGNO_P): Remove macros.
14403         * config/mips/mips-protos.h (mips_function_value): Remove.
14404         * config/mips/mips.c (mips_function_value): Rename to...
14405         (mips_function_value_1): ... this. Make static.  Handle receiving
14406         the function type in 'fn_decl_or_type' argument.
14407         (mips_function_value, mips_libcall_value,
14408         mips_function_value_regno_p): New function.
14409         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
14410         TARGET_FUNCTION_VALUE_REGNO_P): Define.
14411
14412 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
14413
14414         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
14415         and -mavx256-split-unaligned-store.
14416         (ix86_option_override_internal): Split 32-byte AVX unaligned
14417         load/store by default.
14418         (ix86_avx256_split_vector_move_misalign): New.
14419         (ix86_expand_vector_move_misalign): Use it.
14420
14421         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
14422         -mavx256-split-unaligned-store.
14423
14424         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
14425         256bit load/store.  Generate unaligned store on misaligned memory
14426         operand.
14427         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
14428         256bit load/store.
14429         (*avx_movdqu<avxmodesuffix>): Likewise.
14430
14431         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
14432         -mavx256-split-unaligned-store.
14433
14434 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14435
14436         PR target/38598
14437         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
14438         Update commentary.
14439
14440 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
14441
14442         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
14443         opno arguments with an expand_operand.  Use create_input_operand.
14444         (mips_prepare_builtin_target): Delete.
14445         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
14446         functions.
14447         (mips_expand_builtin_direct): Use create_output_operand and
14448         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
14449         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
14450         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
14451
14452 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
14453
14454         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
14455         function.
14456         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
14457
14458 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
14459
14460         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
14461         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
14462         basic blocks and call commit_edge_insertions directly.
14463         (fixup_abnormal_edges): Move from here to...
14464         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
14465         on the edges and return whether some have actually been inserted.
14466         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
14467         compensation code.
14468
14469 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
14470
14471         PR rtl-optimization/48144
14472         * sel-sched-ir.c (merge_history_vect): Factor out from ...
14473         (merge_expr_data): ... here.
14474         (av_set_intersect): Rename to av_set_code_motion_filter.
14475         Update all callers.  Call merge_history_vect when an expression
14476         is found in both sets.
14477         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
14478
14479 2011-03-26  Alan Modra  <amodra@gmail.com>
14480
14481         * config/rs6000/predicates.md (word_offset_memref_op): Handle
14482         cmodel medium addresses.
14483         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
14484         64-bit gpr loads and stores.
14485         (rs6000_secondary_reload_ppc64): New function.
14486         * config/rs6000/rs6000-protos.h: Declare it.
14487         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
14488
14489 2011-03-26  Alan Modra  <amodra@gmail.com>
14490
14491         PR target/47487
14492         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
14493         GNU Go in traceback table.
14494
14495 2011-03-25  Richard Henderson  <rth@redhat.com>
14496
14497         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
14498         if there are exactly 6 operands.
14499         (set_storage_via_setmem): Similarly.
14500
14501 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14502
14503         * collect2.c (write_c_file_stat): Handle backslash
14504         as right-hand directory separator.
14505         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
14506         checking just for slash.
14507         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
14508         instead of checking for trailing slash.
14509         * gcc.c (record_temp_file): Use filename_cmp instead
14510         of strcmp.
14511         (do_spec_1): Likewise.
14512         (replace_outfile_spec_function): Likewise.
14513         (is_directory): Use filename_ncmp instead of strncmp.
14514         (print_multilib_info): Likewise.
14515         * gcov.c (find_source): Use filename_cmp instead
14516         instead of strcmp.
14517         (make_gcov_file_name): Fix order of slash/backslash
14518         checks.
14519         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
14520         (add_standard_paths): Likewise.
14521         * mips-tfile.c (saber_stop): Handle backslash.
14522         * prefix.c (update_path): Use filename_ncmp instead of
14523         strncmp.
14524         * profile.c (output_location): Use filename_cmp instead
14525         of strcmp.
14526         * read-md.c (handle_toplevel_file): Handle backslash.
14527         * tlink.c (frob_extension):  Likewise.
14528         * tree-cfg.c (same_line_p): Use filename_cmp instead of
14529         strcmp.
14530         * tree-dump.c (dequeue_and_dump): Handle backslash.
14531         * tree.c (get_file_function_name): Likewise.
14532         * gengtype.c (read_input_list): Likewise.
14533         (get_file_realbasename): Likewise.
14534         (get_output_file_with_visibility): Use filename_cmp
14535         instead of strcmp.
14536
14537 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
14538
14539         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
14540         case to VFPv1.
14541
14542 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14543
14544         * fold-const.c (expr_location_or): New function.
14545         (fold_truth_not_expr): Call it.
14546
14547 2011-03-25  Jeff Law  <law@redhat.com>
14548
14549         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
14550         va_end.
14551         * c-family/c-common.c (def_fn_type): Likewise.
14552         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
14553         * emit-rtl.c (gen_rtvec): Likewise.
14554         * lto/lto-lang.c (def_fn_type): Likewise.
14555
14556 2011-03-25  Richard Guenther  <rguenther@suse.de>
14557
14558         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
14559         also generate copies.
14560         (fini_copy_prop): Handle constant values properly.
14561
14562 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
14563
14564         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
14565         mode size instead of bitsize with DWARF2_ADDR_SIZE.
14566         (hash_loc_operands, compare_loc_operands): Handle
14567         DW_OP_GNU_entry_value.
14568
14569 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14570
14571         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
14572         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
14573         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
14574         comment and use macro TARGET_64BIT_MS_ABI instead.
14575         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
14576         and change default behavior for 32-bit MS_ABI.
14577         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
14578         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
14579         32-bit, too.
14580         (ix86_cfun_abi): Likewise.
14581         (ix86_maybe_switch_abi): Adjust comment.
14582         (init_cumulative_args): Check for bit-ness in MS_ABI case.
14583         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
14584         instead of checking for SYSV_ABI.
14585         (ix86_nsaved_sseregs): Likewise.
14586         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
14587         to 16 bytes.
14588         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
14589         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
14590         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
14591         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
14592         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
14593
14594 2011-03-25  Richard Guenther  <rguenther@suse.de>
14595
14596         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
14597         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
14598         (verify_gimple): Remove.
14599         * tree-cfg.c (verify_gimple_call): Merge verification
14600         from verify_stmts.
14601         (verify_gimple_phi): Merge verification from verify_stmts.
14602         (verify_gimple_label): New function.
14603         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
14604         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
14605         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
14606         (verify_stmts): Rename to verify_gimple_in_cfg.
14607         (verify_gimple_in_cfg): New function.
14608         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
14609         * tree-ssa.c (verify_ssa): Likewise.
14610         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
14611
14612 2011-03-25  Richard Guenther  <rguenther@suse.de>
14613
14614         * passes.c (init_optimization_passes): Add FRE pass after
14615         early SRA.
14616
14617 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
14618             Andrew Stubbs  <ams@codesourcery.com>
14619
14620         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
14621         for Cortex-A8.
14622         (arm_movdi_vfp_cortexa8): New pattern.
14623         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
14624         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
14625         instructions when tuning for Cortex-A8.  Set attribute "arch".
14626         * config/arm/arm.md: Move include arm-tune.md up a bit.
14627         (define_attr "arch"): Add "onlya8" and "nota8" values.
14628         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
14629
14630 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
14631
14632         PR bootstrap/48282
14633         Revert:
14634         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
14635
14636         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
14637         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
14638         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
14639         * passes.c (init_optimization_passes): Move
14640         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
14641
14642 2011-03-25  Kai Tietz  <ktietz@redhat.com>
14643
14644         * c-typeck.c (comptypes_internal): Replace target
14645         hook call of comp_type_attributes by version in tree.c file.
14646         * gimple.c (gimple_types_compatible_p_1): Likewise.
14647         * tree-ssa.c (useless_type_conversion_p): Likewise.
14648         * tree.c (build_type_attribute_qual_variant): Likewise.
14649         (attribute_value_equal): New static helper function.
14650         (comp_type_attributes): New function.
14651         (merge_attributes): Use attribute_value_equal for comparison.
14652         (attribute_list_contained): Likewise.
14653         * tree.h (comp_type_attributes): New prototype.
14654
14655 2011-03-25  Richard Guenther  <rguenther@suse.de>
14656
14657         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
14658         of complex types at -O0.
14659         (verify_gimple_assign_binary): Likewise.
14660         (verify_gimple_assign_ternary): Likewise.
14661
14662 2011-03-24  Mark Wielaard  <mjw@redhat.com>
14663
14664         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
14665         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
14666
14667 2011-03-24  Mark Wielaard  <mjw@redhat.com>
14668
14669         PR debug/48041
14670         * dwarf2out.c (output_abbrev_section): Only write table when
14671         abbrev_die_table_in_use > 1.
14672
14673 2011-02-24  Richard Henderson  <rth@redhat.com>
14674
14675         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
14676         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
14677         (alpha_expand_unaligned_load_words): Use extql.
14678         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
14679         (emit_insxl): Handle all modes for consistency.
14680
14681 2011-02-24  Richard Henderson  <rth@redhat.com>
14682
14683         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
14684         (alpha_expand_unaligned_load): Likewise.
14685         (alpha_expand_unaligned_store): Likewise.
14686         (alpha_expand_unaligned_load_words): Likewise.
14687         (alpha_expand_unaligned_store_words): Likewise.
14688         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
14689         (alpha_split_lock_test_and_set_12): Likewise.
14690         (print_operand, alpha_fold_builtin_extxx): Likewise.
14691         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
14692         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
14693         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
14694         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
14695         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
14696         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
14697         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
14698         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
14699         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
14700         (extwl, extll, extql): Similarly.
14701         (inswh, inslh, insqh): Similarly.
14702         (mskbl, mskwl, mskll, mskql): Similarly.
14703         (mskwh, msklh, mskqh): Similarly.
14704
14705 2011-02-24  Richard Henderson  <rth@redhat.com>
14706
14707         * config/alpha/alpha.md (attribute isa): Add er, ner.
14708         (attribute enabled): Handle them.
14709         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
14710
14711 2011-02-24  Richard Henderson  <rth@redhat.com>
14712
14713         * config/alpha/alpha.md (attribute isa): Add vms.
14714         (attribute enabled): Handle it.
14715         (*movsf): Merge *movsf_{nofix,fix,nofp}.
14716         (*movdf): Merge *movdf_{nofix,fix,nofp}.
14717         (*movtf): Rename from *movtf_internal for consistency.
14718         (*movsi): Merge with *movsi_nt_vms.
14719         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
14720         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
14721         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
14722         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
14723
14724 2011-02-24  Richard Henderson  <rth@redhat.com>
14725
14726         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
14727         (extendqisi2, extendhisi2): Likewise.
14728         (extendqidi2): Simplify BWX/non-BWX expansions.
14729         (extendhidi2): Similarly.
14730
14731 2011-02-24  Richard Henderson  <rth@redhat.com>
14732
14733         * config/alpha/alpha.md (attribute isa): New.
14734         (attribute enabled): New.
14735         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
14736         (zero_extendqisi2, zero_extendqidi2): Similarly.
14737         (zero_extendhisi2, zero_extendhidi2): Similarly.
14738         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
14739
14740 2011-02-24  Richard Henderson  <rth@redhat.com>
14741
14742         * config/alpha/predicates.md (input_operand): Revert last change;
14743         update comment to mention 32-bit VMS rather than Windows.
14744
14745 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
14746
14747         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
14748         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
14749         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
14750         * passes.c (init_optimization_passes): Move
14751         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
14752
14753 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14754
14755         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
14756
14757 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
14758
14759         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
14760         correctly.
14761
14762 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
14763
14764         PR debug/48204
14765         * simplify-rtx.c (simplify_const_unary_operation): Call
14766         real_convert when changing mode class with FLOAT_EXTEND.
14767
14768 2011-03-24  Nick Clifton  <nickc@redhat.com>
14769
14770         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
14771         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
14772         * config/rx/rx.c (rx_option_override): Set align_jumps,
14773         align_loops and align_labels if not set by the user.
14774         (rx_align_for_label): New function.
14775         (rx_max_skip_for_label): New function.
14776         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
14777         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
14778         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
14779         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
14780         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
14781
14782 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
14783
14784         PR rtl-optimization/48263
14785         * optabs.c (expand_binop_directly): Reinstate convert_modes code
14786         and original commutative_p handling.  Use maybe_gen_insn.
14787
14788 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14789
14790         * reload.c (find_reloads_subreg_address): Add address_reloaded
14791         parameter and return true there if the full address has been
14792         reloaded.
14793         (find_reloads_toplev): Pass address_reloaded flag.
14794         (find_reloads_address_1): Don't use address_reloaded parameter.
14795
14796 2011-03-24  Jeff Law  <law@redhat.com>
14797
14798         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
14799         unused variable "ann".
14800         (remove_unused_locals): Likewise.
14801
14802         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
14803         statement.
14804
14805         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
14806         after it is freed.
14807
14808 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14809
14810         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
14811         for invalid symbolic addresses.
14812         (s390_secondary_reload): Don't use s390_check_symref_alignment for
14813         larl operands.
14814
14815 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14816
14817         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
14818         the argument in calls to fold_truth_not_expr.
14819
14820 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
14821
14822         * tree.c (record_node_allocation_statistics): New function.
14823         (make_node_stat, copy_node_stat, build_string): Call it.
14824         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
14825         (build1_stat, build_omp_clause): Likewise.
14826
14827 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
14828
14829         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
14830         last commit.
14831
14832 2011-03-24  Richard Guenther  <rguenther@suse.de>
14833
14834         PR tree-optimization/48271
14835         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
14836         blocks that still exist.
14837
14838 2011-03-24  Richard Guenther  <rguenther@suse.de>
14839
14840         PR tree-optimization/48270
14841         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
14842         not free datarefs before ddrs.
14843
14844 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
14845
14846         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
14847         from the address built for a reference with variable offset.
14848
14849 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
14850
14851         PR target/48237
14852         * config/i386/i386.md (*movdf_internal_rex64): Do not split
14853         alternatives that can be handled with movq or movabsq insn.
14854         (*movdf_internal): Disable for !TARGET_64BIT.
14855         (*movdf_internal_nointeger): Ditto.
14856         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
14857
14858 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
14859
14860         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
14861         (FUNCTION_ARG_ADVANCE): Likewise.
14862         * tm.texi.in: Change references to them to hook references.
14863         * tm.texi: Regenerate.
14864         * targhooks.c (default_function_arg): Eliminate check for target macro.
14865         (default_function_incoming_arg): Likewise.
14866         (default_function_arg_advance): Likewise.
14867         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
14868         (function_arg_advance): Likewise.
14869         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
14870
14871 2011-03-24  Richard Guenther  <rguenther@suse.de>
14872
14873         PR middle-end/48269
14874         * tree-object-size.c (addr_object_size): Do not double-account
14875         for MEM_REF offsets.
14876
14877 2011-03-24  Diego Novillo  <dnovillo@google.com>
14878
14879         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
14880         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
14881         (lto_input_data_block): Move from lto-opts.c.  Make extern.
14882         Update all users.
14883         (lto_input_string): Rename from input_string.  Make extern.
14884         Update all users.
14885         * lto-streamer-out.c (lto_output_string_with_length): Rename from
14886         output_string_with_length.
14887         Output 0 to indicate a non-NULL string.  Update all callers to
14888         not emit 0.
14889         (lto_output_string): Rename from output_string.  Make extern.
14890         Update all users.
14891         (lto_output_decl_state_streams): Make extern.
14892         (lto_output_decl_state_refs): Make extern.
14893         * lto-streamer.h (lto_input_string): Declare.
14894         (lto_input_data_block): Declare.
14895         (lto_output_string): Declare.
14896         (lto_output_string_with_length): Declare.
14897         (lto_output_decl_state_streams): Declare.
14898         (lto_output_decl_state_refs): Declare.
14899
14900 2011-03-24  Richard Guenther  <rguenther@suse.de>
14901
14902         PR tree-optimization/46562
14903         * tree.c (build_invariant_address): New function.
14904         * tree.h (build_invariant_address): Declare.
14905         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
14906         a renamed function moved ...
14907         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
14908         Take valueization callback parameter.
14909         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
14910         * gimple-fold.h: New file.
14911         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
14912         (ccp_fold, fold_const_aggregate_ref,
14913         fold_ctor_reference, fold_nonarray_ctor_reference,
14914         fold_array_ctor_reference, fold_string_cst_ctor_reference,
14915         get_base_constructor): Move ...
14916         * gimple-fold.c: ... here.
14917         (gimple_fold_stmt_to_constant_1): New function
14918         split out from ccp_fold.  Take a valueization callback parameter.
14919         Valueize all operands.
14920         (gimple_fold_stmt_to_constant): New wrapper function.
14921         (fold_const_aggregate_ref_1): New function split out from
14922         fold_const_aggregate_ref.  Take a valueization callback parameter.
14923         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
14924         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
14925         invariant POINTER_PLUS_EXPRs to invariant form.
14926         (vn_valueize): New function.
14927         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
14928         * tree-vrp.c (vrp_valueize): New function.
14929         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
14930         to fold statements to constants.
14931         * tree-ssa-pre.c (eliminate): Properly guard propagation of
14932         function declarations.
14933         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
14934         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
14935
14936 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
14937
14938         * config/h8300/predicates.md (jump_address_operand): Fix register
14939         mode check.
14940
14941 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
14942
14943         * doc/invoke.texi (max-stores-to-sink): Document.
14944         * params.h (MAX_STORES_TO_SINK): Define.
14945         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
14946         if either vectorization or if-conversion is disabled.
14947         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
14948         tree-vect-data-refs.c vect_equal_offsets.
14949         (dr_equal_offsets_p): New function.
14950         (find_data_references_in_bb): Remove static.
14951         * tree-data-ref.h (find_data_references_in_bb): Declare.
14952         (dr_equal_offsets_p): Likewise.
14953         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
14954         (vect_drs_dependent_in_basic_block): Update calls to
14955         vect_equal_offsets.
14956         (vect_check_interleaving): Likewise.
14957         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
14958         (cond_if_else_store_replacement): Rename to...
14959         (cond_if_else_store_replacement_1): ... this.  Change arguments and
14960         documentation.
14961         (cond_if_else_store_replacement): New function.
14962         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
14963         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
14964
14965 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
14966
14967         PR target/46934
14968         * config/arm/arm.md (casesi): Use the gen_int_mode() function
14969         to subtract lower bound instead of GEN_INT().
14970
14971 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
14972
14973         PR other/48179
14974         PR other/48221
14975         PR other/48234
14976         * doc/extend.texi (Alignment): Move section to match order in TOC.
14977         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
14978         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
14979
14980 2011-03-23  Jeff Law  <law@redhat.com>
14981
14982         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
14983         before removing the edge.
14984
14985         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
14986         it may have been freed by redirect_branch_edge or
14987         redirect_edge_succ_nodup.
14988
14989 2011-03-23  Richard Guenther  <rguenther@suse.de>
14990
14991         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
14992         (check_va_list_escapes): Likewise.
14993         (check_all_va_list_escapes): Likewise.
14994
14995 2011-03-23  Richard Guenther  <rguenther@suse.de>
14996
14997         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
14998         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
14999         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
15000         (alias.o): Likewise.
15001         (ipa-type-escape.o): Remove.
15002         (ipa-struct-reorg.o): Likewise.
15003         (GTFILES): Remove ipa-struct-reorg.c.
15004         * alias.c: Do not include ipa-type-escape.h.
15005         * tree-ssa-alias.c: Likewise.
15006         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
15007         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
15008         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
15009         and ipa-type-escape passes.
15010         * tree-pass.h (pass_ipa_type_escape): Remove.
15011         (pass_ipa_struct_reorg): Likewise.
15012         * ipa-struct-reorg.h: Remove.
15013         * ipa-struct-reorg.c: Likewise.
15014         * ipa-type-escape.h: Likewise.
15015         * ipa-type-escape.c: Likewise.
15016         * doc/invoke.texi (-fipa-struct-reorg): Remove.
15017         (--param struct-reorg-cold-struct-ratio): Likewise.
15018         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15019         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
15020         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
15021
15022 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15023
15024         * config/s390/2084.md: Enable all insn reservations also for z9_ec
15025         cpu attribute value.
15026         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
15027         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
15028         * config/s390/s390.c (processor_flags_table): New constant array.
15029         (s390_handle_arch_option): Remove.
15030         (s390_handle_option): Remove s390_handle_arch_option invocations
15031         and OPT_mwarn_framesize_ handling.
15032         (s390_option_override): Remove s390_handle_arch_option invocation.
15033         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
15034         warnings.
15035         * config/s390/s390.md (cpu attribute): Add z9_ec value.
15036         * config/s390/s390.opt (s390_tune, s390_arch)
15037         (march=): Replace s390_arch_option enum and values with
15038         processor_type.  Set variable name to s390_arch.  Set
15039         initialization value.
15040         (mtune=): Replace s390_arch_option with processor_type.  Set
15041         variable name to s390_tune.  Set initialization value.
15042
15043 2011-03-23  Julian Brown  <julian@codesourcery.com>
15044
15045         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
15046         accesses which are not naturally aligned.
15047
15048 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15049
15050         PR target/47553
15051         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
15052
15053 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
15054
15055         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
15056         parameter from "int" to "enum insn_code".
15057         (expand_operand_type): New enum.
15058         (expand_operand): New structure.
15059         (create_expand_operand): New function.
15060         (create_fixed_operand, create_output_operand): Likewise
15061         (create_input_operand, create_convert_operand_to): Likewise.
15062         (create_convert_operand_from, create_address_operand): Likewise.
15063         (create_integer_operand): Likewise.
15064         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
15065         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15066         (expand_insn, expand_jump_insn): Likewise.
15067         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
15068         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
15069         (expand_movstr, expand_builtin___clear_cache): Likewise.
15070         (expand_builtin_lock_release): Likewise.
15071         * explow.c (allocate_dynamic_stack_space): Likewise.
15072         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
15073         and use the default handling in that case.
15074         * expmed.c (check_predicate_volatile_ok): Delete.
15075         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
15076         (emit_cstore): Likewise.
15077         * expr.c (emit_block_move_via_movmem): Likewise.
15078         (set_storage_via_setmem, expand_assignment): Likewise.
15079         (emit_storent_insn, try_casesi): Likewise.
15080         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
15081         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
15082         (expand_vec_shift_expr, expand_binop_directly): Likewise.
15083         (expand_twoval_unop, expand_twoval_binop): Likewise.
15084         (expand_unop_direct, emit_indirect_jump): Likewise.
15085         (emit_conditional_move, vector_compare_rtx): Likewise.
15086         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
15087         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
15088         (expand_sync_lock_test_and_set): Likewise.
15089         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
15090         (emit_unop_insn): Likewise.
15091         (expand_copysign_absneg): Change icode to an insn_code.
15092         (create_convert_operand_from_type): New function.
15093         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
15094         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
15095         (expand_insn, expand_jump_insn): Likewise.
15096         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
15097         than const_int_operand for operand 2.
15098
15099 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15100
15101         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
15102         if possible.
15103
15104 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15105
15106         * emit-rtl.c (emit_pattern_before_noloc): New function.
15107         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
15108         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
15109         (emit_pattern_after_noloc): New function.
15110         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
15111         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
15112
15113 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15114
15115         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
15116         (__ffsDI2): Likewise.
15117
15118 2011-03-22  Richard Henderson  <rth@redhat.com>
15119
15120         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
15121         of !TARGET_ABI_OPEN_VMS.
15122         (alpha_trampoline_init, alpha_start_function): Likewise.
15123         (alpha_expand_epilogue, alpha_file_start): Likewise.
15124         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
15125         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
15126         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
15127         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
15128         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
15129
15130 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15131
15132         * config/s390/s390-opts.h: New.
15133         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
15134         s390_arch_flags, s390_warn_framesize, s390_stack_size,
15135         s390_stack_guard): Remove.
15136         (s390_handle_arch_option): Return void.  Take enum
15137         s390_arch_option value instead of string and searching array.
15138         (s390_handle_option): Don't assert that global structures are in
15139         use.  Access variables via opts pointer.  Use error_at.  Don't use
15140         sscanf for -mstack-guard= or -mstack-size=.  Update call to
15141         s390_handle_arch_option.
15142         (s390_option_override): Update call to s390_handle_arch_option.
15143         (s390_emit_prologue): Use %d format for s390_stack_size in
15144         diagnostic.  Use %wd for HOST_WIDE_INT.
15145         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
15146         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
15147         * config/s390/s390.opt (config/s390/s390-opts.h): New
15148         HeaderInclude entry.
15149         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
15150         s390_arch_flags, s390_warn_framesize): New Variable entries.
15151         (s390_arch_option): New Enum and EnumValue entries.
15152         (march=): Use Enum instead of Var.
15153         (mstack-guard=, mstack-size=): Use UInteger and Var.
15154         (mtune=): Use Enum.
15155
15156 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15157
15158         * config/score/score.c (score_handle_option): Don't assert that
15159         global structures are in use.  Access target_flags via opts
15160         pointer.  Use value of -march= option to determine target_flags
15161         settings.
15162         * config/score/score.opt (march=): Use Enum.
15163         (score_arch): New Enum and EnumValue entries.
15164
15165 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15166
15167         * config/mep/mep.c (option_mtiny_specified): Remove.
15168         (mep_option_override): Move register handling for -mivc2 from
15169         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
15170         instead of option_mtiny_specified.
15171         (mep_handle_option): Access target_flags via opts pointer.  Don't
15172         assert that global structures are in use.  Defer part of -mivc2
15173         handling and move it to mep_option_override.
15174         * config/mep/mep.opt (IVC2): New Mask entry.
15175         (mivc2): Use Var and Defer instead of Mask.
15176
15177 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15178
15179         * config/v850/v850-opts.h: New.
15180         * config/v850/v850.c (small_memory): Replace with
15181         small_memory_physical_max array.  Make that array static const.
15182         (v850_handle_memory_option): Take integer value of argument.  Take
15183         gcc_options pointer, option text and location.  Return void.
15184         Update for changes to small memory structures.
15185         (v850_handle_option): Access target_flags via opts pointer.  Don't
15186         assert that global structures are in use.  Update calls to
15187         v850_handle_memory_option.
15188         (v850_encode_data_area): Update references to small memory settings.
15189         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
15190         (enum small_memory_type): Move to v850-opts.h.
15191         * config/v850/v850.opt (config/v850/v850-opts.h): New
15192         HeaderInclude entry.
15193         (small_memory_max): New Variable entry.
15194         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
15195         (mtda, mzda): Likewise.
15196
15197 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15198
15199         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
15200         pointer.  Don't assert that global structures are in use.
15201
15202 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15203
15204         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
15205         via opts pointer.  Don't assert that global structures are in use.
15206
15207 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15208
15209         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
15210         (munix=93): Use Var.
15211         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
15212         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
15213         * config/pa/pa-opts.h: New.
15214         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
15215         (pa_handle_option): Don't assert that global structures are in
15216         use.  Access target_flags via opts pointer.  Don't handle
15217         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
15218         OPT_munix_98 here.
15219         (pa_option_override): Handle deferred OPT_mfixed_range_.
15220
15221 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15222
15223         * config/mn10300/mn10300-opts.h: New.
15224         * config/mn10300/mn10300.c (mn10300_processor,
15225         mn10300_tune_string): Remove.
15226         (mn10300_handle_option): Don't assert that global structures are
15227         in use.  Access mn10300_processor via opts pointer.  Don't handle
15228         OPT_mtune_ here.
15229         * config/mn10300/mn10300.h (enum processor_type): Move to
15230         mn10300-opts.h.
15231         (mn10300_processor): Remove.
15232         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
15233         HeaderInclude entry.
15234         (mn10300_processor): New Variable entry.
15235         (mtune=): Use Var.
15236
15237 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15238
15239         * config/microblaze/microblaze.c: Don't include opts.h.
15240         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
15241         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
15242         (mno-clearbss): Use Var and Warn.
15243
15244 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15245
15246         * config/m32r/m32r-opts.h: New.
15247         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
15248         (m32r_handle_option): Don't assert that global structures are in
15249         use.  Access target_flags and m32r_cache_flush_func via opts
15250         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
15251         OPT_mno_flush_trap here.
15252         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
15253         include of m32r-opts.h.
15254         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
15255         HeaderInclude entry.
15256         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
15257         (mmodel=): Use Enum and Var.
15258         (m32r_model): New Enum and EnumValue entries.
15259         (mno-flush-trap): Use Var.
15260         (msdata=): Use Enum and Var.
15261         (m32r_sdata): New Enum and EnumValue entries.
15262
15263 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15264
15265         * config/m32c/m32c.c: Don't include opts.h.
15266         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
15267         m32c_handle_option): Remove.
15268         (m32c_option_override): Check global_options_set.x_target_memregs
15269         instead of target_memregs_set.
15270         * config/m32c/m32c.h (target_memregs): Remove.
15271         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
15272         variable.
15273
15274 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15275
15276         * config/iq2000/iq2000-opts.h: New.
15277         * config/iq2000/iq2000.c: Don't include opts.h.
15278         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
15279         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
15280         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
15281         HeaderInclude entry.
15282         (iq2000_tune): New Variable entry.
15283         (march=): Add comment.  Use Enum.
15284         (iq2000_arch): New Enum and EnumValue entries.
15285         (mcpu=): Use Enum and Var.
15286         (iq2000_tune): New Enum and EnumValue entries.
15287
15288 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15289
15290         * config/ia64/ia64-opts.h: New.
15291         * config/ia64/ia64.c (ia64_tune): Remove.
15292         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
15293         here.  Use error_at.
15294         (ia64_option_override): Handle deferred OPT_mfixed_range_.
15295         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
15296         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
15297         HeaderInclude entry.
15298         (ia64_tune): New Variable entry.
15299         (mfixed-range=): Use Defer and Var.
15300         (mtune=): Use Enum and Var.
15301         (ia64_tune): New Enum and EnumValue entries.
15302
15303 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15304
15305         * config/frv/frv-opts.h: New.
15306         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
15307         frv-opts.h.
15308         (frv_cpu_type): Remove.
15309         * config/frv/frv.c: Don't include opts.h.
15310         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
15311         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
15312         (frv_cpu_type): New Variable entry.
15313         (frv_cpu): New Enum and EnumValue entries.
15314
15315 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15316
15317         * config/cris/cris.c (cris_handle_option): Access target_flags via
15318         opts pointer.  Don't assert that global structures are in use.
15319         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
15320         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
15321
15322 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15323
15324         * config/bfin/bfin-opts.h: New.
15325         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
15326         bfin_si_revision, bfin_workarounds): Remove.
15327         (bfin_cpus): Make static const.
15328         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
15329         not bfin_lib_id_given.
15330         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
15331         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
15332         pointer. Use error_at.  Don't assert that global structures are in use.
15333         * config/bfin/bfin.h: Include bfin-opts.h.
15334         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
15335         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
15336         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
15337         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
15338         entries.
15339
15340 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15341
15342         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
15343         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
15344         or -msoft-float here.
15345         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
15346         -msoft-float and -mhard-float.
15347         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
15348         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15349         msoft-float.
15350         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
15351         -msoft-float.
15352         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
15353         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
15354         not mhard-float.
15355         (LIBGCC_SPEC): Don't handle -msoft-float.
15356         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
15357         -mhard-float.
15358         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
15359         msoft-float.
15360         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
15361         -mfloat-abi=*, not -msoft-float and -mhard-float.
15362         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
15363         -msoft-float.
15364         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
15365         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
15366         mhard-float and msoft-float.
15367         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
15368         mfloat-abi=soft in comments, not mhard-float and msoft-float.
15369         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
15370         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
15371         mhard-float.
15372         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
15373         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
15374         msoft-float.
15375         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
15376         not mhard-float.
15377         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
15378         not msoft-float.
15379
15380 2011-03-22  Richard Henderson  <rth@redhat.com>
15381
15382         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
15383         TARGET_ABI_WINDOWS_NT.
15384         (alpha_output_function_end_prologue): Likewise.
15385         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
15386         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15387         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
15388         (trap, *movsi_nt_vms): Likewise.
15389         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
15390         (*tablejump_osf_nt_internal): Remove.
15391         * config/alpha/predicates.md (input_operand): Only test Pmode.
15392
15393 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15394
15395         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
15396         via opts pointer.  Use error_at.  Don't assert that global
15397         structures are in use.
15398
15399 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15400
15401         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
15402         (ix86_handle_option): Access ix86_isa_flags and
15403         ix86_isa_flags_explicit via opts pointer.  Don't assert that
15404         global structures are in use.
15405         (ix86_function_specific_save, ix86_function_specific_restore):
15406         Update ix86_isa_flags_explicit field name.
15407         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
15408         (ix86_isa_flags_explicit): Rename TargetSave entry to
15409         x_ix86_isa_flags_explicit.
15410
15411 2011-03-22  Richard Henderson  <rth@redhat.com>
15412
15413         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
15414         (alpha_option_override, direct_return): Likewise.
15415         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
15416         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
15417         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
15418         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
15419         (alpha_expand_epilogue, alpha_end_function): Likewise.
15420         (alpha_init_libfuncs): Likewise.
15421         (struct machine_function): Remove unicosmk members.
15422         (print_operand) ['t']: Remove.
15423         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
15424         unicosmk_output_module_name, unicosmk_output_common,
15425         current_section_align, unicosmk_output_text_section_asm_op,
15426         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
15427         unicosmk_section_type_flags, unicosmk_unique_section,
15428         unicosmk_asm_named_section, unicosmk_insert_attributes,
15429         unicosmk_output_align, unicosmk_defer_case_vector,
15430         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
15431         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
15432         unicosmk_output_ssib, unicosmk_add_call_info_word,
15433         unicosmk_extern_head, unicosmk_output_default_externs,
15434         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
15435         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
15436         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
15437         * config/alpha/alpha-protos.h: Update.
15438         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
15439         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
15440         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
15441         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
15442         (*mulsi_se, mulvsi3): Likewise.
15443         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
15444         (*divmodsi_internal, call, call_value, realign): Likewise.
15445         (moddi3, umoddi3): Likewise; remove duplicate expander.
15446         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
15447         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
15448         (*movdi_nofix): Remove r/U alternative.
15449         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
15450         * config/alpha/constraints.md ("U"): Remove.
15451         * config/alpha/predicates.md (call_operand"): Don't test
15452         TARGET_ABI_UNICOSMK.
15453
15454 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15455
15456         * target.def (handle_option): Take gcc_options and
15457         cl_decoded_option pointers and location_t.
15458         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
15459         * doc/tm.texi: Regenerate.
15460         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
15461         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
15462         * lto-opts.c (lto_reissue_options): Generate option structure for
15463         targetm.handle_option call.
15464         * opts.c (target_handle_option): Update call to
15465         targetm.handle_option.  Remove assertions about values now passed
15466         down to hook.
15467         * targhooks.c (default_target_handle_option): New.
15468         * targhooks.h (default_target_handle_option): Declare.
15469         * config/alpha/alpha.c: Include opts.h.
15470         (alpha_handle_option): Update to new hook interface.
15471         * config/arm/arm.c: Include opts.h.
15472         (arm_handle_option): Update to new hook interface.
15473         * config/arm/t-arm (arm.o): Update dependencies.
15474         * config/bfin/bfin.c: Include opts.h.
15475         (bfin_handle_option): Update to new hook interface.
15476         * config/cris/cris.c: Include opts.h.
15477         (cris_handle_option): Update to new hook interface.
15478         * config/frv/frv.c: Include opts.h.
15479         (frv_handle_option): Update to new hook interface.
15480         * config/i386/i386.c: Include opts.h.
15481         (ix86_handle_option): Update to new hook interface.
15482         (ix86_valid_target_attribute_inner_p): Generate option structure
15483         for call to ix86_handle_option.
15484         * config/i386/t-i386 (i386.o): Update dependencies.
15485         * config/ia64/ia64.c: Include opts.h.
15486         (ia64_handle_option): Update to new hook interface.
15487         * config/ia64/t-ia64 (ia64.o): Update dependencies.
15488         * config/iq2000/iq2000.c: Include opts.h.
15489         (iq2000_handle_option): Update to new hook interface.
15490         * config/m32c/m32c.c: Include opts.h.
15491         (m32c_handle_option): Update to new hook interface.
15492         * config/m32r/m32r.c: Include opts.h.
15493         (m32r_handle_option): Update to new hook interface.
15494         * config/m68k/m68k.c: Include opts.h.
15495         (m68k_handle_option): Update to new hook interface.
15496         * config/mep/mep.c: Include opts.h.
15497         (mep_handle_option): Update to new hook interface.
15498         * config/microblaze/microblaze.c: Include opts.h.
15499         (microblaze_handle_option): Update to new hook interface.
15500         * config/mips/mips.c: Include opts.h.
15501         (mips_handle_option): Update to new hook interface.
15502         * config/mn10300/mn10300.c: Include opts.h.
15503         (mn10300_handle_option): Update to new hook interface.
15504         * config/pa/pa.c: Include opts.h.
15505         (pa_handle_option): Update to new hook interface.
15506         * config/pdp11/pdp11.c: Include opts.h.
15507         (pdp11_handle_option): Update to new hook interface.
15508         * config/rs6000/rs6000.c: Include opts.h.
15509         (rs6000_handle_option): Update to new hook interface.
15510         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
15511         * config/rx/rx.c: Include opts.h.
15512         (rx_handle_option): Update to new hook interface.
15513         * config/s390/s390.c: Include opts.h.
15514         (s390_handle_option): Update to new hook interface.
15515         * config/score/score.c: Include opts.h.
15516         (score_handle_option): Update to new hook interface.
15517         * config/sh/sh.c: Include opts.h.
15518         (sh_handle_option): Update to new hook interface.
15519         * config/sparc/sparc.c: Include opts.h.
15520         (sparc_handle_option): Update to new hook interface.
15521         * config/v850/v850.c: Include opts.h.
15522         (v850_handle_option): Update to new hook interface.
15523
15524 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15525
15526         * gcc.c (driver_unknown_option_callback): Only permit and save
15527         unknown -Wno- options.
15528         (driver_wrong_lang_callback): Save options directly instead of via
15529         driver_unknown_option_callback.
15530
15531 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15532
15533         * combine.c (simplify_set): Try harder to find the best CC mode when
15534         simplifying a nested COMPARE on the RHS.
15535
15536 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
15537
15538         * config/alpha/gnu.h: Remove.
15539         * config/arc: Remove directory.
15540         * config/arm/netbsd.h: Remove.
15541         * config/arm/t-pe: Remove.
15542         * config/crx: Remove directory.
15543         * config/i386/netbsd.h: Remove.
15544         * config/m68hc11: Remove directory.
15545         * config/m68k/uclinux-oldabi.h: Remove.
15546         * config/mcore/mcore-pe.h: Remove.
15547         * config/mcore/t-mcore-pe: Remove.
15548         * config/netbsd-aout.h: Remove.
15549         * config/rs6000/gnu.h: Remove.
15550         * config/sh/sh-symbian.h: Remove.
15551         * config/sh/symbian-base.c: Remove.
15552         * config/sh/symbian-c.c: Remove.
15553         * config/sh/symbian-cxx.c: Remove.
15554         * config/sh/symbian-post.h: Remove.
15555         * config/sh/symbian-pre.h: Remove.
15556         * config/sh/t-symbian: Remove.
15557         * config/svr3.h: Remove.
15558         * config/vax/netbsd.h: Remove.
15559         * config.build: Don't handle i[34567]86-*-pe.
15560         * config.gcc: Remove handling of deprecations for most deprecated
15561         targets.
15562         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
15563         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
15564         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
15565         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
15566         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
15567         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
15568         Remove cases.
15569         * config.host: Don't handle i[34567]86-*-pe.
15570         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
15571         (ASM_SPEC32): Don't handle -mcall-gnu.
15572         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
15573         -mcall-gnu.
15574         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
15575         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
15576         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
15577         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
15578         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
15579         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
15580         conditional on SYMBIAN.
15581         * configure.ac: Don't handle powerpc*-*-gnu*.
15582         * configure: Regenerate.
15583         * doc/extend.texi (interrupt attribute): Don't mention CRX.
15584         * doc/install-old.texi (m6811, m6812): Don't mention.
15585         * doc/install.texi (arc-*-elf*): Don't document multilib option.
15586         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
15587         (m68k-uclinuxoldabi): Don't mention.
15588         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
15589         Remove.
15590         (-mcall-gnu): Remove.
15591         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
15592         families): Remove constraint documentation.
15593
15594 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
15595
15596         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
15597         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
15598         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
15599
15600 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
15601
15602         PR target/48226
15603         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
15604         vector when peeking at the next token for vector, don't expand the
15605         keywords.
15606
15607 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
15608
15609         * config/avr/avr-protos.h (expand_epilogue): Change prototype
15610         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
15611         * config/avr/avr.c (init_cumulative_args)
15612         (avr_function_arg_advance): Use it.
15613         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
15614         sibcall epilogues.
15615         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
15616         (avr_function_ok_for_sibcall): ...this new function.
15617         (avr_lookup_function_attribute1): New static Function.
15618         (avr_naked_function_p, interrupt_function_p)
15619         (signal_function_p, avr_OS_task_function_p)
15620         (avr_OS_main_function_p): Use it.
15621         * config/avr/avr.md ("sibcall", "sibcall_value")
15622         ("sibcall_epilogue"): New expander.
15623         ("*call_insn", "*call_value_insn"): New insn.
15624         ("call_insn", "call_value_insn"): Remove
15625         ("call", "call_value", "epilogue"): Change expander to handle
15626         sibling calls.
15627
15628 2011-03-21  Nick Clifton  <nickc@redhat.com>
15629
15630         * doc/invoke.texi (Overall Options): Move closing brace to end of
15631         options list.
15632         (Optimization Options): Add missing @gol.
15633         (Directory Options): Likewise.
15634         (i386 and x86-64 Options): Likewise.
15635         (RS6000 and PowerPC Options): Likewise.
15636         (i386 and x86-64 Windows Options): Likewise.
15637         (V850 Options): Add text missing from descriptions.
15638
15639 2011-03-22  Richard Henderson  <rth@redhat.com>
15640
15641         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
15642         (avr_incoming_return_addr_rtx): New.
15643         (emit_push_byte): New.
15644         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
15645         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
15646         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
15647         (emit_pop_byte): New.
15648         (expand_epilogue): Use it.  Pop frame pointer by bytes.
15649         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
15650         (INCOMING_RETURN_ADDR_RTX): New.
15651         (INCOMING_FRAME_SP_OFFSET): New.
15652         (ARG_POINTER_CFA_OFFSET): New.
15653         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
15654         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
15655         (pophi): Remove.
15656
15657         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
15658
15659 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15660
15661         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
15662         (FUNCTION_ARG_ADVANCE): Likewise.
15663         * tm.texi.in: Change references to them to hook references.
15664         * tm.texi: Regenerate.
15665         * targhooks.c (default_function_arg): Eliminate check for target
15666         macro.
15667         (default_function_incoming_arg): Likewise.
15668         (default_function_arg_advance): Likewise.
15669         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
15670         (function_arg_advance): Likewise.
15671         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
15672
15673 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
15674
15675         * tree.c (build_call_1): New function.
15676         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
15677
15678 2011-03-22  Richard Guenther  <rguenther@suse.de>
15679
15680         PR tree-optimization/48228
15681         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
15682         for single-arg PHIs.
15683
15684 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
15685
15686         PR rtl-optimization/48143
15687         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
15688         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
15689         sse2_cvtps2pd): Likewise.
15690
15691 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15692
15693         * recog.c (canonicalize_change_group): Use validate_unshare_change.
15694
15695 2011-03-22  Richard Guenther  <rguenther@suse.de>
15696
15697         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
15698         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
15699         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
15700         and REALIGN_LOAD_EXPR.
15701         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
15702         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
15703         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
15704         DOT_PROD_EXPR case ...
15705         (expand_expr_real_2): ... here.
15706         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
15707         and REALIGN_LOAD_EXPR.
15708         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
15709         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
15710         (vect_create_epilog_for_reduction): Likewise.
15711         (vectorizable_reduction): Likewise.
15712         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
15713         * tree-vect-stmts.c (vectorizable_load): Likewise.
15714
15715 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
15716
15717         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
15718
15719 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15720
15721         * config/s390/s390.c (s390_delegitimize_address): Fix offset
15722         handling for PLTOFF/GOTOFF.
15723
15724 2011-03-22  Nick Clifton  <nickc@redhat.com>
15725
15726         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
15727         trailing backslash from the end of the macro definition.
15728
15729 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15730
15731         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
15732         and PLT unspecs.
15733
15734 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
15735
15736         * expr.h (prepare_operand): Move to...
15737         * optabs.h (prepare_operand): ...here and change the insn code
15738         parameter from "int" to "enum insn_code".
15739         (insn_operand_matches): Declare.
15740         * expr.c (init_expr_target): Use insn_operand_matches.
15741         (compress_float_constant): Likewise.
15742         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
15743         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
15744         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
15745         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
15746         Likewise.
15747         (gen_cond_trap): Likewise.
15748         (prepare_operand): Likewise.  Change icode to an insn_code.
15749         (insn_operand_matches): New function.
15750         * reload.c (find_reloads_address_1): Use insn_operand_matches.
15751         * reload1.c (gen_reload): Likewise.
15752         * targhooks.c (default_secondary_reload): Likewise.
15753
15754 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
15755
15756         * config/alpha/alpha.md (unspec): New define_c_enum.
15757         (unspecv): Ditto.
15758
15759 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
15760
15761         PR debug/48214
15762         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
15763         between a call and its CALL_ARG_LOCATION note.
15764
15765 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
15766
15767         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
15768
15769 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
15770
15771         PR c/42544
15772         PR c/48197
15773         * c-common.c (shorten_compare): If primopN is first sign-extended
15774         to opN and then zero-extended to result type, set primopN to opN.
15775
15776 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
15777
15778         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
15779         for barrier handlers.
15780
15781 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
15782
15783         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
15784         UNSPEC constants to be in the unspec enumeration, and redefine
15785         all UNSPECV constants to be in the unspecv enumeration, so that
15786         dumps print which unspec/unspec_volatile this is.
15787         * config/rs6000/vector.md (UNSPEC_*): Ditto.
15788         * config/rs6000/paired.md (UNSPEC_*): Ditto.
15789         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
15790         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
15791         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
15792
15793         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
15794         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
15795         UNSPECV_LWSYNC, since these are used as unspec_volatile.
15796         * config/rs6000/sync.md (isync, lwsync): Ditto.
15797
15798 2011-03-21  Richard Guenther  <rguenther@suse.de>
15799
15800         * params.def (lto-min-partition): Fix typo.
15801
15802 2011-03-21  Richard Guenther  <rguenther@suse.de>
15803
15804         PR c/47939
15805         * c-decl.c (grokdeclarator): Drop to the main variant only
15806         for array types.  Drop flag_gen_aux_info check.
15807
15808 2011-03-21  Richard Guenther  <rguenther@suse.de>
15809
15810         PR translation/47911
15811         * params.def (lto-partitions): Fix typo.
15812         (lto-min-partition): Fix wording.
15813
15814 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
15815
15816         * config/rs6000/t-freebsd: Remove duplication from file.
15817
15818 2011-03-21  Richard Guenther  <rguenther@suse.de>
15819
15820         PR middle-end/47661
15821         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
15822
15823 2011-03-21  Richard Guenther  <rguenther@suse.de>
15824
15825         PR lto/48210
15826         * params.def (lto-partitions): Require at least 1 partition.
15827
15828 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15829
15830         * gthr-solaris.h: Remove.
15831         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
15832         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
15833         (LIB_SPEC): Likewise.
15834         * config/sol2.opt (threads): Remove.
15835         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
15836         (sparc*-*-solaris2*): Likewise.
15837         * configure.ac (enable_threads): Enable solaris support.
15838         * configure: Regenerate.
15839         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
15840         * doc/install.texi (Configuration, --enable-threads=lib): Remove
15841         solaris.
15842
15843 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15844
15845         * config.gcc: Obsolete *-*-solaris2.8*.
15846         * doc/install.texi (Specific, *-*-solaris2*): Document it.
15847
15848 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15849
15850         PR bootstrap/48135
15851         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
15852         reference.  Solaris 8 perl works.
15853
15854 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15855
15856         PR bootstrap/48135
15857         * doc/install.texi (Prerequisites): Move jar etc. up.
15858         Explain support library version requirements.
15859
15860 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15861
15862         PR bootstrap/48135
15863         * doc/install.texi (Prerequisites): Move Perl to build
15864         requirements.  Always necessary on Solaris 2 with Sun ld.
15865
15866 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15867
15868         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
15869         binutils 2.21.
15870         (Specific, i?86-*-solaris2.[89]): Likewise.
15871         (Specific, i?86-*-solaris2.10): Likewise.
15872         (Specific, mips-sgi-irix6): Likewise.
15873         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
15874         Update for binutils 2.21.
15875
15876 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15877
15878         * configure.ac (gcc_cv_lto_plugin): Fix typo.
15879         Allow -fuse-linker-plugin for non-default plugin linker.
15880         * configure: Regenerate.
15881
15882 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
15883
15884         PR bootstrap/48167
15885         * gengtype.c (files_rules): Added rule for cp/parser.h.
15886
15887 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
15888
15889         PR target/48213
15890         * config/s390/s390.c (s390_delegitimize_address): Don't call
15891         lowpart_subreg if orig_x has BLKmode.
15892
15893 2011-03-21  Kai Tietz  <ktietz@redhat.com>
15894
15895         PR target/12171
15896         * doc/plugins.texi: Adjust documentation for plugin register_callback.
15897         * tree.h (attribute_spec): Add new member affects_type_identity.
15898         * attribs.c (empty_attribute_table): Adjust attribute_spec
15899         initializers.
15900         * config/alpha/alpha.c: Likewise.
15901         * config/arc/arc.c: Likewise.
15902         * config/arm/arm.c: Likewise.
15903         * config/avr/avr.c: Likewise.
15904         * config/bfin/bfin.c: Likewise.
15905         * config/crx/crx.c: Likewise.
15906         * config/darwin.h: Likewise.
15907         * config/h8300/h8300.c: Likewise.
15908         * config/i386/cygming.h: Likewise.
15909         * config/i386/i386.c: Likewise.
15910         * config/ia64/ia64.c: Likewise.
15911         * config/m32c/m32c.c: Likewise.
15912         * config/m32r/m32r.c: Likewise.
15913         * config/m68hc11/m68hc11.c: Likewise.
15914         * config/m68k/m68k.c: Likewise.
15915         * config/mcore/mcore.c: Likewise.
15916         * config/mep/mep.c: Likewise.
15917         * config/microblaze/microblaze.c: Likewise.
15918         * config/mips/mips.c: Likewise.
15919         * config/rs6000/rs6000.c: Likewise.
15920         * config/rx/rx.c: Likewise.
15921         * config/sh/sh.c: Likewise.
15922         * config/sol2.h: Likewise.
15923         * config/sparc/sparc.c: Likewise.
15924         * config/spu/spu.c: Likewise.
15925         * config/stormy16/stormy16.c: Likewise.
15926         * config/v850/v850.c: Likewise.
15927
15928 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
15929
15930         * simplify-rtx.c (simplify_binary_operation_1): Handle
15931         (xor (and A B) C) case when B and C are both constants.
15932
15933 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
15934
15935         * tree-dfa.c (add_referenced_var): Fix typo in comment.
15936
15937 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
15938
15939         PR bootstrap/48168
15940         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
15941
15942 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
15943
15944         PR rtl-optimization/48156
15945         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
15946         assume df and df_lr are not NULL.
15947
15948 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15949
15950         PR debug/48023
15951         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
15952         between a call and its CALL_ARG_LOCATION note.
15953
15954 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
15955
15956         PR debug/48178
15957         * config/sh/sh.c (find_barrier): Don't emit a constant pool
15958         between a call and its corresponding CALL_ARG_LOCATION note.
15959
15960 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
15961
15962         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
15963         instead of loop. Use HARD_REGISTER_NUM_P predicate.
15964         * haifa-sched.c (setup_ref_regs): Ditto.
15965         * caller-save.c (add_used_regs_1): Ditto.
15966         * dse.c (look_for_hardregs): Ditto.
15967         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
15968         * sched-rgn.c (check_live_1): Ditto.
15969
15970 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
15971
15972         * c-decl.c (diagnose_mismatched_decls): Give an error for
15973         redefining a typedef with variably modified type.
15974
15975 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
15976
15977         * c-decl.c (grokfield): Don't allow typedefs for structures or
15978         unions with no tag by default.
15979         * doc/extend.texi (Unnamed Fields): Update.
15980
15981 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
15982
15983         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
15984         Rewrite using indirect functions.
15985         (lwp_slwpcb): Ditto.
15986         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
15987         (avx_vinsertf128<mode>): Ditto.
15988
15989 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15990
15991         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
15992         unspecs.
15993
15994 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15995
15996         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
15997         splitting between a call and its corresponding CALL_ARG_LOCATION note.
15998
15999 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
16000
16001         PR rtl-optimization/48170
16002         * gcse.c (hoist_code): Remove bogus asserts.
16003
16004 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
16005
16006         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
16007         computation for prologue/epilogue.
16008
16009 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16010
16011         * Makefile.in (check-consistency): Remove.
16012
16013 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
16014
16015         PR debug/48176
16016         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
16017         arange_table_in_use is 0, but either text_section_used or
16018         cold_text_section_used is true.  Don't call it if
16019         !info_section_emitted.
16020
16021 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
16022
16023         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
16024         FUNCTION_VALUE_REGNO_P): Remove.
16025         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
16026         Remove.
16027         * config/avr/avr.c (avr_ret_register): Make static inline.
16028         (avr_function_value_regno_p): New function.
16029         (avr_libcall_value): Make static. Add 'func' argument.
16030         (avr_function_value): Make static. Rename 'func' argument to
16031         'fn_decl_or_type', forward it to avr_libcall_value. Call
16032         avr_ret_register function instead of RET_REGISTER macro.
16033         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16034
16035 2011-03-18  Jason Merrill  <jason@redhat.com>
16036
16037         PR c++/23372
16038         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
16039
16040 2011-03-18  Richard Guenther  <rguenther@suse.de>
16041
16042         * doc/install.texi (--enable-gold): Remove.
16043         (--with-plugin-ld): Document.
16044         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
16045
16046 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
16047
16048         PR middle-end/47790
16049         * expr.c (optimize_bitfield_assignment_op): Revamp to work
16050         again after expansion changes.
16051
16052 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
16053
16054         * combine.c (try_combine): Do simplification only call of
16055         subst() on i2 even when i1 is present. Update comments.
16056
16057 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
16058
16059         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
16060         and UNSPEC_PCREL_SYMOFF.
16061
16062 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16063
16064         * config/s390/s390.md: Use define_c_enum for the unspec constant
16065         definitions.
16066
16067 2011-03-18  Richard Henderson  <rth@redhat.com>
16068             Jakub Jelinek  <jakub@redhat.com>
16069
16070         PR bootstrap/48161
16071         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
16072         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
16073
16074 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16075
16076         PR middle-end/47725
16077         * combine.c (cant_combine_insn_p): Don't check zero/sign
16078         extended hard registers.
16079
16080 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16081
16082         PR middle-end/47725
16083         * combine.c (cant_combine_insn_p): Check zero/sign extended
16084         hard registers.
16085
16086 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
16087
16088         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
16089         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
16090         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
16091         Change return type to bool.
16092         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
16093
16094 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16095
16096         PR debug/48163
16097         * var-tracking.c (prepare_call_arguments): If CALL target
16098         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
16099         pc instead of looking it up using cselib_lookup and use
16100         Pmode for it if x has VOIDmode.
16101         * dwarf2out.c (gen_subprogram_die): If also both first and
16102         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
16103
16104         PR debug/48163
16105         * function.c (assign_parms): For data.passed_pointer parms
16106         use MEM of data.entry_parm instead of data.entry_parm itself
16107         as DECL_INCOMING_RTL.
16108         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
16109         also when passed and declared mode is the same, DECL_RTL
16110         is a MEM with pseudo as address and DECL_INCOMING_RTL is
16111         a MEM too.
16112
16113 2011-03-16  Jeff Law  <law@redhat.com>
16114
16115         PR rtl-optimization/37273
16116         * ira-costs.c (scan_one_insn): Detect constants living in memory and
16117         handle them like argument loads from stack slots.  Do not double
16118         count memory for memory constants and argument loads from stack slots.
16119
16120 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16121
16122         PR debug/48160
16123         * var-tracking.c (prepare_call_arguments): Check SUBREG.
16124
16125 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16126
16127         PR target/48171
16128         * config/i386/i386.opt: Add Save to -mavx and -mfma.
16129
16130 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16131
16132         PR bootstrap/48153
16133         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
16134         if dwarf_strict.
16135         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
16136         Clear call_arg_locations and call_arg_loc_last always.
16137
16138         PR middle-end/48152
16139         * var-tracking.c (prepare_call_arguments): If argument needs to be
16140         passed by reference, adjust argtype and mode.
16141
16142 2011-03-17  Richard Guenther  <rguenther@suse.de>
16143
16144         PR middle-end/48134
16145         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
16146         a value make sure to fold the statement.
16147
16148 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
16149
16150         PR target/43872
16151         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
16152         return condition with !cfun->calls_alloca.
16153
16154 2011-03-17  Richard Guenther  <rguenther@suse.de>
16155
16156         PR bootstrap/48148
16157         * lto-cgraph.c (input_overwrite_node): Clear the abstract
16158         origin for decls in other ltrans units.
16159         (input_varpool_node): Likewise.
16160
16161 2011-03-17  Richard Guenther  <rguenther@suse.de>
16162
16163         PR middle-end/48165
16164         * tree-object-size.c (compute_object_offset): Properly return
16165         the offset operand of MEM_REFs as sizetype.
16166
16167 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
16168
16169         PR rtl-optimization/48141
16170         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
16171         * dse.c: Include params.h.
16172         (active_local_stores_len): New variable.
16173         (add_wild_read, dse_step1): Clear it when setting active_local_stores
16174         to NULL.
16175         (record_store, check_mem_read_rtx): Decrease it when removing
16176         from the chain.
16177         (scan_insn): Likewise.  Increase it when adding to chain, if it
16178         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
16179         set active_local_stores to NULL before the addition.
16180         * Makefile.in (dse.o): Depend on $(PARAMS_H).
16181
16182         PR rtl-optimization/48141
16183         * dse.c (record_store): If no positions are needed in an insn
16184         that cannot be deleted, at least unchain it from active_local_stores.
16185
16186 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
16187
16188         PR debug/47510
16189         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
16190         (lookup_type_die_strip_naming_typedef): ... here.
16191         (get_context_die): Use it.
16192         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
16193         the anonymous struct named by the naming typedef.
16194
16195 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
16196
16197         PR target/48154
16198         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
16199         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16200
16201 2011-03-16  Jeff Law  <law@redhat.com>
16202
16203         * tree-vrp.c (identify_jump_threads): Slightly simplify type
16204         check for operands of conditional.  Allow type to be a pointer.
16205
16206 2011-03-16  Richard Guenther  <rguenther@suse.de>
16207
16208         PR tree-optimization/48149
16209         * fold-const.c (fold_binary_loc): Fold
16210         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
16211
16212 2011-03-16  Richard Guenther  <rguenther@suse.de>
16213
16214         PR tree-optimization/26134
16215         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
16216         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
16217         (non_rewritable_mem_ref_base): Handle complex type component
16218         accesses, constrain offsets for vector and complex extracts
16219         more properly.
16220
16221 2011-03-16  Richard Guenther  <rguenther@suse.de>
16222
16223         PR tree-optimization/48146
16224         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
16225         operands avoiding the need for renaming.
16226
16227 2011-03-16  Richard Guenther  <rguenther@suse.de>
16228
16229         * gimple-fold.c (maybe_fold_reference): Open-code relevant
16230         constant folding.  Move MEM_REF canonicalization first.
16231         Rely on fold_const_aggregate_ref for initializer folding.
16232         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
16233
16234 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16235
16236         PR middle-end/48136
16237         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
16238         arg0/arg1 or their arguments are always fold converted to matching
16239         types.
16240
16241         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
16242         to nargs.
16243
16244 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16245
16246         PR lto/46944
16247         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
16248         Handle in-tree gold.
16249         (ld_vers): Extract binutils version for gold.
16250         (gcc_cv_ld_hidden): Handle gold here.
16251         (gcc_cv_lto_plugin): Determine level of linker plugin support.
16252         * configure: Regenerate.
16253         * config.in: Regenerate.
16254         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
16255         -fuse-linker-plugin otherwise.
16256         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
16257         (LINK_COMMAND_SPEC): Use it.
16258         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
16259
16260 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
16261
16262         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
16263         * calls.c: Remove debug.h include.
16264         (emit_call_1): Don't call virtual_call_token debug hook.
16265         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
16266         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
16267         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
16268         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
16269         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
16270         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
16271         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
16272         dwarf2out_virtual_call): Remove.
16273         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
16274         copy_call_info and virtual_call hooks.
16275         (dwarf2out_init): Don't initialize vcall_insn_table,
16276         debug_dcall_section and debug_vcall_section.
16277         (prune_unused_types): Don't mark nodes from dcall_table.
16278         (dwarf2out_finish): Don't output dcall or vcall tables.
16279         * final.c (final_scan_insn): Don't call direct_call or
16280         virtual_call debug hooks.
16281         * debug.h (struct gcc_debug_hooks): Remove direct_call,
16282         virtual_call_token, copy_call_info and virtual_call hooks.
16283         (debug_nothing_uid): Remove prototype.
16284         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
16285         copy_call_info and virtual_call hooks.
16286         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
16287         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
16288         * debug.c (do_nothing_debug_hooks): Likewise.
16289         (debug_nothing_uid): Remove.
16290         * doc/invoke.texi (-fenable-icf-debug): Remove.
16291         * common.opt (-fenable-icf-debug): Likewise.
16292
16293         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
16294         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
16295         call's MEM.  Handle functions returning aggregate through a hidden
16296         first pointer.  For virtual calls add clobbered pc to call arguments
16297         chain.
16298         * dwarf2out.c (gen_subprogram_die): Emit
16299         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
16300         can't be emitted.
16301
16302         PR debug/45882
16303         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
16304         * rtl.h (ENTRY_VALUE_EXP): Define.
16305         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
16306         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
16307         * print-rtl.c (print_rtx): Likewise.
16308         * gengtype.c (adjust_field_rtx_def): Likewise.
16309         * var-tracking.c (vt_add_function_parameter): Adjust
16310         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
16311         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
16312         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
16313         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
16314         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
16315
16316         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
16317         Call var_location debug hook even on CALL_INSNs.
16318         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
16319         * rtl.def (ENTRY_VALUE): New.
16320         * dwarf2out.c: Include cfglayout.h.
16321         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
16322         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
16323         (struct call_arg_loc_node): New type.
16324         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
16325         tail_call_site_count): New variables.
16326         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
16327         DW_TAG_GNU_call_site_parameter.
16328         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
16329         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
16330         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
16331         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
16332         and DW_AT_GNU_all_source_call_sites.
16333         (mem_loc_descriptor): Handle ENTRY_VALUE.
16334         (add_src_coords_attributes): Don't add enything if
16335         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
16336         (dwarf2out_abstract_function): Save and clear call_arg_location,
16337         call_site_count and tail_call_site_count around dwarf2out_decl call.
16338         (gen_call_site_die): New function.
16339         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
16340         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
16341         (dwarf2out_function_decl): Clear call_arg_locations,
16342         call_arg_loc_last, set call_site_count and tail_call_site_count
16343         to -1 and free block_map.
16344         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
16345         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
16346         followed by any real instructions.
16347         (dwarf2out_begin_function): Set call_site_count and
16348         tail_call_site_count to 0.
16349         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
16350         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
16351         attempt to force a DIE for it and worst case remove the attribute.
16352         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
16353         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
16354         the decl itself.
16355         * var-tracking.c: Include tm_p.h.
16356         (vt_stack_adjustments): For calls call note_register_arguments.
16357         (argument_reg_set): New variable.
16358         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
16359         ensure the VALUE is resolved.
16360         (call_arguments): New variable.
16361         (prepare_call_arguments): New function.
16362         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
16363         (struct expand_loc_callback_data): Add ignore_cur_loc field.
16364         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
16365         always use the best expression.
16366         (vt_expand_loc): Add ignore_cur_loc argument.
16367         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
16368         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
16369         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
16370         note for all calls.
16371         (vt_add_function_parameter): Use cselib_lookup_from_insn.
16372         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
16373         argument.  Don't call cselib_preserve_only_values and
16374         cselib_reset_table.
16375         (note_register_arguments): New function.
16376         (vt_initialize): Compute argument_reg_set.  Call
16377         vt_add_function_parameters before processing basic blocks instead of
16378         afterwards.  For calls call prepare_call_arguments before calling
16379         cselib_process_insn.
16380         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
16381         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
16382         (var-tracking.o): Depend on $(TM_P_H).
16383         * cfglayout.h (insn_scope): New prototype.
16384         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
16385         * cfglayout.c (insn_scope): No longer static.
16386         * insn-notes.def (CALL_ARG_LOCATION): New.
16387         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
16388         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
16389         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
16390         nothing for DECL_EXTERNAL BLOCK_VARS.
16391
16392 2011-03-16  Alan Modra  <amodra@gmail.com>
16393
16394         PR target/45844
16395         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
16396         create invalid offset address for vsx splat insn.
16397         * config/rs6000/predicates.md (splat_input_operand): New.
16398         * config/rs6000/vsx.md (vsx_splat_*): Use it.
16399
16400 2011-03-15  Xinliang David Li  <davidxl@google.com>
16401
16402         PR c/47837
16403         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
16404         (normalize_preds): New function.
16405         (is_use_properly_guarded): Normalize def predicates.
16406
16407 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16408
16409         PR target/46788
16410         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
16411         in the output template.
16412
16413 2011-03-15  Richard Guenther  <rguenther@suse.de>
16414
16415         PR middle-end/47650
16416         * tree-pretty-print.c (dump_function_declaration): Properly
16417         dump unprototyped and varargs function types.
16418
16419 2011-03-15  Richard Guenther  <rguenther@suse.de>
16420
16421         PR tree-optimization/13954
16422         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
16423         and friends.
16424
16425 2011-03-15  Richard Guenther  <rguenther@suse.de>
16426
16427         PR tree-optimization/48037
16428         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
16429         selects into BIT_FIELD_REFs.
16430         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
16431         vector select.
16432
16433 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
16434
16435         PR tree-optimization/48129
16436         * builtins.c (fold_builtin_snprintf): Convert to type of
16437         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
16438         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
16439
16440 2011-03-15  Richard Guenther  <rguenther@suse.de>
16441
16442         PR tree-optimization/41490
16443         * tree-ssa-dce.c (propagate_necessity): Handle returns without
16444         value but with VUSE.
16445         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
16446         return statements.
16447         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
16448         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
16449         * tree-tailcall.c (find_tail_calls): Ignore returns.
16450
16451 2011-03-15  Richard Guenther  <rguenther@suse.de>
16452
16453         PR middle-end/48031
16454         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
16455         or variable-indexed array accesses when in gimple form.
16456
16457 2011-03-15  Richard Guenther  <rguenther@suse.de>
16458
16459         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
16460
16461 2011-03-15  Alan Modra  <amodra@gmail.com>
16462
16463         PR target/48032
16464         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
16465         presume symbol_refs without a symbol_ref_decl are suitably
16466         aligned, nor other trees we may see here.  Handle anchor symbols.
16467         (legitimate_constant_pool_address_p): Comment.  Add mode param.
16468         Check cmodel=medium addresses.  Adjust all calls.
16469         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
16470         creating cmodel=medium optimized access to locals.
16471         * config/rs6000/constraints.md (R): Pass QImode to
16472         legitimate_constant_pool_address_p.
16473         * config/rs6000/predicates.md (input_operand): Pass mode to
16474         legitimate_constant_pool_address_p.
16475         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
16476         Update prototype.
16477
16478 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
16479
16480         PR target/48053
16481         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
16482         64-bit constants being loaded into registers other than GPRs such
16483         as loading 0 into a VSX register.
16484
16485 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16486
16487         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
16488
16489 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16490
16491         PR middle-end/47917
16492         * builtins.c (fold_builtin_snprintf): New function.
16493         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
16494         (fold_builtin_4): Likewise.
16495
16496         PR middle-end/38878
16497         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
16498         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
16499         and C - X == X also strip nops from +/-/p+ operand.
16500         When optimizing -X == C, fold C to arg0's type.
16501
16502         PR debug/47946
16503         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
16504         emit it as add_AT_int instead of add_AT_unsigned.
16505
16506 2011-03-14  Tom Tromey  <tromey@redhat.com>
16507
16508         * unwind-dw2.c: Include sys/sdt.h if it exists.
16509         (_Unwind_DebugHook): Use STAP_PROBE2.
16510         * config.in, configure: Rebuild.
16511         * configure.ac: Check for sys/sdt.h.
16512
16513 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
16514
16515         * config/i386/i386.md (ROUND_FLOOR): New constant.
16516         (ROUND_CEIL): Ditto.
16517         (ROUND_TRUNC): Ditto.
16518         (ROUND_MXCSR): Ditto.
16519         (ROUND_NO_EXC): Ditto.
16520         (rint<mode>2): Use new defines instead of numerical constants.
16521         (floor<mode>2): Ditto.
16522         (ceil<mode>2): Ditto.
16523         (btrunc<mode>2): Ditto.
16524         * config/i386/i386-builtin-types.def: Define ROUND function type
16525         aliases.
16526         * config/i386/i386.c (enum ix86_builtins): Add
16527         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
16528         (struct builtin_description): Add
16529         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
16530         (ix86_expand_sse_round): New static function.
16531         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
16532         function types.
16533         (ix86_builtin_vectorized_function): Handle
16534         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
16535
16536 2011-03-14  Tom Tromey  <tromey@redhat.com>
16537
16538         * c-parser.c (c_parser_asm_string_literal): Clear
16539         warn_overlength_strings.
16540
16541 2011-03-14  Tom Tromey  <tromey@redhat.com>
16542
16543         * c-parser.c (disable_extension_diagnostics): Save
16544         warn_overlength_strings.
16545         (restore_extension_diagnostics): Restore warn_overlength_strings.
16546
16547 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16548
16549         * BASE-VER: Change to 4.7.0.
16550
16551 2011-03-14  Richard Guenther  <rguenther@suse.de>
16552
16553         PR middle-end/48098
16554         * tree.c (build_vector_from_val): Adjust assert to requirements
16555         and reality.
16556
16557 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
16558
16559         PR bootstrap/48102
16560         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
16561
16562 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
16563
16564         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
16565         terms of target_flags_explicit. Adjust copyright year.
16566
16567         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
16568         * config/rs6000/t-freebsd: New file. Add override for
16569         LIB2FUNCS_EXTRA.
16570
16571 2011-03-13  Chris Demetriou  <cgd@google.com>
16572
16573         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
16574         (-fno-diagnostics-show-option): this, to reflect current default.
16575         (-Werror=): Update text about -fno-diagnostics-show-option.
16576
16577 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
16578
16579         PR target/48053
16580         * config/rs6000/predicates.md (easy_vector_constant_add_self,
16581         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
16582         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
16583         mode is not V2DImode or V2DFmode.
16584         (vspltis_constant): Do not handle V2DImode and V2DFmode.
16585         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
16586         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
16587         registers to 0.
16588         (movdi_internal64): Likewise.
16589
16590 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
16591
16592         PR tree-optimization/47127
16593         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
16594         parameter.
16595         (set_cloog_options): Same.
16596         (scop_to_clast): Same.
16597         (print_clast_stmt): Do not call cloog_state_malloc and
16598         cloog_state_free.
16599         (print_generated_program): Same.
16600         (gloog): Same.
16601         * graphite-clast-to-gimple.h (cloog_state): Declared.
16602         (scop_to_clast): Adjust declaration.
16603         * graphite.c (cloog_state): Defined here.
16604         (graphite_initialize): Call cloog_state_malloc.
16605         (graphite_finalize): Call cloog_state_free.
16606
16607 2011-03-11  Jason Merrill  <jason@redhat.com>
16608
16609         * attribs.c (lookup_attribute_spec): Take const_tree.
16610         * tree.h: Adjust.
16611
16612 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
16613
16614         * config/sparc/sparc.c (sparc_option_override): Use
16615         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
16616
16617 2011-03-11  Richard Guenther  <rguenther@suse.de>
16618
16619         PR tree-optimization/48067
16620         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
16621         multiplication result will be only used once on the target
16622         stmt.
16623
16624 2011-03-11  Richard Guenther  <rguenther@suse.de>
16625
16626         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
16627
16628 2011-03-11  Richard Guenther  <rguenther@suse.de>
16629
16630         PR lto/48073
16631         * tree.c (find_decls_types_r): Do not walk types only reachable
16632         from IDENTIFIER_NODEs.
16633
16634 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
16635
16636         PR middle-end/48044
16637         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
16638         all vnode->force_output nodes as needed.
16639
16640 2011-03-11  Jason Merrill  <jason@redhat.com>
16641
16642         PR c++/48069
16643         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
16644         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
16645
16646 2011-03-11  Martin Jambor  <mjambor@suse.cz>
16647
16648         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
16649         cgraph_node.
16650
16651 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
16652
16653         PR tree-optimization/48063
16654         * ipa-inline.c (cgraph_decide_inlining): Don't try to
16655         inline functions called once if !tree_can_inline_p (node->callers).
16656
16657 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
16658
16659         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
16660         extra_objs.
16661         * config/score/score3.c: Delete.
16662         * config/score/score3.h: Delete.
16663         * config/score/mul-div.S: Delete.
16664         * config/score/sfp-machine.h: Add new file.
16665         * config/score/constraints.md: Add new file.
16666         * config/score/t-score-softfp: Add new file.
16667         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
16668         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
16669         (score7_extra_constraint): Delete.
16670         (score7_option_override): Remove unused code.
16671         * config/score/score.c: Remove score3 and score5 define and code.
16672         * config/score/score.h: Remove score3 and score5 define and code.
16673         * config/score/score.md: Remove score3 template and unusual insn.
16674         * config/score/score.opt: Remove score3 and score5 options.
16675
16676 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16677
16678         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
16679         when _HPUX_SOURCE is defined.
16680         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
16681
16682 2011-03-10  Jason Merrill  <jason@redhat.com>
16683
16684         PR c++/48029
16685         * stor-layout.c (layout_type): Don't set structural equality
16686         on arrays of incomplete type.
16687         * tree.c (type_hash_eq): Handle comparing them properly.
16688
16689 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
16690
16691         PR debug/48043
16692         * config/s390/s390.c (s390_delegitimize_address): Make sure the
16693         result mode matches original rtl mode.
16694
16695 2011-03-10  Nick Clifton  <nickc@redhat.com>
16696
16697         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
16698         (andsi3, andsi3_flags): Fix timings for three operand alternative.
16699
16700 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
16701
16702         PR rtl-optimization/47866
16703         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
16704         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
16705         if target wasn't scalar.
16706         * function.c (assign_stack_temp_for_type): Assert that neither
16707         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
16708         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
16709         macro.
16710         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
16711
16712 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16713
16714         * config/s390/s390-protos.h (s390_label_align): New prototype.
16715         * config/s390/s390.c (s390_label_align): New function.
16716         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
16717
16718 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
16719
16720         PR target/47755
16721         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
16722         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
16723         (output_vec_const_move): Ditto.
16724
16725 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
16726
16727         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
16728         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
16729         * config/mips/mips.c (mips_preferred_reload_class): Make static.
16730         Change 'rclass' argument and result type to reg_class_t.
16731         (TARGET_PREFERRED_RELOAD_CLASS): Define.
16732
16733 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
16734
16735         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
16736         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
16737         (TARGET_MEMORY_MOVE_COST): Define.
16738         (avr_register_move_cost, avr_memory_move_cost): New Functions.
16739
16740 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
16741
16742         PR debug/47881
16743         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
16744         removed anything.
16745
16746         PR tree-optimization/48022
16747         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
16748         for EQ/NE_EXPR.
16749
16750 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
16751
16752         PR debug/47991
16753         * var-tracking.c (find_use_val): Return NULL for
16754         cui->sets && cui->store_p BLKmode MEMs.
16755
16756 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
16757
16758         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
16759         Remove.
16760         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
16761         xstormy16_print_operand_address): Remove.
16762         * config/stormy16/stormy16.c (xstormy16_print_operand,
16763         xstormy16_print_operand_address): Make static.
16764         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16765
16766 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
16767
16768         PR target/47862
16769         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
16770         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
16771         before definition.
16772
16773 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
16774
16775         PR bootstrap/48000
16776         * cfgloopmanip.c (fix_bb_placements): Return immediately
16777         if FROM is BASE_LOOP's header.
16778
16779 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
16780
16781         * gimplify.c (gimplify_function_tree): Fix building calls
16782         to __builtin_return_address.
16783
16784 2011-03-07  Alan Modra  <amodra@gmail.com>
16785
16786         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
16787         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
16788         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
16789         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
16790         return_mode args.
16791         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
16792         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
16793         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
16794         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
16795         * config/rs6000/rs6000.c
16796         (rs6000_elf_end_indicate_exec_stack): Rename to..
16797         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
16798         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
16799         (rs6000_file_start): ..here.
16800         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
16801         file scope variables.
16802         (call_ABI_of_interest): New function.
16803         (init_cumulative_args): Set above vars when function return value
16804         is a float, vector, or small struct.
16805         (rs6000_function_arg_advance_1): Likewise for function args.
16806         (rs6000_va_start): Set rs6000_passes_float if variable arg function
16807         references float args.
16808
16809 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
16810
16811         * doc/cfg.texi: Remove "See" before @ref.
16812         * doc/invoke.texi: Likewise.
16813
16814 2011-03-05  Jason Merrill  <jason@redhat.com>
16815
16816         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
16817
16818 2011-03-05  Anthony Green  <green@moxielogic.com>
16819
16820         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
16821
16822 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
16823
16824         PR rtl-optimization/47899
16825         * cfgloopmanip.c (fix_bb_placements): Fix first argument
16826         to flow_loop_nested_p when moving the loop upward.
16827
16828 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
16829
16830         PR target/47719
16831         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
16832
16833 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
16834
16835         PR tree-optimization/47967
16836         * ipa-cp.c (build_const_val): Return NULL instead of creating
16837         VIEW_CONVERT_EXPR for mismatching sizes.
16838         (ipcp_create_replace_map): Return NULL if build_const_val failed.
16839         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
16840         give up on versioning.
16841
16842 2011-03-05  Alan Modra  <amodra@gmail.com>
16843
16844         PR target/47986
16845         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
16846         full cmodel medium/large lo_sum + high addresses.
16847
16848 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16849
16850         * config/s390/s390.c (s390_decompose_address): Reject non-literal
16851         pool references in UNSPEC_LTREL_OFFSET.
16852
16853 2011-03-04  Jan Hubicka  <jh@suse.cz>
16854
16855         PR lto/47497
16856         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
16857         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
16858         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
16859         Add node pointers.
16860         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
16861         cgraph_add_thunk): Add node pointers.
16862         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
16863         associated to right node.
16864         (input_node): Update use of cgraph_same_body_alias
16865         and cgraph_add_thunk.
16866
16867 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
16868
16869         * config/i386/i386.opt (mprefer-avx128): New flag.
16870         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
16871         modes when the flag -mprefer-avx128 is on.
16872
16873 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
16874
16875         * dwarf2out.c (compare_loc_operands): Fix address handling.
16876
16877 2011-03-04  Alan Modra  <amodra@gmail.com>
16878
16879         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
16880
16881 2011-03-04  Richard Guenther  <rguenther@suse.de>
16882
16883         PR middle-end/47968
16884         * expmed.c (extract_bit_field_1): Prefer vector modes that
16885         vec_extract patterns can handle.
16886
16887 2011-03-04  Richard Guenther  <rguenther@suse.de>
16888
16889         PR middle-end/47975
16890         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
16891
16892 2011-03-04  Richard Henderson  <rth@redhat.com>
16893
16894         * explow.c (emit_stack_save): Remove 'after' parameter.
16895         (emit_stack_restore): Likewise.
16896         * expr.h: Update to match.
16897         * builtins.c, calls.c, stmt.c: Likewise.
16898         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
16899         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
16900         * function.c (expand_function_end): Insert the emit_stack_save
16901         sequence before parm_birth_insn instead of after.
16902
16903 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
16904
16905         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
16906         (ssse3_pmaddubsw128): Ditto.
16907         (ssse3_pmaddubsw): Ditto.
16908
16909 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
16910
16911         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
16912
16913 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
16914
16915         PR c/47963
16916         * gimplify.c (omp_add_variable): Only call omp_notice_variable
16917         on TYPE_SIZE_UNIT if it is a DECL.
16918
16919         PR debug/47283
16920         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
16921         first operand is not is_gimple_mem_ref_addr, try to fold it.
16922         If the operand still isn't is_gimple_mem_ref_addr, clear
16923         MEM_EXPR on op0.
16924
16925 2011-03-03  Richard Guenther  <rguenther@suse.de>
16926
16927         PR middle-end/47283
16928         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
16929         match comment.
16930         (refs_may_alias_p_1): For release branches return true if
16931         we are confused by our input.
16932
16933 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16934
16935         * config/s390/s390.c (s390_function_value): Rename to ...
16936         (s390_function_and_libcall_value): ... this.
16937         (s390_function_value): New function.
16938         (s390_libcall_value): New function.
16939         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
16940         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
16941         target macro definitions.
16942         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
16943
16944 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
16945
16946         * config/i386/freebsd64.h (CC1_SPEC): Define.
16947         * config/i386/linux64.h (CC1_SPEC): Define.
16948         * config/i386/x86-64.h (CC1_SPEC): Don't define.
16949
16950 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
16951
16952         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
16953         Remove.
16954         * config/stormy16/stormy16.c: Include reload.h.
16955         (xstormy16_memory_move_cost): New function.
16956         (TARGET_MEMORY_MOVE_COST): Define.
16957
16958 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
16959
16960         PR rtl-optimization/47925
16961         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
16962         with side effects.  Remove the more-specific check for volatile asms.
16963
16964 2011-03-02  Alan Modra  <amodra@gmail.com>
16965
16966         PR target/47935
16967         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
16968         toc relative addresses for valid offsets.
16969
16970 2011-03-01  Richard Guenther  <rguenther@suse.de>
16971
16972         PR tree-optimization/47890
16973         * tree-vect-loop.c (get_initial_def_for_induction): Set
16974         related stmt properly.
16975
16976 2011-03-01  Richard Guenther  <rguenther@suse.de>
16977
16978         PR lto/47924
16979         * lto-streamer.c (lto_record_common_node): Also register
16980         the canonical type.
16981
16982 2011-03-01  Richard Guenther  <rguenther@suse.de>
16983
16984         PR lto/46911
16985         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
16986         Do not stream DECL_ABSTRACT_ORIGIN.
16987         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
16988         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
16989         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
16990         Do not stream DECL_ABSTRACT_ORIGIN.
16991         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
16992         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
16993
16994 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
16995
16996         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
16997         FUNCTION_VALUE_REGNO_P): Remove.
16998         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
16999         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
17000         Add 'outgoing' argument.
17001         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
17002         function.
17003         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17004         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17005
17006 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
17007
17008         PR debug/28047
17009         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
17010         (lookup_filename): Likewise.
17011         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
17012
17013 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
17014             Jakub Jelinek  <jakub@redhat.com>
17015
17016         PR middle-end/47893
17017         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
17018         (assign_stack_local_1): Change last argument type to int.
17019         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
17020         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
17021         don't record padding space into frame_space_list nor use those areas.
17022         (assign_stack_local): Adjust caller.
17023         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
17024         of assign_stack_local, pass 0 as last argument.
17025         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
17026         callers.
17027
17028 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
17029
17030         PR debug/47283
17031         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
17032         Use target address_mode and pointer_mode hooks instead of hardcoded
17033         Pmode and ptr_mode.  Handle some simple cases of extending if
17034         POINTERS_EXTEND_UNSIGNED < 0.
17035         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
17036         Call convert_debug_memory_address.
17037         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
17038         convert_debug_memory_address.
17039
17040         PR middle-end/46790
17041         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
17042         * configure: Regenerated.
17043         * config.in: Regenerated.
17044         * varasm.c (default_function_section): Return NULL
17045         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
17046
17047 2011-02-28  Martin Jambor  <mjambor@suse.cz>
17048
17049         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
17050         the description to match the printed values.
17051
17052 2011-02-28  Richard Guenther  <rguenther@suse.de>
17053
17054         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
17055         of the copied scope tree.
17056
17057 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17058
17059         * doc/extend.texi (Function Attributes): Avoid deeply (and
17060         wrongly) nested tables.
17061
17062 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
17063
17064         PR middle-end/47903
17065         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
17066         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
17067         r isn't op0 nor op1.
17068
17069 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17070
17071         * config/avr/avr.md: Remove magic comment for emacs.
17072
17073 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
17074
17075         PR target/45261
17076         * config/avr/avr.c (avr_option_override): Use error on bad options.
17077         (avr_help): New function.
17078         (TARGET_HELP): Define.
17079
17080 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
17081
17082         PR target/42240
17083         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
17084         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
17085
17086 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
17087
17088         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
17089         (ARM Options): Ditto.
17090         (i386 and x86-64 Options): Ditto.
17091         (RX Options): Ditto.
17092         (SPARC Options): Ditto.
17093
17094 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
17095
17096         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
17097         FreeBSD 6 and later.  Generally use cpu generic.
17098
17099 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
17100
17101         * doc/cpp.texi: Update copyright years.
17102
17103 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
17104
17105         PR target/46898
17106         * config/lm32/lm32.md (ashrsi3): Added needed variable.
17107
17108 2011-02-25  Jon Beniston  <jon@beniston.com>
17109
17110         PR target/46898
17111         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
17112         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
17113         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
17114         (lm32_block_move_inline): Add type cast to remove warning.
17115         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
17116         (gen_int_relational): Move declarations to start of function.
17117
17118 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
17119
17120         PR tree-optimization/45470
17121         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
17122         can throw internally only.
17123         * tree-vect-stmts.c (vectorizable_call): Likewise.
17124
17125 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
17126
17127         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
17128         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
17129         * config/stormy16/stormy16-protos.h
17130         (xstormy16_preferred_reload_class): Remove.
17131         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
17132         static. Change 'rclass' argument and return type to reg_class_t.
17133         (TARGET_PREFERRED_RELOAD_CLASS,
17134         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
17135
17136 2011-02-24  Richard Guenther  <rguenther@suse.de>
17137
17138         * lto-streamer-in.c (input_bb): Do not find referenced vars
17139         in debug statements.
17140
17141 2011-02-23  Jason Merrill  <jason@redhat.com>
17142
17143         * common.opt (fabi-version): Document v5 and v6.
17144
17145 2011-02-23  Richard Guenther  <rguenther@suse.de>
17146
17147         PR tree-optimization/47849
17148         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
17149
17150 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17151
17152         * opts-common.c (decode_cmdline_option): Print empty string
17153         argument as "" in decoded->orig_option_with_args_text.
17154         * gcc.c (execute): Print empty string argument as ""
17155         in the verbose output.
17156         (do_spec_1): Keep empty string argument.
17157
17158 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
17159
17160         * config.gcc: Declare score-* and crx-* obsolete.
17161
17162 2011-02-23  Jie Zhang  <jie@codesourcery.com>
17163
17164         PR rtl-optimization/47763
17165         * web.c (web_main): Ignore naked clobber when replacing register.
17166
17167 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
17168
17169         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
17170         Remove.
17171
17172 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
17173
17174         PR doc/47848
17175         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
17176
17177 2011-02-22  Mike Stump  <mikestump@comcast.net>
17178
17179         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
17180         assembler.
17181         * configure: Regenerate.
17182
17183 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
17184
17185         PR rtl-optimization/46002
17186         * ira-color.c (update_copy_costs): Change class intersection
17187         test to reg_class_contents[] test of 'hard_regno'.
17188
17189 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
17190
17191         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
17192         than Driver option.
17193         * config/hpux11.opt (mt): Likewise.
17194         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
17195         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
17196         * config/vax/elf.opt (mno-asm-pic): Likewise.
17197         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
17198
17199 2011-02-21  Mike Stump  <mikestump@comcast.net>
17200
17201         PR target/47822
17202         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
17203         tree so we can get save the type.
17204         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
17205         for CFString instead of trying to use past the end of the builtins.
17206         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
17207         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
17208         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
17209         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
17210         Rename to darwin_builtin_cfstring.
17211         (darwin_init_cfstring_builtins): Return the built type.
17212
17213 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
17214
17215         PR target/47840
17216         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
17217         (_mm256_insert_epi64): Use _mm_insert_epi64.
17218
17219 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
17220
17221         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17222         * config/stormy16/stormy16-protos.h
17223         (xstormy16_mode_dependent_address_p): Remove.
17224         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
17225         Make static. Change return type to bool. Change argument type to
17226         const_rtx. Remove dead code.
17227         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17228
17229 2011-02-21  Richard Guenther  <rguenther@suse.de>
17230
17231         PR lto/47820
17232         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17233         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17234         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
17235         TUs context.
17236         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
17237         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
17238
17239 2011-02-20  Richard Guenther  <rguenther@suse.de>
17240
17241         PR lto/47822
17242         * tree.c (free_lang_data_in_decl): Clean builtins from
17243         the TU decl BLOCK_VARS.
17244
17245 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
17246
17247         PR debug/47620
17248         PR debug/47630
17249         * haifa-sched.c (fix_tick_ready): Skip tick computation
17250         for debug insns.
17251
17252 2011-02-19  Richard Guenther  <rguenther@suse.de>
17253
17254         PR lto/47647
17255         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
17256         Remove lazy BLOCK_VARS streaming.
17257         (lto_input_ts_block_tree_pointers): Likewise.
17258         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
17259
17260 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17261
17262         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
17263
17264 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
17265
17266         * config/i386/biarch32.h, config/i386/mach.h,
17267         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
17268
17269 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
17270
17271         PR target/47800
17272         * config/i386/i386.md (peephole2 for shift and plus): Use
17273         operands[1] original mode in the first insn.
17274
17275 2011-02-18  Mike Stump  <mikestump@comcast.net>
17276
17277         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
17278
17279 2011-02-18  Jan Hubicka  <jh@suse.cz>
17280
17281         PR middle-end/47788
17282         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
17283         to zero when the function is not inlinable at all.
17284
17285 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17286
17287         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
17288         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
17289         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
17290         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
17291         * config/pa/t-pa64: Likewise.
17292         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
17293
17294 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17295
17296         PR driver/47787
17297         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
17298
17299 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17300
17301         PR target/47792
17302         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
17303
17304 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
17305
17306         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
17307         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
17308         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
17309         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
17310         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
17311         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
17312         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
17313         m32r_load_postinc_p, m32r_store_preinc_predec_p,
17314         m32r_legitimate_address_p): New functions.
17315         * config/m32r/constraints.md (constraint "S"): Don't use
17316         STORE_PREINC_PREDEC_P.
17317         (constraint "U"): Don't use LOAD_POSTINC_P.
17318
17319 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
17320
17321         PR rtl-optimization/46178
17322         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
17323         compute ira_hard_regno_cover_class[].
17324
17325 2011-02-18  Richard Guenther  <rguenther@suse.de>
17326
17327         PR lto/47798
17328         * lto-streamer.h (lto_global_var_decls): Declare.
17329         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
17330         statics for global var processing.
17331
17332 2011-02-18  Richard Guenther  <rguenther@suse.de>
17333
17334         PR tree-optimization/47737
17335         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
17336         edge dominance check.
17337
17338 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
17339
17340         PR debug/47780
17341         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
17342         avoid invalid rtx sharing.
17343
17344 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
17345
17346         * doc/cpp.texi (Obsolete Features): Add background on the
17347         origin of assertions.
17348
17349 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
17350
17351         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
17352         objc_abi == 2.
17353         * config/darwin.c (output_objc_section_asm_op): Added support for
17354         ABI v1 and v2.
17355         (is_objc_metadata): New.
17356         (darwin_objc2_section): New.
17357         (darwin_objc1_section): New.
17358         (machopic_select_section): Added support for ABI v1 and v2.
17359         (darwin_emit_objc_zeroed): New.
17360         (darwin_output_aligned_bss): Detect objc metadata and treat it
17361         appropriately.
17362         (darwin_asm_output_aligned_decl_common): Same.
17363         (darwin_asm_output_aligned_decl_local): Same.
17364         * config/darwin-sections.def: Updated for ABI v1 and v2.
17365         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
17366         compiling Objective-C code for the NeXT runtime, default to using
17367         ABI version 0 for 32-bit, and version 2 for 64-bit.
17368
17369 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17370
17371         * common.opt (optimize_fast): New Variable.
17372         * opts.c (default_options_optimization): Use opts->x_optimize_fast
17373         instead of local variable ofast.
17374
17375 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
17376
17377         * doc/invoke.texi (fobjc-abi-version): Documented.
17378         (fobjc-nilcheck): Documented.
17379         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
17380         version.
17381
17382 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17383
17384         PR driver/47390
17385         * common.opt (export-dynamic): New Driver option.
17386         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
17387
17388 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17389
17390         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
17391
17392 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
17393             Jan Hubicka  <jh@suse.cz>
17394
17395         PR debug/47106
17396         PR debug/47402
17397         * cfgexpand.c (account_used_vars_for_block): Remove.
17398         (estimated_stack_frame_size): Use referenced vars.
17399         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
17400         that were referenced in the original function.  Test src_fn
17401         rather than cfun.  Drop redundant get_var_ann.
17402         (setup_one_parameter): Drop redundant get_var_ann.
17403         (declare_return_variable): Likewise.
17404         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
17405         (copy_arguments_for_versioning): Drop redundant get_var_ann.
17406         * ipa-inline.c (compute_inline_parameters): Do not compute
17407         disregard_inline_limits here.
17408         (compute_inlinable_for_current, pass_inlinable): New.
17409         (pass_inline_parameters): Require PROP_referenced_vars.
17410         * cgraphunit.c (cgraph_process_new_functions): Don't run
17411         compute_inline_parameters explicitly unless function is in SSA form.
17412         (cgraph_analyze_function): Set .disregard_inline_limits.
17413         * tree-sra.c (convert_callers): Compute inliner parameters
17414         only for functions already in SSA form.
17415
17416 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17417
17418         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
17419         -mlittle-endian-data.
17420
17421 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
17422
17423         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
17424         -mno-fpu, not -fpu and -no-fpu.
17425         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
17426         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
17427
17428 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
17429
17430         PR target/43653
17431         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
17432         input reload with PLUS RTX.
17433
17434 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17435
17436         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
17437         of InverseVar(MDMX).
17438
17439 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17440
17441         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
17442         --m4-340.
17443
17444 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17445
17446         * config/mn10300/mn10300.opt (mno-crt0): New.
17447
17448 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17449
17450         * config/m68k/uclinux.opt (static-libc): New Driver option.
17451
17452 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17453
17454         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
17455
17456 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
17457
17458         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
17459         %{muser-extend-enabled}.
17460
17461 2011-02-16  Richard Guenther  <rguenther@suse.de>
17462
17463         PR tree-optimization/47738
17464         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
17465         the TODO from tree_predictive_commoning.
17466
17467 2011-02-15  Jeff Law  <law@redhat.com>
17468
17469         Revert
17470         2011-01-25  Jeff Law  <law@redhat.com>
17471
17472         PR rtl-optimization/37273
17473         * ira-costs.c (scan_one_insn): Detect constants living in memory and
17474         handle them like argument loads from stack slots.  Do not double
17475         count memory for memory constants and argument loads from stack slots.
17476
17477 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17478
17479         PR middle-end/47725
17480         * combine.c (cant_combine_insn_p): Revert the last change.
17481
17482 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
17483
17484         PR target/47755
17485         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
17486         mode for vector constants.  Remove code that checks for TImode.
17487
17488 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17489
17490         PR debug/47106
17491         PR debug/47402
17492         * cgraph.h (compute_inline_parameters): Return void.
17493         * ipa-inline.c (compute_inline_parameters): Adjust.
17494
17495 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17496
17497         PR debug/47106
17498         PR debug/47402
17499         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
17500         rather than decl.
17501         * cfgexpand.c (estimated_stack_frame_size): Likewise.
17502         * ipa-inline.c (compute_inline_parameters): Adjust.
17503
17504 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17505
17506         PR debug/47106
17507         PR debug/47402
17508         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
17509         Adjust all users.  Pass FN to...
17510         * tree-flow-inline.h (first_referenced_var): ... this.  Add
17511         fn argument.
17512         * ipa-struct-reorg.c: Adjust.
17513         * tree-dfa.c: Adjust.
17514         * tree-into-ssa.c: Adjust.
17515         * tree-sra.c: Adjust.
17516         * tree-ssa-alias.c: Adjust.
17517         * tree-ssa-live.c: Adjust.
17518         * tree-ssa.c: Adjust.
17519         * tree-ssanames.c: Adjust.
17520         * tree-tailcall.c: Adjust.
17521
17522 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
17523
17524         PR debug/47106
17525         PR debug/47402
17526         * tree-flow.h (referenced_var_lookup): Add fn parameter.
17527         Adjust all callers.
17528         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
17529         * tree-flow-inline.h: Adjust.
17530         * gimple-pretty-print.c: Adjust.
17531         * tree-into-ssa.c: Adjust.
17532         * tree-ssa.c: Adjust.
17533         * cfgexpand.c: Adjust.
17534
17535 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17536
17537         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
17538         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17539         (EXTRA_CONSTRAINT): Delete.
17540         * config/iq2000/constraints.md: New file.
17541         * config/iq2000/iq2000.md: Include it.
17542         (define_insn ""): Delete.
17543         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
17544         unsupported constraint letters from patterns.
17545         (call_value, call_value_internal1): Likewise.
17546         (call_value_multiple_internal1): Likewise.
17547
17548 2011-02-15  Nick Clifton  <nickc@redhat.com>
17549
17550         * config/mn10300/mn10300.c: Include tm-constrs.h.
17551         (struct liw_data): New data structure describing an LIW candidate
17552         instruction.
17553         (extract_bundle): Use struct liw_data.  Allow small integer
17554         operands for some instructions.
17555         (check_liw_constraints): Use struct liw_data.  Remove swapped
17556         parameter.  Add comments describing the checks.  Fix bug when
17557         assigning the source of liw1 to the source of liw2.
17558         (liw_candidate): Delete.  Code moved into extract_bundle.
17559         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
17560         before swapping.
17561         * config/mn10300/predicates.md (liw_operand): New predicate.
17562         Allows registers and small integer constants.
17563         * config/mn10300/constraints.md (O): New constraint.  Accetps
17564         integers in the range -8 to +7 inclusive.
17565         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
17566         for moving a small integer into a register.  Give this alternative
17567         LIW attributes.
17568         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
17569         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
17570         using the J,K,L and M constraints,
17571         (liw): Remove SI mode on second operands to allow for HI and QI
17572         mode values.
17573         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
17574         instruction.
17575
17576 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
17577
17578         PR middle-end/47725
17579         * combine.c (cant_combine_insn_p): Check zero/sign extended
17580         hard registers.
17581
17582 2011-02-15  Richard Guenther  <rguenther@suse.de>
17583
17584         PR tree-optimization/47743
17585         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
17586         for a non-type-compatible VN lookup bail out.
17587
17588 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17589
17590         * config/fr30/constraints.md: New file.
17591         * config/fr30/fr30.md: Include it.
17592         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
17593         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17594         (EXTRA_CONSTRAINT): Delete.
17595
17596 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
17597
17598         * config/frv/constraints.md: New file.
17599         * config/frv/predicates.md: Include it.
17600         * config/frv/frv.c (reg_class_from_letter): Delete.
17601         (frv_option_override): Don't initialize it.
17602         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
17603         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
17604         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
17605         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
17606         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
17607         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17608         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
17609         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
17610         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
17611         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
17612         (REG_CLASS_FROM_CONSTRAINT): Delete.
17613
17614 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
17615
17616         PR middle-end/47581
17617         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
17618         if frame size is 0 in a leaf function.
17619
17620 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17621
17622         PR pch/14940
17623         * config/alpha/host-osf.c: New file.
17624         * config/alpha/x-osf: New file.
17625         * config.host (alpha*-dec-osf*): Use it.
17626
17627 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
17628
17629         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
17630         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
17631         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
17632         (rx_mode_dependent_address_p): ...this. Make static. Change argument
17633         type to const_rtx.
17634         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17635
17636 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17637
17638         * config/stormy16/constraints.md: New file.
17639         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
17640         Use satisfies_constraint_Q and satisfies_constraint_R.
17641         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
17642         Delete.
17643         (xstormy16_legitiamte_address_p): Declare.
17644         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
17645         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17646         (EXTRA_CONSTRAINT): Delete.
17647         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
17648         Un-staticize.
17649         (xstormy16_extra_constraint_p): Delete.
17650
17651 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
17652
17653         PR tree-optimization/46494
17654         * loop-unroll.c (split_edge_and_insert): Adjust comment.
17655         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
17656         (pass_rtl_loop_done): Add TODO_verify_flow.
17657         * fwprop.c (pass_rtl_fwprop): Likewise.
17658         * modulo-sched.c (pass_sms): Likewise.
17659         * tree-ssa-dom.c (pass_dominator): Likewise.
17660         * tree-ssa-loop-ch.c (pass_ch): Likewise.
17661         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
17662         (pass_tree_loop_done): Likewise.
17663         * tree-ssa-pre.c (execute_pre): Likewise.
17664         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
17665         * tree-ssa-sink.c (pass_sink_code): Likewise.
17666         * tree-vrp.c (pass_vrp): Likewise.
17667
17668 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17669
17670         * config/v850/constraints.md: New file.
17671         * config/v850/v850.md: Include it.
17672         * config/v850/predicates.md (reg_or_0_operand): Use
17673         satisfies_constraint_G.
17674         (special_symbolref_operand): Use satisfies_constraint_K.
17675         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
17676         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
17677         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
17678         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
17679         (EXTRA_CONSTRAINT): Delete.
17680         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
17681         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
17682         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
17683
17684 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
17685
17686         PR target/47696
17687         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
17688         description.
17689
17690 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
17691
17692         * config/mcore/constraints.md: New file.
17693         * config/mcore/mcore.md: Include it.
17694         * config/mcore/mcore.c (reg_class_from_letter): Delete.
17695         * config/mcore/mcore.h (reg_class_from_letter): Delete.
17696         (REG_CLASS_FROM_LETTER): Delete.
17697         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
17698         insn_const_int_ok_for_constraint.
17699         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
17700         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
17701         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17702         (EXTRA_CONSTRAINT): Delete.
17703
17704 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17705
17706         PR ada/41929
17707         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
17708         (IS_SIGHANDLER): Define.
17709         (sparc64_is_sighandler): New function, split off from
17710         sparc64_fallback_frame_state.
17711         (sparc_is_sighandler): New function, split off from
17712         sparc_fallback_frame_state.
17713         (sparc64_fallback_frame_state): Merge with ...
17714         (sparc_fallback_frame_state): ... this into ...
17715         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
17716         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
17717         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
17718         stack instead of hardcoded offsets.
17719
17720 2011-02-14  Andriy Gapon  <avg@freebsd.org>
17721
17722         PR target/45808
17723         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
17724
17725 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17726
17727         * configure: Regenerate.
17728
17729 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
17730
17731         PR driver/45731
17732         * gcc.c (asm_options): Correct spec matching --target-help.
17733
17734 2011-02-12  Martin Jambor  <mjambor@suse.cz>
17735
17736         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
17737         to gimple call error.
17738
17739 2011-02-12  Mike Stump  <mikestump@comcast.net>
17740
17741         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
17742         comments in backslash regions.
17743
17744 2011-02-12  Mike Stump  <mikestump@comcast.net>
17745             Jakub Jelinek  <jakub@redhat.com>
17746             Iain Sandoe  <iains@gcc.gnu.org>
17747
17748         PR target/47324
17749         * dwarf2out.c (output_cfa_loc): When required, apply the
17750         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
17751         (output_loc_sequence): Likewise.
17752         (output_loc_operands_raw): Likewise.
17753         (output_loc_sequence_raw): Likewise.
17754         (output_cfa_loc): Likewise.
17755         (output_loc_list): Suppress register number adjustment when
17756         calling output_loc_sequence()
17757         (output_die): Likewise.
17758
17759 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
17760
17761         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
17762         Remove macros.
17763         * config/xtensa/xtensa.c (xtensa_register_move_cost,
17764         xtensa_memory_move_cost): New functions.
17765         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
17766
17767 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
17768
17769         PR lto/47225
17770         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
17771         in the current directory.
17772         * configure: Rebuilt.
17773
17774 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
17775
17776         * config/darwin.c (darwin_override_options): Add a hunk missed
17777         from the commit of r168571.  Trim comment line lengths and
17778         correct indents of the preceding block.
17779
17780 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
17781
17782         * gcc.c (driver_handle_option): Concatenate the argument to -F with
17783         the switch.
17784
17785 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
17786
17787         * common.opt (nostartfiles): New Driver option.
17788
17789 2011-02-11  Xinliang David Li  <davidxl@google.com>
17790
17791         PR tree-optimization/47707
17792         * tree-chrec.c (convert_affine_scev): Keep type precision.
17793
17794 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
17795
17796         PR tree-optimization/47420
17797         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
17798
17799 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
17800
17801         PR rtl-optimization/47614
17802         * rtl.h (check_for_inc_dec): Declare.
17803         * dse.c (check_for_inc_dec): Externalize...
17804         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
17805         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
17806
17807 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
17808
17809         PR driver/47678
17810         * gcc.c (main): Do not compile inputs if there were errors in
17811         option handling.
17812         * opts-common.c (read_cmdline_option): Check for wrong language
17813         after other error checks.
17814
17815 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
17816
17817         * cgraph.c: Fix comment typos.
17818         * cgraph.h: Likewise.
17819         * cgraphunit.c: Likewise.
17820         * ipa-cp.c: Likewise.
17821         * ipa-inline.c: Likewise.
17822         * ipa-prop.c: Likewise.
17823         * ipa-pure-const.c: Likewise.
17824         * ipa-ref.c: Likewise.
17825         * ipa-reference.c: Likewise.
17826
17827 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
17828
17829         PR debug/47684
17830         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
17831
17832 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17833
17834         PR testsuite/47400
17835         * doc/sourcebuild.texi (Require Support): Document
17836         dg-require-ascii-locale.
17837
17838 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
17839
17840         * doc/lto.texi (Write summary): Fix missing parentheses.
17841
17842 2011-02-10  DJ Delorie  <dj@redhat.com>
17843
17844         * config/m32c/m32c.c (m32c_option_override): Disable
17845         -fcombine-stack-adjustments until flag value tracking and compare
17846         optimization can be rewritten.
17847
17848 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
17849
17850         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
17851         PROCESSOR_POWER7.
17852         (PROCESSOR_DEFAULT64): Likewise.
17853
17854 2011-02-10  Richard Henderson  <rth@redhat.com>
17855
17856         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
17857         change from 2011-02-03.
17858         * config/rx/rx.c (flags_from_code): Likewise.
17859         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
17860         is valid, n/pz otherwise.
17861         (rx_select_cc_mode): Return CCmode if Y is not zero.
17862
17863 2011-02-10  Richard Guenther  <rguenther@suse.de>
17864
17865         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
17866
17867 2011-02-10  Richard Guenther  <rguenther@suse.de>
17868
17869         PR tree-optimization/47677
17870         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
17871
17872 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
17873
17874         PR target/47665
17875         * combine.c (make_compound_operation): Only change shifts into
17876         multiplication for SCALAR_INT_MODE_P.
17877
17878 2011-02-10  Jie Zhang  <jie@codesourcery.com>
17879
17880         PR testsuite/47622
17881         Revert
17882         2011-02-05  Jie Zhang  <jie@codesourcery.com>
17883         PR debug/42631
17884         * web.c (entry_register): Don't clobber the number of the
17885         first uninitialized reference in used[].
17886
17887 2011-02-09  Richard Guenther  <rguenther@suse.de>
17888
17889         PR tree-optimization/47664
17890         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
17891         all edges again.
17892
17893 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
17894
17895         PR target/46481
17896         PR target/47032
17897         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
17898         PROCESSOR_POWER7.
17899         (PROCESSOR_DEFAULT64): Same.
17900         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
17901
17902 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17903
17904         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
17905
17906 2011-02-09  Martin Jambor  <mjambor@suse.cz>
17907
17908         PR middle-end/45505
17909         * tree-sra.c (struct access): New flags grp_scalar_read and
17910         grp_scalar_write.  Changed description of assignment read and write
17911         flags.
17912         (dump_access): Dump new flags, reorder all of them.
17913         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
17914         to detect multiple scalar reads.
17915         (analyze_access_subtree): Use the new scalar read write flags instead
17916         of the old flags.  Adjusted comments.
17917
17918 2011-02-08  DJ Delorie  <dj@redhat.com>
17919
17920         PR target/47548
17921         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
17922         patterns.
17923
17924 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17925
17926         * config/m68k/uclinux.opt: New.
17927         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
17928
17929 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17930
17931         * config/cris/elf.opt (sim): New Driver option.
17932
17933 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17934
17935         * config/xtensa/elf.opt: New.
17936         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
17937
17938 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17939
17940         * config/vax/elf.opt: New.
17941         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
17942
17943 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17944
17945         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
17946
17947 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17948
17949         * config/gnu-user.opt: New.
17950         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
17951         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
17952         *-*-uclinux*): Use gnu-user.opt.
17953
17954 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
17955
17956         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
17957         * config/i386/gnu.h (CPP_SPEC): Likewise.
17958
17959 2011-02-08  Ian Lance Taylor  <iant@google.com>
17960
17961         * common.opt (fcx-limited-range): Add SetByCombined flag.
17962         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
17963         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
17964         (fassociative-math, freciprocal-math): Likewise.
17965         (funsafe-math-optimizations): Likewise.
17966         * opth-gen.awk: Handle SetByCombined.
17967         * optc-gen.awk: Likewise.
17968         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
17969         (set_unsafe_math_optimizations_flags): Likewise.
17970         * doc/options.texi (Option properties): Document SetByCombined.
17971
17972 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
17973
17974         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
17975         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
17976         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
17977         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
17978         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
17979
17980 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
17981
17982         PR tree-optimization/46834
17983         PR tree-optimization/46994
17984         PR tree-optimization/46995
17985         * graphite-sese-to-poly.c (used_outside_reduction): New.
17986         (detect_commutative_reduction): Call used_outside_reduction.
17987         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
17988         translate_scalar_reduction_to_array only when at least one
17989         loop-phi/close-phi tuple has been detected.
17990
17991 2011-02-08  Richard Guenther  <rguenther@suse.de>
17992
17993         PR middle-end/47639
17994         * tree-vect-generic.c (expand_vector_operations_1): Update
17995         stmts here ...
17996         (expand_vector_operations): ... not here.  Cleanup EH info
17997         and the CFG if required.
17998
17999 2011-02-08  Richard Guenther  <rguenther@suse.de>
18000
18001         PR tree-optimization/47641
18002         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
18003         require type compatibility.
18004
18005 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18006
18007         * gimple-low.c (lower_function_body): Don't remove the location of
18008         the return statement here.
18009         (lower_gimple_return): Do it here instead but only if the return
18010         statement is actually used twice.
18011
18012 2011-02-08  Richard Guenther  <rguenther@suse.de>
18013
18014         PR tree-optimization/47632
18015         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
18016         unused up_to_stmt parameter, return whether cfg-cleanup is
18017         necessary, remove EH info properly.
18018         (forward_propagate_into_gimple_cond): Adjust caller.
18019         (forward_propagate_into_cond): Likewise.
18020         (forward_propagate_comparison): Likewise.
18021         (tree_ssa_forward_propagate_single_use_vars): Make
18022         forward_propagate_comparison case similar to the two others.
18023
18024 2011-02-08  Nick Clifton  <nickc@redhat.com>
18025
18026         * config/mn10300/mn10300.opt (mliw): New command line option.
18027         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
18028         (liw_bundling): New automaton.
18029         (liw): New attribute.
18030         (liw_op): New attribute.
18031         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
18032         (movsi_internal): Add LIW attributes.
18033         (andsi3): Likewise.
18034         (iorsi3): Likewise.
18035         (xorsi3): Likewise.
18036         (addsi3): Separate register and immediate alternatives.
18037         Add LIW attributes.
18038         (subsi3): Likewise.
18039         (cmpsi): Likewise.
18040         (aslsi3): Likewise.
18041         (lshrsi3): Likewise.
18042         (ashrsi3): Likewise.
18043         (liw): New pattern.
18044         * config/mn10300/mn10300.c (liw_op_names): New
18045         (mn10300_print_operand): Handle 'W' operand descriptor.
18046         (extract_bundle): New function.
18047         (check_liw_constraints): New function.
18048         (liw_candidate): New function.
18049         (mn10300_bundle_liw): New function.
18050         (mn10300_reorg): New function.
18051         (TARGET_MACHINE_DEPENDENT_REORG): Define.
18052         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
18053         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
18054         __LIW__ or __NO_LIW__.
18055         * doc/invoke.texi: Describe the -mliw command line option.
18056
18057 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18058
18059         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
18060         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
18061         pthread_mutex_unlock): Remove.
18062         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
18063         * config/pa/t-pa64: Likewise.
18064         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
18065         shared libc if not linking against libpthread.
18066         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
18067
18068 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
18069
18070         PR target/47558
18071         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
18072         on 10.6 and later to ensure that we always use the unwinder from
18073         the system.  Only add -no_compact_unwind when tarteting darwin
18074         10.6 or later.
18075
18076 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
18077
18078         PR target/46997
18079         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
18080         (vec_interleave_lowv2sf): Ditto.
18081         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
18082         (vec_extract_oddv2sf): Ditto.
18083
18084 2011-02-07  Mike Stump  <mikestump@comcast.net>
18085
18086         PR target/42333
18087         Add __ieee_divdc3 entry point.
18088         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
18089         entry point.
18090         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
18091         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
18092         * config/darwin.c (darwin_rename_builtins): Add.
18093         * config/darwin-protos.h (darwin_rename_builtins): Add.
18094
18095 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
18096
18097         PR target/47636
18098         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
18099         for the condition.
18100
18101 2011-02-07  Mike Stump  <mikestump@comcast.net>
18102
18103         * config/darwin.opt (mmacosx-version-min): Update default OS version.
18104
18105 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
18106
18107         PR target/47534
18108         * config/avr/libgcc.S (exit): Move .endfunc
18109
18110 2011-02-07  Richard Guenther  <rguenther@suse.de>
18111
18112         PR tree-optimization/47615
18113         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
18114         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
18115         (run_scc_vn): Initialize it.
18116         (visit_reference_op_load): Use it.
18117         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
18118
18119 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18120
18121         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
18122         DImode trapping arithmetic libfuncs.
18123
18124 2011-02-07  Richard Guenther  <rguenther@suse.de>
18125
18126         PR tree-optimization/47621
18127         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
18128         two duplicates ...
18129         (execute_update_addresses_taken): ... here.  Make it more
18130         conservative in what we accept.
18131
18132 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18133
18134         * config/sparc/freebsd.h (ASM_SPEC): Define.
18135         * config/sparc/vxworks.h (ASM_SPEC): Define.
18136
18137 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
18138
18139         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
18140
18141 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
18142
18143         * doc/invoke.texi: Remove reference to compiler internals from
18144         user documentation.
18145
18146         * reg-notes.def: Remove REG_VALUE_PROFILE.
18147         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
18148
18149 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
18150
18151         PR middle-end/47610
18152         * varasm.c (default_section_type_flags): If decl is NULL,
18153         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
18154
18155 2011-02-05  Jie Zhang  <jie@codesourcery.com>
18156
18157         PR debug/42631
18158         * web.c (entry_register): Don't clobber the number of the
18159         first uninitialized reference in used[].
18160
18161 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
18162
18163         PR tree-optimization/46194
18164         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
18165         (build_classic_dist_vector_1): Do not represent classic distance
18166         vectors when the access functions are variating in different loops.
18167
18168 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18169
18170         * config/mips/iris6.opt: New.
18171         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
18172
18173 2011-02-04  Richard Henderson  <rth@redhat.com>
18174             Steve Ellcey  <sje@cup.hp.com>
18175
18176         PR target/46997
18177         * config/ia64/predicates.md (mux1_brcst_element): New.
18178         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
18179         * config/ia64/ia64.c (ia64_unpack_assemble): New.
18180         (ia64_unpack_sign): New.
18181         (ia64_expand_unpack): Rewrite using new routines.
18182         (ia64_expand_widen_sum): Ditto.
18183         (ia64_expand_dot_prod_v8qi): Ditto.
18184         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
18185         routines, add endian check.
18186         (pmpy2_even): Rename from pmpy2_r, add endian check.
18187         (pmpy2_odd): Rename from pmpy2_l, add endian check.
18188         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
18189         (vec_widen_smult_hi_v4hi): Ditto.
18190         (vec_widen_umult_lo_v4hi): Ditto.
18191         (vec_widen_umult_hi_v4hi): Ditto.
18192         (mulv2si3): Change endian checks.
18193         (sdot_prodv4hi): Rewrite with new calls.
18194         (udot_prodv4hi): New.
18195         (vec_pack_ssat_v4hi): Add endian check.
18196         (vec_pack_usat_v4hi): Ditto.
18197         (vec_pack_ssat_v2si): Ditto.
18198         (max1_even): Rename from max1_r, add endian check.
18199         (max1_odd): Rename from max1_l, add endian check.
18200         (*mux1_rev): Format change.
18201         (*mux1_mix): Ditto.
18202         (*mux1_shuf): Ditto.
18203         (*mux1_alt): Ditto.
18204         (*mux1_brcst_v8qi): Use new predicate.
18205         (vec_extract_evenv8qi): Remove endian check.
18206         (vec_extract_oddv8qi): Ditto.
18207         (vec_interleave_lowv4hi): Format change.
18208         (vec_interleave_highv4hi): Ditto.
18209         (mix2_even): Rename from mix2_r, add endian check.
18210         (mix2_odd): Rename from mux2_l, add endian check.
18211         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
18212         (vec_extract_evenodd_helper): Format change.
18213         (vec_extract_evenv4hi): Remove endian check.
18214         (vec_extract_oddv4hi): Remove endian check.
18215         (vec_interleave_lowv2si): Format change.
18216         (vec_interleave_highv2si): Format change.
18217         (vec_initv2si): Remove endian check.
18218         (vecinit_v2si): Add endian check.
18219         (reduc_splus_v2sf): Add endian check.
18220         (reduc_smax_v2sf): Ditto.
18221         (reduc_smin_v2sf): Ditto.
18222         (vec_initv2sf): Remove endian check.
18223         (fpack): Add endian check.
18224         (fswap): Add endian check.
18225         (vec_interleave_highv2sf): Add endian check.
18226         (vec_interleave_lowv2sf): Add endian check.
18227         (fmix_lr): Add endian check.
18228         (vec_setv2sf): Format change.
18229         (*vec_extractv2sf_0_be): Use shift to extract operand.
18230         (*vec_extractv2sf_1_be): New.
18231         (vec_pack_trunc_v4hi): Add endian check.
18232         (vec_pack_trunc_v2si): Format change.
18233
18234 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
18235
18236         PR inline-asm/23200
18237         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
18238         do bb, locus and block comparison and disallow loads if it is not set.
18239         (stmt_is_replaceable_p): New function.
18240         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
18241         callers.
18242         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
18243         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
18244         SSA_NAME_DEF_STMT.
18245         * tree-flow.h (stmt_is_replaceable_p): New prototype.
18246
18247 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18248
18249         * config/rs6000/xilinx.opt: New.
18250         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
18251
18252 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
18253
18254         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
18255
18256 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
18257
18258         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
18259         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
18260         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
18261         secondary_reload_info, xtensa_secondary_reload): Remove.
18262         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
18263         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
18264         (xtensa_preferred_reload_class): Make static. Change return and
18265         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
18266         Use CONST_DOUBLE_P predicate.
18267         (xtensa_preferred_output_reload_class): New function.
18268         (xtensa_secondary_reload): Make static.
18269
18270 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
18271
18272         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
18273         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
18274         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
18275
18276 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18277
18278         PR middle-end/31490
18279         * output.h (SECTION_RELRO): Define.
18280         (SECTION_MACH_DEP): Adjust.
18281         (get_variable_section): New prototype.
18282         * varpool.c (varpool_finalize_named_section_flags): New function.
18283         (varpool_assemble_pending_decls): Call it.
18284         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
18285         * cgraphunit.c (cgraph_output_in_order): Call
18286         varpool_finalize_named_section_flags.
18287         * varasm.c (get_section): Allow section flags conflicts between
18288         relro and read-only sections if the section hasn't been declared yet.
18289         Set SECTION_OVERRIDE after diagnosing section type conflict.
18290         (get_variable_section): No longer static.
18291         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
18292         readonly sections that need relocations.
18293         (decl_readonly_section_1): New function.
18294         (decl_readonly_section): Use it.
18295
18296         Revert:
18297         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
18298                     Steve Ellcey  <sje@cup.hp.com>
18299
18300         PR middle-end/31490
18301         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
18302         if section attribute used.
18303
18304 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18305
18306         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
18307         * config/darwin.c (SECTION_NO_ANCHOR): Define.
18308         (darwin_init_sections): Remove assertion.
18309
18310 2011-02-03  Nick Clifton  <nickc@redhat.com>
18311
18312         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
18313         lt and ge.
18314         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
18315         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
18316         instead of "n" and "pz".
18317         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
18318         CC_FLAG_S.
18319
18320 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
18321
18322         PR target/47312
18323         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
18324         fma, expand FMA_EXPR as fma{,f,l} call.
18325
18326         PR lto/47274
18327         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
18328         copy them into a unsigned char variable and pass address of it to
18329         lto_output_data_stream.
18330
18331         PR target/47564
18332         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
18333         around backend_init_target and lang_dependent_init_target calls.
18334         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
18335         (verify_cgraph_node): Don't call set_cfun here.  Use
18336         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
18337         Set error_found for incorrectly represented calls to thunks.
18338
18339 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18340
18341         PR debug/43092
18342         PR rtl-optimization/43494
18343         * rtl.h (for_each_inc_dec_fn): New type.
18344         (for_each_inc_dec): Declare.
18345         * rtlanal.c (struct for_each_inc_dec_ops): New type.
18346         (for_each_inc_dec_find_inc_dec): New fn.
18347         (for_each_inc_dec_find_mem): New fn.
18348         (for_each_inc_dec): New fn.
18349         * dse.c (struct insn_size): Remove.
18350         (replace_inc_dec, replace_inc_dec_mem): Remove.
18351         (emit_inc_dec_insn_before): New fn.
18352         (check_for_inc_dec): Use it, along with for_each_inc_dec.
18353         (canon_address): Pass mem modes to cselib_lookup.
18354         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
18355         (cselib_lookup_from_insn): Likewise.
18356         (cselib_subst_to_values): Likewise.
18357         * cselib.c (find_slot_memmode): New var.
18358         (cselib_find_slot): New fn.  Use it instead of
18359         htab_find_slot_with_hash everywhere.
18360         (entry_and_rtx_equal_p): Use find_slot_memmode.
18361         (autoinc_split): New fn.
18362         (rtx_equal_for_cselib_p): Rename and implement in terms of...
18363         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
18364         Deal with autoinc.  Special-case recursion into MEMs.
18365         (cselib_hash_rtx): Likewise.
18366         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
18367         address and MEM modes.
18368         (cselib_subst_to_values): Add memmode, pass it on.
18369         Deal with autoinc.
18370         (cselib_lookup): Add memmode argument, pass it on.
18371         (cselib_lookup_from_insn): Add memmode.
18372         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
18373         (struct cselib_record_autoinc_data): New.
18374         (cselib_record_autoinc_cb): New fn.
18375         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
18376         mode to cselib_lookup.  Reset autoinced REGs here instead of...
18377         (cselib_process_insn): ... here.
18378         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
18379         to cselib_lookup.
18380         (add_uses): Likewise, also to cselib_subst_to_values.
18381         (add_stores): Likewise.
18382         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
18383         cselib_subst_to_values.
18384         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
18385         * gcse.c (do_local_cprop): Adjusted.
18386         * postreload.c (reload_cse_simplify_set): Adjusted.
18387         (reload_cse_simplify_operands): Adjusted.
18388         * sel-sched-dump (debug_mem_addr_value): Pass mode.
18389
18390 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
18391
18392         PR tree-optimization/45122
18393         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
18394         unsafe assumptions when there's more than one loop exit.
18395
18396 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18397
18398         PR target/47272
18399         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
18400         Document using vector double with the load/store builtins, and
18401         that the load/store builtins always use Altivec instructions.
18402
18403         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
18404         to use altivec memory instructions, even on VSX.
18405         (vector_altivec_store_<mode>): Ditto.
18406
18407         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
18408         function.
18409
18410         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
18411         V2DF, V2DI support to load/store overloaded builtins.
18412
18413         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
18414         altivec load/store builtins for V2DF/V2DI types.
18415
18416         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
18417         set avoid indexed addresses on power6 if -maltivec.
18418         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
18419         vector_altivec_load/vector_altivec_store builtins.
18420         (altivec_expand_st_builtin): Ditto.
18421         (altivec_expand_builtin): Add VSX memory builtins.
18422         (rs6000_init_builtins): Add V2DI types to internal types.
18423         (altivec_init_builtins): Add support for V2DF/V2DI altivec
18424         load/store builtins.
18425         (rs6000_address_for_altivec): Insure memory address is appropriate
18426         for Altivec.
18427
18428         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
18429         vec_vsx_ld and vec_vsx_st.
18430         (vsx_store_<mode>): Ditto.
18431
18432         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
18433         variables to hold long long types for VSX vector memory builtins.
18434         (RS6000_BTI_unsigned_long_long): Ditto.
18435         (long_long_integer_type_internal_node): Ditti.
18436         (long_long_unsigned_type_internal_node): Ditti.
18437
18438         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
18439         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
18440         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
18441
18442         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
18443         short cuts.
18444         (vec_vsx_st): Ditto.
18445
18446 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18447
18448         * config/pa/pa-hpux10.opt: New.
18449         * config/hpux11.opt (pthread): New Driver option.
18450         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
18451         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
18452
18453 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18454
18455         * config/ia64/vms.opt: New.
18456         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
18457
18458 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
18459
18460         PR target/47580
18461         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
18462         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
18463         generator functions.
18464         (vsx_floatuns<VSi><mode>2): Ditto.
18465         (vsx_fix_trunc<mode><VSi>2): Ditto.
18466         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
18467
18468 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
18469
18470         * config/i386/djgpp.opt (posix): New Driver option.
18471
18472 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
18473
18474         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
18475         Move to the unsupported targets list.
18476
18477 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
18478
18479         PR rtl-optimization/47525
18480         * df-scan.c: Update copyright years.
18481         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
18482         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
18483
18484 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18485
18486         * config/i386/sysv4.h (TARGET_VERSION): Remove.
18487         (SUBTARGET_RETURN_IN_MEMORY): Remove.
18488         (ASM_OUTPUT_ASCII): Remove.
18489         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
18490
18491 2011-02-02  Jeff Law  <law@redhat.com>
18492
18493         PR middle-end/47543
18494         * reload.c (find_reloads_address): Handle reg+d address where both
18495         components are invalid by reloading the entire address.
18496
18497 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18498             Richard Guenther  <rguenther@suse.de>
18499
18500         PR tree-optimization/40979
18501         PR bootstrap/47044
18502         * passes.c (init_optimization_passes): After LIM call copy_prop
18503         and DCE to clean up.
18504         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
18505
18506 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
18507
18508         PR tree-optimization/47576
18509         PR tree-optimization/47555
18510         * doc/invoke.texi (scev-max-expr-complexity): Documented.
18511         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18512         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
18513         * tree-scalar-evolution.c (follow_ssa_edge): Use
18514         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
18515
18516 2011-02-02  Richard Guenther  <rguenther@suse.de>
18517
18518         PR tree-optimization/47566
18519         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
18520
18521 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18522
18523         PR debug/47106
18524         PR debug/47402
18525         * tree-inline.c (declare_return_variable): Remove unused caller
18526         variable.
18527
18528         PR debug/47106
18529         PR debug/47402
18530         * tree-flow-inline.h (clear_is_used, is_used_p): New.
18531         * cfgexpand.c (account_used_vars_for_block): Use them.
18532         * tree-nrv.c (tree_nrv): Likewise.
18533         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
18534         (dump_scope_block): Likewise.
18535         (remove_unused_locals): Likewise.
18536
18537         PR debug/47106
18538         PR debug/47402
18539         * tree-inline.c (declare_return_variable): Add result decl to
18540         local decls only once.
18541         * gimple-low.c (record_vars_into): Mark newly-created variables
18542         as referenced.
18543
18544 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
18545
18546         PR debug/47498
18547         PR debug/47501
18548         PR debug/45136
18549         PR debug/45130
18550         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
18551         debug insns.
18552         (no_real_insns_p, schedule_block, set_priorities): Drop special
18553         treatment of boundary debug insns.
18554         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
18555         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
18556         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
18557         (BOUNDARY_DEBUG_INSN_P): Likewise.
18558         (SCHEDULE_DEBUG_INSN_P): Likewise.
18559         * sched-rgn.c (init_ready_list): Drop special treatment of
18560         boundary debug insns.
18561         * final.c (rest_of_clean_state): Clear notes' BB.
18562
18563 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18564
18565         * config/openbsd.opt (assert=): New Driver option.
18566
18567 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18568
18569         * config/i386/nto.opt: New.
18570         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
18571
18572 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18573
18574         * config/i386/netware.opt: New.
18575         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
18576
18577 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18578
18579         * config/interix.opt (posix): New Driver option.
18580
18581 2011-02-01  DJ Delorie  <dj@redhat.com>
18582
18583         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
18584
18585         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
18586         class for A0/A1.
18587
18588 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
18589
18590         PR tree-optimization/47561
18591         * toplev.c (process_options): Print the Graphite flags.  Add
18592         flag_loop_flatten to the list of options requiring Graphite.
18593
18594 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18595
18596         * config/i386/cygming.opt (posix): New Driver option.
18597
18598 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18599
18600         * config/arm/vxworks.opt: New.
18601         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
18602
18603 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
18604
18605         * config/alpha/elf.opt: New.
18606         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
18607         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
18608
18609 2011-02-01  Richard Guenther  <rguenther@suse.de>
18610
18611         PR tree-optimization/47559
18612         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
18613         store-motion on references that can throw.
18614
18615 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
18616
18617         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
18618         * tree-pass.h (TDF_CSELIB): New macro.
18619         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
18620         cselib_lookup): Check for it rather than for TDF_DETAILS.
18621
18622 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
18623
18624         PR driver/47547
18625         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
18626         is HOST_BIT_BUCKET.
18627
18628         * opts.c (finish_options): Don't add x_aux_base_name if it is
18629         HOST_BIT_BUCKET.
18630
18631 2011-02-01  Richard Guenther  <rguenther@suse.de>
18632
18633         PR tree-optimization/47555
18634         Revert
18635         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
18636
18637         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
18638
18639 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
18640
18641         PR gcc/46692
18642         * config/lm32/t-lm32: Add multilib for all CPU options.
18643
18644 2011-02-01  Richard Guenther  <rguenther@suse.de>
18645
18646         PR tree-optimization/47541
18647         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
18648         sure to have a field at offset zero.
18649
18650 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18651
18652         * config/arc/arc.opt (EB, EL): New Driver options.
18653
18654 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18655
18656         * config/alpha/osf5.opt: New.
18657         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
18658
18659 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
18660
18661         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
18662
18663 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
18664
18665         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
18666         -floop-interchange.
18667         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
18668         is an alias of -floop-interchange and that it requires the
18669         Graphite infrastructure.
18670         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
18671         flag_loop_interchange based on the value of flag_tree_loop_linear.
18672
18673 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
18674             Richard Guenther  <rguenther@suse.de>
18675
18676         PR tree-optimization/47538
18677         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
18678         type instead of r1type, except for comparisons.  For right
18679         shifts and comparisons punt if there are mismatches in
18680         sizetype vs. non-sizetype types.
18681
18682 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18683
18684         * doc/sourcebuild.texi (Effective-Target Keywords): Document
18685         avx_runtime.
18686
18687 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18688
18689         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
18690         version number.
18691         * configure: Regenerate.
18692
18693 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18694
18695         * configure.ac (gcc_cv_ld_static_option): Define.
18696         (gcc_cv_ld_dynamic_option): Define.
18697         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
18698         instead.
18699         (HAVE_LD_STATIC_DYNAMIC): Update message.
18700         (LD_STATIC_OPTION): Define.
18701         (LD_DYNAMIC_OPTION): Define.
18702         * configure: Regenerate.
18703         * config.in: Regenerate.
18704         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
18705         HAVE_LD_STATIC_DYNAMIC]: Use them.
18706
18707 2011-01-31  Nick Clifton  <nickc@redhat.com>
18708
18709         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
18710         registers inside interrupt handlers if the handler is not a leaf
18711         function.
18712
18713 2011-01-31  Nick Clifton  <nickc@redhat.com>
18714
18715         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
18716         reg_renumber returning an INVALID_REGNUM.
18717
18718 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
18719
18720         PR libgcj/44341
18721         * doc/install.texi: Document host options discarded when cross
18722         configuring target libraries.
18723
18724 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
18725
18726         Reverted:
18727         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
18728         PR debug/45136
18729         PR debug/45130
18730         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
18731         debug insns.
18732         (no_real_insns_p, schedule_block, set_priorities): Drop special
18733         treatment of boundary debug insns.
18734         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
18735         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
18736         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
18737         (BOUNDARY_DEBUG_INSN_P): Likewise.
18738         (SCHEDULE_DEBUG_INSN_P): Likewise.
18739         * sched-rgn.c (init_ready_list): Drop special treatment of
18740         boundary debug insns.
18741         * final.c (rest_of_clean-state): Clear notes' BB.
18742
18743 2011-01-31  Alan Modra  <amodra@gmail.com>
18744
18745         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
18746         toc relative expressions as we do in print_operand_address.
18747
18748 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
18749
18750         * doc/extend.texi: Follow spelling conventions.
18751         * doc/invoke.texi: Fix a typo.
18752
18753 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
18754
18755         * config/hpux11.opt: New.
18756         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
18757         ia64*-*-hpux*): Use hpux11.opt.
18758
18759 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
18760
18761         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
18762         to tmake_file.
18763
18764 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
18765
18766         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
18767         support sites.
18768
18769 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
18770
18771         * doc/install.texi (Binaries): Remove outdated reference for
18772         Motorola 68HC11/68HC12 downloads.
18773
18774 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
18775
18776         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
18777         Drepper's paper.
18778
18779 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
18780
18781         PR bootstrap/47147
18782         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
18783         used by NetBSD.
18784
18785 2011-01-28  Ahmad Sharif  <asharif@google.com>
18786
18787         * value-prof.c (check_counter): Corrected error message.
18788
18789 2011-01-29  Jie Zhang  <jie@codesourcery.com>
18790
18791         * config/arm/arm.c (arm_legitimize_reload_address): New.
18792         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
18793         arm_legitimize_reload_address.
18794         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
18795
18796 2011-01-28  Ian Lance Taylor  <iant@google.com>
18797
18798         * godump.c (go_define): Ignore macros whose definitions include
18799         two adjacent operands.
18800
18801 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
18802
18803         PR target/42894
18804         * varasm.c (force_const_mem): Store copy of x in desc->constant
18805         instead of x itself.
18806         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
18807         itself into REG_EQUAL note.
18808
18809 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
18810
18811         * config/freebsd.opt (posix, rdynamic): New Driver options.
18812
18813 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18814
18815         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
18816         -Bstatic/-Bdynamic.
18817         * configure: Regenerate.
18818
18819 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
18820
18821         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
18822         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
18823
18824 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
18825
18826         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
18827         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
18828         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
18829         (s390_preferred_reload_class): Make static. Change return and
18830         'rclass' argument type to reg_class_t.
18831
18832 2011-01-27  Jan Hubicka  <jh@suse.cz>
18833
18834         PR middle-end/46949
18835         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
18836         (process_function_and_variable_attributes): Check defined weakrefs.
18837
18838 2011-01-27  Martin Jambor  <mjambor@suse.cz>
18839
18840         PR tree-optimization/47228
18841         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
18842         build_ref_for_offset.
18843
18844 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18845
18846         * config/spu/spu-elf.h (ASM_SPEC): Remove.
18847
18848 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
18849
18850         PR rtl-optimization/46856
18851         * postreload.c (reload_combine_recognize_const_pattern): Do not
18852         separate cc0 setter and user on cc0 targets.
18853
18854 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
18855
18856         PR c/43082
18857         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
18858         passed a VOID_TYPE expression, immediately emit an error and
18859         return error_mark_node.
18860
18861 2011-01-26  Jeff Law  <law@redhat.com>
18862
18863         PR rtl-optimization/47464
18864         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
18865         rather than may_trap_p as needed.
18866
18867 2011-01-26  DJ Delorie  <dj@redhat.com>
18868
18869         PR rtl-optimization/46878
18870         * combine.c (insn_a_feeds_b): Check for the implicit cc0
18871         setter/user dependency as well.
18872
18873 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
18874
18875         PR rtl-optimization/44469
18876         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
18877         after removing trivially dead basic blocks.
18878
18879 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
18880
18881         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
18882         * config/frv/frv.h (LINK_SPEC): Likewise.
18883         * config/i386/netware.h (LINK_SPEC): Likewise.
18884         * config/m68k/linux.h (ASM_SPEC): Likewise.
18885         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
18886         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
18887         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
18888         * config/sparc/linux.h (ASM_SPEC): Likewise.
18889         * config/sparc/linux64.h (ASM_SPEC): Likewise.
18890         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
18891
18892 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
18893
18894         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
18895         * config/frv/frv.h (ASM_SPEC): Likewise.
18896         * config/m68k/linux.h (ASM_SPEC): Likewise.
18897         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
18898         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
18899         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
18900         * config/sparc/linux.h (ASM_SPEC): Likewise.
18901         * config/sparc/linux64.h (ASM_SPEC): Likewise.
18902         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
18903
18904 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
18905
18906         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
18907         * config/frv/frv.h (LINK_SPEC): Likewise.
18908         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
18909
18910 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
18911
18912         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
18913         * config/frv/frv.h (ASM_SPEC): Likewise.
18914         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
18915         * config/m68k/linux.h (ASM_SPEC): Likewise.
18916         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
18917         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
18918         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
18919         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
18920         * config/sparc/linux.h (ASM_SPEC): Likewise.
18921         * config/sparc/linux64.h (ASM_SPEC): Likewise.
18922         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
18923         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
18924
18925 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
18926
18927         PR target/46997
18928         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
18929         (*mux2): Ditto.
18930         (vec_extract_evenodd_help): Ditto.
18931         (vec_extract_evenv4hi): Ditto.
18932         (vec_extract_oddv4hi): Ditto.
18933         (vec_interleave_lowv2si): Ditto.
18934         (vec_interleave_highv2si): Ditto.
18935         (vec_extract_evenv2si): Ditto.
18936         (vec_extract_oddv2si: Ditto.
18937         (vec_pack_trunc_v2si): Ditto.
18938
18939 2011-01-22  Jan Hubicka  <jh@suse.cz>
18940
18941         PR target/47237
18942         * cgraph.h (cgraph_local_info): New field can_change_signature.
18943         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
18944         signature can change.
18945         (ipcp_estimate_growth): Call sequence simplify only if calle signature
18946         can change.
18947         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
18948         (cgraph_function_versioning): We can not change signature of functions
18949         that don't allow that.
18950         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
18951         (lto_input_node): Likewise.
18952         * ipa-inline.c (compute_inline_parameters): Compute
18953         local.can_change_signature.
18954         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
18955         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
18956         functions that can not change signature.
18957         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
18958         init_cumulative_args): Do not use local calling conventions
18959         for functions that can not change signature.
18960
18961 2011-01-22  Jan Hubicka  <jh@suse.cz>
18962
18963         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
18964
18965 2011-01-26  Richard Guenther  <rguenther@suse.de>
18966
18967         PR tree-optimization/47190
18968         * cgraphunit.c (process_common_attributes): New function.
18969         (process_function_and_variable_attributes): Use it.
18970
18971 2011-01-26  Richard Guenther  <rguenther@suse.de>
18972
18973         PR lto/47423
18974         * cgraphbuild.c (record_eh_tables): Record reference to personality
18975         function.
18976
18977 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
18978
18979         PR debug/45454
18980         * sel-sched.c (moveup_expr): Don't let debug insns prevent
18981         non-debug insns from moving up.
18982
18983 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
18984
18985         PR target/40125
18986         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
18987         t-dlldir{,-x} fragment for build and add it to tmake_file.
18988         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
18989         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
18990         * config/i386/t-dlldir: New file.
18991         (SHLIB_DLLDIR): Define.
18992         * config/i386/t-dlldir-x: New file.
18993         (SHLIB_DLLDIR): Define.
18994         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
18995         (SHLIB_INSTALL): Use it.
18996
18997 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
18998
18999         PR target/47246
19000         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
19001         lower bound of the allowed Thumb-2 coprocessor load/store
19002         index range to -256. Add explaining comment.
19003
19004 2011-01-25  Ian Lance Taylor  <iant@google.com>
19005
19006         * godump.c (go_define): Improve lexing of macro expansion to only
19007         accept expressions which match Go spec.
19008
19009 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
19010
19011         PR c++/43601
19012         * tree.c (handle_dll_attribute): Handle it.
19013         * doc/extend.texi (@item dllexport): Mention it.
19014         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
19015
19016 2011-01-25  Ian Lance Taylor  <iant@google.com>
19017
19018         PR tree-optimization/26854
19019         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
19020         (decl_jump_unsafe): Move higher in file, with no other change.
19021         (bind): Set has_jump_unsafe_decl if appropriate.
19022         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
19023         (check_earlier_gotos): Likewise.
19024         (c_check_switch_jump_warnings): Likewise.
19025
19026 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
19027
19028         * doc/invoke.texi (Warning Options): Add missing hyphen.
19029         (-fprofile-dir): Minor grammatical fixes.
19030         (-fbranch-probabilities): Likewise.
19031
19032 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
19033
19034         PR debug/45136
19035         PR debug/45130
19036         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
19037         debug insns.
19038         (no_real_insns_p, schedule_block, set_priorities): Drop special
19039         treatment of boundary debug insns.
19040         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
19041         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
19042         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
19043         (BOUNDARY_DEBUG_INSN_P): Likewise.
19044         (SCHEDULE_DEBUG_INSN_P): Likewise.
19045         * sched-rgn.c (init_ready_list): Drop special treatment of
19046         boundary debug insns.
19047         * final.c (rest_of_clean-state): Clear notes' BB.
19048
19049 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19050
19051         * Makefile.in (LAMBDA_H): Removed.
19052         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
19053         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
19054         lambda-trans.o, and tree-loop-linear.o.
19055         (lto-symtab.o): Remove dependence on LAMBDA_H.
19056         (tree-loop-linear.o): Remove rule.
19057         (lambda-mat.o): Same.
19058         (lambda-trans.o): Same.
19059         (lambda-code.o): Same.
19060         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
19061         (tree-vect-slp.o): Same.
19062         * hwint.h (gcd): Moved here.
19063         (least_common_multiple): Same.
19064         * lambda-code.c: Removed.
19065         * lambda-mat.c: Removed.
19066         * lambda-trans.c: Removed.
19067         * lambda.h: Removed.
19068         * tree-loop-linear.c: Removed.
19069         * lto-symtab.c: Do not include lambda.h.
19070         * omega.c (gcd): Removed.
19071         * passes.c (init_optimization_passes): Remove pass_linear_transform.
19072         * tree-data-ref.c (print_lambda_vector): Moved here.
19073         (lambda_vector_copy): Same.
19074         (lambda_matrix_copy): Same.
19075         (lambda_matrix_id): Same.
19076         (lambda_vector_first_nz): Same.
19077         (lambda_matrix_row_add): Same.
19078         (lambda_matrix_row_exchange): Same.
19079         (lambda_vector_mult_const): Same.
19080         (lambda_vector_negate): Same.
19081         (lambda_matrix_row_negate): Same.
19082         (lambda_vector_equal): Same.
19083         (lambda_matrix_right_hermite): Same.
19084         * tree-data-ref.h: Do not include lambda.h.
19085         (lambda_vector): Moved here.
19086         (lambda_matrix): Same.
19087         (dependence_level): Same.
19088         (lambda_transform_legal_p): Removed declaration.
19089         (lambda_collect_parameters): Same.
19090         (lambda_compute_access_matrices): Same.
19091         (lambda_vector_gcd): Same.
19092         (lambda_vector_new): Same.
19093         (lambda_vector_clear): Same.
19094         (lambda_vector_lexico_pos): Same.
19095         (lambda_vector_zerop): Same.
19096         (lambda_matrix_new): Same.
19097         * tree-flow.h (least_common_multiple): Removed declaration.
19098         * tree-parloops.c (lambda_trans_matrix): Moved here.
19099         (LTM_MATRIX): Same.
19100         (LTM_ROWSIZE): Same.
19101         (LTM_COLSIZE): Same.
19102         (LTM_DENOMINATOR): Same.
19103         (lambda_trans_matrix_new): Same.
19104         (lambda_matrix_vector_mult): Same.
19105         (lambda_transform_legal_p): Same.
19106         * tree-pass.h (pass_linear_transform): Removed declaration.
19107         * tree-ssa-loop.c (tree_linear_transform): Removed.
19108         (gate_tree_linear_transform): Removed.
19109         (pass_linear_transform): Removed.
19110         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
19111         flag_loop_interchange.
19112
19113 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19114
19115         PR tree-optimization/47265
19116         PR tree-optimization/47443
19117         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
19118         if name still has some uses.
19119
19120 2011-01-25  Martin Jambor  <mjambor@suse.cz>
19121
19122         PR tree-optimization/47382
19123         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
19124         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
19125
19126 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
19127
19128         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
19129         sjlj_except_unwind_info.
19130
19131 2011-01-25  Richard Guenther  <rguenther@suse.de>
19132
19133         PR tree-optimization/47426
19134         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
19135         visible functions results escape.
19136
19137 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19138
19139         PR target/45701
19140         * config/arm/arm.c (any_sibcall_uses_r3): New function.
19141         (arm_get_frame_offsets): Use it.
19142
19143 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19144             Jakub Jelinek  <jakub@redhat.com>
19145
19146         PR tree-optimization/47271
19147         * tree-if-conv.c (bb_postdominates_preds): New.
19148         (if_convertible_bb_p): Call bb_postdominates_preds.
19149         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
19150         (predicate_scalar_phi): Call bb_postdominates_preds.
19151
19152 2011-01-25  Nick Clifton  <nickc@redhat.com>
19153
19154         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
19155         * config/rx/rx.c (rx_function_value): Likewise.
19156         (rx_promote_function_mode): Likewise.
19157         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
19158         in order to make it legitimate.
19159         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
19160         make sure that the first operand is the same as the result register.
19161         (addsi3_unspec): Delete.
19162         (subdi3): Do not accept immediate operands.
19163         (subdi3_internal): Likewise.
19164
19165 2011-01-25  Jeff Law  <law@redhat.com>
19166
19167         PR rtl-optimization/37273
19168         * ira-costs.c (scan_one_insn): Detect constants living in memory and
19169         handle them like argument loads from stack slots.  Do not double
19170         count memory for memory constants and argument loads from stack slots.
19171
19172 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
19173
19174         PR tree-optimization/47427
19175         PR tree-optimization/47428
19176         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
19177         coalesce if the new root var would be TREE_READONLY.
19178
19179 2011-01-25  Richard Guenther  <rguenther@suse.de>
19180
19181         PR middle-end/47414
19182         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
19183         correct type for TBAA.
19184
19185 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19186
19187         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
19188         (close_phi_written_to_memory): Call for_each_index with
19189         dr_indices_valid_in_loop.
19190
19191 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19192
19193         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
19194         when it is initialized.
19195
19196 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19197
19198         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
19199         call to graphite_find_data_references_in_stmt.
19200         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
19201         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
19202         call to graphite_find_data_references_in_stmt.
19203         (analyze_drs_in_stmts): Same.
19204         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
19205         in which the scalar analysis of indices is performed.
19206         (create_data_ref): Same.  Update call to dr_analyze_indices.
19207         (find_data_references_in_stmt): Update call to create_data_ref.
19208         (graphite_find_data_references_in_stmt): Same.
19209         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
19210         declaration.
19211         (create_data_ref): Same.
19212         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
19213         call to create_data_ref.
19214
19215 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19216
19217         * graphite-sese-to-poly.c (build_poly_scop): Move
19218         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
19219
19220 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19221
19222         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
19223         VAR_DECL, PARM_DECL, and RESULT_DECL.
19224
19225 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19226
19227         * graphite-dependences.c (reduction_dr_1): Allow several reductions
19228         in a reduction PBB.
19229         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
19230         that have already been marked as PBB_IS_REDUCTION.
19231
19232 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19233
19234         * graphite-scop-detection.c (same_close_phi_node): New.
19235         (remove_duplicate_close_phi): New.
19236         (make_close_phi_nodes_unique): New.
19237         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
19238
19239 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19240
19241         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
19242         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
19243         of both data references to be the same.
19244
19245 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19246
19247         * graphite-dependences.c (build_lexicographical_constraint): Remove
19248         the gdim parameter.
19249         (build_lexicographical_constraint): Adjust call to
19250         ppl_powerset_is_empty.
19251         (dependence_polyhedron): Same.
19252         (graphite_legal_transform_dr): Same.
19253         (graphite_carried_dependence_level_k): Same.
19254         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
19255         parameter.
19256         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
19257
19258 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19259
19260         * graphite-sese-to-poly.c
19261         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
19262         (close_phi_written_to_memory): New.
19263         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
19264         and unshare_expr.
19265
19266 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19267
19268         * doc/install.texi: Update the expected version number of PPL to 0.11.
19269         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
19270         #if PPL_VERSION_MINOR < 11.
19271
19272 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19273
19274         * graphite-dependences.c: Include graphite-cloog-util.h.
19275         (new_poly_ddr): Inlined into dependence_polyhedron.
19276         (free_poly_ddr): Moved close by new_poly_ddr.
19277         (dependence_polyhedron_1): Renamed dependence_polyhedron.
19278         Early return NULL when ppl_powerset_is_empty returns true.
19279         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
19280         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
19281         (graphite_legal_transform_dr): Call new_poly_ddr.
19282         (graphite_carried_dependence_level_k): Same.
19283         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
19284         (dot_transformed_deps_stmt_1): Removed.
19285         (dot_deps_stmt_1): Call dot_deps_stmt_2.
19286         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
19287         (dot_deps_1): Call dot_deps_2.
19288         * Makefile.in (graphite-dependences.o): Add missing dependence on
19289         graphite-cloog-util.h.
19290
19291 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19292
19293         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
19294         (build_lexicographical_constraint): Same.
19295         (dependence_polyhedron_1): Same.
19296         (graphite_legal_transform_dr): Same.
19297         (graphite_carried_dependence_level_k): Same.
19298         * graphite-ppl.c (ppl_powerset_is_empty): New.
19299         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
19300         * tree-data-ref.c (dump_data_reference): Print the basic block index.
19301
19302 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19303
19304         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
19305         the "a followed by b" relation and document it.
19306
19307 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19308
19309         * graphite-dependences.c (build_lexicographical_constraint): Stop the
19310         iteration when the bag of constraints is empty.
19311
19312 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19313
19314         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
19315
19316 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19317
19318         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
19319         nest and two loop depths as parameters.
19320         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
19321         lst_perfect_nestify.
19322
19323 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19324
19325         * graphite-dependences.c (print_pddr): Call
19326         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
19327
19328 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
19329
19330         * graphite-ppl.c (debug_gmp_value): New.
19331         * graphite-ppl.h (debug_gmp_value): Declared.
19332
19333 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
19334
19335         * doc/install.texi: Document availability of cloog-0.16.
19336
19337 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
19338
19339         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
19340         invalid postdominance info.
19341
19342 2011-01-24  Jan Hubicka  <jh@suse.cz>
19343
19344         PR c/21659
19345         * doc/extend.texi (weak pragma): Drop claim that it must
19346         appear before definition.
19347         * varasm.c (merge_weak, declare_weak): Only sanity check
19348         that DECL is not output at a time it is declared weak.
19349
19350 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
19351
19352         * machmode.def: Fixed comments.
19353
19354 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
19355
19356         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
19357
19358 2011-01-24  Paul Koning  <ni1d@arrl.net>
19359
19360         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
19361         WORDS_BIG_ENDIAN.
19362
19363 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19364
19365         PR target/46519
19366         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
19367         (block_info): Add scanned and prev.
19368         (move_or_delete_vzeroupper_2): Return if the basic block
19369         has been scanned and the upper 128bit state is unchanged
19370         from the last scan.
19371         (move_or_delete_vzeroupper_1): Return true if the exit
19372         state is changed.
19373         (move_or_delete_vzeroupper): Visit basic blocks using the
19374         work-list based algorithm based on vt_find_locations in
19375         var-tracking.c.
19376
19377         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
19378
19379 2011-01-24  Nick Clifton  <nickc@redhat.com>
19380
19381         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
19382         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
19383         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
19384         then define __v850e1__.
19385         * doc/invoke.texi: Document -mv850es.
19386
19387 2011-01-24  Richard Henderson  <rth@redhat.com>
19388
19389         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
19390         compound unordered comparisons.
19391         * config/rx/rx.c (rx_split_fp_compare): Remove.
19392         * config/rx/rx-protos.h: Update.
19393         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
19394         (cbranchsf4): Don't call rx_split_fp_compare.
19395         (*cbranchsf4): Use rx_split_cbranch.
19396         (*cmpsf): Don't accept "i" constraint.
19397         (*conditional_branch): Only valid after reload.
19398         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
19399
19400 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
19401
19402         PR target/47385
19403         * config/rs6000/altivec.md (vector constant splitters): Add
19404         support for creating vector single precision constants if -mvsx is
19405         used and we would create the constant using Altivec primitives.
19406
19407 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
19408             Richard Sandiford  <rdsandiford@googlemail.com>
19409
19410         PR rtl-optimization/47166
19411         * reload1.c (emit_reload_insns): Disable the spill_reg_store
19412         mechanism for PRE_MODIFY and POST_MODIFY.
19413         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
19414         reloadreg.
19415
19416 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
19417
19418         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
19419
19420 2011-01-22  Jan Hubicka  <jh@suse.cz>
19421
19422         PR lto/47333
19423         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
19424
19425 2011-01-22  Jan Hubicka  <jh@suse.cz>
19426
19427         PR tree-optimization/43884
19428         PR lto/44334
19429         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
19430         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
19431
19432 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
19433
19434         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
19435         * config/s390/s390.c (s390_register_move_cost,
19436         s390_memory_move_cost): New.
19437         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
19438
19439 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19440
19441         PR middle-end/47401
19442         * except.c (sjlj_assign_call_site_values): Move setting the
19443         crtl->uses_eh_lsda flag to ...
19444         (sjlj_mark_call_sites): ... here.
19445         (sjlj_emit_function_enter): Support NULL dispatch label.
19446         (sjlj_build_landing_pads): In a function with no landing pads
19447         that still has must-not-throw regions, generate code to register
19448         a personality function with empty LSDA.
19449
19450 2011-01-21  Richard Henderson  <rth@redhat.com>
19451
19452         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
19453
19454         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
19455
19456         * compare-elim.c: New file.
19457         * Makefile.in (OBJS-common): Add it.
19458         (compare-elim.o): New.
19459         * common.opt (fcompare-elim): New.
19460         * opts.c (default_options_table): Add OPT_fcompare_elim.
19461         * tree-pass.h (pass_compare_elim_after_reload): New.
19462         * passes.c (init_optimization_passes): Add it.
19463         * recog.h: Protect against re-inclusion.
19464         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
19465         * doc/invoke.texi (-fcompare-elim): Document it.
19466         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
19467         * doc/tm.texi: Rebuild.
19468
19469 2011-01-22  Nick Clifton  <nickc@redhat.com>
19470
19471         * config/rx/rx.md (cstoresf4): Pass comparison operator to
19472         rx_split_fp_compare.
19473
19474 2011-01-22  Nick Clifton  <nickc@redhat.com>
19475
19476         * config/rx/rx.md (UNSPEC_CONST): New.
19477         (deallocate_and_return): Wrap the amount popped off the stack in
19478         an UNSPEC_CONST in order to stop it being rejected by
19479         -mmax-constant-size.
19480         (pop_and_return): Add a "(return)" rtx.
19481         (call): Drop the immediate operand.
19482         (call_internal): Likewise.
19483         (call_value): Likewise.
19484         (call_value_internal): Likewise.
19485         (sibcall_internal): Likewise.
19486         (sibcall_value_internal): Likewise.
19487         (sibcall): Likewise.  Generate an explicit call using
19488         sibcall_internal.
19489         (sibcall_value): Likewise.
19490         (mov<>): FAIL if a constant operand is not legitimate.
19491         (addsi3_unpsec): New pattern.
19492
19493         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
19494         (ok_for_max_constant): New function.
19495         (gen_safe_add): New function.
19496         (rx_expand_prologue): Use gen_safe_add.
19497         (rx_expand_epilogue): Likewise.
19498         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
19499         UNSPEC CONSTs.
19500
19501 2011-01-21  Jeff Law  <law@redhat.com>
19502
19503         PR tree-optimization/47053
19504         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
19505         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
19506         statements are deleted.
19507         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
19508         is nonempty, then purge dead edges and cleanup the CFG.
19509
19510 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19511
19512         PR debug/47402
19513         Temporarily revert:
19514         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19515         PR debug/47106
19516         * tree-dfa.c (create_var_ann): Mark variable as used.
19517
19518 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19519
19520         PR middle-end/45566
19521         * except.c (convert_to_eh_region_ranges): Emit queued no-region
19522         notes from other section in hot/cold partitioning even if
19523         last_action is -3.  Increment call_site_base.
19524
19525         PR rtl-optimization/47366
19526         * fwprop.c (forward_propagate_into): Return bool.  If
19527         any changes are made, -fnon-call-exceptions is used and
19528         REG_EH_REGION note is present, call purge_dead_edges
19529         and return true if it purged anything.
19530         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
19531         any EH edges were purged.
19532
19533 2011-01-21  Jeff Law  <law@redhat.com>
19534
19535         PR rtl-optimization/41619
19536         * caller-save.c (setup_save_areas): Break out code to determine
19537         which hard regs are live across calls by examining the reload chains
19538         so that it is always used.
19539         Eliminate code which checked REG_N_CALLS_CROSSED.
19540
19541 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19542
19543         PR tree-optimization/47355
19544         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
19545         NOP has non-debug uses beyond PHIs in new_bb.
19546
19547 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
19548
19549         PR debug/47106
19550         * cfgexpand.c (account_used_vars_for_block): Only account vars
19551         that are annotated as used.
19552         (estimated_stack_frame_size): Don't set TREE_USED.
19553         * tree-dfa.c (create_var_ann): Mark variable as used.
19554
19555 2011-01-21  Richard Guenther  <rguenther@suse.de>
19556
19557         PR middle-end/47395
19558         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
19559
19560 2011-01-21  Richard Guenther  <rguenther@suse.de>
19561
19562         PR tree-optimization/47365
19563         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
19564         (vn_reference_lookup_pieces): Adjust.
19565         (vn_reference_lookup): Likewise.
19566         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
19567         (vn_reference_lookup_3): Only look through kills if in
19568         VN_WALKREWRITE mode.
19569         (vn_reference_lookup_pieces): Adjust.
19570         (vn_reference_lookup): Likewise.
19571         (visit_reference_op_load): Likewise.
19572         (visit_reference_op_store): Likewise.
19573         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
19574         (compute_avail): Likewise.
19575         (eliminate): Likewise.
19576
19577 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
19578
19579         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
19580         DECL_IGNORED_P non-reg vars if they are used.
19581
19582         PR tree-optimization/47391
19583         * varpool.c (const_value_known_p): Return false if
19584         decl is volatile.
19585
19586 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
19587
19588         PR bootstrap/47215
19589         * config/i386/i386.c (ix86_local_alignment): Handle
19590         case for va_list_type_node is nil.
19591         (ix86_canonical_va_list_type): Likewise.
19592
19593 2011-01-21  Alan Modra  <amodra@gmail.com>
19594
19595         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
19596         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
19597
19598 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19599
19600         * config/arm/arm.md (define_attr type): Rename f_load
19601         and f_store to f_fpa_load and f_fpa_store. Update.
19602         (write_conflict): Deal with rename fallout.
19603         (*push_fp_multi): Likewise.
19604         * config/arm/fpa.md (f_load): Use f_fpa_load.
19605         (f_store): Use f_fpa_store.
19606         (*movsf_fpa): Likewise.
19607         (*movdf_fpa): Likewise.
19608         (*movxf_fpa): Likewise.
19609         (*thumb2_movsf_fpa): Likewise.
19610         (*thumb2_movdf_fpa): Likewise.
19611         (*thumb2_movxf_fpa): Likewise.
19612         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
19613         f_loadd and f_stored.
19614         (*thumb2_movdi_vfp): Likewise.
19615         (*thumb2_movsf_vfp): Fix attribute to f_loads.
19616         (*thumb2_movsi_vfp): Likewise.
19617         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
19618         Use f_loads instead of f_load.
19619         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
19620
19621 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
19622
19623         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19624         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
19625         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19626         (xtensa_mode_dependent_address_p): New function.
19627         (constantpool_address_p): Make static. Change return type to bool.
19628         Change argument type to const_rtx. Use CONST_INT_P predicate.
19629
19630 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
19631
19632         PR debug/46583
19633         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
19634
19635 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
19636
19637         PR debug/47283
19638         * cfgexpand.c (expand_debug_expr): Instead of generating
19639         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
19640         etc. handling.
19641
19642 2011-01-20  Richard Guenther  <rguenther@suse.de>
19643
19644         PR middle-end/47370
19645         * tree-inline.c (remap_gimple_op_r): Recurse manually for
19646         the pointer operand of MEM_REFs.
19647
19648 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
19649
19650         PR tree-optimization/46130
19651         * ipa-split.c (consider_split): If return_bb contains non-virtual
19652         PHIs other than for retval or if split_function would not adjust it,
19653         refuse to split.
19654
19655 2011-01-20  Richard Guenther  <rguenther@suse.de>
19656
19657         PR tree-optimization/47167
19658         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
19659         Revert previous change, only avoid enumeral type changes.
19660
19661 2011-01-19  Mike Stump  <mikestump@comcast.net>
19662
19663         * doc/tm.texi.in (BRANCH_COST): Englishify.
19664         * doc/tm.texi (BRANCH_COST): Likewise.
19665
19666 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
19667
19668         PR c++/47291
19669         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
19670         (gen_scheduled_generic_parms_dies): New functions.
19671         (gen_struct_or_union_type_die): Schedule template parameters DIEs
19672         generation for the end of CU compilation.
19673         (dwarf2out_finish): Generate template parameters DIEs here.
19674
19675 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19676
19677         PR debug/46240
19678         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
19679         debug bind stmt on merge edges.
19680
19681 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19682
19683         PR debug/47079
19684         PR debug/46724
19685         * function.c (instantiate_expr): Instantiate incoming rtl of
19686         implicit arguments, and recurse on VALUE_EXPRs.
19687         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
19688         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
19689
19690 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
19691
19692         * c-parser.c (c_parser_for_statement): Initialize
19693         collection_expression.
19694
19695 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19696
19697         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
19698
19699 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19700
19701         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
19702         (LINK_SHLIB_SPEC): Don't use %(link_path).
19703         (SUBTARGET_EXTRA_SPECS): Remove link_path.
19704
19705 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19706
19707         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
19708         (NO_SHARED_LIB_SUPPORT): Remove.
19709         (LINK_SHLIB_SPEC): Remove one conditional definition.
19710
19711 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
19712
19713         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
19714         %{call_shared}.
19715         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
19716         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
19717         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
19718         %{call_shared} and conditionals on these options not being passed.
19719         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
19720         %{call_shared}.
19721
19722 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
19723
19724         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
19725         simplify.
19726
19727         * ipa-split.c: Spelling fixes.
19728
19729 2011-01-19  Richard Henderson  <rth@redhat.com>
19730
19731         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
19732         (*mulsi3): Likewise.
19733
19734         * longlong.h [__mn10300__] (count_leading_zeros): New.
19735         [__mn10300__] (umul_ppmm, smul_ppmm): New.
19736         [__mn10300__] (add_ssaaaa, subddmmss): New.
19737         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
19738         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
19739
19740 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19741
19742         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
19743
19744 2011-01-19  Richard Henderson  <rth@redhat.com>
19745
19746         * config/mn10300/mn10300.md (addsi3_flags): New.
19747         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
19748         (subsi3_flags, subc_internal, subdi3): New.
19749         (subdi3_internal, *subdi3_degenerate): New.
19750         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
19751
19752         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
19753         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
19754         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
19755         * config/mn10300/mn10300-protos.h: Update.
19756         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
19757         (return_ret): Likewise.  Rename from return_internal_regs.
19758         (return_internal): Remove.
19759
19760         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
19761         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
19762         (mn10300_legitimate_constant_p): Likewise.
19763         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
19764         (mn10300_frame_size): New.
19765         (mn10300_expand_prologue): Use it.
19766         (mn10300_expand_epilogue): Likewise.
19767         (mn10300_initial_offset): Likewise.
19768         * config/mn10300/mn10300-protos.h: Update.
19769         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
19770         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
19771         (prologue, epilogue, return_internal): Tidy output code.
19772         (mn10300_store_multiple_operation, return): Likewise.
19773         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
19774         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
19775         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
19776         (load_pic, am33_load_pic): New.
19777         (mn10300_load_pic0, mn10300_load_pic1): New.
19778
19779         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
19780         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
19781         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
19782         (cc_flags_for_mode, cc_flags_for_code): New.
19783         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
19784         overflow flag is not valid.  Validate that the flags we need
19785         for the comparison are valid.
19786         (mn10300_output_cmp): Remove.
19787         (mn10300_output_add): New.
19788         (mn10300_select_cc_mode): Use cc_flags_for_code.
19789         (mn10300_split_cbranch): New.
19790         (mn10300_match_ccmode): New.
19791         (mn10300_split_and_operand_count): New.
19792         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
19793         to the function.
19794         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
19795         (addsi3): ... here.  Use mn10300_output_add.
19796         (*addsi3_flags): New.
19797         (*am33_subsi3, *mn10300_subsi3): Merge...
19798         (subsi3): ... here.  Use attribute isa.
19799         (*subsi3_flags): New.
19800         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
19801         when possible.
19802         (*am33_andsi3, *mn10300_andsi3): Merge...
19803         (andsi3): ... here.
19804         (*andsi3_flags): New.
19805         (andsi3 splitters): New.
19806         (*am33_iorsi3, *mn10300_iorsi3): Merge...
19807         (iorsi3): ... here.
19808         (*iorsi3_flags): New.
19809         (*am33_xorsi3, *mn10300_xorsi3): Merge...
19810         (xorsi3): ... here.
19811         (*xorsi3_flags): New.
19812         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
19813         (one_cmplsi2): ... here.
19814         (*one_cmplsi2_flags): New.
19815         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
19816         instead of "dax" in constraints.  Use mn10300_split_cbranch.
19817         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
19818         use matching constraints to eliminate a self-comparison.
19819         (*integer_conditional_branch): Rename from integer_conditional_branch.
19820         Use int_mode_flags to match CC_REG.
19821         (*cbranchsi4_btst, *btstsi): New.
19822         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
19823         mn10300_split_cbranch.
19824         (*am33_cmpsf): Rename from am33_cmpsf.
19825         (*float_conditional_branch): Rename from float_conditional_branch.
19826         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
19827         (zero_extendqisi2): ... here.
19828         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
19829         (zero_extendhisi2): ... here.
19830         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
19831         (extendqisi2): ... here.
19832         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
19833         (extendhisi2): ... here.
19834         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
19835         (ashlsi3): ... here.
19836         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
19837         (lshrsi3): ... here.
19838         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
19839         (ashrsi3): ... here.
19840         (consecutive add peephole): Remove.
19841         * config/mn10300/predicates.md (label_ref_operand): New.
19842         (int_mode_flags): New.
19843         (CCZN_comparison_operator): New.
19844
19845         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
19846         (throughput_42_latency_43): New reservation.
19847         (mulsidi3, umulsidi3): New expanders.
19848         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
19849         the MDR register to allocation; separately allocate the low and
19850         high parts of the DImode result.
19851         (umulsidi3_internal): Similarly.
19852         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
19853         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
19854         (udivsi3, umodsi3): Remove.
19855         (udivmodsi4, divmodsi4): New expanders.
19856         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
19857         (*divmodsi4): Simiarly.
19858         (ext_internal): New.
19859
19860         * config/mn10300/constraints.md ("z"): New constraint.
19861         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
19862         (FIXED_REGISTERS): Don't fix MDR.
19863         (CALL_USED_REGSITERS): Reformat nicely.
19864         (REG_ALLOC_ORDER): Add MDR.
19865         (enum regclass): Add MDR_REGS.
19866         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
19867         (IRA_COVER_CLASSES): Add MDR_REGS.
19868         (REGNO_REG_CLASS): Handle MDR_REG.
19869         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
19870         (mn10300_register_move_cost): Likewise.
19871         * config/mn10300/mn10300.md (MDR_REG): New.
19872         (*movsi_internal): Handle moves to/from MDR_REGS.
19873
19874         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
19875         POST_MODIFY.
19876         (mn10300_secondary_reload): Tidy combination reload classes.
19877         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
19878         addresses for AM33.  Allow symbolic offsets for reg+imm.
19879         (mn10300_regno_in_class_p): New.
19880         (mn10300_legitimize_reload_address): New.
19881         * config/mn10300/mn10300.h (enum reg_class): Remove
19882         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
19883         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
19884         SP_OR_GENERAL_REGS.
19885         (REG_CLASS_NAMES): Update to match.
19886         (REG_CLASS_CONTENTS): Likewise.
19887         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
19888         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
19889         (REGNO_IN_RANGE_P): Remove.
19890         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
19891         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
19892         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
19893         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
19894         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
19895         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
19896         (REGNO_GENERAL_P): New.
19897         (HAVE_POST_MODIFY_DISP): New.
19898         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
19899         (LEGITIMIZE_RELOAD_ADDRESS): New.
19900         * config/mn10300/mn10300-protos.h: Update.
19901
19902         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
19903         DATA_REGS for AM33 stack-pointer destination.
19904         (mn10300_preferred_output_reload_class): Likewise.
19905         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
19906         into a form appropriate for ...
19907         (TARGET_SECONDARY_RELOAD): New.
19908         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
19909         * config/mn10300/mn10300-protos.h: Update.
19910         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
19911         reload_insi; use the "A" constraint for the scratch; handle AM33
19912         moves of sp to non-address registers.
19913
19914         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
19915         (*movqi_internal): ... here.
19916         (*am33_movhi, *mn10300_movhi): Merge into...
19917         (*movhi_internal): ... here.
19918         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
19919         as the source/destination of moves from/to SP.
19920         (movsf): Only allow for AM33-2.
19921         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
19922         any integer constant constraint.  Only allow for AM33-2.  Tidy
19923         all of the alternative outputs.
19924         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
19925         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
19926         for MN103.
19927         (udivsi3, umodsi3): New patterns for MN103 only.
19928
19929 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
19930
19931         * doc/tm.texi.in: Spell out that a lack of register class unions
19932         can lead to ICEs.
19933         * doc/tm.texi: Regenerate.
19934
19935 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
19936
19937         PR rtl-optimization/47337
19938         * dce.c (check_argument_store): New function.
19939         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
19940
19941         PR tree-optimization/47290
19942         * tree-eh.c (infinite_empty_loop_p): New function.
19943         (cleanup_empty_eh): Use it.
19944
19945 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
19946
19947         PR target/46997
19948         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
19949         (a64_expand_widen_sum): Ditto.
19950         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
19951         (vec_extract_evenodd_help): Ditto.
19952         (vec_extract_evenv4hi): Ditto.
19953         (vec_extract_oddv4hi): Ditto.
19954         (vec_extract_evenv2si): Ditto.
19955         (vec_extract_oddv2si): Ditto.
19956         (vec_extract_evenv2sf): Ditto.
19957         (vec_extract_oddv2sf): Ditto.
19958         (vec_pack_trunc_v4hi: Ditto.
19959         (vec_pack_trunc_v2si): Ditto.
19960         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
19961         (vec_interleave_highv8qi): Ditto.
19962         (mix1_r): Ditto.
19963         (vec_extract_oddv8qi): Ditto.
19964         (vec_interleave_lowv4hi): Ditto.
19965         (vec_interleave_highv4hi): Ditto.
19966         (vec_interleave_lowv2si): Ditto.
19967         (vec_interleave_highv2si): Ditto.
19968
19969 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19970
19971         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
19972         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
19973         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
19974         (pa_c_mode_for_suffix): New.
19975         (TARGET_EXPAND_BUILTIN): Define.
19976         (TARGET_C_MODE_FOR_SUFFIX): Define.
19977         (pa_builtins): Define.
19978         (pa_init_builtins): Register __float128 type and init new support
19979         builtins.
19980         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
19981         * config/pa/quadlib.c (_U_Qfcopysign): New.
19982
19983 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
19984
19985         PR middle-end/46894
19986         * explow.c (allocate_dynamic_stack_space): Do not assume more than
19987         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
19988         are defined.
19989
19990 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19991
19992         PR tree-optimization/47179
19993         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
19994         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
19995
19996 2011-01-18  Richard Guenther  <rguenther@suse.de>
19997
19998         PR rtl-optimization/47216
19999         * emit-rtl.c: Include tree-flow.h.
20000         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
20001         of replicating it with different semantics.
20002         * Makefile.in (emit-rtl.o): Adjust.
20003
20004 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20005
20006         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
20007         (cortex_a9_dp): Handle neon types correctly.
20008
20009 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
20010
20011         PR rtl-optimization/47299
20012         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
20013         subtarget.  Use normal multiplication if both operands are constants.
20014         * expmed.c (expand_widening_mult): Don't try to optimize constant
20015         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
20016         before using it.
20017
20018 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20019
20020         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
20021         spacing after 'e.g.', typos, comma, hyphenation.
20022
20023 2011-01-17  Richard Henderson  <rth@redhat.com>
20024
20025         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
20026         (rx_restricted_mem_operand): New.
20027         (rx_shift_operand): Use register_operand.
20028         (rx_source_operand, rx_compare_operand): Likewise.
20029         * config/rx/rx.md (addsi3_flags): New expander.
20030         (adddi3): Rewrite as expander.
20031         (adc_internal, *adc_flags, adddi3_internal): New patterns.
20032         (subsi3_flags): New expander.
20033         (subdi3): Rewrite as expander.
20034         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
20035
20036         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
20037         (rx_init_builtins): Remove sat builtin.
20038         (rx_expand_builtin): Likewise.
20039         * config/rx/rx.md (ssaddsi3): New.
20040         (*sat): Rename from sat.  Represent the CC_REG input.
20041
20042         * config/rx/predicates.md (rshift_operator): New.
20043         * config/rx/rx.c (rx_expand_insv): Remove.
20044         * config/rx/rx-protos.h: Update.
20045         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
20046         operand to the canonical position.
20047         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
20048         (*bitclr, *bitclr_in_memory): Similarly.
20049         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
20050         (insv): Retain the zero_extract in the expansion.
20051
20052         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
20053         (bswaphi2, bitinvert, revw): Likewise.
20054
20055         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
20056         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
20057         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
20058         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
20059         (bitset, bitset_in_memory): Likewise.
20060         (bitinvert, bitinvert_in_memory): Likewise.
20061         (bitclr, bitclr_in_memory): Likewise.
20062         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
20063         (rx_strend, rx_cmpstrn): Likewise.
20064         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
20065         (bitop peep2 patterns): Remove.
20066
20067         * config/rx/rx.c (rx_match_ccmode): New.
20068         * config/rx/rx-protos.h: Update.
20069         * config/rx/rx.md (abssi2): Clobber, don't set flags.
20070         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
20071         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
20072         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
20073         (fix_truncsfsi2, floatsisf2): Likewise.
20074         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
20075         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
20076         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
20077         (*subsi3_flags, *xorsi3_flags): New.
20078
20079         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
20080
20081         * config/rx/rx.c (rx_print_operand): Remove workaround for
20082         unsplit comparison operations.
20083
20084         * config/rx/rx.md (movsicc): Split after reload.
20085         (*movsicc): Merge *movsieq and *movsine via match_operator.
20086         (*stcc): New pattern.
20087
20088         * config/rx/rx.c (rx_float_compare_mode): Remove.
20089         * config/rx/rx.h (rx_float_compare_mode): Remove.
20090         * config/rx/rx.md (cstoresi4): Split after reload.
20091         (*sccc): New pattern.
20092
20093         * config/rx/predicates.md (label_ref_operand): New.
20094         (rx_z_comparison_operator): New.
20095         (rx_zs_comparison_operator): New.
20096         (rx_fp_comparison_operator): New.
20097         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
20098         Validate that the flags are set properly for the comparison.
20099         (rx_gen_cond_branch_template): Remove.
20100         (rx_cc_modes_compatible): Remove.
20101         (mode_from_flags): New.
20102         (flags_from_code): Rename from flags_needed_for_conditional.
20103         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
20104         (rx_select_cc_mode): Likewise.
20105         (rx_split_fp_compare): New.
20106         (rx_split_cbranch): New.
20107         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
20108         (*cbranchsi4): Use match_operator and rx_split_cbranch.
20109         (*cbranchsf4): Similarly.
20110         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
20111         match_operator and rx_split_cbranch.
20112         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
20113         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
20114         (*cmpsi): Rename from cmpsi.
20115         (*tstsi): Rename from tstsi.
20116         (*cmpsf): Rename from cmpsf; use CC_Fmode.
20117         (*conditional_branch): Rename from conditional_branch.
20118         (*reveresed_conditional_branch): Remove.
20119         (b<code>): Remove expander.
20120         * config/rx/rx-protos.h: Update.
20121
20122         * config/rx/rx.c (rx_compare_redundant): Remove.
20123         * config/rx/rx.md (cmpsi): Don't use it.
20124         * config/rx/rx-protos.h: Update.
20125
20126         * config/rx/rx-modes.def (CC_F): New mode.
20127         * config/rx/rx.c (rx_select_cc_mode): New.
20128         * config/rx/rx.h (SELECT_CC_MODE): Use it.
20129         * config/rx/rx-protos.h: Update.
20130
20131 2011-01-17  Richard Henderson  <rth@redhat.com>
20132
20133         * except.c (dump_eh_tree): Fix stray ; after for statement.
20134
20135 2011-01-17  Richard Guenther  <rguenther@suse.de>
20136
20137         PR tree-optimization/47313
20138         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
20139         handling before copying the body.  Properly deal with
20140         by-reference result in SSA form.
20141
20142 2011-01-17  Ian Lance Taylor  <iant@google.com>
20143
20144         PR target/47219
20145         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
20146         (struct_value_alias_set): Don't define.
20147         (sparc_option_override): Don't set sparc_sr_alias_set and
20148         struct_value_alias_set.
20149         (save_or_restore_regs): Use gen_frame_mem rather than calling
20150         set_mem_alias_set.
20151         (sparc_struct_value_rtx): Likewise.
20152
20153 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
20154
20155         PR target/47318
20156         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
20157         (_mm_maskstore_pd): Likewise.
20158         (_mm_maskload_ps): Likewise.
20159         (_mm_maskstore_ps): Likewise.
20160         (_mm256_maskload_pd): Change mask to __m256i.
20161         (_mm256_maskstore_pd): Likewise.
20162         (_mm256_maskload_ps): Likewise.
20163         (_mm256_maskstore_ps): Likewise.
20164
20165         * config/i386/i386-builtin-types.def: Updated.
20166         (ix86_expand_special_args_builtin): Likewise.
20167
20168         * config/i386/i386.c (bdesc_special_args): Update
20169         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
20170         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
20171         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
20172         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
20173
20174         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
20175         Use <avxpermvecmode> on mask register.
20176         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
20177
20178 2011-01-17  Olivier Hainque  <hainque@adacore.com>
20179             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
20180             Eric Botcazou  <ebotcazou@adacore.com>
20181
20182         PR target/46655
20183         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
20184         if <= USHRT_MAX in 32-bit mode.
20185
20186 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20187
20188         * doc/install.texi (Configuration, Specific): Wrap long
20189         lines in examples.  Allow line wrapping in long options
20190         and URLs where beneficial for PDF output.
20191
20192 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
20193
20194         * config/mips/mips.c (mips_classify_symbol): Don't return
20195         SYMBOL_PC_RELATIVE for nonlocal labels.
20196
20197 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
20198
20199         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
20200
20201 2011-01-15  Jan Hubicka  <jh@suse.cz>
20202
20203         PR tree-optimization/47276
20204         * ipa.c (function_and_variable_visibility): Do not try to mark alias
20205         declarations as needed.
20206
20207 2011-01-15  Martin Jambor  <mjambor@suse.cz>
20208
20209         * common.opt (fdevirtualize): New flag.
20210         * doc/invoke.texi (Option Summary): Document it.
20211         * opts.c (default_options_table): Add devirtualize flag.
20212         * ipa-prop.c (detect_type_change): Return immediately if
20213         devirtualize flag is not set.
20214         (detect_type_change_ssa): Likewise.
20215         (compute_known_type_jump_func): Likewise.
20216         (ipa_analyze_virtual_call_uses): Likewise.
20217
20218 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20219
20220         PR tree-optimization/45934
20221         PR tree-optimization/46302
20222         * ipa-prop.c (type_change_info): New type.
20223         (stmt_may_be_vtbl_ptr_store): New function.
20224         (check_stmt_for_type_change): Likewise.
20225         (detect_type_change): Likewise.
20226         (detect_type_change_ssa): Likewise.
20227         (compute_complex_assign_jump_func): Check for dynamic type change.
20228         (compute_complex_ancestor_jump_func): Likewise.
20229         (compute_known_type_jump_func): Likewise.
20230         (compute_scalar_jump_functions): Likewise.
20231         (ipa_analyze_virtual_call_uses): Likewise.
20232         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
20233
20234 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20235
20236         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
20237         * config/i386/i386.opt (msse5): New Alias.
20238
20239 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20240
20241         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
20242         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20243         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20244         * config/sparc/sparc.h (CC1_SPEC): Likewise.
20245
20246 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20247
20248         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
20249         -mcpu options.
20250         * config/sparc/linux64.h (CC1_SPEC): Likewise.
20251         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
20252         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
20253         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
20254         Likewise.
20255         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
20256
20257 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20258
20259         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
20260
20261 2011-01-14  Mike Stump  <mikestump@comcast.net>
20262
20263         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
20264         * config/fr30/fr30.md: Likweise
20265         (movsi_push): Likewise.
20266         (movsi_pop): Likewise.
20267         (enter_func): Likewise.
20268         * config/moxie/moxie.md (movsi_push): Likewise.
20269         (movsi_pop): Likewise.
20270
20271 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20272
20273         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
20274         %{no_archive} %{exact_version}.
20275         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
20276         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
20277         %{no_archive} %{exact_version}.
20278         * config/mips/openbsd.h (LINK_SPEC): Likewise.
20279         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
20280         * config/mips/vxworks.h: Likewise.
20281
20282 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20283
20284         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
20285
20286 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20287
20288         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
20289         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
20290
20291 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20292
20293         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
20294         -nodefaultlib.
20295
20296 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20297
20298         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
20299         for mcpu not cpu.
20300         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
20301         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
20302         not cpu.
20303         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
20304         Don't handle -shlib.
20305
20306 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20307
20308         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
20309         (CC1_SPEC): Don't handle -profile.
20310
20311 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20312
20313         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
20314         * config/mips/mips.h (CC1_SPEC): Likewise.
20315
20316 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20317
20318         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
20319         * config/mips/mips.h (CC1_SPEC): Likewise.
20320
20321 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20322
20323         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
20324         * config/m32r/linux.h (LINK_SPEC): Likewise.
20325         * config/mips/linux.h (LINK_SPEC): Likewise.
20326         * config/mips/linux64.h (LINK_SPEC): Likewise.
20327         * config/sparc/linux.h (LINK_SPEC): Likewise.
20328         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
20329         LINK_SPEC): Likewise.
20330         * config/xtensa/linux.h (LINK_SPEC): Likewise.
20331
20332 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20333
20334         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
20335         %{version:-v}.
20336         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
20337
20338 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20339
20340         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
20341         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20342
20343 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
20344
20345         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
20346
20347 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20348
20349         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
20350         supports -Bstatic/-Bdynamic.
20351         * configure: Regenerate.
20352
20353 2011-01-14  Jan Hubicka  <jh@suse.cz>
20354             Jack Howarth  <howarth@bromo.med.uc.edu>
20355
20356         PR target/46037
20357         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
20358         when checking debug_info_level. Test write_symbols instead of
20359         debug_hooks->var_location when setting flag_var_tracking_uninit.
20360
20361 2011-01-14  Richard Guenther  <rguenther@suse.de>
20362
20363         PR tree-optimization/47179
20364         * target.def (ref_may_alias_errno): New target hook.
20365         * targhooks.h (default_ref_may_alias_errno): Declare.
20366         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
20367         (default_ref_may_alias_errno): New function.
20368         * target.h (struct ao_ref_s): Declare.
20369         * tree-ssa-alias.c: Include target.h.
20370         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
20371         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
20372         (targhooks.o): Likewise.
20373         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
20374         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
20375
20376 2011-01-14  Richard Guenther  <rguenther@suse.de>
20377
20378         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
20379
20380 2011-01-14  Richard Guenther  <rguenther@suse.de>
20381
20382         PR tree-optimization/47280
20383         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
20384         return CFG changes.
20385         (tree_ssa_forward_propagate_single_use_vars): Deal with
20386         CFG changes from associate_plusminus.
20387
20388 2011-01-14  Richard Guenther  <rguenther@suse.de>
20389
20390         PR middle-end/47281
20391         Revert
20392         2011-01-11  Richard Guenther  <rguenther@suse.de>
20393
20394         PR tree-optimization/46076
20395         * tree-ssa.c (useless_type_conversion_p): Conversions from
20396         unprototyped to empty argument list function types are useless.
20397
20398 2011-01-14  Richard Guenther  <rguenther@suse.de>
20399
20400         PR tree-optimization/47286
20401         * tree-ssa-structalias.c (new_var_info): Register variables are global.
20402
20403 2011-01-14  Martin Jambor  <mjambor@suse.cz>
20404
20405         PR middle-end/46823
20406         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
20407
20408 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
20409
20410         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
20411         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
20412         * config/xtensa/xtensa.c (xtensa_libcall_value,
20413         xtensa_function_value_regno_p): New functions.
20414         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20415
20416 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
20417
20418         PR c++/47213
20419         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
20420         PE specific hook.
20421         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
20422         New function prototype.
20423         * config/i386/winnt.c (i386_pe_assemble_visibility):
20424         Warn only if attribute was specified by user.
20425
20426 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
20427
20428         PR target/47251
20429         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
20430         floating point.
20431         (floatunsdidf2_fcfidu): Ditto.
20432
20433 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20434
20435         * config/s390/s390.c (print_operand_address): Replace 'error' with
20436         'output_operand_lossage'.
20437         (print_operand): Likewise.
20438
20439 2011-01-13  Jeff Law  <law@redhat.com>
20440
20441         PR rtl-optimization/39077
20442         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
20443         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
20444         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
20445         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
20446         * gcse.c (prune_insertions_deletions): New function.
20447         (compute_pre_data): Use it.
20448
20449 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
20450
20451         PR debug/PR46973
20452         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
20453         static function.
20454         (prune_unused_types_mark): Use it.
20455
20456 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
20457
20458         PR rtl-optimization/45352
20459         * sel-sched.c: Update copyright years.
20460         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
20461         in the advancing loop when we have issued issue_rate insns.
20462
20463 2011-01-12  Richard Henderson  <rth@redhat.com>
20464
20465         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
20466         (TARGET_MD_ASM_CLOBBERS): New.
20467
20468         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
20469         (TARGET_DELEGITIMIZE_ADDRESS): New.
20470
20471         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
20472         (clzsi2, *bsch): New patterns.
20473
20474         * config/mn10300/mn10300.md (INT): New mode iterator.
20475         (*mov<INT>_clr): New pattern, and peep2 to generate it.
20476
20477         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
20478         flag_split_wide_types.
20479
20480         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
20481         (mn10300_trampoline_init): Rewrite without a template, an immediate
20482         load and a direct branch.
20483         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
20484
20485 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
20486
20487         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20488         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
20489         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
20490         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20491
20492 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
20493
20494         PR debug/47209
20495         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
20496         of type.
20497
20498 2011-01-12  Jan Hubicka  <jh@suse.cz>
20499
20500         PR driver/47244
20501         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
20502         (PLUGIN_COND_CLOSE): New macro.
20503         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
20504
20505 2011-01-12  Richard Guenther  <rguenther@suse.de>
20506
20507         PR lto/47259
20508         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
20509         register variables in a MEM_REF.
20510
20511 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
20512
20513         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
20514         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
20515         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
20516         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
20517         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
20518         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
20519         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
20520         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
20521         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
20522         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
20523         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
20524         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
20525         * config/gnu-user.h: New.  Copied from linux.h.
20526         (LINUX_TARGET_STARTFILE_SPEC): Rename to
20527         GNU_USER_TARGET_STARTFILE_SPEC.
20528         (LINUX_TARGET_ENDFILE_SPEC): Rename to
20529         GNU_USER_TARGET_ENDFILE_SPEC.
20530         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
20531         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
20532         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
20533         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
20534         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
20535         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
20536         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
20537         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
20538         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
20539         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
20540         * config/arm/linux-eabi.h (CC1_SPEC): Use
20541         GNU_USER_TARGET_CC1_SPEC.
20542         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
20543         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
20544         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
20545         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
20546         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
20547         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
20548         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
20549         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
20550
20551 2011-01-12  Richard Guenther  <rguenther@suse.de>
20552
20553         PR other/46946
20554         * doc/invoke.texi (ffast-math): Document it is turned on
20555         with -Ofast.
20556
20557 2011-01-12  Jan Hubicka  <jh@suse.cz>
20558
20559         PR tree-optimization/47233
20560         * opts.c (common_handle_option): Disable ipa-reference with profile
20561         feedback.
20562
20563 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20564
20565         * c-parser.c (c_parser_objc_at_property_declaration): Improved
20566         error message.
20567
20568 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
20569
20570         * c-parser.c (c_lex_one_token): Updated and reindented some
20571         comments.  No changes in code.
20572
20573 2011-01-11  Ian Lance Taylor  <iant@google.com>
20574
20575         * godump.c (go_output_var): Don't output the variable if there is
20576         already a type with the same name.
20577
20578 2011-01-11  Ian Lance Taylor  <iant@google.com>
20579
20580         * godump.c (go_format_type): Don't generate float80.
20581
20582 2011-01-11  Richard Henderson  <rth@redhat.com>
20583
20584         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
20585         declaration.  Rewrite for both speed and size.
20586         (mn10300_address_cost_1): Remove.
20587         (mn10300_register_move_cost): New.
20588         (mn10300_memory_move_cost): New.
20589         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
20590         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
20591         extensions, shifts, BSWAP, CLZ.
20592         (mn10300_wide_const_load_uses_clr): Remove.
20593         (TARGET_REGISTER_MOVE_COST): New.
20594         (TARGET_MEMORY_MOVE_COST): New.
20595         * config/mn10300/mn10300-protos.h: Update.
20596         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
20597
20598         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
20599         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
20600         * config/mn10300/mn10300-protos.h: Update.
20601         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
20602         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
20603         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
20604         (*test_int_bitfield, *test_byte_bitfield): Remove.
20605         (*bit_test, *subreg_bit_test): Remove.
20606         * config/mn10300/predicates.md (const_8bit_operand): Remove.
20607
20608         * config/mn10300/constraints.md ("c"): Rename from "A".
20609         ("A", "D"): New constraint letters.
20610         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
20611         (fmssf4, fnmasf4, fnmssf4): Likewise.
20612
20613         * config/mn10300/mn10300.md (isa): New attribute.
20614         (enabled): New attribute.
20615
20616         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
20617         (abssf2, negsf2): Define only for hardware fp.
20618         (sqrtsf2): Reformat.
20619         (addsf3, subsf3, mulsf3): Merge expander and insn.
20620
20621         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
20622         (DEBUGGER_AUTO_OFFSET): Remove.
20623         (DEBUGGER_ARG_OFFSET): Remove.
20624
20625         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
20626         Emit register stores with the same offsets as the hardware.
20627         (mn10300_store_multiple_operation): Don't check that the register
20628         save offsets are monotonic.
20629         * config/mn10300/mn10300-protos.h: Update.
20630
20631         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
20632
20633         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
20634         in terms of the value on the stack, not the MDR register.
20635
20636 2011-01-11  Jan Hubicka  <jh@suse.cz>
20637
20638         PR lto/45721
20639         PR lto/45375
20640         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
20641         (symbol_alias_set_destroy, symbol_alias_set_contains,
20642         propagate_aliases_backward): Declare.
20643         * lto-streamer-out.c (struct sets): New sturcture.
20644         (trivally_defined_alias): New function.
20645         (output_alias_pair_p): Rewrite.
20646         (output_unreferenced_globals): Fix output of alias pairs.
20647         (produce_symtab): Likewise.
20648         * ipa.c (function_and_variable_visibility): Set weak alias destination
20649         as needed in lto.
20650         * varasm.c (symbol_alias_set_t): Remove.
20651         (symbol_alias_set_destroy): Export.
20652         (propagate_aliases_forward, propagate_aliases_backward): New functions
20653         based on ...
20654         (compute_visible_aliases): ... this one; remove.
20655         (trivially_visible_alias): New
20656         (trivially_defined_alias): New.
20657         (remove_unreachable_alias_pairs): Rewrite.
20658         (finish_aliases_1): Reorganize code checking if alias is defined.
20659         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
20660         in LTO mode.
20661
20662 2011-01-11  Richard Guenther  <rguenther@suse.de>
20663
20664         PR tree-optimization/46076
20665         * tree-ssa.c (useless_type_conversion_p): Conversions from
20666         unprototyped to empty argument list function types are useless.
20667
20668 2011-01-11  Richard Guenther  <rguenther@suse.de>
20669
20670         PR middle-end/45235
20671         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
20672         volatile MEMs as MEM_READONLY_P.
20673
20674 2011-01-11  Richard Guenther  <rguenther@suse.de>
20675
20676         PR tree-optimization/47239
20677         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
20678
20679 2011-01-11  Jeff Law  <law@redhat.com>
20680
20681         PR tree-optimization/47086
20682         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
20683         IVs from statements that might throw.
20684
20685 2011-01-10  Jan Hubicka  <jh@suse.cz>
20686
20687         PR lto/45375
20688         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
20689
20690 2011-01-10  Jan Hubicka  <jh@suse.cz>
20691
20692         PR lto/45375
20693         * profile.c (read_profile_edge_counts): Ignore profile inconistency
20694         when correcting profile.
20695
20696 2011-01-10  Jan Hubicka  <jh@suse.cz>
20697
20698         PR lto/46083
20699         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
20700         DECL_FINI_PRIORITY.
20701         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
20702         Restore DECL_FINI_PRIORITY.
20703
20704 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20705
20706         * doc/gimple.texi: Fix quoting of multi-word return values in
20707         @deftypefn statements.  Ensure presence of return value.  Wrap
20708         overlong @deftypefn lines.
20709         (is_gimple_operand, is_gimple_min_invariant_address): Remove
20710         descriptions of removed functions.
20711         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
20712         of multi-word return value in @deftypefn statement.
20713
20714 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20715
20716         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
20717         (Conditional Expressions, Logical Operators)
20718         (Statement and operand traversals): Do not indent smallexample
20719         code.  Fix duplicate function argument in example.
20720
20721 2011-01-10  Jeff Law  <law@redhat.com>
20722
20723         PR tree-optimization/47141
20724         * ipa-split.c (split_function): Handle case where we are
20725         returning a value and the return block has a virtual operand phi.
20726
20727 2011-01-10  Jan Hubicka  <jh@suse.cz>
20728
20729         PR tree-optimization/47234
20730         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
20731         (pass_feedback_split_functions): Declare.
20732         * passes.c (init_optimization_passes): Add ipa-split as subpass of
20733         tree-profile.
20734         * ipa-split.c (gate_split_functions): Update comments; disable
20735         split-functions for profile_arc_flag and branch_probabilities.
20736         (gate_feedback_split_functions): New function.
20737         (execute_feedback_split_functions): New function.
20738         (pass_feedback_split_functions): New global var.
20739
20740 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
20741
20742         PR lto/46760
20743         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
20744         calling gimple_call_set_cannot_inline.
20745
20746 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
20747
20748         * config/darwin-sections.def: Remove unused section.
20749
20750 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
20751
20752         PR c++/47218
20753         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
20754
20755 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
20756
20757         PR objc/47232
20758         * c-parser.c (c_parser_declaration_or_fndef): Improved
20759         error message.
20760
20761 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
20762
20763         * config/i386/winnt.c (i386_pe_start_function): Make sure
20764         to switch back to function's section.
20765
20766 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
20767
20768         PR gcc/46902
20769         PR testsuite/46912
20770         * plugin.c: Move include of dlfcn.h from here...
20771         * system.h: ... to here.
20772
20773 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
20774
20775         * doc/cpp.texi (C++ Named Operators): Fix markup for header
20776         file name.
20777         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
20778         two extra empty pages in PDF output.
20779
20780 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
20781
20782         PR objc/47078
20783         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
20784         for error recovery purposes behave as if it was not specified so
20785         that the default type is usd.
20786
20787 2011-01-07  Jan Hubicka  <jh@suse.cz>
20788
20789         PR tree-optmization/46469
20790         * ipa.c (function_and_variable_visibility): Clear needed flags on
20791         nodes with external decls; handle weakrefs merging correctly.
20792
20793 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
20794
20795         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
20796         not false.
20797
20798 2011-01-07  Jan Hubicka  <jh@suse.cz>
20799
20800         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
20801         and no longer claim that gold is required for linker plugin.
20802         * configure: Regenerate.
20803         * gcc.c (PLUGIN_COND): New macro.
20804         (LINK_COMMAND_SPEC): Use it.
20805         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
20806         * config.in (HAVE_LTO_PLUGIN): New.
20807         * configure.ac (--with-lto-plugin): New parameter; autodetect
20808         HAVE_LTO_PLUGIN.
20809
20810 2011-01-07  Jan Hubicka  <jh@suse.cz>
20811
20812         PR tree-optimization/46367
20813         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
20814         when we can update original.
20815         (cgraph_mark_inline_edge): Sanity check.
20816         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
20817
20818 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20819
20820         * config/spu/spu.h (ASM_COMMENT_START): Define.
20821
20822 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
20823
20824         PR driver/42445
20825         * gcc.c (%>S): New.
20826         (SWITCH_KEEP_FOR_GCC): Likewise.
20827         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
20828         (do_spec_1): Handle "%>".
20829
20830         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
20831
20832 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
20833
20834         PR target/47201
20835         * config/i386/i386.c (ix86_delegitimize_address): If
20836         simplify_gen_subreg fails, return orig_x.
20837
20838         PR bootstrap/47187
20839         * value-prof.c (gimple_stringop_fixed_value): Handle
20840         lhs of the call properly.
20841
20842 2011-01-07  Jan Hubicka  <jh@suse.cz>
20843
20844         PR lto/45375
20845         * lto-opt.c (lto_reissue_options): Set flag_shlib.
20846
20847 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
20848
20849         * target.def (function_switched_text_sections): New hook.
20850         * doc/tm.texi: Regenerated.
20851         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
20852         * final.c (default_function_switched_text_sections): New.
20853         (final_scan_insn): Call function_switched_text_sections when a
20854         mid-function section change occurs.
20855         * output.h (default_function_switched_text_sections): Declare.
20856         * config/darwin-protos.h (darwin_function_switched_text_sections):
20857         Likewise.
20858         * config/darwin.c (darwin_function_switched_text_sections): New.
20859         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
20860
20861 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
20862
20863         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
20864         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
20865         the secondary code fragment when outputting for DWARF == 2.
20866
20867 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
20868
20869         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20870         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
20871         Remove.
20872         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
20873         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20874
20875 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
20876
20877         PR debug/46704
20878         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
20879         when it is not empty.
20880
20881 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
20882
20883         Bobcat Enablement
20884         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
20885         (case ${target}): Add btver1.
20886         * config/i386/driver-i386.c (host_detect_local_cpu): Let
20887         -march=native recognize btver1 processors.
20888         * config/i386/i386-c.c (ix86_target_macros_internal): Add
20889         btver1 def_and_undef
20890         * config/i386/i386.c (struct processor_costs btver1_cost): New
20891         btver1 cost table.
20892         (m_BTVER1): New definition.
20893         (m_AMD_MULTIPLE): Includes m_BTVER1.
20894         (initial_ix86_tune_features): Add btver1 tune.
20895         (processor_target_table): Add btver1 entry.
20896         (static const char *const cpu_names): Add btver1 entry.
20897         (software_prefetching_beneficial_p): Add btver1.
20898         (ix86_option_override_internal): Add btver1 instruction sets.
20899         (ix86_issue_rate): Add btver1.
20900         (ix86_adjust_cost): Add btver1.
20901         * config/i386/i386.h (TARGET_BTVER1): New definition.
20902         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
20903         (enum processor_type): Add PROCESSOR_BTVER1.
20904         * config/i386/i386.md (define_attr "cpu"): Add btver1.
20905
20906 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20907
20908         PR target/43309
20909         * config/i386/i386.c (legitimize_tls_address)
20910         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
20911         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
20912         (tls_initial_exec_64_sun): New pattern.
20913
20914 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
20915
20916         * doc/invoke.texi (Overall Options): Improve wording and markup
20917         of the description of -wrapper.
20918
20919 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
20920
20921         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
20922         rdynamic, threads): New Driver options.
20923
20924 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20925
20926         PR target/38118
20927         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
20928         if coming from .tdata.
20929         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
20930
20931 2011-01-06  Jan Hubicka  <jh@suse.cz>
20932
20933         PR lto/47188
20934         * collect2.c (main): Do not enable LTOmode when plugin is active.
20935
20936 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20937
20938         PR other/45915
20939         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
20940         --version output if supported.
20941         * configure: Regenerate.
20942
20943 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
20944
20945         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
20946         Driver options.
20947
20948 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
20949
20950         PR c/47150
20951         * c-convert.c (convert): When converting a complex expression
20952         other than COMPLEX_EXPR to a different complex type, ensure
20953         c_save_expr is called instead of save_expr, unless in_late_binary_op.
20954         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
20955         when converting COMPLEX_TYPE.
20956
20957 2011-01-06  Ira Rosen  <irar@il.ibm.com>
20958
20959         PR tree-optimization/47139
20960         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
20961         only the last reduction value is used outside the loop.  Update
20962         documentation.
20963
20964 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
20965
20966         * config/rtems.opt: New.
20967         * config.gcc (*-*-rtems*): Use rtems.opt.
20968
20969 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
20970
20971         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
20972         processors do not support 3DNow instructions.
20973
20974 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20975
20976         * config/spu/spu.c (spu_option_override): Set parameter
20977         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
20978
20979 2011-01-05  Jan Hubicka  <jh@suse.cz>
20980
20981         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
20982         at the command line.
20983
20984 2011-01-05  Martin Jambor  <mjambor@suse.cz>
20985
20986         PR lto/47162
20987         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
20988         deltas on streamed outgoing edges.
20989         (output_node_opt_summary): Output info for outgoing edges only when
20990         the node is in new parameter set.
20991         (output_cgraph_opt_summary): New parameter set, passed to the two
20992         aforementioned functions.  Update its forward declaration and its
20993         callee too.
20994
20995 2011-01-05  Tom Tromey  <tromey@redhat.com>
20996
20997         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
20998         operator to c_finish_omp_atomic.
20999         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
21000         (build_unary_op): Update.
21001         (build_modify_expr): Update.
21002         (build_asm_expr): Update.
21003
21004 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21005
21006         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
21007         newly inserted insns.
21008         (pad_bb): Likewise.
21009         (spu_emit_branch_hint): Likewise.
21010         (insert_hbrp_for_ilb_runout): Likewise.
21011         (spu_machine_dependent_reorg): Call df_finish_pass after
21012         schedule_insns returns.
21013
21014 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21015
21016         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
21017
21018 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
21019
21020         PR tree-optimization/47005
21021         * tree-sra.c (struct access): Add 'non_addressable' bit.
21022         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
21023         (decide_one_param_reduction): Return 0 if the parameter is passed by
21024         reference and one of the accesses in the group is non_addressable.
21025
21026 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21027
21028         PR tree-optimization/47056
21029         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
21030         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
21031         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
21032
21033 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
21034
21035         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
21036         initializer.  Skip view conversions from aggregate types.
21037
21038 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
21039
21040         PR bootstrap/47055
21041         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
21042
21043 2011-01-04  Philipp Thomas  <pth@suse.de>
21044
21045         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
21046         obvious typo.
21047
21048 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21049
21050         * function.c (thread_prologue_and_epilogue_insns): Do not crash
21051         on empty epilogue sequences.
21052
21053 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
21054
21055         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
21056         non-static): New Driver options.
21057
21058 2011-01-04  Jie Zhang  <jie@codesourcery.com>
21059
21060         PR driver/47137
21061         * gcc.c (default_compilers[]): Set combinable field to 0
21062         for all assembly languages.
21063
21064 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
21065
21066         * config/mips/loongson3a.md: New file.
21067         * config/mips/mips.md: Include loongson3a.md.
21068         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
21069         TUNE_LOONGSON_3A.
21070
21071 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
21072
21073         PR middle-end/47017
21074         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
21075         instead of convert_memory_address_addr_space on the base expression.
21076
21077 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21078
21079         * config/spu/spu.c (spu_option_override): Update error text
21080         for bad -march= / -mtune= values.
21081
21082 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21083
21084         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
21085         if branch-hint optimization will be performed.
21086
21087 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21088
21089         PR tree-optimization/47148
21090         * ipa-split.c (split_function): Convert arguments to
21091         DECL_ARG_TYPE if possible.
21092
21093         PR tree-optimization/47155
21094         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
21095         when computing uns.
21096
21097         PR rtl-optimization/47157
21098         * combine.c (try_combine): If undobuf.other_insn becomes
21099         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
21100         and set *new_direct_jump_p too.
21101
21102 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
21103
21104         PR tree-optimization/47021
21105         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
21106
21107 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
21108
21109         * gcc.c (process_command): Update copyright notice dates.
21110         * gcov.c (print_version): Likewise.
21111         * gcov-dump.c (print_version): Likewise.
21112         * mips-tfile.c (main): Likewise.
21113         * mips-tdump.c (main): Likewise.
21114
21115 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21116
21117         PR tree-optimization/46801
21118         * tree-sra.c (type_internals_preclude_sra_p): Check whether
21119         aggregate fields start at byte boundary instead of the bit-field flag.
21120
21121 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
21122
21123         PR driver/47137
21124         * gcc.c (main): Revert revision 168407.
21125
21126 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21127
21128         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
21129
21130 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21131
21132         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
21133         vector optab to expand vector/scalar shift, update gimple to vector.
21134
21135 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21136
21137         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
21138         a thunk.
21139
21140 2011-01-03  Martin Jambor  <mjambor@suse.cz>
21141
21142         PR tree-optimization/46984
21143         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
21144         HOST_WIDE_INT.
21145         (cgraph_create_indirect_edge): Fixed line length.
21146         (cgraph_indirect_call_info): Declare.
21147         (cgraph_make_edge_direct) Update declaration.
21148         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
21149         (cgraph_create_indirect_edge): Use it.
21150         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
21151         callees.
21152         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
21153         the new thunk_delta representation.
21154         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
21155         HOST_WIDE_INT.
21156         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
21157         (ipa_read_indirect_edge_info): Likewise.
21158         * lto-cgraph.c (output_edge_opt_summary): New function.
21159         (output_node_opt_summary): Call it on all outgoing edges.
21160         (input_edge_opt_summary): New function.
21161         (input_node_opt_summary): Call it on all outgoing edges.
21162
21163 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
21164
21165         PR driver/47137
21166         * gcc.c (main): Don't check have_o when settting combine_inputs.
21167
21168 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
21169
21170         * regrename.c: Add general comment describing the pass.
21171         (struct du_head): Remove 'length' field.
21172         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
21173         (regrename_optimize): Do not sort chains.  Rework comments, add others.
21174         Force renaming to the preferred class (if any) in the first pass and do
21175         not consider registers that belong to it in the second pass.
21176         (create_new_chain): Do not set 'length' field.
21177         (scan_rtx_reg): Likewise.
21178
21179 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
21180
21181         PR tree-optimization/47140
21182         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
21183         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
21184         to bit_value_binop.
21185
21186         PR rtl-optimization/47028
21187         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
21188         parm_birth_insn instead of at the beginning of first bb.
21189
21190 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
21191
21192         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
21193         Remove the word "see" before "@pxref".
21194         * doc/rtl.texi: Remove the word "see" before "@pxref".
21195
21196 2011-01-01  Jan Hubicka  <jh@suse.cz>
21197
21198         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
21199         memory.
21200
21201 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
21202
21203         PR target/38662
21204         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
21205
21206 \f
21207 Copyright (C) 2011 Free Software Foundation, Inc.
21208
21209 Copying and distribution of this file, with or without modification,
21210 are permitted in any medium without royalty provided the copyright
21211 notice and this notice are preserved.