OSDN Git Service

292e421d15718260dad01e897c46fd80abaed296
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-03-31  Richard Henderson  <rth@redhat.com>
2
3         * dwarf2out.c (dw_separate_line_info_ref): Remove.
4         (dw_separate_line_info_entry): Remove.
5         (enum dw_line_info_opcode): New.
6         (dw_line_info_entry): Use it.
7         (dw_line_info_table, dw_line_info_table_p): New.
8         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
9         (line_info_table, line_info_label_num): Remove.
10         (line_info_table_in_use): Remove.
11         (separate_line_info_table): Remove.
12         (separate_line_info_table_allocated): Remove.
13         (separate_line_info_table_in_use): Remove.
14         (LINE_INFO_TABLE_INCREMENT): Remove.
15         (line_info_label_num): New.
16         (cur_line_info_table): New.
17         (text_section_line_info, cold_text_section_line_info): New.
18         (separate_line_info): New.
19         (SEPARATE_LINE_CODE_LABEL): Remove.
20         (print_dwarf_line_table): Remove.
21         (debug_dwarf): Don't dump it.
22         (output_one_line_info_table): New.
23         (output_line_info): Use it.
24         (new_line_info_table): New.
25         (set_cur_line_info_table): New.
26         (dwarf2out_switch_text_section): Use it.
27         (dwarf2out_begin_function): Likewise.
28         (push_dw_line_info_entry): New.
29         (dwarf2out_source_line): Rewrite for new line info tables.
30         (dwarf2out_init): Remove dead initailizations.
31
32 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
33
34         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
35         various flags.
36         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
37         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
38         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
39         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
40         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
41         * opt-functions.awk (flag_init, switch_bit_fields): New.
42         (switch_flags): Don't handle flags moved to bit-fields.  Don't
43         generate CL_MISSING_OK or CL_SAVE.
44         * optc-gen.awk: Update to generate bit-field output as well as
45         flags field.
46         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
47         bit-field instead of CL_REJECT_DRIVER flag.
48         * opts-common.c (generate_canonical_option,
49         decode_cmdline_option): Use bit-fields instead of CL_* flags.
50         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
51         instead of CL_REJECT_NEGATIVE flag.
52         * toplev.c (print_switch_values): Use cl_report bit-field instead
53         of CL_REPORT flag.
54
55 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
56
57         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
58         a zero minimum index only if it is redundant.
59
60 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
61
62         PR rtl-optimization/48381
63         * ira-color.c (assign_hard_reg): Use hard reg set intersection
64         instead of ira_class_hard_reg_index for calculating conflicting
65         hard registers.
66
67 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
68
69         * cprop.c: Clean up hash table building.
70         (reg_avail_info): Remove.
71         (oprs_available_p): Remove.
72         (record_last_reg_set_info): Remove.
73         (record_last_set_info): Remove.
74         (reg_available_p): New function.
75         (gcse_constant_p): Do not treat unfolded conditions as constants.
76         (make_set_regs_unavailable): New function.
77         (hash_scan_set): Simplify with new reg_available_p.
78         (compute_hash_table_work): Traverse insns stream only once.
79         Do not compute reg_avail_info. Traverse insns in reverse order.
80         Record implicit sets after recording explicit sets from the block.
81
82 2011-03-31  Michael Matz  <matz@suse.de>
83
84         * builtins.c (build_va_arg_indirect_ref): Use
85         build_simple_mem_ref_loc.
86
87 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
88
89         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
90         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
91         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
92         (h8300_mode_dependent_address_p): New function.
93         (h8300_get_index): Make static.
94
95 2011-03-31  Jeff Law  <law@redhat.com>
96
97         * reload1.c (elimination_effects): Fix typo in recent change.
98
99         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid 
100         typo potentially leading to null pointer dereference.
101
102         * caller-save.c (new_saved_hard_reg): Eliminate return value.
103         (setup_save_areas): Corresponding changes to avoid useless
104         assignments.
105
106         * jump.c (reversed_comparison_code_parts): Avoid successive return
107         statements when REVERSE_CONDITION is defined.
108
109         * expr.c (expand_assignment): Avoid useless assignments.
110         (expand_expr_real_1): Likewise.
111         (expand_expr_real_2): Avoid useless statements.
112
113         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
114
115         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
116
117         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
118         statements.
119
120         * stmt.c (expand_expr_stmt): Avoid useless assignment.
121
122 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
123
124         PR target/47109
125         * doc/tm.texi.in (TARGET_VERSION): Remove.
126         * doc/tm.texi: Regenerate.
127         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
128         * collect2.c (main): Don't use TARGET_VERSION.
129         * mips-tdump.c (main): Don't use TARGET_VERSION.
130         * mips-tfile.c (main): Don't use TARGET_VERSION.
131         * config.gcc (powerpc-wrs-vxworksae): Don't use
132         rs6000/vxworksae.h.
133         * config/rs6000/vxworksae.h: Remove.
134         * config/alpha/alpha.h (TARGET_VERSION): Remove.
135         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
136         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
137         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
138         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
139         * config/arm/arm.h (TARGET_VERSION): Remove.
140         * config/arm/coff.h (TARGET_VERSION): Remove.
141         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
142         * config/arm/elf.h (TARGET_VERSION): Remove.
143         * config/arm/freebsd.h (TARGET_VERSION): Remove.
144         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
145         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
146         * config/arm/pe.h (TARGET_VERSION): Remove.
147         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
148         * config/arm/semi.h (TARGET_VERSION): Remove.
149         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
150         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
151         * config/arm/vxworks.h (TARGET_VERSION): Remove.
152         * config/avr/avr.h (TARGET_VERSION): Remove.
153         * config/bfin/bfin.h (TARGET_VERSION): Remove.
154         * config/fr30/fr30.h (TARGET_VERSION): Remove.
155         * config/frv/frv.h (TARGET_VERSION): Remove.
156         * config/h8300/h8300.h (TARGET_VERSION): Remove.
157         * config/i386/cygwin.h (TARGET_VERSION): Remove.
158         * config/i386/darwin.h (TARGET_VERSION): Remove.
159         * config/i386/darwin64.h (TARGET_VERSION): Remove.
160         * config/i386/djgpp.h (TARGET_VERSION): Remove.
161         * config/i386/freebsd.h (TARGET_VERSION): Remove.
162         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
163         * config/i386/gnu.h (TARGET_VERSION): Remove.
164         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
165         * config/i386/i386elf.h (TARGET_VERSION): Remove.
166         * config/i386/linux.h (TARGET_VERSION): Remove.
167         * config/i386/linux64.h (TARGET_VERSION): Remove.
168         * config/i386/lynx.h (TARGET_VERSION): Remove.
169         * config/i386/mingw32.h (TARGET_VERSION): Remove.
170         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
171         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
172         * config/i386/netware.h (TARGET_VERSION): Remove.
173         * config/i386/nto.h (TARGET_VERSION): Remove.
174         * config/i386/openbsd.h (TARGET_VERSION): Remove.
175         * config/i386/vxworks.h (TARGET_VERSION): Remove.
176         * config/ia64/elf.h (TARGET_VERSION): Remove.
177         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
178         * config/ia64/hpux.h (TARGET_VERSION): Remove.
179         * config/ia64/linux.h (TARGET_VERSION): Remove.
180         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
181         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
182         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
183         * config/lm32/lm32.h (TARGET_VERSION): Remove.
184         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
185         * config/m32c/m32c.h (TARGET_VERSION): Remove.
186         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
187         * config/m32r/m32r.h (TARGET_VERSION): Remove.
188         * config/m68k/linux.h (TARGET_VERSION): Remove.
189         * config/m68k/m68k.h (TARGET_VERSION): Remove.
190         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
191         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
192         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
193         * config/mep/mep.h (TARGET_VERSION): Remove.
194         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
195         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
196         * config/mips/iris6.h (MACHINE_TYPE): Remove.
197         * config/mips/linux.h (TARGET_VERSION): Remove.
198         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
199         * config/mips/vxworks.h (TARGET_VERSION): Remove.
200         * config/mmix/mmix.h (TARGET_VERSION): Remove.
201         * config/mn10300/linux.h (TARGET_VERSION): Remove.
202         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
203         * config/pa/pa.h (TARGET_VERSION): Remove.
204         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
205         * config/picochip/picochip.h (TARGET_VERSION): Remove.
206         * config/rs6000/aix.h (TARGET_VERSION): Remove.
207         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
208         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
209         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
210         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
211         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
212         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
213         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
214         * config/rs6000/linux.h (TARGET_VERSION): Remove.
215         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
216         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
217         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
218         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
219         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
220         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
221         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
222         * config/s390/linux.h (TARGET_VERSION): Remove.
223         * config/s390/s390.h (TARGET_VERSION): Remove.
224         * config/s390/tpf.h (TARGET_VERSION): Remove.
225         * config/score/score.h (TARGET_VERSION): Remove.
226         * config/sh/linux.h (TARGET_VERSION): Remove.
227         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
228         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
229         * config/sh/sh.h (TARGET_VERSION): Remove.
230         * config/sh/sh64.h (TARGET_VERSION): Remove.
231         * config/sh/superh.h (TARGET_VERSION): Remove.
232         * config/sh/vxworks.h (TARGET_VERSION): Remove.
233         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
234         * config/sparc/linux.h (TARGET_VERSION): Remove.
235         * config/sparc/linux64.h (TARGET_VERSION): Remove.
236         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
237         TARGET_NAME32, TARGET_NAME): Remove.
238         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
239         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
240         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
241         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
242         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
243         * config/spu/spu.h (TARGET_VERSION): Remove.
244         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
245         * config/v850/v850.h (TARGET_VERSION): Remove.
246         * config/vax/linux.h (TARGET_VERSION): Remove.
247         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
248         * config/xtensa/elf.h (TARGET_VERSION): Remove.
249         * config/xtensa/linux.h (TARGET_VERSION): Remove.
250
251 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
252
253         PR target/48142
254         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
255         frame-related from frame-unrelated adjustments to the stack pointer.
256
257 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
258
259         * common.opt (fdebug-types-section): Move earlier.
260         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
261
262 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
263
264         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
265         var.
266
267 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
268
269         * tree.h (CASE_CHAIN): Define.
270         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
271         (gimple_redirect_edge_and_branch): Likewise.
272
273 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
274
275         PR middle-end/48367
276         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
277         calculation.
278
279 2011-03-30  Jeff Law  <law@redhat.com>
280
281         * PR bootstrap/48371
282         * reload1.c (reload): Fix botch in last change.
283
284         * reload.h (struct reload): Fix typo introduced in last change.
285
286 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
287
288         * config/arm/arm.opt (mhard-float, msoft-float): Mark
289         Undocumented.  Remove help text.
290         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
291         -mhard-float.
292
293 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
294
295         * doc/options.texi (NegativeAlias): Document.
296         (Alias): Mention NegativeAlias.
297         * opt-functions.awk: Handle NegativeAlias.
298         * optc-gen.awk: Disallow NegativeAlias with multiple Alias
299         arguments.
300         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
301         * opts.h (CL_NEGATIVE_ALIAS): Define.
302         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
303         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
304         OPT_mspe_.
305         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
306         Alias entries.
307         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
308         mno-spe and mno-isel instead of mspe=no and -misel=no.
309
310 2011-03-29  Mark Wielaard  <mjw@redhat.com>
311
312         * common.opt (fdebug-types-section): New flag.
313         * doc/invoke.texi: Document new -fno-debug-types-section flag.
314         * dwarf2out.c (use_debug_types): New define.
315         (struct die_struct): Mark die_id with GTY desc use_debug_types.
316         (print_die): Guard output of type unit signatures using
317         use_debug_types.
318         (build_abbrev_table): Replace assert of dwarf_version >= 4
319         with assert on use_debug_types.
320         (size_of_die): Likewise.
321         (unmark_dies): Likewise.
322         (value_format): Decide AT_ref_external form on use_debug_types.
323         (output_die): Replace dwarf_version version check guard with
324         use_debug_types where appropriate.
325         (modified_type_die): Likewise.
326         (gen_reference_type_die): Likewise.
327         (dwarf2out_start_source_file): Likewise.
328         (dwarf2out_end_source_file): Likewise.
329         (prune_unused_types_walk_attribs): Likewise.
330         (dwarf2out_finish): Likewise.
331
332 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
333
334         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
335
336 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
337
338         PR rtl-optimization/48332
339         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
340         mode of input operand N and modeN to its actual mode.
341
342 2011-03-30  Jeff Law  <law@redhat.com>
343
344         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
345         define accessor macro.
346         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
347         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
348         (reg_equiv_init): Likewise.
349         (reg_equivs_size): New variable.
350         (reg_equiv_init_size): Remove.
351         (allocate_initial_values): Move prototype to here from....
352         * integrate.h (allocate_initial_values): Remove prototype.
353         * integrate.c: Include reload.h.
354         (allocate_initial_values): Corresponding changes.
355         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
356         (fix_reg_equiv_init, no_equiv): Corresponding changes.
357         (update_equiv_regs): Corresponding changes.
358         (ira): Corresponding changes.
359         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
360         (push_secondary_reload): Corresponding changes.
361         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
362         (make_memloc, find_reloads_address): Corresponding changes.
363         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
364         (find_reloads_address_1): Corresponding changes.
365         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
366         (refers_to_regno_for_reload_p): Corresponding changes.
367         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
368         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
369         * reload1.c: Include ggc.h.
370         (grow_reg_equivs): New function.
371         (replace_pseudos_in, reload): Corresponding changes.
372         (calculate_needs_all_insns, alter_regs): Corresponding changes.
373         (eliminate_regs_1, elimination_effects): Corresponding changes.
374         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
375         (delete_output_reload): Likewise.
376         * caller-save.c (mark_referenced_regs): Corresponding changes.
377         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
378         * frv/predicates.md (frv_load_operand): Corresponding changes.
379         * microblaze/microblaze.c (double_memory_operand): Corresponding
380         changes.
381         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
382         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
383         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding
384         changes.
385         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
386         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
387         changes.
388         * pa/pa.c (emit_move_sequence): Corresponding changes.
389         * vax/vax.c (nonindexed_address_p): Corresponding changes.
390
391 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
392
393         PR target/47551
394         * config/arm/arm.c (coproc_secondary_reload_class): Handle
395         structure modes.  Don't check neon_vector_mem_operand for
396         vector or structure modes.
397
398 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
399             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
400
401         PR target/43590
402         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
403         operand 1 and reshuffle the operands to match.
404         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
405
406 2011-03-30  Christian Schüler  <cschueler@gmx.de>
407
408         PR driver/48208
409         * config/c.opt (F): Added 'Driver' to -F option.
410         PR driver/48260
411         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
412           handler function.
413         * config/darwin.opt: Added '-arch' option.
414
415 2011-03-30  Nick Clifton  <nickc@redhat.com>
416
417         * config/rx/rx.md: Add peepholes and patterns to combine
418         extending loads and simple arithmetic instructions.
419         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
420         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
421         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
422         modes to use pre-decrement and post-increment addressing.
423         (rx_is_restricted_memory_address): Add range checking of REG+INT
424         addresses.
425         (rx_print_operand): Add support for %Q.
426         Fix handling of %Q.
427         (rx_memory_move_cost): Adjust cost of stores.
428         (rx_adjust_insn_length): New function.
429
430 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
431
432         PR c/48305
433         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
434         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
435         matching arg00/arg01 types.
436
437 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
438
439         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
440         last_location to UNKNOWN_LOCATION.
441
442 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
443
444         PR target/48349
445         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
446         FLOAT_SSE_REGS.
447
448 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
449             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
450
451         PR bootstrap/48337
452         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
453         Init(PROCESSOR_V7).
454         (sparc_cpu): Likewise.
455         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
456         PROCESSOR_V7.
457
458 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
459
460         PR target/48336
461         PR middle-end/48342
462         PR rtl-optimization/48345
463         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
464         hard regs for given mode from profitable regs when doing secondary
465         allocation.
466
467 2011-03-29  Jeff Law  <law@redhat.com>
468
469         PR bootstrap/48327
470         * tree-ssa-threadupdate.c (struct redirection_data): Remove
471         do_not_duplicate field.
472         (lookup_redirection_data): Corresponding changes.
473         (create_duplicates): Always create a template block.
474         (redirect_edges): Remove code which reused the original block
475         when it was going to become unreachable code.
476         (thread_block): Don't set do_not_duplicate field.
477
478 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
479
480         * lto-opts.c (register_user_option_p, lto_register_user_option):
481         Make type argument unsigned.
482         * lto-streamer.h (lto_register_user_option): Make type argument
483         unsigned.
484         * opth-gen.awk: Make CL_* macros unsigned.
485         * opts-common.c (find_opt): Make lang_mask argument unsigned.
486         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
487         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
488         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
489         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
490         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
491         (find_opt): Make lang_mask argument unsigned.
492
493 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
494
495         PR rtl-optimization/48331
496         PR rtl-optimization/48334
497         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
498         for any used algorithm.
499
500 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
501
502         * ira-conflicts.c (build_object_conflicts): Add unused attribute
503         to parent_max.
504
505 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
506
507         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
508         (alpha_option_override): Don't set alpha_sr_alias_set.
509         (emit_frame_store_1): Use gen_frame_mem rather than calling
510         set_mem_alias_set.
511         (alpha_expand_epilogue): Ditto.
512
513 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
514
515         PR tree-optimization/48290
516         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
517         vectorization, check that relevant phis in the basic block after
518         the inner loop are really inner loop's exit phis.
519
520 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
521
522         PR debug/48190
523         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
524         (cached_dw_loc_list_def): New structure.
525         (cached_dw_loc_list): New typedef.
526         (cached_dw_loc_list_table): New variable.
527         (cached_dw_loc_list_table_hash): New function.
528         (cached_dw_loc_list_table_eq): Likewise.
529         (add_location_or_const_value_attribute): Take a bool cache_p.
530         Cache the list when the parameter is true.
531         (gen_formal_parameter_die): Update caller.
532         (gen_variable_die): Likewise.
533         (dwarf2out_finish): Likewise.
534         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
535         while generating debug info for the decl.
536         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
537         (dwarf2out_init): Initialize cached_dw_loc_list_table.
538         (resolve_addr): Cache the result of resolving a chain of
539         location lists.
540
541 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
542
543         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
544         conflict object hard regset nodes have intersecting hard reg sets.
545
546         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
547         after regstat_init_n_sets_and_refs.
548
549         * ira.c: Add more comments at the top.
550         (setup_stack_reg_pressure_class, setup_pressure_classes):
551         Add comments how we compute the register pressure classes.
552         (setup_allocno_and_important_classes): Add more comments.
553         (setup_class_translate_array, reorder_important_classes)
554         (setup_reg_class_relations): Add comments.
555
556         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
557         start of the file.
558
559         * ira-color.c: Add 2011 to the Copyright line.
560         (assign_hard_reg):  Add more comments.
561         (improve_allocation): Ditto.
562
563         * ira-costs.c: Add 2011 to the Copyright line.
564         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
565         comments.
566         (setup_regno_cost_classes_by_mode): Ditto.
567
568         Initial patches from ira-improv branch:
569
570         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
571
572         * ira-build.c: (ira_create_object): Remove initialization of
573         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
574         (ira_create_allocno): Remove initialization of
575         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
576         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
577         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
578         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
579         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
580         Initialize ALLOCNO_ADD_DATA.
581         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
582         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
583         ALLOCNO_REG.
584         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
585         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
586
587         * ira.c (ira_reallocate): Remove.
588         (setup_pressure_classes): Call
589         ira_init_register_move_cost_if_necessary.  Use
590         ira_register_move_cost instead of ira_get_register_move_cost.
591         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
592         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
593
594         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
595         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
596         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
597         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
598         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
599         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
600         Fix formatting.
601         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
602         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
603         (struct allocno_color_data): New.
604         (allocno_color_data_t): New typedef.
605         (allocno_color_data): New definition.
606         (ALLOCNO_COLOR_DATA): New macro.
607         (struct object_color_data): New.
608         (object_color_data_t): New typedef.
609         (object_color_data): New definition.
610         (OBJECT_COLOR_DATA): New macro.
611         (update_copy_costs, calculate_allocno_spill_cost): Call
612         ira_init_register_move_cost_if_necessary.  Use
613         ira_register_move_cost instead of ira_get_register_move_cost.
614         (move_spill_restore, update_curr_costs): Ditto.
615         (allocno_spill_priority): Make it inline.
616         (color_pass): Allocate and free allocno_color_dat and object_color_data.
617         (struct coalesce_data, coalesce_data_t): New.
618         (allocno_coalesce_data): New definition.
619         (ALLOCNO_COALESCE_DATA): New macro.
620         (merge_allocnos, coalesced_allocno_conflict_p): Use
621         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
622         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
623         (coalesce_allocnos): Ditto.
624         (setup_coalesced_allocno_costs_and_nums): Ditto.
625         (collect_spilled_coalesced_allocnos): Ditto.
626         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
627         (setup_slot_coalesced_allocno_live_ranges): Ditto.
628         (coalesce_spill_slots): Ditto.
629         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
630         free allocno_coalesce_data.
631
632         * ira-conflicts.c: Fix formatting.
633         (process_regs_for_copy): Call
634         ira_init_register_move_cost_if_necessary.  Use
635         ira_register_move_cost instead of ira_get_register_move_cost.
636         (build_object_conflicts): Optimize.
637
638         * ira-costs.c (record_reg_classes): Optimize.  Call
639         ira_init_register_move_cost_if_necessary.  Use
640         ira_register_move_cost, ira_may_move_in_cost, and
641         ira_may_move_out_cost instead of ira_get_register_move_cost and
642         ira_get_may_move_cost.
643         (record_address_regs): Ditto.
644         (scan_one_insn): Optimize.
645         (find_costs_and_classes): Optimize.
646         (process_bb_node_for_hard_reg_moves): Call
647         ira_init_register_move_cost_if_necessary.  Use
648         ira_register_move_cost instead of ira_get_register_move_cost.
649
650         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
651         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
652         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
653         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
654         definitions.
655         (ira_initiate_emit_data, ira_finish_emit_data)
656         (create_new_allocno): New functions.
657         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
658         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
659         Use ira_register_move_cost instead of ira_get_register_move_cost.
660
661         * ira-int.h: Fix some comments.
662         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
663         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
664         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
665         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
666         add_data.
667         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
668         bitfield after mode.  Make hard_regno a short int.  Make
669         hard_regno short.  Remove first_coalesced_allocno and
670         next_coalesced_allocno.  Move mem_optimized_dest_p,
671         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
672         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
673         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
674         temp, colorable_p.  Add new member add_data.
675         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
676         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
677         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
678         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
679         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
680         (ALLOCNO_ADD_DATA): New macro.
681         (ira_emit_data_t): New typedef.
682         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
683         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
684         from struct ira_allocno.
685         (ALLOCNO_EMIT_DATA): New macro.
686         (ira_allocno_emit_data, allocno_emit_reg): New.
687         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
688         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
689         (OBJECT_ADD_DATA): New macro.
690         (ira_reallocate): Remove.
691         (ira_initiate_emit_data, ira_finish_emit_data): New.
692         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
693         (ira_init_register_move_cost_if_necessary): New.
694         (ira_object_conflict_iter_next): Merge into
695         ira_object_conflict_iter_cond.
696         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
697
698         * ira-live.c: (process_single_reg_class_operands): Call
699         ira_init_register_move_cost_if_necessary.  Use
700         ira_register_move_cost instead of ira_get_register_move_cost.
701
702         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
703
704         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
705
706         * ira-costs.c: Fix formatting.
707         (cost_classes, cost_classes_num): Remove.
708         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
709         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
710         (cost_classes_del, cost_classes_htab): New.
711         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
712         (initiate_regno_cost_classes, setup_cost_classes): New.
713         (setup_regno_cost_classes_by_aclass): New.
714         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
715         (record_reg_classes): Use regno_cost_classes instead of
716         cost_classes.  Move checking opposite operand up.
717         (record_address_regs): Use regno_cost_classes
718         instead of cost_classes.
719         (scan_one_insn): Ditto.  Use always general register.
720         (print_allocno_costs): Use regno_cost_classes instead of
721         cost_classes.
722         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
723         (find_costs_and_classes): Set up cost classes for each registers.
724         Use also their mode for this.  Use regno_cost_classes instead of
725         cost_classes.
726         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
727         cost_classes.
728         (free_ira_costs, ira_init_costs): Don't use cost_classes.
729         (ira_costs, ira_set_pseudo_classes): Call
730         initiate_regno_cost_classes and finish_regno_cost_classes.
731
732         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
733
734         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
735
736         * target.def (ira_cover_classes): Remove.
737
738         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
739
740         * doc/tm.texi.in: Ditto.
741
742         * ira-conflicts.c: Remove mentioning cover classes from the file.
743         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
744         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
745
746         * targhooks.c (default_ira_cover_classes): Remove.
747
748         * targhooks.h (default_ira_cover_classes): Ditto.
749
750         * haifa-sched.c: Remove mentioning cover classes from the file.
751         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
752         ira_pressure_classes and ira_pressure_classes_num instead of
753         ira_reg_class_cover_size and ira_reg_class_cover.  Use
754         sched_regno_pressure_class instead of sched_regno_cover_class.
755         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
756         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
757
758         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
759         classes from the file.
760         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
761         (struct object_hard_regs, struct object_hard_regs_node): New.
762         (struct ira_object): New members profitable_hard_regs,
763         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
764         (struct ira_allocno): Rename cover_class to aclass.  Rename
765         cover_class_cost and updated_cover_class_cost to class_cost and
766         updated_class_cost.  Remove splay_removed_p and
767         left_conflict_size.  Add new members colorable_p.
768         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
769         (ALLOCNO_COLORABLE_P): New macro.
770         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
771         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
772         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
773         (OBJECT_...): Rename parameter C to O.
774         (OBJECT_PROFITABLE_HARD_REGS): New macro.
775         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
776         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
777         (struct target_ira_int): New members x_ira_max_memory_move_cost,
778         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
779         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
780         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
781         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
782         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
783         x_ira_reg_class_subunion.
784         (ira_max_memory_move_cost, ira_max_register_move_cost)
785         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
786         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
787         (ira_important_class_nums, ira_reg_class_superunion): New macros.
788         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
789         (ira_reg_class_union): Rename to ira_reg_class_subunion.
790         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
791         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
792         (ira_tune_allocno_costs_and_cover_classes): Rename to
793         ira_tune_allocno_costs.
794         (ira_debug_hard_regs_forest): New.
795         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
796         (ira_object_conflict_iter_next): Fix comments.
797         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
798         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
799         cover_class to aclass.
800         (ira_allocate_and_accumulate_costs): Ditto.
801         (ira_allocate_and_set_or_copy_costs): Ditto.
802
803         * opts.c (decode_options): Remove ira_cover_class check.
804
805         * ira-color.c: Remove mentioning cover classes from the file.  Use
806         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
807         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
808         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
809         (splay-tree.h): Remove include.
810         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
811         before copy_freq_compare_func.
812         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
813         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
814         New definitions.
815         (hard_regs_roots, hard_regs_node_vec): Ditto.
816         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
817         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
818         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
819         (create_new_object_hard_regs_node): Ditto.
820         (add_new_object_hard_regs_node_to_forest): Ditto.
821         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
822         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
823         Ditto.
824         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
825         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
826         (remove_unused_object_hard_regs_nodes): Ditto.
827         (enumerate_object_hard_regs_nodes): Ditto.
828         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
829         (object_hard_regs_subnode_t): Ditto.
830         (struct object_hard_regs_subnode): Ditto.
831         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
832         (setup_object_hard_regs_subnode_index): Ditto.
833         (get_object_hard_regs_subnodes_num): Ditto.
834         (form_object_hard_regs_nodes_forest): Ditto.
835         (finish_object_hard_regs_nodes_tree): Ditto.
836         (finish_object_hard_regs_nodes_forest): Ditto.
837         (allocnos_have_intersected_live_ranges_p): Rename to
838         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
839         (pseudos_have_intersected_live_ranges_p): Rename to
840         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
841         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
842         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
843         (update_copy_costs): Remove assert.  Skip cost update if the hard
844         reg does not belong the class.
845         (assign_hard_reg): Process only profitable hard regs.
846         (uncolorable_allocnos_num): Make it scalar.
847         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
848         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
849         and ira_reg_class_max_nregs.
850         (bucket_allocno_compare_func): Check frequency first.
851         (sort_bucket): Add compare function as a parameter.
852         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
853         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
854         (push_allocno_to_stack): Rewrite for checking new allocno
855         colorability.
856         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
857         (push_only_colorable): Pass new parameter to sort_bucket.
858         (push_allocno_to_spill): Remove.
859         (allocno_spill_priority_compare): Make it inline and rewrite.
860         (splay_tree_allocate, splay_tree_free): Remove.
861         (allocno_spill_sort_compare): New function.
862         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
863         build and use splay tree.  Choose first allocno in uncolorable
864         allocno bucket to spill.  Remove setting spill cost.
865         (all_conflicting_hard_regs): Remove.
866         (setup_allocno_available_regs_num): Check only profitable hard
867         regs.  Print info about hard regs nodes.
868         (setup_allocno_left_conflicts_size): Remove.
869         (put_allocno_into_bucket): Don't call
870         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
871         (improve_allocation): New.
872         (color_allocnos): Call setup_profitable_hard_regs,
873         form_object_hard_regs_nodes_forest, improve_allocation,
874         finish_object_hard_regs_nodes_forest.  Setup spill cost.
875         (print_loop_title): Use pressure classes.
876         (color_allocnso): Ditto.
877         (do_coloring): Remove allocation and freeing splay_tree_node_pool
878         and allocnos_for_spilling.
879         (ira_sort_regnos_for_alter_reg): Don't setup members
880         {first,next}_coalesced_allocno.
881         (color): Remove allocating and freeing removed_splay_allocno_vec.
882         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
883         prohibited_class_mode_regs.
884
885         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
886         formatting.
887         (update_allocno_pressure_excess_length): Use pressure classes.
888         (inc_register_pressure, dec_register_pressure): Check for pressure
889         class.
890         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
891         pressure class.  Use ira_reg_class_nregs instead of
892         ira_reg_class_max_nregs.
893         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
894         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
895         (single_reg_class): Use ira_reg_class_nregs instead of
896         ira_reg_class_max_nregs.
897         (process_bb_node_lives): Use pressure classes.
898
899         * ira-emit.c: Remove mentioning cover classes from the file.  Use
900         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
901         (change_loop): Use pressure classes.
902         (modify_move_list): Call ira_set_allocno_class instead of
903         ira_set_allocno_cover_class.
904
905         * ira-build.c: Remove mentioning cover classes from the file.  Use
906         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
907         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
908         ALLOCNO_UPDATED_CLASS_COST instead of
909         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
910         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
911         (ira_create_allocno): Remove initialization of
912         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
913         ALLOCNO_COLORABLE_P.
914         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
915         Update conflict regs for the objects.
916         (create_cap_allocno): Remove assert.  Don't propagate
917         ALLOCNO_AVAILABLE_REGS_NUM.
918         (ira_free_allocno_costs): New function.
919         (finish_allocno): Change a part of code into call of
920         ira_free_allocno_costs.
921         (low_pressure_loop_node_p): Use pressure classes.
922         (object_range_compare_func): Don't compare classes.
923         (setup_min_max_conflict_allocno_ids): Ditto.
924
925         * loop-invariant.c: Remove mentioning cover classes from the file.
926         Use ira_pressure_classes and ira_pressure_classes_num instead of
927         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
928         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
929         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
930         Use reg_allocno_class instead of reg_cover_class.
931         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
932         STACK_REG_COVER_CLASS.
933         (get_regno_cover_class): Rename to get_regno_pressure_class.
934         (move_loop_invariants): Initialize and finalize regstat.
935
936         * ira.c: Remove mentioning cover classes from the file.  Add
937         comments about coloring without cover classes.  Use ALLOCNO_CLASS
938         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
939         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
940         setup_class_subset_and_memory_move_costs.
941         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
942         (setup_cover_and_important_classes): Rename to
943         setup_allocno_and_important_classes.
944         (setup_class_translate_array): New.
945         (setup_class_translate): Call it for allocno and pressure classes.
946         (cover_class_order): Rename to allocno_class_order.
947         (comp_reg_classes_func): Use ira_allocno_class_translate instead
948         of ira_class_translate.
949         (reorder_important_classes): Set up ira_important_class_nums.
950         (setup_reg_class_relations): Set up ira_reg_class_superunion.
951         (print_class_cover): Rename to print_classes.  Add parameter.
952         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
953         Print pressure classes too.
954         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
955         setup_reg_subclasses.
956         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
957         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
958         (setup_prohibited_class_mode_regs): Use
959         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
960         (clarify_prohibited_class_mode_regs): New function.
961         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
962         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
963         (ira_init_once): Initialize them.
964         (free_register_move_costs): Process them.
965         (ira_init): Move calls of find_reg_classes and
966         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
967         Call clarify_prohibited_class_mode_regs.
968         (ira_no_alloc_reg): Remove.
969         (too_high_register_pressure_p): Use pressure classes.
970
971         * sched-deps.c: Remove mentioning cover classes from the file.
972         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
973         ira_pressure_classes and ira_pressure_classes_num instead of
974         ira_reg_class_cover_size and ira_reg_class_cover.
975         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
976         sched_regno_pressure_class instead of sched_regno_cover_class.
977         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
978         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
979
980         * ira.h: Add 2010 to Copyright.
981         (ira_no_alloc_reg): Remove external.
982         (struct target_ira): Rename x_ira_hard_regno_cover_class,
983         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
984         x_ira_class_translate to x_ira_hard_regno_allocno_class,
985         x_ira_allocno_classes_num, x_ira_allocno_classes, and
986         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
987         x_ira_pressure_classes, x_ira_pressure_class_translate, and
988         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
989         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
990         x_ira_no_alloc_regs.
991         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
992         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
993         ira_allocno_classes_num and ira_allocno_classes.
994         (ira_class_translate): Rename to ira_allocno_class_translate.
995         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
996         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
997         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
998         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
999         (ira_no_alloc_regs): New.
1000
1001         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
1002         classes from the file.  Use ALLOCNO_CLASS instead of
1003         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
1004         ALLOCNO_COVER_CLASS_COST.
1005         (regno_cover_class): Rename to regno_aclass.
1006         (record_reg_classes): Use ira_reg_class_subunion instead of
1007         ira_reg_class_union.
1008         (record_address_regs): Check overflow.
1009         (scan_one_insn): Ditto.
1010         (print_allocno_costs): Print total mem cost fore regional allocation.
1011         (print_pseudo_costs): Use REG_N_REFS.
1012         (find_costs_and_classes): Use classes intersected with them on the
1013         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
1014         ira_reg_class_union.  Use ira_allocno_class_translate and
1015         regno_aclass instead of ira_class_translate and regno_cover_class.
1016         Modify code for finding regno_aclass.  Setup preferred classes for
1017         the next pass.
1018         (setup_allocno_cover_class_and_costs): Rename to
1019         setup_allocno_class_and_costs.  Use regno_aclass instead of
1020         regno_cover_class.  Use ira_set_allocno_class instead of
1021         ira_set_allocno_cover_class.
1022         (init_costs, finish_costs): Use regno_aclass instead of
1023         regno_cover_class.
1024         (ira_costs): Use setup_allocno_class_and_costs instead of
1025         setup_allocno_cover_class_and_costs.
1026         (ira_tune_allocno_costs_and_cover_classes): Rename to
1027         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
1028         by processing objects.  Use ira_reg_class_max_nregs instead of
1029         ira_reg_class_nregs.
1030
1031         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
1032
1033         * sched-int.h: Remove mentioning cover classes from the file.
1034         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
1035
1036         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
1037         classes from the file.
1038         (struct reg_pref): Rename coverclass into allocnoclass.
1039         (reg_cover_class): Rename to reg_allocno_class.
1040
1041         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1042
1043         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
1044
1045         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
1046
1047         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
1048
1049         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
1050
1051         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
1052
1053         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
1054
1055         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
1056
1057         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
1058
1059         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
1060
1061         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
1062         (i386_ira_cover_classes): Ditto.
1063
1064         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
1065
1066         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
1067
1068         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
1069
1070         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
1071
1072         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
1073
1074         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
1075
1076         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
1077         (mips_ira_cover_classes): Ditto.
1078
1079         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
1080
1081         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
1082
1083         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
1084
1085         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
1086
1087         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
1088
1089         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
1090         (IRA_COVER_CLASSES_VSX): Ditto.
1091
1092         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
1093         (rs6000_ira_cover_classes): Ditto.
1094
1095         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
1096
1097         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
1098
1099         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
1100
1101         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
1102
1103         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
1104
1105         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
1106
1107         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
1108
1109         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
1110
1111         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
1112
1113         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
1114
1115 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
1116
1117         PR debug/48253
1118         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
1119         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
1120         dw_fde_unlikely_section_end_label, cold_in_std_section,
1121         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
1122         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
1123         fields.
1124         (output_fde): Use dw_fde_second_{begin,end} if second is
1125         true, otherwise dw_fde_{begin,end}.
1126         (output_call_frame_info): Test dw_fde_second_begin != NULL
1127         instead of dw_fde_switched_sections.
1128         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
1129         fields, initialize new fields.  Initialize in_std_section
1130         unconditionally from the first partition.
1131         (dwarf2out_end_epilogue): Don't override dw_fde_end when
1132         dw_fde_second_begin is non-NULL.
1133         (dwarf2out_switch_text_section): Stop initializing removed
1134         dw_fde_struct fields, initialize new fields, initialize
1135         also dw_fde_end here.  Set dw_fde_switch_cfi even when
1136         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
1137         (struct var_loc_list_def): Add last_before_switch field.
1138         (arange_table, arange_table_allocated, arange_table_in_use,
1139         ARANGE_TABLE_INCREMENT, add_arange): Removed.
1140         (size_of_aranges): Count !in_std_section and !second_in_std_section
1141         hunks in fdes, instead of looking at arange_table_in_use.
1142         (output_aranges): Add aranges_length argument, don't call
1143         size_of_aranges here.  Instead of using aranges_table*
1144         emit ranges for fdes when !in_std_section resp.
1145         !second_in_std_section.
1146         (dw_loc_list): Break ranges crossing section switch.
1147         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
1148         use dw_fde_second_end instead of dw_fde_end as end of last range.
1149         (gen_subprogram_die): Don't call add_arange.  Use
1150         dw_fde_{begin,end} for first partition and if switched
1151         section dw_fde_second_{begin,end} for the second.
1152         (var_location_switch_text_section_1,
1153         var_location_switch_text_section): New functions.
1154         (dwarf2out_begin_function): Initialize cold_text_section even
1155         when function_section () isn't text_section.
1156         (prune_unused_types): Don't walk arange_table.
1157         (dwarf2out_finish): Don't needlessly test
1158         flag_reorder_blocks_and_partition when testing cold_text_section_used.
1159         If info_section_emitted, call size_of_aranges and if it indicates
1160         non-empty .debug_aranges, call output_aranges with the computed
1161         size.  Stop using removed dw_fde_struct fields, use
1162         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
1163         for second.
1164
1165         PR debug/48203
1166         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
1167         create ENTRY_VALUE if incoming or address of incoming's MEM
1168         is a hard REG.
1169         * dwarf2out.c (mem_loc_descriptor): Don't emit
1170         DW_OP_GNU_entry_value of DW_OP_fbreg.
1171         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
1172         on ENTRY_VALUE is able to find the canonical parameter VALUE.
1173         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
1174         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
1175         ENTRY_VALUE_EXPs.
1176         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
1177         is a REG_P or MEM_P with REG_P address, compute hash directly
1178         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
1179         (preserve_only_constants): Don't clear VALUES forwaring
1180         ENTRY_VALUE to some other VALUE.
1181
1182 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
1183
1184         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
1185         instead of GEN_INT.
1186
1187 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1188
1189         * cfgexpand.c (expand_gimple_cond): Always set the source location and
1190         block before expanding the statement.
1191         (expand_gimple_stmt_1): Likewise.  Set them here...
1192         (expand_gimple_stmt): ...and not here.  Tidy.
1193         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
1194         unknown.
1195
1196 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1197
1198         * Makefile.in: New rule for cprop.o.
1199         * gcse.c: Move constant/copy propagation to cprop.c.
1200         (compute_local_properties): Only handle expression tables.
1201         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
1202         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
1203         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
1204         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
1205         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
1206         compute_cprop_data, find_used_regs, try_replace_reg,
1207         find_avail_set, cprop_jump, constprop_register, cprop_insn,
1208         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
1209         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
1210         find_bypass_set, reg_killed_on_edge, bypass_block,
1211         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
1212         execute_rtl_cprop, pass_rtl_cprop): Move to...
1213         * cprop.c: ...here.  New file, constant/copy propagation for RTL
1214         moved from gcse.c to here with minor cleanups in duplicated code.
1215
1216 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
1217
1218         * config/i386/i386.c (flag_opts): Fix a typo in
1219         -mavx256-split-unaligned-store.
1220
1221 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1222
1223         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
1224         LIBCALL_VALUE): Remove macros.
1225         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1226         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1227         (h8300_function_value, h8300_libcall_value,
1228         h8300_function_value_regno_p): New functions.
1229
1230 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
1231
1232         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
1233
1234 2011-03-28  Jeff Law  <law@redhat.com>
1235
1236         * tree-ssa-threadupdate.c (redirect_edges): Call
1237         create_edge_and_update_destination_phis as needed.
1238         (create_edge_and_update_destination_phis): Accept new BB argument.
1239         All callers updated.
1240         (thread_block): Do not update the profile when threading around
1241         intermediate blocks.
1242         (thread_single_edge): Likewise.
1243         (determine_bb_domination_status): If BB is not a successor of the
1244         loop header, return NONDOMINATING.
1245         (register_jump_thread): Note when we register a jump thread around
1246         an intermediate block.
1247         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
1248         (thread_across_edge): Use it.
1249
1250 2011-03-28  Tristan Gingold  <gingold@adacore.com>
1251
1252         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
1253         when for_return is 2.
1254
1255 2011-03-28  Jeff Law  <law@redhat.com>
1256
1257         * var-tracking.c (canonicalize_values_mark): Delete unused
1258         lhs assignment.
1259         (canonicalize_values_star, set_variable_part): Likewise.
1260         (clobber_variable_part, delete_variable_part): Likewise.
1261
1262 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
1263
1264         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
1265
1266 2011-03-28  Martin Jambor  <mjambor@suse.cz>
1267
1268         * tree-inline.c (expand_call_inline): Do not check that destination
1269         node is analyzed.
1270         (optimize_inline_calls): Assert that destination node is analyzed.
1271         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
1272         not call tree_lowering_passes.
1273         * cgraph.h (cgraph_analyze_function): Declare.
1274         * cgraphunit.c (cgraph_analyze_function): Make public.
1275
1276 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
1277
1278         * config/sparc/sparc-opts.h: New.
1279         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
1280         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
1281         (sparc_option_override): Store processor_type enumeration rather
1282         than string in cpu_default.  Remove name and enumeration from
1283         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
1284         without using sparc_select.  Use target_flags_explicit instead of
1285         fpu_option_set.
1286         * config/sparc/sparc.h (enum processor_type): Move to
1287         sparc-opts.h.
1288         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
1289         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
1290         HeaderInclude entry.
1291         (mcpu=, mtune=): Use Var and Enum.
1292         (sparc_processor_type): New Enum and EnumValue entries.
1293
1294 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1295             Iain Sandoe  <iains@gcc.gnu.org>
1296
1297         PR target/48245
1298         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
1299
1300 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
1301
1302         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
1303         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
1304         Insert new statements at it in lieu of STMT.
1305         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
1306         * tree-vect-stmts.c (vectorizable_store): Likewise.
1307         (vectorizable_load): Likewise.
1308
1309 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
1310
1311         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
1312         (divtf3): Ditto.
1313         (multf3): Ditto.
1314         (subtf3): Ditto.
1315
1316 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1317
1318         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
1319         unaligned 256bit load/store.
1320         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
1321         (*avx_movdqu<avxmodesuffix>): Likewise.
1322
1323 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1324
1325         PR target/48288
1326         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
1327         * config/pa/pa.md (iordi3): Use new predicate in expander.
1328         (iorsi3): Likewise.
1329
1330 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
1331
1332         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
1333         FUNCTION_VALUE_REGNO_P): Remove macros.
1334         * config/mips/mips-protos.h (mips_function_value): Remove.
1335         * config/mips/mips.c (mips_function_value): Rename to...
1336         (mips_function_value_1): ... this. Make static.  Handle receiving
1337         the function type in 'fn_decl_or_type' argument.
1338         (mips_function_value, mips_libcall_value,
1339         mips_function_value_regno_p): New function.
1340         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1341         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1342
1343 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
1344
1345         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
1346         and -mavx256-split-unaligned-store.
1347         (ix86_option_override_internal): Split 32-byte AVX unaligned
1348         load/store by default.
1349         (ix86_avx256_split_vector_move_misalign): New.
1350         (ix86_expand_vector_move_misalign): Use it.
1351
1352         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
1353         -mavx256-split-unaligned-store.
1354
1355         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
1356         256bit load/store.  Generate unaligned store on misaligned memory
1357         operand.
1358         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
1359         256bit load/store.
1360         (*avx_movdqu<avxmodesuffix>): Likewise.
1361
1362         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
1363         -mavx256-split-unaligned-store.
1364
1365 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1366
1367         PR target/38598
1368         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
1369         Update commentary.
1370
1371 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
1372
1373         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
1374         opno arguments with an expand_operand.  Use create_input_operand.
1375         (mips_prepare_builtin_target): Delete.
1376         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
1377         functions.
1378         (mips_expand_builtin_direct): Use create_output_operand and
1379         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
1380         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
1381         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
1382
1383 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
1384
1385         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
1386         function.
1387         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1388
1389 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
1390
1391         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
1392         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
1393         basic blocks and call commit_edge_insertions directly.
1394         (fixup_abnormal_edges): Move from here to...
1395         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
1396         on the edges and return whether some have actually been inserted.
1397         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
1398         compensation code.
1399
1400 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
1401
1402         PR rtl-optimization/48144
1403         * sel-sched-ir.c (merge_history_vect): Factor out from ...
1404         (merge_expr_data): ... here.
1405         (av_set_intersect): Rename to av_set_code_motion_filter.
1406         Update all callers.  Call merge_history_vect when an expression
1407         is found in both sets.
1408         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
1409
1410 2011-03-26  Alan Modra  <amodra@gmail.com>
1411
1412         * config/rs6000/predicates.md (word_offset_memref_op): Handle
1413         cmodel medium addresses.
1414         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
1415         64-bit gpr loads and stores.
1416         (rs6000_secondary_reload_ppc64): New function.
1417         * config/rs6000/rs6000-protos.h: Declare it.
1418         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
1419
1420 2011-03-26  Alan Modra  <amodra@gmail.com>
1421
1422         PR target/47487
1423         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
1424         GNU Go in traceback table.
1425
1426 2011-03-25  Richard Henderson  <rth@redhat.com>
1427
1428         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
1429         if there are exactly 6 operands.
1430         (set_storage_via_setmem): Similarly.
1431
1432 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1433
1434         * collect2.c (write_c_file_stat): Handle backslash
1435         as right-hand directory separator.
1436         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
1437         checking just for slash.
1438         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
1439         instead of checking for trailing slash.
1440         * gcc.c (record_temp_file): Use filename_cmp instead
1441         of strcmp.
1442         (do_spec_1): Likewise.
1443         (replace_outfile_spec_function): Likewise.
1444         (is_directory): Use filename_ncmp instead of strncmp.
1445         (print_multilib_info): Likewise.
1446         * gcov.c (find_source): Use filename_cmp instead
1447         instead of strcmp.
1448         (make_gcov_file_name): Fix order of slash/backslash
1449         checks.
1450         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
1451         (add_standard_paths): Likewise.
1452         * mips-tfile.c (saber_stop): Handle backslash.
1453         * prefix.c (update_path): Use filename_ncmp instead of
1454         strncmp.
1455         * profile.c (output_location): Use filename_cmp instead
1456         of strcmp.
1457         * read-md.c (handle_toplevel_file): Handle backslash.
1458         * tlink.c (frob_extension):  Likewise.
1459         * tree-cfg.c (same_line_p): Use filename_cmp instead of
1460         strcmp.
1461         * tree-dump.c (dequeue_and_dump): Handle backslash.
1462         * tree.c (get_file_function_name): Likewise.
1463         * gengtype.c (read_input_list): Likewise.
1464         (get_file_realbasename): Likewise.
1465         (get_output_file_with_visibility): Use filename_cmp
1466         instead of strcmp.
1467
1468 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
1469
1470         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
1471         case to VFPv1.
1472
1473 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1474
1475         * fold-const.c (expr_location_or): New function.
1476         (fold_truth_not_expr): Call it.
1477
1478 2011-03-25  Jeff Law  <law@redhat.com>
1479
1480         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
1481         va_end.
1482         * c-family/c-common.c (def_fn_type): Likewise.
1483         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
1484         * emit-rtl.c (gen_rtvec): Likewise.
1485         * lto/lto-lang.c (def_fn_type): Likewise.
1486
1487 2011-03-25  Richard Guenther  <rguenther@suse.de>
1488
1489         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
1490         also generate copies.
1491         (fini_copy_prop): Handle constant values properly.
1492
1493 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
1494
1495         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
1496         mode size instead of bitsize with DWARF2_ADDR_SIZE.
1497         (hash_loc_operands, compare_loc_operands): Handle
1498         DW_OP_GNU_entry_value.
1499
1500 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1501
1502         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
1503         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
1504         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
1505         comment and use macro TARGET_64BIT_MS_ABI instead.
1506         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
1507         and change default behavior for 32-bit MS_ABI.
1508         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
1509         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
1510         32-bit, too.
1511         (ix86_cfun_abi): Likewise.
1512         (ix86_maybe_switch_abi): Adjust comment.
1513         (init_cumulative_args): Check for bit-ness in MS_ABI case.
1514         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
1515         instead of checking for SYSV_ABI.
1516         (ix86_nsaved_sseregs): Likewise.
1517         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
1518         to 16 bytes.
1519         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
1520         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
1521         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
1522         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
1523         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
1524
1525 2011-03-25  Richard Guenther  <rguenther@suse.de>
1526
1527         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
1528         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1529         (verify_gimple): Remove.
1530         * tree-cfg.c (verify_gimple_call): Merge verification
1531         from verify_stmts.
1532         (verify_gimple_phi): Merge verification from verify_stmts.
1533         (verify_gimple_label): New function.
1534         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
1535         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
1536         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
1537         (verify_stmts): Rename to verify_gimple_in_cfg.
1538         (verify_gimple_in_cfg): New function.
1539         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
1540         * tree-ssa.c (verify_ssa): Likewise.
1541         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
1542
1543 2011-03-25  Richard Guenther  <rguenther@suse.de>
1544
1545         * passes.c (init_optimization_passes): Add FRE pass after
1546         early SRA.
1547
1548 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
1549             Andrew Stubbs  <ams@codesourcery.com>
1550
1551         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
1552         for Cortex-A8.
1553         (arm_movdi_vfp_cortexa8): New pattern.
1554         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
1555         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
1556         instructions when tuning for Cortex-A8.  Set attribute "arch".
1557         * config/arm/arm.md: Move include arm-tune.md up a bit.
1558         (define_attr "arch"): Add "onlya8" and "nota8" values.
1559         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
1560
1561 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
1562
1563         PR bootstrap/48282
1564         Revert:
1565         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1566
1567         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1568         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1569         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1570         * passes.c (init_optimization_passes): Move
1571         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1572
1573 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1574
1575         * c-typeck.c (comptypes_internal): Replace target
1576         hook call of comp_type_attributes by version in tree.c file.
1577         * gimple.c (gimple_types_compatible_p_1): Likewise.
1578         * tree-ssa.c (useless_type_conversion_p): Likewise.
1579         * tree.c (build_type_attribute_qual_variant): Likewise.
1580         (attribute_value_equal): New static helper function.
1581         (comp_type_attributes): New function.
1582         (merge_attributes): Use attribute_value_equal for comparison.
1583         (attribute_list_contained): Likewise.
1584         * tree.h (comp_type_attributes): New prototype.
1585
1586 2011-03-25  Richard Guenther  <rguenther@suse.de>
1587
1588         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
1589         of complex types at -O0.
1590         (verify_gimple_assign_binary): Likewise.
1591         (verify_gimple_assign_ternary): Likewise.
1592
1593 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1594
1595         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
1596         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
1597
1598 2011-03-24  Mark Wielaard  <mjw@redhat.com>
1599
1600         PR debug/48041
1601         * dwarf2out.c (output_abbrev_section): Only write table when
1602         abbrev_die_table_in_use > 1.
1603
1604 2011-02-24  Richard Henderson  <rth@redhat.com>
1605
1606         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
1607         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
1608         (alpha_expand_unaligned_load_words): Use extql.
1609         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
1610         (emit_insxl): Handle all modes for consistency.
1611
1612 2011-02-24  Richard Henderson  <rth@redhat.com>
1613
1614         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
1615         (alpha_expand_unaligned_load): Likewise.
1616         (alpha_expand_unaligned_store): Likewise.
1617         (alpha_expand_unaligned_load_words): Likewise.
1618         (alpha_expand_unaligned_store_words): Likewise.
1619         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
1620         (alpha_split_lock_test_and_set_12): Likewise.
1621         (print_operand, alpha_fold_builtin_extxx): Likewise.
1622         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
1623         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
1624         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
1625         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
1626         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
1627         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
1628         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
1629         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
1630         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
1631         (extwl, extll, extql): Similarly.
1632         (inswh, inslh, insqh): Similarly.
1633         (mskbl, mskwl, mskll, mskql): Similarly.
1634         (mskwh, msklh, mskqh): Similarly.
1635
1636 2011-02-24  Richard Henderson  <rth@redhat.com>
1637
1638         * config/alpha/alpha.md (attribute isa): Add er, ner.
1639         (attribute enabled): Handle them.
1640         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
1641
1642 2011-02-24  Richard Henderson  <rth@redhat.com>
1643
1644         * config/alpha/alpha.md (attribute isa): Add vms.
1645         (attribute enabled): Handle it.
1646         (*movsf): Merge *movsf_{nofix,fix,nofp}.
1647         (*movdf): Merge *movdf_{nofix,fix,nofp}.
1648         (*movtf): Rename from *movtf_internal for consistency.
1649         (*movsi): Merge with *movsi_nt_vms.
1650         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
1651         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
1652         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
1653         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
1654
1655 2011-02-24  Richard Henderson  <rth@redhat.com>
1656
1657         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
1658         (extendqisi2, extendhisi2): Likewise.
1659         (extendqidi2): Simplify BWX/non-BWX expansions.
1660         (extendhidi2): Similarly.
1661
1662 2011-02-24  Richard Henderson  <rth@redhat.com>
1663
1664         * config/alpha/alpha.md (attribute isa): New.
1665         (attribute enabled): New.
1666         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
1667         (zero_extendqisi2, zero_extendqidi2): Similarly.
1668         (zero_extendhisi2, zero_extendhidi2): Similarly.
1669         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
1670
1671 2011-02-24  Richard Henderson  <rth@redhat.com>
1672
1673         * config/alpha/predicates.md (input_operand): Revert last change;
1674         update comment to mention 32-bit VMS rather than Windows.
1675
1676 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1677
1678         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
1679         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
1680         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
1681         * passes.c (init_optimization_passes): Move
1682         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
1683
1684 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1685
1686         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
1687
1688 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
1689
1690         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
1691         correctly.
1692
1693 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
1694
1695         PR debug/48204
1696         * simplify-rtx.c (simplify_const_unary_operation): Call
1697         real_convert when changing mode class with FLOAT_EXTEND.
1698
1699 2011-03-24  Nick Clifton  <nickc@redhat.com>
1700
1701         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
1702         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
1703         * config/rx/rx.c (rx_option_override): Set align_jumps,
1704         align_loops and align_labels if not set by the user.
1705         (rx_align_for_label): New function.
1706         (rx_max_skip_for_label): New function.
1707         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
1708         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
1709         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
1710         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
1711         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
1712
1713 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1714
1715         PR rtl-optimization/48263
1716         * optabs.c (expand_binop_directly): Reinstate convert_modes code
1717         and original commutative_p handling.  Use maybe_gen_insn.
1718
1719 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1720
1721         * reload.c (find_reloads_subreg_address): Add address_reloaded
1722         parameter and return true there if the full address has been
1723         reloaded.
1724         (find_reloads_toplev): Pass address_reloaded flag.
1725         (find_reloads_address_1): Don't use address_reloaded parameter.
1726
1727 2011-03-24  Jeff Law  <law@redhat.com>
1728
1729         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
1730         unused variable "ann".
1731         (remove_unused_locals): Likewise.
1732
1733         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
1734         statement.
1735
1736         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
1737         after it is freed.
1738
1739 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1740
1741         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
1742         for invalid symbolic addresses.
1743         (s390_secondary_reload): Don't use s390_check_symref_alignment for
1744         larl operands.
1745
1746 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1747
1748         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
1749         the argument in calls to fold_truth_not_expr.
1750
1751 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1752
1753         * tree.c (record_node_allocation_statistics): New function.
1754         (make_node_stat, copy_node_stat, build_string): Call it.
1755         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
1756         (build1_stat, build_omp_clause): Likewise.
1757
1758 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1759
1760         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
1761         last commit.
1762
1763 2011-03-24  Richard Guenther  <rguenther@suse.de>
1764
1765         PR tree-optimization/48271
1766         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
1767         blocks that still exist.
1768
1769 2011-03-24  Richard Guenther  <rguenther@suse.de>
1770
1771         PR tree-optimization/48270
1772         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
1773         not free datarefs before ddrs.
1774
1775 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
1776
1777         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
1778         from the address built for a reference with variable offset.
1779
1780 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
1781
1782         PR target/48237
1783         * config/i386/i386.md (*movdf_internal_rex64): Do not split
1784         alternatives that can be handled with movq or movabsq insn.
1785         (*movdf_internal): Disable for !TARGET_64BIT.
1786         (*movdf_internal_nointeger): Ditto.
1787         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
1788
1789 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
1790
1791         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
1792         (FUNCTION_ARG_ADVANCE): Likewise.
1793         * tm.texi.in: Change references to them to hook references.
1794         * tm.texi: Regenerate.
1795         * targhooks.c (default_function_arg): Eliminate check for target macro.
1796         (default_function_incoming_arg): Likewise.
1797         (default_function_arg_advance): Likewise.
1798         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
1799         (function_arg_advance): Likewise.
1800         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
1801
1802 2011-03-24  Richard Guenther  <rguenther@suse.de>
1803
1804         PR middle-end/48269
1805         * tree-object-size.c (addr_object_size): Do not double-account
1806         for MEM_REF offsets.
1807
1808 2011-03-24  Diego Novillo  <dnovillo@google.com>
1809
1810         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
1811         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
1812         (lto_input_data_block): Move from lto-opts.c.  Make extern.
1813         Update all users.
1814         (lto_input_string): Rename from input_string.  Make extern.
1815         Update all users.
1816         * lto-streamer-out.c (lto_output_string_with_length): Rename from
1817         output_string_with_length.
1818         Output 0 to indicate a non-NULL string.  Update all callers to
1819         not emit 0.
1820         (lto_output_string): Rename from output_string.  Make extern.
1821         Update all users.
1822         (lto_output_decl_state_streams): Make extern.
1823         (lto_output_decl_state_refs): Make extern.
1824         * lto-streamer.h (lto_input_string): Declare.
1825         (lto_input_data_block): Declare.
1826         (lto_output_string): Declare.
1827         (lto_output_string_with_length): Declare.
1828         (lto_output_decl_state_streams): Declare.
1829         (lto_output_decl_state_refs): Declare.
1830
1831 2011-03-24  Richard Guenther  <rguenther@suse.de>
1832
1833         PR tree-optimization/46562
1834         * tree.c (build_invariant_address): New function.
1835         * tree.h (build_invariant_address): Declare.
1836         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
1837         a renamed function moved ...
1838         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
1839         Take valueization callback parameter.
1840         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
1841         * gimple-fold.h: New file.
1842         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
1843         (ccp_fold, fold_const_aggregate_ref,
1844         fold_ctor_reference, fold_nonarray_ctor_reference,
1845         fold_array_ctor_reference, fold_string_cst_ctor_reference,
1846         get_base_constructor): Move ...
1847         * gimple-fold.c: ... here.
1848         (gimple_fold_stmt_to_constant_1): New function
1849         split out from ccp_fold.  Take a valueization callback parameter.
1850         Valueize all operands.
1851         (gimple_fold_stmt_to_constant): New wrapper function.
1852         (fold_const_aggregate_ref_1): New function split out from
1853         fold_const_aggregate_ref.  Take a valueization callback parameter.
1854         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
1855         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
1856         invariant POINTER_PLUS_EXPRs to invariant form.
1857         (vn_valueize): New function.
1858         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
1859         * tree-vrp.c (vrp_valueize): New function.
1860         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
1861         to fold statements to constants.
1862         * tree-ssa-pre.c (eliminate): Properly guard propagation of
1863         function declarations.
1864         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
1865         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
1866
1867 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
1868
1869         * config/h8300/predicates.md (jump_address_operand): Fix register
1870         mode check.
1871
1872 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
1873
1874         * doc/invoke.texi (max-stores-to-sink): Document.
1875         * params.h (MAX_STORES_TO_SINK): Define.
1876         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
1877         if either vectorization or if-conversion is disabled.
1878         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
1879         tree-vect-data-refs.c vect_equal_offsets.
1880         (dr_equal_offsets_p): New function.
1881         (find_data_references_in_bb): Remove static.
1882         * tree-data-ref.h (find_data_references_in_bb): Declare.
1883         (dr_equal_offsets_p): Likewise.
1884         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
1885         (vect_drs_dependent_in_basic_block): Update calls to
1886         vect_equal_offsets.
1887         (vect_check_interleaving): Likewise.
1888         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
1889         (cond_if_else_store_replacement): Rename to...
1890         (cond_if_else_store_replacement_1): ... this.  Change arguments and
1891         documentation.
1892         (cond_if_else_store_replacement): New function.
1893         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
1894         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
1895
1896 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
1897
1898         PR target/46934
1899         * config/arm/arm.md (casesi): Use the gen_int_mode() function
1900         to subtract lower bound instead of GEN_INT().
1901
1902 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
1903
1904         PR other/48179
1905         PR other/48221
1906         PR other/48234
1907         * doc/extend.texi (Alignment): Move section to match order in TOC.
1908         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
1909         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
1910
1911 2011-03-23  Jeff Law  <law@redhat.com>
1912
1913         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
1914         before removing the edge.
1915
1916         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
1917         it may have been freed by redirect_branch_edge or
1918         redirect_edge_succ_nodup.
1919
1920 2011-03-23  Richard Guenther  <rguenther@suse.de>
1921
1922         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
1923         (check_va_list_escapes): Likewise.
1924         (check_all_va_list_escapes): Likewise.
1925
1926 2011-03-23  Richard Guenther  <rguenther@suse.de>
1927
1928         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
1929         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
1930         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
1931         (alias.o): Likewise.
1932         (ipa-type-escape.o): Remove.
1933         (ipa-struct-reorg.o): Likewise.
1934         (GTFILES): Remove ipa-struct-reorg.c.
1935         * alias.c: Do not include ipa-type-escape.h.
1936         * tree-ssa-alias.c: Likewise.
1937         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
1938         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
1939         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
1940         and ipa-type-escape passes.
1941         * tree-pass.h (pass_ipa_type_escape): Remove.
1942         (pass_ipa_struct_reorg): Likewise.
1943         * ipa-struct-reorg.h: Remove.
1944         * ipa-struct-reorg.c: Likewise.
1945         * ipa-type-escape.h: Likewise.
1946         * ipa-type-escape.c: Likewise.
1947         * doc/invoke.texi (-fipa-struct-reorg): Remove.
1948         (--param struct-reorg-cold-struct-ratio): Likewise.
1949         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
1950         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
1951         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
1952
1953 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1954
1955         * config/s390/2084.md: Enable all insn reservations also for z9_ec
1956         cpu attribute value.
1957         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
1958         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
1959         * config/s390/s390.c (processor_flags_table): New constant array.
1960         (s390_handle_arch_option): Remove.
1961         (s390_handle_option): Remove s390_handle_arch_option invocations
1962         and OPT_mwarn_framesize_ handling.
1963         (s390_option_override): Remove s390_handle_arch_option invocation.
1964         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
1965         warnings.
1966         * config/s390/s390.md (cpu attribute): Add z9_ec value.
1967         * config/s390/s390.opt (s390_tune, s390_arch)
1968         (march=): Replace s390_arch_option enum and values with
1969         processor_type.  Set variable name to s390_arch.  Set
1970         initialization value.
1971         (mtune=): Replace s390_arch_option with processor_type.  Set
1972         variable name to s390_tune.  Set initialization value.
1973
1974 2011-03-23  Julian Brown  <julian@codesourcery.com>
1975
1976         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
1977         accesses which are not naturally aligned.
1978
1979 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
1980
1981         PR target/47553
1982         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
1983
1984 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
1985
1986         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
1987         parameter from "int" to "enum insn_code".
1988         (expand_operand_type): New enum.
1989         (expand_operand): New structure.
1990         (create_expand_operand): New function.
1991         (create_fixed_operand, create_output_operand): Likewise
1992         (create_input_operand, create_convert_operand_to): Likewise.
1993         (create_convert_operand_from, create_address_operand): Likewise.
1994         (create_integer_operand): Likewise.
1995         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
1996         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
1997         (expand_insn, expand_jump_insn): Likewise.
1998         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
1999         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
2000         (expand_movstr, expand_builtin___clear_cache): Likewise.
2001         (expand_builtin_lock_release): Likewise.
2002         * explow.c (allocate_dynamic_stack_space): Likewise.
2003         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
2004         and use the default handling in that case.
2005         * expmed.c (check_predicate_volatile_ok): Delete.
2006         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
2007         (emit_cstore): Likewise.
2008         * expr.c (emit_block_move_via_movmem): Likewise.
2009         (set_storage_via_setmem, expand_assignment): Likewise.
2010         (emit_storent_insn, try_casesi): Likewise.
2011         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
2012         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
2013         (expand_vec_shift_expr, expand_binop_directly): Likewise.
2014         (expand_twoval_unop, expand_twoval_binop): Likewise.
2015         (expand_unop_direct, emit_indirect_jump): Likewise.
2016         (emit_conditional_move, vector_compare_rtx): Likewise.
2017         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
2018         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
2019         (expand_sync_lock_test_and_set): Likewise.
2020         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
2021         (emit_unop_insn): Likewise.
2022         (expand_copysign_absneg): Change icode to an insn_code.
2023         (create_convert_operand_from_type): New function.
2024         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
2025         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
2026         (expand_insn, expand_jump_insn): Likewise.
2027         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
2028         than const_int_operand for operand 2.
2029
2030 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2031
2032         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
2033         if possible.
2034
2035 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2036
2037         * emit-rtl.c (emit_pattern_before_noloc): New function.
2038         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
2039         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
2040         (emit_pattern_after_noloc): New function.
2041         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
2042         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
2043
2044 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2045
2046         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
2047         (__ffsDI2): Likewise.
2048
2049 2011-03-22  Richard Henderson  <rth@redhat.com>
2050
2051         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
2052         of !TARGET_ABI_OPEN_VMS.
2053         (alpha_trampoline_init, alpha_start_function): Likewise.
2054         (alpha_expand_epilogue, alpha_file_start): Likewise.
2055         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
2056         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
2057         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
2058         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
2059         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
2060
2061 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2062
2063         * config/s390/s390-opts.h: New.
2064         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
2065         s390_arch_flags, s390_warn_framesize, s390_stack_size,
2066         s390_stack_guard): Remove.
2067         (s390_handle_arch_option): Return void.  Take enum
2068         s390_arch_option value instead of string and searching array.
2069         (s390_handle_option): Don't assert that global structures are in
2070         use.  Access variables via opts pointer.  Use error_at.  Don't use
2071         sscanf for -mstack-guard= or -mstack-size=.  Update call to
2072         s390_handle_arch_option.
2073         (s390_option_override): Update call to s390_handle_arch_option.
2074         (s390_emit_prologue): Use %d format for s390_stack_size in
2075         diagnostic.  Use %wd for HOST_WIDE_INT.
2076         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
2077         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
2078         * config/s390/s390.opt (config/s390/s390-opts.h): New
2079         HeaderInclude entry.
2080         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
2081         s390_arch_flags, s390_warn_framesize): New Variable entries.
2082         (s390_arch_option): New Enum and EnumValue entries.
2083         (march=): Use Enum instead of Var.
2084         (mstack-guard=, mstack-size=): Use UInteger and Var.
2085         (mtune=): Use Enum.
2086
2087 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2088
2089         * config/score/score.c (score_handle_option): Don't assert that
2090         global structures are in use.  Access target_flags via opts
2091         pointer.  Use value of -march= option to determine target_flags
2092         settings.
2093         * config/score/score.opt (march=): Use Enum.
2094         (score_arch): New Enum and EnumValue entries.
2095
2096 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2097
2098         * config/mep/mep.c (option_mtiny_specified): Remove.
2099         (mep_option_override): Move register handling for -mivc2 from
2100         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
2101         instead of option_mtiny_specified.
2102         (mep_handle_option): Access target_flags via opts pointer.  Don't
2103         assert that global structures are in use.  Defer part of -mivc2
2104         handling and move it to mep_option_override.
2105         * config/mep/mep.opt (IVC2): New Mask entry.
2106         (mivc2): Use Var and Defer instead of Mask.
2107
2108 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2109
2110         * config/v850/v850-opts.h: New.
2111         * config/v850/v850.c (small_memory): Replace with
2112         small_memory_physical_max array.  Make that array static const.
2113         (v850_handle_memory_option): Take integer value of argument.  Take
2114         gcc_options pointer, option text and location.  Return void.
2115         Update for changes to small memory structures.
2116         (v850_handle_option): Access target_flags via opts pointer.  Don't
2117         assert that global structures are in use.  Update calls to
2118         v850_handle_memory_option.
2119         (v850_encode_data_area): Update references to small memory settings.
2120         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
2121         (enum small_memory_type): Move to v850-opts.h.
2122         * config/v850/v850.opt (config/v850/v850-opts.h): New
2123         HeaderInclude entry.
2124         (small_memory_max): New Variable entry.
2125         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
2126         (mtda, mzda): Likewise.
2127
2128 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2129
2130         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
2131         pointer.  Don't assert that global structures are in use.
2132
2133 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2134
2135         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
2136         via opts pointer.  Don't assert that global structures are in use.
2137
2138 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2139
2140         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
2141         (munix=93): Use Var.
2142         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
2143         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
2144         * config/pa/pa-opts.h: New.
2145         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
2146         (pa_handle_option): Don't assert that global structures are in
2147         use.  Access target_flags via opts pointer.  Don't handle
2148         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
2149         OPT_munix_98 here.
2150         (pa_option_override): Handle deferred OPT_mfixed_range_.
2151
2152 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2153
2154         * config/mn10300/mn10300-opts.h: New.
2155         * config/mn10300/mn10300.c (mn10300_processor,
2156         mn10300_tune_string): Remove.
2157         (mn10300_handle_option): Don't assert that global structures are
2158         in use.  Access mn10300_processor via opts pointer.  Don't handle
2159         OPT_mtune_ here.
2160         * config/mn10300/mn10300.h (enum processor_type): Move to
2161         mn10300-opts.h.
2162         (mn10300_processor): Remove.
2163         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
2164         HeaderInclude entry.
2165         (mn10300_processor): New Variable entry.
2166         (mtune=): Use Var.
2167
2168 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2169
2170         * config/microblaze/microblaze.c: Don't include opts.h.
2171         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
2172         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
2173         (mno-clearbss): Use Var and Warn.
2174
2175 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2176
2177         * config/m32r/m32r-opts.h: New.
2178         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
2179         (m32r_handle_option): Don't assert that global structures are in
2180         use.  Access target_flags and m32r_cache_flush_func via opts
2181         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
2182         OPT_mno_flush_trap here.
2183         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
2184         include of m32r-opts.h.
2185         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
2186         HeaderInclude entry.
2187         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
2188         (mmodel=): Use Enum and Var.
2189         (m32r_model): New Enum and EnumValue entries.
2190         (mno-flush-trap): Use Var.
2191         (msdata=): Use Enum and Var.
2192         (m32r_sdata): New Enum and EnumValue entries.
2193
2194 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2195
2196         * config/m32c/m32c.c: Don't include opts.h.
2197         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
2198         m32c_handle_option): Remove.
2199         (m32c_option_override): Check global_options_set.x_target_memregs
2200         instead of target_memregs_set.
2201         * config/m32c/m32c.h (target_memregs): Remove.
2202         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
2203         variable.
2204
2205 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2206
2207         * config/iq2000/iq2000-opts.h: New.
2208         * config/iq2000/iq2000.c: Don't include opts.h.
2209         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
2210         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
2211         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
2212         HeaderInclude entry.
2213         (iq2000_tune): New Variable entry.
2214         (march=): Add comment.  Use Enum.
2215         (iq2000_arch): New Enum and EnumValue entries.
2216         (mcpu=): Use Enum and Var.
2217         (iq2000_tune): New Enum and EnumValue entries.
2218
2219 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2220
2221         * config/ia64/ia64-opts.h: New.
2222         * config/ia64/ia64.c (ia64_tune): Remove.
2223         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
2224         here.  Use error_at.
2225         (ia64_option_override): Handle deferred OPT_mfixed_range_.
2226         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
2227         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
2228         HeaderInclude entry.
2229         (ia64_tune): New Variable entry.
2230         (mfixed-range=): Use Defer and Var.
2231         (mtune=): Use Enum and Var.
2232         (ia64_tune): New Enum and EnumValue entries.
2233
2234 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2235
2236         * config/frv/frv-opts.h: New.
2237         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
2238         frv-opts.h.
2239         (frv_cpu_type): Remove.
2240         * config/frv/frv.c: Don't include opts.h.
2241         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
2242         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
2243         (frv_cpu_type): New Variable entry.
2244         (frv_cpu): New Enum and EnumValue entries.
2245
2246 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2247
2248         * config/cris/cris.c (cris_handle_option): Access target_flags via
2249         opts pointer.  Don't assert that global structures are in use.
2250         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
2251         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
2252
2253 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2254
2255         * config/bfin/bfin-opts.h: New.
2256         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
2257         bfin_si_revision, bfin_workarounds): Remove.
2258         (bfin_cpus): Make static const.
2259         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
2260         not bfin_lib_id_given.
2261         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
2262         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
2263         pointer. Use error_at.  Don't assert that global structures are in use.
2264         * config/bfin/bfin.h: Include bfin-opts.h.
2265         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
2266         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
2267         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
2268         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
2269         entries.
2270
2271 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2272
2273         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
2274         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
2275         or -msoft-float here.
2276         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
2277         -msoft-float and -mhard-float.
2278         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
2279         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2280         msoft-float.
2281         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
2282         -msoft-float.
2283         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
2284         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
2285         not mhard-float.
2286         (LIBGCC_SPEC): Don't handle -msoft-float.
2287         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
2288         -mhard-float.
2289         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
2290         msoft-float.
2291         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
2292         -mfloat-abi=*, not -msoft-float and -mhard-float.
2293         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
2294         -msoft-float.
2295         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
2296         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
2297         mhard-float and msoft-float.
2298         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
2299         mfloat-abi=soft in comments, not mhard-float and msoft-float.
2300         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
2301         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
2302         mhard-float.
2303         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
2304         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
2305         msoft-float.
2306         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
2307         not mhard-float.
2308         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
2309         not msoft-float.
2310
2311 2011-03-22  Richard Henderson  <rth@redhat.com>
2312
2313         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
2314         TARGET_ABI_WINDOWS_NT.
2315         (alpha_output_function_end_prologue): Likewise.
2316         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
2317         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2318         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
2319         (trap, *movsi_nt_vms): Likewise.
2320         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
2321         (*tablejump_osf_nt_internal): Remove.
2322         * config/alpha/predicates.md (input_operand): Only test Pmode.
2323
2324 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2325
2326         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
2327         via opts pointer.  Use error_at.  Don't assert that global
2328         structures are in use.
2329
2330 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2331
2332         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
2333         (ix86_handle_option): Access ix86_isa_flags and
2334         ix86_isa_flags_explicit via opts pointer.  Don't assert that
2335         global structures are in use.
2336         (ix86_function_specific_save, ix86_function_specific_restore):
2337         Update ix86_isa_flags_explicit field name.
2338         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
2339         (ix86_isa_flags_explicit): Rename TargetSave entry to
2340         x_ix86_isa_flags_explicit.
2341
2342 2011-03-22  Richard Henderson  <rth@redhat.com>
2343
2344         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
2345         (alpha_option_override, direct_return): Likewise.
2346         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
2347         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
2348         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
2349         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
2350         (alpha_expand_epilogue, alpha_end_function): Likewise.
2351         (alpha_init_libfuncs): Likewise.
2352         (struct machine_function): Remove unicosmk members.
2353         (print_operand) ['t']: Remove.
2354         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
2355         unicosmk_output_module_name, unicosmk_output_common,
2356         current_section_align, unicosmk_output_text_section_asm_op,
2357         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
2358         unicosmk_section_type_flags, unicosmk_unique_section,
2359         unicosmk_asm_named_section, unicosmk_insert_attributes,
2360         unicosmk_output_align, unicosmk_defer_case_vector,
2361         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
2362         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
2363         unicosmk_output_ssib, unicosmk_add_call_info_word,
2364         unicosmk_extern_head, unicosmk_output_default_externs,
2365         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
2366         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
2367         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
2368         * config/alpha/alpha-protos.h: Update.
2369         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
2370         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
2371         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
2372         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
2373         (*mulsi_se, mulvsi3): Likewise.
2374         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
2375         (*divmodsi_internal, call, call_value, realign): Likewise.
2376         (moddi3, umoddi3): Likewise; remove duplicate expander.
2377         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
2378         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
2379         (*movdi_nofix): Remove r/U alternative.
2380         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
2381         * config/alpha/constraints.md ("U"): Remove.
2382         * config/alpha/predicates.md (call_operand"): Don't test
2383         TARGET_ABI_UNICOSMK.
2384
2385 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2386
2387         * target.def (handle_option): Take gcc_options and
2388         cl_decoded_option pointers and location_t.
2389         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
2390         * doc/tm.texi: Regenerate.
2391         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
2392         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
2393         * lto-opts.c (lto_reissue_options): Generate option structure for
2394         targetm.handle_option call.
2395         * opts.c (target_handle_option): Update call to
2396         targetm.handle_option.  Remove assertions about values now passed
2397         down to hook.
2398         * targhooks.c (default_target_handle_option): New.
2399         * targhooks.h (default_target_handle_option): Declare.
2400         * config/alpha/alpha.c: Include opts.h.
2401         (alpha_handle_option): Update to new hook interface.
2402         * config/arm/arm.c: Include opts.h.
2403         (arm_handle_option): Update to new hook interface.
2404         * config/arm/t-arm (arm.o): Update dependencies.
2405         * config/bfin/bfin.c: Include opts.h.
2406         (bfin_handle_option): Update to new hook interface.
2407         * config/cris/cris.c: Include opts.h.
2408         (cris_handle_option): Update to new hook interface.
2409         * config/frv/frv.c: Include opts.h.
2410         (frv_handle_option): Update to new hook interface.
2411         * config/i386/i386.c: Include opts.h.
2412         (ix86_handle_option): Update to new hook interface.
2413         (ix86_valid_target_attribute_inner_p): Generate option structure
2414         for call to ix86_handle_option.
2415         * config/i386/t-i386 (i386.o): Update dependencies.
2416         * config/ia64/ia64.c: Include opts.h.
2417         (ia64_handle_option): Update to new hook interface.
2418         * config/ia64/t-ia64 (ia64.o): Update dependencies.
2419         * config/iq2000/iq2000.c: Include opts.h.
2420         (iq2000_handle_option): Update to new hook interface.
2421         * config/m32c/m32c.c: Include opts.h.
2422         (m32c_handle_option): Update to new hook interface.
2423         * config/m32r/m32r.c: Include opts.h.
2424         (m32r_handle_option): Update to new hook interface.
2425         * config/m68k/m68k.c: Include opts.h.
2426         (m68k_handle_option): Update to new hook interface.
2427         * config/mep/mep.c: Include opts.h.
2428         (mep_handle_option): Update to new hook interface.
2429         * config/microblaze/microblaze.c: Include opts.h.
2430         (microblaze_handle_option): Update to new hook interface.
2431         * config/mips/mips.c: Include opts.h.
2432         (mips_handle_option): Update to new hook interface.
2433         * config/mn10300/mn10300.c: Include opts.h.
2434         (mn10300_handle_option): Update to new hook interface.
2435         * config/pa/pa.c: Include opts.h.
2436         (pa_handle_option): Update to new hook interface.
2437         * config/pdp11/pdp11.c: Include opts.h.
2438         (pdp11_handle_option): Update to new hook interface.
2439         * config/rs6000/rs6000.c: Include opts.h.
2440         (rs6000_handle_option): Update to new hook interface.
2441         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
2442         * config/rx/rx.c: Include opts.h.
2443         (rx_handle_option): Update to new hook interface.
2444         * config/s390/s390.c: Include opts.h.
2445         (s390_handle_option): Update to new hook interface.
2446         * config/score/score.c: Include opts.h.
2447         (score_handle_option): Update to new hook interface.
2448         * config/sh/sh.c: Include opts.h.
2449         (sh_handle_option): Update to new hook interface.
2450         * config/sparc/sparc.c: Include opts.h.
2451         (sparc_handle_option): Update to new hook interface.
2452         * config/v850/v850.c: Include opts.h.
2453         (v850_handle_option): Update to new hook interface.
2454
2455 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2456
2457         * gcc.c (driver_unknown_option_callback): Only permit and save
2458         unknown -Wno- options.
2459         (driver_wrong_lang_callback): Save options directly instead of via
2460         driver_unknown_option_callback.
2461
2462 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2463
2464         * combine.c (simplify_set): Try harder to find the best CC mode when
2465         simplifying a nested COMPARE on the RHS.
2466
2467 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
2468
2469         * config/alpha/gnu.h: Remove.
2470         * config/arc: Remove directory.
2471         * config/arm/netbsd.h: Remove.
2472         * config/arm/t-pe: Remove.
2473         * config/crx: Remove directory.
2474         * config/i386/netbsd.h: Remove.
2475         * config/m68hc11: Remove directory.
2476         * config/m68k/uclinux-oldabi.h: Remove.
2477         * config/mcore/mcore-pe.h: Remove.
2478         * config/mcore/t-mcore-pe: Remove.
2479         * config/netbsd-aout.h: Remove.
2480         * config/rs6000/gnu.h: Remove.
2481         * config/sh/sh-symbian.h: Remove.
2482         * config/sh/symbian-base.c: Remove.
2483         * config/sh/symbian-c.c: Remove.
2484         * config/sh/symbian-cxx.c: Remove.
2485         * config/sh/symbian-post.h: Remove.
2486         * config/sh/symbian-pre.h: Remove.
2487         * config/sh/t-symbian: Remove.
2488         * config/svr3.h: Remove.
2489         * config/vax/netbsd.h: Remove.
2490         * config.build: Don't handle i[34567]86-*-pe.
2491         * config.gcc: Remove handling of deprecations for most deprecated
2492         targets.
2493         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
2494         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
2495         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
2496         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
2497         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
2498         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
2499         Remove cases.
2500         * config.host: Don't handle i[34567]86-*-pe.
2501         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
2502         (ASM_SPEC32): Don't handle -mcall-gnu.
2503         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
2504         -mcall-gnu.
2505         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
2506         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
2507         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
2508         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
2509         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
2510         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
2511         conditional on SYMBIAN.
2512         * configure.ac: Don't handle powerpc*-*-gnu*.
2513         * configure: Regenerate.
2514         * doc/extend.texi (interrupt attribute): Don't mention CRX.
2515         * doc/install-old.texi (m6811, m6812): Don't mention.
2516         * doc/install.texi (arc-*-elf*): Don't document multilib option.
2517         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
2518         (m68k-uclinuxoldabi): Don't mention.
2519         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
2520         Remove.
2521         (-mcall-gnu): Remove.
2522         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
2523         families): Remove constraint documentation.
2524
2525 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
2526
2527         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
2528         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
2529         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
2530
2531 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
2532
2533         * config/avr/avr-protos.h (expand_epilogue): Change prototype
2534         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
2535         * config/avr/avr.c (init_cumulative_args)
2536         (avr_function_arg_advance): Use it.
2537         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
2538         sibcall epilogues.
2539         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
2540         (avr_function_ok_for_sibcall): ...this new function.
2541         (avr_lookup_function_attribute1): New static Function.
2542         (avr_naked_function_p, interrupt_function_p)
2543         (signal_function_p, avr_OS_task_function_p)
2544         (avr_OS_main_function_p): Use it.
2545         * config/avr/avr.md ("sibcall", "sibcall_value")
2546         ("sibcall_epilogue"): New expander.
2547         ("*call_insn", "*call_value_insn"): New insn.
2548         ("call_insn", "call_value_insn"): Remove
2549         ("call", "call_value", "epilogue"): Change expander to handle
2550         sibling calls.
2551
2552 2011-03-21  Nick Clifton  <nickc@redhat.com>
2553
2554         * doc/invoke.texi (Overall Options): Move closing brace to end of
2555         options list.
2556         (Optimization Options): Add missing @gol.
2557         (Directory Options): Likewise.
2558         (i386 and x86-64 Options): Likewise.
2559         (RS6000 and PowerPC Options): Likewise.
2560         (i386 and x86-64 Windows Options): Likewise.
2561         (V850 Options): Add text missing from descriptions.
2562
2563 2011-03-22  Richard Henderson  <rth@redhat.com>
2564
2565         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
2566         (avr_incoming_return_addr_rtx): New.
2567         (emit_push_byte): New.
2568         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
2569         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
2570         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
2571         (emit_pop_byte): New.
2572         (expand_epilogue): Use it.  Pop frame pointer by bytes.
2573         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
2574         (INCOMING_RETURN_ADDR_RTX): New.
2575         (INCOMING_FRAME_SP_OFFSET): New.
2576         (ARG_POINTER_CFA_OFFSET): New.
2577         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
2578         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
2579         (pophi): Remove.
2580
2581         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
2582
2583 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2584
2585         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
2586         (FUNCTION_ARG_ADVANCE): Likewise.
2587         * tm.texi.in: Change references to them to hook references.
2588         * tm.texi: Regenerate.
2589         * targhooks.c (default_function_arg): Eliminate check for target
2590         macro.
2591         (default_function_incoming_arg): Likewise.
2592         (default_function_arg_advance): Likewise.
2593         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
2594         (function_arg_advance): Likewise.
2595         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
2596
2597 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
2598
2599         * tree.c (build_call_1): New function.
2600         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
2601
2602 2011-03-22  Richard Guenther  <rguenther@suse.de>
2603
2604         PR tree-optimization/48228
2605         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
2606         for single-arg PHIs.
2607
2608 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
2609
2610         PR rtl-optimization/48143
2611         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
2612         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
2613         sse2_cvtps2pd): Likewise.
2614
2615 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2616
2617         * recog.c (canonicalize_change_group): Use validate_unshare_change.
2618
2619 2011-03-22  Richard Guenther  <rguenther@suse.de>
2620
2621         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
2622         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
2623         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
2624         and REALIGN_LOAD_EXPR.
2625         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
2626         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
2627         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
2628         DOT_PROD_EXPR case ...
2629         (expand_expr_real_2): ... here.
2630         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
2631         and REALIGN_LOAD_EXPR.
2632         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
2633         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
2634         (vect_create_epilog_for_reduction): Likewise.
2635         (vectorizable_reduction): Likewise.
2636         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
2637         * tree-vect-stmts.c (vectorizable_load): Likewise.
2638
2639 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
2640
2641         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
2642
2643 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2644
2645         * config/s390/s390.c (s390_delegitimize_address): Fix offset
2646         handling for PLTOFF/GOTOFF.
2647
2648 2011-03-22  Nick Clifton  <nickc@redhat.com>
2649
2650         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
2651         trailing backslash from the end of the macro definition.
2652
2653 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2654
2655         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
2656         and PLT unspecs.
2657
2658 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
2659
2660         * expr.h (prepare_operand): Move to...
2661         * optabs.h (prepare_operand): ...here and change the insn code
2662         parameter from "int" to "enum insn_code".
2663         (insn_operand_matches): Declare.
2664         * expr.c (init_expr_target): Use insn_operand_matches.
2665         (compress_float_constant): Likewise.
2666         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
2667         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
2668         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
2669         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
2670         Likewise.
2671         (gen_cond_trap): Likewise.
2672         (prepare_operand): Likewise.  Change icode to an insn_code.
2673         (insn_operand_matches): New function.
2674         * reload.c (find_reloads_address_1): Use insn_operand_matches.
2675         * reload1.c (gen_reload): Likewise.
2676         * targhooks.c (default_secondary_reload): Likewise.
2677
2678 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2679
2680         * config/alpha/alpha.md (unspec): New define_c_enum.
2681         (unspecv): Ditto.
2682
2683 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
2684
2685         PR debug/48214
2686         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
2687         between a call and its CALL_ARG_LOCATION note.
2688
2689 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
2690
2691         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
2692
2693 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
2694
2695         PR c/42544
2696         PR c/48197
2697         * c-common.c (shorten_compare): If primopN is first sign-extended
2698         to opN and then zero-extended to result type, set primopN to opN.
2699
2700 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
2701
2702         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
2703         for barrier handlers.
2704
2705 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2706
2707         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
2708         UNSPEC constants to be in the unspec enumeration, and redefine
2709         all UNSPECV constants to be in the unspecv enumeration, so that
2710         dumps print which unspec/unspec_volatile this is.
2711         * config/rs6000/vector.md (UNSPEC_*): Ditto.
2712         * config/rs6000/paired.md (UNSPEC_*): Ditto.
2713         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
2714         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
2715         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
2716
2717         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
2718         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
2719         UNSPECV_LWSYNC, since these are used as unspec_volatile.
2720         * config/rs6000/sync.md (isync, lwsync): Ditto.
2721
2722 2011-03-21  Richard Guenther  <rguenther@suse.de>
2723
2724         * params.def (lto-min-partition): Fix typo.
2725
2726 2011-03-21  Richard Guenther  <rguenther@suse.de>
2727
2728         PR c/47939
2729         * c-decl.c (grokdeclarator): Drop to the main variant only
2730         for array types.  Drop flag_gen_aux_info check.
2731
2732 2011-03-21  Richard Guenther  <rguenther@suse.de>
2733
2734         PR translation/47911
2735         * params.def (lto-partitions): Fix typo.
2736         (lto-min-partition): Fix wording.
2737
2738 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
2739
2740         * config/rs6000/t-freebsd: Remove duplication from file.
2741
2742 2011-03-21  Richard Guenther  <rguenther@suse.de>
2743
2744         PR middle-end/47661
2745         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
2746
2747 2011-03-21  Richard Guenther  <rguenther@suse.de>
2748
2749         PR lto/48210
2750         * params.def (lto-partitions): Require at least 1 partition.
2751
2752 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2753
2754         * gthr-solaris.h: Remove.
2755         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
2756         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
2757         (LIB_SPEC): Likewise.
2758         * config/sol2.opt (threads): Remove.
2759         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
2760         (sparc*-*-solaris2*): Likewise.
2761         * configure.ac (enable_threads): Enable solaris support.
2762         * configure: Regenerate.
2763         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
2764         * doc/install.texi (Configuration, --enable-threads=lib): Remove
2765         solaris.
2766
2767 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2768
2769         * config.gcc: Obsolete *-*-solaris2.8*.
2770         * doc/install.texi (Specific, *-*-solaris2*): Document it.
2771
2772 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2773
2774         PR bootstrap/48135
2775         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
2776         reference.  Solaris 8 perl works.
2777
2778 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2779
2780         PR bootstrap/48135
2781         * doc/install.texi (Prerequisites): Move jar etc. up.
2782         Explain support library version requirements.
2783
2784 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2785
2786         PR bootstrap/48135
2787         * doc/install.texi (Prerequisites): Move Perl to build
2788         requirements.  Always necessary on Solaris 2 with Sun ld.
2789
2790 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2791
2792         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
2793         binutils 2.21.
2794         (Specific, i?86-*-solaris2.[89]): Likewise.
2795         (Specific, i?86-*-solaris2.10): Likewise.
2796         (Specific, mips-sgi-irix6): Likewise.
2797         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
2798         Update for binutils 2.21.
2799
2800 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2801
2802         * configure.ac (gcc_cv_lto_plugin): Fix typo.
2803         Allow -fuse-linker-plugin for non-default plugin linker.
2804         * configure: Regenerate.
2805
2806 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
2807
2808         PR bootstrap/48167
2809         * gengtype.c (files_rules): Added rule for cp/parser.h.
2810
2811 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
2812
2813         PR target/48213
2814         * config/s390/s390.c (s390_delegitimize_address): Don't call
2815         lowpart_subreg if orig_x has BLKmode.
2816
2817 2011-03-21  Kai Tietz  <ktietz@redhat.com>
2818
2819         PR target/12171
2820         * doc/plugins.texi: Adjust documentation for plugin register_callback.
2821         * tree.h (attribute_spec): Add new member affects_type_identity.
2822         * attribs.c (empty_attribute_table): Adjust attribute_spec
2823         initializers.
2824         * config/alpha/alpha.c: Likewise.
2825         * config/arc/arc.c: Likewise.
2826         * config/arm/arm.c: Likewise.
2827         * config/avr/avr.c: Likewise.
2828         * config/bfin/bfin.c: Likewise.
2829         * config/crx/crx.c: Likewise.
2830         * config/darwin.h: Likewise.
2831         * config/h8300/h8300.c: Likewise.
2832         * config/i386/cygming.h: Likewise.
2833         * config/i386/i386.c: Likewise.
2834         * config/ia64/ia64.c: Likewise.
2835         * config/m32c/m32c.c: Likewise.
2836         * config/m32r/m32r.c: Likewise.
2837         * config/m68hc11/m68hc11.c: Likewise.
2838         * config/m68k/m68k.c: Likewise.
2839         * config/mcore/mcore.c: Likewise.
2840         * config/mep/mep.c: Likewise.
2841         * config/microblaze/microblaze.c: Likewise.
2842         * config/mips/mips.c: Likewise.
2843         * config/rs6000/rs6000.c: Likewise.
2844         * config/rx/rx.c: Likewise.
2845         * config/sh/sh.c: Likewise.
2846         * config/sol2.h: Likewise.
2847         * config/sparc/sparc.c: Likewise.
2848         * config/spu/spu.c: Likewise.
2849         * config/stormy16/stormy16.c: Likewise.
2850         * config/v850/v850.c: Likewise.
2851
2852 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
2853
2854         * simplify-rtx.c (simplify_binary_operation_1): Handle
2855         (xor (and A B) C) case when B and C are both constants.
2856
2857 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
2858
2859         * tree-dfa.c (add_referenced_var): Fix typo in comment.
2860
2861 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
2862
2863         PR bootstrap/48168
2864         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
2865
2866 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
2867
2868         PR rtl-optimization/48156
2869         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
2870         assume df and df_lr are not NULL.
2871
2872 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2873
2874         PR debug/48023
2875         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
2876         between a call and its CALL_ARG_LOCATION note.
2877
2878 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
2879
2880         PR debug/48178
2881         * config/sh/sh.c (find_barrier): Don't emit a constant pool
2882         between a call and its corresponding CALL_ARG_LOCATION note.
2883
2884 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
2885
2886         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
2887         instead of loop. Use HARD_REGISTER_NUM_P predicate.
2888         * haifa-sched.c (setup_ref_regs): Ditto.
2889         * caller-save.c (add_used_regs_1): Ditto.
2890         * dse.c (look_for_hardregs): Ditto.
2891         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
2892         * sched-rgn.c (check_live_1): Ditto.
2893
2894 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
2895
2896         * c-decl.c (diagnose_mismatched_decls): Give an error for
2897         redefining a typedef with variably modified type.
2898
2899 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
2900
2901         * c-decl.c (grokfield): Don't allow typedefs for structures or
2902         unions with no tag by default.
2903         * doc/extend.texi (Unnamed Fields): Update.
2904
2905 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
2906
2907         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2908         Rewrite using indirect functions.
2909         (lwp_slwpcb): Ditto.
2910         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
2911         (avx_vinsertf128<mode>): Ditto.
2912
2913 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2914
2915         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
2916         unspecs.
2917
2918 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2919
2920         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
2921         splitting between a call and its corresponding CALL_ARG_LOCATION note.
2922
2923 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
2924
2925         PR rtl-optimization/48170
2926         * gcse.c (hoist_code): Remove bogus asserts.
2927
2928 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
2929
2930         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
2931         computation for prologue/epilogue.
2932
2933 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2934
2935         * Makefile.in (check-consistency): Remove.
2936
2937 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
2938
2939         PR debug/48176
2940         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
2941         arange_table_in_use is 0, but either text_section_used or
2942         cold_text_section_used is true.  Don't call it if
2943         !info_section_emitted.
2944
2945 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
2946
2947         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
2948         FUNCTION_VALUE_REGNO_P): Remove.
2949         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
2950         Remove.
2951         * config/avr/avr.c (avr_ret_register): Make static inline.
2952         (avr_function_value_regno_p): New function.
2953         (avr_libcall_value): Make static. Add 'func' argument.
2954         (avr_function_value): Make static. Rename 'func' argument to
2955         'fn_decl_or_type', forward it to avr_libcall_value. Call
2956         avr_ret_register function instead of RET_REGISTER macro.
2957         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
2958
2959 2011-03-18  Jason Merrill  <jason@redhat.com>
2960
2961         PR c++/23372
2962         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
2963
2964 2011-03-18  Richard Guenther  <rguenther@suse.de>
2965
2966         * doc/install.texi (--enable-gold): Remove.
2967         (--with-plugin-ld): Document.
2968         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
2969
2970 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
2971
2972         PR middle-end/47790
2973         * expr.c (optimize_bitfield_assignment_op): Revamp to work
2974         again after expansion changes.
2975
2976 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
2977
2978         * combine.c (try_combine): Do simplification only call of
2979         subst() on i2 even when i1 is present. Update comments.
2980
2981 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
2982
2983         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
2984         and UNSPEC_PCREL_SYMOFF.
2985
2986 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2987
2988         * config/s390/s390.md: Use define_c_enum for the unspec constant
2989         definitions.
2990
2991 2011-03-18  Richard Henderson  <rth@redhat.com>
2992             Jakub Jelinek  <jakub@redhat.com>
2993
2994         PR bootstrap/48161
2995         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
2996         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
2997
2998 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2999
3000         PR middle-end/47725
3001         * combine.c (cant_combine_insn_p): Don't check zero/sign
3002         extended hard registers.
3003
3004 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3005
3006         PR middle-end/47725
3007         * combine.c (cant_combine_insn_p): Check zero/sign extended
3008         hard registers.
3009
3010 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
3011
3012         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3013         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
3014         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
3015         Change return type to bool.
3016         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3017
3018 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3019
3020         PR debug/48163
3021         * var-tracking.c (prepare_call_arguments): If CALL target
3022         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
3023         pc instead of looking it up using cselib_lookup and use
3024         Pmode for it if x has VOIDmode.
3025         * dwarf2out.c (gen_subprogram_die): If also both first and
3026         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
3027
3028         PR debug/48163
3029         * function.c (assign_parms): For data.passed_pointer parms
3030         use MEM of data.entry_parm instead of data.entry_parm itself
3031         as DECL_INCOMING_RTL.
3032         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
3033         also when passed and declared mode is the same, DECL_RTL
3034         is a MEM with pseudo as address and DECL_INCOMING_RTL is
3035         a MEM too.
3036
3037 2011-03-16  Jeff Law  <law@redhat.com>
3038
3039         PR rtl-optimization/37273
3040         * ira-costs.c (scan_one_insn): Detect constants living in memory and
3041         handle them like argument loads from stack slots.  Do not double
3042         count memory for memory constants and argument loads from stack slots.
3043
3044 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3045
3046         PR debug/48160
3047         * var-tracking.c (prepare_call_arguments): Check SUBREG.
3048
3049 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3050
3051         PR target/48171
3052         * config/i386/i386.opt: Add Save to -mavx and -mfma.
3053
3054 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3055
3056         PR bootstrap/48153
3057         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
3058         if dwarf_strict.
3059         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
3060         Clear call_arg_locations and call_arg_loc_last always.
3061
3062         PR middle-end/48152
3063         * var-tracking.c (prepare_call_arguments): If argument needs to be
3064         passed by reference, adjust argtype and mode.
3065
3066 2011-03-17  Richard Guenther  <rguenther@suse.de>
3067
3068         PR middle-end/48134
3069         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
3070         a value make sure to fold the statement.
3071
3072 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
3073
3074         PR target/43872
3075         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
3076         return condition with !cfun->calls_alloca.
3077
3078 2011-03-17  Richard Guenther  <rguenther@suse.de>
3079
3080         PR bootstrap/48148
3081         * lto-cgraph.c (input_overwrite_node): Clear the abstract
3082         origin for decls in other ltrans units.
3083         (input_varpool_node): Likewise.
3084
3085 2011-03-17  Richard Guenther  <rguenther@suse.de>
3086
3087         PR middle-end/48165
3088         * tree-object-size.c (compute_object_offset): Properly return
3089         the offset operand of MEM_REFs as sizetype.
3090
3091 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
3092
3093         PR rtl-optimization/48141
3094         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
3095         * dse.c: Include params.h.
3096         (active_local_stores_len): New variable.
3097         (add_wild_read, dse_step1): Clear it when setting active_local_stores
3098         to NULL.
3099         (record_store, check_mem_read_rtx): Decrease it when removing
3100         from the chain.
3101         (scan_insn): Likewise.  Increase it when adding to chain, if it
3102         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
3103         set active_local_stores to NULL before the addition.
3104         * Makefile.in (dse.o): Depend on $(PARAMS_H).
3105
3106         PR rtl-optimization/48141
3107         * dse.c (record_store): If no positions are needed in an insn
3108         that cannot be deleted, at least unchain it from active_local_stores.
3109
3110 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
3111
3112         PR debug/47510
3113         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
3114         (lookup_type_die_strip_naming_typedef): ... here.
3115         (get_context_die): Use it.
3116         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
3117         the anonymous struct named by the naming typedef.
3118
3119 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3120
3121         PR target/48154
3122         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
3123         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3124
3125 2011-03-16  Jeff Law  <law@redhat.com>
3126
3127         * tree-vrp.c (identify_jump_threads): Slightly simplify type
3128         check for operands of conditional.  Allow type to be a pointer.
3129
3130 2011-03-16  Richard Guenther  <rguenther@suse.de>
3131
3132         PR tree-optimization/48149
3133         * fold-const.c (fold_binary_loc): Fold
3134         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
3135
3136 2011-03-16  Richard Guenther  <rguenther@suse.de>
3137
3138         PR tree-optimization/26134
3139         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
3140         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
3141         (non_rewritable_mem_ref_base): Handle complex type component
3142         accesses, constrain offsets for vector and complex extracts
3143         more properly.
3144
3145 2011-03-16  Richard Guenther  <rguenther@suse.de>
3146
3147         PR tree-optimization/48146
3148         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
3149         operands avoiding the need for renaming.
3150
3151 2011-03-16  Richard Guenther  <rguenther@suse.de>
3152
3153         * gimple-fold.c (maybe_fold_reference): Open-code relevant
3154         constant folding.  Move MEM_REF canonicalization first.
3155         Rely on fold_const_aggregate_ref for initializer folding.
3156         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
3157
3158 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3159
3160         PR middle-end/48136
3161         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
3162         arg0/arg1 or their arguments are always fold converted to matching
3163         types.
3164
3165         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
3166         to nargs.
3167
3168 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3169
3170         PR lto/46944
3171         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
3172         Handle in-tree gold.
3173         (ld_vers): Extract binutils version for gold.
3174         (gcc_cv_ld_hidden): Handle gold here.
3175         (gcc_cv_lto_plugin): Determine level of linker plugin support.
3176         * configure: Regenerate.
3177         * config.in: Regenerate.
3178         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
3179         -fuse-linker-plugin otherwise.
3180         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
3181         (LINK_COMMAND_SPEC): Use it.
3182         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
3183
3184 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
3185
3186         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
3187         * calls.c: Remove debug.h include.
3188         (emit_call_1): Don't call virtual_call_token debug hook.
3189         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
3190         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
3191         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
3192         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
3193         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
3194         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
3195         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
3196         dwarf2out_virtual_call): Remove.
3197         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
3198         copy_call_info and virtual_call hooks.
3199         (dwarf2out_init): Don't initialize vcall_insn_table,
3200         debug_dcall_section and debug_vcall_section.
3201         (prune_unused_types): Don't mark nodes from dcall_table.
3202         (dwarf2out_finish): Don't output dcall or vcall tables.
3203         * final.c (final_scan_insn): Don't call direct_call or
3204         virtual_call debug hooks.
3205         * debug.h (struct gcc_debug_hooks): Remove direct_call,
3206         virtual_call_token, copy_call_info and virtual_call hooks.
3207         (debug_nothing_uid): Remove prototype.
3208         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
3209         copy_call_info and virtual_call hooks.
3210         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3211         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3212         * debug.c (do_nothing_debug_hooks): Likewise.
3213         (debug_nothing_uid): Remove.
3214         * doc/invoke.texi (-fenable-icf-debug): Remove.
3215         * common.opt (-fenable-icf-debug): Likewise.
3216
3217         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
3218         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
3219         call's MEM.  Handle functions returning aggregate through a hidden
3220         first pointer.  For virtual calls add clobbered pc to call arguments
3221         chain.
3222         * dwarf2out.c (gen_subprogram_die): Emit
3223         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
3224         can't be emitted.
3225
3226         PR debug/45882
3227         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
3228         * rtl.h (ENTRY_VALUE_EXP): Define.
3229         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
3230         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
3231         * print-rtl.c (print_rtx): Likewise.
3232         * gengtype.c (adjust_field_rtx_def): Likewise.
3233         * var-tracking.c (vt_add_function_parameter): Adjust
3234         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
3235         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
3236         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
3237         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
3238         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
3239
3240         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
3241         Call var_location debug hook even on CALL_INSNs.
3242         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
3243         * rtl.def (ENTRY_VALUE): New.
3244         * dwarf2out.c: Include cfglayout.h.
3245         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3246         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
3247         (struct call_arg_loc_node): New type.
3248         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
3249         tail_call_site_count): New variables.
3250         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
3251         DW_TAG_GNU_call_site_parameter.
3252         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
3253         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
3254         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
3255         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
3256         and DW_AT_GNU_all_source_call_sites.
3257         (mem_loc_descriptor): Handle ENTRY_VALUE.
3258         (add_src_coords_attributes): Don't add enything if
3259         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
3260         (dwarf2out_abstract_function): Save and clear call_arg_location,
3261         call_site_count and tail_call_site_count around dwarf2out_decl call.
3262         (gen_call_site_die): New function.
3263         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
3264         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
3265         (dwarf2out_function_decl): Clear call_arg_locations,
3266         call_arg_loc_last, set call_site_count and tail_call_site_count
3267         to -1 and free block_map.
3268         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
3269         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
3270         followed by any real instructions.
3271         (dwarf2out_begin_function): Set call_site_count and
3272         tail_call_site_count to 0.
3273         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
3274         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
3275         attempt to force a DIE for it and worst case remove the attribute.
3276         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
3277         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
3278         the decl itself.
3279         * var-tracking.c: Include tm_p.h.
3280         (vt_stack_adjustments): For calls call note_register_arguments.
3281         (argument_reg_set): New variable.
3282         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
3283         ensure the VALUE is resolved.
3284         (call_arguments): New variable.
3285         (prepare_call_arguments): New function.
3286         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
3287         (struct expand_loc_callback_data): Add ignore_cur_loc field.
3288         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
3289         always use the best expression.
3290         (vt_expand_loc): Add ignore_cur_loc argument.
3291         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
3292         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
3293         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
3294         note for all calls.
3295         (vt_add_function_parameter): Use cselib_lookup_from_insn.
3296         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
3297         argument.  Don't call cselib_preserve_only_values and
3298         cselib_reset_table.
3299         (note_register_arguments): New function.
3300         (vt_initialize): Compute argument_reg_set.  Call
3301         vt_add_function_parameters before processing basic blocks instead of
3302         afterwards.  For calls call prepare_call_arguments before calling
3303         cselib_process_insn.
3304         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
3305         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
3306         (var-tracking.o): Depend on $(TM_P_H).
3307         * cfglayout.h (insn_scope): New prototype.
3308         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
3309         * cfglayout.c (insn_scope): No longer static.
3310         * insn-notes.def (CALL_ARG_LOCATION): New.
3311         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
3312         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
3313         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
3314         nothing for DECL_EXTERNAL BLOCK_VARS.
3315
3316 2011-03-16  Alan Modra  <amodra@gmail.com>
3317
3318         PR target/45844
3319         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3320         create invalid offset address for vsx splat insn.
3321         * config/rs6000/predicates.md (splat_input_operand): New.
3322         * config/rs6000/vsx.md (vsx_splat_*): Use it.
3323
3324 2011-03-15  Xinliang David Li  <davidxl@google.com>
3325
3326         PR c/47837
3327         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
3328         (normalize_preds): New function.
3329         (is_use_properly_guarded): Normalize def predicates.
3330
3331 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3332
3333         PR target/46788
3334         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
3335         in the output template.
3336
3337 2011-03-15  Richard Guenther  <rguenther@suse.de>
3338
3339         PR middle-end/47650
3340         * tree-pretty-print.c (dump_function_declaration): Properly
3341         dump unprototyped and varargs function types.
3342
3343 2011-03-15  Richard Guenther  <rguenther@suse.de>
3344
3345         PR tree-optimization/13954
3346         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
3347         and friends.
3348
3349 2011-03-15  Richard Guenther  <rguenther@suse.de>
3350
3351         PR tree-optimization/48037
3352         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
3353         selects into BIT_FIELD_REFs.
3354         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
3355         vector select.
3356
3357 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
3358
3359         PR tree-optimization/48129
3360         * builtins.c (fold_builtin_snprintf): Convert to type of
3361         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
3362         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
3363
3364 2011-03-15  Richard Guenther  <rguenther@suse.de>
3365
3366         PR tree-optimization/41490
3367         * tree-ssa-dce.c (propagate_necessity): Handle returns without
3368         value but with VUSE.
3369         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
3370         return statements.
3371         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
3372         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
3373         * tree-tailcall.c (find_tail_calls): Ignore returns.
3374
3375 2011-03-15  Richard Guenther  <rguenther@suse.de>
3376
3377         PR middle-end/48031
3378         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
3379         or variable-indexed array accesses when in gimple form.
3380
3381 2011-03-15  Richard Guenther  <rguenther@suse.de>
3382
3383         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
3384
3385 2011-03-15  Alan Modra  <amodra@gmail.com>
3386
3387         PR target/48032
3388         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
3389         presume symbol_refs without a symbol_ref_decl are suitably
3390         aligned, nor other trees we may see here.  Handle anchor symbols.
3391         (legitimate_constant_pool_address_p): Comment.  Add mode param.
3392         Check cmodel=medium addresses.  Adjust all calls.
3393         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
3394         creating cmodel=medium optimized access to locals.
3395         * config/rs6000/constraints.md (R): Pass QImode to
3396         legitimate_constant_pool_address_p.
3397         * config/rs6000/predicates.md (input_operand): Pass mode to
3398         legitimate_constant_pool_address_p.
3399         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
3400         Update prototype.
3401
3402 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3403
3404         PR target/48053
3405         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
3406         64-bit constants being loaded into registers other than GPRs such
3407         as loading 0 into a VSX register.
3408
3409 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3410
3411         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
3412
3413 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3414
3415         PR middle-end/47917
3416         * builtins.c (fold_builtin_snprintf): New function.
3417         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
3418         (fold_builtin_4): Likewise.
3419
3420         PR middle-end/38878
3421         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
3422         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
3423         and C - X == X also strip nops from +/-/p+ operand.
3424         When optimizing -X == C, fold C to arg0's type.
3425
3426         PR debug/47946
3427         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
3428         emit it as add_AT_int instead of add_AT_unsigned.
3429
3430 2011-03-14  Tom Tromey  <tromey@redhat.com>
3431
3432         * unwind-dw2.c: Include sys/sdt.h if it exists.
3433         (_Unwind_DebugHook): Use STAP_PROBE2.
3434         * config.in, configure: Rebuild.
3435         * configure.ac: Check for sys/sdt.h.
3436
3437 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
3438
3439         * config/i386/i386.md (ROUND_FLOOR): New constant.
3440         (ROUND_CEIL): Ditto.
3441         (ROUND_TRUNC): Ditto.
3442         (ROUND_MXCSR): Ditto.
3443         (ROUND_NO_EXC): Ditto.
3444         (rint<mode>2): Use new defines instead of numerical constants.
3445         (floor<mode>2): Ditto.
3446         (ceil<mode>2): Ditto.
3447         (btrunc<mode>2): Ditto.
3448         * config/i386/i386-builtin-types.def: Define ROUND function type
3449         aliases.
3450         * config/i386/i386.c (enum ix86_builtins): Add
3451         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
3452         (struct builtin_description): Add
3453         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
3454         (ix86_expand_sse_round): New static function.
3455         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
3456         function types.
3457         (ix86_builtin_vectorized_function): Handle
3458         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
3459
3460 2011-03-14  Tom Tromey  <tromey@redhat.com>
3461
3462         * c-parser.c (c_parser_asm_string_literal): Clear
3463         warn_overlength_strings.
3464
3465 2011-03-14  Tom Tromey  <tromey@redhat.com>
3466
3467         * c-parser.c (disable_extension_diagnostics): Save
3468         warn_overlength_strings.
3469         (restore_extension_diagnostics): Restore warn_overlength_strings.
3470
3471 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3472
3473         * BASE-VER: Change to 4.7.0.
3474
3475 2011-03-14  Richard Guenther  <rguenther@suse.de>
3476
3477         PR middle-end/48098
3478         * tree.c (build_vector_from_val): Adjust assert to requirements
3479         and reality.
3480
3481 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
3482
3483         PR bootstrap/48102
3484         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
3485
3486 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
3487
3488         * config/rs6000/freebsd.h: (RELOCATABLE_NEEDS_FIXUP): Define in
3489         terms of target_flags_explicit. Adjust copyright year.
3490
3491         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
3492         * config/rs6000/t-freebsd: New file. Add override for
3493         LIB2FUNCS_EXTRA.
3494
3495 2011-03-13  Chris Demetriou  <cgd@google.com>
3496
3497         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
3498         (-fno-diagnostics-show-option): this, to reflect current default.
3499         (-Werror=): Update text about -fno-diagnostics-show-option.
3500
3501 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
3502
3503         PR target/48053
3504         * config/rs6000/predicates.md (easy_vector_constant_add_self,
3505         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
3506         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
3507         mode is not V2DImode or V2DFmode.
3508         (vspltis_constant): Do not handle V2DImode and V2DFmode.
3509         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
3510         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
3511         registers to 0.
3512         (movdi_internal64): Likewise.
3513
3514 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
3515
3516         PR tree-optimization/47127
3517         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
3518         parameter.
3519         (set_cloog_options): Same.
3520         (scop_to_clast): Same.
3521         (print_clast_stmt): Do not call cloog_state_malloc and
3522         cloog_state_free.
3523         (print_generated_program): Same.
3524         (gloog): Same.
3525         * graphite-clast-to-gimple.h (cloog_state): Declared.
3526         (scop_to_clast): Adjust declaration.
3527         * graphite.c (cloog_state): Defined here.
3528         (graphite_initialize): Call cloog_state_malloc.
3529         (graphite_finalize): Call cloog_state_free.
3530
3531 2011-03-11  Jason Merrill  <jason@redhat.com>
3532
3533         * attribs.c (lookup_attribute_spec): Take const_tree.
3534         * tree.h: Adjust.
3535
3536 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
3537
3538         * config/sparc/sparc.c (sparc_option_override): Use
3539         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
3540
3541 2011-03-11  Richard Guenther  <rguenther@suse.de>
3542
3543         PR tree-optimization/48067
3544         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
3545         multiplication result will be only used once on the target
3546         stmt.
3547
3548 2011-03-11  Richard Guenther  <rguenther@suse.de>
3549
3550         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
3551
3552 2011-03-11  Richard Guenther  <rguenther@suse.de>
3553
3554         PR lto/48073
3555         * tree.c (find_decls_types_r): Do not walk types only reachable
3556         from IDENTIFIER_NODEs.
3557
3558 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3559
3560         PR middle-end/48044
3561         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
3562         all vnode->force_output nodes as needed.
3563
3564 2011-03-11  Jason Merrill  <jason@redhat.com>
3565
3566         PR c++/48069
3567         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
3568         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
3569
3570 2011-03-11  Martin Jambor  <mjambor@suse.cz>
3571
3572         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
3573         cgraph_node.
3574
3575 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
3576
3577         PR tree-optimization/48063
3578         * ipa-inline.c (cgraph_decide_inlining): Don't try to
3579         inline functions called once if !tree_can_inline_p (node->callers).
3580
3581 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
3582
3583         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
3584         extra_objs.
3585         * config/score/score3.c: Delete.
3586         * config/score/score3.h: Delete.
3587         * config/score/mul-div.S: Delete.
3588         * config/score/sfp-machine.h: Add new file.
3589         * config/score/constraints.md: Add new file.
3590         * config/score/t-score-softfp: Add new file.
3591         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
3592         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
3593         (score7_extra_constraint): Delete.
3594         (score7_option_override): Remove unused code.
3595         * config/score/score.c: Remove score3 and score5 define and code.
3596         * config/score/score.h: Remove score3 and score5 define and code.
3597         * config/score/score.md: Remove score3 template and unusual insn.
3598         * config/score/score.opt: Remove score3 and score5 options.
3599
3600 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3601
3602         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
3603         when _HPUX_SOURCE is defined.
3604         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
3605
3606 2011-03-10  Jason Merrill  <jason@redhat.com>
3607
3608         PR c++/48029
3609         * stor-layout.c (layout_type): Don't set structural equality
3610         on arrays of incomplete type.
3611         * tree.c (type_hash_eq): Handle comparing them properly.
3612
3613 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
3614
3615         PR debug/48043
3616         * config/s390/s390.c (s390_delegitimize_address): Make sure the
3617         result mode matches original rtl mode.
3618
3619 2011-03-10  Nick Clifton  <nickc@redhat.com>
3620
3621         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
3622         (andsi3, andsi3_flags): Fix timings for three operand alternative.
3623
3624 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
3625
3626         PR rtl-optimization/47866
3627         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
3628         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
3629         if target wasn't scalar.
3630         * function.c (assign_stack_temp_for_type): Assert that neither
3631         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
3632         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
3633         macro.
3634         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
3635
3636 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3637
3638         * config/s390/s390-protos.h (s390_label_align): New prototype.
3639         * config/s390/s390.c (s390_label_align): New function.
3640         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
3641
3642 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
3643
3644         PR target/47755
3645         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
3646         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
3647         (output_vec_const_move): Ditto.
3648
3649 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
3650
3651         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
3652         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
3653         * config/mips/mips.c (mips_preferred_reload_class): Make static.
3654         Change 'rclass' argument and result type to reg_class_t.
3655         (TARGET_PREFERRED_RELOAD_CLASS): Define.
3656
3657 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
3658
3659         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3660         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
3661         (TARGET_MEMORY_MOVE_COST): Define.
3662         (avr_register_move_cost, avr_memory_move_cost): New Functions.
3663
3664 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
3665
3666         PR debug/47881
3667         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
3668         removed anything.
3669
3670         PR tree-optimization/48022
3671         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
3672         for EQ/NE_EXPR.
3673
3674 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
3675
3676         PR debug/47991
3677         * var-tracking.c (find_use_val): Return NULL for
3678         cui->sets && cui->store_p BLKmode MEMs.
3679
3680 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
3681
3682         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
3683         Remove.
3684         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
3685         xstormy16_print_operand_address): Remove.
3686         * config/stormy16/stormy16.c (xstormy16_print_operand,
3687         xstormy16_print_operand_address): Make static.
3688         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3689
3690 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
3691
3692         PR target/47862
3693         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
3694         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
3695         before definition.
3696
3697 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
3698
3699         PR bootstrap/48000
3700         * cfgloopmanip.c (fix_bb_placements): Return immediately
3701         if FROM is BASE_LOOP's header.
3702
3703 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
3704
3705         * gimplify.c (gimplify_function_tree): Fix building calls
3706         to __builtin_return_address.
3707
3708 2011-03-07  Alan Modra  <amodra@gmail.com>
3709
3710         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
3711         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
3712         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
3713         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
3714         return_mode args.
3715         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
3716         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
3717         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
3718         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
3719         * config/rs6000/rs6000.c
3720         (rs6000_elf_end_indicate_exec_stack): Rename to..
3721         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
3722         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
3723         (rs6000_file_start): ..here.
3724         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
3725         file scope variables.
3726         (call_ABI_of_interest): New function.
3727         (init_cumulative_args): Set above vars when function return value
3728         is a float, vector, or small struct.
3729         (rs6000_function_arg_advance_1): Likewise for function args.
3730         (rs6000_va_start): Set rs6000_passes_float if variable arg function
3731         references float args.
3732
3733 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
3734
3735         * doc/cfg.texi: Remove "See" before @ref.
3736         * doc/invoke.texi: Likewise.
3737
3738 2011-03-05  Jason Merrill  <jason@redhat.com>
3739
3740         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
3741
3742 2011-03-05  Anthony Green  <green@moxielogic.com>
3743
3744         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
3745
3746 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
3747
3748         PR rtl-optimization/47899
3749         * cfgloopmanip.c (fix_bb_placements): Fix first argument
3750         to flow_loop_nested_p when moving the loop upward.
3751
3752 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
3753
3754         PR target/47719
3755         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
3756
3757 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
3758
3759         PR tree-optimization/47967
3760         * ipa-cp.c (build_const_val): Return NULL instead of creating
3761         VIEW_CONVERT_EXPR for mismatching sizes.
3762         (ipcp_create_replace_map): Return NULL if build_const_val failed.
3763         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
3764         give up on versioning.
3765
3766 2011-03-05  Alan Modra  <amodra@gmail.com>
3767
3768         PR target/47986
3769         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3770         full cmodel medium/large lo_sum + high addresses.
3771
3772 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3773
3774         * config/s390/s390.c (s390_decompose_address): Reject non-literal
3775         pool references in UNSPEC_LTREL_OFFSET.
3776
3777 2011-03-04  Jan Hubicka  <jh@suse.cz>
3778
3779         PR lto/47497
3780         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
3781         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
3782         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
3783         Add node pointers.
3784         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
3785         cgraph_add_thunk): Add node pointers.
3786         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
3787         associated to right node.
3788         (input_node): Update use of cgraph_same_body_alias
3789         and cgraph_add_thunk.
3790
3791 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
3792
3793         * config/i386/i386.opt (mprefer-avx128): New flag.
3794         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
3795         modes when the flag -mprefer-avx128 is on.
3796
3797 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
3798
3799         * dwarf2out.c (compare_loc_operands): Fix address handling.
3800
3801 2011-03-04  Alan Modra  <amodra@gmail.com>
3802
3803         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
3804
3805 2011-03-04  Richard Guenther  <rguenther@suse.de>
3806
3807         PR middle-end/47968
3808         * expmed.c (extract_bit_field_1): Prefer vector modes that
3809         vec_extract patterns can handle.
3810
3811 2011-03-04  Richard Guenther  <rguenther@suse.de>
3812
3813         PR middle-end/47975
3814         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
3815
3816 2011-03-04  Richard Henderson  <rth@redhat.com>
3817
3818         * explow.c (emit_stack_save): Remove 'after' parameter.
3819         (emit_stack_restore): Likewise.
3820         * expr.h: Update to match.
3821         * builtins.c, calls.c, stmt.c: Likewise.
3822         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
3823         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
3824         * function.c (expand_function_end): Insert the emit_stack_save
3825         sequence before parm_birth_insn instead of after.
3826
3827 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
3828
3829         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
3830         (ssse3_pmaddubsw128): Ditto.
3831         (ssse3_pmaddubsw): Ditto.
3832
3833 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
3834
3835         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
3836
3837 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
3838
3839         PR c/47963
3840         * gimplify.c (omp_add_variable): Only call omp_notice_variable
3841         on TYPE_SIZE_UNIT if it is a DECL.
3842
3843         PR debug/47283
3844         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
3845         first operand is not is_gimple_mem_ref_addr, try to fold it.
3846         If the operand still isn't is_gimple_mem_ref_addr, clear
3847         MEM_EXPR on op0.
3848
3849 2011-03-03  Richard Guenther  <rguenther@suse.de>
3850
3851         PR middle-end/47283
3852         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
3853         match comment.
3854         (refs_may_alias_p_1): For release branches return true if
3855         we are confused by our input.
3856
3857 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3858
3859         * config/s390/s390.c (s390_function_value): Rename to ...
3860         (s390_function_and_libcall_value): ... this.
3861         (s390_function_value): New function.
3862         (s390_libcall_value): New function.
3863         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
3864         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
3865         target macro definitions.
3866         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
3867
3868 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
3869
3870         * config/i386/freebsd64.h (CC1_SPEC): Define.
3871         * config/i386/linux64.h (CC1_SPEC): Define.
3872         * config/i386/x86-64.h (CC1_SPEC): Don't define.
3873
3874 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
3875
3876         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3877         Remove.
3878         * config/stormy16/stormy16.c: Include reload.h.
3879         (xstormy16_memory_move_cost): New function.
3880         (TARGET_MEMORY_MOVE_COST): Define.
3881
3882 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
3883
3884         PR rtl-optimization/47925
3885         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
3886         with side effects.  Remove the more-specific check for volatile asms.
3887
3888 2011-03-02  Alan Modra  <amodra@gmail.com>
3889
3890         PR target/47935
3891         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
3892         toc relative addresses for valid offsets.
3893
3894 2011-03-01  Richard Guenther  <rguenther@suse.de>
3895
3896         PR tree-optimization/47890
3897         * tree-vect-loop.c (get_initial_def_for_induction): Set
3898         related stmt properly.
3899
3900 2011-03-01  Richard Guenther  <rguenther@suse.de>
3901
3902         PR lto/47924
3903         * lto-streamer.c (lto_record_common_node): Also register
3904         the canonical type.
3905
3906 2011-03-01  Richard Guenther  <rguenther@suse.de>
3907
3908         PR lto/46911
3909         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
3910         Do not stream DECL_ABSTRACT_ORIGIN.
3911         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
3912         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
3913         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3914         Do not stream DECL_ABSTRACT_ORIGIN.
3915         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
3916         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
3917
3918 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
3919
3920         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
3921         FUNCTION_VALUE_REGNO_P): Remove.
3922         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
3923         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
3924         Add 'outgoing' argument.
3925         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
3926         function.
3927         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3928         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3929
3930 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
3931
3932         PR debug/28047
3933         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
3934         (lookup_filename): Likewise.
3935         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
3936
3937 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
3938             Jakub Jelinek  <jakub@redhat.com>
3939
3940         PR middle-end/47893
3941         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
3942         (assign_stack_local_1): Change last argument type to int.
3943         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
3944         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
3945         don't record padding space into frame_space_list nor use those areas.
3946         (assign_stack_local): Adjust caller.
3947         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
3948         of assign_stack_local, pass 0 as last argument.
3949         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
3950         callers.
3951
3952 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
3953
3954         PR debug/47283
3955         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
3956         Use target address_mode and pointer_mode hooks instead of hardcoded
3957         Pmode and ptr_mode.  Handle some simple cases of extending if
3958         POINTERS_EXTEND_UNSIGNED < 0.
3959         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
3960         Call convert_debug_memory_address.
3961         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
3962         convert_debug_memory_address.
3963
3964         PR middle-end/46790
3965         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
3966         * configure: Regenerated.
3967         * config.in: Regenerated.
3968         * varasm.c (default_function_section): Return NULL
3969         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
3970
3971 2011-02-28  Martin Jambor  <mjambor@suse.cz>
3972
3973         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
3974         the description to match the printed values.
3975
3976 2011-02-28  Richard Guenther  <rguenther@suse.de>
3977
3978         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
3979         of the copied scope tree.
3980
3981 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3982
3983         * doc/extend.texi (Function Attributes): Avoid deeply (and
3984         wrongly) nested tables.
3985
3986 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
3987
3988         PR middle-end/47903
3989         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
3990         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
3991         r isn't op0 nor op1.
3992
3993 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
3994
3995         * config/avr/avr.md: Remove magic comment for emacs.
3996
3997 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
3998
3999         PR target/45261
4000         * config/avr/avr.c (avr_option_override): Use error on bad options.
4001         (avr_help): New function.
4002         (TARGET_HELP): Define.
4003
4004 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
4005
4006         PR target/42240
4007         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
4008         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
4009
4010 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
4011
4012         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
4013         (ARM Options): Ditto.
4014         (i386 and x86-64 Options): Ditto.
4015         (RX Options): Ditto.
4016         (SPARC Options): Ditto.
4017
4018 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
4019
4020         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
4021         FreeBSD 6 and later.  Generally use cpu generic.
4022
4023 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
4024
4025         * doc/cpp.texi: Update copyright years.
4026
4027 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
4028
4029         PR target/46898
4030         * config/lm32/lm32.md (ashrsi3): Added needed variable.
4031
4032 2011-02-25  Jon Beniston  <jon@beniston.com>
4033
4034         PR target/46898
4035         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
4036         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
4037         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
4038         (lm32_block_move_inline): Add type cast to remove warning.
4039         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
4040         (gen_int_relational): Move declarations to start of function.
4041
4042 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
4043
4044         PR tree-optimization/45470
4045         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
4046         can throw internally only.
4047         * tree-vect-stmts.c (vectorizable_call): Likewise.
4048
4049 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
4050
4051         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
4052         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4053         * config/stormy16/stormy16-protos.h
4054         (xstormy16_preferred_reload_class): Remove.
4055         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
4056         static. Change 'rclass' argument and return type to reg_class_t.
4057         (TARGET_PREFERRED_RELOAD_CLASS,
4058         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4059
4060 2011-02-24  Richard Guenther  <rguenther@suse.de>
4061
4062         * lto-streamer-in.c (input_bb): Do not find referenced vars
4063         in debug statements.
4064
4065 2011-02-23  Jason Merrill  <jason@redhat.com>
4066
4067         * common.opt (fabi-version): Document v5 and v6.
4068
4069 2011-02-23  Richard Guenther  <rguenther@suse.de>
4070
4071         PR tree-optimization/47849
4072         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
4073
4074 2011-02-23  Jie Zhang  <jie@codesourcery.com>
4075
4076         * opts-common.c (decode_cmdline_option): Print empty string
4077         argument as "" in decoded->orig_option_with_args_text.
4078         * gcc.c (execute): Print empty string argument as ""
4079         in the verbose output.
4080         (do_spec_1): Keep empty string argument.
4081
4082 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
4083
4084         * config.gcc: Declare score-* and crx-* obsolete.
4085
4086 2011-02-23  Jie Zhang  <jie@codesourcery.com>
4087
4088         PR rtl-optimization/47763
4089         * web.c (web_main): Ignore naked clobber when replacing register.
4090
4091 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
4092
4093         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
4094         Remove.
4095
4096 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
4097
4098         PR doc/47848
4099         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
4100
4101 2011-02-22  Mike Stump  <mikestump@comcast.net>
4102
4103         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
4104         assembler.
4105         * configure: Regenerate.
4106
4107 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
4108
4109         PR rtl-optimization/46002
4110         * ira-color.c (update_copy_costs): Change class intersection
4111         test to reg_class_contents[] test of 'hard_regno'.
4112
4113 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
4114
4115         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
4116         than Driver option.
4117         * config/hpux11.opt (mt): Likewise.
4118         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
4119         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
4120         * config/vax/elf.opt (mno-asm-pic): Likewise.
4121         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
4122
4123 2011-02-21  Mike Stump  <mikestump@comcast.net>
4124
4125         PR target/47822
4126         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
4127         tree so we can get save the type.
4128         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
4129         for CFString instead of trying to use past the end of the builtins.
4130         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
4131         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
4132         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
4133         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
4134         Rename to darwin_builtin_cfstring.
4135         (darwin_init_cfstring_builtins): Return the built type.
4136
4137 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
4138
4139         PR target/47840
4140         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
4141         (_mm256_insert_epi64): Use _mm_insert_epi64.
4142
4143 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
4144
4145         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4146         * config/stormy16/stormy16-protos.h
4147         (xstormy16_mode_dependent_address_p): Remove.
4148         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
4149         Make static. Change return type to bool. Change argument type to
4150         const_rtx. Remove dead code.
4151         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4152
4153 2011-02-21  Richard Guenther  <rguenther@suse.de>
4154
4155         PR lto/47820
4156         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
4157         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
4158         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
4159         TUs context.
4160         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
4161         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
4162
4163 2011-02-20  Richard Guenther  <rguenther@suse.de>
4164
4165         PR lto/47822
4166         * tree.c (free_lang_data_in_decl): Clean builtins from
4167         the TU decl BLOCK_VARS.
4168
4169 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
4170
4171         PR debug/47620
4172         PR debug/47630
4173         * haifa-sched.c (fix_tick_ready): Skip tick computation
4174         for debug insns.
4175
4176 2011-02-19  Richard Guenther  <rguenther@suse.de>
4177
4178         PR lto/47647
4179         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
4180         Remove lazy BLOCK_VARS streaming.
4181         (lto_input_ts_block_tree_pointers): Likewise.
4182         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
4183
4184 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
4185
4186         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
4187
4188 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
4189
4190         * config/i386/biarch32.h, config/i386/mach.h,
4191         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
4192
4193 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
4194
4195         PR target/47800
4196         * config/i386/i386.md (peephole2 for shift and plus): Use
4197         operands[1] original mode in the first insn.
4198
4199 2011-02-18  Mike Stump  <mikestump@comcast.net>
4200
4201         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
4202
4203 2011-02-18  Jan Hubicka  <jh@suse.cz>
4204
4205         PR middle-end/47788
4206         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
4207         to zero when the function is not inlinable at all.
4208
4209 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4210
4211         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
4212         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4213         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
4214         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
4215         * config/pa/t-pa64: Likewise.
4216         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
4217
4218 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
4219
4220         PR driver/47787
4221         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
4222
4223 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4224
4225         PR target/47792
4226         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
4227
4228 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
4229
4230         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
4231         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
4232         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
4233         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
4234         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
4235         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
4236         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
4237         m32r_load_postinc_p, m32r_store_preinc_predec_p,
4238         m32r_legitimate_address_p): New functions.
4239         * config/m32r/constraints.md (constraint "S"): Don't use
4240         STORE_PREINC_PREDEC_P.
4241         (constraint "U"): Don't use LOAD_POSTINC_P.
4242
4243 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
4244
4245         PR rtl-optimization/46178
4246         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
4247         compute ira_hard_regno_cover_class[].
4248
4249 2011-02-18  Richard Guenther  <rguenther@suse.de>
4250
4251         PR lto/47798
4252         * lto-streamer.h (lto_global_var_decls): Declare.
4253         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
4254         statics for global var processing.
4255
4256 2011-02-18  Richard Guenther  <rguenther@suse.de>
4257
4258         PR tree-optimization/47737
4259         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
4260         edge dominance check.
4261
4262 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
4263
4264         PR debug/47780
4265         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
4266         avoid invalid rtx sharing.
4267
4268 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
4269
4270         * doc/cpp.texi (Obsolete Features): Add background on the
4271         origin of assertions.
4272
4273 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
4274
4275         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
4276         objc_abi == 2.
4277         * config/darwin.c (output_objc_section_asm_op): Added support for
4278         ABI v1 and v2.
4279         (is_objc_metadata): New.
4280         (darwin_objc2_section): New.
4281         (darwin_objc1_section): New.
4282         (machopic_select_section): Added support for ABI v1 and v2.
4283         (darwin_emit_objc_zeroed): New.
4284         (darwin_output_aligned_bss): Detect objc metadata and treat it
4285         appropriately.
4286         (darwin_asm_output_aligned_decl_common): Same.
4287         (darwin_asm_output_aligned_decl_local): Same.
4288         * config/darwin-sections.def: Updated for ABI v1 and v2.
4289         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
4290         compiling Objective-C code for the NeXT runtime, default to using
4291         ABI version 0 for 32-bit, and version 2 for 64-bit.
4292
4293 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4294
4295         * common.opt (optimize_fast): New Variable.
4296         * opts.c (default_options_optimization): Use opts->x_optimize_fast
4297         instead of local variable ofast.
4298
4299 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
4300
4301         * doc/invoke.texi (fobjc-abi-version): Documented.
4302         (fobjc-nilcheck): Documented.
4303         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
4304         version.
4305
4306 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4307
4308         PR driver/47390
4309         * common.opt (export-dynamic): New Driver option.
4310         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
4311
4312 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4313
4314         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
4315
4316 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
4317             Jan Hubicka  <jh@suse.cz>
4318
4319         PR debug/47106
4320         PR debug/47402
4321         * cfgexpand.c (account_used_vars_for_block): Remove.
4322         (estimated_stack_frame_size): Use referenced vars.
4323         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
4324         that were referenced in the original function.  Test src_fn
4325         rather than cfun.  Drop redundant get_var_ann.
4326         (setup_one_parameter): Drop redundant get_var_ann.
4327         (declare_return_variable): Likewise.
4328         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
4329         (copy_arguments_for_versioning): Drop redundant get_var_ann.
4330         * ipa-inline.c (compute_inline_parameters): Do not compute
4331         disregard_inline_limits here.
4332         (compute_inlinable_for_current, pass_inlinable): New.
4333         (pass_inline_parameters): Require PROP_referenced_vars.
4334         * cgraphunit.c (cgraph_process_new_functions): Don't run
4335         compute_inline_parameters explicitly unless function is in SSA form.
4336         (cgraph_analyze_function): Set .disregard_inline_limits.
4337         * tree-sra.c (convert_callers): Compute inliner parameters
4338         only for functions already in SSA form.
4339
4340 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4341
4342         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
4343         -mlittle-endian-data.
4344
4345 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
4346
4347         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
4348         -mno-fpu, not -fpu and -no-fpu.
4349         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
4350         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
4351
4352 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
4353
4354         PR target/43653
4355         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
4356         input reload with PLUS RTX.
4357
4358 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4359
4360         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
4361         of InverseVar(MDMX).
4362
4363 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4364
4365         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
4366         --m4-340.
4367
4368 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4369
4370         * config/mn10300/mn10300.opt (mno-crt0): New.
4371
4372 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4373
4374         * config/m68k/uclinux.opt (static-libc): New Driver option.
4375
4376 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4377
4378         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
4379
4380 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
4381
4382         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
4383         %{muser-extend-enabled}.
4384
4385 2011-02-16  Richard Guenther  <rguenther@suse.de>
4386
4387         PR tree-optimization/47738
4388         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
4389         the TODO from tree_predictive_commoning.
4390
4391 2011-02-15  Jeff Law  <law@redhat.com>
4392
4393         Revert
4394         2011-01-25  Jeff Law  <law@redhat.com>
4395
4396         PR rtl-optimization/37273
4397         * ira-costs.c (scan_one_insn): Detect constants living in memory and
4398         handle them like argument loads from stack slots.  Do not double
4399         count memory for memory constants and argument loads from stack slots.
4400
4401 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4402
4403         PR middle-end/47725
4404         * combine.c (cant_combine_insn_p): Revert the last change.
4405
4406 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
4407
4408         PR target/47755
4409         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
4410         mode for vector constants.  Remove code that checks for TImode.
4411
4412 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4413
4414         PR debug/47106
4415         PR debug/47402
4416         * cgraph.h (compute_inline_parameters): Return void.
4417         * ipa-inline.c (compute_inline_parameters): Adjust.
4418
4419 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4420
4421         PR debug/47106
4422         PR debug/47402
4423         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
4424         rather than decl.
4425         * cfgexpand.c (estimated_stack_frame_size): Likewise.
4426         * ipa-inline.c (compute_inline_parameters): Adjust.
4427
4428 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4429
4430         PR debug/47106
4431         PR debug/47402
4432         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
4433         Adjust all users.  Pass FN to...
4434         * tree-flow-inline.h (first_referenced_var): ... this.  Add
4435         fn argument.
4436         * ipa-struct-reorg.c: Adjust.
4437         * tree-dfa.c: Adjust.
4438         * tree-into-ssa.c: Adjust.
4439         * tree-sra.c: Adjust.
4440         * tree-ssa-alias.c: Adjust.
4441         * tree-ssa-live.c: Adjust.
4442         * tree-ssa.c: Adjust.
4443         * tree-ssanames.c: Adjust.
4444         * tree-tailcall.c: Adjust.
4445
4446 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
4447
4448         PR debug/47106
4449         PR debug/47402
4450         * tree-flow.h (referenced_var_lookup): Add fn parameter.
4451         Adjust all callers.
4452         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
4453         * tree-flow-inline.h: Adjust.
4454         * gimple-pretty-print.c: Adjust.
4455         * tree-into-ssa.c: Adjust.
4456         * tree-ssa.c: Adjust.
4457         * cfgexpand.c: Adjust.
4458
4459 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4460
4461         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
4462         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4463         (EXTRA_CONSTRAINT): Delete.
4464         * config/iq2000/constraints.md: New file.
4465         * config/iq2000/iq2000.md: Include it.
4466         (define_insn ""): Delete.
4467         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
4468         unsupported constraint letters from patterns.
4469         (call_value, call_value_internal1): Likewise.
4470         (call_value_multiple_internal1): Likewise.
4471
4472 2011-02-15  Nick Clifton  <nickc@redhat.com>
4473
4474         * config/mn10300/mn10300.c: Include tm-constrs.h.
4475         (struct liw_data): New data structure describing an LIW candidate
4476         instruction.
4477         (extract_bundle): Use struct liw_data.  Allow small integer
4478         operands for some instructions.
4479         (check_liw_constraints): Use struct liw_data.  Remove swapped
4480         parameter.  Add comments describing the checks.  Fix bug when
4481         assigning the source of liw1 to the source of liw2.
4482         (liw_candidate): Delete.  Code moved into extract_bundle.
4483         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
4484         before swapping.
4485         * config/mn10300/predicates.md (liw_operand): New predicate.
4486         Allows registers and small integer constants.
4487         * config/mn10300/constraints.md (O): New constraint.  Accetps
4488         integers in the range -8 to +7 inclusive.
4489         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
4490         for moving a small integer into a register.  Give this alternative
4491         LIW attributes.
4492         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
4493         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
4494         using the J,K,L and M constraints,
4495         (liw): Remove SI mode on second operands to allow for HI and QI
4496         mode values.
4497         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
4498         instruction.
4499
4500 2011-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4501
4502         PR middle-end/47725
4503         * combine.c (cant_combine_insn_p): Check zero/sign extended
4504         hard registers.
4505
4506 2011-02-15  Richard Guenther  <rguenther@suse.de>
4507
4508         PR tree-optimization/47743
4509         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
4510         for a non-type-compatible VN lookup bail out.
4511
4512 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4513
4514         * config/fr30/constraints.md: New file.
4515         * config/fr30/fr30.md: Include it.
4516         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
4517         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4518         (EXTRA_CONSTRAINT): Delete.
4519
4520 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
4521
4522         * config/frv/constraints.md: New file.
4523         * config/frv/predicates.md: Include it.
4524         * config/frv/frv.c (reg_class_from_letter): Delete.
4525         (frv_option_override): Don't initialize it.
4526         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
4527         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
4528         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
4529         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
4530         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
4531         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4532         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
4533         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
4534         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
4535         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
4536         (REG_CLASS_FROM_CONSTRAINT): Delete.
4537
4538 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
4539
4540         PR middle-end/47581
4541         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
4542         if frame size is 0 in a leaf function.
4543
4544 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4545
4546         PR pch/14940
4547         * config/alpha/host-osf.c: New file.
4548         * config/alpha/x-osf: New file.
4549         * config.host (alpha*-dec-osf*): Use it.
4550
4551 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
4552
4553         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4554         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
4555         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
4556         (rx_mode_dependent_address_p): ...this. Make static. Change argument
4557         type to const_rtx.
4558         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4559
4560 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4561
4562         * config/stormy16/constraints.md: New file.
4563         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
4564         Use satisfies_constraint_Q and satisfies_constraint_R.
4565         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
4566         Delete.
4567         (xstormy16_legitiamte_address_p): Declare.
4568         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
4569         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4570         (EXTRA_CONSTRAINT): Delete.
4571         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4572         Un-staticize.
4573         (xstormy16_extra_constraint_p): Delete.
4574
4575 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
4576
4577         PR tree-optimization/46494
4578         * loop-unroll.c (split_edge_and_insert): Adjust comment.
4579         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
4580         (pass_rtl_loop_done): Add TODO_verify_flow.
4581         * fwprop.c (pass_rtl_fwprop): Likewise.
4582         * modulo-sched.c (pass_sms): Likewise.
4583         * tree-ssa-dom.c (pass_dominator): Likewise.
4584         * tree-ssa-loop-ch.c (pass_ch): Likewise.
4585         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
4586         (pass_tree_loop_done): Likewise.
4587         * tree-ssa-pre.c (execute_pre): Likewise.
4588         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4589         * tree-ssa-sink.c (pass_sink_code): Likewise.
4590         * tree-vrp.c (pass_vrp): Likewise.
4591
4592 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4593
4594         * config/v850/constraints.md: New file.
4595         * config/v850/v850.md: Include it.
4596         * config/v850/predicates.md (reg_or_0_operand): Use
4597         satisfies_constraint_G.
4598         (special_symbolref_operand): Use satisfies_constraint_K.
4599         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
4600         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4601         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
4602         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
4603         (EXTRA_CONSTRAINT): Delete.
4604         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
4605         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
4606         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
4607
4608 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
4609
4610         PR target/47696
4611         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
4612         description.
4613
4614 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
4615
4616         * config/mcore/constraints.md: New file.
4617         * config/mcore/mcore.md: Include it.
4618         * config/mcore/mcore.c (reg_class_from_letter): Delete.
4619         * config/mcore/mcore.h (reg_class_from_letter): Delete.
4620         (REG_CLASS_FROM_LETTER): Delete.
4621         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
4622         insn_const_int_ok_for_constraint.
4623         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
4624         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
4625         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4626         (EXTRA_CONSTRAINT): Delete.
4627
4628 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4629
4630         PR ada/41929
4631         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
4632         (IS_SIGHANDLER): Define.
4633         (sparc64_is_sighandler): New function, split off from
4634         sparc64_fallback_frame_state.
4635         (sparc_is_sighandler): New function, split off from
4636         sparc_fallback_frame_state.
4637         (sparc64_fallback_frame_state): Merge with ...
4638         (sparc_fallback_frame_state): ... this into ...
4639         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
4640         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
4641         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
4642         stack instead of hardcoded offsets.
4643
4644 2011-02-14  Andriy Gapon  <avg@freebsd.org>
4645
4646         PR target/45808
4647         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
4648
4649 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4650
4651         * configure: Regenerate.
4652
4653 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
4654
4655         PR driver/45731
4656         * gcc.c (asm_options): Correct spec matching --target-help.
4657
4658 2011-02-12  Martin Jambor  <mjambor@suse.cz>
4659
4660         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
4661         to gimple call error.
4662
4663 2011-02-12  Mike Stump  <mikestump@comcast.net>
4664
4665         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
4666         comments in backslash regions.
4667
4668 2011-02-12  Mike Stump  <mikestump@comcast.net>
4669             Jakub Jelinek  <jakub@redhat.com>
4670             Iain Sandoe  <iains@gcc.gnu.org>
4671
4672         PR target/47324
4673         * dwarf2out.c (output_cfa_loc): When required, apply the
4674         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
4675         (output_loc_sequence): Likewise.
4676         (output_loc_operands_raw): Likewise.
4677         (output_loc_sequence_raw): Likewise.
4678         (output_cfa_loc): Likewise.
4679         (output_loc_list): Suppress register number adjustment when
4680         calling output_loc_sequence()
4681         (output_die): Likewise.
4682
4683 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
4684
4685         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
4686         Remove macros.
4687         * config/xtensa/xtensa.c (xtensa_register_move_cost,
4688         xtensa_memory_move_cost): New functions.
4689         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
4690
4691 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
4692
4693         PR lto/47225
4694         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
4695         in the current directory.
4696         * configure: Rebuilt.
4697
4698 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
4699
4700         * config/darwin.c (darwin_override_options): Add a hunk missed
4701         from the commit of r168571.  Trim comment line lengths and
4702         correct indents of the preceding block.
4703
4704 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
4705
4706         * gcc.c (driver_handle_option): Concatenate the argument to -F with
4707         the switch.
4708
4709 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
4710
4711         * common.opt (nostartfiles): New Driver option.
4712
4713 2011-02-11  Xinliang David Li  <davidxl@google.com>
4714
4715         PR tree-optimization/47707
4716         * tree-chrec.c (convert_affine_scev): Keep type precision.
4717
4718 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
4719
4720         PR tree-optimization/47420
4721         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
4722
4723 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
4724
4725         PR rtl-optimization/47614
4726         * rtl.h (check_for_inc_dec): Declare.
4727         * dse.c (check_for_inc_dec): Externalize...
4728         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
4729         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
4730
4731 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
4732
4733         PR driver/47678
4734         * gcc.c (main): Do not compile inputs if there were errors in
4735         option handling.
4736         * opts-common.c (read_cmdline_option): Check for wrong language
4737         after other error checks.
4738
4739 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
4740
4741         * cgraph.c: Fix comment typos.
4742         * cgraph.h: Likewise.
4743         * cgraphunit.c: Likewise.
4744         * ipa-cp.c: Likewise.
4745         * ipa-inline.c: Likewise.
4746         * ipa-prop.c: Likewise.
4747         * ipa-pure-const.c: Likewise.
4748         * ipa-ref.c: Likewise.
4749         * ipa-reference.c: Likewise.
4750
4751 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
4752
4753         PR debug/47684
4754         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
4755
4756 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4757
4758         PR testsuite/47400
4759         * doc/sourcebuild.texi (Require Support): Document
4760         dg-require-ascii-locale.
4761
4762 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
4763
4764         * doc/lto.texi (Write summary): Fix missing parentheses.
4765
4766 2011-02-10  DJ Delorie  <dj@redhat.com>
4767
4768         * config/m32c/m32c.c (m32c_option_override): Disable
4769         -fcombine-stack-adjustments until flag value tracking and compare
4770         optimization can be rewritten.
4771
4772 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
4773
4774         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
4775         PROCESSOR_POWER7.
4776         (PROCESSOR_DEFAULT64): Likewise.
4777
4778 2011-02-10  Richard Henderson  <rth@redhat.com>
4779
4780         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
4781         change from 2011-02-03.
4782         * config/rx/rx.c (flags_from_code): Likewise.
4783         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
4784         is valid, n/pz otherwise.
4785         (rx_select_cc_mode): Return CCmode if Y is not zero.
4786
4787 2011-02-10  Richard Guenther  <rguenther@suse.de>
4788
4789         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
4790
4791 2011-02-10  Richard Guenther  <rguenther@suse.de>
4792
4793         PR tree-optimization/47677
4794         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
4795
4796 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
4797
4798         PR target/47665
4799         * combine.c (make_compound_operation): Only change shifts into
4800         multiplication for SCALAR_INT_MODE_P.
4801
4802 2011-02-10  Jie Zhang  <jie@codesourcery.com>
4803
4804         PR testsuite/47622
4805         Revert
4806         2011-02-05  Jie Zhang  <jie@codesourcery.com>
4807         PR debug/42631
4808         * web.c (entry_register): Don't clobber the number of the
4809         first uninitialized reference in used[].
4810
4811 2011-02-09  Richard Guenther  <rguenther@suse.de>
4812
4813         PR tree-optimization/47664
4814         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
4815         all edges again.
4816
4817 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
4818
4819         PR target/46481
4820         PR target/47032
4821         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
4822         PROCESSOR_POWER7.
4823         (PROCESSOR_DEFAULT64): Same.
4824         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
4825
4826 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4827
4828         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
4829
4830 2011-02-09  Martin Jambor  <mjambor@suse.cz>
4831
4832         PR middle-end/45505
4833         * tree-sra.c (struct access): New flags grp_scalar_read and
4834         grp_scalar_write.  Changed description of assignment read and write
4835         flags.
4836         (dump_access): Dump new flags, reorder all of them.
4837         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
4838         to detect multiple scalar reads.
4839         (analyze_access_subtree): Use the new scalar read write flags instead
4840         of the old flags.  Adjusted comments.
4841
4842 2011-02-08  DJ Delorie  <dj@redhat.com>
4843
4844         PR target/47548
4845         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
4846         patterns.
4847
4848 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4849
4850         * config/m68k/uclinux.opt: New.
4851         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
4852
4853 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4854
4855         * config/cris/elf.opt (sim): New Driver option.
4856
4857 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4858
4859         * config/xtensa/elf.opt: New.
4860         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
4861
4862 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4863
4864         * config/vax/elf.opt: New.
4865         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
4866
4867 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4868
4869         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
4870
4871 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4872
4873         * config/gnu-user.opt: New.
4874         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
4875         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
4876         *-*-uclinux*): Use gnu-user.opt.
4877
4878 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
4879
4880         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
4881         * config/i386/gnu.h (CPP_SPEC): Likewise.
4882
4883 2011-02-08  Ian Lance Taylor  <iant@google.com>
4884
4885         * common.opt (fcx-limited-range): Add SetByCombined flag.
4886         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
4887         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
4888         (fassociative-math, freciprocal-math): Likewise.
4889         (funsafe-math-optimizations): Likewise.
4890         * opth-gen.awk: Handle SetByCombined.
4891         * optc-gen.awk: Likewise.
4892         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
4893         (set_unsafe_math_optimizations_flags): Likewise.
4894         * doc/options.texi (Option properties): Document SetByCombined.
4895
4896 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
4897
4898         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
4899         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
4900         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
4901         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
4902         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
4903
4904 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
4905
4906         PR tree-optimization/46834
4907         PR tree-optimization/46994
4908         PR tree-optimization/46995
4909         * graphite-sese-to-poly.c (used_outside_reduction): New.
4910         (detect_commutative_reduction): Call used_outside_reduction.
4911         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
4912         translate_scalar_reduction_to_array only when at least one
4913         loop-phi/close-phi tuple has been detected.
4914
4915 2011-02-08  Richard Guenther  <rguenther@suse.de>
4916
4917         PR middle-end/47639
4918         * tree-vect-generic.c (expand_vector_operations_1): Update
4919         stmts here ...
4920         (expand_vector_operations): ... not here.  Cleanup EH info
4921         and the CFG if required.
4922
4923 2011-02-08  Richard Guenther  <rguenther@suse.de>
4924
4925         PR tree-optimization/47641
4926         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
4927         require type compatibility.
4928
4929 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4930
4931         * gimple-low.c (lower_function_body): Don't remove the location of
4932         the return statement here.
4933         (lower_gimple_return): Do it here instead but only if the return
4934         statement is actually used twice.
4935
4936 2011-02-08  Richard Guenther  <rguenther@suse.de>
4937
4938         PR tree-optimization/47632
4939         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
4940         unused up_to_stmt parameter, return whether cfg-cleanup is
4941         necessary, remove EH info properly.
4942         (forward_propagate_into_gimple_cond): Adjust caller.
4943         (forward_propagate_into_cond): Likewise.
4944         (forward_propagate_comparison): Likewise.
4945         (tree_ssa_forward_propagate_single_use_vars): Make
4946         forward_propagate_comparison case similar to the two others.
4947
4948 2011-02-08  Nick Clifton  <nickc@redhat.com>
4949
4950         * config/mn10300/mn10300.opt (mliw): New command line option.
4951         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
4952         (liw_bundling): New automaton.
4953         (liw): New attribute.
4954         (liw_op): New attribute.
4955         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
4956         (movsi_internal): Add LIW attributes.
4957         (andsi3): Likewise.
4958         (iorsi3): Likewise.
4959         (xorsi3): Likewise.
4960         (addsi3): Separate register and immediate alternatives.
4961         Add LIW attributes.
4962         (subsi3): Likewise.
4963         (cmpsi): Likewise.
4964         (aslsi3): Likewise.
4965         (lshrsi3): Likewise.
4966         (ashrsi3): Likewise.
4967         (liw): New pattern.
4968         * config/mn10300/mn10300.c (liw_op_names): New
4969         (mn10300_print_operand): Handle 'W' operand descriptor.
4970         (extract_bundle): New function.
4971         (check_liw_constraints): New function.
4972         (liw_candidate): New function.
4973         (mn10300_bundle_liw): New function.
4974         (mn10300_reorg): New function.
4975         (TARGET_MACHINE_DEPENDENT_REORG): Define.
4976         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
4977         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
4978         __LIW__ or __NO_LIW__.
4979         * doc/invoke.texi: Describe the -mliw command line option.
4980
4981 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4982
4983         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
4984         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
4985         pthread_mutex_unlock): Remove.
4986         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
4987         * config/pa/t-pa64: Likewise.
4988         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
4989         shared libc if not linking against libpthread.
4990         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4991
4992 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
4993
4994         PR target/47558
4995         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
4996         on 10.6 and later to ensure that we always use the unwinder from
4997         the system.  Only add -no_compact_unwind when tarteting darwin
4998         10.6 or later.
4999
5000 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
5001
5002         PR target/46997
5003         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
5004         (vec_interleave_lowv2sf): Ditto.
5005         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
5006         (vec_extract_oddv2sf): Ditto.
5007
5008 2011-02-07  Mike Stump  <mikestump@comcast.net>
5009
5010         PR target/42333
5011         Add __ieee_divdc3 entry point.
5012         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
5013         entry point.
5014         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
5015         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
5016         * config/darwin.c (darwin_rename_builtins): Add.
5017         * config/darwin-protos.h (darwin_rename_builtins): Add.
5018
5019 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5020
5021         PR target/47636
5022         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
5023         for the condition.
5024
5025 2011-02-07  Mike Stump  <mikestump@comcast.net>
5026
5027         * config/darwin.opt (mmacosx-version-min): Update default OS version.
5028
5029 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
5030
5031         PR target/47534
5032         * config/avr/libgcc.S (exit): Move .endfunc
5033
5034 2011-02-07  Richard Guenther  <rguenther@suse.de>
5035
5036         PR tree-optimization/47615
5037         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
5038         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
5039         (run_scc_vn): Initialize it.
5040         (visit_reference_op_load): Use it.
5041         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
5042
5043 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5044
5045         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
5046         DImode trapping arithmetic libfuncs.
5047
5048 2011-02-07  Richard Guenther  <rguenther@suse.de>
5049
5050         PR tree-optimization/47621
5051         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
5052         two duplicates ...
5053         (execute_update_addresses_taken): ... here.  Make it more
5054         conservative in what we accept.
5055
5056 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
5057
5058         * config/sparc/freebsd.h (ASM_SPEC): Define.
5059         * config/sparc/vxworks.h (ASM_SPEC): Define.
5060
5061 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
5062
5063         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
5064
5065 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
5066
5067         * doc/invoke.texi: Remove reference to compiler internals from
5068         user documentation.
5069
5070         * reg-notes.def: Remove REG_VALUE_PROFILE.
5071         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
5072
5073 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
5074
5075         PR middle-end/47610
5076         * varasm.c (default_section_type_flags): If decl is NULL,
5077         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
5078
5079 2011-02-05  Jie Zhang  <jie@codesourcery.com>
5080
5081         PR debug/42631
5082         * web.c (entry_register): Don't clobber the number of the
5083         first uninitialized reference in used[].
5084
5085 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
5086
5087         PR tree-optimization/46194
5088         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
5089         (build_classic_dist_vector_1): Do not represent classic distance
5090         vectors when the access functions are variating in different loops.
5091
5092 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5093
5094         * config/mips/iris6.opt: New.
5095         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
5096
5097 2011-02-04  Richard Henderson  <rth@redhat.com>
5098             Steve Ellcey  <sje@cup.hp.com>
5099
5100         PR target/46997
5101         * config/ia64/predicates.md (mux1_brcst_element): New.
5102         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
5103         * config/ia64/ia64.c (ia64_unpack_assemble): New.
5104         (ia64_unpack_sign): New.
5105         (ia64_expand_unpack): Rewrite using new routines.
5106         (ia64_expand_widen_sum): Ditto.
5107         (ia64_expand_dot_prod_v8qi): Ditto.
5108         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
5109         routines, add endian check.
5110         (pmpy2_even): Rename from pmpy2_r, add endian check.
5111         (pmpy2_odd): Rename from pmpy2_l, add endian check.
5112         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
5113         (vec_widen_smult_hi_v4hi): Ditto.
5114         (vec_widen_umult_lo_v4hi): Ditto.
5115         (vec_widen_umult_hi_v4hi): Ditto.
5116         (mulv2si3): Change endian checks.
5117         (sdot_prodv4hi): Rewrite with new calls.
5118         (udot_prodv4hi): New.
5119         (vec_pack_ssat_v4hi): Add endian check.
5120         (vec_pack_usat_v4hi): Ditto.
5121         (vec_pack_ssat_v2si): Ditto.
5122         (max1_even): Rename from max1_r, add endian check.
5123         (max1_odd): Rename from max1_l, add endian check.
5124         (*mux1_rev): Format change.
5125         (*mux1_mix): Ditto.
5126         (*mux1_shuf): Ditto.
5127         (*mux1_alt): Ditto.
5128         (*mux1_brcst_v8qi): Use new predicate.
5129         (vec_extract_evenv8qi): Remove endian check.
5130         (vec_extract_oddv8qi): Ditto.
5131         (vec_interleave_lowv4hi): Format change.
5132         (vec_interleave_highv4hi): Ditto.
5133         (mix2_even): Rename from mix2_r, add endian check.
5134         (mix2_odd): Rename from mux2_l, add endian check.
5135         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
5136         (vec_extract_evenodd_helper): Format change.
5137         (vec_extract_evenv4hi): Remove endian check.
5138         (vec_extract_oddv4hi): Remove endian check.
5139         (vec_interleave_lowv2si): Format change.
5140         (vec_interleave_highv2si): Format change.
5141         (vec_initv2si): Remove endian check.
5142         (vecinit_v2si): Add endian check.
5143         (reduc_splus_v2sf): Add endian check.
5144         (reduc_smax_v2sf): Ditto.
5145         (reduc_smin_v2sf): Ditto.
5146         (vec_initv2sf): Remove endian check.
5147         (fpack): Add endian check.
5148         (fswap): Add endian check.
5149         (vec_interleave_highv2sf): Add endian check.
5150         (vec_interleave_lowv2sf): Add endian check.
5151         (fmix_lr): Add endian check.
5152         (vec_setv2sf): Format change.
5153         (*vec_extractv2sf_0_be): Use shift to extract operand.
5154         (*vec_extractv2sf_1_be): New.
5155         (vec_pack_trunc_v4hi): Add endian check.
5156         (vec_pack_trunc_v2si): Format change.
5157
5158 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
5159
5160         PR inline-asm/23200
5161         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
5162         do bb, locus and block comparison and disallow loads if it is not set.
5163         (stmt_is_replaceable_p): New function.
5164         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
5165         callers.
5166         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
5167         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
5168         SSA_NAME_DEF_STMT.
5169         * tree-flow.h (stmt_is_replaceable_p): New prototype.
5170
5171 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5172
5173         * config/rs6000/xilinx.opt: New.
5174         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
5175
5176 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
5177
5178         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
5179
5180 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
5181
5182         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
5183         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
5184         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
5185         secondary_reload_info, xtensa_secondary_reload): Remove.
5186         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
5187         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
5188         (xtensa_preferred_reload_class): Make static. Change return and
5189         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
5190         Use CONST_DOUBLE_P predicate.
5191         (xtensa_preferred_output_reload_class): New function.
5192         (xtensa_secondary_reload): Make static.
5193
5194 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
5195
5196         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
5197         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
5198         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
5199
5200 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5201
5202         PR middle-end/31490
5203         * output.h (SECTION_RELRO): Define.
5204         (SECTION_MACH_DEP): Adjust.
5205         (get_variable_section): New prototype.
5206         * varpool.c (varpool_finalize_named_section_flags): New function.
5207         (varpool_assemble_pending_decls): Call it.
5208         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
5209         * cgraphunit.c (cgraph_output_in_order): Call
5210         varpool_finalize_named_section_flags.
5211         * varasm.c (get_section): Allow section flags conflicts between
5212         relro and read-only sections if the section hasn't been declared yet.
5213         Set SECTION_OVERRIDE after diagnosing section type conflict.
5214         (get_variable_section): No longer static.
5215         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
5216         readonly sections that need relocations.
5217         (decl_readonly_section_1): New function.
5218         (decl_readonly_section): Use it.
5219
5220         Revert:
5221         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
5222                     Steve Ellcey  <sje@cup.hp.com>
5223
5224         PR middle-end/31490
5225         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
5226         if section attribute used.
5227
5228 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5229
5230         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
5231         * config/darwin.c (SECTION_NO_ANCHOR): Define.
5232         (darwin_init_sections): Remove assertion.
5233
5234 2011-02-03  Nick Clifton  <nickc@redhat.com>
5235
5236         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
5237         lt and ge.
5238         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
5239         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
5240         instead of "n" and "pz".
5241         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
5242         CC_FLAG_S.
5243
5244 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
5245
5246         PR target/47312
5247         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
5248         fma, expand FMA_EXPR as fma{,f,l} call.
5249
5250         PR lto/47274
5251         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
5252         copy them into a unsigned char variable and pass address of it to
5253         lto_output_data_stream.
5254
5255         PR target/47564
5256         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
5257         around backend_init_target and lang_dependent_init_target calls.
5258         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
5259         (verify_cgraph_node): Don't call set_cfun here.  Use
5260         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
5261         Set error_found for incorrectly represented calls to thunks.
5262
5263 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
5264
5265         PR debug/43092
5266         PR rtl-optimization/43494
5267         * rtl.h (for_each_inc_dec_fn): New type.
5268         (for_each_inc_dec): Declare.
5269         * rtlanal.c (struct for_each_inc_dec_ops): New type.
5270         (for_each_inc_dec_find_inc_dec): New fn.
5271         (for_each_inc_dec_find_mem): New fn.
5272         (for_each_inc_dec): New fn.
5273         * dse.c (struct insn_size): Remove.
5274         (replace_inc_dec, replace_inc_dec_mem): Remove.
5275         (emit_inc_dec_insn_before): New fn.
5276         (check_for_inc_dec): Use it, along with for_each_inc_dec.
5277         (canon_address): Pass mem modes to cselib_lookup.
5278         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
5279         (cselib_lookup_from_insn): Likewise.
5280         (cselib_subst_to_values): Likewise.
5281         * cselib.c (find_slot_memmode): New var.
5282         (cselib_find_slot): New fn.  Use it instead of
5283         htab_find_slot_with_hash everywhere.
5284         (entry_and_rtx_equal_p): Use find_slot_memmode.
5285         (autoinc_split): New fn.
5286         (rtx_equal_for_cselib_p): Rename and implement in terms of...
5287         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
5288         Deal with autoinc.  Special-case recursion into MEMs.
5289         (cselib_hash_rtx): Likewise.
5290         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
5291         address and MEM modes.
5292         (cselib_subst_to_values): Add memmode, pass it on.
5293         Deal with autoinc.
5294         (cselib_lookup): Add memmode argument, pass it on.
5295         (cselib_lookup_from_insn): Add memmode.
5296         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
5297         (struct cselib_record_autoinc_data): New.
5298         (cselib_record_autoinc_cb): New fn.
5299         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
5300         mode to cselib_lookup.  Reset autoinced REGs here instead of...
5301         (cselib_process_insn): ... here.
5302         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
5303         to cselib_lookup.
5304         (add_uses): Likewise, also to cselib_subst_to_values.
5305         (add_stores): Likewise.
5306         * sched-deps.c  (add_insn_mem_dependence): Pass mode to
5307         cselib_subst_to_values.
5308         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
5309         * gcse.c (do_local_cprop): Adjusted.
5310         * postreload.c (reload_cse_simplify_set): Adjusted.
5311         (reload_cse_simplify_operands): Adjusted.
5312         * sel-sched-dump (debug_mem_addr_value): Pass mode.
5313
5314 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
5315
5316         PR tree-optimization/45122
5317         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
5318         unsafe assumptions when there's more than one loop exit.
5319
5320 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5321
5322         PR target/47272
5323         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
5324         Document using vector double with the load/store builtins, and
5325         that the load/store builtins always use Altivec instructions.
5326
5327         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
5328         to use altivec memory instructions, even on VSX.
5329         (vector_altivec_store_<mode>): Ditto.
5330
5331         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
5332         function.
5333
5334         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5335         V2DF, V2DI support to load/store overloaded builtins.
5336
5337         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
5338         altivec load/store builtins for V2DF/V2DI types.
5339
5340         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
5341         set avoid indexed addresses on power6 if -maltivec.
5342         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
5343         vector_altivec_load/vector_altivec_store builtins.
5344         (altivec_expand_st_builtin): Ditto.
5345         (altivec_expand_builtin): Add VSX memory builtins.
5346         (rs6000_init_builtins): Add V2DI types to internal types.
5347         (altivec_init_builtins): Add support for V2DF/V2DI altivec
5348         load/store builtins.
5349         (rs6000_address_for_altivec): Insure memory address is appropriate
5350         for Altivec.
5351
5352         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
5353         vec_vsx_ld and vec_vsx_st.
5354         (vsx_store_<mode>): Ditto.
5355
5356         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
5357         variables to hold long long types for VSX vector memory builtins.
5358         (RS6000_BTI_unsigned_long_long): Ditto.
5359         (long_long_integer_type_internal_node): Ditti.
5360         (long_long_unsigned_type_internal_node): Ditti.
5361
5362         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
5363         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
5364         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
5365
5366         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
5367         short cuts.
5368         (vec_vsx_st): Ditto.
5369
5370 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5371
5372         * config/pa/pa-hpux10.opt: New.
5373         * config/hpux11.opt (pthread): New Driver option.
5374         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
5375         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
5376
5377 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5378
5379         * config/ia64/vms.opt: New.
5380         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
5381
5382 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5383
5384         PR target/47580
5385         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
5386         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
5387         generator functions.
5388         (vsx_floatuns<VSi><mode>2): Ditto.
5389         (vsx_fix_trunc<mode><VSi>2): Ditto.
5390         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
5391
5392 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
5393
5394         * config/i386/djgpp.opt (posix): New Driver option.
5395
5396 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
5397
5398         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
5399         Move to the unsupported targets list.
5400
5401 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
5402
5403         PR rtl-optimization/47525
5404         * df-scan.c: Update copyright years.
5405         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
5406         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
5407
5408 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5409
5410         * config/i386/sysv4.h (TARGET_VERSION): Remove.
5411         (SUBTARGET_RETURN_IN_MEMORY): Remove.
5412         (ASM_OUTPUT_ASCII): Remove.
5413         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
5414
5415 2011-02-02  Jeff Law  <law@redhat.com>
5416
5417         PR middle-end/47543
5418         * reload.c (find_reloads_address): Handle reg+d address where both
5419         components are invalid by reloading the entire address.
5420
5421 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
5422             Richard Guenther  <rguenther@suse.de>
5423
5424         PR tree-optimization/40979
5425         PR bootstrap/47044
5426         * passes.c (init_optimization_passes): After LIM call copy_prop
5427         and DCE to clean up.
5428         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
5429
5430 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
5431
5432         PR tree-optimization/47576
5433         PR tree-optimization/47555
5434         * doc/invoke.texi (scev-max-expr-complexity): Documented.
5435         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5436         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
5437         * tree-scalar-evolution.c (follow_ssa_edge): Use
5438         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
5439
5440 2011-02-02  Richard Guenther  <rguenther@suse.de>
5441
5442         PR tree-optimization/47566
5443         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
5444
5445 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
5446
5447         PR debug/47106
5448         PR debug/47402
5449         * tree-inline.c (declare_return_variable): Remove unused caller
5450         variable.
5451
5452         PR debug/47106
5453         PR debug/47402
5454         * tree-flow-inline.h (clear_is_used, is_used_p): New.
5455         * cfgexpand.c (account_used_vars_for_block): Use them.
5456         * tree-nrv.c (tree_nrv): Likewise.
5457         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
5458         (dump_scope_block): Likewise.
5459         (remove_unused_locals): Likewise.
5460
5461         PR debug/47106
5462         PR debug/47402
5463         * tree-inline.c (declare_return_variable): Add result decl to
5464         local decls only once.
5465         * gimple-low.c (record_vars_into): Mark newly-created variables
5466         as referenced.
5467
5468 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
5469
5470         PR debug/47498
5471         PR debug/47501
5472         PR debug/45136
5473         PR debug/45130
5474         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5475         debug insns.
5476         (no_real_insns_p, schedule_block, set_priorities): Drop special
5477         treatment of boundary debug insns.
5478         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5479         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
5480         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5481         (BOUNDARY_DEBUG_INSN_P): Likewise.
5482         (SCHEDULE_DEBUG_INSN_P): Likewise.
5483         * sched-rgn.c (init_ready_list): Drop special treatment of
5484         boundary debug insns.
5485         * final.c (rest_of_clean_state): Clear notes' BB.
5486
5487 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5488
5489         * config/openbsd.opt (assert=): New Driver option.
5490
5491 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5492
5493         * config/i386/nto.opt: New.
5494         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
5495
5496 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5497
5498         * config/i386/netware.opt: New.
5499         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
5500
5501 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5502
5503         * config/interix.opt (posix): New Driver option.
5504
5505 2011-02-01  DJ Delorie  <dj@redhat.com>
5506
5507         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
5508
5509         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
5510         class for A0/A1.
5511
5512 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
5513
5514         PR tree-optimization/47561
5515         * toplev.c (process_options): Print the Graphite flags.  Add
5516         flag_loop_flatten to the list of options requiring Graphite.
5517
5518 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5519
5520         * config/i386/cygming.opt (posix): New Driver option.
5521
5522 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5523
5524         * config/arm/vxworks.opt: New.
5525         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
5526
5527 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
5528
5529         * config/alpha/elf.opt: New.
5530         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
5531         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
5532
5533 2011-02-01  Richard Guenther  <rguenther@suse.de>
5534
5535         PR tree-optimization/47559
5536         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
5537         store-motion on references that can throw.
5538
5539 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
5540
5541         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
5542         * tree-pass.h (TDF_CSELIB): New macro.
5543         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
5544         cselib_lookup): Check for it rather than for TDF_DETAILS.
5545
5546 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
5547
5548         PR driver/47547
5549         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
5550         is HOST_BIT_BUCKET.
5551
5552         * opts.c (finish_options): Don't add x_aux_base_name if it is
5553         HOST_BIT_BUCKET.
5554
5555 2011-02-01  Richard Guenther  <rguenther@suse.de>
5556
5557         PR tree-optimization/47555
5558         Revert
5559         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
5560
5561         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
5562
5563 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
5564
5565         PR gcc/46692
5566         * config/lm32/t-lm32: Add multilib for all CPU options.
5567
5568 2011-02-01  Richard Guenther  <rguenther@suse.de>
5569
5570         PR tree-optimization/47541
5571         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
5572         sure to have a field at offset zero.
5573
5574 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5575
5576         * config/arc/arc.opt (EB, EL): New Driver options.
5577
5578 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5579
5580         * config/alpha/osf5.opt: New.
5581         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
5582
5583 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
5584
5585         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
5586
5587 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
5588
5589         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
5590         -floop-interchange.
5591         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
5592         is an alias of -floop-interchange and that it requires the
5593         Graphite infrastructure.
5594         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
5595         flag_loop_interchange based on the value of flag_tree_loop_linear.
5596
5597 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
5598             Richard Guenther  <rguenther@suse.de>
5599
5600         PR tree-optimization/47538
5601         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
5602         type instead of r1type, except for comparisons.  For right
5603         shifts and comparisons punt if there are mismatches in
5604         sizetype vs. non-sizetype types.
5605
5606 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5607
5608         * doc/sourcebuild.texi (Effective-Target Keywords): Document
5609         avx_runtime.
5610
5611 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5612
5613         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
5614         version number.
5615         * configure: Regenerate.
5616
5617 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5618
5619         * configure.ac (gcc_cv_ld_static_option): Define.
5620         (gcc_cv_ld_dynamic_option): Define.
5621         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
5622         instead.
5623         (HAVE_LD_STATIC_DYNAMIC): Update message.
5624         (LD_STATIC_OPTION): Define.
5625         (LD_DYNAMIC_OPTION): Define.
5626         * configure: Regenerate.
5627         * config.in: Regenerate.
5628         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
5629         HAVE_LD_STATIC_DYNAMIC]: Use them.
5630
5631 2011-01-31  Nick Clifton  <nickc@redhat.com>
5632
5633         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
5634         registers inside interrupt handlers if the handler is not a leaf
5635         function.
5636
5637 2011-01-31  Nick Clifton  <nickc@redhat.com>
5638
5639         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
5640         reg_renumber returning an INVALID_REGNUM.
5641
5642 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
5643
5644         PR libgcj/44341
5645         * doc/install.texi: Document host options discarded when cross
5646         configuring target libraries.
5647
5648 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
5649
5650         Reverted:
5651         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
5652         PR debug/45136
5653         PR debug/45130
5654         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5655         debug insns.
5656         (no_real_insns_p, schedule_block, set_priorities): Drop special
5657         treatment of boundary debug insns.
5658         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5659         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
5660         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5661         (BOUNDARY_DEBUG_INSN_P): Likewise.
5662         (SCHEDULE_DEBUG_INSN_P): Likewise.
5663         * sched-rgn.c (init_ready_list): Drop special treatment of
5664         boundary debug insns.
5665         * final.c (rest_of_clean-state): Clear notes' BB.
5666
5667 2011-01-31  Alan Modra  <amodra@gmail.com>
5668
5669         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
5670         toc relative expressions as we do in print_operand_address.
5671
5672 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
5673
5674         * doc/extend.texi: Follow spelling conventions.
5675         * doc/invoke.texi: Fix a typo.
5676
5677 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
5678
5679         * config/hpux11.opt: New.
5680         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
5681         ia64*-*-hpux*): Use hpux11.opt.
5682
5683 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
5684
5685         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
5686         to tmake_file.
5687
5688 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5689
5690         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
5691         support sites.
5692
5693 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5694
5695         * doc/install.texi (Binaries): Remove outdated reference for
5696         Motorola 68HC11/68HC12 downloads.
5697
5698 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
5699
5700         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
5701         Drepper's paper.
5702
5703 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
5704
5705         PR bootstrap/47147
5706         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
5707         used by NetBSD.
5708
5709 2011-01-28  Ahmad Sharif  <asharif@google.com>
5710
5711         * value-prof.c (check_counter): Corrected error message.
5712
5713 2011-01-29  Jie Zhang  <jie@codesourcery.com>
5714
5715         * config/arm/arm.c (arm_legitimize_reload_address): New.
5716         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
5717         arm_legitimize_reload_address.
5718         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
5719
5720 2011-01-28  Ian Lance Taylor  <iant@google.com>
5721
5722         * godump.c (go_define): Ignore macros whose definitions include
5723         two adjacent operands.
5724
5725 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
5726
5727         PR target/42894
5728         * varasm.c (force_const_mem): Store copy of x in desc->constant
5729         instead of x itself.
5730         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
5731         itself into REG_EQUAL note.
5732
5733 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
5734
5735         * config/freebsd.opt (posix, rdynamic): New Driver options.
5736
5737 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5738
5739         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
5740         -Bstatic/-Bdynamic.
5741         * configure: Regenerate.
5742
5743 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
5744
5745         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
5746         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
5747
5748 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
5749
5750         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
5751         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
5752         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
5753         (s390_preferred_reload_class): Make static. Change return and
5754         'rclass' argument type to reg_class_t.
5755
5756 2011-01-27  Jan Hubicka  <jh@suse.cz>
5757
5758         PR middle-end/46949
5759         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
5760         (process_function_and_variable_attributes): Check defined weakrefs.
5761
5762 2011-01-27  Martin Jambor  <mjambor@suse.cz>
5763
5764         PR tree-optimization/47228
5765         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
5766         build_ref_for_offset.
5767
5768 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5769
5770         * config/spu/spu-elf.h (ASM_SPEC): Remove.
5771
5772 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
5773
5774         PR rtl-optimization/46856
5775         * postreload.c (reload_combine_recognize_const_pattern): Do not
5776         separate cc0 setter and user on cc0 targets.
5777
5778 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
5779
5780         PR c/43082
5781         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
5782         passed a VOID_TYPE expression, immediately emit an error and
5783         return error_mark_node.
5784
5785 2011-01-26  Jeff Law  <law@redhat.com>
5786
5787         PR rtl-optimization/47464
5788         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
5789         rather than may_trap_p as needed.
5790
5791 2011-01-26  DJ Delorie  <dj@redhat.com>
5792
5793         PR rtl-optimization/46878
5794         * combine.c (insn_a_feeds_b): Check for the implicit cc0
5795         setter/user dependency as well.
5796
5797 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
5798
5799         PR rtl-optimization/44469
5800         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
5801         after removing trivially dead basic blocks.
5802
5803 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5804
5805         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
5806         * config/frv/frv.h (LINK_SPEC): Likewise.
5807         * config/i386/netware.h (LINK_SPEC): Likewise.
5808         * config/m68k/linux.h (ASM_SPEC): Likewise.
5809         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
5810         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
5811         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5812         * config/sparc/linux.h (ASM_SPEC): Likewise.
5813         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5814         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5815
5816 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5817
5818         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
5819         * config/frv/frv.h (ASM_SPEC): Likewise.
5820         * config/m68k/linux.h (ASM_SPEC): Likewise.
5821         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
5822         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
5823         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5824         * config/sparc/linux.h (ASM_SPEC): Likewise.
5825         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5826         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5827
5828 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5829
5830         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
5831         * config/frv/frv.h (LINK_SPEC): Likewise.
5832         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
5833
5834 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
5835
5836         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
5837         * config/frv/frv.h (ASM_SPEC): Likewise.
5838         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
5839         * config/m68k/linux.h (ASM_SPEC): Likewise.
5840         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
5841         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
5842         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
5843         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
5844         * config/sparc/linux.h (ASM_SPEC): Likewise.
5845         * config/sparc/linux64.h (ASM_SPEC): Likewise.
5846         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
5847         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
5848
5849 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
5850
5851         PR target/46997
5852         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
5853         (*mux2): Ditto.
5854         (vec_extract_evenodd_help): Ditto.
5855         (vec_extract_evenv4hi): Ditto.
5856         (vec_extract_oddv4hi): Ditto.
5857         (vec_interleave_lowv2si): Ditto.
5858         (vec_interleave_highv2si): Ditto.
5859         (vec_extract_evenv2si): Ditto.
5860         (vec_extract_oddv2si: Ditto.
5861         (vec_pack_trunc_v2si): Ditto.
5862
5863 2011-01-22  Jan Hubicka  <jh@suse.cz>
5864
5865         PR target/47237
5866         * cgraph.h (cgraph_local_info): New field can_change_signature.
5867         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
5868         signature can change.
5869         (ipcp_estimate_growth): Call sequence simplify only if calle signature
5870         can change.
5871         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
5872         (cgraph_function_versioning): We can not change signature of functions
5873         that don't allow that.
5874         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
5875         (lto_input_node): Likewise.
5876         * ipa-inline.c (compute_inline_parameters): Compute
5877         local.can_change_signature.
5878         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
5879         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
5880         functions that can not change signature.
5881         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
5882         init_cumulative_args): Do not use local calling conventions
5883         for functions that can not change signature.
5884
5885 2011-01-22  Jan Hubicka  <jh@suse.cz>
5886
5887         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
5888
5889 2011-01-26  Richard Guenther  <rguenther@suse.de>
5890
5891         PR tree-optimization/47190
5892         * cgraphunit.c (process_common_attributes): New function.
5893         (process_function_and_variable_attributes): Use it.
5894
5895 2011-01-26  Richard Guenther  <rguenther@suse.de>
5896
5897         PR lto/47423
5898         * cgraphbuild.c (record_eh_tables): Record reference to personality
5899         function.
5900
5901 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
5902
5903         PR debug/45454
5904         * sel-sched.c (moveup_expr): Don't let debug insns prevent
5905         non-debug insns from moving up.
5906
5907 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
5908
5909         PR target/40125
5910         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
5911         t-dlldir{,-x} fragment for build and add it to tmake_file.
5912         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
5913         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
5914         * config/i386/t-dlldir: New file.
5915         (SHLIB_DLLDIR): Define.
5916         * config/i386/t-dlldir-x: New file.
5917         (SHLIB_DLLDIR): Define.
5918         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
5919         (SHLIB_INSTALL): Use it.
5920
5921 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
5922
5923         PR target/47246
5924         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
5925         lower bound of the allowed Thumb-2 coprocessor load/store
5926         index range to -256. Add explaining comment.
5927
5928 2011-01-25  Ian Lance Taylor  <iant@google.com>
5929
5930         * godump.c (go_define): Improve lexing of macro expansion to only
5931         accept expressions which match Go spec.
5932
5933 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
5934
5935         PR c++/43601
5936         * tree.c (handle_dll_attribute): Handle it.
5937         * doc/extend.texi (@item dllexport): Mention it.
5938         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
5939
5940 2011-01-25  Ian Lance Taylor  <iant@google.com>
5941
5942         PR tree-optimization/26854
5943         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
5944         (decl_jump_unsafe): Move higher in file, with no other change.
5945         (bind): Set has_jump_unsafe_decl if appropriate.
5946         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
5947         (check_earlier_gotos): Likewise.
5948         (c_check_switch_jump_warnings): Likewise.
5949
5950 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
5951
5952         * doc/invoke.texi (Warning Options): Add missing hyphen.
5953         (-fprofile-dir): Minor grammatical fixes.
5954         (-fbranch-probabilities): Likewise.
5955
5956 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
5957
5958         PR debug/45136
5959         PR debug/45130
5960         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
5961         debug insns.
5962         (no_real_insns_p, schedule_block, set_priorities): Drop special
5963         treatment of boundary debug insns.
5964         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
5965         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
5966         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
5967         (BOUNDARY_DEBUG_INSN_P): Likewise.
5968         (SCHEDULE_DEBUG_INSN_P): Likewise.
5969         * sched-rgn.c (init_ready_list): Drop special treatment of
5970         boundary debug insns.
5971         * final.c (rest_of_clean-state): Clear notes' BB.
5972
5973 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
5974
5975         * Makefile.in (LAMBDA_H): Removed.
5976         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
5977         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
5978         lambda-trans.o, and tree-loop-linear.o.
5979         (lto-symtab.o): Remove dependence on LAMBDA_H.
5980         (tree-loop-linear.o): Remove rule.
5981         (lambda-mat.o): Same.
5982         (lambda-trans.o): Same.
5983         (lambda-code.o): Same.
5984         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
5985         (tree-vect-slp.o): Same.
5986         * hwint.h (gcd): Moved here.
5987         (least_common_multiple): Same.
5988         * lambda-code.c: Removed.
5989         * lambda-mat.c: Removed.
5990         * lambda-trans.c: Removed.
5991         * lambda.h: Removed.
5992         * tree-loop-linear.c: Removed.
5993         * lto-symtab.c: Do not include lambda.h.
5994         * omega.c (gcd): Removed.
5995         * passes.c (init_optimization_passes): Remove pass_linear_transform.
5996         * tree-data-ref.c (print_lambda_vector): Moved here.
5997         (lambda_vector_copy): Same.
5998         (lambda_matrix_copy): Same.
5999         (lambda_matrix_id): Same.
6000         (lambda_vector_first_nz): Same.
6001         (lambda_matrix_row_add): Same.
6002         (lambda_matrix_row_exchange): Same.
6003         (lambda_vector_mult_const): Same.
6004         (lambda_vector_negate): Same.
6005         (lambda_matrix_row_negate): Same.
6006         (lambda_vector_equal): Same.
6007         (lambda_matrix_right_hermite): Same.
6008         * tree-data-ref.h: Do not include lambda.h.
6009         (lambda_vector): Moved here.
6010         (lambda_matrix): Same.
6011         (dependence_level): Same.
6012         (lambda_transform_legal_p): Removed declaration.
6013         (lambda_collect_parameters): Same.
6014         (lambda_compute_access_matrices): Same.
6015         (lambda_vector_gcd): Same.
6016         (lambda_vector_new): Same.
6017         (lambda_vector_clear): Same.
6018         (lambda_vector_lexico_pos): Same.
6019         (lambda_vector_zerop): Same.
6020         (lambda_matrix_new): Same.
6021         * tree-flow.h (least_common_multiple): Removed declaration.
6022         * tree-parloops.c (lambda_trans_matrix): Moved here.
6023         (LTM_MATRIX): Same.
6024         (LTM_ROWSIZE): Same.
6025         (LTM_COLSIZE): Same.
6026         (LTM_DENOMINATOR): Same.
6027         (lambda_trans_matrix_new): Same.
6028         (lambda_matrix_vector_mult): Same.
6029         (lambda_transform_legal_p): Same.
6030         * tree-pass.h (pass_linear_transform): Removed declaration.
6031         * tree-ssa-loop.c (tree_linear_transform): Removed.
6032         (gate_tree_linear_transform): Removed.
6033         (pass_linear_transform): Removed.
6034         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
6035         flag_loop_interchange.
6036
6037 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6038
6039         PR tree-optimization/47265
6040         PR tree-optimization/47443
6041         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
6042         if name still has some uses.
6043
6044 2011-01-25  Martin Jambor  <mjambor@suse.cz>
6045
6046         PR tree-optimization/47382
6047         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
6048         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
6049
6050 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
6051
6052         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
6053         sjlj_except_unwind_info.
6054
6055 2011-01-25  Richard Guenther  <rguenther@suse.de>
6056
6057         PR tree-optimization/47426
6058         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
6059         visible functions results escape.
6060
6061 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6062
6063         PR target/45701
6064         * config/arm/arm.c (any_sibcall_uses_r3): New function.
6065         (arm_get_frame_offsets): Use it.
6066
6067 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6068             Jakub Jelinek  <jakub@redhat.com>
6069
6070         PR tree-optimization/47271
6071         * tree-if-conv.c (bb_postdominates_preds): New.
6072         (if_convertible_bb_p): Call bb_postdominates_preds.
6073         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
6074         (predicate_scalar_phi): Call bb_postdominates_preds.
6075
6076 2011-01-25  Nick Clifton  <nickc@redhat.com>
6077
6078         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
6079         * config/rx/rx.c (rx_function_value): Likewise.
6080         (rx_promote_function_mode): Likewise.
6081         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
6082         in order to make it legitimate.
6083         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
6084         make sure that the first operand is the same as the result register.
6085         (addsi3_unspec): Delete.
6086         (subdi3): Do not accept immediate operands.
6087         (subdi3_internal): Likewise.
6088
6089 2011-01-25  Jeff Law  <law@redhat.com>
6090
6091         PR rtl-optimization/37273
6092         * ira-costs.c (scan_one_insn): Detect constants living in memory and
6093         handle them like argument loads from stack slots.  Do not double
6094         count memory for memory constants and argument loads from stack slots.
6095
6096 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
6097
6098         PR tree-optimization/47427
6099         PR tree-optimization/47428
6100         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
6101         coalesce if the new root var would be TREE_READONLY.
6102
6103 2011-01-25  Richard Guenther  <rguenther@suse.de>
6104
6105         PR middle-end/47414
6106         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
6107         correct type for TBAA.
6108
6109 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6110
6111         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
6112         (close_phi_written_to_memory): Call for_each_index with
6113         dr_indices_valid_in_loop.
6114
6115 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6116
6117         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
6118         when it is initialized.
6119
6120 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6121
6122         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
6123         call to graphite_find_data_references_in_stmt.
6124         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
6125         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
6126         call to graphite_find_data_references_in_stmt.
6127         (analyze_drs_in_stmts): Same.
6128         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
6129         in which the scalar analysis of indices is performed.
6130         (create_data_ref): Same.  Update call to dr_analyze_indices.
6131         (find_data_references_in_stmt): Update call to create_data_ref.
6132         (graphite_find_data_references_in_stmt): Same.
6133         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
6134         declaration.
6135         (create_data_ref): Same.
6136         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
6137         call to create_data_ref.
6138
6139 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6140
6141         * graphite-sese-to-poly.c (build_poly_scop): Move
6142         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
6143
6144 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6145
6146         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
6147         VAR_DECL, PARM_DECL, and RESULT_DECL.
6148
6149 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6150
6151         * graphite-dependences.c (reduction_dr_1): Allow several reductions
6152         in a reduction PBB.
6153         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
6154         that have already been marked as PBB_IS_REDUCTION.
6155
6156 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6157
6158         * graphite-scop-detection.c (same_close_phi_node): New.
6159         (remove_duplicate_close_phi): New.
6160         (make_close_phi_nodes_unique): New.
6161         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
6162
6163 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6164
6165         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
6166         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
6167         of both data references to be the same.
6168
6169 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6170
6171         * graphite-dependences.c (build_lexicographical_constraint): Remove
6172         the gdim parameter.
6173         (build_lexicographical_constraint): Adjust call to
6174         ppl_powerset_is_empty.
6175         (dependence_polyhedron): Same.
6176         (graphite_legal_transform_dr): Same.
6177         (graphite_carried_dependence_level_k): Same.
6178         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
6179         parameter.
6180         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
6181
6182 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6183
6184         * graphite-sese-to-poly.c
6185         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
6186         (close_phi_written_to_memory): New.
6187         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
6188         and unshare_expr.
6189
6190 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6191
6192         * doc/install.texi: Update the expected version number of PPL to 0.11.
6193         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
6194         #if PPL_VERSION_MINOR < 11.
6195
6196 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6197
6198         * graphite-dependences.c: Include graphite-cloog-util.h.
6199         (new_poly_ddr): Inlined into dependence_polyhedron.
6200         (free_poly_ddr): Moved close by new_poly_ddr.
6201         (dependence_polyhedron_1): Renamed dependence_polyhedron.
6202         Early return NULL when ppl_powerset_is_empty returns true.
6203         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
6204         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
6205         (graphite_legal_transform_dr): Call new_poly_ddr.
6206         (graphite_carried_dependence_level_k): Same.
6207         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
6208         (dot_transformed_deps_stmt_1): Removed.
6209         (dot_deps_stmt_1): Call dot_deps_stmt_2.
6210         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
6211         (dot_deps_1): Call dot_deps_2.
6212         * Makefile.in (graphite-dependences.o): Add missing dependence on
6213         graphite-cloog-util.h.
6214
6215 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6216
6217         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
6218         (build_lexicographical_constraint): Same.
6219         (dependence_polyhedron_1): Same.
6220         (graphite_legal_transform_dr): Same.
6221         (graphite_carried_dependence_level_k): Same.
6222         * graphite-ppl.c (ppl_powerset_is_empty): New.
6223         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
6224         * tree-data-ref.c (dump_data_reference): Print the basic block index.
6225
6226 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6227
6228         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
6229         the "a followed by b" relation and document it.
6230
6231 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6232
6233         * graphite-dependences.c (build_lexicographical_constraint): Stop the
6234         iteration when the bag of constraints is empty.
6235
6236 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6237
6238         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
6239
6240 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6241
6242         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
6243         nest and two loop depths as parameters.
6244         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
6245         lst_perfect_nestify.
6246
6247 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6248
6249         * graphite-dependences.c (print_pddr): Call
6250         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
6251
6252 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
6253
6254         * graphite-ppl.c (debug_gmp_value): New.
6255         * graphite-ppl.h (debug_gmp_value): Declared.
6256
6257 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
6258
6259         * doc/install.texi: Document availability of cloog-0.16.
6260
6261 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
6262
6263         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
6264         invalid postdominance info.
6265
6266 2011-01-24  Jan Hubicka  <jh@suse.cz>
6267
6268         PR c/21659
6269         * doc/extend.texi (weak pragma): Drop claim that it must
6270         appear before definition.
6271         * varasm.c (merge_weak, declare_weak): Only sanity check
6272         that DECL is not output at a time it is declared weak.
6273
6274 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
6275
6276         * machmode.def: Fixed comments.
6277
6278 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
6279
6280         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
6281
6282 2011-01-24  Paul Koning  <ni1d@arrl.net>
6283
6284         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
6285         WORDS_BIG_ENDIAN.
6286
6287 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6288
6289         PR target/46519
6290         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
6291         (block_info): Add scanned and prev.
6292         (move_or_delete_vzeroupper_2): Return if the basic block
6293         has been scanned and the upper 128bit state is unchanged
6294         from the last scan.
6295         (move_or_delete_vzeroupper_1): Return true if the exit
6296         state is changed.
6297         (move_or_delete_vzeroupper): Visit basic blocks using the
6298         work-list based algorithm based on vt_find_locations in
6299         var-tracking.c.
6300
6301         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
6302
6303 2011-01-24  Nick Clifton  <nickc@redhat.com>
6304
6305         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
6306         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
6307         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
6308         then define __v850e1__.
6309         * doc/invoke.texi: Document -mv850es.
6310
6311 2011-01-24  Richard Henderson  <rth@redhat.com>
6312
6313         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
6314         compound unordered comparisons.
6315         * config/rx/rx.c (rx_split_fp_compare): Remove.
6316         * config/rx/rx-protos.h: Update.
6317         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
6318         (cbranchsf4): Don't call rx_split_fp_compare.
6319         (*cbranchsf4): Use rx_split_cbranch.
6320         (*cmpsf): Don't accept "i" constraint.
6321         (*conditional_branch): Only valid after reload.
6322         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
6323
6324 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
6325
6326         PR target/47385
6327         * config/rs6000/altivec.md (vector constant splitters): Add
6328         support for creating vector single precision constants if -mvsx is
6329         used and we would create the constant using Altivec primitives.
6330
6331 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
6332             Richard Sandiford  <rdsandiford@googlemail.com>
6333
6334         PR rtl-optimization/47166
6335         * reload1.c (emit_reload_insns): Disable the spill_reg_store
6336         mechanism for PRE_MODIFY and POST_MODIFY.
6337         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
6338         reloadreg.
6339
6340 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
6341
6342         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
6343
6344 2011-01-22  Jan Hubicka  <jh@suse.cz>
6345
6346         PR lto/47333
6347         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
6348
6349 2011-01-22  Jan Hubicka  <jh@suse.cz>
6350
6351         PR tree-optimization/43884
6352         PR lto/44334
6353         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
6354         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
6355
6356 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
6357
6358         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6359         * config/s390/s390.c (s390_register_move_cost,
6360         s390_memory_move_cost): New.
6361         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6362
6363 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6364
6365         PR middle-end/47401
6366         * except.c (sjlj_assign_call_site_values): Move setting the
6367         crtl->uses_eh_lsda flag to ...
6368         (sjlj_mark_call_sites): ... here.
6369         (sjlj_emit_function_enter): Support NULL dispatch label.
6370         (sjlj_build_landing_pads): In a function with no landing pads
6371         that still has must-not-throw regions, generate code to register
6372         a personality function with empty LSDA.
6373
6374 2011-01-21  Richard Henderson  <rth@redhat.com>
6375
6376         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
6377
6378         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
6379
6380         * compare-elim.c: New file.
6381         * Makefile.in (OBJS-common): Add it.
6382         (compare-elim.o): New.
6383         * common.opt (fcompare-elim): New.
6384         * opts.c (default_options_table): Add OPT_fcompare_elim.
6385         * tree-pass.h (pass_compare_elim_after_reload): New.
6386         * passes.c (init_optimization_passes): Add it.
6387         * recog.h: Protect against re-inclusion.
6388         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
6389         * doc/invoke.texi (-fcompare-elim): Document it.
6390         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
6391         * doc/tm.texi: Rebuild.
6392
6393 2011-01-22  Nick Clifton  <nickc@redhat.com>
6394
6395         * config/rx/rx.md (cstoresf4): Pass comparison operator to
6396         rx_split_fp_compare.
6397
6398 2011-01-22  Nick Clifton  <nickc@redhat.com>
6399
6400         * config/rx/rx.md (UNSPEC_CONST): New.
6401         (deallocate_and_return): Wrap the amount popped off the stack in
6402         an UNSPEC_CONST in order to stop it being rejected by
6403         -mmax-constant-size.
6404         (pop_and_return): Add a "(return)" rtx.
6405         (call): Drop the immediate operand.
6406         (call_internal): Likewise.
6407         (call_value): Likewise.
6408         (call_value_internal): Likewise.
6409         (sibcall_internal): Likewise.
6410         (sibcall_value_internal): Likewise.
6411         (sibcall): Likewise.  Generate an explicit call using
6412         sibcall_internal.
6413         (sibcall_value): Likewise.
6414         (mov<>): FAIL if a constant operand is not legitimate.
6415         (addsi3_unpsec): New pattern.
6416
6417         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
6418         (ok_for_max_constant): New function.
6419         (gen_safe_add): New function.
6420         (rx_expand_prologue): Use gen_safe_add.
6421         (rx_expand_epilogue): Likewise.
6422         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
6423         UNSPEC CONSTs.
6424
6425 2011-01-21  Jeff Law  <law@redhat.com>
6426
6427         PR tree-optimization/47053
6428         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
6429         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
6430         statements are deleted.
6431         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
6432         is nonempty, then purge dead edges and cleanup the CFG.
6433
6434 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6435
6436         PR debug/47402
6437         Temporarily revert:
6438         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6439         PR debug/47106
6440         * tree-dfa.c (create_var_ann): Mark variable as used.
6441
6442 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6443
6444         PR middle-end/45566
6445         * except.c (convert_to_eh_region_ranges): Emit queued no-region
6446         notes from other section in hot/cold partitioning even if
6447         last_action is -3.  Increment call_site_base.
6448
6449         PR rtl-optimization/47366
6450         * fwprop.c (forward_propagate_into): Return bool.  If
6451         any changes are made, -fnon-call-exceptions is used and
6452         REG_EH_REGION note is present, call purge_dead_edges
6453         and return true if it purged anything.
6454         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
6455         any EH edges were purged.
6456
6457 2011-01-21  Jeff Law  <law@redhat.com>
6458
6459         PR rtl-optimization/41619
6460         * caller-save.c (setup_save_areas): Break out code to determine
6461         which hard regs are live across calls by examining the reload chains
6462         so that it is always used.
6463         Eliminate code which checked REG_N_CALLS_CROSSED.
6464
6465 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6466
6467         PR tree-optimization/47355
6468         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
6469         NOP has non-debug uses beyond PHIs in new_bb.
6470
6471 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
6472
6473         PR debug/47106
6474         * cfgexpand.c (account_used_vars_for_block): Only account vars
6475         that are annotated as used.
6476         (estimated_stack_frame_size): Don't set TREE_USED.
6477         * tree-dfa.c (create_var_ann): Mark variable as used.
6478
6479 2011-01-21  Richard Guenther  <rguenther@suse.de>
6480
6481         PR middle-end/47395
6482         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
6483
6484 2011-01-21  Richard Guenther  <rguenther@suse.de>
6485
6486         PR tree-optimization/47365
6487         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
6488         (vn_reference_lookup_pieces): Adjust.
6489         (vn_reference_lookup): Likewise.
6490         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
6491         (vn_reference_lookup_3): Only look through kills if in
6492         VN_WALKREWRITE mode.
6493         (vn_reference_lookup_pieces): Adjust.
6494         (vn_reference_lookup): Likewise.
6495         (visit_reference_op_load): Likewise.
6496         (visit_reference_op_store): Likewise.
6497         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
6498         (compute_avail): Likewise.
6499         (eliminate): Likewise.
6500
6501 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
6502
6503         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
6504         DECL_IGNORED_P non-reg vars if they are used.
6505
6506         PR tree-optimization/47391
6507         * varpool.c (const_value_known_p): Return false if
6508         decl is volatile.
6509
6510 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
6511
6512         PR bootstrap/47215
6513         * config/i386/i386.c (ix86_local_alignment): Handle
6514         case for va_list_type_node is nil.
6515         (ix86_canonical_va_list_type): Likewise.
6516
6517 2011-01-21  Alan Modra  <amodra@gmail.com>
6518
6519         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
6520         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
6521
6522 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6523
6524         * config/arm/arm.md (define_attr type): Rename f_load
6525         and f_store to f_fpa_load and f_fpa_store. Update.
6526         (write_conflict): Deal with rename fallout.
6527         (*push_fp_multi): Likewise.
6528         * config/arm/fpa.md (f_load): Use f_fpa_load.
6529         (f_store): Use f_fpa_store.
6530         (*movsf_fpa): Likewise.
6531         (*movdf_fpa): Likewise.
6532         (*movxf_fpa): Likewise.
6533         (*thumb2_movsf_fpa): Likewise.
6534         (*thumb2_movdf_fpa): Likewise.
6535         (*thumb2_movxf_fpa): Likewise.
6536         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
6537         f_loadd and f_stored.
6538         (*thumb2_movdi_vfp): Likewise.
6539         (*thumb2_movsf_vfp): Fix attribute to f_loads.
6540         (*thumb2_movsi_vfp): Likewise.
6541         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
6542         Use f_loads instead of f_load.
6543         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
6544
6545 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
6546
6547         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
6548         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
6549         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
6550         (xtensa_mode_dependent_address_p): New function.
6551         (constantpool_address_p): Make static. Change return type to bool.
6552         Change argument type to const_rtx. Use CONST_INT_P predicate.
6553
6554 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
6555
6556         PR debug/46583
6557         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
6558
6559 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
6560
6561         PR debug/47283
6562         * cfgexpand.c (expand_debug_expr): Instead of generating
6563         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
6564         etc. handling.
6565
6566 2011-01-20  Richard Guenther  <rguenther@suse.de>
6567
6568         PR middle-end/47370
6569         * tree-inline.c (remap_gimple_op_r): Recurse manually for
6570         the pointer operand of MEM_REFs.
6571
6572 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
6573
6574         PR tree-optimization/46130
6575         * ipa-split.c (consider_split): If return_bb contains non-virtual
6576         PHIs other than for retval or if split_function would not adjust it,
6577         refuse to split.
6578
6579 2011-01-20  Richard Guenther  <rguenther@suse.de>
6580
6581         PR tree-optimization/47167
6582         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6583         Revert previous change, only avoid enumeral type changes.
6584
6585 2011-01-19  Mike Stump  <mikestump@comcast.net>
6586
6587         * doc/tm.texi.in (BRANCH_COST): Englishify.
6588         * doc/tm.texi (BRANCH_COST): Likewise.
6589
6590 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
6591
6592         PR c++/47291
6593         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
6594         (gen_scheduled_generic_parms_dies): New functions.
6595         (gen_struct_or_union_type_die): Schedule template parameters DIEs
6596         generation for the end of CU compilation.
6597         (dwarf2out_finish): Generate template parameters DIEs here.
6598
6599 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6600
6601         PR debug/46240
6602         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
6603         debug bind stmt on merge edges.
6604
6605 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6606
6607         PR debug/47079
6608         PR debug/46724
6609         * function.c (instantiate_expr): Instantiate incoming rtl of
6610         implicit arguments, and recurse on VALUE_EXPRs.
6611         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
6612         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
6613
6614 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
6615
6616         * c-parser.c (c_parser_for_statement): Initialize
6617         collection_expression.
6618
6619 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6620
6621         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
6622
6623 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6624
6625         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
6626         (LINK_SHLIB_SPEC): Don't use %(link_path).
6627         (SUBTARGET_EXTRA_SPECS): Remove link_path.
6628
6629 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6630
6631         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
6632         (NO_SHARED_LIB_SUPPORT): Remove.
6633         (LINK_SHLIB_SPEC): Remove one conditional definition.
6634
6635 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
6636
6637         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
6638         %{call_shared}.
6639         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
6640         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
6641         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
6642         %{call_shared} and conditionals on these options not being passed.
6643         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
6644         %{call_shared}.
6645
6646 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
6647
6648         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
6649         simplify.
6650
6651         * ipa-split.c: Spelling fixes.
6652
6653 2011-01-19  Richard Henderson  <rth@redhat.com>
6654
6655         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
6656         (*mulsi3): Likewise.
6657
6658         * longlong.h [__mn10300__] (count_leading_zeros): New.
6659         [__mn10300__] (umul_ppmm, smul_ppmm): New.
6660         [__mn10300__] (add_ssaaaa, subddmmss): New.
6661         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
6662         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
6663
6664 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6665
6666         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
6667
6668 2011-01-19  Richard Henderson  <rth@redhat.com>
6669
6670         * config/mn10300/mn10300.md (addsi3_flags): New.
6671         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
6672         (subsi3_flags, subc_internal, subdi3): New.
6673         (subdi3_internal, *subdi3_degenerate): New.
6674         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
6675
6676         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
6677         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
6678         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
6679         * config/mn10300/mn10300-protos.h: Update.
6680         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
6681         (return_ret): Likewise.  Rename from return_internal_regs.
6682         (return_internal): Remove.
6683
6684         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
6685         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
6686         (mn10300_legitimate_constant_p): Likewise.
6687         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
6688         (mn10300_frame_size): New.
6689         (mn10300_expand_prologue): Use it.
6690         (mn10300_expand_epilogue): Likewise.
6691         (mn10300_initial_offset): Likewise.
6692         * config/mn10300/mn10300-protos.h: Update.
6693         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
6694         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
6695         (prologue, epilogue, return_internal): Tidy output code.
6696         (mn10300_store_multiple_operation, return): Likewise.
6697         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
6698         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
6699         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
6700         (load_pic, am33_load_pic): New.
6701         (mn10300_load_pic0, mn10300_load_pic1): New.
6702
6703         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
6704         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
6705         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
6706         (cc_flags_for_mode, cc_flags_for_code): New.
6707         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
6708         overflow flag is not valid.  Validate that the flags we need
6709         for the comparison are valid.
6710         (mn10300_output_cmp): Remove.
6711         (mn10300_output_add): New.
6712         (mn10300_select_cc_mode): Use cc_flags_for_code.
6713         (mn10300_split_cbranch): New.
6714         (mn10300_match_ccmode): New.
6715         (mn10300_split_and_operand_count): New.
6716         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
6717         to the function.
6718         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
6719         (addsi3): ... here.  Use mn10300_output_add.
6720         (*addsi3_flags): New.
6721         (*am33_subsi3, *mn10300_subsi3): Merge...
6722         (subsi3): ... here.  Use attribute isa.
6723         (*subsi3_flags): New.
6724         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
6725         when possible.
6726         (*am33_andsi3, *mn10300_andsi3): Merge...
6727         (andsi3): ... here.
6728         (*andsi3_flags): New.
6729         (andsi3 splitters): New.
6730         (*am33_iorsi3, *mn10300_iorsi3): Merge...
6731         (iorsi3): ... here.
6732         (*iorsi3_flags): New.
6733         (*am33_xorsi3, *mn10300_xorsi3): Merge...
6734         (xorsi3): ... here.
6735         (*xorsi3_flags): New.
6736         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
6737         (one_cmplsi2): ... here.
6738         (*one_cmplsi2_flags): New.
6739         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
6740         instead of "dax" in constraints.  Use mn10300_split_cbranch.
6741         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
6742         use matching constraints to eliminate a self-comparison.
6743         (*integer_conditional_branch): Rename from integer_conditional_branch.
6744         Use int_mode_flags to match CC_REG.
6745         (*cbranchsi4_btst, *btstsi): New.
6746         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
6747         mn10300_split_cbranch.
6748         (*am33_cmpsf): Rename from am33_cmpsf.
6749         (*float_conditional_branch): Rename from float_conditional_branch.
6750         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
6751         (zero_extendqisi2): ... here.
6752         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
6753         (zero_extendhisi2): ... here.
6754         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
6755         (extendqisi2): ... here.
6756         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
6757         (extendhisi2): ... here.
6758         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
6759         (ashlsi3): ... here.
6760         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
6761         (lshrsi3): ... here.
6762         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
6763         (ashrsi3): ... here.
6764         (consecutive add peephole): Remove.
6765         * config/mn10300/predicates.md (label_ref_operand): New.
6766         (int_mode_flags): New.
6767         (CCZN_comparison_operator): New.
6768
6769         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
6770         (throughput_42_latency_43): New reservation.
6771         (mulsidi3, umulsidi3): New expanders.
6772         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
6773         the MDR register to allocation; separately allocate the low and
6774         high parts of the DImode result.
6775         (umulsidi3_internal): Similarly.
6776         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
6777         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
6778         (udivsi3, umodsi3): Remove.
6779         (udivmodsi4, divmodsi4): New expanders.
6780         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
6781         (*divmodsi4): Simiarly.
6782         (ext_internal): New.
6783
6784         * config/mn10300/constraints.md ("z"): New constraint.
6785         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
6786         (FIXED_REGISTERS): Don't fix MDR.
6787         (CALL_USED_REGSITERS): Reformat nicely.
6788         (REG_ALLOC_ORDER): Add MDR.
6789         (enum regclass): Add MDR_REGS.
6790         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
6791         (IRA_COVER_CLASSES): Add MDR_REGS.
6792         (REGNO_REG_CLASS): Handle MDR_REG.
6793         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
6794         (mn10300_register_move_cost): Likewise.
6795         * config/mn10300/mn10300.md (MDR_REG): New.
6796         (*movsi_internal): Handle moves to/from MDR_REGS.
6797
6798         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
6799         POST_MODIFY.
6800         (mn10300_secondary_reload): Tidy combination reload classes.
6801         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
6802         addresses for AM33.  Allow symbolic offsets for reg+imm.
6803         (mn10300_regno_in_class_p): New.
6804         (mn10300_legitimize_reload_address): New.
6805         * config/mn10300/mn10300.h (enum reg_class): Remove
6806         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
6807         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
6808         SP_OR_GENERAL_REGS.
6809         (REG_CLASS_NAMES): Update to match.
6810         (REG_CLASS_CONTENTS): Likewise.
6811         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
6812         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
6813         (REGNO_IN_RANGE_P): Remove.
6814         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
6815         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
6816         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
6817         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
6818         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
6819         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
6820         (REGNO_GENERAL_P): New.
6821         (HAVE_POST_MODIFY_DISP): New.
6822         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
6823         (LEGITIMIZE_RELOAD_ADDRESS): New.
6824         * config/mn10300/mn10300-protos.h: Update.
6825
6826         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
6827         DATA_REGS for AM33 stack-pointer destination.
6828         (mn10300_preferred_output_reload_class): Likewise.
6829         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
6830         into a form appropriate for ...
6831         (TARGET_SECONDARY_RELOAD): New.
6832         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
6833         * config/mn10300/mn10300-protos.h: Update.
6834         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
6835         reload_insi; use the "A" constraint for the scratch; handle AM33
6836         moves of sp to non-address registers.
6837
6838         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
6839         (*movqi_internal): ... here.
6840         (*am33_movhi, *mn10300_movhi): Merge into...
6841         (*movhi_internal): ... here.
6842         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
6843         as the source/destination of moves from/to SP.
6844         (movsf): Only allow for AM33-2.
6845         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
6846         any integer constant constraint.  Only allow for AM33-2.  Tidy
6847         all of the alternative outputs.
6848         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
6849         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
6850         for MN103.
6851         (udivsi3, umodsi3): New patterns for MN103 only.
6852
6853 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
6854
6855         * doc/tm.texi.in: Spell out that a lack of register class unions
6856         can lead to ICEs.
6857         * doc/tm.texi: Regenerate.
6858
6859 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
6860
6861         PR rtl-optimization/47337
6862         * dce.c (check_argument_store): New function.
6863         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
6864
6865         PR tree-optimization/47290
6866         * tree-eh.c (infinite_empty_loop_p): New function.
6867         (cleanup_empty_eh): Use it.
6868
6869 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
6870
6871         PR target/46997
6872         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
6873         (a64_expand_widen_sum): Ditto.
6874         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
6875         (vec_extract_evenodd_help): Ditto.
6876         (vec_extract_evenv4hi): Ditto.
6877         (vec_extract_oddv4hi): Ditto.
6878         (vec_extract_evenv2si): Ditto.
6879         (vec_extract_oddv2si): Ditto.
6880         (vec_extract_evenv2sf): Ditto.
6881         (vec_extract_oddv2sf): Ditto.
6882         (vec_pack_trunc_v4hi: Ditto.
6883         (vec_pack_trunc_v2si): Ditto.
6884         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
6885         (vec_interleave_highv8qi): Ditto.
6886         (mix1_r): Ditto.
6887         (vec_extract_oddv8qi): Ditto.
6888         (vec_interleave_lowv4hi): Ditto.
6889         (vec_interleave_highv4hi): Ditto.
6890         (vec_interleave_lowv2si): Ditto.
6891         (vec_interleave_highv2si): Ditto.
6892
6893 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6894
6895         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
6896         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
6897         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
6898         (pa_c_mode_for_suffix): New.
6899         (TARGET_EXPAND_BUILTIN): Define.
6900         (TARGET_C_MODE_FOR_SUFFIX): Define.
6901         (pa_builtins): Define.
6902         (pa_init_builtins): Register __float128 type and init new support
6903         builtins.
6904         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
6905         * config/pa/quadlib.c (_U_Qfcopysign): New.
6906
6907 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
6908
6909         PR middle-end/46894
6910         * explow.c (allocate_dynamic_stack_space): Do not assume more than
6911         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
6912         are defined.
6913
6914 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6915
6916         PR tree-optimization/47179
6917         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
6918         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
6919
6920 2011-01-18  Richard Guenther  <rguenther@suse.de>
6921
6922         PR rtl-optimization/47216
6923         * emit-rtl.c: Include tree-flow.h.
6924         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
6925         of replicating it with different semantics.
6926         * Makefile.in (emit-rtl.o): Adjust.
6927
6928 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6929
6930         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
6931         (cortex_a9_dp): Handle neon types correctly.
6932
6933 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
6934
6935         PR rtl-optimization/47299
6936         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
6937         subtarget.  Use normal multiplication if both operands are constants.
6938         * expmed.c (expand_widening_mult): Don't try to optimize constant
6939         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
6940         before using it.
6941
6942 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6943
6944         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
6945         spacing after 'e.g.', typos, comma, hyphenation.
6946
6947 2011-01-17  Richard Henderson  <rth@redhat.com>
6948
6949         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
6950         (rx_restricted_mem_operand): New.
6951         (rx_shift_operand): Use register_operand.
6952         (rx_source_operand, rx_compare_operand): Likewise.
6953         * config/rx/rx.md (addsi3_flags): New expander.
6954         (adddi3): Rewrite as expander.
6955         (adc_internal, *adc_flags, adddi3_internal): New patterns.
6956         (subsi3_flags): New expander.
6957         (subdi3): Rewrite as expander.
6958         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
6959
6960         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
6961         (rx_init_builtins): Remove sat builtin.
6962         (rx_expand_builtin): Likewise.
6963         * config/rx/rx.md (ssaddsi3): New.
6964         (*sat): Rename from sat.  Represent the CC_REG input.
6965
6966         * config/rx/predicates.md (rshift_operator): New.
6967         * config/rx/rx.c (rx_expand_insv): Remove.
6968         * config/rx/rx-protos.h: Update.
6969         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
6970         operand to the canonical position.
6971         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
6972         (*bitclr, *bitclr_in_memory): Similarly.
6973         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
6974         (insv): Retain the zero_extract in the expansion.
6975
6976         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
6977         (bswaphi2, bitinvert, revw): Likewise.
6978
6979         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
6980         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
6981         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
6982         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
6983         (bitset, bitset_in_memory): Likewise.
6984         (bitinvert, bitinvert_in_memory): Likewise.
6985         (bitclr, bitclr_in_memory): Likewise.
6986         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
6987         (rx_strend, rx_cmpstrn): Likewise.
6988         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
6989         (bitop peep2 patterns): Remove.
6990
6991         * config/rx/rx.c (rx_match_ccmode): New.
6992         * config/rx/rx-protos.h: Update.
6993         * config/rx/rx.md (abssi2): Clobber, don't set flags.
6994         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
6995         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
6996         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
6997         (fix_truncsfsi2, floatsisf2): Likewise.
6998         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
6999         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
7000         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
7001         (*subsi3_flags, *xorsi3_flags): New.
7002
7003         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
7004
7005         * config/rx/rx.c (rx_print_operand): Remove workaround for
7006         unsplit comparison operations.
7007
7008         * config/rx/rx.md (movsicc): Split after reload.
7009         (*movsicc): Merge *movsieq and *movsine via match_operator.
7010         (*stcc): New pattern.
7011
7012         * config/rx/rx.c (rx_float_compare_mode): Remove.
7013         * config/rx/rx.h (rx_float_compare_mode): Remove.
7014         * config/rx/rx.md (cstoresi4): Split after reload.
7015         (*sccc): New pattern.
7016
7017         * config/rx/predicates.md (label_ref_operand): New.
7018         (rx_z_comparison_operator): New.
7019         (rx_zs_comparison_operator): New.
7020         (rx_fp_comparison_operator): New.
7021         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
7022         Validate that the flags are set properly for the comparison.
7023         (rx_gen_cond_branch_template): Remove.
7024         (rx_cc_modes_compatible): Remove.
7025         (mode_from_flags): New.
7026         (flags_from_code): Rename from flags_needed_for_conditional.
7027         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
7028         (rx_select_cc_mode): Likewise.
7029         (rx_split_fp_compare): New.
7030         (rx_split_cbranch): New.
7031         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
7032         (*cbranchsi4): Use match_operator and rx_split_cbranch.
7033         (*cbranchsf4): Similarly.
7034         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
7035         match_operator and rx_split_cbranch.
7036         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
7037         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
7038         (*cmpsi): Rename from cmpsi.
7039         (*tstsi): Rename from tstsi.
7040         (*cmpsf): Rename from cmpsf; use CC_Fmode.
7041         (*conditional_branch): Rename from conditional_branch.
7042         (*reveresed_conditional_branch): Remove.
7043         (b<code>): Remove expander.
7044         * config/rx/rx-protos.h: Update.
7045
7046         * config/rx/rx.c (rx_compare_redundant): Remove.
7047         * config/rx/rx.md (cmpsi): Don't use it.
7048         * config/rx/rx-protos.h: Update.
7049
7050         * config/rx/rx-modes.def (CC_F): New mode.
7051         * config/rx/rx.c (rx_select_cc_mode): New.
7052         * config/rx/rx.h (SELECT_CC_MODE): Use it.
7053         * config/rx/rx-protos.h: Update.
7054
7055 2011-01-17  Richard Henderson  <rth@redhat.com>
7056
7057         * except.c (dump_eh_tree): Fix stray ; after for statement.
7058
7059 2011-01-17  Richard Guenther  <rguenther@suse.de>
7060
7061         PR tree-optimization/47313
7062         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
7063         handling before copying the body.  Properly deal with
7064         by-reference result in SSA form.
7065
7066 2011-01-17  Ian Lance Taylor  <iant@google.com>
7067
7068         PR target/47219
7069         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
7070         (struct_value_alias_set): Don't define.
7071         (sparc_option_override): Don't set sparc_sr_alias_set and
7072         struct_value_alias_set.
7073         (save_or_restore_regs): Use gen_frame_mem rather than calling
7074         set_mem_alias_set.
7075         (sparc_struct_value_rtx): Likewise.
7076
7077 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
7078
7079         PR target/47318
7080         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
7081         (_mm_maskstore_pd): Likewise.
7082         (_mm_maskload_ps): Likewise.
7083         (_mm_maskstore_ps): Likewise.
7084         (_mm256_maskload_pd): Change mask to __m256i.
7085         (_mm256_maskstore_pd): Likewise.
7086         (_mm256_maskload_ps): Likewise.
7087         (_mm256_maskstore_ps): Likewise.
7088
7089         * config/i386/i386-builtin-types.def: Updated.
7090         (ix86_expand_special_args_builtin): Likewise.
7091
7092         * config/i386/i386.c (bdesc_special_args): Update
7093         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
7094         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
7095         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
7096         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
7097
7098         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
7099         Use <avxpermvecmode> on mask register.
7100         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
7101
7102 2011-01-17  Olivier Hainque  <hainque@adacore.com>
7103             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
7104             Eric Botcazou  <ebotcazou@adacore.com>
7105
7106         PR target/46655
7107         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
7108         if <= USHRT_MAX in 32-bit mode.
7109
7110 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7111
7112         * doc/install.texi (Configuration, Specific): Wrap long
7113         lines in examples.  Allow line wrapping in long options
7114         and URLs where beneficial for PDF output.
7115
7116 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
7117
7118         * config/mips/mips.c (mips_classify_symbol): Don't return
7119         SYMBOL_PC_RELATIVE for nonlocal labels.
7120
7121 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
7122
7123         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
7124
7125 2011-01-15  Jan Hubicka  <jh@suse.cz>
7126
7127         PR tree-optimization/47276
7128         * ipa.c (function_and_variable_visibility): Do not try to mark alias
7129         declarations as needed.
7130
7131 2011-01-15  Martin Jambor  <mjambor@suse.cz>
7132
7133         * common.opt (fdevirtualize): New flag.
7134         * doc/invoke.texi (Option Summary): Document it.
7135         * opts.c (default_options_table): Add devirtualize flag.
7136         * ipa-prop.c (detect_type_change): Return immediately if
7137         devirtualize flag is not set.
7138         (detect_type_change_ssa): Likewise.
7139         (compute_known_type_jump_func): Likewise.
7140         (ipa_analyze_virtual_call_uses): Likewise.
7141
7142 2011-01-14  Martin Jambor  <mjambor@suse.cz>
7143
7144         PR tree-optimization/45934
7145         PR tree-optimization/46302
7146         * ipa-prop.c (type_change_info): New type.
7147         (stmt_may_be_vtbl_ptr_store): New function.
7148         (check_stmt_for_type_change): Likewise.
7149         (detect_type_change): Likewise.
7150         (detect_type_change_ssa): Likewise.
7151         (compute_complex_assign_jump_func): Check for dynamic type change.
7152         (compute_complex_ancestor_jump_func): Likewise.
7153         (compute_known_type_jump_func): Likewise.
7154         (compute_scalar_jump_functions): Likewise.
7155         (ipa_analyze_virtual_call_uses): Likewise.
7156         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
7157
7158 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7159
7160         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
7161         * config/i386/i386.opt (msse5): New Alias.
7162
7163 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7164
7165         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
7166         * config/sparc/linux64.h (CC1_SPEC): Likewise.
7167         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
7168         * config/sparc/sparc.h (CC1_SPEC): Likewise.
7169
7170 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7171
7172         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
7173         -mcpu options.
7174         * config/sparc/linux64.h (CC1_SPEC): Likewise.
7175         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
7176         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
7177         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
7178         Likewise.
7179         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
7180
7181 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7182
7183         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
7184
7185 2011-01-14  Mike Stump  <mikestump@comcast.net>
7186
7187         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
7188         * config/fr30/fr30.md: Likweise
7189         (movsi_push): Likewise.
7190         (movsi_pop): Likewise.
7191         (enter_func): Likewise.
7192         * config/moxie/moxie.md (movsi_push): Likewise.
7193         (movsi_pop): Likewise.
7194
7195 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7196
7197         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
7198         %{no_archive} %{exact_version}.
7199         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
7200         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
7201         %{no_archive} %{exact_version}.
7202         * config/mips/openbsd.h (LINK_SPEC): Likewise.
7203         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
7204         * config/mips/vxworks.h: Likewise.
7205
7206 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7207
7208         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
7209
7210 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7211
7212         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
7213         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
7214
7215 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7216
7217         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
7218         -nodefaultlib.
7219
7220 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7221
7222         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
7223         for mcpu not cpu.
7224         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
7225         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
7226         not cpu.
7227         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
7228         Don't handle -shlib.
7229
7230 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7231
7232         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
7233         (CC1_SPEC): Don't handle -profile.
7234
7235 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7236
7237         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
7238         * config/mips/mips.h (CC1_SPEC): Likewise.
7239
7240 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7241
7242         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
7243         * config/mips/mips.h (CC1_SPEC): Likewise.
7244
7245 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7246
7247         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
7248         * config/m32r/linux.h (LINK_SPEC): Likewise.
7249         * config/mips/linux.h (LINK_SPEC): Likewise.
7250         * config/mips/linux64.h (LINK_SPEC): Likewise.
7251         * config/sparc/linux.h (LINK_SPEC): Likewise.
7252         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
7253         LINK_SPEC): Likewise.
7254         * config/xtensa/linux.h (LINK_SPEC): Likewise.
7255
7256 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7257
7258         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
7259         %{version:-v}.
7260         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
7261
7262 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7263
7264         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
7265         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
7266
7267 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
7268
7269         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
7270
7271 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7272
7273         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
7274         supports -Bstatic/-Bdynamic.
7275         * configure: Regenerate.
7276
7277 2011-01-14  Jan Hubicka  <jh@suse.cz>
7278             Jack Howarth  <howarth@bromo.med.uc.edu>
7279
7280         PR target/46037
7281         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
7282         when checking debug_info_level. Test write_symbols instead of
7283         debug_hooks->var_location when setting flag_var_tracking_uninit.
7284
7285 2011-01-14  Richard Guenther  <rguenther@suse.de>
7286
7287         PR tree-optimization/47179
7288         * target.def (ref_may_alias_errno): New target hook.
7289         * targhooks.h (default_ref_may_alias_errno): Declare.
7290         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
7291         (default_ref_may_alias_errno): New function.
7292         * target.h (struct ao_ref_s): Declare.
7293         * tree-ssa-alias.c: Include target.h.
7294         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
7295         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
7296         (targhooks.o): Likewise.
7297         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
7298         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
7299
7300 2011-01-14  Richard Guenther  <rguenther@suse.de>
7301
7302         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
7303
7304 2011-01-14  Richard Guenther  <rguenther@suse.de>
7305
7306         PR tree-optimization/47280
7307         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
7308         return CFG changes.
7309         (tree_ssa_forward_propagate_single_use_vars): Deal with
7310         CFG changes from associate_plusminus.
7311
7312 2011-01-14  Richard Guenther  <rguenther@suse.de>
7313
7314         PR middle-end/47281
7315         Revert
7316         2011-01-11  Richard Guenther  <rguenther@suse.de>
7317
7318         PR tree-optimization/46076
7319         * tree-ssa.c (useless_type_conversion_p): Conversions from
7320         unprototyped to empty argument list function types are useless.
7321
7322 2011-01-14  Richard Guenther  <rguenther@suse.de>
7323
7324         PR tree-optimization/47286
7325         * tree-ssa-structalias.c (new_var_info): Register variables are global.
7326
7327 2011-01-14  Martin Jambor  <mjambor@suse.cz>
7328
7329         PR middle-end/46823
7330         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
7331
7332 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
7333
7334         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
7335         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
7336         * config/xtensa/xtensa.c (xtensa_libcall_value,
7337         xtensa_function_value_regno_p): New functions.
7338         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7339
7340 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
7341
7342         PR c++/47213
7343         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
7344         PE specific hook.
7345         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
7346         New function prototype.
7347         * config/i386/winnt.c (i386_pe_assemble_visibility):
7348         Warn only if attribute was specified by user.
7349
7350 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
7351
7352         PR target/47251
7353         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
7354         floating point.
7355         (floatunsdidf2_fcfidu): Ditto.
7356
7357 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7358
7359         * config/s390/s390.c (print_operand_address): Replace 'error' with
7360         'output_operand_lossage'.
7361         (print_operand): Likewise.
7362
7363 2011-01-13  Jeff Law  <law@redhat.com>
7364
7365         PR rtl-optimization/39077
7366         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
7367         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
7368         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
7369         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
7370         * gcse.c (prune_insertions_deletions): New function.
7371         (compute_pre_data): Use it.
7372
7373 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
7374
7375         PR debug/PR46973
7376         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
7377         static function.
7378         (prune_unused_types_mark): Use it.
7379
7380 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
7381
7382         PR rtl-optimization/45352
7383         * sel-sched.c: Update copyright years.
7384         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
7385         in the advancing loop when we have issued issue_rate insns.
7386
7387 2011-01-12  Richard Henderson  <rth@redhat.com>
7388
7389         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
7390         (TARGET_MD_ASM_CLOBBERS): New.
7391
7392         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
7393         (TARGET_DELEGITIMIZE_ADDRESS): New.
7394
7395         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
7396         (clzsi2, *bsch): New patterns.
7397
7398         * config/mn10300/mn10300.md (INT): New mode iterator.
7399         (*mov<INT>_clr): New pattern, and peep2 to generate it.
7400
7401         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
7402         flag_split_wide_types.
7403
7404         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
7405         (mn10300_trampoline_init): Rewrite without a template, an immediate
7406         load and a direct branch.
7407         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
7408
7409 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
7410
7411         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7412         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
7413         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
7414         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7415
7416 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
7417
7418         PR debug/47209
7419         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
7420         of type.
7421
7422 2011-01-12  Jan Hubicka  <jh@suse.cz>
7423
7424         PR driver/47244
7425         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
7426         (PLUGIN_COND_CLOSE): New macro.
7427         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
7428
7429 2011-01-12  Richard Guenther  <rguenther@suse.de>
7430
7431         PR lto/47259
7432         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
7433         register variables in a MEM_REF.
7434
7435 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
7436
7437         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
7438         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
7439         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
7440         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
7441         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
7442         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
7443         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
7444         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
7445         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
7446         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
7447         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
7448         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
7449         * config/gnu-user.h: New.  Copied from linux.h.
7450         (LINUX_TARGET_STARTFILE_SPEC): Rename to
7451         GNU_USER_TARGET_STARTFILE_SPEC.
7452         (LINUX_TARGET_ENDFILE_SPEC): Rename to
7453         GNU_USER_TARGET_ENDFILE_SPEC.
7454         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
7455         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
7456         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
7457         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
7458         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
7459         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
7460         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
7461         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
7462         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
7463         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
7464         * config/arm/linux-eabi.h (CC1_SPEC): Use
7465         GNU_USER_TARGET_CC1_SPEC.
7466         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
7467         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
7468         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
7469         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
7470         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
7471         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
7472         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
7473         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
7474
7475 2011-01-12  Richard Guenther  <rguenther@suse.de>
7476
7477         PR other/46946
7478         * doc/invoke.texi (ffast-math): Document it is turned on
7479         with -Ofast.
7480
7481 2011-01-12  Jan Hubicka  <jh@suse.cz>
7482
7483         PR tree-optimization/47233
7484         * opts.c (common_handle_option): Disable ipa-reference with profile
7485         feedback.
7486
7487 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7488
7489         * c-parser.c (c_parser_objc_at_property_declaration): Improved
7490         error message.
7491
7492 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
7493
7494         * c-parser.c (c_lex_one_token): Updated and reindented some
7495         comments.  No changes in code.
7496
7497 2011-01-11  Ian Lance Taylor  <iant@google.com>
7498
7499         * godump.c (go_output_var): Don't output the variable if there is
7500         already a type with the same name.
7501
7502 2011-01-11  Ian Lance Taylor  <iant@google.com>
7503
7504         * godump.c (go_format_type): Don't generate float80.
7505
7506 2011-01-11  Richard Henderson  <rth@redhat.com>
7507
7508         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
7509         declaration.  Rewrite for both speed and size.
7510         (mn10300_address_cost_1): Remove.
7511         (mn10300_register_move_cost): New.
7512         (mn10300_memory_move_cost): New.
7513         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
7514         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
7515         extensions, shifts, BSWAP, CLZ.
7516         (mn10300_wide_const_load_uses_clr): Remove.
7517         (TARGET_REGISTER_MOVE_COST): New.
7518         (TARGET_MEMORY_MOVE_COST): New.
7519         * config/mn10300/mn10300-protos.h: Update.
7520         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
7521
7522         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
7523         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
7524         * config/mn10300/mn10300-protos.h: Update.
7525         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
7526         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
7527         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
7528         (*test_int_bitfield, *test_byte_bitfield): Remove.
7529         (*bit_test, *subreg_bit_test): Remove.
7530         * config/mn10300/predicates.md (const_8bit_operand): Remove.
7531
7532         * config/mn10300/constraints.md ("c"): Rename from "A".
7533         ("A", "D"): New constraint letters.
7534         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
7535         (fmssf4, fnmasf4, fnmssf4): Likewise.
7536
7537         * config/mn10300/mn10300.md (isa): New attribute.
7538         (enabled): New attribute.
7539
7540         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
7541         (abssf2, negsf2): Define only for hardware fp.
7542         (sqrtsf2): Reformat.
7543         (addsf3, subsf3, mulsf3): Merge expander and insn.
7544
7545         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
7546         (DEBUGGER_AUTO_OFFSET): Remove.
7547         (DEBUGGER_ARG_OFFSET): Remove.
7548
7549         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
7550         Emit register stores with the same offsets as the hardware.
7551         (mn10300_store_multiple_operation): Don't check that the register
7552         save offsets are monotonic.
7553         * config/mn10300/mn10300-protos.h: Update.
7554
7555         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
7556
7557         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
7558         in terms of the value on the stack, not the MDR register.
7559
7560 2011-01-11  Jan Hubicka  <jh@suse.cz>
7561
7562         PR lto/45721
7563         PR lto/45375
7564         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
7565         (symbol_alias_set_destroy, symbol_alias_set_contains,
7566         propagate_aliases_backward): Declare.
7567         * lto-streamer-out.c (struct sets): New sturcture.
7568         (trivally_defined_alias): New function.
7569         (output_alias_pair_p): Rewrite.
7570         (output_unreferenced_globals): Fix output of alias pairs.
7571         (produce_symtab): Likewise.
7572         * ipa.c (function_and_variable_visibility): Set weak alias destination
7573         as needed in lto.
7574         * varasm.c (symbol_alias_set_t): Remove.
7575         (symbol_alias_set_destroy): Export.
7576         (propagate_aliases_forward, propagate_aliases_backward): New functions
7577         based on ...
7578         (compute_visible_aliases): ... this one; remove.
7579         (trivially_visible_alias): New
7580         (trivially_defined_alias): New.
7581         (remove_unreachable_alias_pairs): Rewrite.
7582         (finish_aliases_1): Reorganize code checking if alias is defined.
7583         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
7584         in LTO mode.
7585
7586 2011-01-11  Richard Guenther  <rguenther@suse.de>
7587
7588         PR tree-optimization/46076
7589         * tree-ssa.c (useless_type_conversion_p): Conversions from
7590         unprototyped to empty argument list function types are useless.
7591
7592 2011-01-11  Richard Guenther  <rguenther@suse.de>
7593
7594         PR middle-end/45235
7595         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
7596         volatile MEMs as MEM_READONLY_P.
7597
7598 2011-01-11  Richard Guenther  <rguenther@suse.de>
7599
7600         PR tree-optimization/47239
7601         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
7602
7603 2011-01-11  Jeff Law  <law@redhat.com>
7604
7605         PR tree-optimization/47086
7606         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
7607         IVs from statements that might throw.
7608
7609 2011-01-10  Jan Hubicka  <jh@suse.cz>
7610
7611         PR lto/45375
7612         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
7613
7614 2011-01-10  Jan Hubicka  <jh@suse.cz>
7615
7616         PR lto/45375
7617         * profile.c (read_profile_edge_counts): Ignore profile inconistency
7618         when correcting profile.
7619
7620 2011-01-10  Jan Hubicka  <jh@suse.cz>
7621
7622         PR lto/46083
7623         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
7624         DECL_FINI_PRIORITY.
7625         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
7626         Restore DECL_FINI_PRIORITY.
7627
7628 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7629
7630         * doc/gimple.texi: Fix quoting of multi-word return values in
7631         @deftypefn statements.  Ensure presence of return value.  Wrap
7632         overlong @deftypefn lines.
7633         (is_gimple_operand, is_gimple_min_invariant_address): Remove
7634         descriptions of removed functions.
7635         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
7636         of multi-word return value in @deftypefn statement.
7637
7638 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7639
7640         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
7641         (Conditional Expressions, Logical Operators)
7642         (Statement and operand traversals): Do not indent smallexample
7643         code.  Fix duplicate function argument in example.
7644
7645 2011-01-10  Jeff Law  <law@redhat.com>
7646
7647         PR tree-optimization/47141
7648         * ipa-split.c (split_function): Handle case where we are
7649         returning a value and the return block has a virtual operand phi.
7650
7651 2011-01-10  Jan Hubicka  <jh@suse.cz>
7652
7653         PR tree-optimization/47234
7654         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
7655         (pass_feedback_split_functions): Declare.
7656         * passes.c (init_optimization_passes): Add ipa-split as subpass of
7657         tree-profile.
7658         * ipa-split.c (gate_split_functions): Update comments; disable
7659         split-functions for profile_arc_flag and branch_probabilities.
7660         (gate_feedback_split_functions): New function.
7661         (execute_feedback_split_functions): New function.
7662         (pass_feedback_split_functions): New global var.
7663
7664 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
7665
7666         PR lto/46760
7667         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
7668         calling gimple_call_set_cannot_inline.
7669
7670 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
7671
7672         * config/darwin-sections.def: Remove unused section.
7673
7674 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
7675
7676         PR c++/47218
7677         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
7678
7679 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
7680
7681         PR objc/47232
7682         * c-parser.c (c_parser_declaration_or_fndef): Improved
7683         error message.
7684
7685 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
7686
7687         * config/i386/winnt.c (i386_pe_start_function): Make sure
7688         to switch back to function's section.
7689
7690 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
7691
7692         PR gcc/46902
7693         PR testsuite/46912
7694         * plugin.c: Move include of dlfcn.h from here...
7695         * system.h: ... to here.
7696
7697 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7698
7699         * doc/cpp.texi (C++ Named Operators): Fix markup for header
7700         file name.
7701         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
7702         two extra empty pages in PDF output.
7703
7704 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
7705
7706         PR objc/47078
7707         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
7708         for error recovery purposes behave as if it was not specified so
7709         that the default type is usd.
7710
7711 2011-01-07  Jan Hubicka  <jh@suse.cz>
7712
7713         PR tree-optmization/46469
7714         * ipa.c (function_and_variable_visibility): Clear needed flags on
7715         nodes with external decls; handle weakrefs merging correctly.
7716
7717 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
7718
7719         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
7720         not false.
7721
7722 2011-01-07  Jan Hubicka  <jh@suse.cz>
7723
7724         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
7725         and no longer claim that gold is required for linker plugin.
7726         * configure: Regenerate.
7727         * gcc.c (PLUGIN_COND): New macro.
7728         (LINK_COMMAND_SPEC): Use it.
7729         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
7730         * config.in (HAVE_LTO_PLUGIN): New.
7731         * configure.ac (--with-lto-plugin): New parameter; autodetect
7732         HAVE_LTO_PLUGIN.
7733
7734 2011-01-07  Jan Hubicka  <jh@suse.cz>
7735
7736         PR tree-optimization/46367
7737         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
7738         when we can update original.
7739         (cgraph_mark_inline_edge): Sanity check.
7740         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
7741
7742 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7743
7744         * config/spu/spu.h (ASM_COMMENT_START): Define.
7745
7746 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
7747
7748         PR driver/42445
7749         * gcc.c (%>S): New.
7750         (SWITCH_KEEP_FOR_GCC): Likewise.
7751         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
7752         (do_spec_1): Handle "%>".
7753
7754         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
7755
7756 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
7757
7758         PR target/47201
7759         * config/i386/i386.c (ix86_delegitimize_address): If
7760         simplify_gen_subreg fails, return orig_x.
7761
7762         PR bootstrap/47187
7763         * value-prof.c (gimple_stringop_fixed_value): Handle
7764         lhs of the call properly.
7765
7766 2011-01-07  Jan Hubicka  <jh@suse.cz>
7767
7768         PR lto/45375
7769         * lto-opt.c (lto_reissue_options): Set flag_shlib.
7770
7771 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
7772
7773         * target.def (function_switched_text_sections): New hook.
7774         * doc/tm.texi: Regenerated.
7775         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
7776         * final.c (default_function_switched_text_sections): New.
7777         (final_scan_insn): Call function_switched_text_sections when a
7778         mid-function section change occurs.
7779         * output.h (default_function_switched_text_sections): Declare.
7780         * config/darwin-protos.h (darwin_function_switched_text_sections):
7781         Likewise.
7782         * config/darwin.c (darwin_function_switched_text_sections): New.
7783         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
7784
7785 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
7786
7787         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
7788         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
7789         the secondary code fragment when outputting for DWARF == 2.
7790
7791 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
7792
7793         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7794         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
7795         Remove.
7796         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
7797         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7798
7799 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
7800
7801         PR debug/46704
7802         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
7803         when it is not empty.
7804
7805 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
7806
7807         Bobcat Enablement
7808         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
7809         (case ${target}): Add btver1.
7810         * config/i386/driver-i386.c (host_detect_local_cpu): Let
7811         -march=native recognize btver1 processors.
7812         * config/i386/i386-c.c (ix86_target_macros_internal): Add
7813         btver1 def_and_undef
7814         * config/i386/i386.c (struct processor_costs btver1_cost): New
7815         btver1 cost table.
7816         (m_BTVER1): New definition.
7817         (m_AMD_MULTIPLE): Includes m_BTVER1.
7818         (initial_ix86_tune_features): Add btver1 tune.
7819         (processor_target_table): Add btver1 entry.
7820         (static const char *const cpu_names): Add btver1 entry.
7821         (software_prefetching_beneficial_p): Add btver1.
7822         (ix86_option_override_internal): Add btver1 instruction sets.
7823         (ix86_issue_rate): Add btver1.
7824         (ix86_adjust_cost): Add btver1.
7825         * config/i386/i386.h (TARGET_BTVER1): New definition.
7826         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
7827         (enum processor_type): Add PROCESSOR_BTVER1.
7828         * config/i386/i386.md (define_attr "cpu"): Add btver1.
7829
7830 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7831
7832         PR target/43309
7833         * config/i386/i386.c (legitimize_tls_address)
7834         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
7835         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
7836         (tls_initial_exec_64_sun): New pattern.
7837
7838 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
7839
7840         * doc/invoke.texi (Overall Options): Improve wording and markup
7841         of the description of -wrapper.
7842
7843 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
7844
7845         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
7846         rdynamic, threads): New Driver options.
7847
7848 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7849
7850         PR target/38118
7851         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
7852         if coming from .tdata.
7853         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7854
7855 2011-01-06  Jan Hubicka  <jh@suse.cz>
7856
7857         PR lto/47188
7858         * collect2.c (main): Do not enable LTOmode when plugin is active.
7859
7860 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7861
7862         PR other/45915
7863         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
7864         --version output if supported.
7865         * configure: Regenerate.
7866
7867 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
7868
7869         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
7870         Driver options.
7871
7872 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
7873
7874         PR c/47150
7875         * c-convert.c (convert): When converting a complex expression
7876         other than COMPLEX_EXPR to a different complex type, ensure
7877         c_save_expr is called instead of save_expr, unless in_late_binary_op.
7878         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
7879         when converting COMPLEX_TYPE.
7880
7881 2011-01-06  Ira Rosen  <irar@il.ibm.com>
7882
7883         PR tree-optimization/47139
7884         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
7885         only the last reduction value is used outside the loop.  Update
7886         documentation.
7887
7888 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
7889
7890         * config/rtems.opt: New.
7891         * config.gcc (*-*-rtems*): Use rtems.opt.
7892
7893 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
7894
7895         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
7896         processors do not support 3DNow instructions.
7897
7898 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7899
7900         * config/spu/spu.c (spu_option_override): Set parameter
7901         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
7902
7903 2011-01-05  Jan Hubicka  <jh@suse.cz>
7904
7905         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
7906         at the command line.
7907
7908 2011-01-05  Martin Jambor  <mjambor@suse.cz>
7909
7910         PR lto/47162
7911         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
7912         deltas on streamed outgoing edges.
7913         (output_node_opt_summary): Output info for outgoing edges only when
7914         the node is in new parameter set.
7915         (output_cgraph_opt_summary): New parameter set, passed to the two
7916         aforementioned functions.  Update its forward declaration and its
7917         callee too.
7918
7919 2011-01-05  Tom Tromey  <tromey@redhat.com>
7920
7921         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
7922         operator to c_finish_omp_atomic.
7923         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
7924         (build_unary_op): Update.
7925         (build_modify_expr): Update.
7926         (build_asm_expr): Update.
7927
7928 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7929
7930         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
7931         newly inserted insns.
7932         (pad_bb): Likewise.
7933         (spu_emit_branch_hint): Likewise.
7934         (insert_hbrp_for_ilb_runout): Likewise.
7935         (spu_machine_dependent_reorg): Call df_finish_pass after
7936         schedule_insns returns.
7937
7938 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7939
7940         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
7941
7942 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7943
7944         PR tree-optimization/47005
7945         * tree-sra.c (struct access): Add 'non_addressable' bit.
7946         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
7947         (decide_one_param_reduction): Return 0 if the parameter is passed by
7948         reference and one of the accesses in the group is non_addressable.
7949
7950 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7951
7952         PR tree-optimization/47056
7953         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
7954         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
7955         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
7956
7957 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
7958
7959         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
7960         initializer.  Skip view conversions from aggregate types.
7961
7962 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
7963
7964         PR bootstrap/47055
7965         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
7966
7967 2011-01-04  Philipp Thomas  <pth@suse.de>
7968
7969         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
7970         obvious typo.
7971
7972 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7973
7974         * function.c (thread_prologue_and_epilogue_insns): Do not crash
7975         on empty epilogue sequences.
7976
7977 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
7978
7979         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
7980         non-static): New Driver options.
7981
7982 2011-01-04  Jie Zhang  <jie@codesourcery.com>
7983
7984         PR driver/47137
7985         * gcc.c (default_compilers[]): Set combinable field to 0
7986         for all assembly languages.
7987
7988 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
7989
7990         * config/mips/loongson3a.md: New file.
7991         * config/mips/mips.md: Include loongson3a.md.
7992         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
7993         TUNE_LOONGSON_3A.
7994
7995 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7996
7997         PR middle-end/47017
7998         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
7999         instead of convert_memory_address_addr_space on the base expression.
8000
8001 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8002
8003         * config/spu/spu.c (spu_option_override): Update error text
8004         for bad -march= / -mtune= values.
8005
8006 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8007
8008         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
8009         if branch-hint optimization will be performed.
8010
8011 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
8012
8013         PR tree-optimization/47148
8014         * ipa-split.c (split_function): Convert arguments to
8015         DECL_ARG_TYPE if possible.
8016
8017         PR tree-optimization/47155
8018         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
8019         when computing uns.
8020
8021         PR rtl-optimization/47157
8022         * combine.c (try_combine): If undobuf.other_insn becomes
8023         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
8024         and set *new_direct_jump_p too.
8025
8026 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
8027
8028         PR tree-optimization/47021
8029         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
8030
8031 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
8032
8033         * gcc.c (process_command): Update copyright notice dates.
8034         * gcov.c (print_version): Likewise.
8035         * gcov-dump.c (print_version): Likewise.
8036         * mips-tfile.c (main): Likewise.
8037         * mips-tdump.c (main): Likewise.
8038
8039 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8040
8041         PR tree-optimization/46801
8042         * tree-sra.c (type_internals_preclude_sra_p): Check whether
8043         aggregate fields start at byte boundary instead of the bit-field flag.
8044
8045 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
8046
8047         PR driver/47137
8048         * gcc.c (main): Revert revision 168407.
8049
8050 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8051
8052         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
8053
8054 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8055
8056         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
8057         vector optab to expand vector/scalar shift, update gimple to vector.
8058
8059 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8060
8061         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
8062         a thunk.
8063
8064 2011-01-03  Martin Jambor  <mjambor@suse.cz>
8065
8066         PR tree-optimization/46984
8067         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
8068         HOST_WIDE_INT.
8069         (cgraph_create_indirect_edge): Fixed line length.
8070         (cgraph_indirect_call_info): Declare.
8071         (cgraph_make_edge_direct) Update declaration.
8072         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
8073         (cgraph_create_indirect_edge): Use it.
8074         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
8075         callees.
8076         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
8077         the new thunk_delta representation.
8078         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
8079         HOST_WIDE_INT.
8080         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
8081         (ipa_read_indirect_edge_info): Likewise.
8082         * lto-cgraph.c (output_edge_opt_summary): New function.
8083         (output_node_opt_summary): Call it on all outgoing edges.
8084         (input_edge_opt_summary): New function.
8085         (input_node_opt_summary): Call it on all outgoing edges.
8086
8087 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
8088
8089         PR driver/47137
8090         * gcc.c (main): Don't check have_o when settting combine_inputs.
8091
8092 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
8093
8094         * regrename.c: Add general comment describing the pass.
8095         (struct du_head): Remove 'length' field.
8096         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
8097         (regrename_optimize): Do not sort chains.  Rework comments, add others.
8098         Force renaming to the preferred class (if any) in the first pass and do
8099         not consider registers that belong to it in the second pass.
8100         (create_new_chain): Do not set 'length' field.
8101         (scan_rtx_reg): Likewise.
8102
8103 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
8104
8105         PR tree-optimization/47140
8106         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
8107         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
8108         to bit_value_binop.
8109
8110         PR rtl-optimization/47028
8111         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
8112         parm_birth_insn instead of at the beginning of first bb.
8113
8114 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
8115
8116         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
8117         Remove the word "see" before "@pxref".
8118         * doc/rtl.texi: Remove the word "see" before "@pxref".
8119
8120 2011-01-01  Jan Hubicka  <jh@suse.cz>
8121
8122         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
8123         memory.
8124
8125 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
8126
8127         PR target/38662
8128         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
8129
8130 \f
8131 Copyright (C) 2011 Free Software Foundation, Inc.
8132
8133 Copying and distribution of this file, with or without modification,
8134 are permitted in any medium without royalty provided the copyright
8135 notice and this notice are preserved.